提高485總線的可靠性

提高485總線的可靠性

摘 要:就485總線應用中易出現的問題,分析了產生的原因並給出解決問題的軟硬件方案
和措施。
關鍵詞:RS-485總線、串行異步通信


--------------------------------------------------------------------------------

1 問題的提出

在應用系統中,RS-485半雙工異步通信總線是被各個研發機構廣泛使用的數據通信總
線,它往往應用在集中控制樞紐與分散控制單元之間。系統簡圖如圖1所示。


圖1. RS-485系統示意圖

由於實際應用系統中,往往分散控制單元數量較多,分佈較遠,現場存在各種干擾,所
以通信的可靠性不高,再加上軟硬件設計的不完善,使得實際工程應用中如何保障RS-485總
線的通信的可靠性成爲各研發機構的一塊心病。

在使用RS-485總線時,如果簡單地按常規方式設計電路,在實際工程中可能有以下兩個問
題出現。一是通信數據收發的可靠性問題;二是在多機通信方式下,一個節點的故障(如死
機),往往會使得整個系統的通信框架崩潰,而且給故障的排查帶來困難。

針對上述問題,我們對485總線的軟硬件採取了具體的改進措施

2 硬件電路的設計

現以8031單片機自帶的異步通信口,外接75176芯片轉換成485總線爲例。其中爲了實現
總線與單片機系統的隔離,在8031的異步通信口與75176之間採用光耦隔離。電路原理圖如
圖2所示。


圖 2 改進後的485通信口原理圖

充分考慮現場的複雜環境,在電路設計中注意了以下三個問題。

2.1 SN75176 485芯片DE控制端的設計

由於應用系統中,主機與分機相隔較遠,通信線路的總長度往往超過400米,而分機系
統上電或復位又常常不在同一個時刻完成。如果在此時某個75176的DE端電位爲“1”,那
麼它的485總線輸出將會處於發送狀態,也就是佔用了通信總線,這樣其它的分機就無法與
主機進行通信。這種情況尤其表現在某個分機出現異常情況下(死機),會使整個系統通信
崩潰。因此在電路設計時,應保證系統上電覆位時75176的DE端電位爲“0”。由於8031在復
位期間,I/O口輸出高電平,故圖2電路的接法有效地解決復位期間分機“咬”總線的問題。

2.2 隔離光耦電路的參數選取

在應用系統中,由於要對現場情況進行實時監控及響應,通信數據的波特率往往做得較
高(通常都在4800波特以上)。限制通信波特率提高的“瓶頸”,並不是現場的導線(現場
施工一般使用5類非屏蔽的雙絞線),而是在與單片機系統進行信號隔離的光耦電路上。此
處採用TIL117。電路設計中可以考慮採用高速光耦,如6N137、6N136等芯片,也可以優化普
通光耦電路參數的設計,使之能工作在最佳狀態。例如:電阻R2、R3如果選取得較大,將會
使光耦的發光管由截止進入飽和變得較慢;如果選取得過小,退出飽和也會很慢,所以這兩
只電阻的數值要精心選取,不同型號的光耦及驅動電路使得這兩個電阻的數值略有差異,這
一點在電路設計中要特別慎重,不能隨意,通常可以由實驗來定。

2.3 485總線輸出電路部分的設計

輸出電路的設計要充分考慮到線路上的各種干擾及線路特性阻抗的匹配。由於工程環境
比較複雜,現場常有各種形式的干擾源,所以485總線的傳輸端一定要加有保護措施。在電
路設計中採用穩壓管D1、D2組成的吸收回路,也可以選用能夠抗浪涌的TVS瞬態雜波抑制器
件,或者直接選用能抗雷擊的485芯片(如SN75LBC184等)。

考慮到線路的特殊情況(如某一臺分機的485芯片被擊穿短路),爲防止總線中其它分
機的通信受到影響,在75176的485信號輸出端串聯了兩個20Ω的電阻R10、R11。這樣本機的
硬件故障就不會使整個總線的通信受到影響。

在應用系統工程的現場施工中,由於通信載體是雙絞線,它的特性阻抗爲120Ω左右,
所以線路設計時,在RS-485網絡傳輸線的始端和末端各應接1只120Ω的匹配電阻(如圖2中
R8),以減少線路上傳輸信號的反射。

由於RS-485芯片的特性,接收器的檢測靈敏度爲± 200mV,即差分輸入端VA-VB ≥
+200mV,輸出邏輯1,VA-VB ≤-200mV,輸出邏輯0;而A、B端電位差的絕對值小於200mV
時,輸出爲不確定。如果在總線上所有發送器被禁止時,接收器輸出邏輯0,這會誤認爲通
信幀的起始引起工作不正常。解決這個問題的辦法是人爲地使A端電位高於B兩端電位,這樣
RXD的電平在485總線不發送期間(總線懸浮時)呈現唯一的高電平,8031單片機就不會被誤
中斷而收到亂字符。通過在485電路的A、B輸出端加接上拉、下拉電阻R7、R9,即可很好地
解決這個問題。

3 軟件的編程

485芯片的軟件編程對產品的可靠性也有很大影響。由於485總線是異步半雙工的通信總
線,在某一個時刻,總線只可能呈現一種狀態,所以這種方式一般適用於主機對分機的查詢
方式通信,總線上必然有一臺始終處於主機地位的設備在巡檢其它的分機,所以需要制定一
套合理的通信協議來協調總線的分時共用。這裏採用的是數據包通信方式。通信數據是成幀
成包發送的,每包數據都有引導碼、長度碼、地址碼、命令碼、內容、校驗碼等部分組成。
其中引導碼是用於同步每一包數據的引導頭;長度碼是這一包數據的總長度;命令碼是主機
對分機(或分機應答主機)的控制命令;地址碼是分機的本機地址號;“內容”是這一包數
據裏的各種信息;校驗碼是這一包數據的校驗標誌,可以採用奇偶校驗、和校驗等不同的方
式。

在485芯片的通信中,尤其要注意對485控制端DE的軟件編程。爲了可靠的工作,在485
總線狀態切換時需要做適當延時,再進行數據的收發。具體的做法是在數據發送狀態下,先
將控制端置“1”,延時1ms左右的時間,再發送有效的數據,一包數據發送結束後再延時
1ms後,將控制端置“0”。這樣的處理會使總線在狀態切換時,有一個穩定的工作過程。

4 結論

經過以上的軟硬件共同處理,RS-485總線在應用系統工程中的可靠性大大提高,在通常
的環境條件下,24小時連續開機,系統的通信始終處於正常狀態,整機性能滿足了現場工程
的需要。

但是RS-485總線仍然只是一種常規的通信總線,它不能夠做總線的自動仲裁,也就是不
能夠同時發送數據以避免總線競爭,所以整個系統的通信效率必然較低,數據的冗餘量較
大,對於速度要求高的應用場所不適宜用RS-485總線。同時由於RS-485總線上通常只有一臺
主機,所以這種總線方式是典型的集中-分散型控制系統。一旦主機出現故障,會使整個系
統的通信陷於癱瘓狀態,因此做好主機的在線熱備份是一個重要措施。

儘管RS-485總線存在這樣那樣的問題,但由於它的線路設計簡單、價格低廉、控制方
便,只要合理的使用在某些場所仍然能發揮良好的作用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章