“本文給出了一種基于PXI總線的數(shù)據(jù)采集系統(tǒng)的硬件原理框圖。針對(duì)該硬件系統(tǒng),采用DriverWorks驅(qū)動(dòng)程序開(kāi)發(fā)工具開(kāi)發(fā)了相應(yīng)的WDM驅(qū)動(dòng)程序和控制臺(tái)應(yīng)用程序?!?/p>
0 引 言
Windows驅(qū)動(dòng)程序模型(Windows driver model,WDM)是Microsoft公司力推的全新驅(qū)動(dòng)程序模式,與以前的驅(qū)動(dòng)程序模型比較,它支持即插即用(plug and play,PnP)、電源管理和Windows管理診斷WMI等技術(shù)。在Windows操作平臺(tái)上,WDM已成為主流的驅(qū)動(dòng)模型,但這也給WDM驅(qū)動(dòng)程序的開(kāi)發(fā)人員提出了許多新的挑戰(zhàn),即便是開(kāi)發(fā)和測(cè)試最簡(jiǎn)單的設(shè)備驅(qū)動(dòng)程序也變得比以前任何時(shí)候都復(fù)雜。
DriverWorks由NuMega公司開(kāi)發(fā),主要為開(kāi)發(fā)Windows98、Windows 2000和Windows NT的WDM設(shè)備驅(qū)動(dòng)程序提供了一個(gè)自動(dòng)化的方法,使驅(qū)動(dòng)程序的開(kāi)發(fā)相對(duì)于使用Microsoft公司提供的設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)包(device driverskit,DDK)工具更加容易;并且它可以集成到VC++6.0開(kāi)發(fā)環(huán)境中(后面要介紹的功能實(shí)現(xiàn)都是在用VC++6.0集成環(huán)境生成的驅(qū)動(dòng)程序框架中編寫(xiě)的),可以引導(dǎo)完成設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)的全過(guò)程,這樣就可以像生成其他工程一樣根據(jù)硬件種類(lèi)自動(dòng)生成設(shè)備驅(qū)動(dòng)程序框架,省去了大量編寫(xiě)代碼的時(shí)間。本文就是利用DriverWorks開(kāi)發(fā)工具開(kāi)發(fā)基于PXI總線的數(shù)據(jù)采集卡的WDM驅(qū)動(dòng)程序。
1 PXI總線數(shù)據(jù)采集卡的硬件框圖
該數(shù)據(jù)采集系統(tǒng)的硬件結(jié)構(gòu)框圖如圖1所示,該系統(tǒng)包括數(shù)據(jù)采集模塊、F先進(jìn)先出數(shù)據(jù)緩存模塊、接口電路模塊和CPLD系統(tǒng)控制器模塊4個(gè)部分。待采樣的模擬信號(hào)經(jīng)由數(shù)據(jù)采集模塊進(jìn)行數(shù)據(jù)采集,采樣后經(jīng)過(guò)轉(zhuǎn)換得到的數(shù)字信號(hào)先被送入先進(jìn)先出存儲(chǔ)器進(jìn)行緩存,當(dāng)緩存器所存儲(chǔ)的數(shù)據(jù)達(dá)到半滿/全滿時(shí),將發(fā)送一個(gè)半滿/全滿標(biāo)志信號(hào),觸發(fā)中斷,由系統(tǒng)控制器通過(guò)PXI總線讀取數(shù)據(jù)。整個(gè)系統(tǒng)的工作邏輯時(shí)序控制由1片CPLD控制芯片來(lái)編程實(shí)現(xiàn),接口邏輯采用通用的PXI總線接口邏輯芯片PCI9030來(lái)實(shí)現(xiàn)。
2 驅(qū)動(dòng)程序設(shè)計(jì)
2.1 中斷過(guò)程調(diào)用
當(dāng)FIFO數(shù)據(jù)緩存器讀取的數(shù)據(jù)達(dá)到半滿/全滿時(shí),其相應(yīng)半滿/全滿信號(hào)線會(huì)走低,該信號(hào)線與PCI9030芯片的外部觸發(fā)中斷輸入管腳相連,從而觸發(fā)中斷,主模塊通過(guò)PXI總線接口芯片讀取FIFO中的數(shù)據(jù),其中斷服務(wù)例程如下:
2.2 中斷延遲過(guò)程調(diào)用
中斷服務(wù)例程的處理時(shí)間應(yīng)當(dāng)盡可能短,并且由于中斷服務(wù)例程在DIRQL級(jí)別上運(yùn)行,很多函數(shù)不能調(diào)用,所以通常是在延遲過(guò)程調(diào)用例程中做大部分的中斷處理工作。本系統(tǒng)延遲例程調(diào)用相關(guān)程序如下:
2.3 讀取數(shù)據(jù)
對(duì)于數(shù)據(jù)的讀取,主要是在SerialRead()例程中實(shí)現(xiàn)的,其主要程序語(yǔ)句如下:
2.4 SerialWrite()例程
數(shù)據(jù)采集卡硬件系統(tǒng)的初始化和肩動(dòng)工作主要在Se-rialWrite例程中實(shí)現(xiàn),其相關(guān)部分程序如下:
3 應(yīng)用程序設(shè)計(jì)
編寫(xiě)驅(qū)動(dòng)程序本身不是最終目的,最終目的是調(diào)用驅(qū)動(dòng)程序管理資源,并為用戶應(yīng)用程序使用。這里采用的是console控制臺(tái)應(yīng)用程序,其基本框架也可以由Driverstuio自動(dòng)生成,只需在現(xiàn)有的框架里面插入相應(yīng)的代碼就可以了,其主函數(shù)main()的相應(yīng)代碼如下:
4 結(jié)束語(yǔ)
DriverWorks是一款功能強(qiáng)大、使用方便的驅(qū)動(dòng)程序開(kāi)發(fā)工具,利用它可以方便快捷地構(gòu)造PCI設(shè)備的驅(qū)動(dòng)程序框架,大大加快了開(kāi)發(fā)周期,提高了開(kāi)發(fā)效率??刂婆_(tái)應(yīng)用程序的優(yōu)點(diǎn)是開(kāi)發(fā)起來(lái)方便、快捷,但在數(shù)據(jù)的圖形化顯示方面卻有所不足,如果將驅(qū)動(dòng)程序與VC或者LabVIEW等圖形化應(yīng)用程序編程環(huán)境相結(jié)合,就可以編制出界面更加友好、功能更為強(qiáng)大的數(shù)據(jù)采集系統(tǒng)軟件平臺(tái)。
編輯:jq
-
數(shù)據(jù)采集
+關(guān)注
關(guān)注
39文章
6263瀏覽量
114095 -
DWDM
+關(guān)注
關(guān)注
0文章
118瀏覽量
36494 -
PXI總線
+關(guān)注
關(guān)注
1文章
30瀏覽量
11279
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
![](https://file1.elecfans.com/web3/M00/04/98/wKgZO2d2LqKAMxWBAAG9YDSmY64392.jpg)
什么是信號(hào)的時(shí)域和頻域?#時(shí)域 #頻域 #電工知識(shí) #數(shù)據(jù)采集卡
數(shù)據(jù)采集卡不會(huì)選型?指南來(lái)嘍!
![<b class='flag-5'>數(shù)據(jù)采集卡</b>不會(huì)選型?指南來(lái)嘍!](https://file1.elecfans.com/web1/M00/F5/D0/wKgaoWdEKZ2AWkDqAACJY8HLDwI075.png)
圖像采集卡的保養(yǎng)和維護(hù)
![圖像<b class='flag-5'>采集卡</b>的保養(yǎng)和維護(hù)](https://file1.elecfans.com/web2/M00/EB/A1/wKgZomZe5fWAXs4EAABHp9zbA6E074.png)
![](https://file1.elecfans.com/web2/M00/0A/F8/wKgZomcrFtGABHyFAAH8JB2EFlA874.jpg)
數(shù)據(jù)采集卡不會(huì)用?看完秒懂!#數(shù)據(jù)采集 #儀器儀表 #工業(yè)自動(dòng)化
TSW1418EVM高速數(shù)據(jù)采集卡
![TSW1418EVM高速<b class='flag-5'>數(shù)據(jù)采集卡</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
![](https://file1.elecfans.com/web2/M00/0A/D5/wKgZomcpeCiAbiYVAALFjD49-j4453.jpg)
數(shù)據(jù)采集卡VS傳統(tǒng)儀表#數(shù)據(jù)采集卡 #儀器儀表 #電子技術(shù)
圖像采集卡:增強(qiáng)視覺(jué)數(shù)據(jù)采集
![圖像<b class='flag-5'>采集卡</b>:增強(qiáng)視覺(jué)<b class='flag-5'>數(shù)據(jù)采集</b>](https://file1.elecfans.com/web2/M00/EB/A1/wKgZomZe5fWAXs4EAABHp9zbA6E074.png)
EPSON差分振蕩器賦能數(shù)據(jù)采集卡,讓數(shù)據(jù)更精準(zhǔn)
![EPSON差分振蕩器賦能<b class='flag-5'>數(shù)據(jù)采集卡</b>,讓<b class='flag-5'>數(shù)據(jù)</b>更精準(zhǔn)](https://file1.elecfans.com/web2/M00/FE/92/wKgaomad_dGAMmZNAADO3OIHyTY063.png)
YXC差分振蕩器賦能數(shù)據(jù)采集卡,讓數(shù)據(jù)更精準(zhǔn)!
多通道數(shù)據(jù)采集卡各通道不獨(dú)立的原因
數(shù)字采集卡有哪些 數(shù)字采集卡的作用是什么
簡(jiǎn)單易用的以太網(wǎng)數(shù)據(jù)采集卡應(yīng)用開(kāi)發(fā)之C#
![簡(jiǎn)單易用的以太網(wǎng)<b class='flag-5'>數(shù)據(jù)采集卡</b>應(yīng)用開(kāi)發(fā)之C#](https://file1.elecfans.com/web2/M00/E6/62/wKgZomZG8sWAZeMgAALpaQWmoUo200.png)
ni數(shù)據(jù)采集卡的工作原理解析
![](https://file1.elecfans.com/web2/M00/C2/56/wKgaomXdqC6APjvHAAUCsOCIUx8149.jpg)
【數(shù)據(jù)采集卡怎么選?】數(shù)據(jù)采集卡選型指南#數(shù)據(jù)采集卡 #plc #機(jī)械制造 #pcb
![](https://file1.elecfans.com/web2/M00/C1/B1/wKgaomXYWSaAbf_5AASgkk3N4fs975.jpg)
評(píng)論