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