《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 基于RS-485總線的可擴展局域網(wǎng)絡(luò)的研究

基于RS-485總線的可擴展局域網(wǎng)絡(luò)的研究

2009-10-13
作者:朱桂榮 鄒麗新

  摘? 要: 介紹了RS-485通信模式的特點,針對局域網(wǎng)絡(luò)設(shè)計中出現(xiàn)的技術(shù)問題提出了一種新的基于RS-485總線的局域網(wǎng)絡(luò)設(shè)計方案。

  關(guān)鍵詞: RS-485總線? 單片機? 局域網(wǎng)絡(luò)

?

  RS-485總線通信模式由于具有結(jié)構(gòu)簡單、價格低廉、使用方便、通信距離和數(shù)據(jù)傳輸速率適當(dāng)及可靠性較高等特點而被廣泛應(yīng)用于儀器儀表、智能化傳感器集散控制、智能化大樓、監(jiān)控報警、鐵路通信和電力數(shù)據(jù)采集等領(lǐng)域。

  本文將對RS-485總線模式下組成的可擴展局域網(wǎng)絡(luò)作一探討。

1?RS-485總線通信的特點

  RS-485是在RS-422的基礎(chǔ)上發(fā)展起來的,能實現(xiàn)一點對多點的通信,也能實現(xiàn)多點雙向通信,但同一時刻只能有一個發(fā)送器,其余的為接收器,即一主多從的通信方式。目前市場上可供選擇的RS-485總線芯片很多,其中包括可支持128個節(jié)點的MAX1487和支持400個節(jié)點的SP485R。利用該類芯片可直接組成簡單的通信網(wǎng)絡(luò)。

RS-485收發(fā)器采用平衡發(fā)送、差分接收的方式,即在發(fā)送端將TTL信號轉(zhuǎn)換成差分信號輸出,在接收端,接收器將差分信號轉(zhuǎn)換成TTL信號。因此具有較高的共模抑制能力。同時接收器具有較高的靈敏度,能檢測低達200mV的電壓,數(shù)據(jù)傳輸可達1 200m。如降低數(shù)據(jù)傳輸速率,則通信距離可更長。當(dāng)通信速率為1 200bps時,理論上通信距離可達15km。當(dāng)傳輸距離超過300m時,在網(wǎng)絡(luò)的二端需接入120Ω的匹配電阻,以減少因阻抗不匹配而引起的反射,吸收噪聲,從而有效抑制噪聲干擾。MAX1487的接口電路示意圖如圖1所示。

?

?

2?網(wǎng)絡(luò)結(jié)構(gòu)及實施方案

  在實際應(yīng)用中,RS-485總線芯片本身所擁有的節(jié)點數(shù)已不能滿足需求,而往往需要一個接點龐大的復(fù)雜局域網(wǎng)絡(luò)(如幾千甚至幾萬個節(jié)點)來完成。連接在該網(wǎng)絡(luò)中的各類設(shè)備能相互通信,并且可以在一定節(jié)點數(shù)范圍內(nèi)根據(jù)實際需要任意擴展,并做到即插即用。管理人員通過隨身攜帶的筆記本電腦,接入網(wǎng)絡(luò)中的任一接點,可了解整個網(wǎng)絡(luò)的運行情況。結(jié)合用戶應(yīng)用程序,管理人員還可獲得連接于該網(wǎng)絡(luò)上相關(guān)設(shè)備的運行數(shù)據(jù)。

針對以上要求,局域網(wǎng)絡(luò)必須由多片具有RS-485總線的芯片連接而成。本文討論節(jié)點數(shù)≤32768點的局域網(wǎng)絡(luò),使用MAX1487作收發(fā)器。根據(jù)RS-485總線的特點,在任一時刻,整個網(wǎng)絡(luò)只允許有一個發(fā)送器,其余的必須處于接收狀態(tài)。而接入網(wǎng)絡(luò)中的設(shè)備隨時可能有多個設(shè)備同時傳輸數(shù)據(jù)的要求,如不進行協(xié)調(diào),就會出現(xiàn)總線競爭現(xiàn)象,使總線電平紊亂,整個網(wǎng)絡(luò)無法工作。

  將一片MAX1487所能連接的128個節(jié)點作為一個子網(wǎng),整個局域網(wǎng)絡(luò)由若干個子網(wǎng)組成。所有節(jié)點不直接和用戶設(shè)備相連,而是通過一個節(jié)點模塊和設(shè)備連接。這是一種二端帶通信口的智能化模塊,內(nèi)帶一個單片機系統(tǒng),用于執(zhí)行局域網(wǎng)絡(luò)通信協(xié)議,負責(zé)RS-485總線和設(shè)備間的通信,同時參與整個局域網(wǎng)絡(luò)的通信協(xié)調(diào)工作。模塊的一端為RS-485總線,用于連接網(wǎng)絡(luò),另一端是RS-232總線(或TTL電平)與用戶設(shè)備、儀器儀表或智能傳感器連接。

  子網(wǎng)中每個節(jié)點模塊都有自己的地址,用1個字節(jié)表示,即00H~7FH。而在整個局域網(wǎng)絡(luò)中,每個子網(wǎng)也有自己的子網(wǎng)地址,也用1個字節(jié)表示,即00H~FFH。這樣,在整個局域網(wǎng)絡(luò)中每個節(jié)點就有自己惟一的用2個字節(jié)的二進制數(shù)表示的地址,類似Internet中的IP地址,其地址格式如圖2所示。以00H子網(wǎng)05H節(jié)點為例,其中的“×”為無效位。

?

?

  規(guī)定每個子網(wǎng)中的地址為00H和7FH的2個節(jié)點為特殊節(jié)點。地址為00H的節(jié)點是該子網(wǎng)的管理者,協(xié)調(diào)子網(wǎng)中的通信,同時也是該子網(wǎng)的一個數(shù)據(jù)出入口,和上一個地址為7FH的節(jié)點連接。地址為7FH的節(jié)點為該子網(wǎng)的另一個數(shù)據(jù)出入口,負責(zé)和下一個子網(wǎng)中地址為00H的節(jié)點連接。這表示子網(wǎng)之間是由2個背靠背的節(jié)點模塊通過RS-232總線相連的。

  這2個背靠背的節(jié)點模塊又是子網(wǎng)之間的中繼站。同時還規(guī)定00H子網(wǎng)的00H節(jié)點,即地址為“00000000·00000000”的節(jié)點為整個網(wǎng)絡(luò)的最高管理者。局域網(wǎng)絡(luò)宜采用拓撲結(jié)構(gòu),以提高網(wǎng)絡(luò)運行效率,而鏈式結(jié)構(gòu)可增加網(wǎng)絡(luò)的通信距離。RS-485總線構(gòu)成的局域網(wǎng)絡(luò)結(jié)構(gòu)示意圖如圖3所示(以00H、01H 2個子網(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)中的00H節(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總線通信的場合,因此實用性非常強。

參考文獻

1 余濟臨.用RS-485構(gòu)成遠程分布式數(shù)據(jù)采集與控制網(wǎng)絡(luò).電子技術(shù),1999;(4)

2 陳曦,曾禮.基于智能模塊的RS-485通信協(xié)議轉(zhuǎn)換路由器.自動化儀表,2002;(3)

3?鄒麗新,翁桂榮.單片微型計算機原理.蘇州:蘇州大學(xué)出版社,2001

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。