RS-485是美國電子工業(yè)協(xié)會(EIA)在1983年批準(zhǔn)了一個新的平衡傳輸標(biāo)準(zhǔn)(balanced transmission standard),EIA一開始將RS(Recommended Standard)做為標(biāo)準(zhǔn)的前綴,不過后來為了便于識別標(biāo)準(zhǔn)的來源,已將RS改為EIA/TIA。目前標(biāo)準(zhǔn)名稱為TIA-485,但工程師及應(yīng)用指南仍繼續(xù)使用RS-485來稱呼此標(biāo)準(zhǔn)。
RS-485僅是一個電氣標(biāo)準(zhǔn),描述了接口的物理層,像協(xié)議、時序、串行或并行數(shù)據(jù)以及鏈路全部由設(shè)計者或更高層協(xié)議定義。RS-485定義的是使用平衡(也稱作差分)多點(diǎn)傳輸線的驅(qū)動器(driver)和接收器(receiver)的電氣特性。
關(guān)鍵特性
差分傳輸增加噪聲抗擾度,減少噪聲輻射
長距離鏈路,最長可達(dá)4000英尺(約1219米)
數(shù)據(jù)速率高達(dá)10Mbps(40英寸內(nèi),約12.2米)
同一總線可以連接多個驅(qū)動器和接收器
寬共模范圍允許驅(qū)動器和接收器之間存在地電位差異,允許最大共模電壓-7-12V
信號電平
RS-485能夠進(jìn)行遠(yuǎn)距離傳輸主要得益于使用差分信號進(jìn)行傳輸,當(dāng)有噪聲干擾時仍可以使用線路上兩者差值進(jìn)行判斷,使傳輸數(shù)據(jù)不受噪聲干擾。
RS-485差分線路包括以下2個信號:
A:非反向(non-inverting)信號
B:反向(inverting)信號
也可能會有第3個信號,為了平衡線路正常動作要求所有平衡線路上有一個共同參考點(diǎn),稱為SC或者G。該信號可以限制接收端收到的共模信號,收發(fā)器會以此信號作為基準(zhǔn)值來測量AB線路上的電壓。
RS-485標(biāo)準(zhǔn)中提到:
若是MARK(邏輯1),線路B信號電壓比線路A高
若是SPACE(邏輯0),線路A信號電壓比線路B高
注:不同的IC使用的信號標(biāo)示方式不同,不過EIA的標(biāo)準(zhǔn)中只使用A和B的名稱。數(shù)據(jù)為1時,信號B會比信號A要高。不過因為標(biāo)準(zhǔn)其中也提到信號A是“非反向信號”,信號B是“反向信號”。因此信號A、B的定義就更容易混淆了,許多組件制造商(錯誤的)依循了這個A/B的命名原則,所以具體定義需要實際參考設(shè)計廠家芯片手冊。
為了不引起分歧,一種常用的命名方式是:
TX+ / RX+ 或D+來代替B(信號1時為高電平)
TX- / RX- 或D-來代替A(信號0時為低電平)
下圖列出在RS-485利用“異步開始-停止”方式發(fā)送一個字符(0xD3,最低比特先發(fā)送)時,U+端子及 U?端子上的電壓變化。
如果發(fā)射器輸入端收到邏輯高電平(DI=1),則線路A電壓高于線路B(VOA>VOB);
如果發(fā)射器輸入端接收到邏輯低電平(DI=0),則線路B電壓高于線路A(VOB>VOA)。
如果接收器的輸入端線路A電壓高于線路B(VIA-VIB>200mV),則接收器輸出為邏輯高電平(RO=1);
如果接收器的輸入端線路B電壓高于線路A(VIB-VIA>200mV),則接收器輸出邏輯低電平(RO=0)。
符合RS-485標(biāo)準(zhǔn)的驅(qū)動器能夠提供不小于1.5V的差分輸出(在54Ω負(fù)載下),符合RS-485標(biāo)準(zhǔn)的接收器能檢測小到200mV的差分信號輸入。即便是在線纜和連接器嚴(yán)重降級的情況下,這兩個值仍能為高可靠性的數(shù)據(jù)傳輸提供充足的余量。
單位負(fù)載(UL)
RS-485總線上的驅(qū)動器和接收器最大數(shù)量取決于它們的負(fù)載特性。驅(qū)動器和接收器的負(fù)載都是相對單位負(fù)載而衡量的。485標(biāo)準(zhǔn)規(guī)定一根傳輸總線上最多可以掛接32個單位負(fù)載。
單位負(fù)載定義為:在12V共模電壓環(huán)境中,允許通過穩(wěn)態(tài)負(fù)載1mA電流,或者是在-7V共模電壓環(huán)境中,允許通過穩(wěn)態(tài)負(fù)載0.8mA電流。將接收器輸入阻抗看作12 k?并給收發(fā)器1mA電流,這可以代表一個單位負(fù)載。部分RS-485接收器額定具有1/4或1/8UL,意味著可以掛載多數(shù)量的連接器。有關(guān)UL和接收器輸入阻抗對應(yīng)關(guān)系如下圖所示:
工作模式
總線接口可以設(shè)計為如下兩種方式:
半雙工(Half-Duplex)RS-485
全雙工(Full-Duplex)RS-485
關(guān)于多個半雙工總線配置如下圖所示,一次只能在一個方向傳輸數(shù)據(jù)。
關(guān)于全雙工總線配置如下圖所示,允許主從節(jié)點(diǎn)之間雙向同時通信。
總線終端和分支長度
為避免信號反射,當(dāng)線纜長度很長時數(shù)據(jù)傳輸線必須有終點(diǎn),并且分支長度盡可能的短。正確的終端需要終端電阻RT匹配,其值為傳輸線的特性阻抗Z0。RS-485標(biāo)準(zhǔn)建議線纜的Z0=120Ω。電纜干線通常終端匹配120Ω的電阻,線纜的末尾處各一個。見下圖示意:
分支的電氣長度(收發(fā)器和電纜干線的導(dǎo)線距離)應(yīng)小于驅(qū)動器上升沿時間的十分之一:
LStub ≤ tr * v * c/10
LStub= 最大分支長度(單位英尺)
tr= 驅(qū)動器(10/90)上升沿時間(單位ns)
v = 信號在電纜上傳輸?shù)乃俾氏鄬τ诠馑俚谋嚷?br />
c = 光速(9.8*10^8ft/s)
太長的分支長度會導(dǎo)致信號發(fā)射反射影響阻抗,下圖是長分支長度與短分支長度波形對比
數(shù)據(jù)速率和電纜長度
使用高數(shù)據(jù)速率時,只能使用較短線纜。使用低數(shù)據(jù)速率時,可以使用較長的線纜。對應(yīng)低速率應(yīng)用,電纜的直流電阻通過在電纜壓降增加了噪聲裕量,限制了電纜長度。使用高速率應(yīng)用時,電纜的交流效應(yīng)限制了信號質(zhì)量,限制電纜長度。下圖提供了較為保守的電纜長度和數(shù)據(jù)速率變化曲線。
故障安全(Fail-Safe)
總線空閑期間,沒有器件驅(qū)動總線,接收器輸出處于未定義狀態(tài)。這會導(dǎo)致UART上接收到隨機(jī)數(shù)據(jù),進(jìn)而影響無效起始位或幀錯誤。為了解決該問題,可以在總線上放置上拉下拉電阻進(jìn)行偏置,具體上下拉電阻大小選擇后面會講到,如下圖所示:
R1和R2計算如下(假設(shè)RT=120Ω):
R1=R2=R
VIA-VIB ≥ 200mV
VIA-VIB = RT*VCC / (2R+RT) = 200mV
if VCC = 5V,then R = 1440Ω
if VCC = 3V,then R = 960Ω
如果R值有較低值(VIA-VIB>200mV),系統(tǒng)有更大的噪聲裕量。當(dāng)然上下拉電阻會導(dǎo)致DC電流偏置,增加Tx負(fù)載,使得節(jié)點(diǎn)數(shù)量減少。有關(guān)總線狀態(tài)和差分輸入電壓圖形如下圖所示:
真故障安全接收器(Ture Fail-Safe Receivers)
新一代RS-485接收器經(jīng)過改進(jìn),使差分輸入閾值電壓從±200mV調(diào)整至-200mV和-30mV,這樣就可以省去使用上下拉電阻。在總線空閑期間,VIA-VIB=0(大于-30mV)導(dǎo)致接收器輸出處于高電平(RO=1),處于確定狀態(tài)。
隔離
RS-485通常使用較長鏈路,這會引起總線上不同節(jié)點(diǎn)的地電平略有不同,當(dāng)有較大地電勢差時會以共模干擾的形式疊加到傳輸線上。如果疊加的干擾信號超出接收器輸入共模范圍,依靠本地接地作為電流回路是很危險的,最好的解決方式是使用信號和電源隔離來實現(xiàn)健壯的長距離傳輸,下圖是ADI ADM2485隔離RS-485芯片連線示意圖:
ESD保護(hù)
在工業(yè)應(yīng)用中,雷擊、電源波動、靜電放電會產(chǎn)生較大的瞬變電壓對RS-485收發(fā)器造成損害。以下ESD保護(hù)、EFT保護(hù)和浪涌保護(hù)技術(shù)規(guī)范適用于RS-485應(yīng)用:
IEC 61000-4-2 ESD protection
IEC 61000-4-4 EFT protection
IEC 61000-4-5 surge protection
使用外部鉗位器件(比如TVS二極管),保護(hù)程度可進(jìn)一步提升。在RS-485應(yīng)用中,TVS是將總線上的電壓鉗位到RS-485收發(fā)器的共模電壓范圍(-7–12V)。一些TVS器件專門為RS-485Y應(yīng)用設(shè)計。對于更高的電源瞬變,可在受保護(hù)器件與輸入引腳之間增加電阻RS(10-20Ω)來加強(qiáng)保護(hù)。
上面的文章提到了使用上下拉電阻來解決故障安全問題,保證在總線空閑時期不會出現(xiàn)無效起始位等影響,下面的文章介紹上下拉電阻的阻值大小該如何取值。下面分兩個網(wǎng)絡(luò)來介紹。
單故障安全偏置網(wǎng)絡(luò)設(shè)計(Sigle Fail-Safe Biasing Network Design)
下圖是上圖的等效集總電路,上下拉偏置電阻是
連接到總線所有收發(fā)器的等效輸入電阻。下面開始計算這種情況下電阻取值選擇。
雙故障安全偏置網(wǎng)絡(luò)設(shè)計(Dual Fail-Safe Biasing Network Design)
為了在較長電纜長度上保持足夠,需要在兩端添加偏置網(wǎng)絡(luò)。電路如下圖所示:
單故障安全偏置網(wǎng)絡(luò):
雙故障安全偏置網(wǎng)絡(luò):
版權(quán)聲明:本文為CSDN博主「sternlycore」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/sternlycore/article/details/86493191
審核編輯 :李倩
-
通信協(xié)議
+關(guān)注
關(guān)注
28文章
840瀏覽量
40216 -
RS485
+關(guān)注
關(guān)注
39文章
1135瀏覽量
82073
原文標(biāo)題:詳解RS485通信協(xié)議
文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論