李 浩,吳建龍,李長(zhǎng)艷
(1.首鋼工學(xué)院 機(jī)電工程系,北京 100144;2.北京佳點(diǎn)風(fēng)向網(wǎng)絡(luò)科技有限公司,北京 100013)
?
基于服務(wù)的AT89x51單片機(jī)的網(wǎng)絡(luò)體系架構(gòu)
李浩1,吳建龍1,李長(zhǎng)艷2
(1.首鋼工學(xué)院 機(jī)電工程系,北京 100144;2.北京佳點(diǎn)風(fēng)向網(wǎng)絡(luò)科技有限公司,北京 100013)
詳細(xì)闡述利用AT89x51單片機(jī)異步串行口組成的主從式網(wǎng)絡(luò)系統(tǒng)和對(duì)等式網(wǎng)絡(luò)系統(tǒng)的特點(diǎn)、硬件構(gòu)成、通信協(xié)議、軟件程序流程圖以及信道爭(zhēng)用的應(yīng)對(duì)等,并通過(guò)軟件仿真驗(yàn)證了系統(tǒng)設(shè)計(jì)的正確性。
AT89x51;網(wǎng)絡(luò)體系架構(gòu);主從式網(wǎng)絡(luò);對(duì)等式網(wǎng)絡(luò);令牌環(huán)
引用格式:李浩,吳建龍,李長(zhǎng)艷. 基于服務(wù)的AT89x51單片機(jī)的網(wǎng)絡(luò)體系架構(gòu)[J].微型機(jī)與應(yīng)用,2016,35(16):53-56,59.
眾所周知,計(jì)算機(jī)網(wǎng)絡(luò)的類型可以從多個(gè)角度劃分,從地理位置上分為局域網(wǎng)、城域網(wǎng)和廣域網(wǎng)等;從傳輸介質(zhì)上分為有線網(wǎng)、光纖網(wǎng)和無(wú)線網(wǎng)等;從拓?fù)浣Y(jié)構(gòu)上分為星型網(wǎng)絡(luò)、環(huán)形網(wǎng)絡(luò)、總線網(wǎng)絡(luò)等;從服務(wù)類型上分為主從式(C/S)網(wǎng)絡(luò)和對(duì)等式網(wǎng)絡(luò)。當(dāng)然,隨著計(jì)算機(jī)網(wǎng)絡(luò)在各行各業(yè)應(yīng)用越來(lái)越廣泛,關(guān)注點(diǎn)不同,也就出現(xiàn)了更多的分類方法,此處不再一一列舉。本文對(duì)基于51單片機(jī)構(gòu)成的主從式網(wǎng)絡(luò)和對(duì)等式網(wǎng)絡(luò)的體系架構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行詳細(xì)闡述。
圖1是本文項(xiàng)目的載體平臺(tái),欲實(shí)現(xiàn)的功能是:3臺(tái)單片機(jī)均在00~99范圍內(nèi)循環(huán)計(jì)數(shù)并顯示;每臺(tái)機(jī)器上都加裝有按鍵,且每次按下的計(jì)數(shù)值不一樣;每臺(tái)機(jī)器上的計(jì)數(shù)值不能在本臺(tái)機(jī)器控制的LED上顯示,需要通過(guò)總線網(wǎng)絡(luò)傳輸?shù)狡渌麢C(jī)器上顯示。要實(shí)現(xiàn)這個(gè)功能,可以利用兩種網(wǎng)絡(luò)架構(gòu)來(lái)實(shí)現(xiàn),即主從式網(wǎng)絡(luò)和對(duì)等式網(wǎng)絡(luò)。通過(guò)查詢中國(guó)知網(wǎng)、萬(wàn)方數(shù)據(jù)庫(kù)以及國(guó)內(nèi)絕大多數(shù)的教科書和科技文獻(xiàn)可以發(fā)現(xiàn):51單片機(jī)多機(jī)串口通信方面的內(nèi)容大多限于主從式網(wǎng)絡(luò),即使涉及了對(duì)等式網(wǎng)絡(luò),這些論文中又將它們?nèi)藶榈胤殖闪薃組和B組,異組之間可以隨意通信,同組之間的單片機(jī)還是不能實(shí)現(xiàn)直接通信[1-3],沒(méi)有徹底解決地位“平等”的問(wèn)題。
圖1 研究對(duì)象
AT89x51/52單片機(jī)的異步串口由接收端RXD和發(fā)送端TXD兩個(gè)管腳組成。
完成一次傳輸?shù)幕締挝皇且粋€(gè)字節(jié),它是通過(guò)發(fā)送SBUF字節(jié)寄存器和接收SBUF字節(jié)寄存器來(lái)完成的。
串口控制寄存器SCON[4]的各位功能如表1所示。
表1 SCON控制字
異步串行通信方式下,該控制寄存器中,對(duì)實(shí)現(xiàn)多機(jī)通信起著關(guān)鍵作用的是SM2和TB8/SB8這3位。這3個(gè)控制位的具體工作機(jī)制(通信協(xié)議)如下。
(1)接收令牌(地址)幀信息,然后與本地站地址比對(duì),如果相同,則可以進(jìn)行以下步驟;如果不同,則不能往總線上發(fā)送信息。
(2)在傳輸信息以前,必須首先分別將3臺(tái)單片機(jī)的SM2都設(shè)置為1,表示發(fā)送機(jī)即將發(fā)送的地址幀信息,其余兩臺(tái)單片機(jī)都需要接收。
(3)發(fā)送機(jī)端需將TB8置位,表示本幀信息為地址幀。兩臺(tái)接收機(jī)接收到地址幀后立即與本機(jī)地址進(jìn)行比對(duì),如果相同,則將自己的SM2設(shè)置為0,該接收機(jī)能對(duì)接下來(lái)即將發(fā)送過(guò)來(lái)的數(shù)據(jù)幀產(chǎn)生接收中斷,即下一步通信不再是多方接收,而是雙機(jī)之間的一對(duì)一通信;如果不同,則該接收機(jī)仍然保持SM2的置位狀態(tài),它對(duì)接下來(lái)發(fā)送的數(shù)據(jù)幀不會(huì)產(chǎn)生中斷信號(hào)RI,因此不予接收。
(4)發(fā)送機(jī)清零TB8,表示本幀信息為數(shù)據(jù)幀。只有SM2=0的接收機(jī)才能接收到本數(shù)據(jù)幀,本次數(shù)據(jù)傳輸結(jié)束,該接收機(jī)需將SM2置為1,為下一次接收地址幀作好準(zhǔn)備。
(5)令牌字節(jié)的處理以及令牌的傳遞。
當(dāng)多臺(tái)51單片機(jī)工作于多機(jī)主從通信模式下,通信各方之間就有主、從之分;若直接采用TTL電平進(jìn)行互連,則主機(jī)與各臺(tái)從機(jī)之間的連接距離最好不要超過(guò)1 m[5]。主從式架構(gòu)的網(wǎng)絡(luò)具有如下一些特點(diǎn)。
(1)該網(wǎng)絡(luò)體系中只能有一臺(tái)主機(jī),可以有多臺(tái)從機(jī);
(2)主機(jī)與從機(jī)都能自主地在網(wǎng)絡(luò)上發(fā)送信息;
(3)主機(jī)可以在網(wǎng)絡(luò)上進(jìn)行一對(duì)多廣播或一對(duì)一單播;
(4)從機(jī)所發(fā)信息的接收對(duì)象只能是主機(jī),如果從機(jī)之間必須要通信,則只能通過(guò)主機(jī)進(jìn)行周轉(zhuǎn),這樣就增加了主機(jī)的負(fù)擔(dān)。
圖2 基于主從式架構(gòu)的網(wǎng)絡(luò)系統(tǒng)
3.1本系統(tǒng)的主從式網(wǎng)絡(luò)體系架構(gòu)
基于主從式網(wǎng)絡(luò)的特點(diǎn),本項(xiàng)目平臺(tái)硬件連接如圖2所示。本系統(tǒng)欲實(shí)現(xiàn)的功能有:主機(jī)的計(jì)數(shù)值送1號(hào)從機(jī),主機(jī)的計(jì)數(shù)值加1后送2號(hào)從機(jī);1號(hào)從機(jī)和2號(hào)從機(jī)的計(jì)數(shù)值分別送主機(jī)間隔3 s循環(huán)顯示。
圖3 主機(jī)程序流程圖
3.2系統(tǒng)的軟件流程圖
主機(jī)的程序流程圖如圖3所示,1、2號(hào)從機(jī)的程序流程圖如圖4所示。
主從式網(wǎng)絡(luò)架構(gòu)下,主機(jī)在發(fā)送信息給某臺(tái)從機(jī)以前,先在網(wǎng)絡(luò)上廣播接收機(jī)的站地址,待目的站地址回送該地址幀(本文成為握手成功)后再與目的接收機(jī)一對(duì)一地進(jìn)行通信。
主從式網(wǎng)絡(luò)架構(gòu)下,從機(jī)先發(fā)送地址幀信息給主機(jī)(只有主機(jī)能接收),主機(jī)不回送該地址幀,緊接著,發(fā)送數(shù)據(jù)幀給主機(jī)。主機(jī)間隔3 s輪流顯示兩臺(tái)從機(jī)發(fā)送過(guò)來(lái)的數(shù)據(jù)值。
圖4 從機(jī)程序流程圖
4.1對(duì)等式網(wǎng)絡(luò)的特點(diǎn)
對(duì)等式網(wǎng)絡(luò)中的終端在地位上完全相等,網(wǎng)絡(luò)終端均可以發(fā)送信息給網(wǎng)絡(luò)中其他任何一方,沒(méi)有任何限制。
4.2異步串行通信的數(shù)據(jù)格式
異步串行通信數(shù)據(jù)格式如圖5所示。
由其數(shù)據(jù)格式可以看出,網(wǎng)絡(luò)在空閑時(shí),TXD和RXD網(wǎng)線上始終是高電平,它對(duì)構(gòu)建51單片機(jī)之間的連接具有至關(guān)重要的作用。
4.3本系統(tǒng)的對(duì)等式網(wǎng)絡(luò)體系架構(gòu)
基于對(duì)等式架構(gòu)的網(wǎng)絡(luò)系統(tǒng)如圖6所示。
根據(jù)對(duì)等網(wǎng)的要求,每臺(tái)單片機(jī)的輸出信號(hào)都需要送到其他各臺(tái)單片機(jī)的輸入口??紤]到單片機(jī)的TXD端在空閑時(shí)始終處于高電平,因此,另外兩臺(tái)單片機(jī)的輸出端TXD的信號(hào)通過(guò)兩輸入的與門74LS08或CD4081的輸出連接到本機(jī)的RXD端,這樣就能有效地將該3臺(tái)單片機(jī)進(jìn)行互連,此時(shí),每臺(tái)單片機(jī)地位平等、沒(méi)有主次之分,任何一臺(tái)單片機(jī)都能將信息傳遞到任何其他的機(jī)器上。
本系統(tǒng)欲實(shí)現(xiàn)的功能有:1號(hào)機(jī)的計(jì)數(shù)值送2號(hào)機(jī)LED顯示,2號(hào)機(jī)的計(jì)數(shù)值送3號(hào)機(jī)LED顯示,3號(hào)機(jī)的計(jì)數(shù)值送1號(hào)機(jī)LED顯示。
圖5 異步串行通信數(shù)據(jù)格式
圖6 基于對(duì)等式架構(gòu)的網(wǎng)絡(luò)系統(tǒng)
4.4系統(tǒng)的軟件流程圖
由于2、3號(hào)機(jī)的程序流程圖與1號(hào)機(jī)類同,予以省略。1號(hào)機(jī)的程序流程圖如圖7所示。
圖7 1號(hào)機(jī)程序流程圖
對(duì)等式網(wǎng)絡(luò)架構(gòu)下,每臺(tái)機(jī)器在發(fā)送信息給其他某臺(tái)機(jī)器以前,先在網(wǎng)絡(luò)上廣播接收機(jī)的站地址,待目的站地址回送該地址幀(握手成功)后再與目的接收機(jī)進(jìn)行一對(duì)一的通信。
不論是主從式網(wǎng)絡(luò)系統(tǒng)還是對(duì)等式網(wǎng)絡(luò)系統(tǒng),都存在多臺(tái)機(jī)器同時(shí)往總線上發(fā)送信息導(dǎo)致信息被破壞的情況,為了有效地克服這個(gè)重大的缺陷,本文采用令牌環(huán)的方式來(lái)加以規(guī)范和應(yīng)對(duì)。
具體的工作機(jī)制如下。
(1)令牌的實(shí)質(zhì)就是一個(gè)地址幀,它由一個(gè)字節(jié)的變量來(lái)表示,該字節(jié)表示當(dāng)前時(shí)刻能往總線上發(fā)送數(shù)據(jù)的站地址,因此,構(gòu)成該網(wǎng)絡(luò)的單片機(jī)總數(shù)可以達(dá)到256臺(tái)。
(2)所有連網(wǎng)的單片機(jī)構(gòu)成一個(gè)令牌環(huán)網(wǎng)。
(3)每臺(tái)單片機(jī)每次死循環(huán)的最后一項(xiàng)任務(wù)就是在該令牌環(huán)網(wǎng)內(nèi)廣播傳遞令牌。
(4)所有單片機(jī)接收到該令牌后,將令牌中的內(nèi)容和本站地址作一比對(duì),如果相同,則該站可以主動(dòng)往總線上發(fā)送信息;若不相同,則不允許發(fā)送。
(5)除最大站地址外,本站在完成了網(wǎng)絡(luò)傳遞任務(wù)后,會(huì)將令牌幀內(nèi)容加1并在網(wǎng)絡(luò)上廣播以傳遞令牌給下一站;而最大地址站則需將令牌幀的內(nèi)容賦為最小站地址,表示下一次能占用網(wǎng)絡(luò)資源的站點(diǎn)地址。
因此,出現(xiàn)了第2節(jié)網(wǎng)絡(luò)協(xié)議的步驟(1)和(5),同時(shí)在前述圖3、圖4以及圖7的流程圖中也已經(jīng)包含了令牌環(huán)的傳遞和處理等功能。
需要特別指出的是,圖3主從式網(wǎng)絡(luò)中,由于從機(jī)之間不能互發(fā)信息,因此從機(jī)之間互發(fā)令牌幀的操作需要通過(guò)主機(jī)來(lái)周轉(zhuǎn),由于篇幅限制,在流程圖中沒(méi)有詳細(xì)體現(xiàn)出來(lái)。
6.1主從式網(wǎng)絡(luò)系統(tǒng)仿真與驗(yàn)證
硬件仿真原理圖[6]以及仿真結(jié)果如圖8所示。
6.2對(duì)等式網(wǎng)絡(luò)系統(tǒng)仿真與驗(yàn)證
硬件仿真原理圖以及仿真結(jié)果如圖9所示。
本文從服務(wù)分類的角度,對(duì)51單片機(jī)異步串口的網(wǎng)絡(luò)體系結(jié)構(gòu)進(jìn)行了詳細(xì)、全面的闡述。實(shí)踐證明上述原理和方法是可行的,但是出現(xiàn)了網(wǎng)絡(luò)利用率不高的缺陷,因此,提高總線的利用率是以后研究的重點(diǎn)。
圖8 主從式網(wǎng)絡(luò)系統(tǒng)仿真效果圖
圖9 對(duì)等式網(wǎng)絡(luò)系統(tǒng)仿真效果圖
[1] 虞耀君,王曉紅,張幼明.對(duì)等式令牌測(cè)控網(wǎng)絡(luò)的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2007,23(8-2):51-53.
[2] 吳德會(huì),王曉紅.對(duì)等式測(cè)控網(wǎng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2005,13(7):627-630.
[3] 楊會(huì)成,卓芝強(qiáng).單片機(jī)與PC機(jī)串行數(shù)據(jù)通信的工程實(shí)踐[J].微型機(jī)與應(yīng)用,2003,22(5):22-25.
[4] 楊瑞良,李平,邱清,等.計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)基礎(chǔ)[M].北京:北京大學(xué)出版社, 2008.
[5] 俞國(guó)亮.MCS-51單片機(jī)原理與應(yīng)用[M].北京:清華大學(xué)出版社,2010.
[6] 彭偉.單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)100例——基于8051+ Proteus仿真(第2版)[M].北京:電子工業(yè)出版社,2012.
李浩(1974-),通信作者,男,碩士,講師,主要研究方向:電子系統(tǒng)設(shè)計(jì)、計(jì)算機(jī)控制系統(tǒng)、自動(dòng)控制系統(tǒng)。E-mial:sggxylh@163.com。
Services-based network architectures about AT89x51 MCU
Li Hao1, Wu Jianlong1, Li Changyan2
(1.Department of Mechanical and Electrical Engineering, Shougang Institute of Technology, Beijing 100144, China;2.Jiadianfengxiang Network Technology Co.,Ltd., Beijing 100013,China)
AT89x51 MCU’s C/S network architecture and peer-to-peer network architecture are elaborated, including characters, hardware composition, communication protocol, the program flow chart, and the cope with channel contention of the MCUs. At the end, the correctness of the theories is tested through software.
AT89x51; network architecture; C/S architecture; peer-to-peer architecture; token ring
TP368.1
A
10.19358/j.issn.1674- 7720.2016.16.016
2016-03-17)