自制便攜式虛擬儀器的一種快速實(shí)現(xiàn)方法
圖 一
數(shù)據(jù)采集卡的工作原理:
首先,PC機(jī)上發(fā)出啟動(dòng)數(shù)據(jù)采集的請(qǐng)求,MAXIM114開始進(jìn)行信號(hào)采樣以及模數(shù)轉(zhuǎn)換,模數(shù)轉(zhuǎn)換后的結(jié)果存儲(chǔ)到雙端口存儲(chǔ)器IDT7024 中,IDT7024的存儲(chǔ)深度為2K,單片機(jī)SST89E564通過輪詢計(jì)數(shù)器54HC4040的BA10位,一旦發(fā)現(xiàn)此位變?yōu)楦唠娢?,便從雙端口數(shù)據(jù)存儲(chǔ)器中讀出數(shù)據(jù),并把數(shù)據(jù)傳給USB接口送往PC機(jī)。其中,當(dāng)雙端口存儲(chǔ)器IDT7024存滿2K個(gè)數(shù)據(jù)時(shí)便給計(jì)數(shù)器54HC4040發(fā)出清零信號(hào),從此雙端口存儲(chǔ)器IDT7024進(jìn)行下一輪的2K數(shù)據(jù)存儲(chǔ)的過程。USB接口中的數(shù)據(jù)傳輸方式有控制傳輸、中斷傳輸、批量傳輸和同步傳輸。根據(jù)USB接口芯片 PDIUSBD12的特點(diǎn),在此,USB數(shù)據(jù)傳輸采用非同步的批量傳輸方式,單片機(jī)SST89E564一次只能發(fā)送64字節(jié)的數(shù)據(jù)給USB接口芯片 PDIUSBD12。
B) 軟件設(shè)計(jì)
軟件部分的設(shè)計(jì)分為:數(shù)據(jù)采集板卡底層固件開發(fā)、板卡的驅(qū)動(dòng)程序的開發(fā)和上層應(yīng)用程序的開發(fā)。
?。?)對(duì)于帶有USB接口的數(shù)據(jù)采集板卡的固件開發(fā),主要有主循環(huán)程序(發(fā)送USB請(qǐng)求、處理USB總線事件和自定義功能處理)、硬件提取層程序(對(duì)單片機(jī)的I/O口、數(shù)據(jù)總線等硬件接口進(jìn)行操作)、PDIUSBD12命令接口程序(對(duì)PDIUSBD12器件進(jìn)行操作的模塊子程序集)、中斷服務(wù)程序(當(dāng)PDIUSBD12向單片機(jī)發(fā)出中斷請(qǐng)求時(shí),讀取PDIUSBD12的中斷傳輸來的數(shù)據(jù),并設(shè)定事件標(biāo)志和Setup包數(shù)據(jù)緩沖區(qū)傳輸給主循環(huán)程序)和標(biāo)準(zhǔn)請(qǐng)求處理程序(對(duì)USB的標(biāo)準(zhǔn)設(shè)備請(qǐng)求進(jìn)行處理)。全部的程序都是用C51編寫的,在這不列出具體的程序。
(2)在編好了單片機(jī)中的固件程序以后,進(jìn)行USB板卡的驅(qū)動(dòng)程序編寫。開發(fā)驅(qū)動(dòng)程序的工具有windriver、微軟提供的DDK和 Compuware的DriverStudio工具包,我們使用DriverStudio驅(qū)動(dòng)程序開發(fā)工具,對(duì)于熟悉面向?qū)ο缶幊痰能浖_發(fā)員,DriverStudio是一個(gè)良好的驅(qū)動(dòng)開發(fā)工具,并且開發(fā)時(shí)間比較短。DriverStudio工具包中的DriverWorks提供了三個(gè)類:KDriver、KPnpDevice和KPnpLowerDevice,這三個(gè)類用于實(shí)現(xiàn)WDM驅(qū)動(dòng)程序的框架結(jié)構(gòu)。
在用到以上類外,開發(fā)USB驅(qū)動(dòng)程序還用到了DriverWorks提供的三個(gè)用于實(shí)現(xiàn)USB設(shè)備操作的類:KUsbLowerDevice、 KUsbInterface和KUsbPipe類。其中,KPnpLowerDevice實(shí)例代表端點(diǎn)0,允許USB驅(qū)動(dòng)程序通過默認(rèn)控制管道控制USB 設(shè)備,如配置USB設(shè)備,傳輸各種控制和狀態(tài)請(qǐng)求;KusbInterface類的作用更多是結(jié)構(gòu)上的而非功能上的,其成員函數(shù)幾乎不與實(shí)際物理設(shè)備交互作用,驅(qū)動(dòng)程序用這個(gè)類獲取接口和管道信息;KusbPipe類對(duì)應(yīng)與管道,管道是主機(jī)和一個(gè)端點(diǎn)的信息連接,這個(gè)類用于初始化管道信息和管道操作控制。驅(qū)動(dòng)程序代碼在此略。
?。?)虛擬儀器軟面板的開發(fā)在LABWINDOWS提供的CVI環(huán)境下完成的。這種圖形開發(fā)環(huán)境比其它高級(jí)語(yǔ)言(C和VC)開發(fā)的圖形界面不僅容易而且效果更好。并且這個(gè)工具提供了許多信號(hào)處理算法的功能模塊。用戶可以在應(yīng)用控制面板上自由組合所需要的信號(hào)處理功能。能夠?qū)崿F(xiàn)數(shù)據(jù)處理和信號(hào)較正確的實(shí)時(shí)顯示的效果。如果有C或者VC編程基礎(chǔ),可以在較短時(shí)間編寫出比較完美的所要的應(yīng)用程序。在這不列寫出具體的程序。
3. 總論
自制便攜式虛擬儀器設(shè)計(jì)已經(jīng)完成,基本上能滿足我們所需的工程項(xiàng)目的測(cè)試要求,而且運(yùn)行良好。證實(shí)了一種快速的、經(jīng)濟(jì)的和有效的虛擬儀器設(shè)計(jì)方法。但是在虛擬儀器精度和實(shí)時(shí)顯示功能方面還是有待提高,這是在和大公司的虛擬儀器相比下的不足之處。這些值得我們繼續(xù)深入鉆研的地方。
參考文獻(xiàn):
[1] 沈蘭蓀 高速數(shù)據(jù)采集系統(tǒng)的原理與應(yīng)用 人民郵電出版社,1995
[2] 邱寄帆 虛擬數(shù)字存儲(chǔ)示波器高速數(shù)據(jù)采集卡的設(shè)計(jì)與實(shí)現(xiàn) 電測(cè)與儀表,2001年第6期
[3] 張風(fēng)均等 LabWindows/CVI 開發(fā)入門和進(jìn)階 .北京:北京航空航天大學(xué)出版社,2001
[4] Walter Oney Programming the Windows Driver Model MicroSoft Press ,1999
評(píng)論