基于單片機的轎車(chē)內一氧化碳氣體測控系統設計
摘要:設計了一個(gè)基于單片機的轎車(chē)車(chē)內一氧化碳濃度測控功能的系統。該系統以16位高性能單片機SPCE061A為控制核心,采用高精度敏感元件MQ-7,集成運算放大器INA128進(jìn)行信號調理,并引入了實(shí)時(shí)操作系統μC/OS-II進(jìn)行任務(wù)管理。實(shí)驗表明:系統實(shí)現了轎車(chē)空調運行時(shí)一氧化碳氣體的實(shí)時(shí)監控,CO濃度不超過(guò)300 ppm,同時(shí)具有溫度測量功能,便于進(jìn)行空調操作,參數測量準確,為保證轎車(chē)內人員安全提供了可靠方案。
關(guān)鍵詞:轎車(chē);一氧化碳;傳感器;信號調理;聲光告警
轎車(chē)空調運行在車(chē)輛停駛期間產(chǎn)生的一氧化碳進(jìn)入轎車(chē)車(chē)廂內極易誘發(fā)中毒事故,隨著(zhù)轎車(chē)的普及,由此引發(fā)的一氧化碳安全事故也越來(lái)越多。為了減少這類(lèi)的事故的發(fā)生,本文設計實(shí)現了一個(gè)能夠檢測轎車(chē)一氧化碳濃度的系統,該系統采用凌陽(yáng)公司高性能16位單片機SPCE 061 A作為控制核心,利用CO傳感器MQ-7采集車(chē)內一氧化碳,引入μC/OS-II實(shí)時(shí)操作系統。中國《工業(yè)企業(yè)設計衛生標準》規定:車(chē)間連續接觸8小時(shí)的最高容許濃度為300 ppm。因此,設定CO報警門(mén)限為300 ppm,當車(chē)內一氧化碳達到設定的該值時(shí),系統可以發(fā)出聲光告警提示通風(fēng)換氣,延時(shí)一分鐘后則自動(dòng)打開(kāi)天窗進(jìn)行通風(fēng),以保證車(chē)內人員安全,另外,為便于觀(guān)察車(chē)內溫度操作空調,設計了溫度輔助測試單元,采用DS18B20溫度傳感器實(shí)現溫度測量。
1 系統硬件設計
系統整體框圖如圖1所示。系統控制芯片選用凌陽(yáng)公司生產(chǎn)的高性?xún)r(jià)比16 bit雙核微處理器SPCE061A,該芯片的主要特性是:微處理器內核工作電壓VDD為3.0-3.6 V,32位通用可編程I/O端口工作電壓VDDH為5.5 V;微處理器工作時(shí)鐘范圍可編程實(shí)現0.32~49.152MHz;內置SRAM容量為2 kB和FLASH ROM容量為32 kB;系統在備用狀態(tài)下功耗為7.2μW(時(shí)鐘為關(guān)閉狀態(tài));可以進(jìn)行觸鍵喚醒設置;7通道10位電壓模/數轉換器(ADC)和單通道聲音模/數轉換器;2個(gè)16位可編程定時(shí)器/計數器(可自動(dòng)預置初始計數值);2個(gè)10位DAC(數/模轉換)輸出通道,可以方便實(shí)現語(yǔ)音提示功能;14個(gè)中斷源易于實(shí)現系統的實(shí)時(shí)控制能力,同時(shí)具備串行設備接口便于和其他設備通信;低電壓復位(LVR)和低電壓監測(LVD)功能,保證系統的運行可靠;另外16位單片機具有高效率RISC指令系統和集成開(kāi)發(fā)環(huán)境,通過(guò)內置在線(xiàn)仿真ICE(In Circu it Emulation)實(shí)現在線(xiàn)調試。微處理器支持標準C語(yǔ)言,可以實(shí)現C語(yǔ)言與凌陽(yáng)匯編語(yǔ)言的互相調用。
圖1所示系統包括傳感器采集電路、CO信號調理電路、聲光報警電路、LCD顯示電路、溫度測量、電源電路等功能模塊,系統通過(guò)CO傳感器MQ-7采集電路采集CO信號,輸出與CO濃度成正比的模擬電壓信號,把電壓信號送入SPCE061A內進(jìn)行A/D轉換后,經(jīng)單片機處理后驅動(dòng)器顯示出CO濃度值,若CO濃度大于報警電路預設數值,報警電路發(fā)出報警,延時(shí)1分鐘會(huì )啟動(dòng)天窗通風(fēng),從而防止CO中毒事故的發(fā)生。
1.1 一氧化碳測試電路設計
一氧化碳傳感器MQ-7對一氧化碳具有很高的靈敏度和良好的選擇性,其工作電壓為5 V,具有信號輸出指示,雙路信號輸出(模擬量輸出及TTL電平輸出),TTL輸出有效信號為低電平。(當輸出低電平時(shí)信號燈亮,可直接接單片機),模擬量輸出0~5 V電壓,濃度越高電壓越高。且使用壽命較長(cháng)和穩定性較高、可靠的優(yōu)點(diǎn)。為了便于測量顯示一氧化碳濃度,采用模擬量輸出方式,SPCE061A內部的ADC功能對MQ-7傳輸的0~5 V電壓進(jìn)行模數轉換,經(jīng)濾波處理后進(jìn)行顯示,達到設定門(mén)限值時(shí)進(jìn)行聲光告警,延時(shí)1分鐘后送出控制信號給天窗電路,天窗驅動(dòng)電路打開(kāi)天窗通風(fēng)以保證車(chē)內一氧化碳濃度滿(mǎn)足安全指標。信號調理電路的核心為集成運算放大器INA128,具有較大的放大性能和抗干擾能力。
MQ-7的信號調理電路如圖2所示。
1.2 溫度測試電路設計
溫度檢測電路選用DALLS公司生產(chǎn)的“一線(xiàn)總線(xiàn)”數字化溫度傳感器DS18B20,其測量溫度范圍達-55~125℃,在-10~85℃范圍內,精度為±0.5℃。該器件只有3個(gè)引腳(即電源VDD、地線(xiàn)GND、數據線(xiàn)DQ),不需要外部元件,一條數據線(xiàn)進(jìn)行通信。設計系統檢測溫度范圍設計為-5~35℃,精度為0.5℃,已經(jīng)能夠滿(mǎn)足絕大多數工作環(huán)境的要求;用9位數字量來(lái)表示溫度。本系統用1塊DS18B20實(shí)現對環(huán)境溫度的檢測,獲得溫度信息時(shí),先由SPCE061 A的IOA8腳發(fā)送復位脈沖,使DS18B20復位并向SPCE061A發(fā)送響應脈沖,SPCE061A就可以發(fā)送讀DS18B20序列號的命令,然后,SPCE061A再發(fā)出定位命令啟動(dòng)DS18B20進(jìn)行溫度轉換,當溫度轉換結束后,SPCE061A發(fā)送DS18B20數據存儲指令,即完成了溫度信息數據的轉換和讀取。
2 系統軟件設計
系統軟件主要任務(wù)有:設置、修改、LCD顯示的參數;檢測、計算、顯示溫度、CO濃度等參數;溫度、CO濃度狀態(tài)指示及報警輸出;定時(shí)存儲各種檢測及運算參數。本系統軟件采用C編程語(yǔ)言和匯編編程語(yǔ)言混合編程、模塊化結構和程序調用的方法。一般的嵌入式軟件系統的設計都是采用前后臺式的設計方法。傳統的前臺、后臺式的單任務(wù)程序開(kāi)發(fā)方法已經(jīng)不能適應多數工程的需要,因此系統引入了μC/OS—II,采用多任務(wù)式的軟件設計方法。將μC/OS—II移植到SPCE061A微處理器之后,然后就可以對操作系統本身進(jìn)行需要的擴充。
在系統運行時(shí),CO測量、溫度測量、顯示等任務(wù)是處于無(wú)限循環(huán)狀態(tài)的,分別實(shí)現要求的功能,由μC/OS—II內核來(lái)進(jìn)行調度。系統運行開(kāi)始時(shí),首先由OSInitial()完成操作系統μC/OS—II所有的變量和數據結構初始化,再初始化微控制器的定時(shí)器等,通過(guò)調用OSTask Cre at()函數依次創(chuàng )建各個(gè)子任務(wù),并且分配各個(gè)子任務(wù)優(yōu)先權,置所有子任務(wù)為就緒狀態(tài)。最后調用OSStart()函數啟動(dòng)系統,開(kāi)始多任務(wù)調度。
根據CO濃度測控及溫度測量系統所要求實(shí)現的功能,將系統程序劃分為并行存在的任務(wù)及中斷程序。系統中并行存在的5個(gè)子任務(wù)按優(yōu)先級從高到低依次是:系統監視任務(wù)、數據采集任務(wù)、數據處理任務(wù)、數據輸出任務(wù)、顯示任務(wù)。CO濃度及溫度測量系統主程序流程圖如圖3所示。
數據采集A/D轉換主程序和外部中斷O的服務(wù)程序。A/D轉換主程序主要實(shí)現SPCE061 A硬件初始化、數據采集處理、達到設定濃度300 ppm時(shí)進(jìn)行聲光告警。數據采集子程序如圖4所示。
3 μC/OS-Ⅱ的植入
μC/OS-II是一種專(zhuān)門(mén)為微控制器設計的實(shí)時(shí)搶占式多任務(wù)操作系統,它以源代碼的形式給出。其內核主要提供進(jìn)程管理、時(shí)間管理、內存管理等服務(wù)。系統最多支持56個(gè)任務(wù),每個(gè)任務(wù)均有一個(gè)獨有的優(yōu)先級。由于其內核為搶先式,所以總是處于運行態(tài)最高優(yōu)先級的任務(wù)占用CPU。系統提供了豐富的API函數,實(shí)現進(jìn)程之間的通信以及進(jìn)程狀態(tài)的轉化。多任務(wù)系統在進(jìn)行任務(wù)切換時(shí)需要完成的主要操作步驟如下:首先將當前子任務(wù)CPU所有的寄存器數值壓入堆棧:然后將CPU系統堆棧的數據全部拷貝到當前子任務(wù)的堆棧中;獲取下一個(gè)處于運行態(tài)且優(yōu)先級最高的子任務(wù)的堆棧指針;再恢復下一個(gè)子任務(wù)的CPU寄存器的值和系統堆棧中的數據;最后通過(guò)中斷返回指令或函數返回指令。在對?C/OS-Ⅱ編寫(xiě)任務(wù)切換程序時(shí)需注意:?C/OS-II在每個(gè)中斷發(fā)生后都會(huì )產(chǎn)生任務(wù)調度,但在中斷結束后進(jìn)行任務(wù)切換時(shí),不能調用普通任務(wù)切換函數,這是因為在中斷過(guò)程中通常要將CPU的狀態(tài)寄存器壓棧操作。
4 結束語(yǔ)
文中采用SPCE061A CPU結合嵌入式實(shí)時(shí)操作系統?C/OS-II,設計并實(shí)現了轎車(chē)車(chē)內環(huán)境溫度測量和CO濃度實(shí)時(shí)測控??照{開(kāi)啟后,可設定CO濃度在300 ppm的安全范圍上,系統實(shí)時(shí)監測車(chē)內溫度和CO濃度的變化情況,并記錄、存儲相關(guān)數據。另外,該系統便于功能擴展,測控精度高、可靠性高、系統成本低,可廣泛應用在煤礦、家庭等一氧化碳存在環(huán)境。
評論