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

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

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

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

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

 

 

 虛擬示波器的主要功能是顯示數(shù)據(jù),進(jìn)行數(shù)據(jù)處理,,發(fā)出命令,設(shè)置數(shù)據(jù)采集設(shè)備的工作狀態(tài),。數(shù)據(jù)的讀取由封裝在動態(tài)鏈接庫中的讀端點(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ù)向尾部移動64 B,其過程如圖3所示,。數(shù)據(jù)經(jīng)坐標(biāo)化處理后,,通過Lab Windows CVI控件函數(shù)即可顯示,。顯示原則是先接收到的數(shù)據(jù)先顯示。

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

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

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

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

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

 通過理論計(jì)算,數(shù)據(jù)采集設(shè)備的最高采樣頻率約為13 kHz,。經(jīng)過測試,,數(shù)據(jù)采集設(shè)備采集電壓信號量的頻率在500 Hz以下,規(guī)律性,、復(fù)雜性強(qiáng)的電壓信號量的數(shù)據(jù)波形能夠在虛擬示波器中連續(xù)地,、穩(wěn)定地顯示出來,數(shù)據(jù)經(jīng)計(jì)算處理后能達(dá)到很好的檢測效果,。電壓信號量頻率過高,,則虛擬示波器檢測的數(shù)據(jù)波形穩(wěn)定性差,檢測效果難以保證,。
 本數(shù)據(jù)采集檢測系統(tǒng)可以方便,、簡單地應(yīng)用于被控對象頻率不高的采集檢測領(lǐng)域,并且采樣實(shí)時性好,、顯示穩(wěn)定,、容易嵌入各種數(shù)據(jù)分析算法。與其他數(shù)據(jù)采集檢測系統(tǒng)相比,,有體積小,、使用方便、即插即拔、采用USB總線供電等優(yōu)點(diǎn),。本數(shù)據(jù)采集檢測系統(tǒng)在信號測試和系統(tǒng)監(jiān)測等瞬態(tài)信號的實(shí)時采集檢測場合有廣泛的應(yīng)用前景,。
參考文獻(xiàn)
[1] 周立功.PDIUSBD12 USB固件編程與驅(qū)動開發(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] 邢微,,劉開華.數(shù)據(jù)采集系統(tǒng)USB2.0接口設(shè)計(jì)[J].電子測量技術(shù),,2006,29(1):12-13.
[5] 熊健民,,胡長暉,,宋庭新.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)載,。