RS-485總線廣泛應(yīng)用于通信、工業(yè)自動化等領(lǐng)域,在實際應(yīng)中,通常會遇到是否需要加上下拉電阻以及加多大的電阻合適的問題,下面我們將對這些問題進行詳細的分析。
為什么需要加上下拉電阻?
根據(jù)RS-485標準,當485總線差分電壓大于+200mV時,485收發(fā)器輸出高電平;當485總線差分電壓小于-200mV時,485收發(fā)器輸出低電平;當485總線上的電壓在-200mV~+200mV時,485收發(fā)器可能輸出高電平也可能輸出低電平,但一般總處于一種電平狀態(tài),若485收發(fā)器的輸出低電平,這對于UART通信來說是一個起始位,此時通信會不正常。
當485總線處于開路(485收發(fā)器與總線斷開)或者空閑狀態(tài)(485收發(fā)器全部處于接收狀態(tài),總線沒有收發(fā)器進行驅(qū)動)時,485總線的差分電壓基本為0,此時總線就處于一個不確定的狀態(tài)。同時由于目前485芯片為了提高總線上的節(jié)點數(shù),輸入阻抗設(shè)計的比較高,例如輸入阻抗為1/4單位阻抗或者1/8單位阻抗(單位阻抗為12kΩ,1/4單位阻抗為48kΩ),在管腳懸空時容易受到電磁干擾。
因此為了防止485總線出現(xiàn)上述情況,通常在485總線上增加上下拉電阻(通常A接上拉電阻,B總線下拉電阻)。若使用隔離RS-485收發(fā)模塊(例如RSM485PCHT),由于模塊內(nèi)部具有上下拉電阻(對于RSM485PCHT,內(nèi)部上下拉電阻為24kΩ),因此在模塊外部一般不需要增加上下拉電阻。
1、 什么情況下需要加上下拉電阻?
當遇到信號反射問題時,通常會通過增加匹配電阻來避免信號反射,以1對1通信為例,如圖 1所示。由于485總線通常使用特性阻抗為120Ω的雙絞線,因此在485總線的首尾兩端增加120Ω終端電阻來避免信號反射問題。
圖 1 兩個RSM485PCHT模塊通信電路
根據(jù)RSM485PCHT的具體參數(shù)(如表 1)可以得到如圖 2所示等效電路,其中RPU、RPD為模塊內(nèi)部在485總線上加的上下拉電阻,RIN為模塊的輸入阻抗。
表 1 RSM485PCHT參數(shù)
圖 2 RSM485PCHT通信等效示意圖
當兩個模塊都處于接收狀態(tài)時,可以根據(jù)基爾霍夫電流定律對節(jié)點A和節(jié)點B列出下列公式
根據(jù)上述公式可以計算AB之間的差分電壓為
此時模塊已處于不確定狀態(tài),模塊接收器可能輸出為高電平,也可能輸出為低電平,這時就需要在模塊外部增加上下拉電阻保證模塊在空閑時不處于不確定狀態(tài)。
2、 上下拉電阻如何取?
假設(shè)模塊的輸出電源電壓VO相同,由于RGND接在一起,因此可以認為模塊內(nèi)部的上拉電阻是并聯(lián)在一起的,為了方便解釋,對圖 2的電路進行整理,如圖 3所示,在模塊外部增加上下拉電阻可以選擇只增加一組,也可以選擇在每個模塊都增加上下拉電阻,為了解釋方便,我們在485總線上增加一組上下拉電阻。
圖 3 RSM485PCHT通信等效電路圖
其中:RPU為模塊內(nèi)部上拉電阻,RPD為模塊內(nèi)部的下拉電阻,本例中為24kΩ;
RIN為模塊接收器輸入阻抗,本例取最小值為120kΩ;
RT為終端電阻,本例取120Ω;
RPU_EX為模塊外部所加的上拉電阻,RPD_EX為模塊外部所加的下拉電阻;
由于RSM485PCHT的門限電平為-200mV~+200mV,一般留有100mV或200mV的電壓裕量,本例留有100mV的電壓裕量,根據(jù)前面所推導(dǎo)的差分電壓公式,可以得到下面計算公式
由于RSM485PCHT在供電電壓范圍為4.75V~5.25V,取VO=4.75V(最低輸入電壓VCC=4.75V情況下),可得:
由RPU=24kΩ,可得RPU_EX=RPD_EX=461.9Ω,由于計算出的電阻值為最大值,因此可以選擇在485總線上僅加一組410Ω或390Ω的上下拉電阻,或者加兩組910Ω上下拉電阻。
3、 如何驗證上下拉電阻取值?
上述計算僅考慮了485總線空閑狀態(tài)時不處于不確定狀態(tài),并沒有考慮485收發(fā)器的驅(qū)動能力和所用元器件的功耗等問題。外部所加上下拉電阻越小,可以將485總線空閑狀態(tài)差分電壓保持的越高,但與此同時,終端電阻和上下拉電阻的功耗也越大,對485收發(fā)器的驅(qū)動能力要求也越高,當超過485收發(fā)器的驅(qū)動能力時,也會導(dǎo)致通信失敗。
根據(jù)RS-485標準,當接收器的輸入阻抗為單位阻抗時(最小為12k),總線上最多可以接32個節(jié)點,485的差分負載最大為54Ω,此時差分輸出電壓最小為1.5V。
圖 4 485總線連接32個節(jié)點等效示意圖
如圖 4所示,我們可以看到當485總線上接有32個節(jié)點時,總線A或B的共模負載為:
由此可見,對于RS-485的標準來說,A總線或B總線的最大共模負載為375Ω。
圖 5 485總線增加終端電阻等效示意圖
當增加終端電阻后,可以發(fā)現(xiàn)485總線的共模負載沒有發(fā)生變化,但差模負載急劇減小,差模負載為
因此當485總線的節(jié)點數(shù)達到最多以及增加終端電阻后,485總線的差模負載仍大于54Ω,根據(jù)RS-485的標準,差分輸出電壓最小為1.5V。
圖 6 RSM485PCHT 64個節(jié)點等效示意圖
以RSM485PCHT為例說明增加上下拉電阻的情況,如圖 6所示,總線A或B的共模負載為:
實際測試上述情況,驅(qū)動輸出的最小差分電壓3.02V,這個電壓遠大于RS-485標準規(guī)定的最小差分輸出電壓1.5V。
圖 7 RSM485PCHT 64個節(jié)點增加終端電阻示意圖
當在485總線上增加終端電阻時,可以看出總線A或B的共模負載并沒有發(fā)生變化,而差分阻抗有了較大的變化,此時差模負載為:
計算出的差模負載要略大于RS-485標準規(guī)定的最大負載為54Ω,我們對RSM485PCHT進行實際測試,其輸出差分電壓1.58V,略大于標準規(guī)定的最小電壓。
當差模負載為54Ω(485總線接兩個120Ω終端電阻并且上拉電阻(下拉電阻)與收發(fā)器內(nèi)阻的并聯(lián)值為270Ω)時,RSM485PCHT的差分輸出電壓為1.52V(實測值),基本和RS-485標準相同。當差模負載為41.54Ω(485總線接兩個120Ω終端電阻并且上拉電阻(下拉電阻)與收發(fā)器內(nèi)阻的并聯(lián)值為135Ω)時,RSM485PCHT的差分輸出電壓在1.17V左右(實測值),在這種情況下可以通信。但485收發(fā)芯片手冊中規(guī)定的最大差模負載通常為54Ω,即在485總線上增加兩個120Ω后,上拉電阻(下拉電阻)與收發(fā)器輸入阻抗的并聯(lián)值應(yīng)大于270Ω。同時為了保證穩(wěn)定可靠通信,一般485總線的上拉電阻(下拉電阻)與收發(fā)器輸入阻抗的并聯(lián)值應(yīng)大于375Ω。
4、 總結(jié)
1) 通信線應(yīng)選用屏蔽雙絞線,屏蔽層應(yīng)單點接大地;
2) 當我們沒有遇到信號反射問題時,盡量不要使用終端電阻;
3) 如果使用終端電阻,我們可以通過上下拉電阻調(diào)節(jié)485總線在空閑狀態(tài)的電壓值,保證不處于門限電平(-200mV~+200mV或-200mV~-40mV)范圍內(nèi);
4)當我們增加上下拉電阻時,上拉電阻(下拉電阻)與收發(fā)器輸入阻抗的并聯(lián)值應(yīng)大于375Ω。