電力線(xiàn)載波通信系統(tǒng)中的單片機(jī)程序設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
近距離的單片機(jī)通信采用總線(xiàn)方式即可實(shí)現(xiàn),遠(yuǎn)距離的單片機(jī)通信不能采用這種方式,尋找一種即可遠(yuǎn)距離傳輸,又保證安全可靠的通信方式很重要。電力線(xiàn)載波通信技術(shù)(PLC),是指利用已有的配電網(wǎng)作為傳輸媒介,實(shí)現(xiàn)數(shù)據(jù)傳遞和信息交換的一種技術(shù)。它能夠充分利用最為普及的電力線(xiàn)網(wǎng)絡(luò)資源,具有覆蓋范圍廣、建設(shè)速度快、投資少、用電器可以直接作為網(wǎng)絡(luò)終端等特點(diǎn)。低壓配電網(wǎng)PLC技術(shù)根據(jù)數(shù)據(jù)傳輸速率可以分為低速和高速兩種,低速PLC的數(shù)據(jù)傳輸速率小于1Mbit/s,目前技術(shù)比較成熟,而且已經(jīng)有相應(yīng)標(biāo)準(zhǔn)對(duì)其載波頻進(jìn)行了規(guī)定,中國(guó)電力線(xiàn)載波通信頻帶規(guī)定為3-500KHz。窄帶電力線(xiàn)載波技術(shù)由于數(shù)據(jù)傳輸速率較低,目前用于工業(yè)控制、配電自動(dòng)化、樓宇自動(dòng)化等。雙音頻(DTMF)技術(shù)以其較強(qiáng)的抗干擾能力和較低的誤碼率低等優(yōu)點(diǎn),是一種較為常用的通信方式。因此以電力線(xiàn)為傳輸介質(zhì),使用雙音頻通信方式實(shí)現(xiàn)單片機(jī)遠(yuǎn)距離通信是很有價(jià)值的。雙音頻收發(fā)電路的設(shè)計(jì)和應(yīng)用、通信傳輸協(xié)議的制定以及單片機(jī)的軟件設(shè)計(jì)是本系統(tǒng)設(shè)計(jì)的關(guān)鍵。本文著重介紹單片機(jī)的軟件設(shè)計(jì)。
系統(tǒng)結(jié)構(gòu)
系統(tǒng)的基本結(jié)構(gòu)如圖1所示,本系統(tǒng)采用巡回檢測(cè)的方式實(shí)現(xiàn)多路檢測(cè)報(bào)警,并通過(guò)USB接口連接到PC機(jī),用VB報(bào)警界面集中監(jiān)控顯示。首先,可以根據(jù)防盜區(qū)的需求有規(guī)律地設(shè)置多路報(bào)警檢測(cè)點(diǎn)(本系統(tǒng)可設(shè)置多達(dá)256個(gè)),即前端檢測(cè)電路。其次,由中心控制系統(tǒng)的單片機(jī)有順序地向前端發(fā)送檢測(cè)信號(hào),當(dāng)某個(gè)前端被檢測(cè)到時(shí),會(huì)通過(guò)前端單片機(jī)向中心控制系統(tǒng)發(fā)回自己的代碼并附上有無(wú)報(bào)警信息,如果有報(bào)警,中心控制系統(tǒng)就通過(guò)USB接口將數(shù)據(jù)傳送給PC機(jī),VB界面上會(huì)顯示相應(yīng)報(bào)警點(diǎn),并把報(bào)警時(shí)間和報(bào)警點(diǎn)編號(hào)記錄下來(lái),接著就繼續(xù)檢測(cè)下一個(gè)檢測(cè)點(diǎn),否則就直接轉(zhuǎn)去檢測(cè)下一個(gè)檢測(cè)點(diǎn)。但當(dāng)中心控制系統(tǒng)向前端發(fā)送檢測(cè)信號(hào)時(shí),如果等待某一段時(shí)間后前端無(wú)應(yīng)答時(shí),就報(bào)出錯(cuò)信息。如此周而復(fù)始,以達(dá)到對(duì)防盜區(qū)域內(nèi)的有效監(jiān)控。
圖1 系統(tǒng)結(jié)構(gòu)
本系統(tǒng)用軟件設(shè)置發(fā)送與接收是分時(shí)的,可以避免控制信號(hào)和檢測(cè)信號(hào)相互干擾,影響系統(tǒng)工作的正確性,又可減少硬件開(kāi)銷(xiāo),順利實(shí)現(xiàn)雙音頻信號(hào)的雙向傳輸。還利用全速USB設(shè)備接口連接到PC機(jī),既插即用,使用方便。用PC機(jī)的VB界面進(jìn)行報(bào)警,直觀(guān)明了,還可利用PC機(jī)的存儲(chǔ)記憶功能,使本系統(tǒng)更完善可靠。
本系統(tǒng)的功能指標(biāo)為:
·256個(gè)點(diǎn)巡回檢測(cè)。
·用220V低壓電力線(xiàn)傳輸信息。
·巡回檢測(cè)一次所有的前端的時(shí)間不超過(guò)1分鐘。
·前端檢測(cè)部分熱釋電人體紅外傳感器電路的感應(yīng)距離在10米,感應(yīng)持續(xù)時(shí)間為10s。
·PC監(jiān)視界面能給出無(wú)報(bào)警、報(bào)警、故障三種狀態(tài)的指標(biāo),并能以文本的格式存儲(chǔ)報(bào)警信息。
通信傳輸協(xié)議
為實(shí)現(xiàn)電力線(xiàn)載波通信的順利進(jìn)行,特制定如下傳輸協(xié)議:中心單片機(jī)控制信息的數(shù)據(jù)格式為:“#+目標(biāo)地址+*”,前端單片機(jī)返回檢測(cè)信息的數(shù)據(jù)格式為:“本機(jī)地址+?;虮緳C(jī)地址+*”。由于本系統(tǒng)采用巡回檢測(cè)的方式,所以中心發(fā)送命令時(shí)要附上目標(biāo)地址,前端接受信息時(shí)要與本機(jī)地址進(jìn)行核對(duì),以備前端判別是否要回送數(shù)據(jù),中心接收前端返回的檢測(cè)信息時(shí),也要與發(fā)送出去的目標(biāo)地址進(jìn)行核對(duì),以備中心判別是否其正在等待的信息。
單片機(jī)軟件設(shè)計(jì)
前端單片機(jī)軟件
前端檢測(cè)系統(tǒng)的程序流程圖如圖2所示。本機(jī)地址設(shè)為*000#,分別存放到內(nèi)存單元30H、31H、32H、33H、34H。單片機(jī)AT89C2051從P3口讀入五組8421代碼。經(jīng)過(guò)密碼校驗(yàn),如果密碼正確,則檢測(cè)P3.7口是否為低電平,如果是低電平就向中心發(fā)送報(bào)警信號(hào)“000#”,否則就發(fā)送“000*”。如果密碼不正確,前端就等待中心發(fā)送下一個(gè)檢測(cè)信號(hào)的命令。每發(fā)送一個(gè)代碼,都要調(diào)用一次延時(shí)子程序,這是為了有足夠的時(shí)間進(jìn)行編碼和有足夠的時(shí)間進(jìn)行譯碼,實(shí)驗(yàn)測(cè)得25ms的延時(shí)是比較可靠的。
圖2 前端檢測(cè)系統(tǒng)的程序流程圖
中心單片機(jī)軟件
中心控制系統(tǒng)的程序流程圖如圖3所示。由主程序、檢測(cè)命令發(fā)送子程序、密碼校對(duì)子程序、25ms延時(shí)子程序、USB中斷處理子程序組成。中心單片機(jī)發(fā)出五位檢測(cè)命令代碼后,啟動(dòng)100ms的TO中斷,如果在這段時(shí)間內(nèi)沒(méi)接收到前端的返回信息,中心就認(rèn)定該前端出現(xiàn)故障,如果接收到信息,中心單片機(jī)先對(duì)前三位代碼與內(nèi)存單元中的目標(biāo)地址進(jìn)行一一校對(duì),一致的話(huà)則繼續(xù)判斷下一位,最后判斷地4位的報(bào)警狀態(tài),并通過(guò)USB接口發(fā)送數(shù)據(jù)給PC幾的應(yīng)用程序進(jìn)行處理。接著中心繼續(xù)發(fā)送檢測(cè)下一個(gè)前端的命令。在程序中設(shè)置了大循環(huán)和小循環(huán),目的是小循環(huán)完成以后裝入下一個(gè)檢測(cè)前端設(shè)定值,以保證有異常輸入時(shí),系統(tǒng)延遲一定的時(shí)間后自動(dòng)恢復(fù)正常工作,當(dāng)中心控制需要通過(guò)USB接口向PC發(fā)送數(shù)據(jù)時(shí),只要調(diào)用中斷數(shù)據(jù)發(fā)送子程序,執(zhí)行三條語(yǔ)句就可以了。
圖3 中心控制系統(tǒng)的程序流程圖
結(jié)語(yǔ)
本系統(tǒng)設(shè)計(jì)的電路,性能穩(wěn)定、工作可靠、運(yùn)轉(zhuǎn)正常,能成功實(shí)現(xiàn)了單片機(jī)的雙向通信?;陔p音頻信號(hào)傳輸?shù)碾娏€(xiàn)載波通信系統(tǒng)為單片機(jī)遠(yuǎn)距離通信提供了一種方法。
參考文獻(xiàn):
1. 孫海翠、張金波,低壓電力線(xiàn)載波通信技術(shù)研究與應(yīng)用,電測(cè)與儀表,2006,第八期,54
2. 齊淑清,電力線(xiàn)通信技術(shù)與應(yīng)用,北京高等教育出版社,2005,66
3. 陳永甫,紅外探測(cè)與控制電路,人民郵電出版社,2004,178