序列程式設計/RS-485
所有書架 > 科學書架 > 計算機科學書架 > 序列通訊書架 > RS-485 技術手冊
ANSI/TIA/EIA-485,通常稱為 RS-485,是一個定義兩線多點通訊網路物理層的標準。這個標準是 EIA 標準中最容易被誤解的標準之一。許多工程師在 RS-485 應用上工作過,他們認為他們的應用工作正常,就完全理解了這個標準。然而,很少有工程師真正看過這個標準,更別說讀過它了。
RS-232、RS-422 和 RS-485 標準並非完整的通訊協議,而是旨在與其他標準一起使用的電氣層標準。這些其他標準提供了兩種裝置傳輸資訊所需的協議和其他要求。僅僅因為一種協議與 RS-232 或 RS-485 的特定實現一起使用,並不意味著它是標準的一部分。
RS-485 標準範圍的直接引用
- “本標準未指定其他特性,例如訊號質量、時序、協議、引腳分配、電源電壓、工作溫度範圍等,這些特性對於互連裝置的正常執行至關重要。”
RS-485 標準指出它不包含協議,但普遍認為 RS-485 標準包括非同步起停通訊位協議(UART 位協議,通常與“RS-232”序列埠一起使用)、“標準”聯結器等。
本附錄將嘗試解釋 RS-232、RS-422 和 RS-485 是什麼以及不是什麼;然後討論 RS-422 和 RS-485 的一種更常見的實現方式,非同步起停 ASCII 與 UART 的通訊。
美國電子工業聯盟 (EIA) 曾經在其所有標準中都使用“RS”作為字首 (Recommended Standard),但 EIA-TIA 正式將“RS”替換為“EIA/TIA”以幫助識別其標準的來源[1](從 198 年開始?[需要引用])。EIA 已正式解散,這些標準現在由 TIA 維護。RS-485 標準已過時,已被 TIA-485 取代,但許多(如果不是大多數)工程師和應用指南仍然使用 RS 標識,即使它已經正式更改了。
由於 EIA 被 ANSI 授權在其領域幫助制定標準,這些標準可以被描述為 ANSI 標準,例如 ANSI/TIA/EIA-485
標題:用於平衡多點系統中的發射器和接收器的電氣特性
[注意:以下資訊被認為是正確的,但需要驗證]
開發人員:美國電子工業聯盟 (EIA)。工業電子協會。
RS-485A (Recommended Standard 485 Edition: A) 1983 年。
EIA 485-A 1986 年
TIA/EIA 485-A 1998 年 [批准日期:1998 年 3 月 3 日]
TIA/EIA 485-A 2003 年 [重新確認日期:2003 年 3 月 28 日]
基於 RS-485 標準的國際和國家標準
ISO/IEC 8482 (第二版 1993-12-15,現行)
ISO 8284 (1987 年,已過時)
ITU-T v.11 (1996 年,現行)
ITU-T v.11 (1993 年,已過時)
CCITT v.11 (1988 年,已過時)
IHS 標準商店已將所有 232 標準重新標記為 TIA-232。每個版本的實際標準名稱尚不清楚。[需要幫助 (已驗證版本 E)]
根據 IHS 標準商店[2],RS-232 的歷史如下
RS-232?
- 修訂版 - 1960 年版
- 釋出日期 - 1960 年 5 月 1 日
- 標題 - 資料終端裝置與通訊通道的互連
- 頁數 - 8 頁
- 目的和範圍 - 本標準旨在提供一種方法,用於在資料終端裝置和資料通訊通道分別由不同公司提供時互連這些裝置。它定義了一種在資料終端裝置和資料通訊通道之間交換控制訊號和二進位制序列資料訊號的方法,在交換點的情況下。
RS-232?
- 修訂版 - 修訂版 A
- 釋出日期 - 1963 年 10 月 1 日
- 標題 - 資料處理終端裝置與資料通訊裝置之間的介面
- 頁數 - 12 頁
- 目的和範圍 - 本標準適用於資料處理終端裝置和資料通訊裝置的互連。它定義了一種在資料處理終端裝置和資料通訊裝置之間交換控制訊號和二進位制序列資料訊號的方法,在每個裝置分別由不同公司提供的情況下尤為重要。
RS-232?
- 修訂版 - 修訂版 B
- 釋出日期 - 1965 年 10 月 1 日
- 標題 - 資料處理終端裝置與資料通訊裝置之間的介面
- 頁數 - 12 頁
- 目的和範圍 - 本標準適用於資料處理終端裝置和資料通訊裝置的互連。它定義了一種在資料處理終端裝置和資料通訊裝置之間交換控制訊號和二進位制序列資料訊號的方法,在每個裝置分別由不同公司提供的情況下尤為重要。
RS-232?
- 修訂 - C 修訂版
- 釋出日期 - 1969 年 8 月 1 日
- 標題 - 使用序列二進位制資料交換的資料終端裝置和資料通訊裝置之間的介面
- 頁數 - 34
- 目的和範圍 - 本標準適用於使用序列二進位制資料交換的資料終端裝置 (DTE) 和資料通訊裝置 (DCE) 的互連。它定義了
???-232?
- 修訂 - D 修訂版
- 釋出日期 - 1986 年 11 月 12 日
- 標題 - 使用序列二進位制資料交換的資料終端裝置和資料電路終端裝置之間的介面
- 頁數 - 53
- 目的和範圍 - 本標準適用於使用序列二進位制資料交換的資料終端裝置 (DTE) 和資料電路終端裝置 (DCE) 的互連。它定義了
ANSI/EIA/TIA-232-E-1991
- 修訂 - E 修訂版
- 釋出日期 - 1991 年 1 月 1 日
- 標題 - 使用序列二進位制資料交換的資料終端裝置和資料電路終端裝置之間的介面
- 頁數 - 43
- 目的和範圍 - 本標準適用於使用序列二進位制資料交換的資料終端裝置 (DTE) 和資料電路終端裝置 (DCE) 的互連。它定義了
ANSI/EIA/TIA-232-F?
- 修訂 - F 修訂版
- 釋出日期 - 1997 年 10 月 1 日
- 標題 - 使用序列二進位制資料交換的資料終端裝置和資料電路終端裝置之間的介面
- 頁數 - 47
- 目的和範圍 - 不可用
ANSI/EIA/TIA-232-F?
- 修訂 - F 修訂版
- 釋出日期 - 1997 年 10 月 1 日
- 標題 - 使用序列二進位制資料交換的資料終端裝置和資料電路終端裝置之間的介面(包括所有修正案和更改,直至 2002 年 10 月 11 日的確認通知)
- 頁數 - 51
- 目的和範圍 - 不可用
TIA-232-F?
- 修訂 - F 修訂版
- 釋出日期 - 1997 年 10 月 1 日
- 標題 - 使用序列二進位制資料交換的資料終端裝置和資料電路終端裝置之間的介面(包括所有修正案和更改,直至 2012 年 12 月 7 日的確認通知)
- 頁數 - 54
- 目的和範圍 - 不可用
[存根]
本文件主要針對 RS-485 的討論,但也包含有關 RS-232 和 RS-422 的資訊。
從標準中直接引用的內容將顯示"在固定寬度字型中的引號內"
所有三個標準都有附錄。這些附錄明確宣告它們不是標準的一部分,僅供參考(提供資訊)之用。本文件中討論了這些附錄,但應該清楚的是,即使它們包含在標準中,它們也不是標準的一部分。
許多引用和示例都提到了“與 UART 非同步起停通訊”或“UART”通訊。這是通常與序列埠相關的 7 位或 8 位協議。之所以這樣,是因為該協議是序列通訊中使用的非常常見的位格式。這並不意味著該協議是標準的一部分,也不意味著只有該協議才能與 232/422/485 標準一起使用。
術語網路用於定義線纜、端接、偏置網路和所有連線的裝置組成的整體系統。
在 80 年代初,IBM 推出了 IBM PC。這臺電腦的功能有限,鍵盤和顯示器是主要的外設。可以使用插入 ISA 擴充套件槽之一的卡新增序列埠。這種型別的埠需要將資料從印表機、調變解調器或在極少數情況下從滑鼠傳輸到印表機、調變解調器或滑鼠。序列埠使用 D-sub、B-shell、25 針聯結器(通常稱為 DB-25)和 RS-232 電氣訊號電平,這使得它“與 RS-232 相容”或與 RS-232 標準相容。術語“與 RS-232 相容的序列埠”通常縮寫為“RS-232 埠”。
原始 PC 升級了硬碟驅動器,變成了 PC/XT。後來它再次升級到 80286 處理器和 16 位 EISA 匯流排,變成了 PC/AT。當 IBM 推出 PC/AT 時,他們還改變了序列埠聯結器的物理格式,改為了 D-sub、E-shell、9 針聯結器(DE-9,通常被錯誤地稱為 DB-9)。當 IBM 更改為新的聯結器時,他們還更改了電氣訊號電平。新的 IBM PC/AT 序列埠不再使用 RS-232 25 針聯結器或訊號電平,但 IBM 確保了新的序列埠的電氣電平仍可與現有的序列埠外設一起使用,只需要一個 9 針到 25 針的介面卡。9 針聯結器和電氣電平最終在 EIA/TIA-574 中記錄。這個序列埠不再是“與 RS-232 相容”的序列埠,因為聯結器和訊號電平不再與 RS-232 標準匹配。但是,由於現有的與 RS-232 相容的外設仍可與之一起使用,因此它仍然經常被稱為“RS-232 埠”。
原始的“與 RS-232 相容”序列埠使用 UART 來驅動 RS-232 電氣訊號電平,許多人開始相信 UART 協議是 RS-232 標準的一部分。雖然這是不正確的,但直到今天,許多人仍然認為 RS-232 標準包括波特率和 IBM 序列埠中使用的位流協議。
大約在這個時候,OSI 模型 誕生了。RS-232 標準位於 OSI 模型的第一層,即物理層。物理層可能包括聯結器、線纜和電氣電平,但不包括 UART 的位和幀協議。位和幀協議位於 OSI 模型的第二層。
RS-232 標準不包括線路長度限制,但電氣訊號電平的實際限制會阻止過長的線路。RS-485 標準要求使用差分訊號方案,該方案可以在比 RS-232 更長的線路長度上執行。將 RS-232 電氣電平轉換為 RS-485 電平的轉換器被開發出來,允許序列埠在比 RS-232 電平允許的距離更遠的距離上傳輸資料。同樣,許多人認為序列埠中使用的 UART 協議是 RS-485 標準的一部分,但 RS-485 標準包含的 OSI 模型第一層內容比 RS-232 更少。聯結器位於 OSI 模型的第一層,而 RS-232 包括聯結器。RS-485 不包括任何聯結器。這兩個標準都不包括 OSI 模型第二層,該層包含位幀協議。
總之,EIA/TIA 標準(通常被錯誤地稱為 RS 標準)是物理層,包括電氣訊號電平,而 RS-232 包括聯結器。OSI 模型的第二層包含位和幀協議,它超出了這些 EIA/TIA 標準。
RS-232 標準的標題是"使用序列二進位制資料交換的資料終端裝置和資料電路終端裝置之間的介面". 本標準適用於 25 針 DB-25 聯結器上的最多 21 個電路。電路是訊號從發射裝置到接收裝置的完整定義,但許多人現在將這些定義視為引腳標籤。所有介面型別都需要一個電路(訊號公共)。RS-232 定義了 13 種“標準”介面型別,從 A 到 M。這些型別都不匹配 IBM 對其序列埠的實現。第十四種介面型別 Z 用於 A 到 M 型別未涵蓋的應用。Z 介面型別上的所有電路(除了訊號公共)都是可選的,由供應商指定。

除了 21 個電路外,遮蔽層可以連線到引腳 1,引腳 9 和 10 是"保留用於測試",引腳 11 是"未分配". 這定義了聯結器的所有 25 個引腳。
RS232 標準的一個有趣之處在於,序列資料從資料終端裝置 [DTE] 傳輸到資料電路終端裝置 [DCE],位於引腳 2,並且該引腳被定義為兩端的“傳輸資料”。RS-232 只定義了 DTE 到 DCE 的連線,因此,當兩臺電腦相互連線時,這超出了標準的範圍。
許多人認為 RS-232 標準完全定義了 IBM PC 序列埠,但這是不正確的。IBM PC 序列埠僅部分由 RS-232 標準描述。一個常見的錯誤假設是 RS-232 標準定義了非同步透過 UART 傳輸的資料的位協議。在配置 IBM PC 的序列埠時,必須設定奇偶校驗、資料位數和停止位數;因此,許多人認為這必須是 RS-232 標準的一部分。但是,RS-232 標準允許同步通訊,這與 IBM PC 序列埠不相容,也允許非同步通訊,這可以相容。不可否認,IBM 為其序列埠實現選擇的 UART 被許多人認為是the 對 RS-232 的定義,但這些部分不在 RS-232 標準中。
另一個誤解 RS-232 標準的例子是 9 針聯結器。RS-232 規定了兩種聯結器,一個 25 針 (DB-25) 和一個備用 26 針聯結器(第 26 針是"無連線")。用於 IBM PC-AT 序列埠的 9 針“RS-232”聯結器未在 RS-232 中指定。EIA/TIA-574 是 9 針聯結器的標準,而 EIA/TIA-561 是通常與序列埠一起使用的 8 針聯結器的標準。
RS-232 標準定義了 DB-25 和 26 針備用聯結器,聯結器中每個引腳的功能(稱為電路)以及“電路”上訊號的電氣特性。例如,其中一個電路是“AB”。AB 電路位於第 7 針上,被稱為“訊號共用”。這是一種比較複雜的說法,意思是 DB-25 聯結器的第 7 針用作訊號共用。兩個電路用於傳輸和接收序列資料,電路“BA”(TX 資料在第 2 針上)和“BB”(RX 資料在第 3 針上)。許多電路用於握手和其他功能。RS-232 標準包含輔助序列資料電路(輔助 TX 資料和輔助 RX 資料)、三個時鐘(用於同步序列資料傳輸的定時元件)、訊號質量檢測器等等。顯然,並非所有這些電路或訊號都包含在 IBM 的實現中(很少有實現使用輔助資料線或許多其他電路)。RS-232 提供了一個電路列表,並指出如果您使用了一個電路,這就是它必須做的事情,它必須位於聯結器的這個引腳上。
RS-232 定義了這些電路的電壓,以及產生電壓的邏輯極性。當傳輸二進位制 0 時(即 UART 傳輸零時),TX 資料電路上的電壓比 +3V 更正,而當傳輸二進位制 1 時,電壓必須比 -3V 更負。標準沒有定義 -3V 和 +3V 之間的電壓。標準中還有其他電氣特性,但你應該明白 RS-232 指定了聯結器、訊號和電氣特性。它沒有指定位協議。
RS-232 允許同時使用傳送和接收電路。如果同時實現了這兩個電路,則連線為全雙工。如果只實現了一個電路,則連線為單工或單向。存在半雙工 RS-232 實現,但它們需要全雙工網路所需的所有硬體和電線。半雙工 RS-232 通常受兩個最遠端之間的附加通訊裝置限制。例如:兩臺計算機透過較舊的調變解調器相互通訊。調變解調器可能限於半雙工通訊,因此兩臺計算機之間的鏈路為半雙工。但是,從計算機到調變解調器的 RS-232 連線仍然是全雙工。一些 RS-232 埠為半雙工的其他原因:一些非常老的 UART 可能是半雙工的,限制了系統,而一些非常老的計算機直接從處理器驅動 RS-232 驅動器,沒有 UART。這些古老且速度慢的微處理器並不總是具備監控進出位定時所需的處理能力,限制了系統為半雙工。
連線到 RS-232 驅動器/接收器的 UART 控制著被傳輸位的協議。此協議可能包括諸如起始位、資料位數、奇偶校驗和停止位(s)之類的資訊。同樣,此協議不是 RS-232 標準的一部分,即使許多工程師認為此協議是“RS-232”。
RS-422
[edit | edit source]的 RS-422 標準標題是"平衡電壓數字介面電路的電氣特性"。此標準規定了一對線上單個發射器和最多十個接收器的電氣特性。RS-422 不指定線上訊號的功能,因此訊號可以是資料、時鐘、握手等。
RS-422 指定了一對線上單個發射器到一個或多個接收器的電氣電平。典型的 UART 與 RS-422 裝置的通訊使用兩對平衡線上發射器和接收器,共計四根線。其他標準,如 EIA-530,引用 RS-422 作為電氣訊號電平,並在多對線上包含多個訊號。EIA-530 訊號包括傳輸、接收、握手和時鐘,它們需要所有 25 根線。並非所有 EIA-530 訊號都使用 RS-422 電平。

當使用兩對線進行全雙工通訊時,一對用於介面生成器(驅動器)與 RS-422 網路上的其他裝置通訊,而第二對用於介面接收器用於監聽網路上的其他裝置(不是裝置,因為此對線上只能有一個驅動器)。RS-422 包含當 RS-422 線路上為二進位制 0 或 1 時兩根線的電壓電平,但明確排除了生成器或接收器的邏輯功能。RS-422 指定了許多其他事項,但它們都是電氣值。任何來自 UART 的位協議都明確地不包括在內。RS-422 本質上是每對線上的單工。當使用兩對線組成的網路時,如上圖所示,該網路為全雙工。即 RS-422 網路上的兩個裝置可以同時互相通訊。RS-422 允許每對線上有多個接收器,但只有一個驅動器。這意味著,在主從配置中,主裝置可以與多個從裝置通訊,但只有一個從裝置可以與主裝置通訊。這將大多數 RS-422 雙向網路限制為兩個互相通訊的裝置。
RS-422 沒有指定任何聯結器。EIA-530 和 EIA-449 是指定聯結器、引腳分配和 RS-422 電氣電平的標準。
由於驅動器和接收器是差分電路,因此輸入和輸出電壓指定為差分,但這些電壓也參考電路共用。有關此“額外線”的討論,請參見關於 接地 的部分。
RS-485
[edit | edit source]的 RS-485 標準標題是"用於平衡數字多點系統的生成器和接收器的電氣特性"。此標準適用於單個平衡線對的網路。

網路上所有裝置的生成器(驅動器)和接收器都連線到這兩根線上。第三種介面定義為收發器,它既有生成器又有接收器。所有驅動器和收發器必須能夠"被動化"或有效地從網路斷開連線,以允許其他驅動器進行傳輸。RS-485 標準包含當兩根 RS-485 線路上為二進位制 0 或 1 時兩根線的電壓電平,但明確排除了生成器或接收器的邏輯功能。RS-485 指定了許多其他事項,但它們都是電氣值。任何來自 UART 的位協議都明確地不包括在內。RS-485 本質上是半雙工。即一次只有一個裝置可以與 RS-485 網路上的其他裝置通訊。RS-485 允許兩根線上有多個裝置。這意味著,在主從配置中,主裝置可以與多個從裝置通訊,所有從裝置都可以與主裝置通訊,並且網路上的每個裝置都可以聽到其他每個裝置。實現這一點需要更高層次的定址方案,以便傳輸的資料到達正確的裝置。RS-485 沒有指定任何協議、定址方案或聯結器。
由於驅動器和接收器是差分電路,因此輸入和輸出電壓指定為差分,但這些電壓也參考電路共用。有關此“額外線”的討論,請參見關於接地的部分。
請注意,RS-485 網路是一對線,但 RS-485 標準中沒有任何內容阻止每個裝置使用多個 RS-485 網路。一個 RS-485 網路可用於主裝置與網路上的所有從裝置通訊,而另一個 RS-485 網路可用於所有從裝置與主裝置通訊。這種兩個 RS-485 網路的特定實現通常被稱為 4 線或全雙工 RS-485。這種實現非常類似於 4 線 RS-422 網路。最顯著的差異是,多個從裝置可以與主裝置通訊。另一個兩個 RS-485 網路的實現是 BitBus,它使用其中一個 RS-485 網路進行雙向 SDLC 資料通訊(與 UART 的非同步起始-停止通訊完全不同),以及第二個可選的 RS-485 網路用於 RTS(如果使用中繼器,則用於方向控制)。
RS-485 中沒有碰撞檢測。如果多個裝置同時開始通訊,資料可能會損壞。RS-485 沒有定義裝置檢測其傳輸的資料是否已損壞的方法。這意味著通常使用更高層次的協議來驗證資料是否已傳送。一個簡單的例子是查詢/響應協議。主裝置向從裝置請求資料。從裝置響應請求,為主裝置提供資訊。如果主裝置沒有收到請求的資訊,它會再次請求資訊。如果查詢或響應因碰撞或其他錯誤機制而丟失,資料最終將被重新傳輸。可以使用其他錯誤檢測機制。可以在傳輸資料的末尾新增 CRC 或校驗和。可以將驗證已收到有效資料的接收響應傳送回主裝置。這些協議都不是 RS-485 標準的一部分,實現由編寫軟體的工程師決定。
物理層
[edit | edit source]線
[edit | edit source]RS-232
[edit | edit source]RS-232 有一個要求
- 最大電路電容為 2500pF
它的附錄還指出"為了確保在互連電纜上的正常執行,每個導體的直流電阻不應超過 25 Ω。"任何符合電容要求的電纜都可以使用。對於長電纜,可能需要使用更粗的線纜以降低電阻。遮蔽電纜會增加導線之間的電容並縮短總電纜長度。
RS-422 和 RS-485 只有一個要求
- "平衡互連介質" - "互連電纜的特性未指定。"
然後這兩個標準都繼續說明電纜應該具備的特性或功能。
- "應該採用具有金屬導體的雙絞線。"[是的,這兩個標準都明確要求電線應由金屬製成]
- 電纜的效能應該適用於應用程式。 - "保持特定應用程式所需的必要訊號質量"
- 可以使用遮蔽電纜。(僅限 RS-422 - RS-485 附錄說明可能需要遮蔽電纜來防止 RFI/EMI 或其他目的,但標準中沒有提到遮蔽字樣)
- 120 Ω 標稱。(僅限 RS-485)
- 可以使用其他阻抗電纜,例如 100 Ω 標稱。(僅限 RS-485)
請注意,RS-422/485 標準要求使用“平衡互連介質”,而不是雙絞線。實際上,長線路唯一可行的選擇是雙絞線,但標準並不強制要求。
RS-485 引用了針對 TIA/EIA-485-A 的 TSB-89 應用指南。TSB-89 討論了線纜型別和影響,但 TSB-89 還指出 "設計人員應透過實證方法確定介質在這方面的效能。""

RS-485 通常只有一對線纜,發射器和接收器都連線到這兩根線纜上。資料以差分方式透過線纜傳輸,或者說當一根線纜為高電平時,另一根線纜為低電平,反之亦然。在 RS-485 標準中,一根線纜標記為“A”,另一根線纜標記為“B”,這兩根線纜互相纏繞在一起(形成“雙絞線”)。這使得 RS-485 能夠比 RS-232 在更長的距離上傳輸資料。由於極性的混淆,一些商業裝置製造商將線纜連線標記為“+”和“-”,TX(+) 和 TX(-) 等。有關更多資訊,請參閱 [令人頭疼的] 極性 部分。
RS-485 標準中的圖 1 是一個圖表(由於版權問題未顯示),該圖表顯示了"平衡互連電纜"作為一個有兩根導線的傳輸線。在此圖中,驅動器有兩條引線,並透過一個短接連線到“A”和“B”點的傳輸線上。驅動器上顯示的第三個點標記為“C”,被標註為公共點,但沒有顯示連線到任何導線上。此圖中還有兩個其他裝置(接收器和收發器)以相同的方式連線到傳輸線上。附錄中的另一個圖表(同樣,附錄不被視為標準的一部分)討論了連線"電源系統的地線" 或 "保護地或機架地" 到 "電路公共點或電路地"和"訊號公共點"。附錄說明該連線可以直連或透過一個 100 Ω 電阻連線。這個“第三條導線”不是標準的正式部分,在 接地和接地 部分中進行了進一步討論。
RS-422 和 RS-485 之間的主要區別在於,RS-485 要求使用一對兩根導線,所有裝置發射器和接收器都連線到這兩根導線上,而 RS-422 通常使用兩對或多對導線,其中只有一對發射器和最多十個接收器連線到同一對導線上。然而,在許多其他方面,規範都是不同的。附錄也不同。RS-422 的附錄有一個使用 24 AWG 銅 UTP 電話線纜的經驗資料圖表。POTS 電話線的阻抗不如 CAT 線纜控制得好,在較低音訊頻率下可能在 600 Ω 左右,而在較高頻率下可能低於 100 Ω。
最終,使用的電纜需要適用於應用程式的實際使用環境。電纜的長度、阻抗、終端、短接長度和資料速率都會影響訊號質量。120 Ω 電纜應該能提供最佳效能,但你手頭可能有的 100 Ω CAT-X 電纜也可能有效。甚至 POTS 電話線纜也可能適用於許多應用程式。如果長度足夠短,位元率足夠低,完全不平衡的鬆散導線也能正常工作。當將線路長度和/或資料速率推到最大限度時,低電容電纜就變得很重要。
RS-232 清楚地表明,它旨在用於最大位元率為 20kbit/s。該標準建議使用 EIA/TIA-530、EIA/TIA-561 和 EIA/TIA-574 在更高的位元率下執行。第 1.3 節“資料訊號速率”指出:此標準適用於最高標稱極限為 20,000 位元每秒的應用。第 2.1.4 節討論了過渡時間佔單位間隔(位元時間)的百分比,其中單位間隔介於 25mS 和 50uS 之間。該單位間隔範圍對應於 40bit/s 到 20kbit/s。
第 3.2 節明確指出"電纜的最大長度未定義"。然後它引用了第 2.1.4 節,其中介面點接收器端的最大電容(包括電纜)不應超過 2500pF。然後建議參考附錄 A 以獲取指導(同樣,附錄指出它不是標準的正式部分)。附錄討論了電纜的電容和電阻,然後給出了一個示例計算,其中電纜每英尺的電容(30pF/英尺)乘以電纜的長度,加上接收器的電容(100pF),得出最大電纜長度為 80 英尺。嘗試找到所用電纜的電容(單位為 pF/英尺),並用 2500 除以該值。這應該能給出該電纜以英尺為單位的大致限制。如果你將電纜長度保持在該限制的 70% 或 80%,你應該期望網路能夠正常工作 **使用真正的 RS-232 驅動器和接收器**。
如果你正在嘗試使用兩臺古老的裝置(這兩臺裝置都使用真正的 RS-232 驅動器和接收器)透過長電纜進行通訊,那麼 RS-232 中的電容限制可能適用,但 RS-232 沒有考慮位元率。如果它們無法通訊,降低位元率可能會使這兩個裝置一起正常執行。
實際上,驅動器或接收器(或兩者)都將滿足更現代的 RS-574 要求,並且 RS-232 的限制將不再適用。在這種情況下,確定電纜長度的最佳方法是嘗試一下。將一根電纜連線到兩個裝置之間,看看它們是否能互相通訊。如果不能,嘗試降低位元率。如果降低位元率不是一種選擇,那麼你可以嘗試在兩端使用 RS-232 到 RS-485 轉換器。如果你需要在拉線之前確定它是否能正常工作,那麼就獲取所需的電纜長度,將兩個裝置移動到彼此旁邊,將它們連線起來,看看它們是否能互相通訊。這些標準中多次提到了“實證方法確定”。實證方法確定意味著嘗試一下,看看它是否能正常工作。
有很多民間傳說稱 RS-232 的限制是 50 或 100 英尺。實際上,如果你使用的是相對現代的裝置(比如 1990 年或之後)並且使用低波特率,那麼線路長度可以達到 1,000 英尺(300 m)或更長。[3]
圍繞 RS-485 的線路長度和資料速率限制所產生的傳說和民間傳說,以及完全錯誤的資訊,令人歎為觀止。文章、應用說明,甚至半導體制造商的資料手冊都討論了 RS-485 中的資料速率和線路長度限制。遺憾的是,這些限制都沒有出現在 RS-485 標準中。

(此圖表不在 RS-485 中)
右側的圖表通常出現在這些應用說明中,它顯示了 1200 米/直流電的一端和 14 米/10 兆位元的另一端。此圖表不在 RS-485 中。此圖表來自 RS-422 的附錄 A。(同樣,附錄明確指出它不是標準的一部分)更糟糕的是,附錄 A 指出,該圖表是根據 24AWG 電話線纜(POTS)的經驗資料得出的保守指南。附錄討論了這樣一個事實,即許多應用程式可以處理更大的幅度和時序失真,以及實踐經驗表明,在較低資料速率下,電纜長度可以擴充套件到幾公里。RS-422 附錄 A 中的圖表不是絕對限制,而是對使用廉價電話線纜始終可以實現的效能的指導。
RS-485 的資訊更少。RS-485 的前言引用了 TSB-89,其中包含資料訊號速率與電纜長度、短接長度等主題。RS-485 的附錄(不被視為標準的一部分)中也有一些資訊。RS-485 的附錄指出:"應考慮由於系統配置、資料訊號速率與電纜長度、短接長度以及接地佈置等問題而可能遇到的問題。"" "可以實現高資料訊號速率和長電纜長度,但它們是相互排斥的。高資料訊號速率應用程式應限於短電纜長度,而低資料訊號速率應用程式可以使用長電纜長度。""
低資料速率主要受限於電纜的直流電阻(如果使用終端電阻,電纜直流電阻的影響會更嚴重),而高資料速率則受限於電纜對訊號質量的交流影響。RS-485 或其附件中沒有關於電纜長度與資料速率關係的圖表。
RS-485 討論了它用於最高 10Mbit/S 的裝置,然後說它們不必限於 10Mbps。它還指出,“上限超出本標準的範圍".
所有聲稱 RS-485 限制在 1200 米或 10Mbit 的應用指南和資料表都是錯誤的。
需要注意的是,RS-422 *確實* 限制在 10Mb,並且滿足 RS-422 標準的裝置不必在整個範圍內執行。裝置可以設計為在較低的資料速率下執行,用於“經濟特定的應用".
話雖如此,實際的線路長度限制是多少?它取決於很多因素。資料速率通常是主要因素。由於大多數 RS-485 應用由 UART 驅動,資料速率通常低於 100kbit。在這種情況下,POTS 電話線應該可以用於相當長的線路。如果將資料速率推高到 100kbit 以上或線路長度超過 1000 米,您可能需要使用更好的電線等級。終端電阻對直流損耗有重大影響,因此具有較長電纜長度的網路可能會受益於將終端電阻調整到更高的值。許多電纜製造商可以推薦專為 RS-422 或 RS-485 工作而設計的 120 Ω 電纜。
你能有多快?Maxim 有一篇應用筆記稱,使用合適的驅動器可以實現 50Mbps[4] 的速度。(以及合適的電纜、端接、接收器等)Linear Technology 聲稱其 LTC1695[5] 可實現 52Mbps。
如果您的目的是將電纜長度或位元率推向極限,您應該仔細注意電纜、驅動器和安裝。與電纜製造商的交談可以幫助確定最適合您應用的可用電纜。除了使用最佳電纜外,還有許多不同的驅動器、接收器和收發器可用。它們並不能提供相同的效能。RS-485 標準要求最低效能,但許多驅動器超過了此效能,並且有些驅動器具有諸如斜率限制之類的怪癖。斜率限制會降低最大位元率,但會改善網路中訊號質量差的網路的訊號質量。當然,安裝可以決定網路效能的成敗。支線長度、端接和偏置電阻會對網路效能產生重大影響。較高值的終端電阻將減少與極端線路長度相關的直流損耗,從而允許以犧牲導線上的振鈴為代價,實現更長的線路長度。振鈴發生在資料轉換時,最終會衰減。這意味著低資料速率比高資料速率更能處理未正確端接(甚至未端接)的電纜。
對於非常長的線路長度,應該考慮改變技術。一公里 POTS 電纜的成本可能很高,兩公里則高出兩倍。加上拉線的成本,長網路的成本可能非常高。最終,將 RS-485 資料轉換為在現有網路上執行的閘道器的成本可能比執行一公里電纜的成本更低。
RS-485 將上升和下降時間的限制定為單位間隔的 0.3。這是上升/下降時間與位元寬度的比率。沒有給出時間單位的限制,因此與 RS-485 無關的最小或最大位元率。
接地和接地
[edit | edit source]RS-485 硬體的接地是另一個有爭議的問題。原因是不同的安裝具有不同的接地要求。沒有一種解決方案可以適用於所有安裝。
RS-485 裝置之間的接地通常被稱為“第三根線”。這篇 Chipkin 文章[6] 提供了一些關於這條“第三根線”的良好資訊,但請注意,在評論中,人們對何時需要這條線存在分歧。
RS-485 標準對接地幾乎沒有提及。該標準將共模電壓定義為參考地,它定義了一個術語“接地電位差” 作為驅動器和接收器之間訊號地之間的差異,但它沒有說明這是接地還是隻是一條公共的第三根線。它顯示了驅動器和接收器的示意圖,其中兩根線連線它們,第三點“C”被稱為共用點。沒有顯示任何連線驅動器和接收器之間第三點的線。然後,附件指出應考慮各種因素,包括接地佈置。附件的 A.4 節定義了兩種可選的接地佈置。第一種是將驅動器/接收器電路的訊號共用點連線到“保護地或框架地” 透過一個 100 Ω 電阻。此框架地顯示為連線到“電源系統的綠色線接地”,更常稱為接地。第二種可選的接地佈置是將電路共用點直接連線到框架地,不使用電阻。附件還說,某些應用可能會導致電阻失效,因此安裝必須允許進行檢查和更換。也就是說,電阻冒煙時,您應該能夠更換它。
由於附件承認安裝會導致元件發生物理損壞,因此接地是一個有爭議的主題也就不足為奇了。任何見過裝置冒煙的人,都可能對接地方式非常強烈。問題在於,特定的接地方法可能需要在一個安裝中才能正常執行,而在另一個安裝中卻會導致損壞。
RS-485 要求驅動器和接收器在共模電壓相對於電路共用點偏移時才能正常執行(有關更多資訊,請參見電壓部分)。如果電路共用點與接地真正隔離,那麼在毯子上摩擦您的腳(以拾取 ESD 電荷)並接觸導線會導致導線相對於接地電位偏移幾千伏。在實踐中,這種隔離非常少見。它將需要一個隔離的電源和光隔離的驅動器。或者幾臺筆記型電腦,使用電池供電並放置在絕緣表面上。
考慮三種不同的安裝。

第一個是臺式計算機與筆記型電腦通訊。桌上型電腦連線到接地,RS-485 埠參考接地。筆記型電腦使用電池供電,與接地沒有連線。對筆記型電腦的 ESD 衝擊會導致兩根 RS-485 導線相對於接地電位升高到幾千伏。這遠遠超過了 RS-485 允許的 +12V 和 -7V 電壓。如果桌上型電腦的埠具有 ESD 保護,則可能不會造成損壞,但不能保證。此安裝應有一根第三根線將桌上型電腦 PC 的接地/電路共用點連線到筆記型電腦的 RS-485 埠電路共用點。由於筆記型電腦沒有連線到接地,因此通常這條第三根線上幾乎沒有電流。

第二個安裝有兩臺桌上型電腦彼此非常靠近。兩臺 PC 的 RS-485 電路共用點連線到接地。由於兩臺 PC 彼此靠近,因此它們位於同一電源迴路,兩臺計算機之間的接地差很小。此安裝不需要第三根線,但包含一條第三根線不會造成傷害。

第三個安裝使用與第二個示例相同的兩臺計算機,但它們通過幾千英尺的電線隔開,其中一臺計算機位於一個電弧爐旁邊,該電弧爐在執行時會抽取幾千安培的電流。這兩臺計算機之間的接地電位差可能為數十伏甚至數百伏。此接地差可能高到足以損壞 RS-485 裝置,但將第三根線連線到它們的電路共用點/接地將試圖繞過電源接地共用點(這通常稱為接地迴路),從而在第三根線上產生過大的電流。電流可能會損壞導線或 RS-485 埠。此第三個示例適合使用隔離的 RS-485 收發器。隔離的收發器有 IC 封裝、模組和閘道器形式。
可以使用遮蔽電纜。遮蔽有時用於減少雙絞線中的 EMI,但會減少 RS-485 最大工作線路長度。RS-485 的附件指出,“使用遮蔽時,遮蔽應僅連線到一端或兩端的框架地,具體取決於特定應用。” 遮蔽通常比一根單線包含更多銅(和/或鋁),因此可以承載更多電流。一千英尺的 24 AWG 電線在 26Ω 範圍內。這有助於限制透過“第三根”線的電流。接地電位差 10V 僅會產生小於 0.4 安培的電流
遮蔽的電阻可能小於 1 Ω。使用遮蔽連線兩個接地可能會導致 10V 電位差下產生 10 安培以上的電流。當使用遮蔽作為第三根線時,請注意接地迴路。
電壓
[edit | edit source]RS-232
[edit | edit source]RS-232 通常有一根傳送線、一根接收線和一根訊號共用線。它也可能有一些流量控制訊號線。電壓是在訊號線上測量的,並參考訊號共用點。
驅動器必須輸出 5V 到 15V 的幅度電壓,負載為 3kΩ 到 7kΩ。當驅動器短路到電纜中的任何其他導體時,其輸出電流不得超過 100mA,且輸出電壓不得超過 25V。驅動器必須能夠處理開路或短路到電纜中的任何其他導體的情況。
接收器設計為在 3V 到 15V 的幅度電壓範圍內工作(即正負電壓),但必須能夠處理 25V 的輸入而不損壞。
當傳輸二進位制 1 時,訊號為間隙,導線上的電壓必須低於 -3V。當傳輸二進位制 0 時,訊號為標記,導線上的電壓必須高於 +3V。-3V 到 +3V 之間的區域未定義。
較舊的驅動器 IC 通常使用 +12V 和 -12V 作為其電源。這將開路電壓限制在 ±12V。現在有低電壓驅動器可供使用,允許從電池供電的裝置執行,開路電壓可能低於 ±12V。如果是這樣,這些驅動器可能是 RS-232,但也可能是 EIA/TIA-574。
請注意,驅動器和接收器的邏輯功能是定義的。當驅動器傳輸 1(例如來自 UART)時,導線上的電壓必須低於 -3V。許多工程師將此視為“反相”邏輯。
RS-422 有一對或多對線。每對線有兩根線,驅動器和一個或多個接收器連線到這兩根線上。訊號在每對線中的兩根線上以差分方式出現。當驅動器提高一根線上的電壓時,它會同時降低另一根線上的電壓,從而在兩根線之間產生差分電壓。當使用 5V 驅動器時,驅動器通常將一根線拉到電路公共點,另一根線拉到 5V(反向資料則相反)。但這並不意味著這些線上的電壓會達到 0V 或 5V。確切的電壓將取決於驅動器、負載、偏置、端接以及驅動器和接收器之間任何地電位的偏移。
RS-422 電壓以差分方式從一根線到另一根線參考,但也以電路公共點為參考。這意味著規範具有差分電壓要求和共模電壓要求。
驅動器必須在負載/端接電纜中產生 2V 到 10V 的差分電壓。驅動器必須對電纜呈現 100 Ω 或更低的低阻抗。驅動器不得超過 10V 差分電壓或 6V 共模電壓(相對於電路公共點的輸出)。驅動器短路到電路公共點的輸出電流必須限制在 150mA。
接收器必須具有大於 4k Ω 的輸入阻抗,並且在 -7V 到 +7V 的共模電壓範圍內工作。接收器必須識別大於 ±200mV 的差分電壓作為二進位制值。小於 200mV 的電壓未定義。接收器可以識別 -200mV 到 +200mV 之間的任何電壓作為二進位制值,但不同的製造商可以在任何地方設定閾值。接收器中通常包含滯後以提高噪聲容限,但這並非必需。兩根線與電路公共點之間的最大電壓不得超過 10V 的絕對幅度,且高達 10V 的電壓不會對接收器造成損壞。
驅動器能夠驅動 10 個 4k 阻抗的接收器,但實際能夠驅動的數量取決於接收器的實際輸入阻抗、位元率、線纜、短截線長度、網路的偏置和端接。
驅動器和接收器的邏輯功能是**未**定義的,只定義了線上差分電壓的二進位制狀態。二進位制 1 可能(也可能不)被驅動器反相,然後輸出。有關更多資訊,請參閱有關極性的部分。
RS-485 有一對線。訊號在這兩根線上以差分方式出現。對於每個裝置介面,驅動器和接收器都連線到這兩根線上。驅動器必須在它不傳輸時斷開電氣連線或"被動化"當它不傳輸時。當驅動器提高一根線上的電壓時,它會同時降低另一根線上的電壓,從而在兩根線之間產生差分電壓。當使用 5V 驅動器時,驅動器通常將一根線拉到公共點,另一根線拉到 5V(反向資料則相反)。但這並不意味著這些線上的電壓會達到 0V 或 5V。確切的電壓將取決於驅動器、負載、偏置、端接以及驅動器和接收器之間任何地電位的偏移。
RS-485 電壓以差分方式從一根線到另一根線參考,但也以電路公共點為參考。這意味著規範具有差分電壓要求和共模電壓要求。
驅動器必須在負載/端接電纜中產生 1.5V 到 5V 的差分電壓。驅動器的阻抗(處於活動狀態時)未指定,但驅動器需要能夠驅動 32 個單位負載和低至 60 Ω 的端接電阻。[如果單位負載確實是 12 kΩ,那麼這將得出 51.72 Ω,但第 4.5.3 節將總負載限制設定為 54 Ω]。驅動器不得超過 6V 差分電壓或 6V 共模電壓。驅動器的輸出必須限制在 250mA 峰值輸出電流,但可以限制在更低的值。當輸出短路在一起或短路到 -7 到 +12V 之間的任何電壓時,驅動器不得損壞。
接收器的輸入阻抗以“單位負載”的形式指定,其中單位負載定義為以參考地電壓為單位的輸入電流,以 mA 為單位。通常認為 12k 電阻為 1 個單位負載,但單位負載比單個電阻更復雜。接收器必須在 -7V 到 +12V 的範圍內,使用以電路公共點為參考的共模輸入電壓工作。接收器必須識別大於 ±200mV 的差分電壓作為二進位制值。小於 200mV 的電壓未定義。接收器可以識別 -200mV 到 +200mV 之間的任何電壓作為二進位制值,但不同的製造商可以在任何地方設定閾值。
驅動器必須能夠驅動 32 個單位負載。由於接收器的負載可能小於一個單位,因此實際可以連線的接收器數量取決於接收器的單位負載額定值,以及線纜、位元率、短截線長度、網路的偏置和端接。接收器的最大數量可能遠大於 32。
當 RS-485 驅動器不傳輸時,必須停用 [實際上斷開連線],以允許其他裝置傳輸。這意味著有時不會有驅動器連線到線上。如果沒有驅動器連線,線上的差分電壓將取決於端接電阻和偏置。如果線上沒有偏置電阻,它們將實際上處於 0V 差分電壓,這是 -200mV 到 +200mV 之間的未定義區域。如果 RS-485 網路使用 UART 傳輸資料,這會導致問題。如果接收器認為線上未驅動的電壓是空閒狀態,則 UART 應該能夠正常工作。但是,如果接收器認為未驅動的線是二進位制 0,當驅動器開啟並設定為傳輸起始位(也是二進位制 0)時,接收器將不會看到轉換,因此不會看到起始位。要使此應用程式正常工作,驅動器必須在啟用後傳輸空閒狀態(二進位制 1),在傳輸起始位之前持續一段時間。
一些製造商透過將其接收器的輸入閾值設定為略微偏置的值(例如 -50mV)而不是正好在 0V 來解決此問題。當線對沒有驅動時,接收器將看到輸入為空閒狀態(二進位制 1)。如果發射器在起始位的邊緣同時開啟,接收器將看到電壓從空閒狀態變為起始狀態,因此 UART 將始終看到傳輸的第一個起始位。透過新增偏置電阻來強制線路在驅動器未連線時處於空閒狀態,也可以解決此問題,但這必須在網路級別進行,而不是在裝置級別進行。在網路上的每個裝置上新增偏置電阻會導致端接問題。有關更多資訊,請參閱有關端接和偏置的部分。
驅動器和接收器的邏輯功能是**未**定義的,只定義了線上差分電壓的二進位制狀態。二進位制 1 可能(也可能不)被驅動器反相,然後輸出。有關更多資訊,請參閱有關極性的部分。
在我們討論極性之前,讓我們看一下邏輯電平和二進位制狀態。
邏輯 IC 不輸出精確電壓。作為一個通用的 規則,當測得的電壓(相對於電路公共點)為“高”時,二進位制狀態被認為是 1,而當電壓為低時,狀態為 0。這個規則有一些例外(例如差分邏輯和負邏輯),但為了討論的目的,我們將談論正常邏輯。當您開啟燈泡的開關時,會向燈泡施加電壓,燈泡就會亮,因此電壓為開,沒有電壓為關。數字邏輯通常使用與燈泡示例相同的約定(但不使用相同的電壓)。邏輯裝置認為開或關的確切電壓水平因邏輯型別而異,但當電壓為高(通常但不總是接近 IC 的電源電壓)時,輸出為開,線上的二進位制值為 1,而當電壓接近 0 時,輸出為關,線上的二進位制值為 0。
在大多數數字邏輯中,二進位制 0 通常被認為是關,二進位制 1 被認為是開。RS-232、RS-422 和 RS485 這三種標準都顛倒了這種約定。這可能會造成一些混淆。
邏輯器件可以具有“反相”和/或“非反相”輸出。對於正常邏輯,當驅動器的輸入為 1 或高電平時,非反相輸出將變高。當輸入為低或 0 時,非反相輸出將變低。反相輸出則相反。當輸入為高電平時,反相輸出變低,當輸入為低電平時,反相輸出變高。反相輸出通常在其上顯示一個氣泡,而非反相輸出沒有氣泡。反相輸出有時用“ - ”表示,非反相輸出有時用“ + ”表示。
當 RS-485 驅動器的輸入變高時,其中一個輸出將相對於電路公共點變高,而另一個輸出將變低。高電平和低電平的具體電壓通常不指定,而是指定兩個輸出之間的電壓差。但是,由於當輸入變高時,其中一個輸出變高,因此它通常被稱為“非反相”輸出。相反,當輸入變高時變低的輸出通常被稱為“反相”輸出。RS-485 不使用反相或非反相術語,也不在介面點上標有“ + ”或“ - ”。RS-485 只是將介面連線點定義為“ A ”和“ B ”,並顯示兩根導線的二進位制狀態下“ A ”和“ B ”之間的電壓關係,而不是驅動器輸入的二進位制狀態。
RS-485 圖 2 顯示了一個帶有兩個標記為“ A ”和“ B ”的介面連線點的發生器(驅動器)。第三個點 C 在接地部分進行了討論。圖 1 還顯示了輸出訊號波形,為清晰起見,此處以彩色重新繪製。它還非常明確地說明了“發生器和接收器的邏輯功能不在本標準的範圍內,因此未定義。”
現在看一下驅動器原理圖符號,您應該注意到“ A ”輸出是非反相輸出,“ B ”輸出是反相輸出。您可能會認為這意味著當傳輸 1 時,“ A ”將為高電平,“ B ”將為低電平。然而,RS-485 標準的圖 1 中的訊號波形清楚地顯示,當導線上為二進位制 0(ON)時,導線“ A ”上的電壓相對於“ B ”為正,反之亦然,當導線上為二進位制 1(OFF)時,導線“ A ”上的電壓相對於“ B ”為負。換句話說,為了使符號與波形匹配,原理圖符號的輸入必須在符號的輸入處反轉或反相。還要注意,符號沒有顯示輸入。這是因為“發生器和接收器的邏輯功能不在本標準的範圍內,因此未定義。”
說明發生器和接收器的邏輯功能未定義,然後顯示一個符號和導線反相的訊號波形,會增加混淆。
當 RS-485 驅動器直接從 UART 獲取資料(沒有額外反相)時,您會期望“ A ”和“ B ”導線匹配 RS-485 標準中導線上的電壓,但它們不會(除非驅動器反相其輸入)。它們將完全相反。
如果網路上裝置的驅動器和接收器都沒有反相(或者如果網路上裝置的驅動器和接收器都被反相),那麼裝置的 A 和 B 線應該連線在一起。但一些裝置製造商將其 A 和 B 標籤與符號(無反相)匹配,而另一些則與訊號波形(反相)匹配。
RS-232 規定,當傳輸二進位制 0(又名 ON 或 Spacing)(來自邏輯,例如 UART)時,TXData 導線上的電壓大於 +3V(參考訊號公共導線)。當傳輸二進位制 1(又名 OFF 或 Marking)時,TXData 導線上的電壓必須小於 -3V。有些人認為這是一種反相,因為 0 是最高電壓,而 1 是最低電壓。這在技術上並不準確,因為 RS-232 需要使用超出正常邏輯電壓的電壓,但是 RS-232 驅動器的輸入和輸出 在示波器上看起來是反相的,大多數資料手冊將驅動器顯示為反相器。
如果使用 RS-232 到 RS-485 轉換器,情況會變得更加模糊。如果 RS-232 線上的電壓為正或高,則訊號為二進位制 0。該訊號應該反轉回低電平嗎?請參閱您正在使用的轉換器的說明。您可能沒有預期的極性。
最後,IC 製造商也存在混淆。Linear Technology 的 LTC2850 的資料手冊 [7] 顯示,當引腳 4(DI - 驅動器的輸入引腳)為高電平時,引腳 6(A 輸出)上的輸出電壓將相對於引腳 7(B 輸出)為正。
這與 RS-485 圖 1 的符號完全一致,並且與基於 RS-485 圖 1 的訊號波形的預期完全相反,因為該驅動器沒有反相其輸入。許多其他 IC 製造商製造了這種 IC 的直接替代品,其中許多(如 MAX483)使用相同的標籤。一些製造商透過更改輸出引腳標籤的名稱為 X 和 Y 來避免這種混淆。關於這種所謂的“引腳標記錯誤”需要注意兩點。第一,RS-485 否認對發生器和接收器的邏輯功能有任何控制。另一個是,IC 製造商的資料手冊從未宣告 IC 引腳 A 與 RS-485 的導線“ A ”相同。雖然假設 RS-485 驅動器 IC 引腳標記為 A 與 RS-485 標準的導線“ A ”匹配似乎很合理,但這實際上是一種假設,事實上並非如此。設計人員必須定義驅動器和接收器的邏輯功能。
那麼如何知道哪個引腳是“ A ”,哪個是“ B ”呢?好吧,如果您注意到了之前的討論,那麼就沒有辦法。結果是,許多 RS-232 到 RS-485 轉換器改變了其裝置的標籤為 (+)/(-),或 TD+/TD- 等。好訊息是,即使您反向連線,也不會損壞裝置。如果您在 RS-485 導線上執行非同步起止通訊(UART),如果極性反向,它將無法工作。如果通訊無法正常工作,通常只需將導線反轉並再次測試通訊即可。如果通訊無法正常工作,這是一個很好的第一步。當然,許多其他問題也會導致通訊故障,這些將在故障排除部分進行處理。
對於那些設計或記錄系統的人來說,這比簡單地交換引腳要複雜一些。上面討論的“引腳標記錯誤”是一個很好的起點。即使 RS-485 沒有定義發生器和接收器的邏輯功能,但對於許多工程師來說,當傳輸二進位制 1 時,在 RS-485 導線上出現二進位制 1 很有意義。如果您仔細注意正在使用的驅動器的邏輯功能以及裝置上端子的標籤,則可以設計系統來實現這一點。不要假設 IC 的 A 和 B 引腳與 RS-485 標準的“ A ”和“ B ”匹配,因為它們不可能匹配。該標準沒有定義驅動器或接收器的邏輯功能。而且,RS-485 圖 1 中的符號與圖 1 中的輸出訊號波形相反。
終端
[edit | edit source]終端是一個不太有爭議的話題,而不是一個被誤解的話題。
要了解如何為網路(導線)接地,您必須首先了解傳輸線。這對於在此深入討論來說太複雜了,但是使用過於簡化的概念的基本教程可能會有所幫助。
[注意,下面的圖表沒有考慮相移或導線的電感和電容可能引起的振鈴,但這只是一個過於簡化的教程,基本概念仍然成立。]
導線同時具有電感和電阻。每種電感的多少取決於導線。一對導線之間存在電容耦合和有限的(通常非常高)電阻。每種電感的多少取決於導線和絕緣材料。導線的電感、電阻和電容在下面建模。

由於電感和電容都可以表示為電阻(實際上是阻抗 - 不包括相移),因此前面的圖表可以重新繪製為純電阻圖。

需要注意的是,該模型僅對一個頻率有效。增加頻率會增加感抗,從而增加該模型中的串聯電阻。增加頻率會降低容抗,從而降低該模型中的並聯電阻。例如,在較高頻率下,模型的串聯電阻可能會從 0.5 Ω 增加到 1 Ω(每根導線),而並聯電阻可能會從 14.52k Ω 降低到 7.32k Ω。這些值都不是絕對的,它們會隨著頻率而變化。
另一件事是,不同的電纜在不同的頻率下具有不同的特性阻抗。POTS 電話線在音訊頻率(例如 1kHz)時從 600 Ω 變為 1MHz 時為 100 Ω,而 CAT-5 電纜在更寬的頻率範圍內約為 100 Ω。
該模型還有其他一些需要注意的地方。第一,如果線足夠長,連線到模型輸入端的交流“歐姆表”將看到導線的“電阻”為 120 Ω。導線必須多長才能發生這種情況取決於串聯電阻和並聯電阻的值(以及因此輸入的頻率)。第二,這實際上是一個無限的電壓分配器。導線越長,末端的訊號越少。同樣,損耗的程度取決於串聯電阻和並聯電阻的值,並且損耗會隨著頻率的增加而增加。這就是為什麼長電纜和高頻率不相容的原因。
如果線不是無限長的,該模型將失效。沿導線傳播的訊號將到達末端並 “反射” 回來(在接收器端)。然後它傳播回源並將在源處反射(在驅動器端)。由於訊號在傳播過程中被衰減,因此“反射”訊號的幅度減小,直到其電平穩定。這種現象將表現為訊號邊緣的 振鈴。如果在訊號存在振鈴時對資料位進行取樣,則可能會將其取樣為不正確的值。這意味著必須等到訊號穩定下來才能對位進行取樣。
在電纜末端新增一個與電纜阻抗值匹配的電阻器將吸收沿線傳播的訊號,並減少或防止反射。這將減少等待訊號穩定所需的時間,從而提高可能的位元率。該電阻器還將使任何長度的電纜(即使是短長度)對驅動器看起來像電纜的特性阻抗(在模型中為 120 Ω)。該電阻器被稱為 終端 電阻器,在下面的圖表中表示為 Rterm。

由於 RS-485 驅動器在不傳輸時處於“被動”狀態(與導線斷開連線),並且電纜的另一端可以驅動網路,因此應在兩端新增終端電阻。這樣看起來就像在電纜的兩端(或任何點)並聯兩個 120 Ω 電阻(60 Ω)。因此,驅動器在電纜上的連線位置無關緊要,它“看到”的都是 60 Ω 的負載。

這就是為什麼 RS-485 規定“通常需要使用電纜終端”。.
RS-422 驅動器始終處於連線狀態,並在驅動器的導線端充當其自身的終端。這將在一定程度上減少 RS-422 網路上的反射,但 RS-422 也建議在導線的接收器端新增終端電阻(實際上是建議,具體取決於“資料速率”或“電纜負載端的訊號上升時間”)。終端電阻應等於電纜的特性阻抗。
任何連線在電纜中某個點的接收器都會改變該點電纜的阻抗。這會導致反射訊號返回驅動器,並轉發到電纜上的其他接收器。終端電阻會減小從兩端反射回來的訊號幅度,從而提高訊號質量。
還需要考慮的其他一些因素是
- 上升時間越快,振鈴幅度越大。斜率限制驅動器會減少上升時間,並減少未接地的線路的振鈴。
- 訊號最終會穩定(直到下一個位元轉換),因此位元率越慢,訊號在被取樣(通常由 UART)之前穩定所需的時間就越長。這意味著位元率越低,對終端電阻的需求就越少。
- 將電纜分支到接收器會導致二次反射,從而導致訊號產生更多且不可預測的振鈴。在 RS-485 網路上分支始終是一個壞主意,電纜應該從一個裝置到另一個裝置串聯。
- 更長的電纜需要更長的時間才能將訊號傳遞到末端(以及來回……),因此更長的電纜會導致導線上更長的振鈴時間,以及訊號穩定所需的時間更長。未接地的導線越長,位元率就需要越慢。因此,電纜長度越長,終端電阻對提高訊號質量就越重要。
- 電纜長度越長,終端電阻對訊號電平的影響就越大。因此,電纜長度越長,終端電阻就越會降低訊號幅度。
如果你一直在關注,你可能會注意到最後兩點是矛盾的。這就是為什麼一些工程師試圖忽略對終端電阻的需求的原因。終端電阻可以提高訊號質量(減少振鈴),但它也會降低訊號幅度。無法說終端電阻會始終增加網路的線路長度。
關於傳輸線的最後一點是,終端電阻應與電纜的特性阻抗匹配。如果使用 CAT-5(100 Ω 電纜)電纜,則終端電阻應為 100 Ω。不幸的是,RS-485 第 4.5.3 節規定,“A”和“B”之間的總負載不應小於 54 Ω。這限制了負載終端,也是反對使用 100 Ω 電纜的一個論據。但是,與未接地的網路相比,不正確的值終端電阻通常會提高訊號質量。100 Ω 電纜上的 120 Ω 電阻會顯著減少振鈴,而無終端則不會。而且,由於 120 Ω 終端電阻會導致極長的 120 Ω 電纜出現足夠的訊號損耗,以至於網路無法正常執行,因此 500 Ω 甚至 1kΩ 終端電阻可能會在不造成太多訊號損耗的情況下,改善訊號質量,使網路能夠正常執行。如果你正在突破任何限制,則必須針對各個網路憑經驗確定終端電阻值。一個與地球接地隔離的良好示波器(電池供電或由未插拔的 UPS 供電(如果你對示波器的使用足夠熟練,你還可以從通道 1 中減去通道 2 來檢視差分波形,或者使用差分探頭等))可以成為一個非常有用的故障排除工具。
那麼終端電阻是必需的嗎?根據 RS-485 的規定,這是“通常”必需的。實際上,它通常不是必需的。較低的資料速率有更多時間讓振鈴穩定,因此資料速率越低,對該電阻的需求就越少。振鈴在較短的電纜中也會更快地穩定。如果你執行的資料速率低於 30kBit,並且不需要長電纜,那麼終端電阻可能不需要。資料速率越高,電纜越長,就越有可能需要新增終端電阻。
有多種終端技術,所有這些技術在狹窄的條件範圍內都能很好地工作。
Bob Perrin 列出了 4 種最流行的技術[8]
- 無終端:這是最簡單的系統,但僅在資料速率和長度足夠低的情況下才有效。一個經驗法則是,如果資料線的傳播延遲遠小於一個位元寬度,則不需要終端。[9] 斜率限制驅動器會在無終端網路中顯著提高訊號質量。在必須使用星形匯流排拓撲的情況下,無終端網路可能會提高訊號質量。[10]。但是,應該注意的是,在參考中執行的網路以 300 波特的速度執行,並且進行了其他調整,例如隔離式收發器和每個節點上的高電阻偏置電阻。它還有超過 10 英里的電線(哇)。如果使用終端電阻,預計這種長度的電纜會產生很大的直流損耗。
- 單向電阻終端:RS-422 網路應該只在接收器端有一個電阻。如果驅動器始終處於啟用狀態,也應該在 RS-485 網路上使用。
- 雙向電阻終端:在具有線性匯流排,發射器位於總線上的任何位置的情況下效果最佳。[8]
- 交流終端:雖然交流終端在背板上的效果可能很好[11],但其他人不建議在 RS-485 線路上使用它:“實際上,我從未見過[交流終端]除了破壞訊號完整性之外的任何作用。”[8]
偏置
[edit | edit source]偏置在 RS-485 網路上有許多用途,但首先讓我們看一下 RS422 和 RS-485 的說法。
偏置,有時稱為失效安全偏置,在 RS-422 和 RS-485 規範中簡要討論過。但是,偏置被討論為內部接收器特性,而不是外部偏置網路。在 RS-485 中,接收器的內部偏置應使“當透過等於 1500/nUL 1/2 的匹配電阻將 ±0.40 V 的差分電壓 (VR3) 應用於每個輸入端時,接收器將保持在預期的二進位制狀態,如圖 13 所示,輸入電壓 VR1 和 VR2(以及由此產生的 VR3)可以實現任何允許的輸入條件。”。RS-422 的要求非常相似,只是電阻指定為 499Ω,而不是 UL 的比率。這並非外部偏置電阻,而是接收器特性,用於限制由輸入不平衡引起的差分噪聲。
RS-485 中兩次提到了失效安全。第一次是在總負載限制中,指出包括失效安全功能在內的網路總負載限制不應小於 54Ω。這意味著失效安全功能是接收器外部的電阻。RS-422 類似(只是他們省略了連字元)。兩種標準都有一節定義了可能需要失效安全操作的原因,但都沒有討論如何實現它。
RS-422 和 RS-485 指出,可以使用失效安全檢測到的一些故障條件包括
- 生成器處於斷電狀態
- 接收器未連線到電纜
- 互連電纜開路
- 互連電纜短路
- 負載的輸入訊號在異常時間段內(與應用程式相關)保持在轉換區域 (±200 mV) 內
要檢測哪些故障條件以及在檢測到故障時要執行的操作取決於應用程式。與 RS-485 標準的大部分內容一樣,失效安全操作留給開放式,實現不在標準的範圍之內。
那麼為什麼要對網路進行偏置呢?檢測上面列出的故障是一個原因,但偏置本身無法檢測到所有故障。它也無法區分它們。
例如:RS-422 網路具有始終處於活動狀態的驅動器和接收器。如果驅動器正在傳輸非同步起始停止資料(來自 UART,並且驅動器的輸入不反轉),則兩條導線的空閒狀態將為 1。如果你在接收器處對網路進行偏置,以便接收器看到 1,你將無法判斷驅動器何時斷開連線(沒有額外的硬體)。如果你對網路進行偏置,以迫使兩條導線變為 0(當發射器未連線時),接收器將看到導線上的 1(當接收器和驅動器連線,導線上沒有開路時)。接收器可以監控導線,並在導線上檢測到 0 長時間後指示故障。確定發生了哪種故障將需要額外的硬體。
這個偏置示例對等效的 RS-485 網路來說將是一個糟糕的事情。如上所述,在電壓部分中:在 RS-485 網路中,兩條導線有時不會被髮射器驅動。如果接收器將導線上的未驅動電壓視為空閒狀態,則 UART 應該能夠正常工作。但是,如果接收器將未驅動的導線視為二進位制 0,當驅動器開啟並設定為傳輸起始位時,起始位也是二進位制 0,接收器將看不到轉換,因此也不會看到起始位。在沒有驅動器活動時迫使導線處於空閒狀態是網路上需要偏置的最常見原因。
偏置也會改善抗噪性。RS-485 將電壓介於 -200mV 和 +200mV 之間定義為未定義,但 IC 製造商可以在他們想要的任何地方新增 0 和 1 的閾值。他們通常會在接收器中新增一些遲滯來降低其對噪聲的敏感度,但偏置會降低接收器的噪聲敏感度。
以下示例是對網路進行 200mV 偏置。你可能想要對網路進行更高的差分電壓偏置,以提高噪聲裕度。

此圖顯示了應用於終端網路的偏置。通常,你想要使用與驅動器供電電壓匹配的上拉電壓。圖中顯示的是 5V,因為許多驅動器由 5Vdc 供電。可以使用其他上拉電壓,並且上拉電壓與驅動器供電電壓匹配並非絕對要求。
偏置電阻和終端電阻形成一個分壓器,可以使用多種方法來計算電阻值。在以下示例中,期望在 Rterm 上獲得 0.2V 的偏置電壓,而 Rterm 為 120Ω。還需要注意,此示例忽略了驅動器和接收器之間的任何電流。
電阻比將與電壓比相匹配。由於總電壓為 5V,而期望的 Rterm 上的電壓為 0.2V,因此偏置電阻上的電壓為 4.8V。
偏置電阻上的電壓與終端電阻上的電壓之比為
()
120Ω 終端電阻的 24 倍為 2880Ω。該電阻的一半在每個偏置電阻中,因此每個偏置電阻應為 1440Ω。因此,如果 Rbias+ 和 Rbias- 為 1440Ω,而 Rterm 為 120Ω,則終端電阻上將有 0.2V 的偏置電壓。
但是,偏置電阻會影響總終端電阻。

下一張圖顯示了偏置電阻與終端電阻的交流戴維南等效電路。5V 電源將在其輸出端具有電容器。這些電容器將對交流訊號起到短路作用。因此,總偏置電阻實際上與終端電阻並聯,作為電纜的負載。選擇終端電阻時需要考慮偏置電阻。
總負載電阻可以計算為
使用前一個示例中的值,帶偏置電阻的總終端電阻為 115.2Ω。
Ω
這在 120Ω 的 10% 之內,這些值可以被使用,或者您可以將終端電阻調整為 125Ω,這將使您獲得 119.8Ω 的總終端電阻。改變終端電阻會改變終端電阻上的偏置電壓,但只會增加到 0.208V。
在實踐中,您可能會使用 5% 的電阻。用於偏置和終端電阻的可用 5% 值將限制您使用 120Ω 和 1.5kΩ。這將導致 115.4Ω 的總終端電阻和 0.192V 的偏置電壓。或者您可以使用 130Ω 和 1.5kΩ。這將導致 124.6Ω 的總終端電阻和 0.208V 的偏置電壓。
即使您使用 1% 的電阻,標準值也將是 127Ω 和 1.47kΩ。這將導致 121.7Ω 的總終端電阻和 0.207V 的偏置電壓。由於電阻的容差意味著您永遠無法獲得理想的計算值,因此不必擔心。如果您能控制在 10% 之內,您就可以期望它能正常工作。
這些示例是針對僅僅滿足 0.2V 差分電壓的偏置電阻。降低偏置電阻值將增加偏置電壓,這將提高噪聲抗擾度,但會以從 5V 電源汲取的電流增加為代價。
這些示例是針對單個 120 Ω 終端的。網路的每個端都需要使用這些值的偏置電阻。如果將電阻減半至 720 Ω,則可以使用一組偏置電阻在網路的一端。為了增加一些額外的噪聲裕度,使用 680 Ω 電阻,您就有了 RS-485 網路上使用最常見的偏置網路之一。
還需要注意的是,可能不需要偏置。即使 RS-485 指出 +0.2V 和 -0.2V 之間的電壓未定義,但這並不意味著設計接收器的工程師不能定義將接收到的 0 切換到 1 的確切電壓。一些 RS-485 IC 製造商,例如 Maxim[12] 和 Analog Devices[13],已經設定了他們的一些接收器的閾值,因此兩條線上 0V 的差分電壓會導致檢測到 1。這提供了噪聲抗擾度,並解決了丟失起始位的 문제,但僅適用於實現此內部偏置的接收器。網路上其他沒有這種偏移接收閾值的接收器可能需要在網路上新增外部偏置電阻。
最後要注意的是,RS-485 接收器通常在 +0.2V 和 -0.2V 水平上切換。當進入接收器的差分電壓超過 +0.2V 時,接收器的輸出切換到 1,當電壓低於 -0.2V 時,接收器的輸出切換到 0(或者反之,如果接收器上有反相)。由於來自 UART 的最後一個位將是停止位 (1),那麼發射器將關閉(差分電壓降至 0V,但沒有低於 -0.2V),這應該使接收器輸出到接收 UART 的 1 保持不變。UART 傳輸的第一個位是起始位 (0),接收 UART 應該看到這個轉換。但只有在線路上沒有使接收器在停止位結束時切換回 0 的振鈴或噪聲的情況下,這才是正確的。終端電阻可能會減少網路上的振鈴,從而不需要偏置電阻。
RS-422 和 RS-485 標準不包含聯結器。存在許多聯結器和引腳分配,但沒有標準。顯然,需要與訊號的物理連線。連線範圍從插入裸線的螺絲端子到聯結器,例如 DE-9。來自不同製造商的具有相同聯結器的裝置可能無法直接互連。檢視每個製造商的資料手冊以確定哪個引腳上有哪個訊號,以及兩個裝置是否可以以直接方式或透過介面卡連線。
其他標準可能會定義聯結器和聯結器引腳上的訊號。例如;EIA-449 和 EIA-530 是聯結器標準,它們引用 RS-422 用於電氣級別。來自不同製造商的兩個符合 EIA-449 標準的裝置應該能夠直接連線在一起。但波特率和位幀也必須匹配。
[待辦事項:新增來自 NI、B&B、ADAM 等製造商的聯結器和引腳。志願者?]
下表列出了常用的 RS-232/EIA-574 訊號和引腳分配。RS-232 沒有定義協議,但幾乎總是透過這些聯結器傳輸的協議是非同步起止 ASCII(來自 UART 的資料)。
| 訊號 | 來源 | DB-25 (RS-232) |
DE-9 (TIA-574) | |||
|---|---|---|---|---|---|---|
| 名稱 | 典型用途 | 縮寫 | DTE | DCE | ||
| 資料終端準備好 | 指示DTE存在於DCE。 | DTR | ● | 20 | 4 | |
| 資料載波檢測 | DCE已連線到電話線。 | DCD | ● | 8 | 1 | |
| 資料裝置準備好 | DCE已準備好接收命令或資料。 | DSR | ● | 6 | 6 | |
| 振鈴指示器 | DCE已檢測到電話線上的來電振鈴訊號。 | RI | ● | 22 | 9 | |
| 請求傳送 | DTE請求DCE準備接收資料。 | RTS | ● | 4 | 7 | |
| 允許傳送 | 指示DCE已準備好接受資料。 | CTS | ● | 5 | 8 | |
| 傳送資料 | 將資料從DTE傳輸到DCE。 | TxD | ● | 2 | 3 | |
| 接收資料 | 將資料從DCE傳輸到DTE。 | RxD | ● | 3 | 2 | |
| 公共接地 | GND | 公共 | 7 | 5 | ||
| 保護接地 | PG | 公共 | 1 | — | ||
訊號名稱從DTE的角度命名。 接地訊號是所有訊號的公共迴路。DB-25聯結器在第1針上包含一個第二個“保護接地”。
握手
[edit | edit source]RS-485標準中沒有硬體握手,在大多數情況下也不再需要它。
握手的目的是讓接收方告訴傳送裝置“閉嘴,我充滿了資料,會丟失你傳送的任何更多資料”。這會停止資料流到接收端,允許接收方處理其緩衝區中的資料。當它能夠接收更多資料時,接收方將使用握手線向傳送方發出訊號,表示它可以傳送更多資料。
當計算機中的微處理器速度非常慢時,它在馬力方面非常有限,因此這是必要的。停止傳送/允許傳送線會在傳送的每個位元組時來回切換。當計算機和外圍裝置中的微處理器速度提高到驚人的 1MHz 時,握手仍然是必要的,但停止傳送/允許傳送線切換的頻率會降低。具有緩衝區的 UART 的出現提供了更大的幫助。處理器可以檢查緩衝區的級別,並且只有在緩衝區太滿時才需要停止資料。現代處理器速度足夠快,握手很少需要。
如果需要握手,可以使用 X-On / X-Off 握手協議嘗試,但它不太可能起作用。由於 RS-485 是半雙工的,因此接收方很難在無法將位元組送入傳入資料時告訴傳送方“閉嘴”。RS-422 是全雙工的,因此它可以使用 X-On / X-Off 協議,如果需要的話。
一些 RS-232 到 RS-485 轉換器最初使用 RTS 等握手訊號來控制 RS-485 傳送器的使能。軟體會在將位元組塞入 UART 的傳送緩衝區之前設定序列埠的 RTS 引腳為活動狀態。當傳送器為空時,它會將 RTS 引腳設定為非活動狀態以停用或“使 RS-485 傳送器變為被動”。這允許 RS-485 網路上的其他裝置傳送資料。這樣做有優點和缺點。一個優點是,這允許軟體(如果編寫正確)控制網路並在傳送資料之前短時間保持控制。這將確保網路在開始位傳送之前有一個標記週期,從而消除了使用偏置電阻來強制網路處於標記狀態的必要性。兩個缺點是網路在沒有資料驅動的情況下正在執行,因此衝突的可能性更大,並且軟體複雜性增加了。
另一種 RS-232 到 RS485 方案是監控進入 RS-485 傳送器的資料流,並在發生邊緣時觸發一個單次定時器。RS-485 驅動器的使能由定時器控制。此方案將在傳送位元組時自動控制網路,但不會有任何保證的標記時間,因此可能需要偏置電阻。此方案的另一個問題是傳送器需要在所有資料傳送期間保持使能狀態。如果傳送 0x00(八個 0 位),則定時器必須保持驅動器使能足夠長的時間以傳送所有 8 位,而沒有檢測到的邊緣。由於 PC 序列埠上的資料速率可以在 300 波特(8 位為 26mS)到超過 100k 波特(8 位為 0.08mS)之間變化,因此定時器必須要麼限制其可以使用的波特率,要麼比實際需要的時間更長時間地控制 RS-485 網路。後者大大增加了發生衝突的可能性。
由於 PC 的驅動程式和/或硬體處理驅動器使能,而現代 PC 可以處理比 RS-485 網路上傳輸速度快得多的資料速率,因此整個握手問題在現代 USB 到 RS-485 介面卡中已經過時。
USB 到序列轉換器帶有一個 ADDC(自動資料方向控制)來自動檢測和控制資料方向,使握手控制方法過時。 [14]
[編輯說明,上一段是遺留內容,引用在許多方面不清楚,可能不是一個好的引用]
可以透過新增額外的硬體、軟體和電線來為 RS-485 網路新增硬體握手,但這超出了 RS-485 標準。如果需要,可以透過任何所需的方式實現,包括額外網路上的 RS-485 驅動器、額外電線上的 RS-232 驅動器、TTL 電平,或者你想到的任何東西,因為它不會與你設計的網路以外的任何其他 RS-485 網路一起使用。
遺留
[edit | edit source][以下所有資訊都是遺留內容,非常值得懷疑。目前保留是為了為本文的未來擴充套件提供一個起點(並表明 RS-485 到底有多被誤解)]
RS-485 是許多更高階協議的物理層,包括 Profibus 和其他現場匯流排系統、SCSI-2、SCSI-3 和 BitBus。 [15]
一些 RS-485 實現(特別是某些乙太網配置)(以及一些 Macintosh GPIO 插座)使用 4 根電線(2 對)進行點對點通訊。其中一對專用於 PC 到外設通訊。另一對專用於外設到 PC 通訊。每對都可以以全速傳輸,無論另一對是否正在傳輸 (全雙工)。
通常,位元序列由微控制器內部的 UART 生成,該 UART 連線到 RS-485 介面 IC(也稱為“RS485 線路驅動器/接收器”或“RS-485/RS422 收發器”)。許多製造商製造這種介面晶片 [16]。從那裡,RS-485 訊號通常透過 CAT-5 電纜 [17] 傳輸。電纜的另一端通常是相同的東西——聯結器、RS-485 介面 IC 以及微控制器內部的 UART。
現實世界中的 RS-485
[edit | edit source]現在,RS-485 通常用於專業音訊行業,以控制數字音訊和訊號處理器,例如 DBX driverack 和其他製造商的等效產品。由於更便宜的佈線成本和電纜的普遍可用性(類似於 RJ-45),RS-485 比 RS232 更受歡迎。
在佈線 RS-485 網路時,始終將“A”連線到“A”,“B”連線到“B”,“G”連線到“G”。[18]
許多人建議編寫原型軟體,就好像它將連線到半雙工 RS-485 網路一樣。然後,該軟體在連線到全雙工 RS-485 網路、RS-232 網路以及各種其他通訊媒體時將保持不變。
許多人建議使用連線為點對點全雙工 RS-485 的 5 類電纜在原型上進行佈線。5 類電纜允許您相對快速地切換——到半雙工 RS-485 或 RS-232 的 3 根電線,或各種其他通訊協議——而無需拉任何新的電纜。點對點全雙工 RS-485 網路允許您快速使完整的原型系統完全執行,因為它更容易除錯並且對其他系統上的一些常見問題(RS-232 上的噪聲問題、半雙工 RS-485 上的轉向問題等)更具抵抗力。
應用
[edit | edit source]應用
非標準聯結器和佈線
[edit | edit source]
LocalTalk 網路在標準 4 線 RJ11 電話聯結器和電纜上使用與 RS-485 相容的差分訊號。LocalTalk 只連線到最外側一對電線(標準 4 線電纜上的“外側一對”)。
LocalTalk 忽略最內側一對電線,因此內側一對通常用於標準模擬電話。
(RJ45 上是否有類似的 RS-485 標準?)
由於模組化聯結器的易用性和電纜和聯結器的可用性,RJ45 連線經常用於 RS-485。RS-485 介面通常使用第 7 腳和第 8 腳作為兩條資料線,因為它們構成一個雙絞線。這避免了與乙太網(第 1-3 腳、第 6 腳)和模擬電話(第 4-5 腳)的衝突。接地可能會因應用而異。通常,使用遮蔽的 CAT5/6 電纜可以提供足夠的訊號接地,儘管不建議這樣做。
(stub)
(存根)
從軟體的角度來看,全雙工 RS-485 看起來與 RS-232 非常相似。使用兩對線纜 - 一對專用的“傳送”線纜和一對專用的“接收”線纜(類似於某些乙太網硬體),軟體無法區分 RS-485 和 RS-232。
從硬體的角度來看,全雙工 RS-485 比 RS-232 具有幾個重大優勢 - 它可以在更長的距離上以更高的速度進行通訊。
然而,一根長 3 線的 RS-232 線纜無法直接切換到全雙工 RS-485,後者需要 5 根線纜。
RS-232 僅針對點對點連線定義,因此您需要為連線到主機 CPU 的每個感測器使用單獨的線纜。RS-485 允許主機 CPU 與連線到同一線纜上的多個感測器進行通訊。
但是,許多 RS-485 硬體只使用一對線纜(半雙工)。在這種情況下,主要區別在於
- 每個 RS-485 節點,包括主機 CPU,在傳輸完訊息後必須“關閉發射器”,以允許其他裝置使用共享媒介進行輪流傳輸。
- RS-485 硬體通常在接收器上接收所有由共享媒介上的每個裝置傳送的位元組,包括本地發射器。因此,軟體應該忽略自己傳送的訊息。
一根長 3 線的 RS-232 線纜通常可以切換到半雙工 RS-485,允許以比相同線纜使用 RS-232 訊號時更高的速度和更高的外部噪聲水平進行通訊。
RS-232 僅針對點對點連線定義,因此您需要為連線到主機 CPU 的每個感測器使用單獨的線纜。RS-485 允許主機 CPU 與連線到同一線纜上的多個感測器進行通訊。
然而,半雙工 RS-485 網路在出現故障時通常比 RS-232 網路更難除錯,因為
- 當線纜上出現“錯誤訊息”時,與一個點對點媒介(只有 2 個節點連線到任何特定線纜)相比,在共享媒介上(有十幾個節點連線到同一根線纜)要更難(但並非不可能)確定哪個節點發送了該訊息。
- 在同一根線纜上雙向傳輸資料,而不是單向傳輸資料,需要一個轉換延遲。轉換延遲應該與波特率成正比 - 過多或過少的轉換延遲可能會導致難以除錯的計時問題[18]
RS-485 訊號電平通常相對於訊號地為 0 到 +5 V。
RS-232 訊號電平通常相對於訊號地為 -12 V 到 +12 V。
RS-232 使用點對點單向訊號線:只有一對裝置連線到 RS-232 線纜。第一個裝置的 TX 輸出連線到第二個裝置的 RX 輸入,第二個裝置的 TX 輸出連線到第一個裝置的 RX 輸入。在 RS-232 線纜中,資料始終只在一個方向(從 TX 到 RX)沿任何特定線纜流動。
RS-485 通常使用具有雙向訊號線線的線性網路:通常在 RS-485 共享線纜上有多個裝置。每個裝置的“A”輸出連線到其他每個裝置的“A”輸出。在 RS-485 線纜中,資料通常在兩個方向沿任何特定線纜流動,有時從第一個裝置的“A”流向第二個裝置的“A”,有時從第二個裝置的“A”流向第一個裝置的“A”。
我被告知10BASE-T 乙太網和SCSI 線纜使用一堆 RS-485 線對 - 這是真的嗎?對於 8 位 SCSI 來說,情況並非如此,驅動器是單線,在匯流排兩端各有一個 220/330 Ω 終端。50 線線纜中一半的導體是接地回線。這適用於原始 50 線 SCSI 介面的 8 位版本。超寬 SCSI 使用差分驅動,但我不知道它是否與 RS485 相容。
- ↑ "簡化 RS-485 設計". EE Times. 2000.
- ↑ "TIA 標準商店 - TIA-232 文件歷史". TIA. 2016.
- ↑ Lawrence, Tony (1992). "序列佈線". A. P. Lawrence. Retrieved 28 July 2011.
- ↑ "使用 RS-485 可以走多遠,速度有多快?". Maxim IC. 2006.
- ↑ "LTC1685 - 52Mbps,精確延遲,RS485 故障安全收發器". Linear Technology. 1997.
- ↑ "RS485 線纜 - 為什麼需要 3 根線纜用於 2 根(兩根)線 RS485"
- ↑ "LTC2850 資料表". Linear Technology. 2007.
- ↑ a b c "RS-485 的藝術與科學:端接" (PDF). 電路地下室. 1999.
- ↑ "RS-422 和 RS-485 應用電子書" (PDF). B&B 電子公司. 2010.
- ↑ PicList 論壇: "RS485 PIC 網路中的反射?" 1998.
- ↑ 匯流排端接
- ↑ "RS-485 (TIA/EIA-485-A) 網路正確佈線的指南". Maxim 整合產品. 2001.
- ↑ "RS-485/RS-422 電路實現指南" (PDF). Analog Devices. 2008.
- ↑ "選擇合適的 USB 到序列介面卡"
- ↑ http://interfacebus.com/Design_Connector_RS485.html
- ↑ "EIA-458 匯流排介面 IC 製造商"
- ↑ "RS-422 和 RS-485 系統的電纜選擇"
- ↑ a b "RS-485 標準基礎"
- "序列通訊概述" 包含 "NI 序列介面聯結器引腳定義"
- "RS-485 序列介面解釋" 作者:CUI Devices 的 Jason Kelly
- "半雙工 RS-485 在 RJ-45 聯結器中的正確引腳定義是什麼?".
- "RS485 RJ45 介面" 包含透過 8P8C RJ45 插座的 RS485 引腳定義
- "RS485 RJ11 介面" 包含透過 6P6C RJ11 插座的 RS485 引腳定義
- "RS485 資料介面:教程" 包含 "RS-422 和 RS-485 系統的電纜選擇" 部分


