《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于EFM32TG840F16 MCU的室內(nèi)甲醛檢測儀設(shè)計
基于EFM32TG840F16 MCU的室內(nèi)甲醛檢測儀設(shè)計
摘要: 本甲醛檢測儀采用EFM32TG840F16單片機(jī)作為核心控制單元,,電路結(jié)構(gòu)簡單,、外設(shè)功能模塊豐富,,功耗低,,待機(jī)時間長,支持IAP功能,,軟件升級方便,,另外該MCU性能強(qiáng)勁,,可升級空間極大,。
Abstract:
Key words :

     甲醛是一種重要的化工原料和有機(jī)溶劑,廣泛使用于家庭裝修的材料中,。過量甲醛氣體,,將誘發(fā)疾病甚至致癌,直接危害著人們的身體健康和生命安全,。本檢測儀采用32 位超低功耗EFM32TG840F16 微處理器和高靈敏度甲醛傳感器CH20/S-10,,實現(xiàn)甲醛濃度的信號處理和采樣,,系統(tǒng)外接通訊接口及必要的擴(kuò)展功能模塊,構(gòu)建智能化,、多功能的檢測系統(tǒng),。

1 系統(tǒng)硬件設(shè)計

     甲醛檢測儀硬件主要由單片機(jī)主控系統(tǒng)、甲醛傳感器接口,、液晶顯示(LCD),、功能鍵盤、數(shù)據(jù)存儲,、打印和報警輸出等功能模塊構(gòu)成,。系統(tǒng)硬件結(jié)構(gòu)框圖(見圖1)。

 

 

圖1: 系統(tǒng)功能框圖
圖1: 系統(tǒng)功能框圖

 

    該系統(tǒng)采用32 位EFM32TG840F16 單片機(jī)作為主控核心,,內(nèi)嵌16KB Flash 程序存儲器和4KB RAM,、多達(dá)160 段LCD 驅(qū)動器(最大8COM 驅(qū)動、支持動畫,、閃爍等各種特效),、8 通道/12 位 ADC(支持硬件過采樣)、2 個USART(支持SPI\UART\I2S),、1 個LEUART,、1 個LESENSE(支持阻、感,、容性信號檢測),、3 個運(yùn)放、硬件加解密AES,、2 個12 位DAC 及大量的I/O 端口等,,完全滿足本甲醛檢測儀的各項功能需求。該芯片主要特點(diǎn)是:低電壓(1.85 ~ 3.8V),、低功耗( EM2 模式下僅有0.9uA),、 32 位指令、高性能(基于Cortex-M3 內(nèi)核),,具有極低的運(yùn)行功耗,、快速的喚醒時間、功能強(qiáng)大,、高抗擾(未用引腳都是和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)點(diǎn)。而且齊全的配套開發(fā)工具比如開發(fā)板具有電流實時監(jiān)控功能,,可以定位代碼位置,,便于工程師及時優(yōu)化代碼以節(jié)能!

 

1.1 甲醛傳感器接口模塊

傳感器接口模塊由CH20/S-10 甲醛傳感器,、I/ V 轉(zhuǎn)換器RCV420 等組成,。甲醛傳感器由甲醛探頭和CH20 傳感器構(gòu)成。當(dāng)室內(nèi)甲醛氣體被內(nèi)部采樣系統(tǒng)吸收后,,產(chǎn)生與甲醛濃度成正比的電流值,,由于單片機(jī)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)對濃度信號的檢測,。單片機(jī)進(jìn)行運(yùn)算和處理,將處理結(jié)果及范圍進(jìn)行查表和分段線性化,,完成傳感器信號與濃度高低對應(yīng),。系統(tǒng)中RCV420 具有精密運(yùn)放和電阻網(wǎng)絡(luò)功能,能將4 ~ 20mA 環(huán)路電流轉(zhuǎn)換為 0 ~ 3.6V 電壓, 在無外部調(diào)整的情況下,,可用獲得 86dB 的共模抑制比, 具有高性能及抗干擾能力,。

1.2 數(shù)據(jù)存儲與打印模塊

在EFM32TG840F16 外擴(kuò)展2KB 的E2PROM(也可用片內(nèi)flash 模擬EEPROM),通過I2C 總線與EFM32TG840F16 數(shù)據(jù)口相連,,用于存儲采樣來的甲醛濃度數(shù)據(jù),,以備打印機(jī)打印。打印機(jī)接口電路通過RS-232 串行口直接和微處理器相連,,通過采用軟件設(shè)定的方式打印出甲醛濃度值,。

1.3 鍵盤與顯示模塊

系統(tǒng)外接鍵盤和LCD 顯示設(shè)備,實現(xiàn)人機(jī)對話功能,。鍵盤設(shè)置為3×3 陣列鍵盤,,設(shè)有功能選擇鍵、OK 鍵,、報警確認(rèn)及打印鍵,,完成濃度顯示、數(shù)據(jù)查詢,、打印及開關(guān)機(jī)功能,。微處理器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)境中進(jìn)行。這不僅給程序的調(diào)試,、修改提供很大方便,,而且為今后功能的進(jìn)一步擴(kuò)展創(chuàng)造有利條件。

2.1 主程序設(shè)計

主程序是系統(tǒng)軟件的核心,,它通過調(diào)用各子程序便可實現(xiàn)系統(tǒng)功能,。系統(tǒng)主程序結(jié)構(gòu)框圖(見圖 2)。

圖 2:主程序結(jié)構(gòu)框圖
圖 2:主程序結(jié)構(gòu)框圖

系統(tǒng)上電后,,進(jìn)行初始化和中斷處理操作,,主要完成系統(tǒng)自檢和復(fù)位。初始化完成后,,開始采樣濃度值,,并判斷是否有按鍵按下。如果有按鍵按下,,則進(jìn)行相應(yīng)數(shù)據(jù)處理,,并執(zhí)行功能指令,然后在液晶顯示屏上顯示相應(yīng)信息,。如果沒有按鍵按下,,則顯示當(dāng)前實測濃度值,等待用戶進(jìn)行下一步操作,,系統(tǒng)轉(zhuǎn)入定時計時階段,。

 

2.2 低功耗中斷子程序

為減小系統(tǒng)功耗,延長電池的使用時間,,設(shè)計時考慮設(shè)備在較長時間段內(nèi)處于待機(jī)狀態(tài)時,,應(yīng)盡量降低功耗,。系統(tǒng)設(shè)計低功耗中斷子程序(見圖3)

圖3:低功耗中斷子程序結(jié)構(gòu)框圖
圖3:低功耗中斷子程序結(jié)構(gòu)框圖

這里采用一個定時器。當(dāng)定時器大于0 時,,系統(tǒng)處于開機(jī)狀態(tài);當(dāng)定時器倒數(shù)到0 時,,系統(tǒng)自動進(jìn)入低功耗模式,并關(guān)閉LCD 模塊和A/D 模塊,。其中定時器是通過軟件對控制寄存器進(jìn)行設(shè)置實現(xiàn)的,。具體操作是這樣:開機(jī)時,對定時器初始化一個大于0 的值,,比如60,,并且在每按一次有效鍵時,系統(tǒng)重新初始化這個值,。因此,,當(dāng)沒有按任何有效鍵時,60s 后就會自動進(jìn)入休眠狀態(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ù)的過程;利用軟件進(jìn)行數(shù)據(jù)排隊具有通用性和靈活性,。原理(見圖4)。

 

圖4:采樣數(shù)據(jù)更新排隊的雙倍暫存區(qū)擴(kuò)展法
圖4:采樣數(shù)據(jù)更新排隊的雙倍暫存區(qū)擴(kuò)展法

 

由圖4 可見, 將暫存區(qū)的空間擴(kuò)大為需要保存數(shù)據(jù)空間的2 倍, 并將暫存區(qū)等分為前后相連的2 個區(qū), 每個區(qū)的長度與需保存數(shù)據(jù)長度相等,。當(dāng)前采樣得到的一組新數(shù)據(jù)同時存入2 個區(qū)的對應(yīng)位置,,這樣2 組相同采樣數(shù)據(jù)之間剛好間隔1 個區(qū)的長度, 間隔內(nèi)的全部數(shù)據(jù)連同最后1 個最新數(shù)據(jù)即為當(dāng)前排隊結(jié)果。以后每組新采樣數(shù)據(jù)依次向后存入暫存區(qū), 存滿后再從頭開始,。每次采樣周期中完成相應(yīng)的排隊更新任務(wù)后記下當(dāng)前隊列的首(或末)地址作為指針并保存,供處理程序取數(shù)時使用,,這樣一來就滿足實時排序的要求。

對排隊后的數(shù)據(jù)采取中位值濾波算法,。算法的具體實現(xiàn)過程:取N 個連續(xù)采樣數(shù)據(jù),,并按照遞增或遞減順序排列,取中間值作為本次采樣值,。中位值濾波算法能有效地克服因偶然因素引起的干擾或波動而產(chǎn)生的誤差,。即提高系統(tǒng)的檢測精度。

3 結(jié)束語

本甲醛檢測儀采用EFM32TG840F16 單片機(jī)作為核心控制單元,,電路結(jié)構(gòu)簡單,、外設(shè)功能模塊豐富,,功耗低,待機(jī)時間長,,支持IAP 功能,,軟件升級方便,另外該MCU 性能強(qiáng)勁,,可升級空間極大。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。