基于嵌入式USB接口的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)
3 系統(tǒng)測試
3.1 測試條件與結(jié)果
本測試的目的在于檢驗(yàn)本文設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng)能否在采集頻率較高的情況下準(zhǔn)確地采集數(shù)據(jù),并通過USB接口完整地進(jìn)行數(shù)據(jù)傳輸。因此,測試將基于以下5個(gè)條件進(jìn)行。其中一個(gè)通道的部分測試數(shù)據(jù)結(jié)果如圖3所示。本文引用地址:http://cafeforensic.com/article/149746.htm
1)測試信號(hào)為正弦波,峰峰值約為12 V,頻率為100Hz。
2)系統(tǒng)以1000Hz的采集頻率連續(xù)對(duì)8個(gè)通道進(jìn)行采集。
3)單片機(jī)晶振頻率為12MHz。
4)采集系統(tǒng)的數(shù)據(jù)緩沖區(qū)設(shè)置為128字節(jié)。
5)采集數(shù)據(jù)記錄在SD卡中。
3.2 測試結(jié)果分析
由3.1的正弦波采集測試結(jié)果圖可以得出如下兩點(diǎn)結(jié)論:
1)采集的正弦波的峰峰值約為12 V,一個(gè)周期有10個(gè)數(shù)據(jù)點(diǎn),根據(jù)采集頻率1000Hz可知采集到的正弦波的頻率為100Hz。
2)在30 ms的時(shí)候,正弦波發(fā)生畸變,可見采集數(shù)據(jù)在USB傳輸過程中發(fā)生丟失。
第一點(diǎn)結(jié)論說明了本采集系統(tǒng)能準(zhǔn)確地進(jìn)行數(shù)據(jù)采集,而對(duì)于第二點(diǎn)結(jié)論所表現(xiàn)出的不完整性分析如下。
1)設(shè)V1是有效數(shù)據(jù)的傳輸速度,V2是協(xié)議開銷的傳輸速度,N為采集數(shù)據(jù)的通道數(shù)目,M為每通道采集的字節(jié)數(shù),H為采集頻率,K為緩沖區(qū)大小,U為傳輸?shù)膮f(xié)議開銷字節(jié)數(shù)。USB數(shù)據(jù)幀的組成包括有效數(shù)據(jù)和協(xié)議開銷兩個(gè)部分,其中傳輸協(xié)議的開銷包括同步字段、包標(biāo)識(shí)符、地址信息、端點(diǎn)信息和CRC校驗(yàn),所以數(shù)據(jù)采集系統(tǒng)要求的USB傳輸速度可根據(jù)公式(1)計(jì)算得到。本文設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng)共有8個(gè)通道,每通道有2個(gè)字節(jié)的數(shù)據(jù),采集頻率為1 000 Hz,根據(jù)公式(2)可得有效數(shù)據(jù)的傳輸速度約為16 kB/s。一個(gè)完整的數(shù)據(jù)幀的傳輸需要11個(gè)字節(jié)的協(xié)議開銷,本文設(shè)計(jì)的數(shù)據(jù)傳輸過程分為4個(gè)步驟:發(fā)送傳輸請(qǐng)求,發(fā)送接收控制命令,接收請(qǐng)求應(yīng)答,開始接收數(shù)據(jù),每個(gè)步驟均需傳輸一個(gè)完整的USB數(shù)據(jù)幀,因此進(jìn)行一次傳輸?shù)膮f(xié)議開銷為44個(gè)字節(jié),根據(jù)公式(3)可計(jì)算出協(xié)議開銷的傳輸速度。以緩沖區(qū)的大小為橫坐標(biāo),數(shù)據(jù)采集系統(tǒng)要求的USB傳輸速度為縱坐標(biāo)繪出圖4所示的關(guān)系圖,分析該圖可得:緩沖區(qū)越大,所要求的USB傳輸速度越少。測試中較少的128字節(jié)緩沖區(qū)使得在一次傳輸中有效數(shù)據(jù)過少,約5.5 kB/s的額外開銷傳輸速度約占總速度的25%,過高的額外傳輸開銷導(dǎo)致數(shù)據(jù)來不及傳輸,從而發(fā)生數(shù)據(jù)丟失的情況。
2)另外,由于應(yīng)用程序要在SD卡這類低速設(shè)備上記錄數(shù)據(jù),所以記錄數(shù)據(jù)的時(shí)候來不及獲取USB設(shè)備中的數(shù)據(jù)也會(huì)導(dǎo)致實(shí)際的傳輸速度變慢,導(dǎo)致新采集的數(shù)據(jù)溢出緩沖區(qū)并覆蓋來不及傳輸?shù)呐f數(shù)據(jù),從而造成數(shù)據(jù)丟失。
因此有必要采取一定的方法來改善數(shù)據(jù)采集系統(tǒng),以保證數(shù)據(jù)采集的完整性。下面將提出3個(gè)解決方法。
3.3 系統(tǒng)改善措施
1)增大晶振頻率到24MHz,加快單片機(jī)的處理速度。
2)在硬件上增加靜態(tài)RAM作為數(shù)據(jù)存儲(chǔ)的緩沖區(qū),緩沖區(qū)的存在一方面可以保證新采集的數(shù)據(jù)不會(huì)覆蓋沒來得及傳輸?shù)呐f數(shù)據(jù),另一方面可以讓USB設(shè)備在一次USB數(shù)據(jù)幀的傳輸中所含有的有效數(shù)據(jù)更多,從而減少在傳輸過程中的校驗(yàn)、識(shí)別和握手等USB協(xié)議的額外開銷,加快傳輸速度。
3)在應(yīng)用程序控制USB設(shè)備時(shí)將新建2條線程,一條進(jìn)程用于向USB設(shè)備進(jìn)行讀寫操作來進(jìn)行數(shù)據(jù)采集,另一條進(jìn)程用于向嵌入式系統(tǒng)的SD卡這類低速設(shè)備進(jìn)行讀寫操作來記錄數(shù)據(jù),利用操作系統(tǒng)分時(shí)復(fù)用的特性減少數(shù)據(jù)記錄過程對(duì)數(shù)據(jù)傳輸造成的延誤,從而加快USB設(shè)備的傳輸速度。
4 結(jié)束語
本文從硬件結(jié)構(gòu)、固件程序和驅(qū)動(dòng)程序3個(gè)方面對(duì)基于嵌入式USB接口的數(shù)據(jù)采集系統(tǒng)進(jìn)行了設(shè)計(jì)。最后還通過實(shí)際采集正弦波信號(hào)對(duì)系統(tǒng)進(jìn)行了測試,并提出了3個(gè)方法有效地提高了數(shù)據(jù)采集系統(tǒng)的傳輸速度。本系統(tǒng)能在擁有USB接口的嵌入式設(shè)備上方便地進(jìn)行連接和安裝,是數(shù)據(jù)采集應(yīng)用的一個(gè)重要部分。
評(píng)論