引言:
在RS-485網絡(以下簡稱為485網絡)中,經常需要多臺主機控制多臺從機。當多臺主機同時發(fā)送數(shù)據(jù)時,將發(fā)生競爭冒險。本文采用可重觸發(fā)單穩(wěn)態(tài)觸發(fā)器74123作為延時控制,設計了一款多主機485網絡中避免RS-485總線(以下簡稱為485總線)競爭冒險、保持數(shù)據(jù)完整性的模塊。經過長時間測試,多主機發(fā)送數(shù)據(jù)在485總線上發(fā)生競爭冒險的概率降至0.1%以下,取得了顯著的效果。
RS-485網絡綜述
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網絡中,同一個時刻只能有一個站點發(fā)送數(shù)據(jù),其它站點處于接收狀態(tài),以免發(fā)生485總線競爭冒險。
485網絡中,一臺主機控制多臺從機,采用主/從通信方式,從機不主動發(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ù)結束之前,屏蔽其它主機發(fā)送的數(shù)據(jù)。這樣有效地降低了485總線競爭冒險的概率。
硬件設計
本設計采用74123可重觸發(fā)單穩(wěn)態(tài)觸發(fā)器構成屏蔽信號電路,監(jiān)聽485總線數(shù)據(jù),當485總線空閑時,主機發(fā)送數(shù)據(jù)可以通過485芯片輸出到485總線上;當485總線有數(shù)據(jù)時,自動屏蔽該主機發(fā)送的數(shù)據(jù),待485總線空閑時,該主機發(fā)送端的數(shù)據(jù)方可輸送到485總線上。下面先簡單介紹一下74123芯片和485芯片,然后詳細介紹硬件設計原理。
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芯片轉換,有RO腳輸出高低電平信號。
圖2中自動流向控制電路IC1(以下簡稱IC1)從DataI信號采集,輸出控制485芯片的/RE和DE端??臻e時,DataI保持高電平,IC1輸出低電平,485芯片處于接收狀態(tài);當DataI有數(shù)據(jù)時,IC1輸出控制信號,使485芯片輸出端接通,DataI信號輸送到485總線上;當DataI數(shù)據(jù)傳輸結束后,DataI保持高電平,IC1輸出低電平,485芯片轉為接收狀態(tài)。
圖3所示電路是在圖2的基礎上加入可重觸發(fā)單穩(wěn)態(tài)觸發(fā)器電路IC2(以下簡稱IC2)。
當空閑時,即DataI保持高電平、485總線空閑,即485總線上無數(shù)據(jù)(A為“1”、B為“0”),此時IC1輸出低電平,經過“與”門IC3(以下簡稱IC3)輸出低電平控制485芯片的/RE和DE端,485芯片保持接收狀態(tài),DataO保持高電平,IC2的負脈沖輸出端/Q輸出高電平。
當485總線上有數(shù)據(jù)輸入、DataI空閑時,485芯片處于接收狀態(tài),DataO有數(shù)據(jù),IC2電路被觸發(fā),負脈沖輸出端/Q輸出低電平,IC3被鎖住持續(xù)輸出低電平,485芯片保持接收狀態(tài)。直到485總線上連續(xù)數(shù)據(jù)包傳輸結束之前,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ù)的完整性。當485總線連續(xù)數(shù)據(jù)包發(fā)送結束后,IC2負脈沖輸出端/Q低電平脈沖結束,恢復到高電平,IC3輸出端隨IC1輸出信號變化,即485芯片收發(fā)直接由IC1控制,此時DataI有數(shù)據(jù)時,可以經過485芯片輸送到485總線上。
當485總線無數(shù)據(jù)、DataI有數(shù)據(jù)輸入時,此時DataO保持高電平,IC1從DataI采集到電平信號,輸出控制信號,使485芯片輸出端接通,DataI數(shù)據(jù)輸出到485總線上。直到DataI連續(xù)數(shù)據(jù)包發(fā)送結束之前,485芯片一直處于發(fā)送狀態(tài)。因為DataO保持高電平,IC2的負脈沖輸出端/Q保持高電平,485芯片的控制端/RE和DE直接由IC1輸出控制。當DataI連續(xù)數(shù)據(jù)包結束后,IC1輸出低電平,485芯片轉為接收狀態(tài)。
通過調節(jié)IC2電路的R和C值可控制/Q輸出的負脈沖的脈寬tW。當C≥1000pF時, tW=K·R·C
其中K為常數(shù),與外界溫度及外接電容C有關,在0.2~0.6間選擇。
當C≤1000pF時,tW估計值如下: tW=6+0.05C(pF)+0.45R(kΩ)C+11.6R
圖4為模塊硬件電路原理圖。左側與主機485接口連接,右側連接485總線。
圖5為兩臺主機與兩臺從機組成的485網絡。其中主機與485總線之間經過圖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ā)送結束之前,模塊II一直接收485總線數(shù)據(jù),持續(xù)屏蔽主機II發(fā)送端。直到主機I數(shù)據(jù)發(fā)送結束后,模塊II自動解除主機II發(fā)送端的屏蔽。在主機I發(fā)送數(shù)據(jù)過程中,兩臺從在等待數(shù)據(jù)發(fā)送結束后才返回數(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ù)的完整性。同理當485總線空閑時,由主機II發(fā)起的一次通信過程中,模塊I自動屏蔽主機I的發(fā)送端,避免了發(fā)生競爭冒險,保證主機II發(fā)送數(shù)據(jù)的完整性。
從機在接到主機命令后,返回數(shù)據(jù)過程中,模塊I和模塊II自動屏蔽發(fā)送端。從機發(fā)送結束后,485總線空閑,模塊I和模塊II自動解除發(fā)送端的屏蔽,等待下一次通信。
圖5中僅在主機與485總線之間連接了此模塊,如果從機數(shù)量比較多,為了防止兩臺以上從機同時發(fā)送數(shù)據(jù),在從機與485總線之間接入此模塊,確保在同一時刻485總線上只有一個站點發(fā)送數(shù)據(jù),其它站點處于接收狀態(tài)。
結束語
在多主機的485網絡中,接入本文設計的模塊,通過總線上數(shù)據(jù)信號屏蔽主機發(fā)送信號,使總線傳輸數(shù)據(jù)不受影響,解決了主機隨機發(fā)送數(shù)據(jù)發(fā)生總線競爭冒險,大大提高了RS-485總線通信的質量。
參考文獻
【1】閻石主編.數(shù)字電子技術基礎(第4版).北京:高等教育出版社,2001
【2】康華光主編.電子技術基礎(第3版).北京:高等教育出版社,1988
【3】劉必虎,沈建國編著.數(shù)字邏輯電路.北京:科學出版社,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