UART 可確保透過 RS-232、RS-422 及 RS-485 介面獲得可靠的長距離工業通訊功能
資料提供者:DigiKey 北美編輯群
2019-05-22
工業感測與控制作業會對通訊匯流排帶來許多挑戰,例如,使用數百甚至數千英呎的纜線是常有的事,而工業環境本身的作業條件經常是相當嚴苛的。工業設備可能會暴露在溫度範圍變化相當大的環境中、電源供應線路與資料線會承受相當大的電氣雜訊,而且可能會出現電磁干擾 (EMI)、靜電放電 (ESD) 或短路等故障事件。
如要解決這些問題,就要使用通用型異步收發器 (UART) 式耐用型串列介面;某些供應商會把這種介面稱為異步通訊元素 (ACE)。UART 能以獨立元件的形式供應,例如 Texas Instruments 的 TL16C752D;或內建在微控制器當中,例如 Microchip Technology 的 PIC16F688T-I/SL。
透過適當的線路驅動器,UART 便能夠在長距離的情況下運作:從適用 RS-232 串列資料匯流排的 15 公尺距離,到適用 RS-485 或 RS-422 介面的 1000 公尺距離。這三種協定全都可為工廠自動化應用的遠端機器與控制器,提供相關的控制功能,而且可將最嚴苛環境中的 EMI 與 ESD 影響降到最低。
本文將針對這些經常使用的工業用控制介面協定,提供相關背景資訊,並展示這些協定如何使用 UART 及線路驅動器來進行實作。
RS-232
RS-232 串列通訊標準目前也稱為 EIA/TIA-232-F,這是一項由「電子工業協會/電信工業協會」所制定的標準,「F」字母代表最新版本。這項標準等同於「國際電視協會」(ITU) 的 V.24 與 V.28 標準。這種介面原先是個人電腦上的串列匯流排,起初是用來將電腦 (又稱為數據終端設備,DTE) 連接到數據機 (又稱為數據通訊設備,DCE)。
EIA/TIA-232-F 定義了實體層的標準,包含訊號等級與計時、控制訊號、連接器,以及連接器的配線,其中並未定義字元編碼、訊框化及其有關協定層級的其他方面。典型的異步序列匯流排包含 UART 或 ACE、線路驅動器、連接器及纜線 (圖 1)。
圖 1:基本的 RS-232 系統包含電腦等數據終端設備 (DTE),以及類似數據機的數據通訊設備。UART/ACE 是透過介面連接並聯的電腦背板與串列 RS-232 介面。(圖片來源:Texas Instruments)
UART/ACE 會將電腦的內部並聯匯流排轉換成串列資料流,也會提供輸入與輸出的先進先出 (FIFO) 記憶體緩衝、介面時脈 (一般稱為波特率產生器),以及介面的計時訊號與交握訊號。UART/ACE 類比輸入與輸出可由線路驅動器進行緩衝。DTE 的輸出訊號稱為發射器訊號 (TX),而輸入訊號則稱為已接收訊號 (RX)。介面纜線最長可達 15 m。通過介面匯流排進行可靠傳輸的最大數據傳輸率,取決於纜線的長度。
RS-232 介面透過全雙工連線將兩個裝置連線,這表示每個裝置都能同時傳送與接收訊號。RS-232 串列資料封包包含一個開始位元、5 到 8 個資料位元、1/1.5/2 個停止位元,以及一個同位位元 (圖 2)。
圖 2:RS-232 資料封包包含一個開始位元、5 到 8 個資料位元 (圖中為 8 個)、一個同位位元 (選用),以及 1、1.5 或 2 個停止位元。(圖片來源:DigiKey)
RS-232 纜線最少需要三條線路:一條用於傳送、一條用於接收,以及一條訊號地線,地線是兩條訊號導線的回傳路徑。
RS-232 的許多特性與原來在電信業界中的應用有密切的關聯。這種介面使用具有高態 (稱為 space) 及低態 (稱為 mark) 的負邏輯。中性態 (或稱為靜止態) 相當高,因此可以在遠端進行互連驗證。在傳送端的 0 態 (即 space) 電壓介於 +5 到 +15 V 之間。邏輯 1 (即 mark 態) 電壓介於 -5 到 -15 V 之間。在接收端,從 3 到 15 V 的電壓等級為 0;-3 到 -15 V 的電壓等級代表 1。
傳輸之所以稱為非同步,乃是因為不會傳輸時脈訊號。RS-232 仰賴的匯流排兩端,是為特定時脈或波特率而設置。波特率是用來測量每秒傳輸的符號數;對 RS-232 來說,這數率約略等於時脈速率。常見的波特率有 300、600、1200、2400、4800、9600、19200、38400、57600、115200、230400、460800 及 921600 波特。
時脈速率越高,纜線長度就越受到限制。例如,在 9600 的波特下,可以使用最長為 15 m 的纜線;波特率越高,最長纜線長度就會越短。
RS-232 控制訊號
RS-232 具有一些特定的控制訊號。這些訊號會控制 DTE 與 DCE 元件的狀態,並執行硬體式交握,以決定資料傳輸速率 (表 1)。
|
表 1:RS-232 控制訊號與交握訊號。(表格來源:DigiKey)
硬體交握是透過要求傳送 (RTS) 及清除發送 (CTS) 流程控制訊號來執行,以確保兩個元件皆已準備好傳輸數據,且接收元件已收到該數據。硬體交握會使用以下動作執行:
- 數據終端設備會將 RTS 線路下拉到「1」或「Mark」狀態。
- 數據通訊設備會將 CTS 線路拉進到「1」或「Mark」狀態。
- 數據終端設備會在資料傳輸期間將「資料終端就緒」(DTR) 線路拉到「1」或「Mark」狀態
- 在傳輸結束時,數據終端設備會將 DTR 與 RTS 線路恢復到「0」或「Space」狀態
- 數據通訊設備會將 CTS 線路回復到「0」或「Space」狀態。
在資料串流中傳送 XON (ASCII DC1, hex 11) 與 XOFF (ASCII DC3, hex 13) 字元時,RS-232 也可以使用軟體交握來控制資料流,並執行類似的傳輸資料同步。
UART 功能方塊圖
Texas Instruments 的 TL16C752D 是雙 UART,具有 64 位元組接收與傳輸 FIFO,資料傳輸率最高可達每秒 3 Mb (圖 3)。
圖 3:3 Mbit/s Texas Instruments TL16C752D 雙 UART 的功能方塊圖,顯示 64 位元組的 FIFO 與介面線路。(圖片來源:Texas Instruments)
UART 的每個區塊都有自己的軟體控制波特率產生器。資料匯流排介面會執行並聯轉串列的資料轉換,並且餽送雙 UART 的兩個區塊,而每個區塊都有獨立的控制線路。在 -40°C 到 85°C 的溫度範圍內,TL16C752D 的操作電壓介於 1.8 V 與 5.5 V 之間。
微控制器式的 UART
許多微控制器 (如 Microchip Technology PIC16F688T-I/SL) 都包含串列資料介面,用來與監視器、外部類比數位轉換器 (ADC) 及數位類比轉換器 (DAC) 或其他微控制器進行通訊 (圖 4)。
圖 4:Microchip Technology 的 PIC16F688T-I/SL CMOS 微控制器內含串列介面,使用增強型通用式同步/非同步接收器/發射器 (EUSART)。(圖片來源:Microchip Technology)
EUSART 有時稱為串列通訊介面 (SCI),可設定為全雙工非同步或半雙工同步串列資料連線。PIC16F688T-I/SL 當中的 EUSART 包含所有的移位暫存器、時脈產生器,以及資料緩衝器,這些都是獨立於微控制器程式之外,執行輸入或輸出串列資料傳輸所必要的元件。此產品具有一個雙字元接收緩衝器,以及一個單字元傳送緩衝器。這款全雙工的非同步介面,相當適合與顯示監視器等外部週邊裝置進行通訊,這些裝置就是與微控制器中此介面連接的主要應用。
線路驅動器
線路驅動器會對傳送與接收訊號進行緩衝,以強化 UART 的運作。這些元件能夠在整個 RS-232 的電壓規格範圍內運作,因此相當實用。Texas Instruments 的 MAX232DR 雙 RS-232/TIA/EIA-232-F 收發器便是這類元件的其中一例 (圖 5)。
圖 5:使用 MAX232DR 雙驅動器/接收器來緩衝 TL16C752D 雙 UART。MAX232DR 最高能容許 ±30 V 的輸入電壓,而輸出會受到保護、不與地線形成短路。(圖片來源:Texas Instruments)
對於需要較高電壓的工業應用,MAX232DR 線路驅動器/接收器具有優勢,而且最高可以維持 ±30 V 的輸入電壓。這款元件內含電容式電壓產生器,使用四個外部電容對 RS-232 供應 -5 到 -7 V 的電壓,並從單一的 5 V 供應電壓,在輸出端提供 +5 到 +7 V 的電壓。
差動訊號
RS-232 為傳送與接收線路使用單端連接。使用這樣的單端連接,訊號電壓是在線路至接地處的兩端測量到。在工業環境中,RS-232 訊號線路會拾取很多雜訊,如此會限制匯流排的線路長度。對於這種限制,傳統做法便是使用差動訊號。
差動匯流排為每個訊號提供兩條線路,其中的訊號是透過測量兩條線路間的電壓差異來測定。因為這兩條訊號線路經常會出線雜訊和串音,因此差異測量值會減去這些幾乎相同的訊號,使訊號振福大幅降低。另外,差動纜線也會予以屏蔽,進一步減少拾取到的雜訊和干擾。
使用差動訊號線路的常見資料匯流排標準有兩種:RS-422 (TIA/EIA-422) 及 RS-485 (TIA/EIA-485),而後者是最常見的工業串列匯流排。這些標準使用了雙絞線傳輸線路,相連的裝置彼此的距離可長達 1200 公尺 (4000 英呎),且都具有最高 10 Mb/s 的數據傳輸率。三種串列匯流排的比較如示 (表 2)。
|
表 2:RS-232、RS-422 及 RS-485 標準間的比較。(表格來源:DigiKey)
RS-422 與 RS-485 的差異點:RS-485 最多可以使用 32 個收發器 (可以使用匯流排擴充器加入更多收發器),而 RS-422 在匯流排上僅限使用 10 個接收器。全雙工模式下的 RS-485 需要使用四條線路;相對之下,RS-422 在半雙工模式下需要使用兩條 (圖 6)。
圖 6:RS-485 介面的全雙工 (左) 與半雙工拓撲。電腦或主裝置顯示為紅色;其他裝置則為藍色。(圖片來源:Texas Instruments)
在差動匯流排的配線中,每條傳送或接收訊號線路使用兩條導線,如圖所示。全雙工運作需要四條線路,而半雙工只需要兩條。因為 RS-422 與 RS-485 的速度都比較快,因此傳輸線路必須在兩端終接。至於雙絞線,端子電阻 RT 為 120 Ω。從 TL16C752D 介面 IC 具有雙 UART 的配置來看,我們或許可以推測該 IC 具有 RS-485 模式。這就是為何許多 UART 以及相關的線路驅動器會採用雙重配置的原因。
RS-422 在發射器端的電壓等級為 ±6 V,而 RS-485 則為 -7 到 +12 V。在接收器處,這兩種標準的靈敏度皆為 ±200 mV。
結論
RS-232、RS-422 及 RS-485 等三種串列介面,可為長距離與短距離的串列通訊提供多種可靠的選擇。UART 是這三種標準的基礎,因此可在設計中輕鬆加入串列通訊,特別是在相當具挑戰性的工業環境中。

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。