《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 新型便攜式數(shù)據(jù)采集檢測(cè)系統(tǒng)的實(shí)現(xiàn)
新型便攜式數(shù)據(jù)采集檢測(cè)系統(tǒng)的實(shí)現(xiàn)
來(lái)源:微型機(jī)與應(yīng)用2011年第7期
胡長(zhǎng)暉,,葉夢(mèng)君
(湖北師范學(xué)院 控制科學(xué)與工程系,湖北 黃石 435002)
摘要: 介紹了一種新型便攜式數(shù)據(jù)采集檢測(cè)系統(tǒng),,該系統(tǒng)的數(shù)據(jù)采集設(shè)備采用USB接口傳輸數(shù)據(jù),基于Lab Windows CVI的簡(jiǎn)易虛擬示波器能顯示數(shù)據(jù)和控制數(shù)據(jù)采集設(shè)備。重點(diǎn)闡述了系統(tǒng)軟件實(shí)現(xiàn)的技術(shù)細(xì)節(jié),。測(cè)試結(jié)果表明,,該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,、可靠性高、應(yīng)用靈活、易于擴(kuò)展,具有廣泛的應(yīng)用前景,。
Abstract:
Key words :

摘  要: 介紹了一種新型便攜式數(shù)據(jù)采集檢測(cè)系統(tǒng),該系統(tǒng)的數(shù)據(jù)采集設(shè)備采用USB接口傳輸數(shù)據(jù),,基于Lab Windows CVI的簡(jiǎn)易虛擬示波器能顯示數(shù)據(jù)和控制數(shù)據(jù)采集設(shè)備,。重點(diǎn)闡述了系統(tǒng)軟件實(shí)現(xiàn)的技術(shù)細(xì)節(jié)。測(cè)試結(jié)果表明,,該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,、可靠性高、應(yīng)用靈活,、易于擴(kuò)展,,具有廣泛的應(yīng)用前景。
關(guān)鍵詞: 通用串行總線,;虛擬示波器,;Lab Windows CVI;MAX1247,;PDIUSBD12

 數(shù)據(jù)采集檢測(cè)系統(tǒng)早已廣泛應(yīng)用于工業(yè)生產(chǎn)及信息監(jiān)測(cè)等領(lǐng)域,。目前市面上的產(chǎn)品都存在這樣或那樣的不足,如體積龐大不利于攜帶,,價(jià)格昂貴難以推廣,,采用RS-232接口傳輸速率低,安裝在計(jì)算機(jī)內(nèi)部受計(jì)算機(jī)插槽數(shù)量,、地址,、中斷資源的限制,不利于操作,。本數(shù)據(jù)采集檢測(cè)系統(tǒng)采用USB接口傳輸數(shù)據(jù),,具有較高的傳輸速率,且可靠性高,,數(shù)據(jù)不易丟失,,抗干擾性強(qiáng);采用基于PC的虛擬示波器檢測(cè)采樣對(duì)象,,進(jìn)行數(shù)據(jù)顯示,、分析處理,很好地解決了上述問(wèn)題,。
1 系統(tǒng)總體設(shè)計(jì)方案
 數(shù)據(jù)采集檢測(cè)系統(tǒng)的總體結(jié)構(gòu)如圖1所示,。

 USB設(shè)備芯片PDIUSBD12是NXP公司在USB1.1協(xié)議設(shè)備端使用最多、技術(shù)最成熟的芯片之一,,片內(nèi)集成了高性能的串行接口引擎和3個(gè)端點(diǎn)的FIFO緩沖區(qū),,其中端點(diǎn)2具有64 B的雙緩沖區(qū),適合數(shù)據(jù)傳輸量較大的場(chǎng)合應(yīng)用,。PDIUSBD12與NXP公司的8位MCU P89C58x2FN實(shí)現(xiàn)數(shù)據(jù)交換簡(jiǎn)單可靠,。MAXIM公司的12位4通道A/D轉(zhuǎn)換器MAX1247,有較快的轉(zhuǎn)換速率(7.5 μs),,在軟件控制下能實(shí)現(xiàn)對(duì)正負(fù)電壓信號(hào)量的讀取,。
 本系統(tǒng)主要由基于PC(USB Host)的虛擬示波器和數(shù)據(jù)采集設(shè)備(USB Device)兩部分組成。A/D轉(zhuǎn)換器MAX1247可最多連接4路模擬電壓信號(hào)量,,轉(zhuǎn)換為數(shù)字量后通過(guò)其片上SPI接口傳輸給主控制器P89C59x2FN,。主控制器將采集的數(shù)據(jù)包傳輸給USB接口芯片PDIUSBD12,數(shù)據(jù)將按照USB協(xié)議被傳輸給USB主機(jī)(PC),,通過(guò)USB設(shè)備驅(qū)動(dòng),,動(dòng)態(tài)鏈接庫(kù),,數(shù)據(jù)最后在虛擬示波器中顯示并進(jìn)行相關(guān)的處理。數(shù)據(jù)采集設(shè)備通過(guò)USB電纜線連接到PC后即上電,,它將以初始采樣頻率采集數(shù)據(jù),,并傳輸?shù)教摂M示波器中。
2 系統(tǒng)軟件的設(shè)計(jì)
2.1 虛擬示波器軟件設(shè)計(jì)

 虛擬示波器使用Lab Windows CVI 8.0開(kāi)發(fā),,運(yùn)行界面如圖2所示,。

 

 

 虛擬示波器的主要功能是顯示數(shù)據(jù),進(jìn)行數(shù)據(jù)處理,,發(fā)出命令,,設(shè)置數(shù)據(jù)采集設(shè)備的工作狀態(tài)。數(shù)據(jù)的讀取由封裝在動(dòng)態(tài)鏈接庫(kù)中的讀端點(diǎn)2函數(shù)(unsigned long_stdcall ReadPort2(unsigned char*pData,,unsigned long iLen))實(shí)現(xiàn),,讀取的數(shù)據(jù)被存放到顯示數(shù)組(static double measureData[BUFFER_SIZE])中。為了保持顯示數(shù)據(jù)的波形是連續(xù)的,、緩和的,,顯示數(shù)組的容量(512 B)8倍于讀端點(diǎn)2數(shù)據(jù)包的容量(64 B),在每次將讀取的數(shù)據(jù)存放到顯示數(shù)組的首部前,,要將顯示數(shù)組的數(shù)據(jù)向尾部移動(dòng)64 B,,其過(guò)程如圖3所示。數(shù)據(jù)經(jīng)坐標(biāo)化處理后,,通過(guò)Lab Windows CVI控件函數(shù)即可顯示,。顯示原則是先接收到的數(shù)據(jù)先顯示。

 從虛擬示波器發(fā)出的控制指令通過(guò)寫(xiě)端點(diǎn)2函數(shù)(unsigned long_stdcall WritePort2(unsigned char*pData,, unsigned long iLen))傳輸給數(shù)據(jù)采集設(shè)備,。修改數(shù)據(jù)采集設(shè)備的采樣頻率時(shí),實(shí)際傳輸給數(shù)據(jù)采集設(shè)備的是定時(shí)器T1的中斷計(jì)數(shù)初值,,該初值是在虛擬示波器中由采樣頻率值計(jì)算得出,。這種處理可以節(jié)省單片機(jī)處理時(shí)間。
 A/D芯片MAX1247的精度為12位,,數(shù)據(jù)采集設(shè)備以單字節(jié)方式將數(shù)據(jù)傳輸?shù)教摂M示波器中,,數(shù)據(jù)包中相鄰兩字節(jié)為一個(gè)有效的樣點(diǎn)。而數(shù)據(jù)在虛擬示波器中以有效樣點(diǎn)為處理單元,。在軟件上使用聯(lián)合體變量實(shí)現(xiàn)兩個(gè)單字節(jié)數(shù)據(jù)到雙字節(jié)數(shù)據(jù)的轉(zhuǎn)換,。定義的聯(lián)合體adata包括兩個(gè)成員,其中char類型的成員PortBuf[64]接收數(shù)據(jù)包,,與其同首地址的short int類型成員PortBuf2[32]用于虛擬示波器中對(duì)采樣數(shù)據(jù)的處理,,這樣處理效率高。
2.2 USB設(shè)備驅(qū)動(dòng)和動(dòng)態(tài)連接庫(kù)
 USB設(shè)備驅(qū)動(dòng)程序D12TEST.SYS是用Win DDK 開(kāi)發(fā)的,EasyD12.dll動(dòng)態(tài)連接庫(kù)是用VC++開(kāi)發(fā)的,,D12TEST.SYS和EasyD12.dll是連接虛擬示波器和USB數(shù)據(jù)采集設(shè)備的橋梁,。D12TEST.SYS把虛擬示波器發(fā)出的讀/寫(xiě)命令變成規(guī)范的USB請(qǐng)求包傳給USB數(shù)據(jù)采集設(shè)備。EasyD12.dll中封裝了PDIUSBD12的端點(diǎn)2的讀/寫(xiě)函數(shù),,通過(guò)這兩個(gè)函數(shù)實(shí)現(xiàn)從虛擬示波器到數(shù)據(jù)采集設(shè)備的端到端數(shù)據(jù)交換,。
2.3 數(shù)據(jù)采集設(shè)備軟件設(shè)計(jì)
 數(shù)據(jù)采集設(shè)備軟件使用Keil C51開(kāi)發(fā),,軟件結(jié)構(gòu)采用前后臺(tái)系統(tǒng),,后臺(tái)程序流程如圖4所示,它是一個(gè)無(wú)限循環(huán),,循環(huán)中不斷檢測(cè)USB的連接狀態(tài),。如果連接正常,就檢測(cè)數(shù)據(jù)發(fā)送允許位是否有效,,如有效,,將數(shù)據(jù)傳送到PDIUSBD12的端點(diǎn)2的FIFO緩沖區(qū)中。

 前臺(tái)程序由中斷服務(wù)程序組成,,主要包括兩個(gè)部分:(1)基于PDIUSBD12的USB協(xié)議相關(guān)的中斷服務(wù)程序,,中斷源是P89C58x2FN的外部中斷INT0。由PIDUSBD12主動(dòng)發(fā)起的任何與P89C58x2FN的信息交換都是通過(guò)外部中斷INT0來(lái)實(shí)現(xiàn),。單片機(jī)讀取PDIUSBD12的中斷寄存器后,,執(zhí)行相應(yīng)的中斷服務(wù)子程序。(2)數(shù)據(jù)采集的中斷服務(wù)程序,。數(shù)據(jù)采集中斷服務(wù)程序流程如圖5所示,,數(shù)據(jù)采集使用定時(shí)器T1實(shí)現(xiàn)定時(shí)中斷采樣,每中斷一次采集一次樣點(diǎn),。進(jìn)入中斷服務(wù)程序就對(duì)定時(shí)器T1的計(jì)數(shù)初值進(jìn)行處理,,這樣由采樣頻值計(jì)算計(jì)數(shù)初值時(shí),就不用加入修正值,。否則,,單片機(jī)執(zhí)行中斷服務(wù)程序的耗時(shí)在計(jì)算計(jì)數(shù)初值時(shí)是不能忽略的。在主程序中A/D初始化時(shí)完成了寫(xiě)A/D控制字,,在中斷服務(wù)程序中,,先讀取A/D轉(zhuǎn)換結(jié)果,然后再寫(xiě)A/D控制字,,啟動(dòng)A/D轉(zhuǎn)換,,這樣處理使A/D在輸出結(jié)果前有充足的時(shí)間來(lái)完成模擬量到數(shù)字量的轉(zhuǎn)換。
2.4 A/D采樣轉(zhuǎn)換程序設(shè)計(jì)
 A/D采用具有片上SPI接口的MAX1247芯片,, P89C58x2FN片上沒(méi)有SPI接口,,在A/D采樣轉(zhuǎn)換程序設(shè)計(jì)中,采用軟件模擬SPI主機(jī)模式,。MAX1247的外部時(shí)鐘模式轉(zhuǎn)換時(shí)序如圖6所示,。A/D轉(zhuǎn)換控制原理是,,在每個(gè)外部時(shí)鐘脈沖的上升沿,將控制字的一位寫(xiě)入MAX1247,,寫(xiě)入控制字(一個(gè)字節(jié))后轉(zhuǎn)換啟動(dòng),,在每個(gè)外部時(shí)鐘脈沖的下降沿,將一位的轉(zhuǎn)換結(jié)果從MAX1247中讀出,。這樣寫(xiě)入一個(gè)控制字需要8個(gè)外部時(shí)鐘脈沖,,讀出一個(gè)轉(zhuǎn)換結(jié)果需要16個(gè)時(shí)鐘脈沖,其中前12個(gè)時(shí)鐘脈沖讀出有效的轉(zhuǎn)換結(jié)果,。

 對(duì)A/D的控制頻繁地使用了位操作,,采用匯編語(yǔ)言編程具有明顯的效率優(yōu)勢(shì)。寫(xiě)控制字和讀采樣轉(zhuǎn)換結(jié)果程序流程如圖7所示,,數(shù)據(jù)采集設(shè)備的主程序采用C語(yǔ)言編寫(xiě),,在C語(yǔ)言中調(diào)用匯編語(yǔ)言子程序?qū)崿F(xiàn)主控制器對(duì)A/D的控制。

 寫(xiě)控制字和讀采樣轉(zhuǎn)換結(jié)果分屬兩個(gè)不同的匯編子程序模塊,,C語(yǔ)言程序調(diào)用匯編子程序模塊,,需要在匯編模塊前做PUBLIC聲明,使用偽指令使CODE選項(xiàng)有效,,并聲明為可再定位段類型,,再選擇為當(dāng)前段,函數(shù)名大,。然后在C主程序中對(duì)函數(shù)進(jìn)行外部聲明,,就可以像調(diào)用普通的extern函數(shù)一樣調(diào)用匯編語(yǔ)言子程序模塊。
3 數(shù)據(jù)采集檢測(cè)系統(tǒng)的測(cè)試
 香農(nóng)采樣定理規(guī)定采樣頻率必須是信號(hào)頻率的2倍以上,,才能完整保留原始信號(hào)的信息,。對(duì)于復(fù)雜的規(guī)律性強(qiáng)的信號(hào),只有采樣頻率遠(yuǎn)高于信號(hào)頻率時(shí),,信號(hào)才能在虛擬示波器中連續(xù),、穩(wěn)定地顯示,并得到有效,、可靠的檢測(cè)結(jié)果,。如圖8所示是采樣頻率為1 000 Hz、正弦波信號(hào)頻率為10 Hz的顯示效果,。

 在本數(shù)據(jù)采集檢測(cè)系統(tǒng)中,,嵌入各種算法軟件模塊,可以很方便地對(duì)該數(shù)據(jù)進(jìn)行相關(guān)的測(cè)試與分析,。
將位置式PID算法和增量式PID算法的軟件代碼嵌入到虛擬示波器中,,測(cè)試結(jié)果如圖9和圖10所示。為了達(dá)到良好的測(cè)試視覺(jué)效果,這兩種算法的相關(guān)參數(shù)設(shè)置不同,。

 通過(guò)理論計(jì)算,,數(shù)據(jù)采集設(shè)備的最高采樣頻率約為13 kHz。經(jīng)過(guò)測(cè)試,,數(shù)據(jù)采集設(shè)備采集電壓信號(hào)量的頻率在500 Hz以下,,規(guī)律性、復(fù)雜性強(qiáng)的電壓信號(hào)量的數(shù)據(jù)波形能夠在虛擬示波器中連續(xù)地,、穩(wěn)定地顯示出來(lái),,數(shù)據(jù)經(jīng)計(jì)算處理后能達(dá)到很好的檢測(cè)效果。電壓信號(hào)量頻率過(guò)高,,則虛擬示波器檢測(cè)的數(shù)據(jù)波形穩(wěn)定性差,,檢測(cè)效果難以保證,。
 本數(shù)據(jù)采集檢測(cè)系統(tǒng)可以方便,、簡(jiǎn)單地應(yīng)用于被控對(duì)象頻率不高的采集檢測(cè)領(lǐng)域,并且采樣實(shí)時(shí)性好,、顯示穩(wěn)定,、容易嵌入各種數(shù)據(jù)分析算法。與其他數(shù)據(jù)采集檢測(cè)系統(tǒng)相比,,有體積小,、使用方便、即插即拔,、采用USB總線供電等優(yōu)點(diǎn),。本數(shù)據(jù)采集檢測(cè)系統(tǒng)在信號(hào)測(cè)試和系統(tǒng)監(jiān)測(cè)等瞬態(tài)信號(hào)的實(shí)時(shí)采集檢測(cè)場(chǎng)合有廣泛的應(yīng)用前景。
參考文獻(xiàn)
[1] 周立功.PDIUSBD12 USB固件編程與驅(qū)動(dòng)開(kāi)發(fā)[M].北京:北京航空航天大學(xué)出版社,,2003.
[2] 馬偉.計(jì)算機(jī)USB系統(tǒng)原理及其主/從機(jī)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,,2004.
[3] 高美珍,洪家平.基于USB接口和嵌入式芯片總線的數(shù)據(jù)采集系統(tǒng)[J].儀表技術(shù)與傳感器,,2005(8):51-53.
[4] 邢微,,劉開(kāi)華.數(shù)據(jù)采集系統(tǒng)USB2.0接口設(shè)計(jì)[J].電子測(cè)量技術(shù),2006,,29(1):12-13.
[5] 熊健民,,胡長(zhǎng)暉,宋庭新.USB數(shù)據(jù)采集卡的研制[J].湖北工業(yè)大學(xué)學(xué)報(bào),,2007,,22(3):6-9.
[6] 姜偉,鄭青,,季行健,,等.嵌入式USB數(shù)據(jù)采集系統(tǒng)[J].儀表技術(shù)與傳感器,2008(2):45-46.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。