日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
PCI接口卡硬件與驅(qū)動程序設(shè)計
PCI接口卡硬件與驅(qū)動程序設(shè)計
 更新時間:2008-8-4 4:43:53  點擊數(shù):28
【字體: 字體顏色

  對該對象進行初始化。在驅(qū)動的其它例程中就可以使用對象MemoryRangeForBase1調(diào)用該類的成員函數(shù)ind、inw、inb、outb、outw、outd來完成對PCI卡的Base1空間的DWORD、WORD和Byte的輸入輸出操作,在我們的設(shè)計中也就是對雙口存儲器的存取。
  
對于
I/O端口的訪問也是相似的,只是使用KIoRange類。在設(shè)計中將Base0空間設(shè)定為端口映射的空間,這個空間實際上是對S5920操作寄存器組的映射。如S5920的輸出郵箱寄存器[5]偏移為0x0C,若要在S5920的郵箱數(shù)據(jù)線MD[0∶7]上輸出全1,則可以通過調(diào)用一個用Bsae0初始化的KIoRange對象m_IoPortRangeForBass0.outd(0x0C,0xFFFF);來實現(xiàn)。
  
(2)中斷處理
  DriverStudio中使用KInterrupt類實現(xiàn)中斷地處理,主要調(diào)用其成員函數(shù)對中斷進行初始化,控制一個中斷服務(wù)程序和一個中斷之間連接和斷開。對于DriverWizard生成的框架,它在OnStartDevice(KIrp I)中對一個中斷對象調(diào)用了InitializeAndConnect();完成了中斷地初始化與連接,但是作為實際應(yīng)用,最好在OnStartDevice(KIrp I)中只作初始化,而在需要中斷服務(wù)的時候在PASSIVE-LEVEL級別上調(diào)用Connect()。
  PCI的中斷是共享的,所以中斷服務(wù)程序必須迅速作出是否為自己板卡來的中斷地判定,如果是返回TRUE,否則返回FALSE,其處理的時間應(yīng)盡量地短,對于一些需要大量操作的工作,中斷服務(wù)程序會調(diào)用一個低于中斷服務(wù)程序DIRQL級別的延遲調(diào)用程序,在DISPATCH_LEVEL上完成處理,這個級別上限制較少,函數(shù)調(diào)用也相對比較方便。
  (3)應(yīng)用程序與驅(qū)動程序之間的通信
  
應(yīng)用程序與驅(qū)動程序通信步驟為:應(yīng)用程序首先使用CreatFile函數(shù)打開設(shè)備,然后使用WriteFile、ReadFile、DeviceIoControl與驅(qū)動程序進行通信,最后在應(yīng)用程序退出前使用CloseHandle關(guān)閉設(shè)備。DeviceIoControl使用不同的IOCTL命令字來調(diào)用驅(qū)動中的不同程序,完成應(yīng)用程序與驅(qū)動程序的數(shù)據(jù)交換,驅(qū)動程序根據(jù)訪問方式的不同,使用不同的方式獲取應(yīng)用程序的輸入輸出緩沖區(qū)地址。
  
驅(qū)動程序與應(yīng)用程序的通信:當驅(qū)動程序獲取了特定事件發(fā)生時,有時需要將這一信息通知給應(yīng)用程序,主要的方法有2種:一種是使用
DeviceIoControl進行異步通信,另一種是在應(yīng)用程序中創(chuàng)建一個事件,并將該句柄傳給驅(qū)動程序,然后在應(yīng)用層開啟一個線程等待這個事件,驅(qū)動程序會在事件發(fā)生的時候設(shè)置事件信號狀態(tài)來觸發(fā)應(yīng)用程序。
  
實際上使用
IOCTL方法只是應(yīng)用程序與驅(qū)動程序共享內(nèi)存的一種方法,而且是在應(yīng)用程序中分配共享內(nèi)存空間。共享內(nèi)存另外還有2種方法[4]:其一是MmMapLockedPages方法,它是由驅(qū)動程序通過MmAllocateContiguousMemory函數(shù)分配內(nèi)存,創(chuàng)建并建立描述緩沖區(qū)MDL,再使用MmMapLockedPages把內(nèi)存映射到用戶進程地址空間中,用戶的應(yīng)用程序就可以使用MmMapLockPages返回的虛擬地址直接訪問系統(tǒng)內(nèi)存,由于要在訪問內(nèi)存的進程上下文中完成映射,所以只適用于單層結(jié)構(gòu)的驅(qū)動,同時要設(shè)定相應(yīng)的保護機制,以保證驅(qū)動與應(yīng)用程序的訪問同步;其二是共享內(nèi)存對象方法,驅(qū)動程序創(chuàng)建命名內(nèi)存對象(section),一個或多個應(yīng)用程序使用OpenFileMapping打開以上的對象,然后調(diào)用MapViewOfFile函數(shù)得到指向它的指針;相對應(yīng)的應(yīng)用程序可以使用CreateFileMapping在用戶模式下創(chuàng)建命名內(nèi)存對象,驅(qū)動程序通過ZwOpenSection函數(shù),并調(diào)用ZwMapViewOfSection得到其指針來打開內(nèi)存對象,應(yīng)當使用異常處理程序在核心模式中訪問該地址。
  
在實際應(yīng)用中,我們使用IOCTL方法的METHOUD_OUT_DIRECT和METHOUD_IN_DIRECT方式完成大塊數(shù)據(jù)的加載與讀取。MmMapLockedPages方法使用時相對復(fù)雜一些,我們在驅(qū)動中開辟了一塊非分頁內(nèi)存,用來存放從信號處理板上獲取的板卡工作狀態(tài)信息和目標軌跡信息,由驅(qū)動程序?qū)崟r更新,應(yīng)用程序可以通過驅(qū)動返回的虛擬地址在需要的時候訪問這塊共享內(nèi)存。

四、結(jié)束語
  基于上述的硬件結(jié)構(gòu)與驅(qū)動程序設(shè)計方法,已成功開發(fā)了一塊較為通用的PCI接口卡,并在某型雷達模擬器的數(shù)據(jù)加載、命令控制和系統(tǒng)監(jiān)控中得到了很好的應(yīng)用,板卡工作正常,達到了預(yù)期的效果。隨著科學(xué)技術(shù)的發(fā)展,已經(jīng)生產(chǎn)出更多的高性能PCI專用芯片,PCI規(guī)范也有了新的發(fā)展,PCI-X 1066規(guī)范標準將允許采用1 066 Mtransfer/s(兆次轉(zhuǎn)換/秒),對于緊湊型PCI系列網(wǎng)路底板(CompactPCI Serial Mesh Backplane,簡稱CSMB)2.20版本,新的CSMB規(guī)范標準的目標著眼于增加底板的數(shù)據(jù)傳輸能力,使之能達到700 Gbit/s以上,支持多路同步傳輸議定和隧道協(xié)定(tunneling protocol)。在目前,從速率與成本的綜合考慮,PCI接口卡作為計算機與外設(shè)的傳輸橋梁是具有很強的實用價值和廣闊的應(yīng)用空間。


參考文獻

[1]李貴山.PCI局部總線開發(fā)者指南[M].西安:西安電子科技大學(xué)出版社,1997.143~144,146~154.
[2]馮博琴,等
.Microsoft Corporation.windows2000驅(qū)動程序開發(fā)大全[M].北京:機械工業(yè)出版社,2001.218~236.
[3]武安河,邰銘,于洪濤
.Windows2000/XP WDM設(shè)備驅(qū)動程序開發(fā)[M].北京:電子工業(yè)出版社,200375~85.
[4]
Open System Resource. Sharing Memory Between Drivers and Applications(updated 2002)[Z].
[5]AMCC Applied Micro Circuits Corporation PCI Product Data book 2000[Z].

  • 上一篇: 串行D/A轉(zhuǎn)換器與單片機的接口設(shè)計
  • 下一篇: 微機CRT與LED顯示屏同步顯示接口電路設(shè)計
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1