1.速度與距離:CAN與RS485以1Mbit/S的高速率傳輸?shù)木嚯x都不超過(guò)100M,可謂高速上的距離差不多。但是低速CAN以5Kbit/S時(shí),距離可達(dá)10KM。而增強(qiáng)型RS485收發(fā)器在最低的速率時(shí)亦能傳輸超過(guò)10KM(都無(wú)中繼),兩者在長(zhǎng)距離的傳輸上也難分伯仲;
圖 5 CAN長(zhǎng)距離通訊優(yōu)勢(shì)在智能家居中應(yīng)用
2.總線利用率:RS485是單主從結(jié)構(gòu),就是一個(gè)總線上只能有一臺(tái)主機(jī),通訊都由它發(fā)起的,它沒(méi)有下命令,下面的節(jié)點(diǎn)不能發(fā)送,而且要發(fā)完即答,受到答復(fù)后,主機(jī)才向下一個(gè)節(jié)點(diǎn)詢問(wèn),這樣是為了防止多個(gè)節(jié)點(diǎn)向總線發(fā)送數(shù)據(jù),而造成數(shù)據(jù)錯(cuò)亂。而CAN-bus是多主從結(jié)構(gòu),每個(gè)節(jié)點(diǎn)都有CAN控制器,多個(gè)節(jié)點(diǎn)發(fā)送時(shí),以發(fā)送的ID號(hào)自動(dòng)進(jìn)行仲裁,這樣就可以實(shí)現(xiàn)總線數(shù)據(jù)不錯(cuò)亂,而且一個(gè)節(jié)點(diǎn)發(fā)完,另一個(gè)節(jié)點(diǎn)可以探測(cè)到總線空閑,而馬上發(fā)送,這樣省去了主機(jī)的詢問(wèn),提高了總線利用率,增強(qiáng)了快速性。所以在汽車等實(shí)性要求高的系統(tǒng),都是用CAN總線,或者其他類似的總線;
3.錯(cuò)誤檢測(cè)機(jī)制:RS485只規(guī)定了物理層,而沒(méi)有數(shù)據(jù)鏈路層,所以它對(duì)錯(cuò)誤是無(wú)法識(shí)別的,除非一些短路等物理錯(cuò)誤。這樣容易造成一個(gè)節(jié)點(diǎn)破壞了,拼命向總線發(fā)數(shù)據(jù)(一直發(fā)1),這樣造成整個(gè)總線癱瘓。所以RS485一旦壞一個(gè)節(jié)點(diǎn),這個(gè)總線網(wǎng)絡(luò)都掛。而CAN總線有CAN控制器,可以對(duì)總線任何錯(cuò)誤進(jìn)行檢測(cè),自動(dòng)轉(zhuǎn)換錯(cuò)誤狀態(tài),適時(shí)關(guān)閉總線,進(jìn)而保護(hù)總線。如果檢測(cè)到其他節(jié)點(diǎn)錯(cuò)誤或者自身錯(cuò)誤,都會(huì)向總線發(fā)送錯(cuò)誤幀,來(lái)提示其他節(jié)點(diǎn),這個(gè)數(shù)據(jù)是錯(cuò)誤的,大家小心。這樣CAN總線一旦有一個(gè)節(jié)點(diǎn)程序跑飛了,它的控制器自動(dòng)閉鎖,保護(hù)總線。所以在安全性要求高的網(wǎng)路,CAN是很強(qiáng)的;
4.器件價(jià)格:隨著CAN總線迅猛發(fā)展,目前CAN隔離收發(fā)器單價(jià)大有與RS485價(jià)格持平的趨勢(shì),RS485收發(fā)器逐漸失去價(jià)格優(yōu)勢(shì);