《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > RS-485網(wǎng)絡(luò)多主機接口解決方案
RS-485網(wǎng)絡(luò)多主機接口解決方案
摘要: 提出了一種在多主機的RS-485網(wǎng)絡(luò)中,避免發(fā)生總線競爭冒險的解決方案。首先介紹了RS-485網(wǎng)絡(luò)的特點,說明了多主機RS-485網(wǎng)絡(luò)中總線上發(fā)生競爭冒險,然后詳細介紹了避免發(fā)生競爭冒險模塊的設(shè)計原理以及由此模塊構(gòu)成的RS-485網(wǎng)絡(luò)總線數(shù)據(jù)傳輸?shù)墓ぷ髁鞒獭?
Abstract:
Key words :

引言:

RS-485網(wǎng)絡(luò)(以下簡稱為485網(wǎng)絡(luò))中,經(jīng)常需要多臺主機控制多臺從機。當(dāng)多臺主機同時發(fā)送數(shù)據(jù)時,將發(fā)生競爭冒險。本文采用可重觸發(fā)單穩(wěn)態(tài)觸發(fā)器74123作為延時控制,設(shè)計了一款多主機485網(wǎng)絡(luò)中避免RS-485總線(以下簡稱為485總線)競爭冒險、保持數(shù)據(jù)完整性的模塊。經(jīng)過長時間測試,多主機發(fā)送數(shù)據(jù)在485總線上發(fā)生競爭冒險的概率降至0.1%以下,取得了顯著的效果。

RS-485網(wǎng)絡(luò)綜述

RS-485是一種符合工業(yè)通訊標準的數(shù)據(jù)傳輸總線,它是美國電子工業(yè)協(xié)會(EIA)制定的平衡發(fā)送、差分接收的標準異步串行總線。RS-485傳輸數(shù)據(jù)線路少,易于

實現(xiàn)和擴展,傳輸距離遠,最大傳輸距離可達1200米;它的通訊速率高,數(shù)據(jù)最高傳輸速率為10Mbps;它從根本上消除了信號地線,具有很強的抗干擾能力。它易于實現(xiàn)一對多點的通訊,接口總線上可連接32個站點,加中繼器后可達255個站點。

競爭冒險

RS-485為半雙工接口,采用雙向單信道通信方式。在485網(wǎng)絡(luò)中,同一個時刻只能有一個站點發(fā)送數(shù)據(jù),其它站點處于接收狀態(tài),以免發(fā)生485總線競爭冒險。

485網(wǎng)絡(luò)中,一臺主機控制多臺從機,采用主/從通信方式,從機不主動發(fā)送數(shù)據(jù)。每次通信均從主機發(fā)起,不會出現(xiàn)485總線競爭冒險。在有些工業(yè)現(xiàn)場,需要多臺主機同時控制從機,如果將主機與從機直接互連,每臺主機發(fā)送數(shù)據(jù)為主動的且隨機的,直接互連勢必出現(xiàn)兩臺以上主機同時發(fā)送數(shù)據(jù)的情況,數(shù)據(jù)同時發(fā)送到485總線上,造成485總線競爭冒險。為了避免此錯誤的發(fā)生,在多臺主機與485總線之間分別加入一個模塊,使多臺主機在同一個時刻只能有一臺主機數(shù)據(jù)發(fā)送到485總線上,屏蔽其它主機發(fā)送信號。屏蔽原則:在空閑狀態(tài)下,第一個發(fā)送數(shù)據(jù)的主機不屏蔽,在該主機發(fā)送數(shù)據(jù)結(jié)束之前,屏蔽其它主機發(fā)送的數(shù)據(jù)。這樣有效地降低了485總線競爭冒險的概率。

硬件設(shè)計

本設(shè)計采用74123可重觸發(fā)單穩(wěn)態(tài)觸發(fā)器構(gòu)成屏蔽信號電路,監(jiān)聽485總線數(shù)據(jù),當(dāng)485總線空閑時,主機發(fā)送數(shù)據(jù)可以通過485芯片輸出到485總線上;當(dāng)485總線有數(shù)據(jù)時,自動屏蔽該主機發(fā)送的數(shù)據(jù),待485總線空閑時,該主機發(fā)送端的數(shù)據(jù)方可輸送到485總線上。下面先簡單介紹一下74123芯片和485芯片,然后詳細介紹硬件設(shè)計原理。

74123為雙可重觸發(fā)單穩(wěn)態(tài)觸發(fā)器(有清除端)。其管腳圖如下圖:

 

RS-485接口芯片(以下簡稱為485芯片)有兩個控制使能端,接收使能端/RE和發(fā)送使能端DE。其中/RE為低電平有效,DE為高電平有效。將/RE和DE短接,用一個控制信號即可控制接收和發(fā)送兩種狀態(tài)。/RE和DE為“1”時,發(fā)送端接通,數(shù)據(jù)通過DI腳發(fā)送到485總線上;/RE和DE為“0”時,接收端接通,如果485總線上有數(shù)據(jù),則通過485芯片轉(zhuǎn)換,有RO腳輸出高低電平信號。

圖2中自動流向控制電路IC1(以下簡稱IC1)從DataI信號采集,輸出控制485芯片的/RE和DE端??臻e時,DataI保持高電平,IC1輸出低電平,485芯片處于接收狀態(tài);當(dāng)DataI有數(shù)據(jù)時,IC1輸出控制信號,使485芯片輸出端接通,DataI信號輸送到485總線上;當(dāng)DataI數(shù)據(jù)傳輸結(jié)束后,DataI保持高電平,IC1輸出低電平,485芯片轉(zhuǎn)為接收狀態(tài)。

圖3所示電路是在圖2的基礎(chǔ)上加入可重觸發(fā)單穩(wěn)態(tài)觸發(fā)器電路IC2(以下簡稱IC2)。

當(dāng)空閑時,即DataI保持高電平、485總線空閑,即485總線上無數(shù)據(jù)(A為“1”、B為“0”),此時IC1輸出低電平,經(jīng)過“與”門IC3(以下簡稱IC3)輸出低電平控制485芯片的/RE和DE端,485芯片保持接收狀態(tài),DataO保持高電平,IC2的負脈沖輸出端/Q輸出高電平。

當(dāng)485總線上有數(shù)據(jù)輸入、DataI空閑時,485芯片處于接收狀態(tài),DataO有數(shù)據(jù),IC2電路被觸發(fā),負脈沖輸出端/Q輸出低電平,IC3被鎖住持續(xù)輸出低電平,485芯片保持接收狀態(tài)。直到485總線上連續(xù)數(shù)據(jù)包傳輸結(jié)束之前,IC2連續(xù)被觸發(fā),負脈沖輸出端/Q一直輸出低電平,485芯片一直保持接收狀態(tài)。在此過程中,DataI有數(shù)據(jù)輸入時,因為485芯片處于接收狀態(tài),DataI數(shù)據(jù)被屏蔽,485總線數(shù)據(jù)不受輸入端DataI數(shù)據(jù)的干擾,即不會發(fā)生競爭冒險,保證總線數(shù)據(jù)的完整性。當(dāng)485總線連續(xù)數(shù)據(jù)包發(fā)送結(jié)束后,IC2負脈沖輸出端/Q低電平脈沖結(jié)束,恢復(fù)到高電平,IC3輸出端隨IC1輸出信號變化,即485芯片收發(fā)直接由IC1控制,此時DataI有數(shù)據(jù)時,可以經(jīng)過485芯片輸送到485總線上。

當(dāng)485總線無數(shù)據(jù)、DataI有數(shù)據(jù)輸入時,此時DataO保持高電平,IC1從DataI采集到電平信號,輸出控制信號,使485芯片輸出端接通,DataI數(shù)據(jù)輸出到485總線上。直到DataI連續(xù)數(shù)據(jù)包發(fā)送結(jié)束之前,485芯片一直處于發(fā)送狀態(tài)。因為DataO保持高電平,IC2的負脈沖輸出端/Q保持高電平,485芯片的控制端/RE和DE直接由IC1輸出控制。當(dāng)DataI連續(xù)數(shù)據(jù)包結(jié)束后,IC1輸出低電平,485芯片轉(zhuǎn)為接收狀態(tài)。

通過調(diào)節(jié)IC2電路的R和C值可控制/Q輸出的負脈沖的脈寬tW。當(dāng)C≥1000pF時, tW=K·R·C

其中K為常數(shù),與外界溫度及外接電容C有關(guān),在0.2~0.6間選擇。

當(dāng)C≤1000pF時,tW估計值如下: tW=6+0.05C(pF)+0.45R(kΩ)C+11.6R

圖4為模塊硬件電路原理圖。左側(cè)與主機485接口連接,右側(cè)連接485總線。


圖5為兩臺主機與兩臺從機組成的485網(wǎng)絡(luò)。其中主機與485總線之間經(jīng)過圖4中的模塊連接。從機不主動發(fā)送數(shù)據(jù),每次通信均從主機端發(fā)起。開始時485總線空閑,即兩臺主機與兩臺從機均沒有發(fā)送數(shù)據(jù),此時模塊I和模塊II及兩臺從機的485接口芯片均處于接收狀態(tài)。

某一時刻起,主機I開始發(fā)送數(shù)據(jù),兩臺從機收到數(shù)據(jù),同時模塊II收到數(shù)據(jù),將主機II發(fā)送端屏蔽。在主機I數(shù)據(jù)沒有發(fā)送結(jié)束之前,模塊II一直接收485總線數(shù)據(jù),持續(xù)屏蔽主機II發(fā)送端。直到主機I數(shù)據(jù)發(fā)送結(jié)束后,模塊II自動解除主機II發(fā)送端的屏蔽。在主機I發(fā)送數(shù)據(jù)過程中,兩臺從在等待數(shù)據(jù)發(fā)送結(jié)束后才返回數(shù)據(jù),所以兩臺從機不發(fā)送數(shù)據(jù);主機II隨時可能發(fā)送數(shù)據(jù),由于模塊II在檢測到485總線上有數(shù)據(jù)屏蔽了主機II的發(fā)送端,所以485總線上只有一個站點——主機I在發(fā)送數(shù)據(jù),避免了發(fā)生競爭冒險,保證了主機I發(fā)送的數(shù)據(jù)的完整性。同理當(dāng)485總線空閑時,由主機II發(fā)起的一次通信過程中,模塊I自動屏蔽主機I的發(fā)送端,避免了發(fā)生競爭冒險,保證主機II發(fā)送數(shù)據(jù)的完整性。

從機在接到主機命令后,返回數(shù)據(jù)過程中,模塊I和模塊II自動屏蔽發(fā)送端。從機發(fā)送結(jié)束后,485總線空閑,模塊I和模塊II自動解除發(fā)送端的屏蔽,等待下一次通信。

 圖5中僅在主機與485總線之間連接了此模塊,如果從機數(shù)量比較多,為了防止兩臺以上從機同時發(fā)送數(shù)據(jù),在從機與485總線之間接入此模塊,確保在同一時刻485總線上只有一個站點發(fā)送數(shù)據(jù),其它站點處于接收狀態(tài)。

結(jié)束語

在多主機的485網(wǎng)絡(luò)中,接入本文設(shè)計的模塊,通過總線上數(shù)據(jù)信號屏蔽主機發(fā)送信號,使總線傳輸數(shù)據(jù)不受影響,解決了主機隨機發(fā)送數(shù)據(jù)發(fā)生總線競爭冒險,大大提高了RS-485總線通信的質(zhì)量。

參考文獻

【1】閻石主編.?dāng)?shù)字電子技術(shù)基礎(chǔ)(第4版).北京:高等教育出版社,2001
【2】康華光主編.電子技術(shù)基礎(chǔ)(第3版).北京:高等教育出版社,1988
【3】劉必虎,沈建國編著.?dāng)?shù)字邏輯電路.北京:科學(xué)出版社,2000
【4】電子工程手冊編委會,集成電路手冊分編委會編.標準集成電路數(shù)據(jù)手冊 TTL電路(增補本).北京:電子工業(yè)出版社,1994
【5】【美】Jan Axelson.Serial Port Complete Programming and Circuits for RS-232 and RS-485 Links and Networks.北京:中國電力出版社,2001

 

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。