CANBUS用通訊信號電纜
RS485應用電路圖
1 問題的提出
在應用系統中,RS-485半雙工異步通信總線是被各個研發機構廣泛使用的數據通信總線,它往往應用在集中控制樞紐與分散控制單元之間系統簡圖如圖1所示
由于實際應用系統中,往往分散控制單元數量較多,分布較遠,現場存在各種干擾,所 以通信的可靠性不高,再加上軟硬件設計的不完善,使得實際工程應用中如何保障RS-485總線的通信的可靠性成為各研發機構的一塊心病
在使用RS-485總線時如果簡單地按常規方式設計電路,在實際工程中可能有以下兩個問題出現一是通信數據收發的可靠性問題;二是在多機通信方式下,一個節點的故障(如死機),往往會使得整個系統的通信框架崩潰,而且給故障的排查帶來困難
針對上述問題,我們對485總線的軟硬件采取了具體的改進措施
2 硬件電路的設計
現以8031單片機自帶的異步通信口,外接75176芯片轉換成485總線為例其中為了實現總線與單片機系統的隔離,在8031的異步通信口與75176之間采用光耦隔離電路原理圖如圖2所示
充分考慮現場的復雜環境,在電路設計中注意了以下三個問題
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,即可很好地解決這個問題
CANBUS用通訊信號電纜