周世年,龔元明
(上海工程技術(shù)大學機械與汽車工程學院,上海 201620)
在工業(yè)控制系統(tǒng)中,壓力監(jiān)測必不可少[1-2]。目前市場上采用的壓力變送系統(tǒng)測量精度低,響應速度慢,無法在高濕度等惡劣環(huán)境下連續(xù)測量小信號壓力波動。為提高壓力變送系統(tǒng)測量精度和響應速度,王金晨等[3]基于MSP430 單片機研究并實現(xiàn)了高精度微功耗數(shù)字壓力表,采用干電池供電可連續(xù)工作3 000h;仝新建等[4]針對4~20mA 工業(yè)電流環(huán)的測溫精度不足問題設(shè)計一種電阻溫度探測器數(shù)字電流環(huán)變送器,通過在特定溫度區(qū)域的溫度補償實現(xiàn)測溫的溫差小于0.1℃;湛月等[5]針對特種氣體制備過程低溫監(jiān)控需求,研究低溫鉑電阻的測量問題,使用高精度ADS1120 轉(zhuǎn)換器設(shè)計基于鉑電阻的二線制低溫變送器,實現(xiàn)穩(wěn)定的低溫4.2~370K 的測量,系統(tǒng)測量絕對誤差小于0.1%;唐德紅等[6]為提高傳統(tǒng)壓力變送系統(tǒng)測量精度和響應速度,針對高溫熔體設(shè)計一種高精度熔體壓力變送系統(tǒng),該系統(tǒng)檢測精度高,測量誤差小于2%。
本文針對現(xiàn)有壓力變送系統(tǒng)測量精度低、響應速度慢,而水務管網(wǎng)流體壓力監(jiān)測信號小、數(shù)據(jù)波動不明顯、現(xiàn)場監(jiān)測設(shè)備供電困難等問題,基于STM32 微控制器設(shè)計一種適用于小信號流體監(jiān)測的智能壓力變送系統(tǒng)。該系統(tǒng)采用鋰電池供電,高精度電阻式應變壓力傳感器和高精度A/D 轉(zhuǎn)換器,通過軟件平均濾波方法實現(xiàn)對流體壓力的精準監(jiān)測。
流體壓力變送器由采集壓力波動的壓力傳感器、信號處理的A/D 轉(zhuǎn)換器、接收轉(zhuǎn)換數(shù)據(jù)并處理的STM32 電路和顯示數(shù)字壓力值的OLED 顯示屏4 個部分組成[7-8]。
系統(tǒng)獨特性體現(xiàn)在以下3 個方面:①將壓力傳感器輸出信號與STM32 的快速處理能力相結(jié)合;②通過外接高精度A/D 轉(zhuǎn)換芯片完成對壓力傳感器輸出模擬電壓信號的模數(shù)轉(zhuǎn)換;③通過軟件平均濾波方法對系統(tǒng)輸出電壓進行補償,進一步提高系統(tǒng)的檢測精度。
壓力變送器整體結(jié)構(gòu)如圖1 所示。
Fig.1 Overall structure of pressure transmitter圖1 壓力變送器整體結(jié)構(gòu)
系統(tǒng)工作過程:①壓力傳感器通過四線橋式電路設(shè)計測出水流壓力的波動變化;②通過與壓力傳感器相連的A/D 轉(zhuǎn)換器經(jīng)橋式電路輸入電壓模擬信號,經(jīng)信號處理后,通過SPI 總線傳給STM32;③STM32 根據(jù)計算公式處理A/D轉(zhuǎn)換器的電壓值,并通過OLED 屏實時顯示出來。
系統(tǒng)硬件主要由金屬電阻應變式壓力傳感器、信號處理電路、顯示電路以及電源電路組成。電源模塊為各模塊提供穩(wěn)定電源,壓力傳感器先進行數(shù)據(jù)采集,經(jīng)A/D 轉(zhuǎn)換電路的信號處理后送入STM32 再次進行濾波處理,最后通過OLED 輸出顯示數(shù)字電壓值。
系統(tǒng)硬件框架如圖2 所示。
Fig.2 System hardware framework圖2 系統(tǒng)硬件框架
考慮到監(jiān)測水流壓力波動時電線供電不方便,所以本文采用3.6V 鋰電池給整個系統(tǒng)供電。電池給STM32 和A/D 轉(zhuǎn)換器供電,A/D 轉(zhuǎn)換器的激勵電流給壓力傳感器恒流供電。
根據(jù)流體在供水管道中壓力波動較小的特點,選用在高濕度環(huán)境下能適應小信號的金屬電阻應變式壓力傳感器[9-10]。該傳感器具有結(jié)構(gòu)簡單、操作方便、采樣精度高、受溫度影響小等優(yōu)點,適合高濕度環(huán)境下的信號測量[11-12]。本文選用MPM281VC 型壓力敏感元件,其為恒壓供電、標準輸出,且全部為不銹鋼材質(zhì),適合多種流體介質(zhì)。
由于供水流量變化較固定且供水管道壓力波動信號較小,所以本文選用一款適合小信號測量的ADS1120 芯片用于供水管道流體壓力監(jiān)測,其精密程度達到16 位,最高采樣頻率達到512 kHz,多路復用器可實現(xiàn)任意組合通道的數(shù)據(jù)采集。
為配合壓力傳感器的四線橋式接口,要設(shè)計與之對應的電阻橋式測量電路[13-14]。本文將AIN0 通道作為恒流電壓輸入端口,AIN2 通道和AIN3 通道分別作為負信號端口和正信號端口,從AIN1 通道處飛線引出,測試ADS1120是否正常工作。STM32 通過SPI 總線接口與ADS1120 進行數(shù)據(jù)交互。在SPI 通信端口中,ADS1120 的CS 是器件片選端口,DRDY 是數(shù)據(jù)轉(zhuǎn)換狀態(tài)的標志端口。硬件電路如圖3 所示。
Fig.3 A/D conversion circuit圖3 A/D 轉(zhuǎn)換電路
基于硬件進行壓力變送器相應的軟件設(shè)計。首先STM32CUBEMX 對系統(tǒng)時鐘和引腳配置進行初始化,然后開啟ADS1120 的SPI 通信,由STM32 發(fā)送控制命令獲取ADS1120 芯片傳回的二進制壓力數(shù)值,最后STM32 處理完數(shù)據(jù)之后,通過調(diào)用OLED 顯示函數(shù)完成壓力數(shù)值的實時監(jiān)測。具體流程如下:①初始化SPI 通信;②選中ADS1120芯片,通過寫命令配置4 個寄存器;③通過開始轉(zhuǎn)換命令,使16 位A/D 轉(zhuǎn)換器開始轉(zhuǎn)換;④將得到的二進制壓力數(shù)值通過SPI 通信傳給STM32 微控制器;⑤最后微控制器根據(jù)ADS1120 對應的轉(zhuǎn)換公式計算出數(shù)字壓力值;⑥調(diào)用OLED 顯示函數(shù)實時顯示壓力值。
首先對ADS1120 的SPI 通信進行初始化。SPI 通信配置為:STM32 主模式(ADS1120 從模式)、全雙工通信、8 位字節(jié)傳輸,時鐘極性和時鐘相位,軟件控制,MSB(Most Sig?nificant Bit)二進制數(shù)據(jù)的最高位發(fā)送等。
部分程序如下:
首先下拉CS 引腳選中芯片,然后通過給芯片發(fā)送WREG 命令,依次配置4 個寄存器。注意在配置每個寄存器之前都要先給芯片發(fā)一個WREG 命令(同時WREG 命令需要考慮到每個寄存器的偏移)。
部分程序如下:
首先STM32 發(fā)送START 命令,使模式轉(zhuǎn)換器開始工作;然后STM32 發(fā)送RDATA 命令與兩個0XFF 字節(jié),使模式轉(zhuǎn)換器回傳兩個數(shù)據(jù)字節(jié)給STM32。
因為SPI 通信使用MSB(二進制數(shù)據(jù)的最高位),所以STM32 接收到的第一個數(shù)據(jù)字節(jié)是高字節(jié),接收到的第二個數(shù)據(jù)字節(jié)是低字節(jié)。
部分程序如下:
STM32 將收到的二進制壓力數(shù)值轉(zhuǎn)換成數(shù)字電壓值。橋式電路的LSB size 對應的轉(zhuǎn)換公式如下:
式(1)選用的基準電壓Vref 為3.6V,增益倍數(shù)Gain 為1。代碼如下:
調(diào)用OELD 顯示函數(shù)顯示數(shù)字電壓值,代碼如下:
為驗證壓力轉(zhuǎn)換系統(tǒng)的精度和穩(wěn)定性[15-16],本文分別對A/D 轉(zhuǎn)換電路和壓力轉(zhuǎn)換系統(tǒng)精度進行測試。
測試AIN1 通道在不同增益倍數(shù)及是否開啟數(shù)字濾波器情況下的數(shù)據(jù),測試結(jié)果及誤差如表1 所示。
測試流程如下:①從ADS1120 的AIN1 通道接入電壓;②OLED 顯示電壓數(shù)值;③比較分析接入電壓和輸出電壓的數(shù)值,得出誤差。
Table 1 Test results and errors表1 測試結(jié)果及誤差
由實驗所得結(jié)果可以看出:①A/D 轉(zhuǎn)換電路的單通道測量精度很高;②隨著增益倍數(shù)的增加,誤差越來越小,原因可能是軟件代碼的精度配置不夠準確;③數(shù)字濾波器開啟使得誤差減少。數(shù)據(jù)表明實驗室環(huán)境中存在噪聲,且數(shù)字濾波器對噪音起到了一定的濾波作用。
總體來說,測試結(jié)果誤差都小于0.1%,A/D 轉(zhuǎn)換電路設(shè)計滿足了小信號壓力值的測試精度要求。
供水管道壓力的正常范圍一般為0~2.5MPa,在該區(qū)間段每增加0.5MPa 記錄一次數(shù)據(jù),測試結(jié)果及誤差如表2所示。
Table 2 Test results and errors表2 測試結(jié)果及誤差
由實驗結(jié)果可知:①物理量與模擬輸出量成比例關(guān)系,說明壓力傳感器在0~2.5MPa 的范圍內(nèi)正常工作,適合流體的小信號測量;②模擬輸出量與數(shù)字電壓量相差3%以下,說明壓力變送系統(tǒng)[17-18]測量精度尚可,壓力變送系統(tǒng)設(shè)計符合預期。
本文針對市面上出現(xiàn)的傳統(tǒng)壓力變送系統(tǒng)存在測量精度低、響應速度慢,而水務管網(wǎng)流體壓力監(jiān)測[19-20]信號量小、數(shù)據(jù)波動不明顯、現(xiàn)場監(jiān)測設(shè)備供電困難等問題,設(shè)計了一種基于STM32 的高精度流體壓力變送系統(tǒng)。該壓力變送系統(tǒng)根據(jù)現(xiàn)場水務管道供電困難問題,采用鋰電池供電和A/D 轉(zhuǎn)換器激勵電流供電,硬件電路設(shè)計均使用低功耗芯片,大大延長了電池使用壽命。實際測試表明:壓力傳感器測得的數(shù)據(jù)經(jīng)過A/D 轉(zhuǎn)換和STM32 處理,能夠?qū)崟r準確監(jiān)測供水管道壓力,系統(tǒng)響應速度快、穩(wěn)定性高,達到了預期的設(shè)計目標。