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