李錫渝 陳廷杰 李天明
摘要:在計算機系統的冗余控制及分布式測控系統中,大量采用到串行通信方式進行數據傳輸。在這里利用51單片機自備的串行接口,實現點對點通信及多單片機系統之間的異步信息。它主要用于雙機冗余控制單片機和單片機之間交換信息,也用于單片機和電腦之間的信息交流。系統采用多單片機系統組成分布式控制,系統采用主機和下位機結構,其中主機負責管理。下位機完成系統檢測和控制的功能,在主機和從機之間配備RS-232發送接收器實現遠距離傳輸,實驗結果達到設計要求。
關鍵詞:8051單片機;串口通信;MAX232;RS-232
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2019)10-0027-03
開放科學(資源服務)標識碼(OSID):
Design and Implementation of Multi-computer Asynchronous Communication Based on Single Chip Microcomputer
LI Xi-yu, CHEN Ting-jie, LI Tian-ming
(China University of Mining and Technology, Xuzhou 221116, China)
Abstract: In the redundancy control and distributed measurement and control system of computer system, serial communication is widely used for data transmission. In this paper, point-to-point communication and asynchronous information between multi-MCU systems are realized by using the serial interface of 51 MCU. It is mainly used for exchanging information between single-chip computer and single-chip computer, and also for exchanging information between single-chip computer and computer. The distributed control system is composed of multi-single-chip computer system. The system adopts the structure of host computer and slave computer, in which the host computer is responsible for management. Lower computer completes the function of system detection and control. RS-232 transmitter is equipped between host and slave computer to realize long-distance transmission. The experimental results meet the design requirements.
Key words: 8051 MCU; serial communication; MAX232; RS-232
在計算機系統的冗余控制及分布式測控系統中,為實現數據傳送,幾乎都采用了串行通信方式。而8051單片機上的串行接口,為數據通信提供了硬件條件。
在單片機和單片機之間數據交換或單片機和通用微機間的數據交換亦稱為雙機冗余控制雙機通訊。
在測控系統中,主機主要實現進行多機系統的管理。下位機在多機系統中要完成各種檢測控制,而主機和下位機之間配備接收器以進行多機系統的遠距離傳輸。
1 基于單片機的多機異步通信設計
采用總線主從式單片機通信系統,如圖所示。
在多個單片機組成的通信系統中,多采用單主機多從機的結構,其中一臺單片機為主機,其余則為從機,從機要服從主機的管理及資源調度。而51單片機的串行工作方式非常適合這種主機和從機的通信結構。由于系統要在不同的通信標準環境中工作,則需要對電平進行轉換,以適應相應的通信標準。在串行總線進行數據傳送時,多采用RS422或RS485標準總線。
1.1 基于單片機多機異步通信協議設計
根據51單片機內部的全雙工SBUF的通信能力,利用RXD和TXD信號線實現的接收數據效率,將單片機多機異步通信的通信協議按主機向從機和從機向主機發送兩個方向進行設計
1) 讓從機的SM2處于1的狀態,即為接收地址幀。
2) 主機發送地址信息,地址占用8位,在其后跟一位地址/數據信息的標志位,該位為1時表示前8位為地址信息。
3) 如果從機在從接收到的地址幀中讀到標志位為1且前8位與本機地址一致,則令本機的SM2為0,此時從機把地址發送回主機且從機處于接收信息狀態,主機接收到回送地址后第一步要確認地址是否相符,如一致則清TB8并開始發送數據,如果地址不相符,則TB8=1(復位),從機在收到TB8為1時恢復到監聽(地址)狀態。如果從地址幀讀取的地址與從機不一致,則保持SM2為1,不接收該數據。
4) 當接收到前8位為校驗幀且TB8=1時,表示數據發送完畢,再次設置SM2=0,結束本次通信。
5) 若RB8=0表示主機接收數據到緩沖區,當RB8=1時表示數據傳送完畢,主機開始校驗和,如果正確,發送從機復位信號00H,如果校驗錯誤則發送0FFH,則重新發送數據。
1.2 多機通信程序設計
主機利用中斷方式控制與主機的通信。通信程序分主機程序和從機程序,預定一地傳送的數據為16個字節,這里以02H地址的從機為例。
由于篇幅所限及編程環境的不同,這里就不對代碼部分詳細介紹,大家可以參考下面的流程圖完成代碼部分。
1.3 多機通信的電路設計
從機的電路連接圖:
器件選擇:
1) 8051單片機
2) 七段LED顯示器
3) 晶體振蕩器
4) 浮動按鈕
5) 發光二極管
6) 電容
硬件功能實現
1)從機U2按鍵按下,在本機的七段LED顯示器中顯示,同時將按鍵值以異步串行通信方式送往主機U1,在主機的七段LED顯示器中顯示;與此同時,主機將接收來的按鍵值送往另一臺從機U3,并顯示出來;同理,從機U3按鍵按下的過程和從機U2一樣。
2)發光二極管作用:綠燈指示該機正在接收數據,紅燈指示該機正在發送數據。
主機電路連接圖
器件選擇:
1) 8051單片機
2) 晶體振蕩器
3) 七段LED顯示器
4) 發光二極管
5) 電容
2 測試及結論
2.1 測試方法
調試步驟:
1) 打開仿真軟件,版本選擇PROTEUS 7.4;
2) 硬件連接:選擇所需器件,按照電路原理圖用導線連接;
3) 軟件:分別創建主機和從機源代碼文本,并分別編寫程序源代碼,保存文件;
4) 別打開主機和從機單片機屬性設置,設置必要項,選擇相應源代碼文件;
5) 擇調試按鈕開始調試。點擊任一從機上的按鈕,觀察本機LED顯示器的變化以及主機和另一從機的顯示,能正確顯示。
2.2 測試結果
實現單擊從機U2上任一按鈕可以實現本機顯示,主機顯示,最后從機U3顯示。單擊從機U3上任一按鈕同樣可以本機顯示、主機顯示、最后U2顯示。測試結果表明,數據可以從任一從機先傳輸到主機再傳輸到另一從機,實現了多機通信,達到預期效果。
3 結論
實現了單片機多機通信,而且實現起來并不復雜,實際硬件構成成本也不高。以單片機多機通信的實現為基礎,構建主從分布式控制網絡成為易事。以單片機多機通信為核心,外設部分可以千變萬化,只要加入各式傳感器,各式信息采集電路,再利用RS485接口芯片等,拓展傳輸距離,即可以獲得系統網絡內各點的實時信息,甚至控制各式終端設備。例如,可以加入溫度檢測電路和溫度控制電路,可以實現溫度遠程測控系統;加入電機轉速采集電路和電機供電控制電路,可以實現電機遠程測控系統??傊?,以單片機多機通信的開發潛力無限。
參考文獻:
[1] 趙曉安.MCS-51單片機原理及應用[M].天津:天津大學出版社,2006,09.
[2] 王為清,邱文勛.51單片機應用開發案例精選[M].北京:人民郵電出版社,2007,08.
[3] 何宏.單片機原理與接口技術[M].北京:國防工業出版社,2006.
[4] 吳秀清,周和琴.微型計算機原理與接口技術[M].安徽:中國科學技術大學出版社,2003.
【通聯編輯:梁書】