以CAN與RS485為例總結(jié)各自優(yōu)勢 解疑“為什么CAN能取代RS485”
近年來CAN總線逐漸被工程師認(rèn)知,并以其突出特點(diǎn),逐漸在取代RS485等總線,本文將以CAN與RS485為例總結(jié)各自優(yōu)勢,為您解疑“為什么CAN能取代RS485”。
一、CAN 現(xiàn)場總線
CAN總線特點(diǎn):
國際標(biāo)準(zhǔn)的工業(yè)級現(xiàn)場總線,傳輸可靠,實(shí)時性高;
傳輸距離遠(yuǎn)(最遠(yuǎn)10Km),傳輸速率快(最高1MHz bps);
單條總線最多可接110個節(jié)點(diǎn),并可方便的擴(kuò)充節(jié)點(diǎn)數(shù);
多主結(jié)構(gòu),各節(jié)點(diǎn)的地位平等,方便區(qū)域組網(wǎng),總線利用率高;
實(shí)時性高,非破壞總線仲裁技術(shù),優(yōu)先級高的節(jié)點(diǎn)無延時;
出錯的CAN節(jié)點(diǎn)會自動關(guān)閉并切斷和總線的聯(lián)系,不影響總線的通訊;
報(bào)文為短幀結(jié)構(gòu)并有硬件CRC校驗(yàn),受干擾概率小,數(shù)據(jù)出錯率極低;
自動檢測報(bào)文發(fā)送成功與否,可硬件自動重發(fā),傳輸可靠性很高;
硬件報(bào)文濾波功能,只接收必要信息,減輕cpu負(fù)擔(dān),簡化軟件編制;
CAN總線系統(tǒng)結(jié)構(gòu)簡單,有極高的性價(jià)比。
二、RS485 總線
RS-485是從 RS-422基礎(chǔ)上發(fā)展而來的,可以采用二線與四線兩種不同的方式,二線制可實(shí)現(xiàn)真正的多點(diǎn)雙向通信。而采用四線連接時,只能實(shí)現(xiàn)點(diǎn)對多點(diǎn)的通信。即只能有一個主設(shè)備(Master),其余為從設(shè)備(Slave)。
RS485接口標(biāo)準(zhǔn)特點(diǎn):
RS-485的電氣特性:兩線間的電壓差范圍為±(2-6)V表示,接口信號電平降低,不易損壞接口電路的芯片,且該電平與TTL電平兼容,可方便與TTL 電路連接;
RS-485的數(shù)據(jù)最高傳輸速率為10Mbps;
RS-485接口是采用平衡驅(qū)動器和差分接收器的組合,抗共模干能力增強(qiáng),即抗噪聲干擾性好;
RS-485接口的最大傳輸距離標(biāo)準(zhǔn)值為4000英尺,實(shí)際上可達(dá) 3000米。RS-485接口在總線上是允許連接多達(dá)128個收發(fā)器。即具有多站能力,但RS-485總線上任何時候只能有一發(fā)送器發(fā)送;
RS-485接口具有良好的抗噪聲干擾性,長的傳輸距離和多站能力等優(yōu)點(diǎn)就使其成為首選的串行接口;
RS485接口組成的半雙工網(wǎng)絡(luò),一般只需二根連線,接口均采用屏蔽雙絞線傳輸。
三、CAN 總線與RS485的比較
1、速度與距離:CAN與RS485以1Mbit/S的高速率傳輸?shù)木嚯x都不超過100M,可謂高速上的距離差不多。但是低速CAN以5Kbit/S時,距離可達(dá)10KM。而增強(qiáng)型RS485收發(fā)器在最低的速率時亦能傳輸超過10KM(都無中繼),兩者在長距離的傳輸上也難分伯仲。
2、總線利用率:RS485是單主從結(jié)構(gòu),就是一個總線上只能有一臺主機(jī),通訊都由它發(fā)起的,它沒有下命令,下面的節(jié)點(diǎn)不能發(fā)送,而且要發(fā)完即答,受到答復(fù)后,主機(jī)才向下一個節(jié)點(diǎn)詢問,這樣是為了防止多個節(jié)點(diǎn)向總線發(fā)送數(shù)據(jù),而造成數(shù)據(jù)錯亂。而CAN-bus是多主從結(jié)構(gòu),每個節(jié)點(diǎn)都有CAN控制器,多個節(jié)點(diǎn)發(fā)送時,以發(fā)送的ID號自動進(jìn)行仲裁,這樣就可以實(shí)現(xiàn)總線數(shù)據(jù)不錯亂,而且一個節(jié)點(diǎn)發(fā)完,另一個節(jié)點(diǎn)可以探測到總線空閑,而馬上發(fā)送,這樣省去了主機(jī)的詢問,提高了總線利用率,增強(qiáng)了快速性。所以在汽車等實(shí)性要求高的系統(tǒng),都是用CAN總線,或者其他類似的總線。
3、錯誤檢測機(jī)制:RS485只規(guī)定了物理層,而沒有數(shù)據(jù)鏈路層,所以它對錯誤是無法識別的,除非一些短路等物理錯誤。這樣容易造成一個節(jié)點(diǎn)破壞了,拼命向總線發(fā)數(shù)據(jù)(一直發(fā)1),這樣造成整個總線癱瘓。所以RS485一旦壞一個節(jié)點(diǎn),這個總線網(wǎng)絡(luò)都掛。而CAN總線有CAN控制器,可以對總線任何錯誤進(jìn)行檢測,自動轉(zhuǎn)換錯誤狀態(tài),適時關(guān)閉總線,進(jìn)而保護(hù)總線。如果檢測到其他節(jié)點(diǎn)錯誤或者自身錯誤,都會向總線發(fā)送錯誤幀,來提示其他節(jié)點(diǎn),這個數(shù)據(jù)是錯誤的,大家小心。這樣CAN總線一旦有一個節(jié)點(diǎn)程序跑飛了,它的控制器自動閉鎖,保護(hù)總線。所以在安全性要求高的網(wǎng)路,CAN是很強(qiáng)的。
4、器件價(jià)格:隨著CAN總線迅猛發(fā)展,目前CAN隔離收發(fā)器單價(jià)大有與RS485價(jià)格持平的趨勢,RS485收發(fā)器逐漸失去價(jià)格優(yōu)勢。
5、開發(fā)難度:CAN具有完善的通信協(xié)議,底層機(jī)制由CAN控制器芯片及其接口芯片來實(shí)現(xiàn),研發(fā)工程師只需要了解面向客戶的應(yīng)用層,從而大大降低了系統(tǒng)的開發(fā)難度,縮短了開發(fā)周期。而RS-485協(xié)議僅僅只有電氣協(xié)議,客戶開發(fā)需要自己開發(fā)鏈路層和應(yīng)用層,開發(fā)難度較大。

