怎樣提高485總線的可靠性
2.2 隔離光耦電路的參數(shù)選取
在應用系統(tǒng)中,由于要對現(xiàn)場情況進行實時監(jiān)控及響應,通信數(shù)據(jù)的波特率往往做得較高(通常都在4800波特以上)。限制通信波特率提高的“瓶頸”,并不是現(xiàn)場的導線(現(xiàn)場施工一般使用5類非屏蔽的雙絞線),而是在與單片機系統(tǒng)進行信號隔離的光耦電路上。此處采用TIL117。電路設計中可以考慮采用高速光耦,如6N137、6N136等芯片,也可以優(yōu)化普通光耦電路參數(shù)的設計,使之能工作在最佳狀態(tài)。例如:電阻R2、R3如果選取得較大,將會使光耦的發(fā)光管由截止進入飽和變得較慢;如果選取得過小,退出飽和也會很慢,所以這兩只電阻的數(shù)值要精心選取,不同型號的光耦及驅動電路使得這兩個電阻的數(shù)值略有差異,這一點在電路設計中要特別慎重,不能隨意,通常可以由實驗來定。
2.3 485總線輸出電路部分的設計
輸出電路的設計要充分考慮到線路上的各種干擾及線路特性阻抗的匹配。由于工程環(huán)境比較復雜,現(xiàn)場常有各種形式的干擾源,所以485總線的傳輸端一定要加有保護措施。在電路設計中采用穩(wěn)壓管D1、D2組成的吸收回路,也可以選用能夠抗浪涌的TVS瞬態(tài)雜波抑制器件,或者直接選用能抗雷擊的485芯片(如SN75LBC184等)。
考慮到線路的特殊情況(如某一臺分機的485芯片被擊穿短路),為防止總線中其它分機的通信受到影響,在75176的485信號輸出端串聯(lián)了兩個20Ω的電阻R10、R11。這樣本機的硬件故障就不會使整個總線的通信受到影響。
在應用系統(tǒng)工程的現(xiàn)場施工中,由于通信載體是雙絞線,它的特性阻抗為120Ω左右,所以線路設計時,在RS-485網(wǎng)絡傳輸線的始端和末端各應接1只120Ω的匹配電阻(如圖2中R8),以減少線路上傳輸信號的反射。
由于RS-485芯片的特性,接收器的檢測靈敏度為± 200mV,即差分輸入端VA-VB ≥+200mV,輸出邏輯1,VA-VB ≤-200mV,輸出邏輯0;而A、B端電位差的絕對值小于200mV時,輸出為不確定。如果在總線上所有發(fā)送器被禁止時,接收器輸出邏輯0,這會誤認為通信幀的起始引起工作不正常。解決這個問題的辦法是人為地使A端電位高于B兩端電位,這樣RXD的電平在485總線不發(fā)送期間(總線懸浮時)呈現(xiàn)唯一的高電平,8031單片機就不會被誤中斷而收到亂字符。通過在485電路的A、B輸出端加接上拉、下拉電阻R7、R9,即可很好地解決這個問題。
3 軟件的編程
485芯片的軟件編程對產(chǎn)品的可靠性也有很大影響。由于485總線是異步半雙工的通信總線,在某一個時刻,總線只可能呈現(xiàn)一種狀態(tài),所以這種方式一般適用于主機對分機的查詢方式通信,總線上必然有一臺始終處于主機地位的設備在巡檢其它的分機,所以需要制定一套合理的通信協(xié)議來協(xié)調(diào)總線的分時共用。這里采用的是數(shù)據(jù)包通信方式。通信數(shù)據(jù)是成幀成包發(fā)送的,每包數(shù)據(jù)都有引導碼、長度碼、地址碼、命令碼、內(nèi)容、校驗碼等部分組成。其中引導碼是用于同步每一包數(shù)據(jù)的引導頭;長度碼是這一包數(shù)據(jù)的總長度;命令碼是主機對分機(或分機應答主機)的控制命令;地址碼是分機的本機地址號;“內(nèi)容”是這一包數(shù)據(jù)里的各種信息;校驗碼是這一包數(shù)據(jù)的校驗標志,可以采用奇偶校驗、和校驗等不同的方式。
在485芯片的通信中,尤其要注意對485控制端DE的軟件編程。為了可靠的工作,在485總線狀態(tài)切換時需要做適當延時,再進行數(shù)據(jù)的收發(fā)。具體的做法是在數(shù)據(jù)發(fā)送狀態(tài)下,先將控制端置“1”,延時1ms左右的時間,再發(fā)送有效的數(shù)據(jù),一包數(shù)據(jù)發(fā)送結束后再延時1ms后,將控制端置“0”。這樣的處理會使總線在狀態(tài)切換時,有一個穩(wěn)定的工作過程。
4 結論
經(jīng)過以上的軟硬件共同處理,RS-485總線在應用系統(tǒng)工程中的可靠性大大提高,在通常的環(huán)境條件下,24小時連續(xù)開機,系統(tǒng)的通信始終處于正常狀態(tài),整機性能滿足了現(xiàn)場工程的需要。
但是RS-485總線仍然只是一種常規(guī)的通信總線,它不能夠做總線的自動仲裁,也就是不能夠同時發(fā)送數(shù)據(jù)以避免總線競爭,所以整個系統(tǒng)的通信效率必然較低,數(shù)據(jù)的冗余量較大,對于速度要求高的應用場所不適宜用RS-485總線。同時由于RS-485總線上通常只有一臺主機,所以這種總線方式是典型的集中-分散型控制系統(tǒng)。一旦主機出現(xiàn)故障,會使整個系統(tǒng)的通信陷于癱瘓狀態(tài),因此做好主機的在線熱備份是一個重要措施。
盡管RS-485總線存在這樣那樣的問題,但由于它的線路設計簡單、價格低廉、控制方便,只要合理的使用在某些場所仍然能發(fā)揮良好的作用。
評論