485匯流排死鎖與復位

2021-07-08 14:36:44 字數 3126 閱讀 2706

摘要:針對rs-485介面收發電路的特點,討論rs-485匯流排在polling和csma/cd通訊方式中死鎖檢測和解除死鎖的方法。該方法同樣適用於rs-422介面。

rs-485匯流排傳送距離遠、速度快、抗干擾能力強,是工業現場廣泛應用的數字通訊標準。rs-485匯流排是一種半雙工通訊標準,支援匯流排方式多點互連,使其成為集散控制系統和現場匯流排控制系統中採用最多的通訊和組網方法。採用rs-485匯流排連線的多個站點,任一時刻只能有乙個站點在「說」,其它站點只能處於「聽」狀態。如果有多個1個的站點在「說」,資料將在通訊匯流排上碰撞,結果是處於接收狀態的站點不能收到正確的資料。在rs-485匯流排通訊網中,必須控制好每個站點的「聽、說」狀態,即收發狀態,以保證能及時、正確地傳輸資料。

圖1是最常見的rs-485介面。在rs-485匯流排通訊系統中,掛在匯流排上的收發電路一般大於2個。使用圖1所示接收電路,如果系統中的某乙個站點宕機或出了問題,可能使微控制器的p1.0口恒為「1」。其傳送器將長期占用通訊匯流排,產生稱為rs-485匯流排「死鎖」的狀態,其它所有站點的均無法使用通訊匯流排進行通訊,這將導致整個通訊系統崩潰。為了說明方便,把rs-485匯流排a線對地電壓為稱為va,b線對地電壓為稱為vb;va>vb時的死鎖稱為「1」死鎖,va在rs-485匯流排通訊系統中,通常設有個功能強、工作可靠的站點作為主站,其它的作為子站。主站除了完成它的相關工作任務外,通常它還負責管理掛在rs-485匯流排上的其它子站。程式跑飛是所有基於微處理器系統均需面對的普遍問題。在工業測控系統中,可靠、穩定地工作是第一位的。若同時賦予主站rs-485匯流排死鎖檢測與解除的軟/硬體和在所有的子站中配置相關硬體,將可以有效解決由於子站程式跑飛而引發的rs-485匯流排死鎖問題。

一、rs-485匯流排死鎖檢測

1.查詢方式的rs-485匯流排死鎖檢測

rs-485匯流排在傳送資料時,允許同時接收剛傳送的資料。rs-485匯流排通訊系統如果工作於查詢方式,主站將不斷地每隔一定時間輪詢各個子部。只要輪詢時間不太長,如輪詢時間間隔<1min,則只須軟體開鎖就可以滿足rs-485匯流排死鎖檢測要求。主站在輪詢過程中,若檢測到以下兩種情況,就可以初步判為rs-485死鎖:

(1)主站傳送的資料與接收到的不相同;

(2)在輪詢某個子站時,無響應或響應的資料不正確(可能是rs-485匯流排死鎖或子站宕機,也有可能孩子站已退出執行)。

2.工作於csma/cd方式的rs-485匯流排死鎖檢測

採用csma/cd通訊方式的rs-485匯流排,主站一般不主動輪詢每個子站。此方式下,主站可以採用圖2所示硬體來檢測rs-485匯流排的死鎖狀態。在rs-485匯流排空閒時,要求訊號線a至少比訊號線b高0.2v以上。只要使rs-485匯流排空閒時0.2v檢測到int1或rxd低電平後,通過軟體用以下兩個軟體之一來判斷rs-485匯流排「1」死鎖或「0」死鎖(假定啟動傳送資料後,兩位元組間的空隙時間小於傳送1位元組時間):

(1)int1低電平持續時間》正常傳送2位元組時間,判為rs-485匯流排「1」死鎖。

(2)rxd低電平持續時間》正常傳送2位元組時間,判為rs-485匯流排「0」死鎖。

二、rs-485匯流排死鎖解除

rs-485匯流排死鎖往往是由於子站的微控制器程式跑飛,使得rs-485傳送器的傳送使能de恒為高電平引起的。出現這種情況只需給相應的子站復位一下,讓它重新執行初始化程式始可解決。在檢測到rs-485匯流排死鎖後,如果各子站的軟/硬體無問題,可以採用復位程式跑飛的子站來解除死鎖。以下介紹兩類可以由主站自動復位子站的硬體電路。該電路適用於rst引腳高電平有效時復位的微控制器,如國內廣泛應用的51系列微控制器。對於rst引腳低電平有效時復位的微控制器則須將電路的邏輯取反。

1.有選擇性地復位死鎖子站電路

圖3是具有選擇性的復位死鎖子站電路,是一種巧妙的解除通訊匯流排死鎖狀態設計。它利用了rs-485匯流排死鎖,則對應死鎖子站的傳送使能de為「1」的特點,在子站中只用了少量的硬體開銷(1個與非門、1個電阻和1只三極體),即實現了有選擇性的復位死鎖子站的電路。在正常工作時,主站的p1.1置為「0」,此時不管各個子站的de為何狀態,它們的與非門輸出均為高電平,三極體t1截止,rst為低電平,不會復位任何子站。當檢測到rs-485匯流排死鎖時,主站只需將p1.1置為「1」,只有de為「1」子站的與非門輸出低電平,三極體t1導通,rst為高電平,相應的子站被復位。其它子站的與非門輸出高電平,不會被錯誤地復位。

2.無選擇性地復位所有子站電路

圖4是乙個無選擇性復位子站的電路。它由主站的p1.1驅動,通過遮蔽電纜引到各子站的外復位電路t1的基極。正常執行時,主站置p1.1為「1」,此時它不影響各子站原有的復位功能。當主站檢測到rs-485匯流排死鎖或復位各子站時,只須將p1.1置為「0」,所有掛在復位匯流排上的t1均導通,rst輸出高電平,各子站均被無條件復位。

結束語微控制器的復位電路是對干擾較為敏感的電路。施加在微控制器的復位電路上乙個ms級的微小毛刺干擾,就會對微控制器造成極為嚴重的影響。若毛刺干擾持續時間大於微控制器要求最小的可靠復位時間,微控制器被復位;否則微控制器還末完成復位過程,復位訊號就被撤消,其內部暫存器將處於不確定狀態,令微控制器的應用中,為了可靠起見,一般不外引復位電路。在要文的應用中,需將復位電路外引,復位匯流排採用遮蔽線以提高抗干擾能力。

本文介紹的2種遠方復位電路,各有優缺點。具有選擇性的復位電路優點是:有選擇性地復位鎖rs-485匯流排的子站,而不影響其它正常的子站,滿足解除rs-485匯流排死鎖的要求。缺點是:當子站程式跑飛但並沒有使得de恒為高電平時,rs-485匯流排處於正常狀態,主站可以和所有正常的子站通訊,但主站對這個異常的子站無能為力。無選擇性的復位電路優點是:主站可以復位任何型別的由於程式跑飛引起異常的子站,此外,在電路的實現上較有選擇性的復位電路簡單。缺點是:它的動作是無選擇性的,不管子站是否異常,掛在復位匯流排上的所有子站均被無條件復位。

rs-422介面的電氣引數要求與rs-485介面相同,主要差別在於rs-422是全雙工介面,而rs-485是雙工介面。本文介紹rs-485匯流排死鎖檢測方法,只需稍加修改,同樣適用於rs-422匯流排系統,而解除死鎖的方法無需任何修改即可直接應用於rs-422匯流排系統。

485匯流排實踐要點

根據485 匯流排結構理論,在理想環境的前提下,485 匯流排傳輸距離最遠可以達到1200 公尺。其條件是通訊線材優質達標,波特率為9600,只負載一台485 裝置,才能使得通訊距離達到1200 公尺,所以通常485 匯流排實際的穩定通訊距離往往達不到1200 公尺。如果負載485 裝置多,線材阻抗...

485 匯流排的幾個概念

485只是物理層,問題的關鍵是你這個網路上要走什麼協議啊?can,modbus rtu profibus dp等等現場匯流排都是485的,組網的硬體就完全不一樣,所以得說清楚。1 485 和485 資料線一定要互為雙絞。2 佈線一定要布多股遮蔽雙絞線。多股是為了備用,遮蔽是為了便於出現特殊情況時除錯...

CAN匯流排與RS485的比較

注 以下是從網上搜尋總結的。can匯流排特點 rs485介面標準特點 1 rs 485的電氣特性 邏輯 1 以兩線間的電壓差為 2 6 v表示 邏輯 0 以兩線間的電壓差為 2 6 v表示。介面訊號電平比rs 232 c降低了,就不易損壞介面電路的晶元,且該電平與ttl電平相容,可方便與ttl 電路...