秦杰 高翠云 陶金
摘要:為解決在用電器電量參數檢測過程中采集設備體積龐大的問題,設計基于STM32數據采集高速存儲系統,實現對多路傳感器(電壓傳感器,電流傳感器)信號的高精度采集存儲。選用STM32F103RCT6片上AD進行數據采集,通過乒乓緩存實現數據采集和數據緩存同步,達到使數據不丟失存儲的目的。實驗結果表明:對多路傳感器的采集驗證表明該數據采集存儲系統能夠實現對多通道模擬信號的高精度采集存儲,具有一定的工程應用該價值。
關鍵詞:數據采集;數據存儲;多通道;STM32
中圖分類號:TP274.2 文獻標識碼:A 文章編號:1007-9416(2018)07-0166-02
數據采集存儲的方案主要有兩種。一種是采用微型計算機、高速數據采集卡和數據采集軟件來實現高速率、高分辨率、大容量的數據采集存儲。但是其設備體積較大,不易進行現場數據采集。而在用電器電量參數檢測過程中,常常需要體積小,便于移動的采集存儲裝置。這也是另一種數據采集存儲方案所能滿足的功能,它主要采用高速A/D轉換器、數據存儲器和單片機或FPGA、DSP等實現大容量數據采集存儲,滿足檢測現場對采集存儲裝置的微小型化的需求。
1 總體方案設計
本系統是基于STM32微處理器和SD卡存儲的多通道數據采集及大容量數據存儲系統,可應用于電力參數以及各種傳感器信號的采集與存儲。整個系統由信號采集預處理電路模塊、STM32主控制器、SD卡存儲器模塊、串口通訊模塊以及電源模塊組成。外設端傳感器信號經過信號預處理電路模塊將信號調整到最佳采集范圍,通過STM32單片機的片上ADC模塊實現A/D轉換,轉換后的數據通過DMA通道傳送至STM32片上緩存中,并利用乒乓緩存模式將數據不丟失得存儲到SD中。本系統總體框圖如圖1所示。
信號預處理電路包含電壓預處理電路和電流預處理電路。電壓傳感器選擇型號為JLPT04,輸出的交流電壓信號首先經過電位器組成的衰減電路,輸入到電壓跟隨電路中,提高電路的驅動能力,然后通過差放電路將雙極性電壓信號轉換成單極性電壓信號,輸出到單片機的模擬輸入端口,進行數據采集和一系列處理。
電流傳感器選擇型號為SCT013開合式電流傳感器,該傳感器的輸出經過運算放大電路放大輸入電壓信號,該運算放大芯片選擇AD620高精度儀表放大器,再通過差分電路將雙極性信號轉換成單極性信號輸出到數據采集模塊的模擬輸入端口,進行數據采集和一系列處理。
2 系統軟件設計
本系統設計中采用ARM公司發布的集成開發環境KeilμVision5為開發平臺,并使用ST官方集成庫函數。應用程序主要包含主程序、數據采集程序、乒乓緩存程序、SD卡存儲程序,系統程序流程圖如圖2所示。
2.1 數據采集
數據采集程序中,在片上內存空間申請兩個大小為15KB的緩存數組,定義為BUF1和BUF2。首先建立ADC與片上緩存數組之間的DMA通道,設置DMA的數據傳輸方向由外設ADC1到內存BUF1/BUF2,工作在循環模式下。通過定時器TIM3每隔一個采樣周期進入中斷觸發ADC轉換,轉換結果直接通過DMA通道保存到緩存數組中。TIM3溢出時間即觸發AD采樣的定時器周期為5us,ADC轉換時間為20個時鐘周期。本系統為12通道循環采集系統,單通道采樣率可達16.67KHz。
2.2 數據緩存
乒乓緩存是實現采集數據不丟失存儲的關鍵,當A/D轉換的數據的數量達到15KB的時候,進入DMA傳輸完成中斷,執行切換DMA內存基地址(BUF1->BUF2/BUF2->BUF1)的中斷程序,并給出數據準備完成的緩存數組的標記,在數據采集的過程中將該緩存數組中的數據存儲到SD中。本系統在向SD卡寫入數據時,每次連續寫入30個扇區,所用時間約為7ms,計算SD卡存儲速率約為2.1MB/s。
2.3 理論計算
完成一個BUF數據(7680個數據)的準備時,設定時器定時總時間T,ADC的總轉換時間為T1,向SD卡寫入BUF1/BUF2的時間為T2。
T=7680*Tout=38.4ms;T1=20/72*7680≈2.2ms;T2≈7ms
通過理論計算:T>T1+T2因此理論上本系統可以實現數據的不丟失存儲。
3 系統驗證
本數據采集存儲系統的主要功能是對多路模擬信號的高精度數據采集及實時數據連續存儲,采用信號源信號測試和用電器電流信號測試來驗證本數據采集存儲系統是否可靠可行。
3.1 信號源信號測試
利用本系統對信號發生器產生的標準正弦波進行采集,各通道所采集的模擬信號相同。通過串口通信方式將SD卡中200KB的數據傳輸到上位機。利用Matlab將其中一個通道采集的數據繪出相應的正弦波形。經驗證,本數據采集存儲系統采集到的數據正確有效,無丟幀、錯幀現象。
3.2 用電器電流信號測試
利用本數據采集存儲系統對吹風機的電流信號進行采集,并將數據傳輸到上位機處理。用Matlab將使用本系統采集的數據繪制出對應的波形圖如圖3所示。通過與通用測試平臺所測得的吹風機小檔電流信號波形圖進行對比分析可得,本系統能夠實現多路傳感器信息的高精度采集。
4 結語
本數據采集存儲系統采用STM32F103RCT6完成對數據的采集處理,實現了數據的多通道、高精度采集,能夠實時不丟失存儲采集到的數據。系統程序可移植性高,功能拓展容易。經試驗驗證,系統穩定可靠,能夠實現預期功能。
參考文獻
[1]徐航,羅巍.基于嵌入式的多通道高速數據采集系統[J].自動化與儀器儀表,2013,(1):148-150.
[2]王晨輝,吳悅,楊凱,等.基于STM32的多通道數據采集系統設計[J].電子技術應用,2016,(1):51-57.
[3]張旭,亓學廣,李世光,芮昱,邱彪,等.基于STM32電力數據采集系統設計[J].電子測量技術,2010,(11):90-93.