系統(tǒng)或子系統(tǒng)之間的異步串行通信解決方案包括許多可能的接口實(shí)現(xiàn)——例如,RS-232、RS-485、RS-422、控制器局域網(wǎng) (CAN)、以太網(wǎng)、本地互連網(wǎng)絡(luò)、高速公路可尋址遠(yuǎn)程傳感器、IO-鏈接和無(wú)線協(xié)議,如 Zigbee 或 LoRa。在許多情況下,互操作性問(wèn)題是選擇協(xié)議時(shí)的最大決定因素,特別是如果您設(shè)計(jì)的子系統(tǒng)必須與現(xiàn)有網(wǎng)絡(luò)和安裝進(jìn)行通信,或者與上一代設(shè)計(jì)向后兼容。
但是對(duì)于沒(méi)有這些限制的較新的應(yīng)用程序,選擇正確的接口實(shí)現(xiàn)需要評(píng)估一系列因素之間的權(quán)衡,例如通信帶寬、距離、總線拓?fù)浜凸?jié)點(diǎn)數(shù)、總線訪問(wèn)方法、解決方案成本以及與其他設(shè)備互操作的能力。系統(tǒng)。
本文旨在通過(guò)對(duì)一些常見(jiàn)標(biāo)準(zhǔn)的高級(jí)概述來(lái)幫助您做出更明智的接口選擇:RS-232、RS-422 和 RS-485 以及 CAN。這些標(biāo)準(zhǔn)因其穩(wěn)健性、易于實(shí)施和滿足常見(jiàn)應(yīng)用需求的能力而繼續(xù)在工業(yè)通信中得到廣泛采用,并且盡管引入了更新的通信技術(shù),但它們的使用預(yù)計(jì)將持續(xù)一段時(shí)間。
RS-232
RS-232 最初于 1960 年由電子工業(yè)協(xié)會(huì) (EIA) 標(biāo)準(zhǔn)化,是仍在積極使用的最古老的數(shù)字通信技術(shù)之一。該標(biāo)準(zhǔn)的當(dāng)前版本是電信行業(yè)協(xié)會(huì) (TIA)-232-F,描述了一種單端信令方案,該方案本質(zhì)上是點(diǎn)對(duì)點(diǎn)的(如圖1所示),旨在在數(shù)據(jù)終端設(shè)備 (DTE) 之間運(yùn)行),例如 PC 和數(shù)據(jù)電路終端設(shè)備 (DCE),例如調(diào)制解調(diào)器。

圖 1:點(diǎn)對(duì)點(diǎn)連接(圖片:德州儀器)
TIA-232-F 定義了幾種不同的物理信號(hào):
從 DCE 到 DTE 的數(shù)據(jù)載波檢測(cè) (DCD)。
從 DCE 到 DTE 的數(shù)據(jù)集就緒 (DSR)。
從 DCE 接收數(shù)據(jù) (RD) 到 DTE。
從 DTE 到 DCE 的請(qǐng)求發(fā)送 (RTS)。
將數(shù)據(jù) (TD) 從 DTE 傳輸?shù)?DCE。
從 DCE 到 DTE 的清除發(fā)送 (CTS)。
從 DTE 到 DCE 的數(shù)據(jù)終端就緒 (DTR)。
從 DCE 到 DTE 的振鈴指示器 (RI)。
TD 和 RD(有時(shí)稱(chēng)為 TxD 和 RxD)用于傳輸串行數(shù)據(jù),而其他信號(hào)有助于管理系統(tǒng)之間的數(shù)據(jù)流。存在這種流控制是為了確保系統(tǒng)僅在能夠處理串行數(shù)據(jù)時(shí)才接收串行數(shù)據(jù),以便在設(shè)備之間的運(yùn)行速度不匹配時(shí)不會(huì)發(fā)生緩沖區(qū)溢出。然而,在許多現(xiàn)代實(shí)現(xiàn)中,物理流量控制信號(hào)的數(shù)量通常會(huì)減少或完全省略,以支持基于軟件的流量控制。
邏輯低或邏輯高狀態(tài)在線路上分別表示為正電壓或負(fù)電壓,其在發(fā)射器輸出端的幅度相對(duì)于地的變化范圍為 ±5 V 至 ±15 V(假設(shè)標(biāo)準(zhǔn)接收器負(fù)載條件)。在許多現(xiàn)代實(shí)現(xiàn)中,具有集成電荷泵電路的收發(fā)器基于 5 V、3.3 V 或 1.8 V 等較低電壓邏輯電源產(chǎn)生這些較高電壓的雙極軌。接收器電路可以可靠地檢測(cè)高和低狀態(tài),只要它們超過(guò)±3 V 幅度。示例發(fā)送和接收波形如圖2 所示。

圖 2:RS-232 發(fā)送和接收波形(圖片:德州儀器)
這些相對(duì)較高的電壓有助于通過(guò)合理的電纜連接擴(kuò)展接口,并提供一定程度的抗噪性。然而,較大的信號(hào)擺幅確實(shí)會(huì)導(dǎo)致通信速度相對(duì)較慢(低波特率),因?yàn)槌鲇陔姶鸥蓴_ (EMI) 的原因,必須限制發(fā)送器輸出的轉(zhuǎn)換或壓擺率。由于這一限制,TIA-232 標(biāo)準(zhǔn)規(guī)定最大波特率僅為 20 kbits/s。然而,許多現(xiàn)代實(shí)現(xiàn)在這方面偏離了標(biāo)準(zhǔn),并且可以使用能夠?qū)崿F(xiàn)更高速度(1 Mbits/s)的收發(fā)器。
與采用平衡差分信號(hào)的較新接口標(biāo)準(zhǔn)相比,可實(shí)現(xiàn)的電纜長(zhǎng)度是有限的?;ミB電容限制為 2500 pF,這通常意味著電纜長(zhǎng)度約為 15 到 20 米 (m)。
對(duì)于許多應(yīng)用而言,該標(biāo)準(zhǔn)的另一個(gè)缺點(diǎn)是它無(wú)法支持多點(diǎn)總線。只允許點(diǎn)對(duì)點(diǎn)連接,因此互連節(jié)點(diǎn)的數(shù)量限制為兩個(gè)。
盡管存在這些缺點(diǎn),但 RS-232 仍然很受歡迎,因?yàn)樗子趯?shí)施、在終端設(shè)備中無(wú)處不在,并且在現(xiàn)場(chǎng)安裝了數(shù)十年。
RS-422 和 RS-485
RS-422 (TIA/EIA-422) 和 RS-485 (TIA/EIA-485) 通過(guò)使用平衡差分信號(hào)而不是單端(接地參考)信號(hào)來(lái)支持更長(zhǎng)距離的更高速通信。換句話說(shuō),邏輯高或邏輯低狀態(tài)由信號(hào)對(duì)的互補(bǔ)同相和反相半部分之間的正電壓差或負(fù)電壓差表示。這些半部分通常被稱(chēng)為發(fā)射器的 Y 和 Z,以及接收器的 A 和 B。(在兩個(gè)方向上使用單對(duì)數(shù)據(jù)的半雙工實(shí)現(xiàn)通常僅使用 A 和 B 命名。)接收波形的示例發(fā)送如圖 3 所示。

圖 3:RS-485 示例波形;通道 2 (VOD) 顯示 A 相對(duì)于 B 的電壓(圖片:德州儀器)
使用差分信號(hào)有幾個(gè)優(yōu)點(diǎn):
使用兩條互補(bǔ)信號(hào)線有效地使傳輸?shù)男盘?hào)幅度加倍,從而使用由標(biāo)準(zhǔn)低壓軌(例如 5 V 或 3.3 V)供電的收發(fā)器實(shí)現(xiàn)更遠(yuǎn)距離的通信。
由于接收器感應(yīng)到兩條信號(hào)線之間的差異,因此通信更不受局部接地電位的微小差異(這會(huì)在接地參考信號(hào)上產(chǎn)生電壓偏移)和可能耦合到信號(hào)電纜上的電磁噪聲的影響(因?yàn)檫@種噪聲傾向于同等地影響差分對(duì)的兩半)。因此,該接口更適合在更長(zhǎng)的距離以及跨電源域和電噪聲環(huán)境中運(yùn)行。
電磁輻射較低,因?yàn)閬?lái)自一條信號(hào)線的噪聲貢獻(xiàn)被來(lái)自互補(bǔ)線的相等和相反的貢獻(xiàn)有效地抵消。這與較低的電壓擺幅相結(jié)合,通??梢栽诓怀^(guò)應(yīng)用的 EMI 要求的情況下使用更高的信號(hào)速率。
假設(shè)最大總線負(fù)載(包括終端電路),RS-485 發(fā)送器將輸出至少 1.5 V 的差分電壓幅度,接收器將檢測(cè)至少 200 mV 的信號(hào)。(對(duì)于 RS-422,這些值分別為 2 V 和 200 mV。)對(duì)于以低數(shù)據(jù)速率運(yùn)行的應(yīng)用,傳輸距離可能超過(guò) 1 公里 (km),主要受所用電纜的串聯(lián)電阻限制. 對(duì)于較短距離的應(yīng)用,可以實(shí)現(xiàn)高達(dá) 50 Mbits/s 的信號(hào)速率,盡管受到收發(fā)器切換時(shí)間和電纜寄生引起的高頻損耗所引入的定時(shí)抖動(dòng)的限制。
除了增加的距離和信號(hào)速率,RS-422 和 RS-485 還可以支持多點(diǎn)網(wǎng)絡(luò)應(yīng)用。它們的使用通過(guò)將一系列點(diǎn)對(duì)點(diǎn)連接(主機(jī)和外圍設(shè)備之間)替換為可以連接多個(gè)系統(tǒng)的單個(gè)共享總線來(lái)簡(jiǎn)化工業(yè)安裝中的布線。
RS-422 指定支持單工多點(diǎn)布置,其中一個(gè)發(fā)射單元可以廣播到多達(dá) 10 個(gè)接收單元。RS-485 通過(guò)允許大量節(jié)點(diǎn)之間的雙向通信(半雙工或全雙工)進(jìn)一步擴(kuò)展了這一概念。在這種情況下,節(jié)點(diǎn)數(shù)受到每個(gè)接收器對(duì)共享總線貢獻(xiàn)的負(fù)載的限制,最多允許 32 個(gè)單元負(fù)載。單位負(fù)載定義為在施加電壓范圍內(nèi)接收器泄漏電流的參考單位。
對(duì)于現(xiàn)代實(shí)現(xiàn),通過(guò)使用泄漏較低的收發(fā)器設(shè)備可以實(shí)現(xiàn)非常高的節(jié)點(diǎn)數(shù);例如,額定為八分之一單位負(fù)載的收發(fā)器可以支持 256 個(gè)節(jié)點(diǎn) (32 × 8) 的網(wǎng)絡(luò)。多點(diǎn)網(wǎng)絡(luò)的一個(gè)例子如圖4所示。

圖 4:用于 RS-485 通信的多點(diǎn)網(wǎng)絡(luò)(圖片:德州儀器)
RS-485 支持廣泛的距離、數(shù)據(jù)速率和節(jié)點(diǎn)數(shù)以及出色的抗噪能力,這使得 RS-485 成為許多不同應(yīng)用中的理想選擇。它在工業(yè)環(huán)境(用于電機(jī)控制的編碼器接口或工廠自動(dòng)化應(yīng)用中的現(xiàn)場(chǎng)總線)、電網(wǎng)基礎(chǔ)設(shè)施(作為智能電能計(jì)量的接口)和樓宇自動(dòng)化應(yīng)用(恒溫器或智能照明控制)中很受歡迎。
能夠
汽車(chē)行業(yè)最初開(kāi)發(fā) CAN 是為了方便將消息從微控制器廣播到共享網(wǎng)絡(luò),這樣就可以使用簡(jiǎn)單的總線型布線,而不是單個(gè)點(diǎn)對(duì)點(diǎn)連接的復(fù)雜(和沉重)線束。這種接口的好處不僅僅在于汽車(chē)應(yīng)用。如今,CAN 廣泛用于各種工業(yè)通信應(yīng)用,例如樓宇自動(dòng)化(供暖、通風(fēng)和空調(diào);電梯)、工業(yè)運(yùn)輸和工廠自動(dòng)化。它是根據(jù)國(guó)際標(biāo)準(zhǔn)化組織 11898 進(jìn)行標(biāo)準(zhǔn)化的,該組織不僅定義了物理層,還定義了數(shù)據(jù)鏈路層協(xié)議。(這與迄今為止討論的標(biāo)準(zhǔn)相反,
與 RS-485 一樣,CAN 使用平衡差分信號(hào)來(lái)實(shí)現(xiàn)更長(zhǎng)的傳輸距離、更低的 EMI 和更高的抗噪能力。然而,CAN 驅(qū)動(dòng)器不是同時(shí)驅(qū)動(dòng)高電平和低電平狀態(tài),而是設(shè)計(jì)為具有這兩種輸出狀態(tài),如圖5所示:
顯性,其中通過(guò)將一條線(稱(chēng)為 CANH)拉高并將互補(bǔ)線(稱(chēng)為 CANL)拉低,將差分輸出電壓驅(qū)動(dòng)到總線。產(chǎn)生的驅(qū)動(dòng)器差分輸出電壓必須至少為 1.5 V,并且接收器被設(shè)計(jì)為將任何大于 900 mV 的差分電壓視為主要電壓。該狀態(tài)用于表示邏輯低位值。
隱性,其中總線輸出為高阻抗,CANH 和 CANL 都被弱偏置到中等電壓。在這種狀態(tài)下,驅(qū)動(dòng)器差分輸出電壓將接近 0 V,接收器能夠?qū)⑷魏蔚陀?500 mV 的差分電壓視為隱性電壓。此狀態(tài)用于表示邏輯高位值。

圖 5:顯示 CANH 和 CANL 信號(hào)的 CAN 波形(圖片:德州儀器)
每個(gè)狀態(tài)下有效輸出阻抗的差異意味著如果一個(gè)或多個(gè)節(jié)點(diǎn)正在發(fā)送一個(gè)顯性狀態(tài),則認(rèn)為總線狀態(tài)是顯性的;只有當(dāng)每個(gè)節(jié)點(diǎn)都處于隱性狀態(tài)時(shí),總線狀態(tài)才能被認(rèn)為是隱性的。(這種類(lèi)型的線與信號(hào)類(lèi)似于許多其他協(xié)議中常見(jiàn)的開(kāi)漏信號(hào),例如 I 2 C。)
物理層的這種行為有幾個(gè)缺點(diǎn):較低的有效信號(hào)擺幅和使信號(hào)的不對(duì)稱(chēng)特性更容易受到位時(shí)序失真的影響,特別是在網(wǎng)絡(luò)上存在較高電容負(fù)載的情況下。然而,在不損壞數(shù)據(jù)的情況下,使協(xié)議能夠處理消息沖突(來(lái)自多個(gè)節(jié)點(diǎn)的同時(shí)傳輸)是關(guān)鍵。
事實(shí)上,該協(xié)議能夠在同時(shí)啟動(dòng)的傳輸之間自動(dòng)進(jìn)行仲裁,并允許總線訪問(wèn)更高優(yōu)先級(jí)的消息(如消息頭中的標(biāo)識(shí)符字段所示)。因此,CAN 能夠充當(dāng)多發(fā)起者接口,其中節(jié)點(diǎn)可以在事件觸發(fā)的基礎(chǔ)上進(jìn)行通信,而不是由單個(gè)主機(jī)進(jìn)行排序。這使得 CAN 非常適合可能沒(méi)有集中式主機(jī)的應(yīng)用程序,或者受益于立即發(fā)生數(shù)據(jù)傳輸?shù)膽?yīng)用程序。
仲裁協(xié)議確實(shí)限制了網(wǎng)絡(luò)上節(jié)點(diǎn)之間允許的時(shí)間延遲;然而,總的往返傳播延遲必須適當(dāng)?shù)匦∮谝晃凰璧臅r(shí)間,以保持網(wǎng)絡(luò)上的同步。與 RS-485 相比,這使得 CAN 在電纜范圍和比特率方面更具限制性。
例如,一個(gè)常見(jiàn)的建議是將仲裁期間的比特率限制為 1 Mbits/s,并將電纜長(zhǎng)度限制為小于 40 m。較低的比特率可以支持更長(zhǎng)的距離;例如,工廠自動(dòng)化應(yīng)用經(jīng)常使用基于 CAN 的 DeviceNet 協(xié)議,該協(xié)議在某些情況下允許電纜距離長(zhǎng)達(dá) 500 m。CAN 協(xié)議有一個(gè)靈活的數(shù)據(jù)速率變體,通過(guò)在給定消息窗口仲裁后啟用更高速的通信(高達(dá) 5 Mbits/s)來(lái)擴(kuò)展數(shù)據(jù)吞吐量。
CAN 協(xié)議的另一個(gè)主要優(yōu)點(diǎn)是它能夠檢測(cè)和限制數(shù)據(jù)錯(cuò)誤,例如連接問(wèn)題或節(jié)點(diǎn)故障。每個(gè)節(jié)點(diǎn)都能夠檢測(cè)到發(fā)送和接收錯(cuò)誤,如果錯(cuò)誤源持續(xù)存在,將自動(dòng)停止顯性狀態(tài)傳輸。這可以防止單節(jié)點(diǎn)問(wèn)題中斷全球通信。
由于物理層和數(shù)據(jù)協(xié)議的穩(wěn)健性,CAN 是需要在不受公共主機(jī)控制的情況下獨(dú)立運(yùn)行的任意數(shù)量源之間進(jìn)行可靠數(shù)據(jù)傳輸?shù)膽?yīng)用的首選解決方案。
結(jié)論
當(dāng)今使用了許多工業(yè)通信協(xié)議,每種協(xié)議都有其優(yōu)點(diǎn)和缺點(diǎn)。表 1總結(jié)了本文討論的標(biāo)準(zhǔn)。

表 1:比較 RS-232、RS-485 和 RS-422 以及 CAN 協(xié)議(圖片:德州儀器)
通過(guò)了解這些協(xié)議如何與應(yīng)用程序的要求相交,您可以選擇最適合您需求的協(xié)議。
審核編輯:湯梓紅
電子發(fā)燒友App














評(píng)論