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