郭浩天 蘇夢欣 張祎 馮晨 付廣春



摘? 要:此設備由STM32主控、電壓處理電路、電流處理電路、外部FLASH電路以及顯示模塊組成。該設備使用STM32作為主控,可以實現8個通道的12位電壓數據采樣和4個通道的電流數據采樣,ADC采樣周期可以達到10 μs以內。電壓采集范圍為-40~40 V,電流采集范圍為4~20 mA。采集的數據準確且穩定,可以通過顯示屏幕進行查看,并且此設備為外部FLASH移植了FatFs文件系統,可以很方便地通過電腦查看數據。
關鍵詞:STM32;ADC;電壓采集;電流采集;FatFs文件系統
中圖分類號:TP273? 文獻標識碼:A? 文章編號:2096-4706(2023)13-0172-05
Analysis of Multi-channel Data Acquisition Equipment Based on Industrial Adaptation
GUO Haotian, SU Mengxin, ZHANG Yi, FENG Chen, FU Guangchun
(Henan Institute of Science and Technology, Xinxiang? 453003, China)
Abstract: This device consists of STM32 main control, voltage processing circuit, current processing circuit, external FLASH circuit and display module. Using STM32 as the main control, the device can achieve 8 channels of 12-bit voltage data sampling and 4 channels of current data sampling, and the ADC sampling period can reach less than 10 us. The voltage acquisition range is from -40 V to 40 V, and the current acquisition range is from 4 mA to 20 mA. The collected data is accurate and stable, which can be viewed through the display screen, and this device has ported the FatFs file system for external FLASH, making it easy to view data through a computer.
Keywords: STM32; ADC; voltage acquisition; current acquisition; FatFs file system
0? 引? 言
此設備主要用于需要長時間采集數據的場景,使用此設備可以檢測一個設備的長時間運行狀態時,并且將其狀態記錄下來,可以根據記錄的數據分析被檢測設備的工作狀態是否符合要求,也可以根據情況設置警報值,當數據異常時進行報警。在需要人工長時間檢測一個設備時,使用該設備可以后,才可以解放檢測人員,使用此設備檢測還可以避免人為出現的檢測錯誤。
1? 系統總體框圖
電壓和電流信號分別經過各自的處理電路后輸入STM32主控之中,STM32主控在接收到信號后對其進行處理,將處理過的數據存入外部FLASH,最后將采集的數據通過顯示模塊顯示出來,系統總體框圖如圖1所示。
2? 系統硬件設計
此設備由電源電路、電壓處理電路、電流處理電路、儲存電路和顯示接口組成。電壓處理電路實現對電壓的自適應采集,采集的數據通過數據儲存部分保存起來。
2.1? 電源電路
電路在接入5 V供電后,使用低壓差線性穩壓電器AMS1117-3.3將接入5 V電壓轉換為3.3 V以供STM32主控芯片使用,如圖2所示。
使用MAX660為運放提供正負電源,可以實現將+1.5 V到+5.5 V的輸入電壓轉換為相對應的負電壓,將AMS11117-3.3輸出的3.3 V轉換為-3.3 V的電壓,如圖3所示。
2.2? 電壓處理電路
2.2.1? 電壓衰減電路
所需要采集的信號的變化范圍寬廣,幾十毫伏到幾十伏都有可能遇到,而STM32的ADC采樣范圍為0~3.3 V,因此在輸入ADC之前需要先將采集的信號進行相應的處理才可以送入后續電路,處理電路如圖4所示,輸入的信號首先要經過衰減電路,電壓衰減電路可以通過繼電器HFD4/3-S實現對輸入電壓的衰減,衰減大小選擇,當電壓小時,衰減程度小,當電壓大時衰減程度大,通過主控來判斷衰減大小,當繼電器未動作時2和3,6和7相接通,此時輸出的信號為原來的47/1 000倍,當繼電器動作時3和4,5和6相接通,此時輸出的信號為原來的953/1 000倍,當輸入的信號小于一定值時繼電器動作減小信號的衰減以便于獲取更準確的數據,不論繼電器是否動作,阻抗都為1 mΩ,因此在需要更大的量程范圍情況下可以接示波器探頭來得到更大的測量量程。這里的電壓衰減的準確度將直接影響結果的準確度,所以這里采用高精度電阻電容。
2.2.2? 電壓跟隨器和鉗位電路
經過衰減后的信號的負載能力將會變弱,因此要把經過衰減的電壓先送入電壓跟隨器進行隔離和提高帶負載能力,如圖5所示經電壓跟隨器輸出后到達二極管鉗位電路,鉗位電路可以限制電壓在一定的范圍內,IN4148的正向導通電壓為1 V,故鉗位電路可以將電壓限制在4.3~-4.3 V之間。防止輸入電壓過高保護后面的電路。
2.2.3? 程控放大電路
此時程控放大電路接收的信號可能會十分微弱,在接收到比較小的信號時,將進行放大處理,盡可能地占滿ADC的量程,這樣做可以最大的利用ADC資源以及使得結果更加準確,程控放大電路可以通過程序的控制來改變信號放大的倍數,如圖6所示此電路通過一個運算放大器構成的同相放大器和模擬電子開關CD4051組成。RS8751是一個軌到軌輸出的運算放大器,放大器的增益帶寬高達250 MHz,完全滿足使用需求,由于此運算放大器為軌到軌運放,輸出的電壓最大將接近供電電壓正負3.3 V,此電路構成的同相放大器輸出的電壓為Vo = (1 + Rf /R12) Vp,其中Rf為CD4051所選擇的電阻值,通過主控控制CD4051的A0、A1、A2來控制模擬開關所選擇的電阻值進而控制輸入信號的放大倍數,一共有5種不同的放大倍數供選擇,分別為1倍、2倍、5倍、16倍。需要注意的是在使用CD4051BPWR時,其存在的溝道電容和反饋電阻會形成RC網絡,會產生一定的延時使得反饋信號不能及時的傳遞,這會導致放大器不能立刻檢測到其到達最終值的程度,最后會以過快的速度沖向適當電壓的方式過度反應,需要多次連續極小性的更正才能夠保持穩點。這樣就造成的信號的過充和振鈴的現象,在延時過大的時候可能會使得在后續過充的更正無限的進行甚至可能產生震蕩。為了解決這個問題帶來的影響,在運放的輸入輸出走線時盡量走直線減少輸入輸出電容,減小反饋電阻可以減小反饋網絡帶來的影響,最好的解決方案是在反饋電阻兩端并聯一個電容,當R12×Cx = Rf ×Cc時(Cx為反向輸入端子處的電容,Cc為反饋電阻所并聯的電阻),反饋網絡中將不會出現延遲。在有更高的需求時可以采用此方案來解決放大器反饋延時的問題。
2.2.4? 電壓調理電路
經過運放放大得到的信號范圍為正負3.3 V之間,而STM32得ADC采集電壓范圍在0~3.3 V之間,因此需要經過電壓調理電路將電壓值轉換到合適得范圍內,電壓調理電路如圖7所示。
根據基爾霍夫定律得到輸入電壓和輸出電壓的關系:
整理上式子得:
將電阻值帶入得:
分別將正負3.3帶入Vin得出Vout為3.08 V和
0 V,可見經過調理電路后輸出的電壓范圍在STM32承受的范圍內。
2.3? 電流處理電路
電流的采樣通常通過電壓信號轉換為電流信息,而INA199A1通常是用來實現電流電壓轉換的,如圖8所示在工作時將采樣電阻R3上的分壓放大后送入ADC中,將得到的電壓進行處理后便可得到電流信息。電流感應放大器INA199A1可用于精密電流測量,該器件可獨立于電源電壓的-0.3 V至26 V共模電壓下感應分流電阻器上的壓降,其增益固定為50 V/ V。由INA199典型電路圖可得采集到的電壓大小與被采集回路電流的關系:
需要注意的是,輸入引腳IN+和IN-必需盡可能地與采樣電阻R3靠近,這樣可以將走線上的電阻減小到最小,進而減小測量誤差。
2.4? 儲存電路
FLASH電路如圖9所示,采集到數據將被儲存到外部的FLASH之中,以便在設備掉電后也可以將數據保存下來。外部FLASH采用的芯片為W25Q64,它共有128個塊(Block),每個塊只中又有16個扇區(Sector),而一個扇區的大小為4 KB,故W25Q64的大小為,128×16×4 KB=8 Mbyte,每次可寫入的數據為一頁256 byte,擦除的最小單位為一個扇區4 Kbyte,支持的協議為Standard、Dual和QuadSPI,這里我們采用標準SPI協議,其速度最高支持到80 MHz,對于此設備來說完全符合要求。
2.5? 顯示接口
為了提供友好的交互體驗以及方便的數據查看,將一些操作的過程以及采集到的數據通過顯示屏來顯示出來。顯示屏采用ST7735S驅動的1.8寸TFT彩屏,其分辨率為128×160,支持262K色彩顯示,通過SPI協議即可控制顯示。
3? 數據的存儲
3.1? FLASH儲存規劃
W25Q64共有8 Mbyte的儲存空間,其中第一個塊即64 Kbyte將用來儲存顯示屏所需要的字庫和圖片數據,剩余的儲存空間用于儲存采集到的數據,FLASH儲存規劃如表1所示
3.2? FatFs文件系統
FatFs是一個專門用于嵌入式通用FAT/exFAT文件系統模塊,此文件系統由C89編寫,完全分離與磁盤I/O層,因此不依賴于硬件平臺。使用文件系統的原因是將數據儲存到FLASH中后不方便后續的查看數據并對其進行分析,使用文件系統后便可以將數據存儲到txt文件中,十分方便后續的查看以及分析。
3.3? USB接口
STM32F103擁有一個全速的USB 2.0設備,配合FatFs文件系統和外部FLASH可以形成一個虛擬U盤設備,這樣便可以通過電腦直接查看采集的數據并進行分析。如圖10所示中可以看到電腦可以識別到虛擬U盤并可以對文件進行操作。
3.4? CSV文件格式
CSV文件格式是一種通用文件格式,它可以非常容易的導入到計算機中,CSV文件格式十分簡單,只需將每個數據或者字符之間插入逗號,即可形成CSV文件格式,此文件格式可以被電腦上Excel打開,采集得到的數據可以直接通過Excel進行分析。一組數據如圖11所示。
如圖12所示,將其用Excel打開,可以看到此格式可以被方便的導入到Excel之中,為后續對數據的分析提供極大的方便。
4? 程序設計
流程圖如圖13所示此程序實現了對數據的定時采集儲存以及與查看,通過SPI控制外部FLASH,并且移植了FatFs文件系統,可以通過程序在外部FLASH上創建文件,在設定的時間到時開始ADC轉換,并將數據處理后送入外部FLASH等待下次的數據采集。除此之外此程序還實現了通過USB外設與電腦的通信,可以直接在電腦上查看采集的數據并進行分析。
5? 實驗測試
此次測試對設備輸入不同的電壓電流值,將設備采集到數據與輸入的值進行比對,計算出數據的檢測誤差,電壓測試數據如表2所示,電流測試數據如表3所示。
從表中可以看出,采集到的數據與輸入的值存在一定的誤差,電壓最大誤差約1%,電流最大誤差約為0.8%,滿足使用要求。
這些誤差是由諸多原因造成的,對于外圍采集電流來說,模擬開關CD4051存在一定的導通電阻,這將會影響信號放大的倍數,采樣電阻的精度也會影響采集到數據的準確度,還有就是STM32的ADC采樣數據本身就存在一些量化誤差,同時在對進行數據處理時,中間的計算過程也會存在一定的數據損失。
6? 結? 論
此設備實現對數據的長時間采集以及簡單的分析,擁有多個通道,可以同時采集多個設備的數據,采集的電壓范圍大,可實現對不同電壓的自動適配,可以滿足絕大部分的應用場景,此設備擁有外部儲存介質,可以實現數據的長時間保存,并且可以作為一個USB設備與電腦通信,方便對數據的導出與分析。
參考文獻:
[1] 代勇.基于STM32定時電壓采集與報警系統的設計 [J].電子世界,2017(7):179-180.
[2] 蔡志威.基于STM32F4的數字存儲示波器的設計 [D].南昌:東華理工大學,2014.
[3] 楊成蒙.一種帶金屬物體檢測的多線圈無線充電系統 [D].上海:東華大學,2014.
[4] 季小榜,孫雷明.基于STM32F103RCT6的虛擬示波器硬件電路設計 [J].河南工程學院學報:自然科學版,2020,32(1):37-40.
[5] 洪岳煒,王百鳴,謝超英.一種易于移植和使用的文件系統FatFs Module [J].單片機與嵌入式系統應用,2008(5):29-31.
[6] 張濤,左謹平,馬華玲.FatFs在32位微控制器STM32上的移植 [J].電子技術,2010,47(3):25-27.
作者簡介:郭浩天(2001—),男,漢族,河南安陽人,本科在讀,研究方向:嵌入式開發。
收稿日期:2023-02-27
基金項目:2022年河南省高校省級大學生創新創業訓練計劃項目(202210467049)