基于A(yíng)VR單片機的有害氣體紅外感應及語(yǔ)音警示控制系統
1.1核心控制模塊的設計
該模塊是系統的核心,當紅外感應系統感應到人體,會(huì )送出中斷信號,單片機得到信號后執行中斷,通過(guò)串口通信讀取氣體濃度,然后到語(yǔ)音芯片尋址,并控制語(yǔ)音模塊把氣體濃度報告出來(lái)。除了基本的外圍電路,核心控制模塊外主要應用了中斷、串行通信和基本的輸入、輸出功能。
本系統中上位機通過(guò)串口實(shí)現與單片機通信,然后由單片機進(jìn)行處理,單片機接受紅外信號后,控制語(yǔ)音芯片工作,播放相應的語(yǔ)音信息??蛇x的單片機較多,如AVR、AT89C51等。采用單獨的控制芯片的好處是減少主控芯片(CPLD)的工作量,提高系統的性能。我們選用了AVR單片機。AVR是基于RISC(精簡(jiǎn)指令集計算機)結構的單片機,簡(jiǎn)稱(chēng)AVR單片機,該系列單片機在吸收PIC及8051單片機優(yōu)點(diǎn)的基礎上,進(jìn)行了重大改進(jìn)。與普通的51系列單片機相比,AVR單片機有很多優(yōu)點(diǎn)。首先給人最直觀(guān)的就是具有JTAG邊界掃描、仿真、編程功能,不會(huì )造成以往仿真通過(guò)而脫機不行的現象。
該模塊相對簡(jiǎn)單,核心用了紅外傳感器,只把信號進(jìn)行了簡(jiǎn)單處理,送給單片機的中斷即可,見(jiàn)圖3。
1.3數據讀取方式的設計
對數據的讀取有兩種方法:一種是直接與硬件電路結合,16位二進(jìn)制數據讀取過(guò)來(lái),進(jìn)行整理還原;另一種是通過(guò)串口通信,把已經(jīng)由上位機整理好的數據,通過(guò)RS-232協(xié)議讀取過(guò)來(lái)。顯然,較第1種方法,通過(guò)串口的方式避免了對數據重復整理,編程更簡(jiǎn)單。對整個(gè)項目而言,設計更合理,縮短了開(kāi)發(fā)周期。
本系統采用的是串行數據通信方式,接口為RS-232串口,實(shí)驗證明這種通信方式簡(jiǎn)單易行,符合本系統要求。本系統采用的是半雙工配置,它要求下位機和主機控制器雙方都具有獨立的發(fā)送和接收能力。
接收/發(fā)送時(shí)鐘用來(lái)控制通信設備接收/發(fā)送字符數據速度,該時(shí)鐘信號通常由微機內部的時(shí)鐘電路產(chǎn)生。接收數據時(shí),接收器在接收時(shí)鐘的上升沿對接收數據采樣,進(jìn)行數據位檢測。發(fā)送數據時(shí),發(fā)送器在發(fā)送時(shí)鐘的下降沿將移位寄存器的數據串行移位輸出。
接收/發(fā)送時(shí)鐘頻率與波特率有如下關(guān)系:
式中:Fe為接收/發(fā)送時(shí)鐘頻率;n為頻率系數,n=1,16,64;vc為收/發(fā)波特率。
接收/發(fā)送時(shí)鐘的周期Tc與發(fā)送的數據位寬Td之間的關(guān)系是:
式中:n=1,16,64。
若取n=16,那么異步傳送接收數據實(shí)現同步的過(guò)程如下:接收器在每一個(gè)接收時(shí)鐘的上升沿采樣接收數據線(xiàn),當發(fā)現接收數據線(xiàn)出現低電平時(shí)就認為是起始位的開(kāi)始,以后若在連續的8個(gè)時(shí)鐘周期(因n=16,故Td=16Tc)內檢測到接收數據線(xiàn)仍保持為低電平,則確定它為起始位(不是干擾信號)。通過(guò)這種方法,不僅能夠排除接收線(xiàn)上的噪聲干擾,識別假起始位,而且能夠相當精確地確定起始位的中間點(diǎn),從而提供一個(gè)準確的時(shí)間基準。從這個(gè)基準算起,每隔16Tc采樣一次數據線(xiàn),作為輸入數據。一般來(lái)說(shuō),從接收數據線(xiàn)上檢測到一個(gè)下降沿開(kāi)始,若其低電平能保持nTc/2(半位時(shí)間),則確定為起始位,其后每間隔nTc時(shí)間(一個(gè)數據位時(shí)間)在每個(gè)數據位的中間點(diǎn)采樣。
評論