自從USB接口問世以來,串口設備以及計算機主機上設置的串行端口均有減少,但工業(yè)聯(lián)網(wǎng)環(huán)境或商業(yè)項目上仍然對串行接口廣泛使用。今天使用了數(shù)十個串行數(shù)據(jù)接口。大多數(shù)已針對特定應用開發(fā)。一些已經(jīng)成為普遍,如I2C、CAN、LIN、SPI、軟硬、MOST、I2S。有以太網(wǎng)、HDMI和迅雷等更高速度的串行接口。最經(jīng)典的兩個接口是RS232和RS485。這些流傳已久的以太網(wǎng)接口之所以被一直使用,必然是有存在的價值。那么就研究一下RS485和RS232原理是什么?區(qū)別是什么?什么價值能讓它們經(jīng)久不衰呢?
串行接口的整個目的是為無線或通過電纜的數(shù)據(jù)傳輸提供單一路徑。在某些應用中仍使用并行總線。但是對于當今如此普遍的高速數(shù)據(jù),串口服務器是在大于幾公里的任何距離上進行穩(wěn)定通信的首要實用選擇。
串行接口可用于提供從發(fā)送器到接收器的標準化邏輯級別、定義傳輸介質和連接器,以及指定時序和數(shù)據(jù)速率。在某些情況下,他們可以執(zhí)行串行到并行和并行到串行轉換,或者指定基本數(shù)據(jù)協(xié)議。
邏輯級別、介質和連接器的定義是物理層(PHY)或開放系統(tǒng)互連(OSI)網(wǎng)絡模型的第1層的一部分。諸如數(shù)據(jù)處理之類的任何其他功能都是OSI模型的媒體訪問控制(MAC)層或第2層的一部分。
RS232串口
最古老的串行接口之一通常稱為RS232。它最初成立于1962年,是一種將數(shù)據(jù)終端設備(DTE)(例如機電式電傳打字機)連接到數(shù)據(jù)通信設備(DCE)的方法。多年來,它的使用包括連接到視頻終端、計算機和調制解調器。第一臺個人計算機包括一個稱為串行端口的RS232,用于連接打印機或其他外圍設備。今天,它仍然廣泛用于嵌入式計算機開發(fā)系統(tǒng)、科學儀器以及各種工業(yè)控制設備中。
該標準的正式名稱是電子工業(yè)協(xié)會/電信工業(yè)協(xié)會EIA / TIA-232-F。字母F表示最新的標準修改和更新。該標準基本上與國際電信聯(lián)盟–電信(ITU-T)規(guī)范V.24和V.28相同。
該標準將邏輯1和–3至–25 V之間的電壓以及邏輯0定義為+3至+ 25 V之間的電壓電平(圖1)。信號電平通常被稱為邏輯1的標記和邏輯0的間隔?!? V之間的電壓無效,從而為接口提供了巨大的噪聲容限。此范圍內的噪聲電壓被拒絕。在通常的實踐中,邏輯0和1電平通常低至±5 V,高至±12或±15V。發(fā)送器和接收器配置為單端(非差分),具有接地基準。
1.電壓電平定義邏輯1或標記以及邏輯0或空格字符?!? V之間的電壓無效。
電纜介質可以是簡單的平行線或雙絞線。電纜的長度決定了較高的數(shù)據(jù)速率,通常不應超過50英尺。但是,在數(shù)據(jù)速率較低的情況下,可以使用更長的電纜長度。今天的主要目標是使用電線之間的電容不超過2500 pF的電纜。這將上限數(shù)據(jù)速率限制為大約20 kbits / s。由于此接口使用的低速數(shù)據(jù)速率,通常不會將電纜視為正式的傳輸線。傳輸線需要匹配的發(fā)生器阻抗和負載阻抗,以消除引起數(shù)據(jù)損壞的反射。
該標準定義了一個稱為DB-25的25針連接器,該連接器旨在承載各種控制線以及串行數(shù)據(jù)發(fā)送和接收線。這種連接器如今很少使用。取而代之的是,定義了一個稱為DE-9的9針連接器,如今已成為事實上的標準(圖2)。
2.流行的DB9連接器承載所示信號。這些數(shù)字是連接器上的引腳號。
最初,機電設備的數(shù)據(jù)速率非常慢。最低速率通常為75位/秒,但通常為150和300位/秒。如今,數(shù)據(jù)速率由接口所使用的協(xié)議定義,范圍高達115.2 kbit / s。典型的數(shù)據(jù)速率是1200、2400、4800、9600、19,200、38,400和115,200比特/秒。數(shù)據(jù)速率受最大允許壓擺率30 V / μs(伏特/微秒)的限制。對于短的低電容電纜,使用適當?shù)尿寗悠?,?shù)據(jù)速率可以高達每秒幾兆比特。
許多RS-232連接是單向或單工的。但是,使用可用的特殊信號和控制電壓,可以進行雙向或半雙工操作。兩個連接的設備交替進行發(fā)送和接收操作。
接口中的控制信號定義了用于發(fā)送和接收數(shù)據(jù)的協(xié)議。這些信號告訴兩個通信設備何時繁忙,正在發(fā)送,已準備就緒和正在接收。發(fā)送設備是DTE(例如計算機),接收設備是DCE(例如打印機)。公用九針連接器上使用的控制信號是:
數(shù)據(jù)載體檢測(DCD):DCE告知DTE它正在接收有效的輸入信號。
數(shù)據(jù)集準備就緒(DSR):DCE告知DTE它已連接并準備接收。
接收數(shù)據(jù)(RD):這是從DTE接收到的實際信號。
發(fā)送請求(RTS):來自DTE的此信號告訴DCE準備發(fā)送。
發(fā)送數(shù)據(jù)(TD):這是DTE發(fā)送的信號。
清除發(fā)送(CTS):DCE上的此行告訴DTE它已準備好接收數(shù)據(jù)。
數(shù)據(jù)終端就緒(DTR):這條線從DTE到DCE,表明已準備好發(fā)送或接收數(shù)據(jù)。
振鈴指示器(RI):這條線用于較舊的調制解調器連接中,但不再使用。
信號接地:這是所有信號的公共接地。
3.這是DTE和DCE設備之間的常用連接。注意電纜從一個連接器到另一連接器的連接。
盡管不是RS-232標準的正式組成部分,但大多數(shù)使用該接口的串行設備也使用所謂的通用異步接收器發(fā)送器(UART)。該IC通常與線路驅動器和接收器電路分開,實現(xiàn)一種基本通信協(xié)議,該協(xié)議每次最多傳輸8位。它執(zhí)行串行到并行和并行到串行的轉換,添加開始和停止位以表示數(shù)據(jù)字的開始和結束,奇偶校驗位錯誤檢測以及數(shù)據(jù)速率的建立。
數(shù)據(jù)通常是ASCII字符,但是最多可以傳輸8位的任何數(shù)據(jù)字(圖4)。UART通??梢耘渲脼樘幚聿煌淖珠L(5至8位),添加1、1.5或2個停止位,并包括奇數(shù),偶數(shù)或無奇偶校驗位。數(shù)據(jù)速率從75位/秒到115.2 kbit / s是可選的。
RS-485
也由EIA / TIA標準定義,此接口現(xiàn)在稱為TIA-485。它不僅定義了單個設備到設備的接口,而且定義了可用于形成多個設備的簡單網(wǎng)絡的通信總線。它的配置和規(guī)格還擴展了RS-232接口功能之外的范圍和數(shù)據(jù)速率。
RS-485標準規(guī)定了兩條線路上的差分信號,而不是參考電壓為接地的單端。邏輯1的電平大于–200 mV,邏輯0的電平大于+200 mV。來自線路驅動器的典型線路電壓電平最低為±1.5 V,最高約為±6V。接收器輸入靈敏度為±200 mV?!?00 mV范圍內的噪聲基本上被阻止。差分格式產生有效的共模噪聲消除。
標準傳輸介質是#22或#24 AWG實心線的雙絞線電纜。最少兩線,但可以使用第三根參考線。如果需要全雙工操作,也可以使用四線電纜。電纜可以是屏蔽的也可以是非屏蔽的,最常見的是非屏蔽的。電纜被視為傳輸線。標稱特性阻抗為100或120Ω。需要使用端接負載電阻器來確保匹配的線路狀況,以防止反射引入數(shù)據(jù)錯誤。
該標準未定義特定的連接器。已經(jīng)使用了各種連接方法,包括RS-232 DE-9連接器。簡單的螺釘端子連接在某些類型的工業(yè)控制設備中很常見。
電纜長度定義了較高的數(shù)據(jù)速率。但是由于較低的邏輯電壓電平和差分連接,取決于電纜長度,數(shù)據(jù)速率可能會超過10 Mbits / s。通常將最大電纜長度定義為1200米或約4000英尺。4000英尺處的典型最大數(shù)據(jù)速率為100 kbits / s。一般準則是,以米為單位的線路長度與以每秒比特數(shù)為單位的數(shù)據(jù)速率之積不應超過10 8。例如,一條20米長的電纜將允許5 Mbit / s的最大數(shù)據(jù)速率。
RS-485接口可通過單對電纜以半雙工的單工模式使用??梢允褂脙蓪﹄娎|實現(xiàn)全雙工或同時發(fā)送和接收操作。常見的配置是具有多個分支或連接的總線網(wǎng)絡。該標準規(guī)定了最多32個驅動器(發(fā)送器)和32個接收器(圖5)。不傳輸時,線路驅動器與線路斷開連接。所有接收器均已完全連接,并且總線端接有負載匹配電阻。
5.這是典型的TIA-485差分總線的表示,其中顯示了各個驅動器(D)和接收器(R)以及收發(fā)器。注意總線終端電阻的末端。
該標準尚未定義特定的通信協(xié)議。有時會使用標準UART協(xié)議。大多數(shù)應用程序定義了唯一的協(xié)議。
接口變化
在實踐中偶爾會發(fā)現(xiàn)這兩個標準的幾種變體。RS-422是RS-485的變體,具有類似的規(guī)格,但僅設計用于一個驅動器和最多10個接收器。邏輯電平范圍為±2到±6V。RS-423是RS-422的單端而不是差分版本。否則,其他規(guī)格類似于RS-485接口。