《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 解決方案 > 武漢波仕電子公司:RS-485多從機競爭的解決方案

武漢波仕電子公司:RS-485多從機競爭的解決方案

2012-11-22
作者:CEChina
關(guān)鍵詞: RS-485 地址轉(zhuǎn)換器

                                            武漢波仕電子公司 版權(quán)所有  2012

   RS-485多機通信中,往往會出現(xiàn)多個從機同時向主機發(fā)送數(shù)據(jù)。比如在RS-485溫度測量系統(tǒng)中,多個RS-485從機的溫度測量值只要超過報警點就立即向主機發(fā)送報警信息,但是這也可能會出現(xiàn)2個或者2個以上的RS-485從機同時向主機發(fā)送報警信息。如果不采取RS-485競爭解決機制,那么就可能會導(dǎo)致2個從機同時發(fā)送的信息重疊,這樣主機就無法接收到正確的信號,嚴(yán)重的還可能導(dǎo)致整個RS-485系統(tǒng)的崩潰。傳統(tǒng)的解決方案是由主機循環(huán)輪流對各個RS-485下位機點名通信,這雖然解決了RS-485多從機的競爭,但是同時延誤了實時報警信息。本文介紹的新方案之一能夠識別從機發(fā)送信號的時間順序,先發(fā)送的從機信號可以同時抑制其他從機的RS-485發(fā)送信號,只有等先發(fā)送信號的從機發(fā)送完畢之后其它從機才能夠發(fā)送RS-485信號。本文介紹的新方案之二可以讓下位機能夠主動發(fā)送自己的地址,這樣就無需主機對各從機進行輪流查詢。本文介紹的新方案之三是將從機轉(zhuǎn)換為不同的波特率,由于主機每次只能夠接收某一種波特率的信號,這樣就完全避免了多從機的競爭。本文中的“上位機”即“主機”,“下位機”即“從機”。

   1、在RS-485總線中接入RS-485智能共享器

      2RS-485對1RS-485智能共享器(型號:HUB2485Z)本來是用于兩個RS-485上位機共同控制一個RS-485下位機的通信連接,在這里我們將HUB2485Z用于兩臺下位機的RS-485口共享一臺位機的RS-485口。HUB2485Z使RS-485總線從同時接2個從機。HUB2485Z已經(jīng)有2個下位機RS-485(1)和RS-485(2)的插座(DB-9針并且配接線端子)和1個上位機的接線端子,無需修改軟件、5V供電。HUB2485Z適用于兩臺下位機的RS-485口同時驅(qū)動一臺位機的RS-485口。HUB2485Z的外型為DB-9(針)/ DB-9(針)轉(zhuǎn)接盒大小,其中兩個DB-9針的RS-485口均配接線端子。兩個DB-9針的下位機RS-485口,如圖RS-4851)和RS-485(2)是完全一樣的,可以互換。上位機RS-485為接線端子,位于如圖產(chǎn)品的上側(cè)面,與電源接線端子在一起。HUB2485Z需要外接5V電源,配套提供。

   圖1  RS-485智能共享器外形圖

波仕HUB2485Z智能RS-485集線器能夠識別兩個位機RS-485(1)和RS-485(2)的發(fā)送順序,避免同時發(fā)送導(dǎo)致的系統(tǒng)癱瘓。也就是說,即使兩個位機正在同時發(fā)送,HUB2485Z會選取發(fā)送開始時間領(lǐng)先的位機正確發(fā)送數(shù)據(jù),而只有等到這一個位機的數(shù)據(jù)發(fā)送完畢后,另外一個位機才可以開始發(fā)送數(shù)據(jù)。HUB2485Z的具有雙向通信功能,當(dāng)位機發(fā)送時,兩個位機同時接收到相同的數(shù)據(jù),并不區(qū)分地址。

圖2  RS-485智能共享器使用布線圖

在圖2中,舉例說明了同時接4個RS-485下位機的布線圖,實際上還可以一直繼續(xù)接下去。以接4個下位機為例,下位機4和下位機3分別接入3號HUB2485Z的RS-485(1)和RS-485(2)口,共享的RS-485口再級聯(lián)接入另外一個2號HUB2485Z的RS-485(2)口,2號HUB2485Z的RS-485(1)接下位機2。以此類推,2號HUB2485Z的RS-485(2)口接下位機2,共享的RS-485接到1號HUB2485Z的RS-485(2),1號HUB2485Z的RS-485(1)接下位機1。在這樣的布線結(jié)構(gòu)中,每一個下位機都接入到了HUB2485Z共享器,由于HUB2485Z是可以級聯(lián)的,所以非常靈活地接入多個下位機。實際上,1號HUB2485Z的RS-485(1)也可以繼續(xù)級聯(lián)新的HUB2485Z。 

2、在RS-485總線中接入RS-485地址轉(zhuǎn)換器

     傳統(tǒng)的RS-485多機通信方案是每次都由主機循環(huán)輪流對各個RS-485下位機點名通信,主機先發(fā)送被呼叫的從機的地址,總線中每一個從機都將這個地址信號與自己的地址進行比較,地址一樣就繼續(xù)也主機通信,不一樣就不與主機通信。這樣可能存在的問題就是從機發(fā)送的信號是可以不帶本從機地址的,因為主機已經(jīng)發(fā)送了從機地址信息,緊接著收到的從機信號一定就是這個被點名的從機的信號,而且從機信號不帶地址可以極大簡化主機的信號處理程序。從機發(fā)送的信號不帶從機地址就會限制RS-485多機通信的實時性,比如RS-485多機溫度測量系統(tǒng)就不能夠?qū)崟r報警,因為主機不知道發(fā)送報警信號的從機的地址。

 

圖3   為RS-485下位機加上地址

     波仕電子的DIZ485地址串口轉(zhuǎn)換器用于實現(xiàn)串口(同時支持RS-232和RS-485)之間的帶地址的轉(zhuǎn)換。通過跳線設(shè)置地址編碼,DIZ485可以將串口接收到的數(shù)據(jù)附加上地址編碼發(fā)送出去,也可以將帶地址編碼的串口數(shù)據(jù)送到對應(yīng)地址的轉(zhuǎn)換器的串口。 DIZ485與其它同類產(chǎn)品相比的特點是可以識別下位機的地址、下位機可以主動發(fā)送帶地址的數(shù)據(jù)。 波仕DIZ485地址串口轉(zhuǎn)換器的外形為DB-9/DB-9轉(zhuǎn)接盒大小,如圖,產(chǎn)品左邊為主串口,包括DB-9的RS-232口,和標(biāo)明為A1、B1的RS-485口。右邊為從串口,包括DB-9的RS-232口,和標(biāo)明為A2、B2的RS-485口。左上側(cè)J2、J1、J0為波特率設(shè)置的跳線,右上側(cè)K2、K1、K0為地址編碼設(shè)置的跳線,下面中間為5V電源接線端子。

DIZ485 使用非常方便。首先根據(jù)波特率進行波特率跳線設(shè)置,然后跳線設(shè)置本產(chǎn)品的地址。通信規(guī)則:主串口數(shù)據(jù)=地址碼+從串口數(shù)據(jù)   如果主串口收到 ###1:1234567,那么地址為1的產(chǎn)品的從串口發(fā)送出 1234567(地址不是1的產(chǎn)品的從串口不發(fā)送任何數(shù)據(jù)),就是去幀頭。地址碼就是在K2、K1、K0跳線設(shè)置值的前面加3個井號(###)和后面加一個冒號(:)的英文字符。如果地址為1的產(chǎn)品的從串口收到abcdefg ,則主串口發(fā)送出###1:abcdefg 就是加幀頭。

加入RS-485地址轉(zhuǎn)換器可以使得RS-485從機可以隨時主動向上位機發(fā)送消息,因為信號中自動加上了從機地址信息,這樣主機就可以識別下位機。

3、在RS-485總線中接入串口波特率轉(zhuǎn)換器

RS-485多機通信,本來是要求通信的雙方波特率等通信格式一樣才可以通信成功??墒?/span>為了解決這種情況下出現(xiàn)RS-485多從機競爭的問題,波仕電子在世界上首次提出了一種多波特率的多機通信方式。本來是相同波特率的RS-485從機設(shè)備,我們?nèi)藶榈貙臋C進行串口波特率的轉(zhuǎn)換。當(dāng)多個從機都轉(zhuǎn)換為不同的波特率后,由于每個RS-485從機發(fā)送信號的波特率不同,而主機同一時間只能夠收到某一種波特率的信號,這樣就自然避免了多從機同時發(fā)送的競爭問題。節(jié)介紹如何實現(xiàn)串口波特率的轉(zhuǎn)換。

串口波特率轉(zhuǎn)換器用于實現(xiàn)不同波特率的RS-485/RS-232口的通信轉(zhuǎn)換,純硬件跳線設(shè)置,無需任何軟件設(shè)置。串口波特率轉(zhuǎn)換器的外形為DB-9/DB-9轉(zhuǎn)接盒大小,如圖4串口波特率轉(zhuǎn)換器的內(nèi)部有一個帶雙串口的單片機。單片機自動完成兩個串口之間的數(shù)據(jù)交換。單片機程序用C語言編寫,核心功能就是先將兩個串口UART1和UART2根據(jù)跳線設(shè)置的狀態(tài)進行波特率等初始化設(shè)置,然后隨時將UART1接收的數(shù)據(jù)立即送到UART2的發(fā)送區(qū)、以及將UART2接收的數(shù)據(jù)立即送到UART1的發(fā)送區(qū)。

      圖4  RS-485/RS-232波特率轉(zhuǎn)換器

上位機串口A的波特率通過產(chǎn)品的J2、J1、J0來設(shè)置,下位機串口B的波特率通過產(chǎn)品的K2、K1、K0來設(shè)置,見表格。波特率轉(zhuǎn)換器的兩邊的串口可以分別獨立設(shè)置波特率,見下表。

 DB-9孔RS-232口波特率設(shè)置

 

DB-9針RS-232口波特率設(shè)置

J2

J1

J0

 波特率

K2

K1

 K0

 波特率

 0

 0

 0

 1200

 0

 0

 0

 1200

 0

 0

 1

 2400

 0

 0

 1

 2400

 0

 1

 0

 4800

 0

 1

 0

 4800

 0

 1

 1

 9600

 0

 1

 1

 9600

 1

 0

 0

19200

 1

 0

 0

19200

 1

 0

 1

38400

 1

 0

 1

38400

 1

 1

 0

57600

 1

 1

 0

57600

 1

 1

 1

115200

 1

 1

 1

115200

               

由串口波特率轉(zhuǎn)換器實現(xiàn)的RS-485多機通信圖與圖3所示的“為RS-485下位機加上地址”的布線結(jié)構(gòu)完全相同。由于每次主機通信程序只能夠設(shè)置為某一種波特率,所以也就每次只能給與某一個從機進行通信,其它從機即使同時發(fā)送信號但由于波特率不一樣所以也不會對主機產(chǎn)生影響。這種方案的優(yōu)點之一在于完全無競爭,缺點是最多8個下位機,因為這種串口波特率轉(zhuǎn)換器只能夠提供8種不同的波特率。這種方案的優(yōu)點之二在于如果用戶自己可以修改從機的波特率,那么可以實現(xiàn)零成本的解決方案。

    本文介紹的3種解決RS-485多從機競爭的方案可以形象地稱為搶答、報名和調(diào)頻。這3種方案各有特色,也各有局限性,但是互不排斥。也就是說,這3種方案還可以組合使用。

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