引言 二氧化碳的檢測在工業(yè)、農(nóng)業(yè)、醫(yī)藥、環(huán)境保護(hù)等都有著重要意義。采用單片機(jī)進(jìn)行二氧化碳濃度檢測、顯示、實(shí)時(shí)控制能夠提高生產(chǎn)效率、節(jié)約能源。另外在工業(yè)現(xiàn)場.往往需要完成信號(hào)的長線傳輸,如果傳輸?shù)男盘?hào)是電壓信號(hào).傳輸線會(huì)受到噪聲的干擾,傳輸線的分布電阻會(huì)產(chǎn)生電壓降。為了解決上述問題和避開相關(guān)噪聲的影響。考慮用電流來傳輸信號(hào)。因?yàn)殡娏鲗?duì)噪聲并不敏感。為此,對(duì)本文介紹一種利用MSP430F169單片控制的二氧化碳檢測系統(tǒng),并帶有三線制4~20mA電流輸出.還可以用標(biāo)準(zhǔn)的Modbus協(xié)議與上位機(jī)通訊。 1 系統(tǒng)的硬件設(shè)計(jì) 圖1是該系統(tǒng)的框圖。單片機(jī)通過串行通訊口讀取二氧化碳傳感器送來的信號(hào)(濃度值),經(jīng)過內(nèi)部處理后用LCD顯示,同時(shí)轉(zhuǎn)化為相應(yīng)的4-20mA電流輸出,或者將二氧化碳濃度值通過RS485串口送到上位機(jī)。同時(shí)單片機(jī)將采樣到的信號(hào)與系統(tǒng)設(shè)定的報(bào)警點(diǎn)比較,控制相應(yīng)的繼電器的吸合。另外還可以用按鍵或者上位機(jī)軟件通過RS485串口修改系統(tǒng)參數(shù):海拔、報(bào)警點(diǎn)、通訊地址、通訊波特率、ABC邏輯、密碼、輸出電流標(biāo)定。 圖1 系統(tǒng)框圖 1.1 CPU及其外圍電路接口 為了最大限度地利用單片機(jī)端口和片內(nèi)外設(shè)并降低設(shè)計(jì)成本。本系統(tǒng)選用MSP430F169。該單片機(jī)具有極低的功耗、強(qiáng)大的處理能力、豐富的片上外圍模塊、方便高效的開發(fā)方式等特點(diǎn)。它有兩個(gè)16位定時(shí)器.內(nèi)置一個(gè)12位AD轉(zhuǎn)換器和一個(gè)雙12位DA轉(zhuǎn)換器,兩個(gè)串行通訊接口.60KB的FLASH.完全滿足于本系統(tǒng)的需要。 CPU采用內(nèi)部1MHz晶振。單片機(jī)通過SPI模式控制LCD的工作,通過外部中斷來識(shí)別四個(gè)按鍵的狀態(tài)。單片機(jī)的P6.2口和P6.3口分別控制兩路繼電器的吸合。另外分別用單片機(jī)的兩個(gè)串口與二氧化碳傳感器和485通信通信。 1.2 傳感器電路 本設(shè)計(jì)采用美國Telaire公司生產(chǎn)的紅外吸收型傳感器6004。該傳感器利用非分光紅外(NDIR)原理檢測二氧化碳濃度.由一個(gè)鍍金封裝的光學(xué)系統(tǒng)和其它嚴(yán)格篩選的信號(hào)放大和處理元器件組成。其測量范圍為:0-5000ppm;測量精度:在22°C時(shí)與工廠標(biāo)準(zhǔn)氣體相比誤差約±40ppm或者讀數(shù)的3%;響應(yīng)時(shí)間:小于2分鐘即可達(dá)典型階躍變化的90%;信號(hào)變化周期:每2秒鐘。最高功耗為150mA,平均功耗30mA。 6004傳感器模塊有下面兩種輸出方式:模擬量輸出:0-4VDC;數(shù)字接口:SPI/Microwire或者UART(9600bps).它有相應(yīng)的通訊協(xié)議。目前市場上大部分產(chǎn)品都是檢測模擬輸出信號(hào)。信號(hào)處理簡單。這里考慮到數(shù)字輸出比模擬輸出精度高并且抗干擾性好.本設(shè)計(jì)采用UART接口來讀取傳感器輸出的數(shù)字信號(hào)。由于6004與MSP430F169的電平不兼容.將6004的串行輸出端(TDX)通過電阻分壓接到MSP430F169的P3.7(URXD1)口,6004的串行輸入端(RDX)經(jīng)過一個(gè)高速光耦芯片HCPL0631升壓接到MSP430F169的P3.6(UTXD1)口。具體電路見圖2。 圖2 6004與單片機(jī)的接口電路圖 1.3 三線制電流輸出模塊 4-20mA電流環(huán)有兩種類型:二線制和三線制。本系統(tǒng)采用三線制。如圖3是一個(gè)V-I轉(zhuǎn)化電路,提供一路i線制4~20mA的電流輸出。圖中U4使用的是TLE2022運(yùn)放,這是一款精密、高速、低功耗的運(yùn)算放大器。與類似的器件相比,它在單位增益帶寬和斜升率方面作了很大的改進(jìn).該器件即使在溫度發(fā)生變化和使用了許多年的情況下仍能保持高精度。這里用+24V和-5V的電源對(duì)TLE2022供電.采用負(fù)電源供電能讓運(yùn)放輸出比較寬的控制電壓.保證運(yùn)放能輸出0V電壓.因?yàn)橛行┻\(yùn)放輸出OV時(shí)在供電正時(shí).不能輸出0V.總是高1到2伏。并且運(yùn)放也能 接收負(fù)壓信號(hào)輸入.尤其是交流電壓信號(hào)。該電路在保證V-I變換精度高的同時(shí),顯著提高了抗負(fù)載變化能力。分析電路可知: 所以為了獲得4~20mA的輸出電流。經(jīng)單片機(jī)DA轉(zhuǎn)換輸出的電壓VDAC1控制在0.2~1V。 圖3 4-20mA電流輸出圖 1.4 RS485通訊模塊 通訊模塊實(shí)現(xiàn)了單片機(jī)與上位機(jī)之間長距離數(shù)據(jù)通訊。系的MODBUS協(xié)議與上位機(jī)進(jìn)行通訊。如圖4,MAX3485的串行輸出端(rXD485)接到MSP430F169的P3.4(UTXDO)口,串行輸入端(RXD485)接到MSP430F169的P3.5(URXD0)口。MSP430F169的P6.4口與KCOM,用于使能MAX3485串行輸入輸出。 圖4 485通訊電路圖 2 軟件設(shè)計(jì) 本系統(tǒng)程序用C語言編寫,圖5是主程序流程圖。 圖5 主程序流程圖 2.1 單片機(jī)與6004之間的通訊 單片機(jī)與6004之間采用Telaire特定的通訊協(xié)議。它們之間的主要操作就是讀6004狀態(tài),讀C02濃度值.設(shè)置海拔高度。設(shè)置ABC邏輯。系統(tǒng)上電后旗6004的狀態(tài)。直到讀到6004預(yù)熱完畢,才能開始讀傳感器的濃度值,每2S讀一次。 2.2 單片機(jī)與485之間的通訊 單片機(jī)與485之間采用標(biāo)準(zhǔn)的MODBUS協(xié)議進(jìn)行通訊,主要完成讀取C02濃度、讀報(bào)警點(diǎn)狀態(tài)、讀繼電器狀態(tài),修改系統(tǒng)參數(shù)。Modbus分為兩種傳輸模式:ASCII和RTU。這里選用RTU傳輸模式,這種方式的主要優(yōu)點(diǎn)是:在同樣的波特率下,可以比ASCII方式傳送更多的數(shù)據(jù)。 3 結(jié)束語 本系統(tǒng)測量準(zhǔn)確、有好的人機(jī)界面,操作智能化,系統(tǒng)運(yùn)行可靠。可廣泛的應(yīng)用于商用樓宇控制、空調(diào)管理、智能化住宅、商場、賓館,體育館,電影院、機(jī)場網(wǎng)吧,溫室農(nóng)業(yè)大棚等等場合。 本文作者創(chuàng)新點(diǎn):選用了紅外吸收型傳感器'讀取它的數(shù)字輸出信號(hào),精度高且抗干擾性好。采用了一種新穎的三線制電流輸出電路.該電路精度高.抗負(fù)載變化能力強(qiáng)。采用標(biāo)準(zhǔn)的MODBUS協(xié)議與上位機(jī)通訊。 項(xiàng)目經(jīng)濟(jì)效益20萬元。 作者:李媛,王太宏 來源:《微計(jì)算機(jī)信息》(嵌入式與SOC)2009年第8-2期 |