RS485串行總線可靠性的研究
掃描二維碼
隨時(shí)隨地手機(jī)看文章
在進(jìn)行嵌入式系統(tǒng)開發(fā)時(shí),微處理器要與不同的設(shè)備實(shí)現(xiàn)互連,這就需要建立統(tǒng)一的通信總線標(biāo)準(zhǔn)。通信總線可分為并行總線和串行總線,并行通信速度快、實(shí)時(shí)性好,但占用的口線多,不宜于小型化產(chǎn)品的開發(fā);串行通信速率雖低,但在數(shù)據(jù)通信吞吐量不是很大的微處理電路中顯得更加簡(jiǎn)易、方便、靈活。串行通信總線的種類繁多,文中就當(dāng)前嵌入式系統(tǒng)開發(fā)中最常用的RS485總線的通信可靠性做分析,希望對(duì)設(shè)計(jì)者有所幫助。
1 RS485標(biāo)準(zhǔn)
RS485是串行數(shù)據(jù)接口標(biāo)準(zhǔn),由電子工業(yè)協(xié)會(huì)(EIA)制訂并發(fā)布的,它是在RS-422基礎(chǔ)上制定的標(biāo)準(zhǔn),RS一485標(biāo)準(zhǔn)采用平衡式發(fā)送,差分式接收的數(shù)據(jù)收發(fā)器來驅(qū)動(dòng)總線,具體規(guī)格要求:接收器的輸入電阻Rin≥12 kΩ;驅(qū)動(dòng)器能輸出±7 V的共模電壓;輸入端的電容≤50 pF;在節(jié)點(diǎn)數(shù)為32個(gè),配置了120 Ω的終端電阻的情況下,驅(qū)動(dòng)器至少還能輸出電壓1.5 V(終端電阻的大小與所用雙絞線的參數(shù)有關(guān));接收器的輸入靈敏度為200 mV(即(V+)一(V一)≥0.2 V,表示信號(hào)“0”;(V+)一(V一)≤一0.2 V,表示信號(hào)“l”)因?yàn)镽S一485的遠(yuǎn)距離、多節(jié)點(diǎn)(32個(gè))以及傳輸線成本低的特性,使得EIA RS-485成為工業(yè)應(yīng)用中數(shù)據(jù)傳輸?shù)氖走x標(biāo)準(zhǔn)。
2 RS485數(shù)據(jù)傳輸?shù)目煽啃?
RS485總線屬于外部總線,外部總線用于與外部設(shè)備進(jìn)行信息和數(shù)據(jù)交換,是設(shè)備級(jí)的。
RS一485標(biāo)準(zhǔn)所具有的噪聲抑制能力、數(shù)據(jù)傳輸速率、電纜長(zhǎng)度及可靠性是其他標(biāo)準(zhǔn)無法比擬的。然而在實(shí)際應(yīng)用中,往往分散控制單元數(shù)量較多、分布較遠(yuǎn)、現(xiàn)場(chǎng)存在各種干擾,使得通信的可靠性不高。為了提高RS一485總線在實(shí)際應(yīng)用中的可靠性,應(yīng)注意以下幾個(gè)問題。
2.1 阻抗匹配
RS一485的信號(hào)線應(yīng)考慮阻抗匹配問題,所謂阻抗匹配即信號(hào)線的負(fù)載應(yīng)與信號(hào)線的特性阻抗相等。特性阻抗與信號(hào)線的寬度、與地線層的距離以及板材的介電常數(shù)等物理因素有關(guān),是信號(hào)線的固有特性。阻抗不匹配將引起傳輸信號(hào)的反射,使數(shù)字波形產(chǎn)生振蕩,造成邏輯混亂。由于通信載體是雙絞線,它的特性阻抗為120 Ω左右,所以線路設(shè)計(jì)時(shí),在RS一485網(wǎng)絡(luò)傳輸線的始端和末端各應(yīng)接1只120 Ω的匹配電阻,如圖1所示,以減少線路上傳輸信號(hào)的反射。
RS一485標(biāo)準(zhǔn)規(guī)定接收器門限為±200 mV。這樣規(guī)定能夠提供比較高的噪聲抑制能力,但同時(shí)也帶來了一個(gè)問題:當(dāng)總線電壓在±200 mV中間時(shí)接收器輸出狀態(tài)不確定。由于UART以一個(gè)前導(dǎo)“0”觸發(fā)一次接收動(dòng)作,所以接收器的不確定狀態(tài)可能會(huì)使UART錯(cuò)誤地接收一些數(shù)據(jù),導(dǎo)致系統(tǒng)誤動(dòng)作。當(dāng)總線空閑、開路或短路時(shí)都有可能出現(xiàn)兩線電壓差低于200 mV的情況,必須采取一定措施避免接收器處于不確定狀態(tài)。傳統(tǒng)的做法是給總線加偏置,當(dāng)總線空閑或開路時(shí),利用偏置電阻將總線偏置在一個(gè)確定的狀態(tài)(差分電壓≥200 mV),但這種方法仍然不能解決總線短路時(shí)的問題。Maxim公司的MAX3080系列S485接口芯片將接收門限移到一200 mV/一50 mV,巧妙地解決了這個(gè)問題。不但省去了外部偏置電阻,而且解決了總線短路情況下的失效保護(hù)問題。
2.3 地線與接地
電子系統(tǒng)的接地是一個(gè)非常關(guān)鍵而又常常被忽視的問題,接地處理不當(dāng)經(jīng)常會(huì)導(dǎo)致不能穩(wěn)定工作甚至危及系統(tǒng)安全。對(duì)于RS一485網(wǎng)絡(luò)來講也是一樣,沒有一個(gè)合理的接地系統(tǒng)可能會(huì)使系統(tǒng)的可靠性大打折扣。一個(gè)典型的錯(cuò)誤觀點(diǎn)就是認(rèn)為RS一485通信鏈路不需要信號(hào)地,而只是簡(jiǎn)單地用一對(duì)雙絞線將各個(gè)接口的“A”、“B”端連接起來。這種處理方法在某些情況下也可以工作,但給系統(tǒng)埋下了隱患,主要有以下兩方面的問題:
(1)共模干擾問題。
RS一485接口采用差分方式傳輸信號(hào),并不需要相對(duì)于某個(gè)參照點(diǎn)來檢測(cè)信號(hào),系統(tǒng)只需檢測(cè)兩線之間的電位差就可以了。但應(yīng)該注意的是,收發(fā)器只有在共模電壓不超出一定范圍(一7~+12 V)的條件下才能正常工作。當(dāng)共模電壓超出此范圍就會(huì)影響通信的可靠,直至損壞接口。如圖2所示,當(dāng)發(fā)送器A向接收器B發(fā)送數(shù)據(jù)時(shí),發(fā)送器A的輸出共模電壓為VOS,由于兩個(gè)系統(tǒng)具有各自獨(dú)立的接地系統(tǒng),存在著地電位差VGPD。那么,接收器輸入端的共模電壓就會(huì)達(dá)到VCM=VOS+VGPD。RS一485標(biāo)準(zhǔn)規(guī)定VOS≤3 V,但VGPD可能會(huì)有很大的幅度(十幾伏甚至數(shù)十伏),并可能伴有強(qiáng)干擾信號(hào),致使接收器共模輸入VCM超出正常范圍,并在信號(hào)線上產(chǎn)生干擾電流,輕則影響正常通信,重則損壞接口。
(2)電磁輻射(EMI)問題。
驅(qū)動(dòng)器輸出信號(hào)中的共模部分需要一個(gè)返回通路,如果沒有一個(gè)低阻的返回通道(信號(hào)地),就會(huì)以輻射的形式返回源端,整個(gè)總線就會(huì)像一個(gè)巨大的天線向外輻射電磁波。
因此,盡管是差分傳輸,對(duì)于RS一485網(wǎng)絡(luò)來講,一條低阻的信號(hào)地還是必不可少的。
2.4 瞬態(tài)保護(hù)
前面提到的接地措施只對(duì)低頻率的共模干擾有保護(hù)作用,對(duì)于頻率很高的瞬態(tài)干擾則幾乎無效。因?yàn)橐€電感的作用,對(duì)于高頻瞬態(tài)干擾來講,接地線實(shí)際等同于開路。這樣的瞬態(tài)干擾可能會(huì)有成百上千伏的電壓,但持續(xù)時(shí)間很短。在切換大功率感性負(fù)載(電機(jī)、變壓器、繼電器等)、閃電等過程中都會(huì)產(chǎn)生幅度很高的瞬態(tài)干擾,如果不加以適當(dāng)防護(hù)就會(huì)損壞接口。對(duì)于這種瞬態(tài)干擾可以采用隔離或旁路的方法加以防護(hù)。
圖3(a)所示為隔離保護(hù)方案。這種方案實(shí)際上將瞬態(tài)高壓轉(zhuǎn)移到隔離接口中的電隔離層上,由于隔離層的高絕緣電阻,不會(huì)產(chǎn)生損害性的浪涌電流,起到保護(hù)接口的作用。通常采用高頻變壓器、光耦等元件實(shí)現(xiàn)接口的電氣隔離。這種方案的優(yōu)點(diǎn)是可以承受高電壓、持續(xù)時(shí)間較長(zhǎng)的瞬態(tài)干擾,實(shí)現(xiàn)起來也比較容易,缺點(diǎn)是成本較高。
圖3(b)所示為旁路保護(hù)方案。這種方案利用瞬態(tài)抑制元件(如TVS、MOV、氣體放電管等)將危害性的瞬態(tài)能量旁路到大地,優(yōu)點(diǎn)是成本較低,缺點(diǎn)是保護(hù)能力有限,只能保護(hù)一定能量以內(nèi)的瞬態(tài)干擾,持續(xù)時(shí)間不能很長(zhǎng),而且需要有一條良好的接地通道,實(shí)現(xiàn)起來比較困難。實(shí)際應(yīng)用中可以將二者結(jié)合起來靈活運(yùn)用。.隔離接口對(duì)大幅度瞬態(tài)干擾進(jìn)行隔離,而旁路元件保護(hù)隔離接口不被過高的瞬態(tài)電壓擊穿。
2.5 通信規(guī)則
由于RS一485通訊是一種半雙工通訊,發(fā)送和接收共用同一物理信道。在任意時(shí)刻只允許一臺(tái)單機(jī)處于發(fā)送狀態(tài)。因此要求應(yīng)答的單機(jī)必須在偵聽到總線上呼叫信號(hào)已經(jīng)發(fā)送完畢,并且沒有其它單機(jī)發(fā)出應(yīng)答信號(hào)的情況下,才能應(yīng)答。半雙工通訊對(duì)主機(jī)和從機(jī)的發(fā)送和接收時(shí)序有嚴(yán)格的要求。如果在時(shí)序上配合不好,就會(huì)發(fā)生總線沖突,使整個(gè)系統(tǒng)的通訊癱瘓,無法正常工作。要做到總線上的設(shè)備在時(shí)序上的嚴(yán)格配合,必須要遵從以下原則:
(1)復(fù)位時(shí),主從機(jī)都應(yīng)該處于接收狀態(tài)。
以Maxim公司的485接口芯片MAX3082為例。MAX3082芯片的發(fā)送和接收功能轉(zhuǎn)換是由芯片的RE,DE端控制的。RE=l,DE=1時(shí),MAX3082處于發(fā)送狀態(tài);RE=O,DE=O時(shí),MAX3082處于接收狀態(tài)。由于應(yīng)用系統(tǒng)中,主機(jī)與分機(jī)相隔較遠(yuǎn),通信線路的總長(zhǎng)度往往超過400 m,而分機(jī)系統(tǒng)上電或復(fù)位又常常不在同一個(gè)時(shí)刻完成。一般使用微處理器的一根口線連接RE,DE兩端。在上電復(fù)位時(shí),由于硬件電路穩(wěn)定需要一定的時(shí)間,并且微處理器各端口復(fù)位后處于高電平狀態(tài),這樣就會(huì)使總線上各個(gè)分機(jī)處于發(fā)送狀態(tài),再者上電時(shí)各電路不穩(wěn)定,可能向總線發(fā)送信息。因此,如果用一根口線作發(fā)送和接收控制信號(hào),應(yīng)該將口線反向后接入MAX3082的控制端,使上電時(shí)MAX3082處于接收狀態(tài)。
另外,在主從機(jī)軟件上也應(yīng)附加若干處理措施,例如,上電時(shí)或正式通訊之前,對(duì)串行口做幾次空操作,清除端口的非法數(shù)據(jù)和命令。
(2)總線上所連接的各單機(jī)的發(fā)送控制信號(hào)在時(shí)序上完全隔開。
為了保證發(fā)送和接收信號(hào)的完整和正確,避免總線上信號(hào)的碰撞,對(duì)總線的使用權(quán)必須進(jìn)行分配才能避免競(jìng)爭(zhēng)。連接到總線上的單機(jī),其發(fā)送控制信號(hào)在時(shí)間上要完全隔離。
總之,發(fā)送和接收控制信號(hào)應(yīng)該足夠完寬,以保證完整地接收一幀數(shù)據(jù),任意兩個(gè)單機(jī)的發(fā)送控制信號(hào)在時(shí)間上完全分開,避免總線爭(zhēng)端。
3 結(jié)束語
近年來,RS485標(biāo)準(zhǔn)在工業(yè)控制自動(dòng)化、交通控制自動(dòng)化、樓宇自控系統(tǒng)等多個(gè)領(lǐng)域得到廣泛應(yīng)用,而且不少現(xiàn)場(chǎng)總總線物理層也采取RS485的電氣標(biāo)準(zhǔn)。文中對(duì)當(dāng)前最流行的外部總線RS-485的可靠性問題做了探討。