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