新聞中心

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

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

        作者: 時間:2012-02-09 來源:網絡 收藏


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

        本文引用地址:http://www.104case.com/article/149746.htm

        d.jpg


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

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

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

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 甘洛县| 鄂尔多斯市| 沭阳县| 潞西市| 砚山县| 罗甸县| 砀山县| 如东县| 峨眉山市| 哈尔滨市| 夹江县| 新平| 通榆县| 广饶县| 平江县| 班玛县| 龙游县| 蒙城县| 靖宇县| 长子县| 历史| 福海县| 赞皇县| 射阳县| 正定县| 青海省| 峨边| 苗栗市| 皋兰县| 南乐县| 靖宇县| 六枝特区| 滁州市| 岐山县| 包头市| 永丰县| 隆昌县| 平利县| 文安县| 平顶山市| 东莞市|