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