can總線與485總線有何異同,詳細(xì)說(shuō)說(shuō)
CAN總線和485總線都是常見的串行通信協(xié)議,它們?cè)诠I(yè)自動(dòng)化、機(jī)器人控制等領(lǐng)域被廣泛應(yīng)用。本文將從物理層、數(shù)據(jù)傳輸方式、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、通信速率和應(yīng)用范圍等方面比較CAN總線和485總線的區(qū)別。
485總線是一種半雙工、全雙工異步通信總線,是為了擺脫232總線的通信速率低和通信距離過(guò)短而產(chǎn)生的。485總線僅僅規(guī)定了驅(qū)動(dòng)器和接收器的電氣特性,卻沒有規(guī)定接插件、傳輸電纜和應(yīng)用層通信協(xié)議,所以對(duì)于當(dāng)時(shí)來(lái)說(shuō),是一種非常實(shí)惠、而且傳輸?shù)乃俾氏鄬?duì)比較高的總線。
CAN總線是一種雙絞線,具有高抗干擾性,高速率性,更重要的是能夠檢測(cè)出來(lái)任何的錯(cuò)誤。CAN總線具有通信能力的實(shí)時(shí)性、靈活性、傳輸距離遠(yuǎn)、可靠性成本低等優(yōu)勢(shì),所以被認(rèn)為是最有希望的現(xiàn)場(chǎng)總線。
第一,傳輸距離比較,CAN總線和485總線的物理層標(biāo)準(zhǔn)不同。CAN總線采用雙絞線,分為高、低兩根線,CAN總線的信號(hào)是差分信號(hào),具有良好的抗干擾能力,最長(zhǎng)傳輸距離可達(dá)1km。而485總線一般采用雙絞線或者是雙絞線加屏蔽層,它的信號(hào)是單向傳輸?shù)?,即一個(gè)節(jié)點(diǎn)發(fā)送,其他節(jié)點(diǎn)接收,485總線最長(zhǎng)傳輸距離可達(dá)1200m。
第二,數(shù)據(jù)傳輸速率比較,CAN總線的最大通信速率為1000Kbps,不算特別大和以太網(wǎng)相比,但也還可以。相比而言,485總線的最大通信速率為10Mbps,是CAN總線的十倍。在通信速率上,485總線顯然是更占優(yōu)勢(shì)的。CAN總線的高速通信速率使得它適用于需要高速數(shù)據(jù)傳輸?shù)膽?yīng)用場(chǎng)合,例如汽車控制系統(tǒng)。而485總線適用于需要長(zhǎng)距離傳輸和多節(jié)點(diǎn)通信的應(yīng)用場(chǎng)合,例如樓宇自動(dòng)化控制系統(tǒng)。
第三,數(shù)據(jù)傳輸方式,CAN總線采用基于幀的通信方式,數(shù)據(jù)被打包成幀進(jìn)行傳輸,數(shù)據(jù)傳輸速率可以根據(jù)實(shí)際需求進(jìn)行調(diào)整。在CAN總線中,所有節(jié)點(diǎn)都可以發(fā)送和接收數(shù)據(jù),并且具有優(yōu)先級(jí)控制功能。數(shù)據(jù)傳輸?shù)目煽啃院芨?,因?yàn)镃AN總線具有冗余校驗(yàn)和錯(cuò)誤重傳機(jī)制,可以保證數(shù)據(jù)傳輸?shù)恼_性。
485總線采用基于字符的通信方式,它沒有CAN總線的沖突檢測(cè)和糾錯(cuò)機(jī)制,因此傳輸速率相對(duì)較低,但是可以實(shí)現(xiàn)多節(jié)點(diǎn)通信。在485總線中,一個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),其他節(jié)點(diǎn)必須處于接收狀態(tài)才能接收到數(shù)據(jù),因此在設(shè)計(jì)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)時(shí)需要注意節(jié)點(diǎn)之間的排列順序。
第四,應(yīng)用范圍,CAN總線主要應(yīng)用于高速數(shù)據(jù)傳輸和實(shí)時(shí)控制系統(tǒng),例如汽車電子控制單元(ECU)、工業(yè)機(jī)器人等。而485總線主要應(yīng)用于低速數(shù)據(jù)傳輸和數(shù)據(jù)采集系統(tǒng),例如溫度、濕度、壓力等傳感器的數(shù)據(jù)采集。
RS-485總線技術(shù)是相較于底層的應(yīng)用層協(xié)議,作為應(yīng)用開發(fā)者一般關(guān)注的是其應(yīng)用,你可以將它理解為一種固定的硬件層電氣接口,至于我們?cè)诨?85硬件就緒的條件下進(jìn)行應(yīng)用開發(fā)只需考慮它的軟件通信協(xié)議,有主流的Modbus RTU通信協(xié)議,也可以自己定義自己的一套協(xié)議標(biāo)準(zhǔn)進(jìn)行相應(yīng)傳輸,只要不丟失數(shù)據(jù)就行;設(shè)備想要用485進(jìn)行通信的話需要借用串口這個(gè)中介將MCU的數(shù)據(jù)傳輸?shù)絉S-485總線上再繼續(xù)傳輸,所以在硬件電路板上需要設(shè)計(jì)一個(gè)串口轉(zhuǎn)485電路,485接口可以通過(guò)485雙絞屏蔽線連接外部設(shè)備,也可以通過(guò)485轉(zhuǎn)USB連接電腦調(diào)試助手(Modbus)都可以。
CAN總線有可靠的錯(cuò)誤處理和檢錯(cuò)機(jī)制,節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下具有自動(dòng)退出總線的功能,還有發(fā)送的信息若遭到破壞后,可自動(dòng)重發(fā);還可通過(guò)標(biāo)識(shí)符的優(yōu)先級(jí)進(jìn)行總線仲裁解決發(fā)送信息的沖突問題,485總線則是通過(guò)一主多從的方式避免數(shù)據(jù)沖突;CAN總線是用于汽車控制系統(tǒng)的標(biāo)準(zhǔn)總線,CAN是規(guī)定了物理層和鏈路層,485總線僅僅規(guī)定了驅(qū)動(dòng)器和接收器的電氣特性,卻沒有規(guī)定接插件、傳輸電纜和應(yīng)用層通信協(xié)議;CAN和485都屬于半雙工的差分傳輸方式,對(duì)線材有一定要求,最好是屏蔽雙絞線,都需要120歐姆的終端匹配電阻解決信號(hào)反射的問題。