基于RS485總線(xiàn)的可擴展局域網(wǎng)絡(luò )的研究
1 RS-485總線(xiàn)通訊的特點(diǎn)
本文引用地址:http://dyxdggzs.com/article/201612/341444.htmRS-485是在RS-422的基礎上發(fā)展起來(lái)的,能實(shí)現一點(diǎn)對多點(diǎn)的通訊,也能實(shí)現多點(diǎn)雙向通訊,但同一時(shí)刻只能有一個(gè)發(fā)送器,其余的為接收器,即一主多從的通訊方式。目前市場(chǎng)上可供選擇的RS-485總線(xiàn)芯片很多,其中包括可支持128個(gè)節點(diǎn)的MAXl487和支持400個(gè)節點(diǎn)的SP485R。利用該類(lèi)芯片可直接組成簡(jiǎn)單的通訊網(wǎng)絡(luò )。
RS-485收發(fā)器采用平衡發(fā)送、差分接收的方式,即在發(fā)送端將TTL信號轉換成差分信號輸出,在接收端,接收器將差分信號轉換成TTL信號。因此具有較高的共模抑制能力。同時(shí)接收用具有較高的靈敏度,能檢測低達200mV的電壓,數據傳輸可達1 200m。如降低數據傳輸速率,則通訊間隔可更長(cháng)。當通訊速率為1 200bps時(shí),理論上通訊間隔可達15km。當傳輸間隔超過(guò)300m時(shí),在網(wǎng)絡(luò )的二端需接進(jìn)120Ω的匹配電阻,以減少因阻抗不匹配而引起的反射,吸收噪聲,從而有效抑制噪聲干擾。MAXl487的接口電路示意圖如圖1所示。

2網(wǎng)絡(luò )結構及實(shí)施方案
在實(shí)際應用中,RS-485總線(xiàn)芯片本身所擁有的節點(diǎn)數已不能滿(mǎn)足需求,而往往需要一個(gè)接點(diǎn)龐大的復雜局域網(wǎng)絡(luò )(如幾千甚至幾萬(wàn)個(gè)節點(diǎn))來(lái)完成。連接在該網(wǎng)絡(luò )中的各類(lèi)設備能相互通訊,并且可以在一定節點(diǎn)數范圍內根據實(shí)際需要任意擴展,并做到即插即用。治理職員通過(guò)隨身攜帶的筆記本電腦,接進(jìn)網(wǎng)絡(luò )中的任一接點(diǎn),可了解整個(gè)網(wǎng)絡(luò )的運行情況。結適用戶(hù)應用程序,治理職員還可獲得連接于該網(wǎng)絡(luò )上相關(guān)設備的運行數據。
針對以上要求,局域網(wǎng)絡(luò )必須由多片具有RS-485總線(xiàn)的芯片連接而成。本文討論節點(diǎn)數≤32768點(diǎn)的局域網(wǎng)絡(luò ),使用MAXl487作收發(fā)器。根據RS-485總線(xiàn)的特點(diǎn);在任一時(shí)刻,整個(gè)網(wǎng)絡(luò )只答應有一個(gè)發(fā)送器,其余的必須處于接收狀態(tài)。而接進(jìn)網(wǎng)絡(luò )中的設備隨時(shí)可能有多個(gè)設備同時(shí)傳輸數據的要求,如不進(jìn)行協(xié)調,就會(huì )出現總線(xiàn)競爭現象,使總線(xiàn)電子紊亂,整個(gè)網(wǎng)絡(luò )無(wú)法工作。
將一片MAXl487所能連接的128個(gè)節點(diǎn)作為一個(gè)子網(wǎng),整個(gè)局域網(wǎng)絡(luò )由若干個(gè)子網(wǎng)組成。所有節點(diǎn)不直接和用戶(hù)設備相連,而是通過(guò)一個(gè)節點(diǎn)模塊和設備連接。這是一種二端帶通訊口的智能化模塊,內帶一個(gè)單片機系統,用于執行局域網(wǎng)絡(luò )通訊協(xié)議,負責BS-485總線(xiàn)和設備間的通訊,同時(shí)參與整個(gè)局域網(wǎng)絡(luò )的通訊協(xié)調工作。模塊的一端為RS-485總線(xiàn),用于連接網(wǎng)絡(luò ),另一端是RS-232總線(xiàn)(或TTL電平)與用戶(hù)設備、儀器儀表或智能傳感器連接。
子網(wǎng)中每個(gè)節點(diǎn)模塊都有自己的地址,用1個(gè)字節表示,即00H~7FH。而在整個(gè)局域網(wǎng)絡(luò )中,每個(gè)子網(wǎng)也有自己的子網(wǎng)地址,也用1個(gè)字節表示,即00H~FFH。這樣,在整個(gè)局域網(wǎng)絡(luò )中每個(gè)節點(diǎn)就有自己惟一的用2個(gè)字節的二進(jìn)制數表示的地址,類(lèi)似Internet中的IP地址,其地址格式如圖2所示。以00H子網(wǎng)05H節點(diǎn)為例,其中的"X"為無(wú)效位

規定每個(gè)子網(wǎng)中的地址為00H和7FH的2個(gè)節點(diǎn)為特殊節點(diǎn)。地址為00H的節點(diǎn)是該子網(wǎng)的治理者,協(xié)音調網(wǎng)中的通訊,同時(shí)也是該子網(wǎng)的一個(gè)數據出進(jìn)口,和上一個(gè)地址為7FH的節點(diǎn)連接。地址為7FH的節點(diǎn)為該子網(wǎng)的另一個(gè)數據出進(jìn)口,負責和下一個(gè)子網(wǎng)中地址為00H的節點(diǎn)連接。這表示子網(wǎng)之間是由2個(gè)背靠背的節點(diǎn)模塊通過(guò)RS-232總線(xiàn)相連的。
這2個(gè)背靠背的節點(diǎn)模塊又是子網(wǎng)之間的中繼站。同時(shí)還規定00H子網(wǎng)的00H節點(diǎn),即地址為"00000000·00000000"的節點(diǎn)為整個(gè)網(wǎng)絡(luò )的最高治理者。局域網(wǎng)絡(luò )宜采用拓撲結構,以進(jìn)步網(wǎng)絡(luò )運行效率,而鏈式結構可增加網(wǎng)絡(luò )的通訊間隔。RS-485總線(xiàn)構成的局域網(wǎng)絡(luò )結構示意圖如圖3所示(以00H、01H 2個(gè)子網(wǎng)為例)。

3節點(diǎn)模塊的設計
該局域網(wǎng)絡(luò )的關(guān)鍵是節點(diǎn)模塊的設計。這也是本局域網(wǎng)絡(luò )的特色所在,其中軟件設計至關(guān)重要。節點(diǎn)模塊主要完成網(wǎng)絡(luò )的治理和通訊。為了使模塊具有通用性,所有節點(diǎn)模塊具有相同的結構和軟件,只要按照網(wǎng)絡(luò )協(xié)議選擇好正確的地址,任一模塊都可相互替換。網(wǎng)絡(luò )中沒(méi)有專(zhuān)門(mén)的網(wǎng)絡(luò )服務(wù)器,任意一個(gè)節點(diǎn)模塊都具有服務(wù)器的功能。哪個(gè)節點(diǎn)模塊充當服務(wù)器是由其自身的地址決定的,因此節點(diǎn)模塊軟件應該具有自動(dòng)識別地址的功能,以確定自己在網(wǎng)絡(luò )中的位置和角色。例如,當檢測到自身的地址是"00001010·×0000000"時(shí),就知道自己是0AH子網(wǎng)中的OOH節點(diǎn),并且是該子網(wǎng)中的治理者;當檢測到自身地址是"00000000·×0000000"時(shí),就知道自己是整個(gè)局域網(wǎng)絡(luò )的最高治理者。節點(diǎn)模塊地址可由用戶(hù)自行設定。
為了實(shí)現即插即用功能,最高治理者必須定時(shí)向整個(gè)網(wǎng)絡(luò )廣播,以便收集網(wǎng)絡(luò )的運行情況(如是否有新節點(diǎn)加進(jìn),是否有節點(diǎn)從網(wǎng)絡(luò )上退出等)并形成網(wǎng)絡(luò )狀態(tài)注冊表,根據實(shí)際情況實(shí)時(shí)刷新。任何節點(diǎn)都可以向最高治理者取得該注冊表,以便治理職員從任一節點(diǎn)上獲得網(wǎng)絡(luò )運行狀態(tài)。
網(wǎng)絡(luò )空閑時(shí),最高治理者不斷地向整個(gè)網(wǎng)絡(luò )發(fā)出詢(xún)問(wèn),監視是否有數據通訊要求。子網(wǎng)內部的數據通訊由該子網(wǎng)的治理者(節點(diǎn)地址為00H)協(xié)調,只有跨子網(wǎng)傳輸數據時(shí),最高治理者(子網(wǎng)地址為00H,節點(diǎn)地址也是00H)才會(huì )干預。節點(diǎn)模塊中有8KB的SRAM作為數據緩沖區,另外有2KB的E2PROM用于保存注冊表等信息。單片機的串行通訊口既要完成RS-485總線(xiàn)的通訊,又要完成由RS-232總線(xiàn)到設備的通訊,所以必須有通訊口切換功能。平時(shí)單片機的串行通訊口總是與RS-485總線(xiàn)相連,只有當設備需要傳輸數據時(shí)才切換到RS-232總線(xiàn),所以系統還必須有對設備通訊請求的檢測功能。限于篇幅,軟件具體編程在此不作敘述。節點(diǎn)模塊的結構如圖4所示。

4總 結
理論上該局域網(wǎng)絡(luò )對節點(diǎn)的擴展沒(méi)有限制,但考慮到RS-485總線(xiàn)通訊速度的限制,因此網(wǎng)絡(luò )規模不宜過(guò)大。由前面的結構分析可知,網(wǎng)絡(luò )的可靠性取決于子網(wǎng)。由于各子網(wǎng)間不會(huì )產(chǎn)生串擾,因此網(wǎng)絡(luò )的可靠性不會(huì )隨網(wǎng)絡(luò )的規模擴大而降低。這是一個(gè)通用的局域網(wǎng)絡(luò ),適合任何需要RS-485總線(xiàn)通訊的場(chǎng)合,因此實(shí)用性非常強。
評論