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