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