李錫渝 陳廷杰 李天明
摘要:在計算機系統(tǒng)的冗余控制及分布式測控系統(tǒng)中,大量采用到串行通信方式進行數(shù)據(jù)傳輸。在這里利用51單片機自備的串行接口,實現(xiàn)點對點通信及多單片機系統(tǒng)之間的異步信息。它主要用于雙機冗余控制單片機和單片機之間交換信息,也用于單片機和電腦之間的信息交流。系統(tǒng)采用多單片機系統(tǒng)組成分布式控制,系統(tǒng)采用主機和下位機結(jié)構(gòu),其中主機負責(zé)管理。下位機完成系統(tǒng)檢測和控制的功能,在主機和從機之間配備RS-232發(fā)送接收器實現(xiàn)遠距離傳輸,實驗結(jié)果達到設(shè)計要求。
關(guān)鍵詞:8051單片機;串口通信;MAX232;RS-232
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2019)10-0027-03
開放科學(xué)(資源服務(wù))標識碼(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
在計算機系統(tǒng)的冗余控制及分布式測控系統(tǒng)中,為實現(xiàn)數(shù)據(jù)傳送,幾乎都采用了串行通信方式。而8051單片機上的串行接口,為數(shù)據(jù)通信提供了硬件條件。
在單片機和單片機之間數(shù)據(jù)交換或單片機和通用微機間的數(shù)據(jù)交換亦稱為雙機冗余控制雙機通訊。
在測控系統(tǒng)中,主機主要實現(xiàn)進行多機系統(tǒng)的管理。下位機在多機系統(tǒng)中要完成各種檢測控制,而主機和下位機之間配備接收器以進行多機系統(tǒng)的遠距離傳輸。
1 基于單片機的多機異步通信設(shè)計
采用總線主從式單片機通信系統(tǒng),如圖所示。
在多個單片機組成的通信系統(tǒng)中,多采用單主機多從機的結(jié)構(gòu),其中一臺單片機為主機,其余則為從機,從機要服從主機的管理及資源調(diào)度。而51單片機的串行工作方式非常適合這種主機和從機的通信結(jié)構(gòu)。由于系統(tǒng)要在不同的通信標準環(huán)境中工作,則需要對電平進行轉(zhuǎn)換,以適應(yīng)相應(yīng)的通信標準。在串行總線進行數(shù)據(jù)傳送時,多采用RS422或RS485標準總線。
1.1 基于單片機多機異步通信協(xié)議設(shè)計
根據(jù)51單片機內(nèi)部的全雙工SBUF的通信能力,利用RXD和TXD信號線實現(xiàn)的接收數(shù)據(jù)效率,將單片機多機異步通信的通信協(xié)議按主機向從機和從機向主機發(fā)送兩個方向進行設(shè)計
1) 讓從機的SM2處于1的狀態(tài),即為接收地址幀。
2) 主機發(fā)送地址信息,地址占用8位,在其后跟一位地址/數(shù)據(jù)信息的標志位,該位為1時表示前8位為地址信息。
3) 如果從機在從接收到的地址幀中讀到標志位為1且前8位與本機地址一致,則令本機的SM2為0,此時從機把地址發(fā)送回主機且從機處于接收信息狀態(tài),主機接收到回送地址后第一步要確認地址是否相符,如一致則清TB8并開始發(fā)送數(shù)據(jù),如果地址不相符,則TB8=1(復(fù)位),從機在收到TB8為1時恢復(fù)到監(jiān)聽(地址)狀態(tài)。如果從地址幀讀取的地址與從機不一致,則保持SM2為1,不接收該數(shù)據(jù)。
4) 當(dāng)接收到前8位為校驗幀且TB8=1時,表示數(shù)據(jù)發(fā)送完畢,再次設(shè)置SM2=0,結(jié)束本次通信。
5) 若RB8=0表示主機接收數(shù)據(jù)到緩沖區(qū),當(dāng)RB8=1時表示數(shù)據(jù)傳送完畢,主機開始校驗和,如果正確,發(fā)送從機復(fù)位信號00H,如果校驗錯誤則發(fā)送0FFH,則重新發(fā)送數(shù)據(jù)。
1.2 多機通信程序設(shè)計
主機利用中斷方式控制與主機的通信。通信程序分主機程序和從機程序,預(yù)定一地傳送的數(shù)據(jù)為16個字節(jié),這里以02H地址的從機為例。
由于篇幅所限及編程環(huán)境的不同,這里就不對代碼部分詳細介紹,大家可以參考下面的流程圖完成代碼部分。
1.3 多機通信的電路設(shè)計
從機的電路連接圖:
器件選擇:
1) 8051單片機
2) 七段LED顯示器
3) 晶體振蕩器
4) 浮動按鈕
5) 發(fā)光二極管
6) 電容
硬件功能實現(xiàn)
1)從機U2按鍵按下,在本機的七段LED顯示器中顯示,同時將按鍵值以異步串行通信方式送往主機U1,在主機的七段LED顯示器中顯示;與此同時,主機將接收來的按鍵值送往另一臺從機U3,并顯示出來;同理,從機U3按鍵按下的過程和從機U2一樣。
2)發(fā)光二極管作用:綠燈指示該機正在接收數(shù)據(jù),紅燈指示該機正在發(fā)送數(shù)據(jù)。
主機電路連接圖
器件選擇:
1) 8051單片機
2) 晶體振蕩器
3) 七段LED顯示器
4) 發(fā)光二極管
5) 電容
2 測試及結(jié)論
2.1 測試方法
調(diào)試步驟:
1) 打開仿真軟件,版本選擇PROTEUS 7.4;
2) 硬件連接:選擇所需器件,按照電路原理圖用導(dǎo)線連接;
3) 軟件:分別創(chuàng)建主機和從機源代碼文本,并分別編寫程序源代碼,保存文件;
4) 別打開主機和從機單片機屬性設(shè)置,設(shè)置必要項,選擇相應(yīng)源代碼文件;
5) 擇調(diào)試按鈕開始調(diào)試。點擊任一從機上的按鈕,觀察本機LED顯示器的變化以及主機和另一從機的顯示,能正確顯示。
2.2 測試結(jié)果
實現(xiàn)單擊從機U2上任一按鈕可以實現(xiàn)本機顯示,主機顯示,最后從機U3顯示。單擊從機U3上任一按鈕同樣可以本機顯示、主機顯示、最后U2顯示。測試結(jié)果表明,數(shù)據(jù)可以從任一從機先傳輸?shù)街鳈C再傳輸?shù)搅硪粡臋C,實現(xiàn)了多機通信,達到預(yù)期效果。
3 結(jié)論
實現(xiàn)了單片機多機通信,而且實現(xiàn)起來并不復(fù)雜,實際硬件構(gòu)成成本也不高。以單片機多機通信的實現(xiàn)為基礎(chǔ),構(gòu)建主從分布式控制網(wǎng)絡(luò)成為易事。以單片機多機通信為核心,外設(shè)部分可以千變?nèi)f化,只要加入各式傳感器,各式信息采集電路,再利用RS485接口芯片等,拓展傳輸距離,即可以獲得系統(tǒng)網(wǎng)絡(luò)內(nèi)各點的實時信息,甚至控制各式終端設(shè)備。例如,可以加入溫度檢測電路和溫度控制電路,可以實現(xiàn)溫度遠程測控系統(tǒng);加入電機轉(zhuǎn)速采集電路和電機供電控制電路,可以實現(xiàn)電機遠程測控系統(tǒng)??傊?,以單片機多機通信的開發(fā)潛力無限。
參考文獻:
[1] 趙曉安.MCS-51單片機原理及應(yīng)用[M].天津:天津大學(xué)出版社,2006,09.
[2] 王為清,邱文勛.51單片機應(yīng)用開發(fā)案例精選[M].北京:人民郵電出版社,2007,08.
[3] 何宏.單片機原理與接口技術(shù)[M].北京:國防工業(yè)出版社,2006.
[4] 吳秀清,周和琴.微型計算機原理與接口技術(shù)[M].安徽:中國科學(xué)技術(shù)大學(xué)出版社,2003.
【通聯(lián)編輯:梁書】