利用VB實(shí)現(xiàn)PC機(jī)與多單片機(jī)遠(yuǎn)程無線通訊
1 引言
隨著現(xiàn)代電子與信息技術(shù)的不斷發(fā)展,計(jì)算機(jī)與單片機(jī)控制系統(tǒng)之間的遠(yuǎn)程無線通訊技術(shù)得到了廣泛的應(yīng)用,而數(shù)傳電臺目前已發(fā)展成為遠(yuǎn)程無線通信的一種重要工具,它使用靈活、性價(jià)比高,環(huán)境適應(yīng)能力強(qiáng),非常適用于大范圍、分散控制系統(tǒng)及在惡劣環(huán)境中,不適于鋪設(shè)有線網(wǎng)絡(luò)的實(shí)時(shí)監(jiān)控系統(tǒng),數(shù)傳電臺已成功應(yīng)用于電力設(shè)備監(jiān)控、計(jì)算機(jī)實(shí)時(shí)監(jiān)控與數(shù)據(jù)采集(SCADA)以及實(shí)時(shí)交易數(shù)據(jù)遙測遙控等領(lǐng)域。同時(shí)VB6.0具有界面友好、編程簡便高效、數(shù)據(jù)處理及驅(qū)動(dòng)底層硬件功能強(qiáng)等優(yōu)點(diǎn),成為許多用戶開發(fā)PC機(jī)與單片機(jī)串行通信程序的首選工具。
本文以美國MDS OEM EL705數(shù)傳電臺為通訊媒體,利用VB6.0的通訊控件MSComm實(shí)現(xiàn)了控制中心PC機(jī)與多個(gè)遠(yuǎn)端AT89C51單片機(jī)控制系統(tǒng)之間遠(yuǎn)程無線通訊,實(shí)現(xiàn)了控制中心PC機(jī)對多個(gè)遠(yuǎn)端單元的實(shí)時(shí)控制與管理,并應(yīng)用于工程設(shè)計(jì)中,通過實(shí)際應(yīng)用,取得了滿意的效果。
2 系統(tǒng)的組成及工作原理
2.1系統(tǒng)的組成
系統(tǒng)由控制中心和多個(gè)遠(yuǎn)端單元RTU(Remote Terminal Unit)組成??刂浦行闹饕缮衔粰C(jī)PC和數(shù)傳電臺組成,各遠(yuǎn)端單元由數(shù)傳電臺、AT89C51單片機(jī)系統(tǒng)及現(xiàn)場設(shè)備組成,各遠(yuǎn)端單元根據(jù)實(shí)際需要分布在距控制中心一定距離的范圍內(nèi),控制中心及遠(yuǎn)端單元結(jié)構(gòu)分別如圖1、圖2所示。
2.2工作原理
控制中心作為系統(tǒng)的數(shù)據(jù)終端設(shè)備DTE(Data Terminal Equipment),負(fù)責(zé)實(shí)現(xiàn)對遠(yuǎn)端單片機(jī)系統(tǒng)的實(shí)時(shí)控制與管理,打印單片機(jī)系統(tǒng)工作狀態(tài)信息、自檢信息、記錄報(bào)表信息及遠(yuǎn)程單片機(jī)系統(tǒng)故障報(bào)警信息等,并可通過局域網(wǎng)與其它PC機(jī)進(jìn)行信息傳遞。
PC機(jī)與數(shù)傳電臺通過RS232通訊電纜相連接,電臺采用連續(xù)相位頻移鍵控(CPFSK)調(diào)制方式,數(shù)據(jù)直接啟動(dòng)電臺發(fā)射,空中無線傳輸速率為9600bps,端口數(shù)據(jù)傳輸速率可根據(jù)系統(tǒng)需要設(shè)置為1200bps~19200bps。
各遠(yuǎn)端單元數(shù)傳電臺通過RS232通訊電纜與單片機(jī)系統(tǒng)相連接,單片機(jī)系統(tǒng)通過固態(tài)繼電器以離散量的形式控制現(xiàn)場設(shè)備。單片機(jī)系統(tǒng)(圖2虛線框中部分)采用MAX232芯片實(shí)現(xiàn)與數(shù)傳電臺之間信號的電平轉(zhuǎn)換,并通過2片8位移位寄存器74LS164和2片74LS373鎖存器,實(shí)現(xiàn)串行輸入并行輸出16位開關(guān)量,分別控制16個(gè)固態(tài)繼電器的通斷,從而控制16路現(xiàn)場設(shè)備。單片機(jī)系統(tǒng)還有復(fù)位、故障報(bào)警及高能蓄電池供電等系統(tǒng)。
圖1 控制中心結(jié)構(gòu)示意圖
圖2 遠(yuǎn)端單元結(jié)構(gòu)示意圖
綜上所述,系統(tǒng)是以數(shù)傳電臺為通信媒體,組成點(diǎn)到多點(diǎn)的主從式遠(yuǎn)程無線通信網(wǎng)絡(luò)系統(tǒng)。控制中心PC機(jī)和遠(yuǎn)端單元之間通過數(shù)傳電臺以同頻異步半雙工方式進(jìn)行數(shù)據(jù)信息傳輸,PC機(jī)通過串口發(fā)送信息到數(shù)傳電臺,數(shù)傳電臺通過高頻載波信號將控制信息發(fā)送給遠(yuǎn)端單元,收到正確信息的遠(yuǎn)端單元向控制中心回送正確接收信息,并執(zhí)行控制命令控制現(xiàn)場設(shè)備的接通與關(guān)斷,從而實(shí)現(xiàn)控制中心對各遠(yuǎn)端現(xiàn)場設(shè)備的實(shí)時(shí)控制與管理。
為實(shí)現(xiàn)最大的傳輸距離并防止各遠(yuǎn)端單元之間的相互干擾,系統(tǒng)控制中心的電臺使用全向天線,遠(yuǎn)端單元電臺使用定向天線,并保證控制中心電臺天線高于各遠(yuǎn)端電臺天線的高度。
3 無線串行通信程序設(shè)計(jì)
3.1通信協(xié)議
1、一幀數(shù)據(jù)位由1位起始位、8位數(shù)據(jù)位、0位校驗(yàn)位、1位停止位共10位組成。
2、波特率為9600bps。單片機(jī)串行口按方式1工作,波特率用定時(shí)器T1控制,為得到準(zhǔn)確的波特率,單片機(jī)采用振蕩頻率為11.0592MHz的晶振。PC機(jī)串口波特率通過VB通訊控件MSComm的Settings屬性設(shè)置,為保證數(shù)據(jù)傳送的準(zhǔn)確性,兩者的波特率必須一致。
3、PC機(jī)發(fā)送的信息為固定5個(gè)字節(jié):第1和第2字節(jié)分別為遠(yuǎn)端單元地址信息標(biāo)志(以AAH表示)和具體地址號(本系統(tǒng)有8個(gè)遠(yuǎn)端單元,可分別編址為 01H、02H、…08H),第3和第4字節(jié)為開關(guān)量控制信息(第3字節(jié)數(shù)據(jù)信息控制1到8路繼電器,第4字節(jié)控制9到16路繼電器),第5字節(jié)為校驗(yàn)碼(CheckSum)數(shù)據(jù)。
4、遠(yuǎn)端單片機(jī)回送的信息為固定3個(gè)字節(jié):第1和第2字節(jié)為遠(yuǎn)端單元地址,第3字節(jié)為回送的信息,EEH為接收完畢確認(rèn)信息,F(xiàn)FH為接收出錯(cuò)重發(fā)信息等。
3.2遠(yuǎn)端AT89C51單片機(jī)串行通訊程序設(shè)計(jì)
遠(yuǎn)端AT89C51單片機(jī)采用中斷方式、基于MCS-51匯編語言與上位機(jī)進(jìn)行通訊,中斷子程序流程圖如圖3所示。
控制中心上位機(jī)PC每次發(fā)送控制信息前必須先發(fā)送指定遠(yuǎn)端單元的地址信息,單片機(jī)進(jìn)入數(shù)據(jù)接收子程序,如果收到的地址與本機(jī)地址相同,置接收數(shù)據(jù)標(biāo)志位,連續(xù)接收上位機(jī)發(fā)送過來的控制信息。數(shù)據(jù)接收完畢,開始對控制信息進(jìn)行校驗(yàn)碼確認(rèn)操作,校驗(yàn)正確則回送上位機(jī)確認(rèn)信息,并對兩字節(jié)控制數(shù)據(jù)進(jìn)行移位操作等必要處理,最后輸出開關(guān)量并返回中斷入口處;若校驗(yàn)錯(cuò)誤,回送上位機(jī)重發(fā)信息。如果遠(yuǎn)端單片機(jī)收到的地址與本機(jī)地址不同,程序也返回中斷入口處,繼續(xù)執(zhí)行其它操作或等待接收新的信息。這樣,就確保上位機(jī)把控制信息可靠地傳給指定的遠(yuǎn)端單元,各遠(yuǎn)端單元回送的信息只能被上位機(jī)接收。由于每個(gè)數(shù)傳電臺時(shí)刻處于待機(jī)狀態(tài)(也可以根據(jù)實(shí)際需要,使電臺進(jìn)入休眠狀態(tài)等待),所以只有先對遠(yuǎn)端單元地址進(jìn)行確認(rèn),才能保證在某一時(shí)刻只有一個(gè)遠(yuǎn)端單元完全接收了上位機(jī)發(fā)出的數(shù)據(jù)信息,避免了不必要的資源耗費(fèi)。
數(shù)字通信相關(guān)文章:數(shù)字通信原理
通信相關(guān)文章:通信原理
晶振相關(guān)文章:晶振原理
評論