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

如何構建RS485通信網絡 RS485串口助手的使用與配置
RS485通信模塊的編程與調試
RS485與Modbus協議的結合應用
RS485通信協議的應用與優勢
低功耗4G模組Air780E:RS485通信篇

評論