甲醛是一種重要的化工原料和有機溶劑,廣泛使用于家庭裝修的材料中。過量甲醛氣體,將誘發(fā)疾病甚至致癌,直接危害著人們的身體健康和生命安全。本檢測儀采用32 位超低功耗EFM32TG840F16 微處理器和高靈敏度甲醛傳感器CH20/S-10,實現(xiàn)甲醛濃度的信號處理和采樣,系統(tǒng)外接通訊接口及必要的擴展功能模塊,構建智能化、多功能的檢測系統(tǒng)。
1 系統(tǒng)硬件設計
甲醛檢測儀硬件主要由單片機主控系統(tǒng)、甲醛傳感器接口、液晶顯示(LCD)、功能鍵盤、數(shù)據存儲、打印和報警輸出等功能模塊構成。系統(tǒng)硬件結構框圖(見圖1)。
圖1: 系統(tǒng)功能框圖
該系統(tǒng)采用32 位EFM32TG840F16 單片機作為主控核心,內嵌16KB Flash 程序存儲器和4KB RAM、多達160 段LCD 驅動器(最大8COM 驅動、支持動畫、閃爍等各種特效)、8 通道/12 位 ADC(支持硬件過采樣)、2 個USART(支持SPIUARTI2S)、1 個LEUART、1 個LESENSE(支持阻、感、容性信號檢測)、3 個運放、硬件加解密AES、2 個12 位DAC 及大量的I/O 端口等,完全滿足本甲醛檢測儀的各項功能需求。該芯片主要特點是:低電壓(1.85 ~ 3.8V)、低功耗( EM2 模式下僅有0.9uA)、 32 位指令、高性能(基于Cortex-M3 內核),具有極低的運行功耗、快速的喚醒時間、功能強大、高抗擾(未用引腳都是和MCU 內部斷開的)、外設可以自主工作(主要得益于DMA 和PRS 外設反射系統(tǒng))以及超節(jié)能(ADC:12bit,1Msps,僅需350uA;Analog Comparator:僅需100nA;LCD:本位功耗0.55uA;LEUART:9600 波特率下僅需150nA;AES:128/256bit 加/解密僅需54/75 個周期)、便于智能化和便攜式等優(yōu)點。而且齊全的配套開發(fā)工具比如開發(fā)板具有電流實時監(jiān)控功能,可以定位代碼位置,便于工程師及時優(yōu)化代碼以節(jié)能!
1.1 甲醛傳感器接口模塊
傳感器接口模塊由CH20/S-10 甲醛傳感器、I/ V 轉換器RCV420 等組成。甲醛傳感器由甲醛探頭和CH20 傳感器構成。當室內甲醛氣體被內部采樣系統(tǒng)吸收后,產生與甲醛濃度成正比的電流值,由于單片機A/D 采樣的是電壓值,而被檢測的是微量的電流值;因而需要將電流值放大并轉換為相應的電壓值。采用集成I/V 轉換器RCV420,將電流值轉換為對應的0 ~ 3.6V 電壓, 送至 EFM32TG840F16 的A/D 轉換接口ADC,實現(xiàn)對濃度信號的檢測。單片機進行運算和處理,將處理結果及范圍進行查表和分段線性化,完成傳感器信號與濃度高低對應。系統(tǒng)中RCV420 具有精密運放和電阻網絡功能,能將4 ~ 20mA 環(huán)路電流轉換為 0 ~ 3.6V 電壓, 在無外部調整的情況下,可用獲得 86dB 的共模抑制比, 具有高性能及抗干擾能力。
1.2 數(shù)據存儲與打印模塊
在EFM32TG840F16 外擴展2KB 的E2PROM(也可用片內flash 模擬EEPROM),通過I2C 總線與EFM32TG840F16 數(shù)據口相連,用于存儲采樣來的甲醛濃度數(shù)據,以備打印機打印。打印機接口電路通過RS-232 串行口直接和微處理器相連,通過采用軟件設定的方式打印出甲醛濃度值。
1.3 鍵盤與顯示模塊
系統(tǒng)外接鍵盤和LCD 顯示設備,實現(xiàn)人機對話功能。鍵盤設置為3×3 陣列鍵盤,設有功能選擇鍵、OK 鍵、報警確認及打印鍵,完成濃度顯示、數(shù)據查詢、打印及開關機功能。微處理器EFM32TG840F16 內含LCD 驅動電路,可驅動160 段的LCD,且超低功耗,特別適合便攜式儀器儀表中使用。用戶通過LCD 顯示,讀取檢測濃度值、打印和設置相關功能等信息。
1.4 其它模塊
本系統(tǒng)的供電電壓為3V,采用兩節(jié)電池供電,也可外接3V 直流電源。系統(tǒng)的時鐘是外置晶振提供。為滿足個性化需要,還增加蜂鳴器報警電路。
2 系統(tǒng)軟件設計
在軟件設計中采用模塊化設計方法,使用嵌入式C 語言編寫,在IAR 編譯環(huán)境中進行。這不僅給程序的調試、修改提供很大方便,而且為今后功能的進一步擴展創(chuàng)造有利條件。
2.1 主程序設計
主程序是系統(tǒng)軟件的核心,它通過調用各子程序便可實現(xiàn)系統(tǒng)功能。系統(tǒng)主程序結構框圖(見圖 2)。
圖 2:主程序結構框圖
系統(tǒng)上電后,進行初始化和中斷處理操作,主要完成系統(tǒng)自檢和復位。初始化完成后,開始采樣濃度值,并判斷是否有按鍵按下。如果有按鍵按下,則進行相應數(shù)據處理,并執(zhí)行功能指令,然后在液晶顯示屏上顯示相應信息。如果沒有按鍵按下,則顯示當前實測濃度值,等待用戶進行下一步操作,系統(tǒng)轉入定時計時階段。
2.2 低功耗中斷子程序
為減小系統(tǒng)功耗,延長電池的使用時間,設計時考慮設備在較長時間段內處于待機狀態(tài)時,應盡量降低功耗。系統(tǒng)設計低功耗中斷子程序(見圖3)
圖3:低功耗中斷子程序結構框圖
這里采用一個定時器。當定時器大于0 時,系統(tǒng)處于開機狀態(tài);當定時器倒數(shù)到0 時,系統(tǒng)自動進入低功耗模式,并關閉LCD 模塊和A/D 模塊。其中定時器是通過軟件對控制寄存器進行設置實現(xiàn)的。具體操作是這樣:開機時,對定時器初始化一個大于0 的值,比如60,并且在每按一次有效鍵時,系統(tǒng)重新初始化這個值。因此,當沒有按任何有效鍵時,60s 后就會自動進入休眠狀態(tài),從而實現(xiàn)降耗目的。在休眠期間,若有按鍵按下,微處理器響應中斷,系統(tǒng)退出休眠狀態(tài),返回到正常工作狀態(tài)。
2.3 采樣數(shù)據處理子程序
為提高檢測精度,采樣數(shù)據處理軟件設計是關鍵。系統(tǒng)采用采樣數(shù)據排隊與中值濾波法。數(shù)據排隊就是在給定的數(shù)據暫存區(qū)內不斷地用最新數(shù)據取代最早數(shù)據的過程;利用軟件進行數(shù)據排隊具有通用性和靈活性。原理(見圖4)。
圖4:采樣數(shù)據更新排隊的雙倍暫存區(qū)擴展法
由圖4 可見, 將暫存區(qū)的空間擴大為需要保存數(shù)據空間的2 倍, 并將暫存區(qū)等分為前后相連的2 個區(qū), 每個區(qū)的長度與需保存數(shù)據長度相等。當前采樣得到的一組新數(shù)據同時存入2 個區(qū)的對應位置,這樣2 組相同采樣數(shù)據之間剛好間隔1 個區(qū)的長度, 間隔內的全部數(shù)據連同最后1 個最新數(shù)據即為當前排隊結果。以后每組新采樣數(shù)據依次向后存入暫存區(qū), 存滿后再從頭開始。每次采樣周期中完成相應的排隊更新任務后記下當前隊列的首(或末)地址作為指針并保存,供處理程序取數(shù)時使用,這樣一來就滿足實時排序的要求。
對排隊后的數(shù)據采取中位值濾波算法。算法的具體實現(xiàn)過程:取N 個連續(xù)采樣數(shù)據,并按照遞增或遞減順序排列,取中間值作為本次采樣值。中位值濾波算法能有效地克服因偶然因素引起的干擾或波動而產生的誤差。即提高系統(tǒng)的檢測精度。
3 結束語
本甲醛檢測儀采用EFM32TG840F16 單片機作為核心控制單元,電路結構簡單、外設功能模塊豐富,功耗低,待機時間長,支持IAP 功能,軟件升級方便,另外該MCU 性能強勁,可升級空間極大。