一、RS485總線介紹:
RS485總線是一種常見的串行總線標準,采用平衡發(fā)送與差分接收的方式,因此具有抑制共模干擾的能力。在一些要求通信距離為幾十米到上千米的時候,RS485總線是一種應用最為廣泛的總線。而且在多節(jié)點的工作系統(tǒng)中也有著廣泛的應用。
二、RS485總線典型電路介紹:
RS485電路總體上可以分為隔離型與非隔離型。隔離型比非隔離型在抗干擾、系統(tǒng)穩(wěn)定性等方面都有更出色的表現(xiàn),但有一些場合也可以用非隔離型。
我們就先講一下非隔離型的典型電路,非隔離型的電路非常簡單,只需一個RS485芯片直接與MCU的串行通訊口和一個I/O控制口連接就可以。如圖1所示:
圖1、典型485通信電路圖(非隔離型)
當然,上圖并不是完整的485通信電路圖,我們還需要在A線上加一個4.7K的上拉偏置電阻;在B線上加一個4.7K的下拉偏置電阻。中間的R16是匹配電阻,一般是120Ω,當然這個具體要看你傳輸用的線纜。(匹配電阻:485整個通訊系統(tǒng)中,為了系統(tǒng)的傳輸穩(wěn)定性,我們一般會在第一個節(jié)點和最后一個節(jié)點加匹配電阻。所以我們一般在設(shè)計的時候,會在每個節(jié)點都設(shè)置一個可跳線的120Ω電阻,至于用還是不用,由現(xiàn)場人員來設(shè)定。當然,具體怎么區(qū)分第一個節(jié)點還是最后一個節(jié)點,還得有待現(xiàn)場的專家們來解答呵。)TVS我們一般選用6.8V的,這個我們會在后面進一步的講解。
RS-485標準定義信號閾值的上下限為±200mV。即當A-B>200mV時,總線狀態(tài)應表示為“1”;當A-B<-200mV時,總線狀態(tài)應表示為“0”。但當A-B在±200mV之間時,則總線狀態(tài)為不確定,所以我們會在A、B線上面設(shè)上、下拉電阻,以盡量避免這種不確定狀態(tài)。
三、隔離型RS485總線典型電路介紹
在某些工業(yè)控制領(lǐng)域,由于現(xiàn)場情況十分復雜,各個節(jié)點之間存在很高的共模電壓。雖然RS-485接口采用的是差分傳輸方式,具有一定的抗共模干擾的能力,但當共模電壓超過RS-485接收器的極限接收電壓,即大于+12V或小于-7V時,接收器就再也無法正常工作了,嚴重時甚至會燒毀芯片和儀器設(shè)備。
????解決此類問題的方法是通過DC-DC將系統(tǒng)電源和RS-485收發(fā)器的電源隔離;通過隔離器件將信號隔離,徹底消除共模電壓的影響。實現(xiàn)此方案的途徑可分為:
????(1)傳統(tǒng)方式:用光耦、帶隔離的DC-DC、RS-485芯片構(gòu)筑電路;
????(2)使用二次集成芯片,如ADM2483、ADM257E等。
u?傳統(tǒng)光電隔離的典型電路:(如圖2所示)?
圖2、光電隔離RS485典型電路
圖中我們以高速光耦6N137為例(當然只是示意圖)來說明一下隔離型RS485電路。VDD與VCC485是兩組不共地的電源,一般用隔離型的DC-DC來實現(xiàn)。通過光耦隔離來實現(xiàn)信號的隔離傳輸,ADM487與MCU系統(tǒng)不共地,完全隔離則有效的抑制了高共模電壓的產(chǎn)生,大大降低了485的損壞率,提高了系統(tǒng)的穩(wěn)定性。但也存在電路體積過大、電路繁瑣、分立器件過多、傳輸速率受光電器件限制等缺點,對整個系統(tǒng)的穩(wěn)定性也有一定的影響。
?u?隔離型RS485器件來實現(xiàn)隔離傳輸:(如圖3所示)
?圖3、隔離型RS485芯片ADM2483應用圖
ADM2483是ADI推出的隔離型485芯片,SOW-16封裝,內(nèi)部集成了一個三通道的磁隔離器件和一個半雙工485收發(fā)器,2500V隔離電壓、傳輸速率500K、共模電壓抑制能力25KV/μS。但此電路仍需雙電源供電,因此也會在一定程度上存在電路體積過大的問題。
?u?完全隔離型RS485器件實現(xiàn)隔離傳輸:(如圖4所示)
?圖4、完全隔離型RS485/422芯片ADM2587E應用圖
ADM2587E是ADI繼ADM2483之后,推出的單電源隔離型485芯片。SOW-20封裝,2500V隔離電壓,全/半雙工、傳輸速率500K、共模電壓抑制能力25KV/μS、±15KV的ESD保護。適合用于工控、電力、儀表、安防等各種485隔離場合。
四、RS485總線保護電路
隔離雖然能有效的抑制高共模電壓,但總線上還會存在浪涌沖擊、電源線與485線短路、雷擊等潛在危害,所以我們一般會在總線端采取一定的保護措施。
一般我們會在VA、VB上各串接一個4~10Ω的PTC電阻,并在VA、VB各自對地端接6、8V的TVS管,當然也可用普通電阻與穩(wěn)壓二極管代替。更多的還可以加熱保險絲、防雷.管,不過并不是說這些加的越多越好,具體要看實際應用,如果這些保護太多的話,也會影響到整個系統(tǒng)的節(jié)點數(shù),與通信穩(wěn)定性。
五、485應用的一些小經(jīng)驗
1、收發(fā)時序不匹配:
???485是半雙工的通信,收發(fā)轉(zhuǎn)換是需要一定的時間的,所以一般在收發(fā)轉(zhuǎn)換之間,和每發(fā)送完一幀數(shù)據(jù)之后,都要有相應的延時,如果出現(xiàn)收發(fā)不正常、或第一幀數(shù)據(jù)之后就出現(xiàn)誤碼現(xiàn)象,則可以適當?shù)脑黾右幌卵訒r時間,以觀問題是否解決。
2、R0接上拉電阻:
??異步通信數(shù)據(jù)以字節(jié)的方式傳送,在每一個字節(jié)傳送之前,先要通過一個低電平起始位實現(xiàn)握手。為防止干擾信號誤觸發(fā)RO(接收器輸出)產(chǎn)生負跳變,使接收端MCU進入接收狀態(tài),建議RO外接10kΩ上拉電阻。
3、合理選用芯片。
例如,對外置設(shè)備為防止強電磁(雷電)沖擊,建議選用TI的75LBC184等防雷擊芯片,對節(jié)點數(shù)要求較多的可選用SIPEX的SP485R。此外經(jīng)我們實驗發(fā)現(xiàn),ADI的非隔離型485芯片ADM487E、隔離型芯片ADM2483、ADM2587在多節(jié)點、防雷擊方面也有著很好的表現(xiàn)。
六、維護RS-485的常用方法
1)若出現(xiàn)系統(tǒng)完全癱瘓,大多因為某節(jié)點芯片的VA、VB對電源擊穿,使用萬用表測VA、VB間差模電壓為零,而對地的共模電壓大于3V,此時可通過測共模電壓大小來排查,共模電壓越大說明離故障點越近,反之越遠;
????2)總線連續(xù)幾個節(jié)點不能正常工作。一般是由其中的一個節(jié)點故障導致的。一個節(jié)點故障會導致鄰近的2~3個節(jié)點(一般為后續(xù))無法通信,因此將其逐一與總線脫離,如某節(jié)點脫離后總線能恢復正常,說明該節(jié)點故障;
????3)集中供電的RS-485系統(tǒng)在上電時常常出現(xiàn)部分節(jié)點不正常,但每次又不完全一樣。這是由于對RS-485的收發(fā)控制端TC設(shè)計不合理,造成微系統(tǒng)上電時節(jié)點收發(fā)狀態(tài)混亂從而導致總線堵塞。改進的方法是將各微系統(tǒng)加裝電源開關(guān)然后分別上電;
????4)系統(tǒng)基本正常但偶爾會出現(xiàn)通信失敗。一般是由于網(wǎng)絡施工不合理導致系統(tǒng)可靠性處于臨界狀態(tài),最好改變走線或增加中繼模塊。應急方法之一是將出現(xiàn)失敗的節(jié)點更換成性能更優(yōu)異的芯片;
????5)因MCU故障導致TC端處于長發(fā)狀態(tài)而將總線拉死一片。提醒讀者不要忘記對TC端的檢查。盡管RS-485規(guī)定差模電壓大于200mV即能正常工作。但實際測量:一個運行良好的系統(tǒng)其差模電壓一般在1.2V左右(因網(wǎng)絡分布、速率的差異有可能使差模電壓在0.8~1.5V范圍內(nèi))。