0引言
利用紅外感應(yīng)系統(tǒng)感應(yīng)附近有無(wú)有害氣體,,當(dāng)紅外感應(yīng)系統(tǒng)感受到有有害氣體接近時(shí),送出持續(xù)一段時(shí)間的高電平,;單片機(jī)通過(guò)開(kāi)啟中斷,,啟動(dòng)語(yǔ)音芯片,單片機(jī)通過(guò)串口通信,,從上位機(jī)提取的有害氣體參數(shù)提示給附近人體,,并經(jīng)過(guò)與安全值的比較判定當(dāng)前環(huán)境是否安全。對(duì)語(yǔ)音芯片的使用,,先將必要的文字,、數(shù)字信息錄制進(jìn)去,放音時(shí),,通過(guò)單片機(jī)自動(dòng)尋址,,把實(shí)時(shí)參數(shù)讀取出來(lái)。為便于以后系統(tǒng)改進(jìn)或移植到其他系統(tǒng),,可設(shè)計(jì)錄音,、放音電路,通過(guò)切換錄制不同內(nèi)容,。系統(tǒng)設(shè)計(jì)友好,、方便,給人的信息也更加直接,。
1系統(tǒng)總體設(shè)計(jì)方案
在氣體濃度是現(xiàn)有可利用的數(shù)據(jù)的基礎(chǔ)上,,考慮了系統(tǒng)的銜接性和可移植性。系統(tǒng)總體方案見(jiàn)圖1,。
本系統(tǒng)分為四大模塊:核心控制模塊,、語(yǔ)音電路模塊,、紅外感應(yīng)模塊以及數(shù)據(jù)的讀取。在氣體濃度為現(xiàn)有可利用資源的前提下設(shè)計(jì)了系統(tǒng)如何進(jìn)行讀取控制,。核心控制模塊采用單片機(jī)作為控制器件,,配合適當(dāng)?shù)耐鈬娐罚刂普麄€(gè)系統(tǒng)的運(yùn)行,。紅外感應(yīng)模塊以一個(gè)紅外傳感器為核心,,配置一定的信號(hào)處理電路,往單片機(jī)發(fā)信號(hào),。語(yǔ)音電路以語(yǔ)音芯片為核心,,設(shè)計(jì)了錄音、放音兩種電路,。
1.1核心控制模塊的設(shè)計(jì)
核心控制器件選用了單片機(jī),,其最小系統(tǒng)構(gòu)成如圖2所示。
該模塊是系統(tǒng)的核心,,當(dāng)紅外感應(yīng)系統(tǒng)感應(yīng)到人體,,會(huì)送出中斷信號(hào),單片機(jī)得到信號(hào)后執(zhí)行中斷,,通過(guò)串口通信讀取氣體濃度,,然后到語(yǔ)音芯片尋址,并控制語(yǔ)音模塊把氣體濃度報(bào)告出來(lái),。除了基本的外圍電路,,核心控制模塊外主要應(yīng)用了中斷、串行通信和基本的輸入,、輸出功能,。
本系統(tǒng)中上位機(jī)通過(guò)串口實(shí)現(xiàn)與單片機(jī)通信,然后由單片機(jī)進(jìn)行處理,,單片機(jī)接受紅外信號(hào)后,,控制語(yǔ)音芯片工作,播放相應(yīng)的語(yǔ)音信息,??蛇x的單片機(jī)較多,如AVR,、AT89C51等,。采用單獨(dú)的控制芯片的好處是減少主控芯片(CPLD)的工作量,提高系統(tǒng)的性能,。我們選用了AVR單片機(jī),。AVR是基于RISC(精簡(jiǎn)指令集計(jì)算機(jī))結(jié)構(gòu)的單片機(jī),簡(jiǎn)稱(chēng)AVR單片機(jī),該系列單片機(jī)在吸收PIC及8051單片機(jī)優(yōu)點(diǎn)的基礎(chǔ)上,,進(jìn)行了重大改進(jìn),。與普通的51系列單片機(jī)相比,AVR單片機(jī)有很多優(yōu)點(diǎn),。首先給人最直觀的就是具有JTAG邊界掃描,、仿真、編程功能,,不會(huì)造成以往仿真通過(guò)而脫機(jī)不行的現(xiàn)象,。
1.2紅外感應(yīng)模塊的設(shè)計(jì)
該模塊相對(duì)簡(jiǎn)單,核心用了紅外傳感器,,只把信號(hào)進(jìn)行了簡(jiǎn)單處理,,送給單片機(jī)的中斷即可,見(jiàn)圖3,。
1.3數(shù)據(jù)讀取方式的設(shè)計(jì)
對(duì)數(shù)據(jù)的讀取有兩種方法:一種是直接與硬件電路結(jié)合,,16位二進(jìn)制數(shù)據(jù)讀取過(guò)來(lái),,進(jìn)行整理還原,;另一種是通過(guò)串口通信,把已經(jīng)由上位機(jī)整理好的數(shù)據(jù),,通過(guò)RS-232協(xié)議讀取過(guò)來(lái),。顯然,較第1種方法,,通過(guò)串口的方式避免了對(duì)數(shù)據(jù)重復(fù)整理,,編程更簡(jiǎn)單。對(duì)整個(gè)項(xiàng)目而言,,設(shè)計(jì)更合理,,縮短了開(kāi)發(fā)周期。
本系統(tǒng)采用的是串行數(shù)據(jù)通信方式,,接口為RS-232串口,,實(shí)驗(yàn)證明這種通信方式簡(jiǎn)單易行,符合本系統(tǒng)要求,。本系統(tǒng)采用的是半雙工配置,,它要求下位機(jī)和主機(jī)控制器雙方都具有獨(dú)立的發(fā)送和接收能力。
接收/發(fā)送時(shí)鐘用來(lái)控制通信設(shè)備接收/發(fā)送字符數(shù)據(jù)速度,,該時(shí)鐘信號(hào)通常由微機(jī)內(nèi)部的時(shí)鐘電路產(chǎn)生,。接收數(shù)據(jù)時(shí),接收器在接收時(shí)鐘的上升沿對(duì)接收數(shù)據(jù)采樣,,進(jìn)行數(shù)據(jù)位檢測(cè),。發(fā)送數(shù)據(jù)時(shí),發(fā)送器在發(fā)送時(shí)鐘的下降沿將移位寄存器的數(shù)據(jù)串行移位輸出。
接收/發(fā)送時(shí)鐘頻率與波特率有如下關(guān)系:
式中:Fe為接收/發(fā)送時(shí)鐘頻率,;n為頻率系數(shù),,n=1,16,,64,;vc為收/發(fā)波特率。
接收/發(fā)送時(shí)鐘的周期Tc與發(fā)送的數(shù)據(jù)位寬Td之間的關(guān)系是:
式中:n=1,,16,,64。
若取n=16,,那么異步傳送接收數(shù)據(jù)實(shí)現(xiàn)同步的過(guò)程如下:接收器在每一個(gè)接收時(shí)鐘的上升沿采樣接收數(shù)據(jù)線(xiàn),,當(dāng)發(fā)現(xiàn)接收數(shù)據(jù)線(xiàn)出現(xiàn)低電平時(shí)就認(rèn)為是起始位的開(kāi)始,以后若在連續(xù)的8個(gè)時(shí)鐘周期(因n=16,,故Td=16Tc)內(nèi)檢測(cè)到接收數(shù)據(jù)線(xiàn)仍保持為低電平,,則確定它為起始位(不是干擾信號(hào))。通過(guò)這種方法,,不僅能夠排除接收線(xiàn)上的噪聲干擾,,識(shí)別假起始位,而且能夠相當(dāng)精確地確定起始位的中間點(diǎn),,從而提供一個(gè)準(zhǔn)確的時(shí)間基準(zhǔn),。從這個(gè)基準(zhǔn)算起,每隔16Tc采樣一次數(shù)據(jù)線(xiàn),,作為輸入數(shù)據(jù),。一般來(lái)說(shuō),從接收數(shù)據(jù)線(xiàn)上檢測(cè)到一個(gè)下降沿開(kāi)始,,若其低電平能保持nTc/2(半位時(shí)間),,則確定為起始位,其后每間隔nTc時(shí)間(一個(gè)數(shù)據(jù)位時(shí)間)在每個(gè)數(shù)據(jù)位的中間點(diǎn)采樣,。
2通信軟件設(shè)計(jì)
系統(tǒng)通信軟件由下位機(jī),、主機(jī)控制器通信軟件和上位機(jī)監(jiān)控軟件3部分組成。下位機(jī)通信軟件功能主要是接收主機(jī)控制器發(fā)送過(guò)來(lái)的信號(hào),,針對(duì)各下位機(jī)地址發(fā)送應(yīng)答信號(hào),,再根據(jù)主機(jī)控制器發(fā)來(lái)的控制信號(hào)做出相應(yīng)的反應(yīng),隨后發(fā)送主機(jī)控制器所需數(shù)據(jù),。其通信功能使用了單片機(jī)的串行中斷和查詢(xún)收發(fā)狀態(tài)標(biāo)志位的方法實(shí)現(xiàn),。下位機(jī)平時(shí)對(duì)各監(jiān)控點(diǎn)進(jìn)行數(shù)據(jù)采集并定時(shí)存儲(chǔ),當(dāng)有串行中斷時(shí)執(zhí)行串行中斷服務(wù)程序,,判別是否為本機(jī)的地址信息,,地址信息與本機(jī)地址相符時(shí),,轉(zhuǎn)為接收控制命令,并執(zhí)行相應(yīng)的操作,;地址信息與本站地址不符時(shí)則退出中斷,。下位機(jī)通信流程圖如圖4所示。
主機(jī)控制器的通信軟件實(shí)現(xiàn)功能主要包括呼叫各從機(jī)(下位機(jī)),,并向各從機(jī)發(fā)送查詢(xún)控制命令,。其工作過(guò)程為:控制器發(fā)送需呼叫的從機(jī)的地址,然后等待接收從機(jī)的應(yīng)答信號(hào),,若應(yīng)答信號(hào)正確即發(fā)送控制命令,,若應(yīng)答信號(hào)不正確則重新發(fā)送需呼叫的地址,并等待接收應(yīng)答信號(hào),,接收到應(yīng)答信號(hào)后接收下位機(jī)發(fā)送的數(shù)據(jù),,存儲(chǔ)在相對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)區(qū)并在LCD(液晶顯示器)顯示屏中顯示出來(lái)。對(duì)同一從機(jī)多次呼叫而在規(guī)定時(shí)間內(nèi)無(wú)應(yīng)答信號(hào)或應(yīng)答信號(hào)不正確,,則提示錯(cuò)誤信息,。圖5為主機(jī)控制器通信流程圖。
上位機(jī)監(jiān)控軟件由Visual C++編寫(xiě),,具有良好的可視效果,,功能包括數(shù)據(jù)查詢(xún)、數(shù)據(jù)存儲(chǔ),、串口通信設(shè)置,、視頻監(jiān)控、圖表顯示(單機(jī),、多機(jī))等。上位機(jī)的數(shù)據(jù)來(lái)自主機(jī)控制器,,其通過(guò)RS-232串口網(wǎng)絡(luò)傳送給上位機(jī),,它的接口與RS-485網(wǎng)絡(luò)的接口是并行的,標(biāo)準(zhǔn)接口有25條線(xiàn),、4條數(shù)據(jù)線(xiàn),、11條控制線(xiàn)、3條定時(shí)線(xiàn),、7條備用和未定義線(xiàn),,但常用的只有9根。
3結(jié)束語(yǔ)
針對(duì)該系統(tǒng),,除了可以使用自己設(shè)計(jì)的上位機(jī)軟件進(jìn)行調(diào)試,,還可以利用一個(gè)簡(jiǎn)單的串口調(diào)試器來(lái)實(shí)現(xiàn)。該系統(tǒng)覆蓋了單片機(jī)技術(shù)及一部分模擬,、數(shù)字電路的知識(shí),,系統(tǒng)具有一定的操控性,、工作穩(wěn)定、實(shí)現(xiàn)容易,、成本低,,具有很高的使用價(jià)值,在系統(tǒng)建成后,,運(yùn)行結(jié)果表明系統(tǒng)工作穩(wěn)定可靠,,在工業(yè)控制領(lǐng)域有著廣闊的前景。