1 引言
目前,困擾人們?nèi)粘I畹氖覂?nèi)空氣質(zhì)量問題主要有兩種:
?。?)由于房屋裝修、玩具、殺蟲噴霧劑等帶來的有害氣體,如甲醛、揮發(fā)性有機物(VOCs:包含苯系物)等致癌物質(zhì);
(2)人們?nèi)粘I钪杏捎诖中幕蛟O備故障引起的有害氣體泄露,如水煤氣、天然氣、液化石油氣等的泄露給人體帶來危害。因此,有必要設計一種集這兩方面有害氣體監(jiān)測為一體的便攜式室內(nèi)空氣質(zhì)量監(jiān)測儀(IAQ Monitoring System),及時、準確、有效地對生活壞境中這類有害氣體進行檢測并報警,提醒人們做出一定措施。不僅能有效地保護人們的健康,甚至能夠讓很多家庭災難得以避免。
該系統(tǒng)采用Samsung 公司的S3C44B0x 微處理器芯片作為硬件核心,選用μC/OS-Ⅱ?qū)崟r操作系統(tǒng)作為嵌入式軟件的基礎和開發(fā)平臺。S3C44B0x 芯片內(nèi)集成了ARM7TDMI 核,并在ARM7TDMI 核基本功能的基礎上集成了豐富的外圍功能模塊,便于低成本設計嵌入式應用系統(tǒng)。μC/OS-Ⅱ是一個完整的、源碼公開的、可移植、固化、裁剪的占先式實時多任務內(nèi)核。其中μC/OS-ⅡV2.52 通過了美國航天管理局(FAA)的安全認證,可以用于飛機、航天器等與人生命攸關的控制系統(tǒng)中,是值得放心使用的操作系統(tǒng)。實踐結果證明,該監(jiān)測儀操作簡單,工作穩(wěn)定可靠,成本低,具有廣闊的應用前景。
2 系統(tǒng)總體設計
由于嵌入式操作系統(tǒng)屏蔽掉了很多底層硬件的復雜信息,在開發(fā)的過程中,通過操作系統(tǒng)提供的API 函數(shù)便可以完成大部分工作,可以簡化開發(fā)過程,提高系統(tǒng)的穩(wěn)定性,所以該監(jiān)測儀選用采用嵌入式操作系統(tǒng)。
嵌入式監(jiān)測系統(tǒng)由硬件層、中間層、軟件層、功能層組成,各層的內(nèi)容結構如圖1 所示。其中板級支持包(BSP)或稱硬件抽象層(HAL)的功能在于將系統(tǒng)軟件和底層硬件部分隔離,一般具有相關硬件的初始化、數(shù)據(jù)的輸入/輸出操作、硬件設備的配置等功能。
3 系統(tǒng)硬件設計
3.1 系統(tǒng)硬件基本架構
系統(tǒng)硬件主要由兩大部分組成:
?。?)針對該氣體監(jiān)測系統(tǒng)的傳感器陣列電路,其中包括傳感器加熱電路、傳感器信號采集電路;
?。?)典型的S3C44B0x 的外圍電路,其中包括實現(xiàn)該系統(tǒng)所需要的5 V、3.3 V、2.5 V、1.4 V 的電壓轉換電路、用于程序和數(shù)據(jù)存儲的Flash 存儲器和Sdram 存儲器電路、用于顯示各種氣體當前濃度的液晶顯示電路、聲光報警電路、鍵盤操作電路以及用于調(diào)試的JTAG 接口電路。
室內(nèi)空氣質(zhì)量監(jiān)測系統(tǒng)硬件結構圖如圖2 所示。
3.2 氣體傳感器信號拾取原理
該設計中選用的MQ-135 氣體傳感器適用于測量甲醛、甲苯、煙霧、二氧化碳等有害氣體;MQ-9 傳感器用于測量一氧化碳、甲烷、液化石油氣這類可燃氣體;選用了DHT21 溫濕度傳感模塊進行溫濕度的測量。
MQ-135 和MQ-9 的測量電路如圖3 所示。該測量電路由測試回路和加熱回路兩部分組成。在測試回路中,傳感器表面電阻RS 阻值隨待測氣體濃度的變化而變化,通過與其串聯(lián)的負載RL 上有效電壓信號VRL 的輸出來反應空氣中待測氣體的濃度,VRL 與RS 之間關系如式(1)所示。
圖3 中,A,a,B,b,H,h 為氣體傳感器的6 個接頭;VC 為回路電壓;VH 為加熱電壓;RH 為加熱電阻;RS 為傳感器表面電阻;RL 為取樣電阻;VRL 為輸出電壓。
對于圖3 中的加熱電壓VH,MQ-135 采用5 V直流電壓作為加熱電壓;MQ-9 采用5 V 高電壓、1.4V 低電壓循環(huán)加熱的方式。對于MQ-9,當VH=5V 時,清洗傳感器;VH=1.4 V 時,傳感器工作,可以采集氣體濃度,其中,高電平持續(xù)時間為60 s,低電平持續(xù)時間為90 s。MQ-9 加熱電壓波形如圖4 所示。
4 系統(tǒng)軟件設計
在設計一個簡單的應用程序時,可以不使用操作系統(tǒng),但在設計較復雜的程序時,可能就需要一個操作系統(tǒng)來管理和控制內(nèi)存、多任務、周邊資源。以RTOS 為軟件開發(fā)平臺把設計分割為若干獨立的任務,應用程序的設計過程可以大為簡化。該設計中采用μC/OS-Ⅱ占先式實時操作系統(tǒng)來完成多任務之間的調(diào)度和同步。
4.1 系統(tǒng)軟件基本架構
該系統(tǒng)的主函數(shù)流程圖如圖5 所示,從中也可以看出該嵌入式系統(tǒng)的啟動過程以及該系統(tǒng)軟件基本架構。在開啟多任務調(diào)度之前,首先要進行系統(tǒng)硬件初始化,為隨后的操作系統(tǒng)初始化和應用程序的運行建立硬件和軟件環(huán)境;第二步要進行操作系統(tǒng)初始化,創(chuàng)建應用程序環(huán)境;根據(jù)系統(tǒng)需要,要進行LCD 初始化、裝載字庫;第五步,調(diào)用系統(tǒng)配置文件;第六步創(chuàng)建任務,包括主任務和應用任務;然后初始化用戶界面和系統(tǒng)時鐘。以上所有的工作都完成之后,通過執(zhí)行OSStart();來啟動多任務調(diào)度。
4.2 應用軟件設計
為了充分發(fā)揮操作系統(tǒng)在任務調(diào)度、任務管理、任務通信、時間管理和內(nèi)存管理等方面的優(yōu)勢,首先必須根據(jù)需要實現(xiàn)的功能,合理地劃分任務和分配任務的優(yōu)先級。任務優(yōu)先級的確定原則是工作頻率越高,任務的優(yōu)先級越高。系統(tǒng)中并行存在7 個應用任務,按優(yōu)先級從高到低依次是模擬信號采集任務、模擬信號處理任務、數(shù)字信號采集任務、系統(tǒng)時間修正任務、液晶刷新任務、鍵盤掃描任務、液晶自動關閉任務。任務之間的通信是通過發(fā)送或接收消息、信號量或數(shù)據(jù)隊列來實現(xiàn)的。
μC/OS-Ⅱ操作系統(tǒng)上允許同時運行64 個任務,其中8 個任務被系統(tǒng)的內(nèi)核使用。要想在應用程序中建立一個新的任務,必須先為任務定義自己的棧空間,選定一個系統(tǒng)唯一的任務優(yōu)先級。下面以鍵盤掃描任務為例,具體程序見程序清單4.1。
程序清單4.1 鍵盤掃描任務相關代碼:
5 結語
本文主要介紹了基于S3C44B0x 和μC/OS-Ⅱ的室內(nèi)空氣質(zhì)量監(jiān)測系統(tǒng)的軟、硬件設計方案以及系統(tǒng)中氣體傳感器的工作原理。在監(jiān)測儀中移植嵌入式實時操作系統(tǒng)對提高嵌入式系統(tǒng)的實時性、可靠性,縮短開發(fā)周期和減小后期維護的難度具有重要意義。經(jīng)測試,該監(jiān)測儀具有運行穩(wěn)定、測量準確、報警及時、操作簡單、功能齊全、便攜性好等優(yōu)點,并且隨著S3C44B0x 以及其外圍電子芯片價格的降低,該監(jiān)測儀更具有成本低廉的優(yōu)點,適合普通家庭使用。