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