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