魏 威, 柯滬琦, 胡燕海
(1.寧波大學 機械工程與力學學院,浙江 寧波 315211;2.寧波戴維醫(yī)療器械股份有限公司,浙江 寧波 315712)
?
基于STM32的手持式測氧儀設計*
魏威1, 柯滬琦2, 胡燕海1
(1.寧波大學 機械工程與力學學院,浙江 寧波 315211;2.寧波戴維醫(yī)療器械股份有限公司,浙江 寧波 315712)
摘要:針對國內傳統(tǒng)手持式測氧儀精度低、功耗高的問題,提出了采用嵌入式微控制器STM32F103RBT6作為控制芯片的手持式測氧儀。該儀器通過控制元器件的開斷來降低待機功耗,根據所測濃度人工切換系統(tǒng)放大倍數,通過鍵盤設置時間和報警值等相關參數。算法上采用中位值平均濾波算法進行軟件濾波,結合傳統(tǒng)兩點標定法和多點標定法的優(yōu)缺點,采用多點標定法進行氧濃度標定,采用分段斜率擬合算法計算氧濃度值。經實驗測試證明設計的手持測氧儀具有高精度和高穩(wěn)定性。
關鍵詞:手持式測氧儀; 中位值平均濾波; 多點標定; 分段斜率擬合
0引言
人類的生存離不開氧氣,正常狀況下大氣中的氧氣含量大概在21 %左右,當氧氣含量下降到18 %左右,人體呼吸則會加快,與此同時肢體的動作協(xié)調性則會變差。當氧氣含量降到10 %左右時,人類就會出現(xiàn)頭暈惡心的癥狀并且很快喪失意識陷入昏迷。更嚴重的是,當它的濃度小于6 %,人就會很快停止呼吸[1]。可見,方便準確實時地檢測出環(huán)境中氧濃度有非常重要的意義。
國產多為便攜式氧濃度檢測儀8位單片機控制,為此,本文設計了一種采用STM32F103RBT6和相關元器件構成的手持式測氧儀,該儀器具有低功耗、高精度和高穩(wěn)定性的特點。
1總體方案設計
考慮到設備的便攜性和對測試精度的高要求,設計采用嵌入式系統(tǒng)ARM微控制器STM32F103RBT6作為主控芯片。外部氧濃度傳感器所檢測的數據信號經過放大濾波電路輸送到STM32內部的A/D轉換,通過按鍵和液晶顯示屏來實現(xiàn)氧濃度和時間等參數的顯示和存儲,通過蜂鳴器來實現(xiàn)超限報警和電池低電量報警的功能[2]。系統(tǒng)結構框圖如圖1所示。
2硬件電路設計
2.1單片機最小系統(tǒng)
本文設計采用的是低成本、低功耗和高性能的嵌入式控制器STM32F103RBT6。它采用的是ARM32位Cortex—M3微處理器,內部有128 kB的FLASH程序存儲器和20 kB的RAM,內置RTC可實現(xiàn)時鐘的功能,54個I/O端口,其含有豐富的外設,包含8個定時器,3個USART接口,2個IC接口,2個SPI接口,1個CAN接口,1個USB2.0全速接口,2個16通道12位A/D轉換器(1 μs轉換時間)等。它在性能上比傳統(tǒng)的51單片機要更加優(yōu)秀,功耗則更加低,相比于同類型的高性能控制芯片也具有一定的優(yōu)勢,是市場上性價比非常高的32位單片機[3]。
圖1 系統(tǒng)結構框圖Fig 1 Block diagram of system structure
2.2氧傳感器及其信號處理電路
目前市面上用于檢測氧氣體濃度的傳感器主要是電化學氧傳感器和氧化鋯氧傳感器。前者利用電化學原理來測定氧濃度的大小,其內部是由陰極和陽極以及氯化鉀(KCI)或氫氧化鉀(KOH)電解液以及氧擴散膜組成,氧氣通過膜擴散進入電解液與陰極和陽極構成測量回路,通過氧氣與內部的電解質在陰陽極發(fā)生氧化還原反應,使陽極金屬離子化,釋放出電子。因電流的大小與氧氣的量成正比,從而輸出不同的電流。當電流經過固定電阻時,轉換成電壓信號[4]。后者則是利用高溫下氧化鋯是氧離子(O2-)的良好導體的特性,在氧化鋯管內外涂上鉑金(Pt)形成兩個電極,一個電極對著空氣,一個則對著被測氣體,當溫度達到650 ℃時,O2-則會在管上運動從而形成電壓差,這個電壓差與空氣和被測氣體之間的氧氣差相關[5]。然而后者對溫度的要求比較嚴格,且不滿足便攜和實時的要求,因此,本文設計采用了電化學氧傳感器。
設計使用的傳感器內置熱敏電阻進行溫度補償,在正常條件下輸出的電壓范圍僅為13~16 mV,因此,需要對該信號進行放大濾波處理,信號處理電路如圖2所示。
圖2 信號處理電路Fig 2 Signal processing circuit
傳感器信號進入放大電路之前先經過模擬選擇開關CD4053,STM32通過模擬開關的使能管腳來控制通斷電。通過模擬開關的選擇來實現(xiàn)運算放大器的通電和斷電切換、接氧傳感器和接地的切換以及檢測儀放大倍數的切換[6]。本文設計選用的是具有低失調電壓漂移、高輸入阻抗、高轉換速率和低噪聲的TLC277精密雙運算放大器,其功耗低,低壓單電源工作非常適合電池供電,而且通過模擬開關選擇作用可實現(xiàn)它的斷電,從而來降低設備待機時的功耗。最后傳感器信號經過TLC277的2次放大之后送入單片機內置的A/D轉換器。
3軟件設計
設計中采用C語言來編寫相應的主程序和子程序。軟件程序包括STM32初始化程序、設備初始化程序、實時時鐘顯示程序、各級菜單顯示程序、LCD顯示程序、報警程序等。系統(tǒng)開機初始化后就直接進入了氧濃度的測量顯示界面,一旦檢測到有按鍵按下,則根據相應的程序進入到對應的菜單界面或者進行參數的設定。設計中采用中位值平均濾波算法來處理A/D轉換值,然后根據標定值采用分段斜率擬合的方法來算出對應的氧濃度值。
3.1中位值平均濾波
為了更好地去除測量過程中產生的脈沖等干擾,本文設計采用中位值平均濾波算法來進行軟件濾波,從而來減小系統(tǒng)的隨機誤差。中位值平均濾波充分結合了中位濾波和算術平均濾波的優(yōu)點,這種算法將采集到的數值進行從小到大或者從大到小的排序,然后去除掉最大值和最小值,對剩下的數取平均值。
外部氧傳感器所測數據經過STM32內置A/D轉換器轉換之后,被STM32采樣,取其中10個數據,對它們按照從小到大排序,舍去當中的最大值和最小值,最后對剩余的8個數據求平均值,這樣就可以更好地去除干擾,保證數據的準確度。
3.2傳感器的多點標定
為了保證氧濃度測量的準確性,設計中采用多點標定的方法來進行傳感器的標定。氣體傳感器系統(tǒng)的標定方法有兩種,一是兩點標定,另一種是多點標定。兩點標定就是只需要取測量量程的兩個端點作為標準值,但是這種方法在量程的兩端的誤差比較低,中間位置則比較高。為了減小輸入量程中點的誤差,出現(xiàn)了最小誤差量原則的標定法,該原則使得標定點的輸入和理論計算的輸入之間的誤差在整個量程范圍內最小[7]。這種方法所選定的兩個標定點是關于量程的中位值對稱的,這樣一來就可以大大提高量程中點的精確度,但是這也會導致兩端點的誤差變大。
多點標定則是選取多個點作為標準值,然后根據最小二乘法來擬合出輸入輸出特性方程,把所得AD值代入該方程,從而得到相應的氣體濃度值。這個方法雖然精度比較高但是計算復雜,不利于在現(xiàn)場進行實時標定。
綜合這兩種標定方法的優(yōu)缺點,為了保證系統(tǒng)測量數據的精確性和系統(tǒng)標定的方便實時性,這里采取0 %,10 %,21 %,30 %這四個點作為標定點,然后根據這幾個點把輸入輸出曲線分成3段,對每一段采取兩點標定的計算方法來進行輸入輸出方程擬合。
3.3氧濃度的分段斜率擬合算法
根據傳感器標定所得的4個點,以及它們所對應的A/D轉換值,便可以計算出對應每段的斜率。具體過程如下:當單片機輸出控制信號,使得模擬開關接地,此時內置A/D轉換器所得值便是0 %氧濃度所對應的A/D轉換值;相反,則可通過單片機控制模擬開關接氧傳感器,然后分別通10 %,21 %,30 %的標準氧氣便可得相應濃度所對應的AD值。把它們看成4個坐標A(x0,0),B(x10,10),C(x21,21)和D(x30,30),然后計算AB,BC以及CD三段的斜率從而擬合出各段所對應的輸入輸出特性方程為
(1)
只要在程序中判斷測得AD值屬于哪段范圍,代入對應的特性方程便可得到最終的氧濃度值。這種算法可以使得用戶能夠在現(xiàn)場方便地進行0 %和21 %兩點的實時標定,條件允許的情況下,還可自己進行其它兩點的標定。
4測試結果
本文針對氧濃度檢測儀的精度和穩(wěn)定性兩方面進行實驗,并與國家標準進行對比分析,其測量數據如圖3和圖4所示。
圖3 室溫10 %氧氣測量數據曲線圖Fig 3 Measurement data curve diagram of 10 % oxygen atroom temperature
圖4 室溫空氣測量數據曲線圖Fig 4 Measurement data curve diagram of airat room temperature
從圖3中可以看出,測量較低濃度時,提高放大倍數,可使儀器測量誤差更低,數據結果更穩(wěn)定。從圖中還可看出,本文設計的測氧儀所測數據最大誤差為0.2 %,小于0.7 %的國家標準,達到了高精度測量的要求。同時可以看出,在1h內其測量數據的波動范圍最大為0.3 %,也小于0.7 %的國家標準,達到了高穩(wěn)定性的要求[8]。
5結論
本文主要介紹了一種基于32位單片機的便攜手持式測氧儀,可實現(xiàn)氧濃度實時測量。通過采用四點標定來進行輸入輸出曲線的分段斜率擬合,使得該儀器測量誤差和波動范圍遠遠小于國家標準,具有高精度和高穩(wěn)定性的特點。在氧濃度值比較低的情況下,可通過模擬開關的選擇作用,切換不同的放大倍數,提高測量的精度值。通過多個菜單的設計顯示,很好地實現(xiàn)了人機交互功能,待機功耗低體積小便于攜帶,可廣泛用于溫室和培養(yǎng)箱等簡單環(huán)境中氧濃度含量的檢測。
參考文獻:
[1]黃河.氧氣對健康的影響[EB/OL].(2013—01—12).http:∥www.docin.com/p—579793764.html.
[2]聞明,張策.便攜式二氧化碳檢測儀的設計[J].傳感器與微系統(tǒng),2011,30(7):95-99.
[3]劉夢星,葉樹明,許志.便攜式醫(yī)療電子儀器設計中的MCU選型分析[J].中國醫(yī)療器械雜志,2014,38(3):202-206.
[4]王偉,董愛華.基于單片機的多功能測氧儀設計[J].儀表技術,2010(10):14-16.
[5]黃睿.智能氧化鋯測氧儀的研究與設計[D].武漢:武漢科技大學,2006.
[6]史運濤,高金山,楊春勇.基于MSP430的手持式氧濃度測量技術[C]∥第二十四屆中國、網絡、信息技術、電子、儀器儀表創(chuàng)新學術會議,2010'IT,天津,2010:7-11.
[7]余學鋒,于杰.傳感器系統(tǒng)的二點標定新方法及其分析[J].電子測量技術,2008,31(4):134-137.
[8]HG23007—92.氧氣檢測報警技術條件及檢驗方法[S].1992.
Design of handheld oxygen analyzer based on STM32*
WEI Wei1, KE Hu-qi2, HU Yan-hai1
(1.College of Mechanical Engineering and Mechanics,Ningbo University,Ningbo 315211,China;2.Ningbo David Medical Device Co Ltd,Ningbo 315712,China)
Abstract:Aiming at problem of low precision and high power consumption of domestic traditional handheld oxygen analyzer,an oxygen analyzer that adopts embedded microcontroller STM32F103RBT6 as control chip is put forward.Standby power consumption can be reduced by controlling opening and breaking of components,system magnification can be manually switched according to measured concentration,time and alarm value and other related parameters are set through keyboard.The median average filtering algorithm is used to carry out software filtering in algorithm,combined with advantages and disadvantages of traditional two-point calibration method and multi-point calibration method,use multi-point calibration method to realize calibration of oxygen concentration,oxygen concentration value is calculated by using piecewise slope fitting algorithm.Experimental test proves high precision and high stability of this design.
Key words:handheld oxygen analyzer; median average filtering; multi-point calibration; piecewise slope fitting
DOI:10.13873/J.1000—9787(2016)03—0074—03
收稿日期:2016—01—22
*基金項目:寧波市重大科技專項項目(2015C110033)
中圖分類號:TM 930
文獻標識碼:A
文章編號:1000—9787(2016)03—0074—03
作者簡介:
魏威(1993-),男,浙江寧波人,碩士研究生,主要從事機械電子產品的研究。