<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于嵌入式USB接口的數據采集系統的設計

基于嵌入式USB接口的數據采集系統的設計

作者: 時(shí)間:2012-02-09 來(lái)源:網(wǎng)絡(luò ) 收藏


3 測試
3.1 測試條件與結果
本測試的目的在于檢驗本文能否在采集頻率較高的情況下準確地采集數據,并通過(guò)完整地進(jìn)行數據傳輸。因此,測試將以下5個(gè)條件進(jìn)行。其中一個(gè)通道的部分測試數據結果如圖3所示。

本文引用地址:http://dyxdggzs.com/article/149746.htm

d.jpg


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

4 結束語(yǔ)
本文從硬件結構、固件程序和驅動(dòng)程序3個(gè)方面對USB的數據采集系統進(jìn)行了設計。最后還通過(guò)實(shí)際采集正弦波信號對系統進(jìn)行了測試,并提出了3個(gè)方法有效地提高了數據采集系統的傳輸速度。本系統能在擁有USB設備上方便地進(jìn)行連接和安裝,是數據采集應用的一個(gè)重要部分。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>