如何提高485總線系統(tǒng)的可靠性
掃描二維碼
隨時(shí)隨地手機(jī)看文章
近年來,由于人們防火意識(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)定性。
目前,國(guó)內(nèi)火災(zāi)報(bào)警系統(tǒng)多采用RS-485半雙工異步通信總線進(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)場(chǎng)的各種干擾等,造成通信可靠性、穩(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)在使用RS-485總線時(shí),如果簡(jiǎn)單地按常規(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ī)自帶異步通信接口,外接RS-485收發(fā)器75LHCl84,89C5l的異步通信口與75LBCl84之間采用3片光耦進(jìn)行電氣隔離。
1.1 75LBCl84 DE控制端的設(shè)計(jì)
由于火災(zāi)報(bào)警控制系統(tǒng)中主機(jī)與分機(jī)相隔較遠(yuǎn),通信線路的總長(zhǎng)度往往超過l000m,而分機(jī)系統(tǒng)上電或復(fù)位又常常不在同一個(gè)時(shí)刻完成。如果此時(shí)某個(gè)75LBCl84的DE端電位為1,那么它的485總線輸出將處于發(fā)送狀態(tài),也就是占用了通信總線,這樣其他分機(jī)就無法與主機(jī)進(jìn)行通信。這種情況尤其表現(xiàn)在某個(gè)分?jǐn)_出現(xiàn)異常情況(如死機(jī))下,會(huì)使整個(gè)系統(tǒng)通信崩潰。因此在電路設(shè)計(jì)時(shí),應(yīng)保證系統(tǒng)上電復(fù)位時(shí)75LBCl84的DE端電位為O。由于89C51在復(fù)位期間,I/O口輸出高電平,故圖1中電路的接法可有效地解決復(fù)位期間分機(jī)“咬”總線的問題。
1.2 隔離光耦電路的參數(shù)選取
在火災(zāi)報(bào)警系統(tǒng)中,要對(duì)現(xiàn)場(chǎng)情況進(jìn)行實(shí)時(shí)監(jiān)控及響應(yīng),因此通信數(shù)據(jù)的波特率往往做得較高(本系統(tǒng)中控制器與顯示盤之間的通信速率在6250bps)。限制通信波特率提高的“瓶頸”并不是現(xiàn)場(chǎng)的導(dǎo)線(現(xiàn)場(chǎng)施工一般使用非屏蔽的雙絞線),而是單片機(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)生。在沒計(jì)選型時(shí),最好選擇具有該種功能的RS-485接口芯片。同時(shí),RS-485接口芯片在使用、焊接或設(shè)備的運(yùn)輸途中都有可能受到靜電的沖擊而損壞;而且由于工程環(huán)境比較復(fù)雜,現(xiàn)場(chǎng)常有各種形式的干抗源,在傳輸線架設(shè)于戶外的使用場(chǎng)合,接口芯片乃至整個(gè)系統(tǒng)還有可能遭致雷電的襲擊。所以485總線的傳輸端一定要加有保護(hù)措施,在電路設(shè)計(jì)中選用抗靜電或抗雷擊的芯片可有效避免此類損失。本系統(tǒng)中選用的是75LBCl84,它的驅(qū)動(dòng)器不但設(shè)計(jì)成限斜率方式輸出,而且能抗雷電的沖擊,承受高達(dá)8kV的靜電放電沖擊,在實(shí)際使用中效果十分理想。
考慮到線路的特殊情況(例如某臺(tái)分機(jī)的485芯片被擊穿短路),為防止總線中其他分機(jī)的通信受到影響,在75LBCl84的485信號(hào)輸出端串聯(lián)了兩個(gè)20Ω的電阻R10和R11。這樣本機(jī)的硬件故障就不會(huì)使整個(gè)總線的通信受到影響。
在消防報(bào)警產(chǎn)品的現(xiàn)場(chǎng)拖工中,通信載體一般采用雙絞線。其特性阻抗為120Ω左右,所以線路設(shè)計(jì)時(shí),在485網(wǎng)絡(luò)傳輸線的始端和末端應(yīng)各接1只120Ω的匹配電阻(如圖1中的R8),以減少線路上傳輸信號(hào)的反射。由于RS-485芯片的特性,接收器的檢測(cè)靈敏度為±200mV,即差分輸入端VA-VB≥+200mV,輸出邏輯l,VA-VB≤-200mV,輸出邏輯0;而當(dāng)A、B端屯位差的絕對(duì)值小于200mv時(shí),輸出不確定。如果在總線上所有發(fā)送器被禁止,則接收器輸出邏輯0,這會(huì)誤認(rèn)為通信幀的起始引起工作不正常。解決這個(gè)問題的辦法是人為地使A端電位高于B兩端電位。這樣RXD的電平在485總線不發(fā)送期間(總線懸浮時(shí))呈現(xiàn)唯一的高電平,89C5l單片機(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)碼,長(zhǎng)度碼、地址碼、命令碼、內(nèi)容和校驗(yàn)碼等部分組成。其中:引導(dǎo)碼是用于同步每一包數(shù)據(jù)的引導(dǎo)頭;長(zhǎng)度碼是這一包數(shù)據(jù)的總長(zhǎng)度;命令碼是主機(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í)1ms左右后,再發(fā)送有效的數(shù)據(jù)。一個(gè)數(shù)據(jù)包發(fā)送結(jié)束后再延時(shí)lms,然后將控制端DE清0??刂贫薉E經(jīng)過這樣處理后,會(huì)使總線在狀態(tài)切換時(shí)有一個(gè)穩(wěn)定的工作過程。
結(jié)語
RS-485總線具有電路設(shè)計(jì)簡(jiǎn)單、軟件設(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)任何通信故障。