前言
RS-485和CAN都是串行通信協(xié)議。它們?cè)试S在單個(gè)系統(tǒng)中布置多點(diǎn)設(shè)備,大大縮短了電纜長(zhǎng)度,差分設(shè)計(jì)適用于強(qiáng)干擾的環(huán)境,兩者都使用120 Ω電阻端接,并配有內(nèi)部過(guò)壓電路以進(jìn)行故障保護(hù)。
RS-485和CAN有太多的共同點(diǎn),但無(wú)疑是不一樣的。
RS-485更多的是應(yīng)用在工業(yè)領(lǐng)域,CAN被廣泛設(shè)計(jì)用于汽車行業(yè)。但現(xiàn)在,不僅汽車行業(yè)廣泛使用CAN,而且航空航天等其他行業(yè)也開(kāi)始轉(zhuǎn)向CAN。
但是要了解使這些協(xié)議與眾不同的差異,我們必須知道它們到底是什么。
先簡(jiǎn)要介紹一下RS-485。
RS-485:自20世紀(jì)80年代中期以來(lái)一直存在的串行通信協(xié)議。最初是為工業(yè)市場(chǎng)的應(yīng)用而定義的,或者更好的說(shuō),它是為工業(yè)應(yīng)用而開(kāi)發(fā)的。
RS-485由電信行業(yè)協(xié)會(huì)和電子工業(yè)聯(lián)盟聯(lián)合發(fā)布,因此它也被稱為TIA / EIA-485。但更能被業(yè)界接受的名字是RS-485,它的應(yīng)用在:
運(yùn)動(dòng)控制設(shè)備
計(jì)算機(jī)自動(dòng)化系統(tǒng)(鍵盤、鼠標(biāo)、打印機(jī)等)
工業(yè)控制系統(tǒng)
劇院應(yīng)用
雖然RS-485被應(yīng)用到多種場(chǎng)合,但越來(lái)越多的行業(yè)似乎轉(zhuǎn)向CAN用于其工業(yè)機(jī)械。
為什么要“切換”到CAN總線?
RS-485未能成為通信協(xié)議。它只是被證明是一個(gè)電氣接口。它確實(shí)提供了多點(diǎn)通信功能,但僅適用于至少具有UART的設(shè)備。 01
一主多從系統(tǒng)
從技術(shù)上講,它是一個(gè)半雙工系統(tǒng),一次只能有一個(gè)設(shè)備可以傳輸,其他設(shè)備必須監(jiān)聽(tīng)。因此,它只能為多個(gè)節(jié)點(diǎn)串行地進(jìn)行數(shù)據(jù)交換提供基本的物理鏈路。即:一主多從。

與CAN不同,CAN總線的設(shè)備,每個(gè)節(jié)點(diǎn)都可以充當(dāng)主節(jié)點(diǎn),并確切地知道如何以及何時(shí)發(fā)送信號(hào)。
RS-485遵循典型的主從拓?fù)浣Y(jié)構(gòu)。當(dāng)通信處于活動(dòng)狀態(tài)時(shí),所有從站/節(jié)點(diǎn)都接收主站單元發(fā)送的數(shù)據(jù)。如果一個(gè)“從機(jī)”必須回答“主機(jī)”的信息,它就必須切換為“主機(jī)”,這樣才能發(fā)送它的信息。
這種連接的一個(gè)特殊功能是,連接到線路的所有設(shè)備都會(huì)接收傳遞的所有內(nèi)容。當(dāng)設(shè)備必須發(fā)送時(shí),它通過(guò)RTS信號(hào)(傳輸請(qǐng)求)激活其傳輸線。傳輸數(shù)據(jù)的元素也接收傳輸?shù)臄?shù)據(jù)。
當(dāng)RS-485總線出現(xiàn)多個(gè)設(shè)備同時(shí)發(fā)送消息時(shí),會(huì)導(dǎo)致過(guò)載或可能信號(hào)碰撞,進(jìn)而使整個(gè)消息無(wú)效或?qū)е聰?shù)據(jù)錯(cuò)誤。 02
容錯(cuò)機(jī)制
對(duì)于RS-485,這還不是它唯一的缺點(diǎn)。在定義方面,沒(méi)有明確規(guī)定以下的內(nèi)容:
尋址節(jié)點(diǎn)的過(guò)程
避免數(shù)據(jù)沖突的方法
框架結(jié)構(gòu)
溝通程序
錯(cuò)誤檢測(cè)等,
3個(gè)理由了解為什么CAN總線更好
CAN總線的顯著優(yōu)勢(shì)在于它高度靈活并提供許多獨(dú)特的功能,從而導(dǎo)致其他行業(yè)的采用率大幅增加。
CAN總線是一種雙線、多點(diǎn)的串行通信標(biāo)準(zhǔn)協(xié)議。就像RS-485一樣,通過(guò)CAN的信號(hào)以CAN-H和CAN-L作為差分電壓流動(dòng)。
差分信號(hào)的傳輸類似于RS-485,但事實(shí)差異很大。
CAN總線的優(yōu)勢(shì)主要體現(xiàn)在以下三個(gè)方面:
01
消息傳輸
CAN指定了總線上的完整數(shù)據(jù)包,而不僅僅是物理層。 CAN硬件自動(dòng)處理數(shù)據(jù)包的開(kāi)始/結(jié)束檢測(cè)、沖突檢測(cè)、回退、重試、校驗(yàn)和生成、驗(yàn)證,以及與處理硬件故障相關(guān)的更多功能。用戶只需要傳輸消息標(biāo)識(shí)符和有效負(fù)載,CAN硬件負(fù)責(zé)添加數(shù)據(jù)包的其他部分。
使用RS-485時(shí),其實(shí)RS-485底層未進(jìn)行任何定義:如數(shù)據(jù)來(lái)自何處、誰(shuí)可以發(fā)送它、正在發(fā)送哪些數(shù)據(jù)、接收的數(shù)據(jù)是否損壞等。(除非在軟件中指定,否則什么都不知道)。
02
仲裁
RS-485的主要問(wèn)題是信號(hào)擁塞。這通常是由于多個(gè)節(jié)點(diǎn)試圖在總線上同時(shí)發(fā)送數(shù)據(jù),從而導(dǎo)致過(guò)載。
CAN遵循仲裁,其中消息按狀態(tài)順序排列和接收。失去仲裁的節(jié)點(diǎn)將重新發(fā)送其消息。 對(duì)于所有節(jié)點(diǎn),這種情況將繼續(xù)進(jìn)行,直到只剩下一個(gè)節(jié)點(diǎn)正在傳輸。
由于消息式仲裁,CAN無(wú)需采取額外的預(yù)防措施即可實(shí)現(xiàn)多主機(jī)操作。對(duì)于RS-485,這只能通過(guò)特定協(xié)議來(lái)實(shí)現(xiàn)。
03
協(xié)同和錯(cuò)誤檢測(cè)及糾正
當(dāng)CAN總線的一個(gè)節(jié)點(diǎn)將隱性狀態(tài)“寫入”總線并看到它實(shí)際上處于主導(dǎo)狀態(tài)時(shí),它知道另一個(gè)節(jié)點(diǎn)正在驅(qū)動(dòng)它。嘗試寫入隱性狀態(tài)的節(jié)點(diǎn)將后退并等待消息的結(jié)束。
寫入主導(dǎo)狀態(tài)的節(jié)點(diǎn)永遠(yuǎn)不會(huì)知道發(fā)生了這種情況。它的消息通常由所有其他節(jié)點(diǎn)發(fā)送和接收。這種沖突檢測(cè)功能允許在沒(méi)有任何中央仲裁的情況下實(shí)現(xiàn)對(duì)等網(wǎng)絡(luò)架構(gòu)。
節(jié)點(diǎn)發(fā)送消息,但在檢測(cè)到?jīng)_突時(shí)后退,然后在當(dāng)前數(shù)據(jù)包完成后重試。 最終,總線可用時(shí)發(fā)送這些其他消息,并且發(fā)送先前碰撞的消息時(shí)不會(huì)發(fā)生沖突,包括 16 位 CRC 校驗(yàn)和。
RS-485不能觸發(fā)任何消息沖突,系統(tǒng)的應(yīng)用軟件必須保證避免碰撞。
綜述
雖然RS-485端口仍然被應(yīng)用到到許多新開(kāi)發(fā)的設(shè)備中中,但CAN功能的如仲裁、錯(cuò)誤消息檢查、改進(jìn)的帶寬和更大的數(shù)據(jù)場(chǎng),加速了對(duì)CAN總線的需求。
審核編輯:劉清
-
編碼器
+關(guān)注
關(guān)注
45文章
3953瀏覽量
142655 -
通信協(xié)議
+關(guān)注
關(guān)注
28文章
1092瀏覽量
42168 -
plc
+關(guān)注
關(guān)注
5051文章
14595瀏覽量
486962 -
CAN
+關(guān)注
關(guān)注
59文章
3067瀏覽量
472760 -
RS-485
+關(guān)注
關(guān)注
11文章
748瀏覽量
86718
原文標(biāo)題:3個(gè)原因告訴你,CAN為什么比RS-485更好?
文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
什么是RS-485多機(jī)通信方案?
RS-485通訊協(xié)議的介紹
使用RS-485需要注意什么
RS-485的相關(guān)資料分享
3個(gè)理由了解為什么CAN總線與RS-485更好
CAN總線現(xiàn)場(chǎng)總線應(yīng)用方案RS-485升級(jí)到CAN
CAN-bus RS485 升級(jí)到CAN
CAN-bus現(xiàn)場(chǎng)總線應(yīng)用方案RS-485升級(jí)到CAN總線
CAN總線與RS-485總線的通信接口設(shè)計(jì)
RS-485總線標(biāo)準(zhǔn)及幾種常見(jiàn)的RS-485接口電路介紹
【RS-485收發(fā)切換】使用RS-485要注意的一個(gè)問(wèn)題
RS-485和CAN總線到底是什么
CAN為什么比RS-485更好?
評(píng)論