999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

PCM高速遙測發送卡的WDM驅動程序設計

2008-04-12 00:00:00徐華鋒
現代電子技術 2008年4期

摘 要:PCM高速遙測數據發送卡是一款基于PCI接口芯片9054的PCM信號源,工作碼速率可達10 Mb/s。以在Windows 2000操作系統下設計PCM高速遙測數據發送卡的WDM驅動程序為例,介紹WDM驅動程序的基本特點和遙測數據發送卡的基本結構,詳細討論利用Driver Studio開發WDM驅動程序設計的關鍵技術,如設備初始化、軟件FIFO、中斷處理和DMA操作等。

關鍵詞:PCI;WDM;I/O請求包(IRP);軟件FIFO

中圖分類號:TP311.52

文獻標識碼:B

文章編號:1004—373X(2008)04—063—03

開發驅動程序的軟件主要有:MicroSoft公司的DDK,Jungo公司的Windriver和Compuware NuMega公司的Driver Studio三種。DDK是最基本的驅動程序開發工具,比較復雜,適于專業的驅動程序開發人員,不適于硬件開發人員開發驅動程序。Windriver開發驅動程序不需要熟悉操作系統內核知識,針對硬件PCI/ISA/PCM—CIA/USB開發驅動程序比較方便,但驅動程序的效率不高、缺乏靈活性。Driver Studio把DDK用類的形式進行封裝,簡化設備驅動程序的開發,方便又不失靈活性。所以這里選擇Driver Studio作為驅動程序的開發工具。

在結合PCM高速遙測數據發送卡的基礎上,本文介紹WDM驅動程序的結構特點和PCM高速遙測數據發送卡的硬件結構,并闡述針對數據發送卡的特點,詳細地討論驅動程序關鍵部分的設計。

1 PCM遙測數據發送卡的硬件結構

圖1為遙測數據發送卡的原理框圖。碼型變換器的功能是根據原始PCM數據產生3種輸出碼型:NRZ—L,NRZ—M及NRZ—S之一,以適應更加廣泛的測試目的。多電平驅動器將來自FPGA的LV TTL電平的PCM數據和時鐘信號轉換為3種電平接口輸出,分別是TTL,EIA422及MLVDS。同步FIFO作為硬件數據幀緩存存儲由PCI總線寫入的數據幀,然后由序列生成器讀出。序列生成器根據PCM時鐘速率產生串行移出的PCM原始數據將來自FIFO的32位并行數據轉換為串行輸出,同時根據移位寄存器的狀態產生發向FIFO的讀數請求:

2 WDM驅動程序的結構及特點

WDM(Windows Driver Model)是在原有的NT內核模式驅動程序的基礎上發展來的,他增加了PnP(Plugand Play)、電源管理、WMI(Windows Management Instru—mentation)等功能。WDM模型的層次結構如圖2所示。

層次結構可以使I/O請求過程更加清晰。影響設備的每一個操作都使用I/O請求包(IRP),通常IRP被送到設備堆棧的最上層,然后逐漸過濾到下層驅動程序。每處理1個IRP,I/O管理器就調用1次StartIO例程,從而著手IRP處理工作;如何處理完全取決于具體的設備,調用驅動程序中相應的例程。驅動程序處理完IRP后,會將結果返回給I/O管理器,再由I/O管理器返回給用戶應用程序。

3 PCM遙測數據發送卡WDM驅動程序的設計

在設備的驅動程序設計中,需要處理PCI設備的硬件讀寫、中斷處理、DMA等功能。可以把驅動程序視為一個框架和若干例程的結合體,各個例程處理不同的IRP,而框架負責在IRP到來時調用相應的例程。利用Driver—Works的驅動程序向導(Driver Wizard)新建一個PCI設備驅動程序框架,然后在這個框架基礎上添加必要的實現功能的處理代碼,就可以完成整個驅動程序的設計。下面以PCM遙測數據發送卡為例討論其主要的功能驅動程序例程的實現。

3.1硬件初始化例程

OnStartDevice(KIrp I)參數例程中包含2種系統分配的資源配置信息:原始的資源配置信息(AllocatedRe—sources);轉換后的資源配置信息(AllocatedResourcesTranslated)。因為I/O總線和CPU在尋址物理硬件的方式不同,所以存在2種資源列表。從注冊表、PCI配置空間和其他地方獲取原始的資源值和轉換這些值的操作全部由PnP管理器完成,WDM驅動程序需要做的僅是從設備啟動IRP中獲取這些資源。

3.2 中斷服務例程

中斷服務例程運行在DIRQL級別上,需要盡可能快地運行。本設計在中斷服務例程中,首先判斷中斷是否自己設備產生的,如果是,則調用一個在DISPATCH_LEV—EL級別上運行的延遲過程調用(DPC)。當中斷服務例程完成后,一旦處理器獲得DISPATH_LEVEI。運行權,就會運行DPC。中斷服務例程流程圖如3所示。

3.3 中斷延遲調用例程

在延遲調用例程中,判斷中斷原因如果是DMA中斷就啟動DMA繼續發送。如果是發送通道中斷,則判斷通道號,并把相應軟件FIFO里面的待發送數據傳送到硬件FIFO里。在此過程中需要檢查在將軟件FIFO中的數據寫入硬件FIFO中后,如果軟件FIFO已被讀空,則應禁止通道中斷,否則通道中斷因為優先級高,會一直于有效狀態,導致系統死鎖。而在用戶程序寫軟件FIFO的處理函數中,檢查通道中斷,如果被禁止,則應將新寫入軟件FIFO的數據讀取一部分寫入硬件FIFO中,然后開啟通道中斷。

3.4應用程序與驅動程序的通信例程

DeviceControl(KIrp I)主要用于應用程序與驅動程序之間的通信,如向硬件讀寫數據以及軟件FIFO的操作等。DevcieControl響應用戶應用程序DeviceloControl()發送的IRP,根據IOCTL代碼來判斷調用子處理函數PCI_9054_IOCTL_READ_Handler(I),PCI_9054_IOCTL_WRITE_Handler(I).DEV_IOCTL_TXI_FIFO_WRITE_Handler(I)分別完成對硬件的讀寫和軟件FIFO的寫操作。

3.5 DMA傳輸操作

硬件FIFO半滿時產生通道中斷,在DPC里,判斷是通道中斷,則初始化KDmaTransfer,然后調用OnD-maReady();在OnDmaReady()中啟動首次DMA傳輸,傳輸時發生中斷,在DPC中判斷是否DMA中斷,如果是,則調用Continue()再次啟動下次傳輸,至此全總數據傳輸完成。其流程圖如圖4所示。

4 驅動程序編譯、調試和安裝

當驅動程序編寫完成后,必須在DDK環境下進行編譯,執行Rebuild aIl命令,編譯完成后生成*.sys文件和*.inf文件。調試工具使用Softlce,基本過程如下:

(1)使用Symbol Loader加載驅動程序*.nms文件,然后激活Softlee,設置斷點跟蹤調試;

(2)用Genint命令產生虛擬中斷測試,中斷服務例程;

(3)根據需要測試其他功能。驅動程序的安裝需要對DriverWizard生成的.INF文件進行修改,安裝就是根據INF文件的信息,把編譯好的驅動程序拷貝到特定的目錄,并修改注冊表來注冊該驅動程序的參數。

5 結 語

本文編寫的驅動程序在以前的驅動程序基礎上,在驅動程序里增加一個相當于二級緩存的軟件FIFO;有效地提高了數據的響應速度,從而實現更高的數據發送速率;解決了以前在遙測數據發送碼速率較高情況下,出現數據幀不連續導致數據接收碼同步死鎖的現象。本文的驅動程序已成功的應用于所開發的PCM高速遙測數據發送卡,與同期開發的PCM遙測數據接收卡進行長時間的聯接調試。實踐證明他們可以在10 Mb/s的碼速率上可靠工作,而無死鎖或數據幀丟失現象。

主站蜘蛛池模板: 一级毛片中文字幕| 99在线观看国产| 99久久精品国产综合婷婷| 亚洲高清无在码在线无弹窗| 精品99在线观看| 五月婷婷综合色| 亚洲资源在线视频| 国产精品丝袜视频| 亚洲无码高清一区| 亚洲成人在线网| 国产成人精品高清在线| 天天综合色网| 亚洲欧美激情小说另类| h网站在线播放| 一区二区在线视频免费观看| 亚洲av色吊丝无码| 日韩国产无码一区| 国产美女无遮挡免费视频网站 | 高清不卡一区二区三区香蕉| 久久久久青草线综合超碰| 国产成人精品亚洲日本对白优播| 亚洲最大看欧美片网站地址| 日韩精品欧美国产在线| 欧美人与性动交a欧美精品| 久久久久中文字幕精品视频| 国产永久无码观看在线| 亚洲最大福利视频网| 欧美成人看片一区二区三区| 亚洲清纯自偷自拍另类专区| 三上悠亚一区二区| 日本爱爱精品一区二区| 亚洲 欧美 偷自乱 图片| 九色在线观看视频| 国产一区亚洲一区| 91亚瑟视频| 亚洲精品无码久久毛片波多野吉| 国产91av在线| 四虎精品国产AV二区| 亚洲h视频在线| 国产成人无码AV在线播放动漫| 亚洲女人在线| 国产内射一区亚洲| 五月丁香伊人啪啪手机免费观看| 亚洲国产看片基地久久1024| 国内熟女少妇一线天| 久久激情影院| 色婷婷狠狠干| 精品一区二区三区四区五区| 欧美影院久久| 黄色网站在线观看无码| 欧美国产日韩在线观看| 激情六月丁香婷婷四房播| 人妻少妇久久久久久97人妻| 久久精品国产亚洲麻豆| 亚洲色成人www在线观看| 亚洲AV免费一区二区三区| 特级做a爰片毛片免费69| 福利一区在线| 欧美精品H在线播放| 国产草草影院18成年视频| 国产人妖视频一区在线观看| 亚洲精品大秀视频| 天天综合网色| 亚洲第一极品精品无码| 国产福利一区视频| 天天综合网站| 日韩123欧美字幕| 精品久久久久久久久久久| 日韩免费毛片视频| 国产成人a毛片在线| 五月婷婷欧美| 亚洲无卡视频| 欧美成人看片一区二区三区 | 亚洲精品午夜天堂网页| 国产伦精品一区二区三区视频优播| 色综合天天娱乐综合网| 亚洲人成网站在线观看播放不卡| 色哟哟国产成人精品| 凹凸国产分类在线观看| 国产爽妇精品| 色婷婷啪啪| 亚洲国产看片基地久久1024|