基于AVR單片機(jī)的有害氣體紅外檢測及語音警示系統(tǒng)的設(shè)計(jì)
本系統(tǒng)采用的是串行數(shù)據(jù)通信方式,接口為RS-232串口,實(shí)驗(yàn)證明這種通信方式簡單易行,符合本系統(tǒng)要求。本系統(tǒng)采用的是半雙工配置,它要求下位機(jī)和主機(jī)控制器雙方都具有獨(dú)立的發(fā)送和接收能力。
接收/發(fā)送時(shí)鐘用來控制通信設(shè)備接收/發(fā)送字符數(shù)據(jù)速度,該時(shí)鐘信號(hào)通常由微機(jī)內(nèi)部的時(shí)鐘電路產(chǎn)生。接收數(shù)據(jù)時(shí),接收器在接收時(shí)鐘的上升沿對(duì)接收數(shù)據(jù)采樣,進(jìn)行數(shù)據(jù)位檢測。發(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)同步的過程如下:接收器在每一個(gè)接收時(shí)鐘的上升沿采樣接收數(shù)據(jù)線,當(dāng)發(fā)現(xiàn)接收數(shù)據(jù)線出現(xiàn)低電平時(shí)就認(rèn)為是起始位的開始,以后若在連續(xù)的8個(gè)時(shí)鐘周期(因n=16,故Td=16Tc)內(nèi)檢測到接收數(shù)據(jù)線仍保持為低電平,則確定它為起始位(不是干擾信號(hào))。通過這種方法,不僅能夠排除接收線上的噪聲干擾,識(shí)別假起始位,而且能夠相當(dāng)精確地確定起始位的中間點(diǎn),從而提供一個(gè)準(zhǔn)確的時(shí)間基準(zhǔn)。從這個(gè)基準(zhǔn)算起,每隔16Tc采樣一次數(shù)據(jù)線,作為輸入數(shù)據(jù)。一般來說,從接收數(shù)據(jù)線上檢測到一個(gè)下降沿開始,若其低電平能保持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ā)送過來的信號(hào),針對(duì)各下位機(jī)地址發(fā)送應(yīng)答信號(hào),再根據(jù)主機(jī)控制器發(fā)來的控制信號(hào)做出相應(yīng)的反應(yīng),隨后發(fā)送主機(jī)控制器所需數(shù)據(jù)。其通信功能使用了單片機(jī)的串行中斷和查詢收發(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ā)送查詢控制命令。其工作過程為:控制器發(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(液晶顯示器)顯示屏中顯示出來。對(duì)同一從機(jī)多次呼叫而規(guī)定時(shí)間內(nèi)無應(yīng)答信號(hào)或應(yīng)答信號(hào)不正確,則提示錯(cuò)誤信息。圖5為主機(jī)控制器通信流程圖。
上位機(jī)監(jiān)控軟件由Visual C++編寫,具有良好的可視效果,功能包括數(shù)據(jù)查詢、數(shù)據(jù)存儲(chǔ)、串口通信設(shè)置、視頻監(jiān)控、圖表顯示(單機(jī)、多機(jī))等。上位機(jī)的數(shù)據(jù)來自主機(jī)控制器,其通過RS-232串口網(wǎng)絡(luò)傳送給上位機(jī),它的接口與RS-485網(wǎng)絡(luò)的接口是并行的,標(biāo)準(zhǔn)接口有25條線、4條數(shù)據(jù)線、11條控制線、3條定時(shí)線、7條備用和未定義線,但常用的只有9根。
3結(jié)束語
針對(duì)該系統(tǒng),除了可以使用自己設(shè)計(jì)的上位機(jī)軟件進(jìn)行調(diào)試,還可以利用一個(gè)簡單的串口調(diào)試器來實(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)域有著廣闊的前景。
評(píng)論