通過RS-232、RS-422和RS-485接口,UART工業通信
通過 RS-232、RS-422 和 RS-485 接口,UART 確保了可靠的遠距離工業通信
對于工業檢測和控制,通信總線面臨諸多挑戰。例如,數百甚至數千英尺的布線稀松平常,而惡劣的操作環境簡直堪稱工業環境的代名詞。工業設備往往需要在寬溫度范圍內工作;無論電源線路還是信號線路均存在較高的電噪聲;電磁干擾 (EMI)、靜電放電 (ESD) 或短路等故障事件頻發。
使用基于通用異步接收器/發射器 (UART) 的可靠串行接口即可解決這些問題。有些供應商也將 UART 稱作異步通信元件 (ACE)。UART 可以是 Texas Instruments 的 TL16C752D 一類的獨立器件,也可以如 Microchip Technology 的 PIC16F688T-I/SL 一樣集成在微控制器中。
只要線路驅動器使用得當,UART 即可實現遠距離通信:使用 RS-232 串行數據總線,可傳輸 15 m;使用 RS-485 或 RS-422 接口,則可傳輸 1000 m。這三種協議均在工廠自動化應用中用于控制遠程設備和控制器,旨在大限度地降低惡劣環境中的 EMI 和 ESD 的影響。
本文將介紹這些常用工業控制接口協議的背景,并說明如何利用 UART 和線路驅動器來實現這些協議。
RS-232
RS-232 串行通信標準現在也稱為 EIA/TIA-232-F,是由美國電子工業協會/電信工業協會公布的一項標準。字母 F 表示為xin版本。該標準與電信聯盟 (ITU) 的 V.24 和 V.28 標準具有等效性。初,該接口作為個人電腦的串行總線,用于連接計算機(術語稱作數據終端設備 (DTE))與調制解調器(稱作數據通信設備 (DCE))。
EIA/TIA-232-F 定義了物理層的標準,包括信號電平和時序、控制信號、連接器及其接線,但沒有定義字符編碼、組幀等協議層的其他方面。典型的異步串行總線包括 UART 或 ACE、線路驅動器、連接器及電纜(圖 1)。
圖 1:基本 RS-232 系統包括計算機等數據終端設備 (DTE) 和調制解調器等數據通信設備 (DCE)。UART/ACE 可通過 RS-232 串行接口與計算機并行背板連接。
UART/ACE 將計算機內部并行總線轉換為串行數據流。此外,還提供輸入和輸出*先出 (FIFO) 存儲緩沖器、接口時鐘(一般稱為波特率發生器)、接口時序和握手信號。UART/ACE 的模擬輸入和輸出可以由線路驅動器提供緩沖。DTE 的輸出稱為發送信號 (TX),而輸入稱為接收信號 (RX)。接口電纜的大長度以 15 米為限。電纜的長度決定了通過接口總線能夠可靠傳輸的大數據速率。
RS-232 接口通過全雙工連接來接通兩臺設備,因而每臺設備可以同時發送和接收。RS-232 串行數據包由 1 個起始位、5 至 8 個數據位、1/1.5/2 個停止位和 1 個奇偶校驗位組成(圖 2)。
圖 2:RS-232 數據包由 1 個起始位、5 至 8 個數據位(圖示為 8 個)、1 個奇偶校驗位(可選)和 1、1.5 或 2 個停止位組成。
RS-232 電纜至少需要三芯線:一根用于發送,一根用于接收,還有一根用于信號接地。接地線是兩條信號線的回路。
RS-232 的許多特性與其初在電信領域中的應用有關。該標準使用負邏輯,高電平稱為空號,低電平稱為傳號。中性或空閑狀態為高電平,因此可以遠程驗證互連。在發送端,邏輯 0(空號)的電平范圍在 +5 至 +15 V 之間,邏輯 1(傳號)的電平范圍在 -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 米。提高波特率,電纜大長度就相應縮短。
RS-232 控制信號
RS-232 規定了若干控制信號。這些信號用于報告 DTE 和 DCE 設備的狀態,并通過基于硬件的握手來確定數據傳輸速率(表 1)。
|
表 1:RS-232 控制和握手信號。
硬件握手通過請求發送 (RTS) 和允許發送 (CTS) 流控制信號來實現,以確保兩臺設備都已做準備好傳輸數據,并且接收設備已經收到數據。硬件握手通過以下操作實現:
- 數據終端設備將 RTS 線設置為邏輯 "1",即“傳號”狀態
- 數據通信設備將 CTS 線設置為邏輯 "1",即“傳號”狀態
- 數據終端設備將數據終端就緒 (DTR) 線設置為邏輯 "1",即“傳號”狀態,并在整個數據傳輸期間保持該狀態
- 傳輸結束時,數據終端設備將 DTR 和 RTS 線恢復為邏輯 "0",即“空號”狀態
- 數據通信設備將 CTS 線恢復為邏輯 "0",即“空號”狀態
RS-232 還能通過軟件握手來控制數據流。在這種方式下,XON(ASCII DC1,十六進制數 11)和 XOFF(ASCII DC3,十六進制數 13)字符以數據流形式發送,數據傳輸類似同步傳輸。
UART 功能框圖
Texas Instruments 的 TL16C752D 是一款雙通道 UART,具有 64 字節的接收和發送 FIFO,數據速率高達 3 Mb/s(圖 3)。
圖 3:Texas Instruments 的 TL16C752D 3 Mb/s 雙通道 UART 功能框圖顯示該器件具有 64 字節的 FIFO 和接口線。(圖片來源:Texas Instruments)
每 UART 通道都具有獨立的波特率發生器,可由軟件進行控制。數據總線接口將并行數據轉換為串行數據,并同時饋入兩個 UART 通道。每個通道都具有獨立的控制線。TL16C752D 的工作電壓范圍為 1.8 V 至 5.5 V,工作溫度范圍為 -40°C 至 85°C。
基于微控制器的 UART
Microchip Technology 的 PIC16F688T-I/SL 等許多微控制器都包括串行數據接口,可用于與監視器、外部模數轉換器 (ADC)、數模轉換器 (DAC) 或其他微控制器進行通信(圖 4)。
圖 4:Microchip Technology 的 PIC16F688T-I/SL CMOS 微控制器串行接口采用增強型通用同步/異步接收器/發送器 (EUSART)。
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 的輸入電壓,而且輸出具有接地短路保護。
在需要較高電壓的工業應用中,MAX232DR 線路驅動器/接收器具有明顯優勢,因為該器件能承受高達 ±30 V 的輸入電壓。該器件包括一個電容式電壓發生器,采用 5 V 單電源供電,使用四個外部電容器,在輸出端提供 -5 V 至 -7 V 和 +5 V 至 +7 V 的 RS-232 電平。
差分信號
RS-232 的發送和接收線使用單端連接。采用此類單端連接時,信號電壓是以線-地電壓來衡量。在工業環境中,RS-232 信號線會帶入很多噪聲,因此需要限制總線的長度??朔@一限制的經典方法是使用差分信號。
差分總線的每路信號由兩條線組成,信號電壓則是以兩條信號線之間的電壓差來衡量。對于兩條信號線而言,噪聲和串擾一般是相同的,因此差分測量幾乎可以*消除這些相同的干擾信號,從而顯著降低了噪聲和串擾的幅度。此外,差分電纜還帶有屏蔽,可進一步降低噪聲和干擾的帶入。
使用差分信號線的常用數據總線標準有兩種:RS-422 (TIA/EIA-422) 和 RS-485 (TIA/EIA-485),后者是常見的工業串行總線。這些標準的傳輸線使用雙絞線,連接設備遠可以相距 1200 m (4000 ft)。這兩項標準的大數據速率均達 10 Mb/s。上述三種串行總線的比較如下所示(表 2)。
|
表 2:RS-232、RS-422 和 RS-485 標準的特征比較。
RS-422 和 RS-485 的區別在于,RS-485 可以與多達 32 臺收發器配合使用(若采用總線擴展器,可以連接更多收發器),而 RS-422 總線上多只能連接 10 臺接收器。全雙工模式下的 RS-485 需要四芯線,而半雙工模式下只需要兩芯線;RS-422 也只需要兩芯線(圖 6)。
圖 6:RS-485 接口的全雙工(左)和半雙工拓撲。計算機或主控設備顯示為紅色,其他設備為藍色。
差分總線的每路發送或接收信號線均需使用兩芯線,如圖所示。全雙工操作需要四芯線,而半雙工只需要兩芯線。由于 RS-422 和 RS-485 的傳輸速率較高,傳輸線的兩端都必須端接。對于雙絞線,端接電阻 RT 為 120 Ω。由于 TL16C752D 接口 IC 具有雙通道 UART 配置,因此可以推斷該器件具有 RS-485 模式。這也是許多 UART 和相關線路驅動器采用雙通道配置的原因。
RS-422 發送器端的電平為 ±6 V,而 RS-485 為 -7 至 +12 V。在接收器端,兩項標準的靈敏度均為 ±200 mV。
總結
無論距離遠近,RS-232、RS-422 和 RS-485 三種串行接口均可為串行通信提供多種可靠選擇。UART 為這三項標準夯實了基礎,從而可以在設計中輕松增加串行通信,尤其是那些針對惡劣工業環境的設計。