RS485總線是一種常用的差分信號傳輸方式,RS485總線具有抗干擾能力強、傳輸距離遠(yuǎn)、節(jié)點數(shù)多等優(yōu)點,廣泛應(yīng)用于通信、工業(yè)自動化等領(lǐng)域。但是,在實際應(yīng)用中,我們可能會遇到一個問題,就是RS485總線是否需要在A和B兩條線上加上下拉電阻,以及加多大的電阻合適。前文介紹了RS485總線信號常見故障排查, 本文將對RS485總線為什么要加上下拉電阻及下拉電阻阻值的計算選型這個問題進(jìn)行分析和解釋。
首先,我們需要了解RS485總線的工作原理和信號特性。根據(jù)RS-RS485標(biāo)準(zhǔn),RS485總線是通過兩條線(A和B)來傳輸差分信號的,根據(jù)兩條線之間的電壓差來判斷的當(dāng)前數(shù)據(jù)位是0還是1。
RS485傳輸時的的數(shù)據(jù)有三種狀態(tài):
1.當(dāng)A和B之間的電壓差 VAB=UA-UB 大于+200mV時,RS485收發(fā)器輸出的邏輯為1;
2.當(dāng)A和B之間的電壓差 VAB=UA-UB 小于-200mV時,RS485收發(fā)器輸出邏輯為0;
3.當(dāng)A和B之間的電壓差 VAB=UA-UB 在-200mV~+200mV之間時,RS485收發(fā)器可能輸出高電平也可能輸出低電平,是一個不確定的狀態(tài)。
在正常情況下,我們希望接收器收到的數(shù)據(jù)只能是0或1,對于不確定的狀態(tài)是不能出現(xiàn)在RS485總線上的。那么,什么情況下會出現(xiàn)不確定的狀態(tài)呢?主要有以下幾種情況:
1.當(dāng)RS485總線處于空閑狀態(tài)時,也就是說,所有的RS485收發(fā)器都處于接收狀態(tài),沒有任何一個收發(fā)器在驅(qū)動總線時。此時,由于沒有任何信號源在總線上產(chǎn)生差分電壓,A和B兩條線上的電壓基本相等,也就是說,差分電壓基本為0。
2.當(dāng)RS485總線處于開路狀態(tài)時,也就是說,某個RS485收發(fā)器與總線斷開連接時。此時,由于斷開連接的收發(fā)器不再對總線產(chǎn)生影響,其余收發(fā)器之間的差分電壓也基本為0。
3.當(dāng)RS485驅(qū)動器輸出不足以使A、B產(chǎn)生絕對值大于200mV壓差時,也就是說此時RS485總線信號狀態(tài)已經(jīng)不能反映驅(qū)動器狀態(tài),接收器也無法識別正確信號。
當(dāng)RS485總線出現(xiàn)不確定的狀態(tài)時,會導(dǎo)致通信錯誤或失效。例如,如果某個RS485收發(fā)器在不確定狀態(tài)下認(rèn)為收到數(shù)據(jù)0信號,向串口輸出低電平,那么對于UART通信來說,這就相當(dāng)于一個起始位(Start Bit),會引起誤判或誤碼;如果某個RS485收發(fā)器在不確定狀態(tài)下輸出高低電平交替變化,那么對于UART通信來說,就會干擾正常數(shù)據(jù),導(dǎo)致UART接收器收到異常數(shù)據(jù)。
為了防止RS485總線出現(xiàn)不確定的狀態(tài),我們根據(jù)這兩種異常分析,導(dǎo)致這兩種異常的原因都是當(dāng)收發(fā)器處于接收狀態(tài)時,AB線上無法保持正常電壓差導(dǎo)致的。要保持空閑或斷線的狀態(tài)下也能有正確的壓差,我們需要在A和B兩條線上加上下拉電阻(通常A接上拉電阻,B接下拉電阻),以保證總線在空閑或開路狀態(tài)下有一個固定的差分電壓。如下圖所示:
那么,在選擇下拉電阻的大小時,我們需要考慮哪些因素呢?主要有以下幾個方面:
1.上下拉電阻應(yīng)該足夠小,以保證空閑或開路狀態(tài)下的差分電壓大于+200mV或小于-200mV(根據(jù)具體情況選擇),從而避免不確定狀態(tài)。
2.上下拉電阻應(yīng)該足夠大,以減少功耗和熱量,同時不影響RS485收發(fā)器的驅(qū)動能力和輸出電壓。
3.上下拉電阻應(yīng)該與RS485收發(fā)器的輸入阻抗、終端電阻、總線長度、節(jié)點數(shù)等因素相匹配,以保證總線的阻抗匹配和信號完整性。
首先,我們針對收發(fā)器處于斷線的狀態(tài)時,此時收發(fā)器A、B電壓由RU、RT、RD和RIN共同決定,既:
通常我們將RU和RD使用相同的值,則公式可簡化為:
此時,我們設(shè)芯片內(nèi)部差分輸入電阻RIN=15KΩ、VCC=3.3V且RT=120R,可以算出此時0Ω≤R≤239Ω,當(dāng)然只要R≤232.5KΩ都能滿足斷線情況下A、B線處于數(shù)據(jù)1狀態(tài)。
針對于空閑狀態(tài),考慮到大部分節(jié)點設(shè)備都會在在A、B線上添加RU和和RD電阻,且會在終端上增加 RT 電阻。如下圖所示:
我們根據(jù)前面的推導(dǎo)過程可知,不同的只是因為增加節(jié)點而增加的輸入電阻和上下拉電阻,所以我們根據(jù)上述電路可以推導(dǎo)出如下的公式:
在這個公式中,m為帶上下拉電阻的節(jié)點數(shù)量,n為節(jié)點數(shù)量??偩€A端和B端的差值我們定義為最小的200mA,這樣我們就可以將這個公式簡化為:
有了這個公式就可以根據(jù)實際的節(jié)點數(shù)量來確定上下拉電阻的值。
然而根據(jù)這個公式計算出來的結(jié)果僅僅只是一個理想值,在實際使用中上下拉電阻一般都是在節(jié)點內(nèi)部確定了的。不同的節(jié)點設(shè)備,其內(nèi)部的上下拉電阻可能不同,我們需要考量節(jié)點的數(shù)量來考量這個電阻的值。要確定上下拉電阻的值還需要考慮驅(qū)動芯片的帶載能力。不能將上下拉電阻設(shè)置的很小。
總之,RS485總線要在AB線上加上下拉電阻,主要是為了保證總線在空閑或開路狀態(tài)下有一個固定的差分電壓,從而避免不確定狀態(tài)導(dǎo)致的通信錯誤或失效。在選擇下拉電阻的大小時,需要綜合考慮功耗、驅(qū)動能力、阻抗匹配等因素,以保證通信的穩(wěn)定性和可靠性。
今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動化的發(fā)展,提升資源利用率,更多產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)和企業(yè)公眾號(微信號:cdebyte)進(jìn)行了解,也可以直接撥打400電話咨詢技術(shù)專員!
7 X 24 銷售服務(wù)熱線
4000-330-990深圳辦事處柯經(jīng)理:18218726658 杭州辦事處戴經(jīng)理:17512568697
常州辦事處崔經(jīng)理:15906110783 南京辦事處葛經(jīng)理:17626012283
業(yè)務(wù)郵箱:support@cdebyte.com
全國銷售投訴電話:19934352316
地址:四川省成都市高新西區(qū)西區(qū)大道199號B5棟(前臺座機:028-61543675)
?? 成都億佰特電子科技有限公司【版權(quán)所有】 蜀ICP備13019384號-3