新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 提高485總線系統(tǒng)的可靠性方式解析

提高485總線系統(tǒng)的可靠性方式解析

作者: 時(shí)間:2016-12-13 來源:網(wǎng)絡(luò) 收藏
  引言

  近年來,由于人們防火意識(shí)的不斷增強(qiáng)以及有關(guān)法律、法規(guī)的不斷完善,火災(zāi)自動(dòng)報(bào)警系統(tǒng)得到迅猛發(fā)展和廣泛應(yīng)用,已成為預(yù)防火災(zāi)、保障人民生命和財(cái)產(chǎn)安全的最重要手段。這就要求火災(zāi)自動(dòng)報(bào)警系統(tǒng)必須具有很高的可靠性和穩(wěn)定性。

本文引用地址:http://butianyuan.cn/article/201612/329503.htm

  目前,國內(nèi)火災(zāi)報(bào)警系統(tǒng)多采用RS485半雙工異步通信總線進(jìn)行聯(lián)網(wǎng),實(shí)現(xiàn)火災(zāi)報(bào)警控制器之間,以及火災(zāi)報(bào)警控制器與火災(zāi)顯示盤之間的通信。但在實(shí)際使用中,往往由于設(shè)備數(shù)量多、通信線路遠(yuǎn)以及現(xiàn)場的各種干擾等,造成通信可靠性、穩(wěn)定性不高,致使聯(lián)網(wǎng)系統(tǒng)的質(zhì)量得不到保證。

  筆者在火災(zāi)自動(dòng)報(bào)警系統(tǒng)的聯(lián)網(wǎng)設(shè)計(jì)中,經(jīng)大量試驗(yàn),發(fā)現(xiàn)在使用RS485總線時(shí),如果簡單地按常規(guī)方式設(shè)計(jì)電路,那么在實(shí)際工程中可能存在以下兩個(gè)問題:一是通信數(shù)據(jù)收發(fā)不可靠;二是在多機(jī)通信方式下,一個(gè)節(jié)點(diǎn)的故障(如死機(jī))往往會(huì)使得整個(gè)系統(tǒng)的通信框架崩潰,而且給故障的排查帶來困難。針對(duì)上述問題,對(duì)485總線接口的軟硬件設(shè)計(jì)采取了有效的改進(jìn)措施,大大提高了聯(lián)網(wǎng)系統(tǒng)的可靠性和穩(wěn)定性。

  1 RS-485總線接口硬件電路的設(shè)計(jì)

  如圖1所示,89C51單片機(jī)自帶異步通信接口,外接RS485收發(fā)器75LBC184,89C51的異步通信口與75LBC184之間采用3片光耦進(jìn)行電氣隔離。

  1.1 75LBC184 DE控制端的設(shè)計(jì)

  由于火災(zāi)報(bào)警控制系統(tǒng)中主機(jī)與分機(jī)相隔較遠(yuǎn),通信線路的總長度往往超過1 000 m,而分機(jī)系統(tǒng)上電或復(fù)位又常常不在同一個(gè)時(shí)刻完成。如果此時(shí)某個(gè)75LBC184的DE端電位為1,那么它的485總線輸出將處于發(fā)送狀態(tài),也就是占用了通信總線,這樣其他分機(jī)就無法與主機(jī)進(jìn)行通信。這種情況尤其表現(xiàn)在某個(gè)分機(jī)出現(xiàn)異常情況(如死機(jī))下,會(huì)使整個(gè)系統(tǒng)通信崩潰。因此在電路設(shè)計(jì)時(shí),應(yīng)保證系統(tǒng)上電復(fù)位時(shí)75LBC184的DE端電位為0。由于89C51在復(fù)位期間,I/O口輸出高電平,故圖1中電的接法可有效地解決復(fù)位期間分機(jī)“咬”總線的問題。

  

  圖1 改進(jìn)后的485通信接口原理路

  1.2 隔離光耦電路的參數(shù)選取

  在火災(zāi)報(bào)警系統(tǒng)中,要對(duì)現(xiàn)場情況進(jìn)行實(shí)時(shí)監(jiān)控及響應(yīng),因此通信數(shù)據(jù)的波特率往往做得較高(本系統(tǒng)中控制器與顯示盤之間的通信速率在6 250 bps)。限制通信波特率提高的“瓶頸”并不是現(xiàn)場的導(dǎo)線(現(xiàn)場施工一般使用非屏蔽的雙絞線),而是單片機(jī)系統(tǒng)進(jìn)行信號(hào)隔離的光耦電路。此處采用TIL117,電路設(shè)計(jì)中可以考慮采用高速光耦,如6N137、6N136等芯片;也可以優(yōu)化普通光耦電路參數(shù)的設(shè)計(jì),使之工作在最佳狀態(tài)。例如:電阻R2、R3如果選取得較大,則會(huì)使光耦的發(fā)光管由截止進(jìn)入飽和變得較慢;如果選取得過小,則退出飽和會(huì)很慢。所以這兩只電阻的數(shù)值要精心選取,不同型號(hào)的光耦及驅(qū)動(dòng)電路使得這兩個(gè)電阻值略有差異,在電路設(shè)計(jì)中應(yīng)特別慎重,通常需要通過實(shí)驗(yàn)確定。

  1.3 485總線輸出電路部分的設(shè)計(jì)

  輸出電路的設(shè)計(jì)要充分考慮線路上的各種干擾及線路特性阻抗的匹配。信號(hào)在傳輸過程中會(huì)產(chǎn)生電磁干擾和終端反射,使有效信號(hào)和無效信號(hào)在傳輸線上相互疊加,嚴(yán)重時(shí)會(huì)使通信無法正常進(jìn)行。為解決這一問題,某些芯片的驅(qū)動(dòng)器設(shè)計(jì)成限斜率方式,使輸出信號(hào)邊沿不要過陡,以免在傳輸線上產(chǎn)生過多的高頻分量,從而有效地扼制干擾的產(chǎn)生。在設(shè)計(jì)選型時(shí),最好選擇具有該種功能的RS485接口芯片。同時(shí),RS485接口芯片在使用、焊接或設(shè)備的運(yùn)輸途中都有可能受到靜電的沖擊而損壞;而且由于工程環(huán)境比較復(fù)雜,現(xiàn)場常有各種形式的干擾源,在傳輸線架設(shè)于戶外的使用場合,接口芯片乃至整個(gè)系統(tǒng)還有可能遭致雷電的襲擊。所以485總線的傳輸端一定要加有保護(hù)措施,在電路設(shè)計(jì)中選用抗靜電或抗雷擊的芯片可有效避免此類損失。本系統(tǒng)中選用的是75LBC184,它的驅(qū)動(dòng)器不但設(shè)計(jì)成限斜率方式輸出,而且能抗雷電的沖擊,承受高達(dá)8 kV的靜電放電沖擊,在實(shí)際使用中效果十分理想。

  考慮到線路的特殊情況(例如某臺(tái)分機(jī)的485芯片被擊穿短路),為防止總線中其他分機(jī)的通信受到影響,在75LBC184的485信號(hào)輸出端串聯(lián)了兩個(gè)20 Ω的電阻R10和R11。這樣本機(jī)的硬件故障就不會(huì)使整個(gè)總線的通信受到影響。

  在消防報(bào)警產(chǎn)品的現(xiàn)場施工中,通信載體一般采用雙絞線。其特性阻抗為120 Ω左右,所以線路設(shè)計(jì)時(shí),在485網(wǎng)絡(luò)傳輸線的始端和末端應(yīng)各接1只120 Ω的匹配電阻(如圖1中的R8),以減少線路上傳輸信號(hào)的反射。由于RS485芯片的特性,接收器的檢測靈敏度為± 200 mV,即差分輸入端VA-VB ≥+200 mV,輸出邏輯1,VA-VB ≤-200 mV,輸出邏輯0;而當(dāng)A、B端電位差的絕對(duì)值小于200 mV時(shí),輸出不確定。如果在總線上所有發(fā)送器被禁止,則接收器輸出邏輯0,這會(huì)誤認(rèn)為通信幀的起始引起工作不正常。解決這個(gè)問題的辦法是人為地使A端電位高于B兩端電位。這樣RXD的電平在485總線不發(fā)送期間(總線懸浮時(shí))呈現(xiàn)唯一的高電平,89C51單片機(jī)就不會(huì)被誤中斷而收到亂字符。通過在485電路的A、B輸出端加接上、下拉電阻R7、R9,可以很好地解決這個(gè)問題。

  2 RS-485總線接口軟件設(shè)計(jì)

  RS-485接口的軟件設(shè)計(jì)對(duì)系統(tǒng)聯(lián)網(wǎng)的可靠性有很大影響。由于485總線是異步半雙工的通信總線,在某一個(gè)時(shí)刻總線只可能呈現(xiàn)一種狀態(tài),所以這種方式一般適用于主機(jī)對(duì)分機(jī)的查詢方式通信,總線上必然有一臺(tái)始終處于主機(jī)地位的設(shè)備在巡檢其他分機(jī),這就需要制定一套合理的通信協(xié)議來協(xié)調(diào)總線的分時(shí)共用。這里采用的是數(shù)據(jù)包通信方式,通信數(shù)據(jù)是成幀、成包發(fā)送的,每包數(shù)據(jù)都由引導(dǎo)碼、長度碼、地址碼、命令碼、內(nèi)容和校驗(yàn)碼等部分組成。其中: 引導(dǎo)碼是用于同步每一包數(shù)據(jù)的引導(dǎo)頭;長度碼是這一包數(shù)據(jù)的總長度;命令碼是主機(jī)對(duì)分機(jī)(或分機(jī)應(yīng)答主機(jī))的控制命令;地址碼是分機(jī)的本機(jī)地址號(hào);“內(nèi)容”是這一包數(shù)據(jù)里的各種信息;校驗(yàn)碼是這一包數(shù)據(jù)的校驗(yàn)標(biāo)志,可以采用奇偶校驗(yàn)、“和”校驗(yàn)以及CRC校驗(yàn)等不同方式。

  在設(shè)計(jì)RS-485通信軟件時(shí),尤其要注意對(duì)485控制端DE的軟件編程。為了保證數(shù)據(jù)收發(fā)可靠,在485總線狀態(tài)切換時(shí)需要加適當(dāng)延時(shí),再進(jìn)行數(shù)據(jù)的收發(fā)。具體做法是在數(shù)據(jù)發(fā)送狀態(tài)下,先將控制端DE置1;延時(shí)1 ms左右后,再發(fā)送有效的數(shù)據(jù)。一個(gè)數(shù)據(jù)包發(fā)送結(jié)束后再延時(shí)1 ms,然后將控制端DE清0。控制端DE經(jīng)過這樣處理后,會(huì)使總線在狀態(tài)切換時(shí)有一個(gè)穩(wěn)定的工作過程。

  結(jié)語

  RS-485總線具有電路設(shè)計(jì)簡單、軟件設(shè)計(jì)方便、成本低等優(yōu)點(diǎn),在火災(zāi)報(bào)警系統(tǒng)中應(yīng)用非常廣泛。本系統(tǒng)經(jīng)過對(duì)軟硬件接口進(jìn)行改進(jìn)后,大大提高了通信可靠性、穩(wěn)定性,可滿足消防報(bào)警系統(tǒng)的實(shí)際需要。采用本文改進(jìn)的485總線接口已成功地應(yīng)用于數(shù)百個(gè)消防報(bào)警系統(tǒng),未出現(xiàn)任何通信故障。

  參考文獻(xiàn)

  [1] B&B ELECTRONICS: RS422 and RS485 Application Note.

  [2] Texas Instrument Inc. SN75LBC184 Differential with Transient Voltage Suppression. 1998.

  [3] 馬忠梅,籍順心,等. 單片機(jī)的C語言應(yīng)用程序設(shè)計(jì). 北京:北京航空航天大學(xué)出版社,2003.



評(píng)論


技術(shù)專區(qū)

關(guān)閉