提高485總線系統(tǒng)的可靠性方式解析
近年來,由于人們防火意識的不斷增強以及有關法律、法規(guī)的不斷完善,火災自動報警系統(tǒng)得到迅猛發(fā)展和廣泛應用,已成為預防火災、保障人民生命和財產安全的最重要手段。這就要求火災自動報警系統(tǒng)必須具有很高的可靠性和穩(wěn)定性。
本文引用地址:http://m.butianyuan.cn/article/201612/329503.htm目前,國內火災報警系統(tǒng)多采用RS485半雙工異步通信總線進行聯(lián)網,實現(xiàn)火災報警控制器之間,以及火災報警控制器與火災顯示盤之間的通信。但在實際使用中,往往由于設備數(shù)量多、通信線路遠以及現(xiàn)場的各種干擾等,造成通信可靠性、穩(wěn)定性不高,致使聯(lián)網系統(tǒng)的質量得不到保證。
筆者在火災自動報警系統(tǒng)的聯(lián)網設計中,經大量試驗,發(fā)現(xiàn)在使用RS485總線時,如果簡單地按常規(guī)方式設計電路,那么在實際工程中可能存在以下兩個問題:一是通信數(shù)據(jù)收發(fā)不可靠;二是在多機通信方式下,一個節(jié)點的故障(如死機)往往會使得整個系統(tǒng)的通信框架崩潰,而且給故障的排查帶來困難。針對上述問題,對485總線接口的軟硬件設計采取了有效的改進措施,大大提高了聯(lián)網系統(tǒng)的可靠性和穩(wěn)定性。
1 RS-485總線接口硬件電路的設計
如圖1所示,89C51單片機自帶異步通信接口,外接RS485收發(fā)器75LBC184,89C51的異步通信口與75LBC184之間采用3片光耦進行電氣隔離。
1.1 75LBC184 DE控制端的設計
由于火災報警控制系統(tǒng)中主機與分機相隔較遠,通信線路的總長度往往超過1 000 m,而分機系統(tǒng)上電或復位又常常不在同一個時刻完成。如果此時某個75LBC184的DE端電位為1,那么它的485總線輸出將處于發(fā)送狀態(tài),也就是占用了通信總線,這樣其他分機就無法與主機進行通信。這種情況尤其表現(xiàn)在某個分機出現(xiàn)異常情況(如死機)下,會使整個系統(tǒng)通信崩潰。因此在電路設計時,應保證系統(tǒng)上電復位時75LBC184的DE端電位為0。由于89C51在復位期間,I/O口輸出高電平,故圖1中電的接法可有效地解決復位期間分機“咬”總線的問題。
圖1 改進后的485通信接口原理路
1.2 隔離光耦電路的參數(shù)選取
在火災報警系統(tǒng)中,要對現(xiàn)場情況進行實時監(jiān)控及響應,因此通信數(shù)據(jù)的波特率往往做得較高(本系統(tǒng)中控制器與顯示盤之間的通信速率在6 250 bps)。限制通信波特率提高的“瓶頸”并不是現(xiàn)場的導線(現(xiàn)場施工一般使用非屏蔽的雙絞線),而是單片機系統(tǒng)進行信號隔離的光耦電路。此處采用TIL117,電路設計中可以考慮采用高速光耦,如6N137、6N136等芯片;也可以優(yōu)化普通光耦電路參數(shù)的設計,使之工作在最佳狀態(tài)。例如:電阻R2、R3如果選取得較大,則會使光耦的發(fā)光管由截止進入飽和變得較慢;如果選取得過小,則退出飽和會很慢。所以這兩只電阻的數(shù)值要精心選取,不同型號的光耦及驅動電路使得這兩個電阻值略有差異,在電路設計中應特別慎重,通常需要通過實驗確定。
1.3 485總線輸出電路部分的設計
輸出電路的設計要充分考慮線路上的各種干擾及線路特性阻抗的匹配。信號在傳輸過程中會產生電磁干擾和終端反射,使有效信號和無效信號在傳輸線上相互疊加,嚴重時會使通信無法正常進行。為解決這一問題,某些芯片的驅動器設計成限斜率方式,使輸出信號邊沿不要過陡,以免在傳輸線上產生過多的高頻分量,從而有效地扼制干擾的產生。在設計選型時,最好選擇具有該種功能的RS485接口芯片。同時,RS485接口芯片在使用、焊接或設備的運輸途中都有可能受到靜電的沖擊而損壞;而且由于工程環(huán)境比較復雜,現(xiàn)場常有各種形式的干擾源,在傳輸線架設于戶外的使用場合,接口芯片乃至整個系統(tǒng)還有可能遭致雷電的襲擊。所以485總線的傳輸端一定要加有保護措施,在電路設計中選用抗靜電或抗雷擊的芯片可有效避免此類損失。本系統(tǒng)中選用的是75LBC184,它的驅動器不但設計成限斜率方式輸出,而且能抗雷電的沖擊,承受高達8 kV的靜電放電沖擊,在實際使用中效果十分理想。
考慮到線路的特殊情況(例如某臺分機的485芯片被擊穿短路),為防止總線中其他分機的通信受到影響,在75LBC184的485信號輸出端串聯(lián)了兩個20 Ω的電阻R10和R11。這樣本機的硬件故障就不會使整個總線的通信受到影響。
在消防報警產品的現(xiàn)場施工中,通信載體一般采用雙絞線。其特性阻抗為120 Ω左右,所以線路設計時,在485網絡傳輸線的始端和末端應各接1只120 Ω的匹配電阻(如圖1中的R8),以減少線路上傳輸信號的反射。由于RS485芯片的特性,接收器的檢測靈敏度為± 200 mV,即差分輸入端VA-VB ≥+200 mV,輸出邏輯1,VA-VB ≤-200 mV,輸出邏輯0;而當A、B端電位差的絕對值小于200 mV時,輸出不確定。如果在總線上所有發(fā)送器被禁止,則接收器輸出邏輯0,這會誤認為通信幀的起始引起工作不正常。解決這個問題的辦法是人為地使A端電位高于B兩端電位。這樣RXD的電平在485總線不發(fā)送期間(總線懸浮時)呈現(xiàn)唯一的高電平,89C51單片機就不會被誤中斷而收到亂字符。通過在485電路的A、B輸出端加接上、下拉電阻R7、R9,可以很好地解決這個問題。
2 RS-485總線接口軟件設計
RS-485接口的軟件設計對系統(tǒng)聯(lián)網的可靠性有很大影響。由于485總線是異步半雙工的通信總線,在某一個時刻總線只可能呈現(xiàn)一種狀態(tài),所以這種方式一般適用于主機對分機的查詢方式通信,總線上必然有一臺始終處于主機地位的設備在巡檢其他分機,這就需要制定一套合理的通信協(xié)議來協(xié)調總線的分時共用。這里采用的是數(shù)據(jù)包通信方式,通信數(shù)據(jù)是成幀、成包發(fā)送的,每包數(shù)據(jù)都由引導碼、長度碼、地址碼、命令碼、內容和校驗碼等部分組成。其中: 引導碼是用于同步每一包數(shù)據(jù)的引導頭;長度碼是這一包數(shù)據(jù)的總長度;命令碼是主機對分機(或分機應答主機)的控制命令;地址碼是分機的本機地址號;“內容”是這一包數(shù)據(jù)里的各種信息;校驗碼是這一包數(shù)據(jù)的校驗標志,可以采用奇偶校驗、“和”校驗以及CRC校驗等不同方式。
在設計RS-485通信軟件時,尤其要注意對485控制端DE的軟件編程。為了保證數(shù)據(jù)收發(fā)可靠,在485總線狀態(tài)切換時需要加適當延時,再進行數(shù)據(jù)的收發(fā)。具體做法是在數(shù)據(jù)發(fā)送狀態(tài)下,先將控制端DE置1;延時1 ms左右后,再發(fā)送有效的數(shù)據(jù)。一個數(shù)據(jù)包發(fā)送結束后再延時1 ms,然后將控制端DE清0??刂贫薉E經過這樣處理后,會使總線在狀態(tài)切換時有一個穩(wěn)定的工作過程。
結語
RS-485總線具有電路設計簡單、軟件設計方便、成本低等優(yōu)點,在火災報警系統(tǒng)中應用非常廣泛。本系統(tǒng)經過對軟硬件接口進行改進后,大大提高了通信可靠性、穩(wěn)定性,可滿足消防報警系統(tǒng)的實際需要。采用本文改進的485總線接口已成功地應用于數(shù)百個消防報警系統(tǒng),未出現(xiàn)任何通信故障。
參考文獻
[1] B&B ELECTRONICS: RS422 and RS485 Application Note.
[2] Texas Instrument Inc. SN75LBC184 Differential with Transient Voltage Suppression. 1998.
[3] 馬忠梅,籍順心,等. 單片機的C語言應用程序設計. 北京:北京航空航天大學出版社,2003.
評論