新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > RS-485多從機(jī)競爭的解決方案

RS-485多從機(jī)競爭的解決方案

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

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

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

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

在圖2中,舉例說明了同時(shí)接4個(gè)RS-485下位機(jī)的布線圖,實(shí)際上還可以一直繼續(xù)接下去。以接4個(gè)下位機(jī)為例,下位機(jī)4和下位機(jī)3分別接入3號(hào)HUB2485Z的RS-485(1)和RS-485(2)口,共享的RS-485口再級(jí)聯(lián)接入另外一個(gè)2號(hào)HUB2485Z的RS-485(2)口,2號(hào)HUB2485Z的RS-485(1)接下位機(jī)2。以此類推,2號(hào)HUB2485Z的RS-485(2)口接下位機(jī)2,共享的RS-485接到1號(hào)HUB2485Z的RS-485(2),1號(hào)HUB2485Z的RS-485(1)接下位機(jī)1。在這樣的布線結(jié)構(gòu)中,每一個(gè)下位機(jī)都接入到了HUB2485Z共享器,由于HUB2485Z是可以級(jí)聯(lián)的,所以非常靈活地接入多個(gè)下位機(jī)。實(shí)際上,1號(hào)HUB2485Z的RS-485(1)也可以繼續(xù)級(jí)聯(lián)新的HUB2485Z。
2、在RS-485總線中接入RS-485地址轉(zhuǎn)換器
傳統(tǒng)的RS-485方案是每次都由主機(jī)循環(huán)輪流對(duì)各個(gè)RS-485下位機(jī)點(diǎn)名通信,主機(jī)先發(fā)送被呼叫的從機(jī)的地址,總線中每一個(gè)從機(jī)都將這個(gè)地址信號(hào)與自己的地址進(jìn)行比較,地址一樣就繼續(xù)也主機(jī)通信,不一樣就不與主機(jī)通信。這樣可能存在的問題就是從機(jī)發(fā)送的信號(hào)是可以不帶本從機(jī)地址的,因?yàn)橹鳈C(jī)已經(jīng)發(fā)送了從機(jī)地址信息,緊接著收到的從機(jī)信號(hào)一定就是這個(gè)被點(diǎn)名的從機(jī)的信號(hào),而且從機(jī)信號(hào)不帶地址可以極大簡化主機(jī)的信號(hào)處理程序。從機(jī)發(fā)送的信號(hào)不帶從機(jī)地址就會(huì)限制RS-485的實(shí)時(shí)性,比如RS-485多機(jī)溫度測(cè)量系統(tǒng)就不能夠?qū)崟r(shí)報(bào)警,因?yàn)橹鳈C(jī)不知道發(fā)送報(bào)警信號(hào)的從機(jī)的地址。
上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉