基于RS-485總線的可擴展局域網(wǎng)絡(luò)的研究
這2個背靠背的節(jié)點模塊又是子網(wǎng)之間的中繼站。同時還規(guī)定00H子網(wǎng)的00H節(jié)點,即地址為00000000?00000000的節(jié)點為整個網(wǎng)絡(luò)的最高管理者。局域網(wǎng)絡(luò)宜采用拓?fù)浣Y(jié)構(gòu),以提高網(wǎng)絡(luò)運行效率,而鏈?zhǔn)浇Y(jié)構(gòu)可增加網(wǎng)絡(luò)的通信距離。RS-485總線構(gòu)成的局域網(wǎng)絡(luò)結(jié)構(gòu)示意圖如圖3所示(以00H、01H2個子網(wǎng)為例)。
3節(jié)點模塊的設(shè)計
該局域網(wǎng)絡(luò)的關(guān)鍵是節(jié)點模塊的設(shè)計。這也是本局域網(wǎng)絡(luò)的特色所在,其中軟件設(shè)計至關(guān)重要。節(jié)點模塊主要完成網(wǎng)絡(luò)的管理和通信。為了使模塊具有通用性,所有節(jié)點模塊具有相同的結(jié)構(gòu)和軟件,只要按照網(wǎng)絡(luò)協(xié)議選擇好正確的地址,任一模塊都可相互替換。網(wǎng)絡(luò)中沒有專門的網(wǎng)絡(luò)服務(wù)器,任意一個節(jié)點模塊都具有服務(wù)器的功能。哪個節(jié)點模塊充當(dāng)服務(wù)器是由其自身的地址決定的,因此節(jié)點模塊軟件應(yīng)該具有自動識別地址的功能,以確定自己在網(wǎng)絡(luò)中的位置和角色。例如,當(dāng)檢測到自身的地址是00001010?×0000000時,就知道自己是0AH子網(wǎng)中的OOH節(jié)點,并且是該子網(wǎng)中的管理者;當(dāng)檢測到自身地址是00000000?×0000000時,就知道自己是整個局域網(wǎng)絡(luò)的最高管理者。節(jié)點模塊地址可由用戶自行設(shè)定。
為了實現(xiàn)即插即用功能,最高管理者必須定時向整個網(wǎng)絡(luò)廣播,以便收集網(wǎng)絡(luò)的運行情況(如是否有新節(jié)點加入,是否有節(jié)點從網(wǎng)絡(luò)上退出等)并形成網(wǎng)絡(luò)狀態(tài)注冊表,根據(jù)實際情況實時刷新。任何節(jié)點都可以向最高管理者取得該注冊表,以便管理人員從任一節(jié)點上獲得網(wǎng)絡(luò)運行狀態(tài)。
網(wǎng)絡(luò)空閑時,最高管理者不斷地向整個網(wǎng)絡(luò)發(fā)出詢問,監(jiān)視是否有數(shù)據(jù)通信要求。子網(wǎng)內(nèi)部的數(shù)據(jù)通信由該子網(wǎng)的管理者(節(jié)點地址為00H)協(xié)調(diào),只有跨子網(wǎng)傳輸數(shù)據(jù)時,最高管理者(子網(wǎng)地址為00H,節(jié)點地址也是00H)才會干預(yù)。節(jié)點模塊中有8KB的SRAM作為數(shù)據(jù)緩沖區(qū),另外有2KB的E2PROM用于保存注冊表等信息。單片機的串行通信口既要完成RS-485總線的通信,又要完成由RS-232總線到設(shè)備的通信,所以必須有通信口切換功能。平時單片機的串行通信口總是與RS-485總線相連,只有當(dāng)設(shè)備需要傳輸數(shù)據(jù)時才切換到RS-232總線,所以系統(tǒng)還必須有對設(shè)備通信請求的檢測功能。限于篇幅,軟件具體編程在此不作敘述。節(jié)點模塊的結(jié)構(gòu)如圖4所示。
4總結(jié)
理論上該局域網(wǎng)絡(luò)對節(jié)點的擴展沒有限制,但考慮到RS-485總線通信速度的限制,因此網(wǎng)絡(luò)規(guī)模不宜過大。由前面的結(jié)構(gòu)分析可知,網(wǎng)絡(luò)的可靠性取決于子網(wǎng)。由于各子網(wǎng)間不會產(chǎn)生串?dāng)_,因此網(wǎng)絡(luò)的可靠性不會隨網(wǎng)絡(luò)的規(guī)模擴大而降低。這是一個通用的局域網(wǎng)絡(luò),適合任何需要RS-485總線通信的場合,因此實用性非常強。
評論