基于PXI總線的數(shù)據(jù)采集卡的WDM驅(qū)動程序設(shè)計
出處:davina 發(fā)布于:2007-06-28 23:41:03
Windows驅(qū)動程序模型(Windows driver model,WDM)是Microsoft公司力推的全新驅(qū)動程序模式,與以前的驅(qū)動程序模型比較,它支持即插即用(plug and play,PnP)、電源管理和Windows管理診斷WMI等技術(shù)。在Windows操作平臺上,WDM已成為主流的驅(qū)動模型,但這也給WDM驅(qū)動程序的開發(fā)人員提出了許多新的挑戰(zhàn),即便是開發(fā)和測試簡單的設(shè)備驅(qū)動程序也變得比以前任何時候都復(fù)雜。DriverWorks由NuMega公司開發(fā),主要為開發(fā)Windows98、Windows 2000和Windows NT的WDM設(shè)備驅(qū)動程序提供了一個自動化的方法,使驅(qū)動程序的開發(fā)相對于使用Microsoft公司提供的設(shè)備驅(qū)動程序開發(fā)包(device driverskit,DDK)工具更加容易;并且它可以集成到VC++6.0開發(fā)環(huán)境中(后面要介紹的功能實現(xiàn)都是在用VC++6.0集成環(huán)境生成的驅(qū)動程序框架中編寫的),可以引導(dǎo)完成設(shè)備驅(qū)動程序開發(fā)的全過程,這樣就可以像生成其他工程一樣根據(jù)硬件種類自動生成設(shè)備驅(qū)動程序框架,省去了大量編寫代碼的時間。本文就是利用DriverWorks開發(fā)工具開發(fā)基于PXI總線的數(shù)據(jù)采集卡的WDM驅(qū)動程序。
1 PXI總線數(shù)據(jù)采集卡的硬件框圖
該數(shù)據(jù)采集系統(tǒng)的硬件結(jié)構(gòu)框圖如圖1所示,該系統(tǒng)包括數(shù)據(jù)采集模塊、F先進先出數(shù)據(jù)緩存模塊、接口電路模塊和CPLD系統(tǒng)控制器模塊4個部分。待采樣的模擬信號經(jīng)由數(shù)據(jù)采集模塊進行數(shù)據(jù)采集,采樣后經(jīng)過轉(zhuǎn)換得到的數(shù)字信號先被送入先進先出存儲器進行緩存,當(dāng)緩存器所存儲的數(shù)據(jù)達到半滿/全滿時,將發(fā)送一個半滿/全滿標(biāo)志信號,觸發(fā)中斷,由系統(tǒng)控制器通過PXI總線讀取數(shù)據(jù)。整個系統(tǒng)的工作邏輯時序控制由1片CPLD控制芯片來編程實現(xiàn),接口邏輯采用通用的PXI總線接口邏輯芯片PCI9030來實現(xiàn)。
![]() |
2 驅(qū)動程序設(shè)計
2.1 中斷過程調(diào)用
當(dāng)FIFO數(shù)據(jù)緩存器讀取的數(shù)據(jù)達到半滿/全滿時,其相應(yīng)半滿/全滿信號線會走低,該信號線與PCI9030芯片的外部觸發(fā)中斷輸入管腳相連,從而觸發(fā)中斷,主模塊通過PXI總線接口芯片讀取FIFO中的數(shù)據(jù),其中斷服務(wù)例程如下:
![]() |
2.2 中斷延遲過程調(diào)用
中斷服務(wù)例程的處理時間應(yīng)當(dāng)盡可能短,并且由于中斷服務(wù)例程在DIRQL級別上運行,很多函數(shù)不能調(diào)用,所以通常是在延遲過程調(diào)用例程中做大部分的中斷處理工作。本系統(tǒng)延遲例程調(diào)用相關(guān)程序如下:
![]() |
2.3 讀取數(shù)據(jù)
對于數(shù)據(jù)的讀取,主要是在SerialRead()例程中實現(xiàn)的,其主要程序語句如下:
![]() |
![]() |
2.4 SerialWrite()例程
數(shù)據(jù)采集卡硬件系統(tǒng)的初始化和肩動工作主要在Se-rialWrite例程中實現(xiàn),其相關(guān)部分程序如下:
![]() |
3 應(yīng)用程序設(shè)計
編寫驅(qū)動程序本身不是終目的,終目的是調(diào)用驅(qū)動程序管理資源,并為用戶應(yīng)用程序使用。這里采用的是console控制臺應(yīng)用程序,其基本框架也可以由Driverstuio自動生成,只需在現(xiàn)有的框架里面插入相應(yīng)的代碼就可粵?,其主函数main()的相應(yīng)代碼如下:
![]() |
![]() |
4 結(jié)束語
DriverWorks是一款功能強大、使用方便的驅(qū)動程序開發(fā)工具,利用它可以方便快捷地構(gòu)造PCI設(shè)備的驅(qū)動程序框架,大大加快了開發(fā)周期,提高了開發(fā)效率??刂婆_應(yīng)用程序的優(yōu)點是開發(fā)起來方便、快捷,但在數(shù)據(jù)的圖形化顯示方面卻有所不足,如果將驅(qū)動程序與VC或者LabVIEW等圖形化應(yīng)用程序編程環(huán)境相結(jié)合,就可以編制出界面更加友好、功能更為強大的數(shù)據(jù)采集系統(tǒng)軟件平臺。
參考文獻:
[1]. CPLD datasheet http://www.hbjingang.com/datasheet/CPLD_1136600.html.
[2]. PCI9030 datasheet http://www.hbjingang.com/datasheet/PCI9030_543159.html.
[3]. PCI datasheet http://www.hbjingang.com/datasheet/PCI_1201469.html.
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- ARM技術(shù)架構(gòu)與應(yīng)用開發(fā)實踐指南2026/1/6 10:40:19
- 嵌入式實時操作系統(tǒng)(RTOS)選型與移植技術(shù)指南2025/12/31 10:42:31
- 工業(yè)嵌入式系統(tǒng):通信接口技術(shù)選型與抗干擾設(shè)計實踐2025/12/15 14:36:53
- 深入解析嵌入式 OPENAMP 框架:開啟異核通信新時代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎(chǔ)知識2025/7/14 16:59:04

















