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