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