1. 程式人生 > >CAN與RS485比較

CAN與RS485比較

來源:CSDN 
原文:https://blog.csdn.net/reille/article/details/6135546 

最近一個專案總體方案設計為分散式系統,於是在通訊上糾結於CAN匯流排還是RS485。因此在網上搜索一些了一些關於RS485和CAN匯流排的資料,除進一步認識RS485通訊特點外,認識了CAN匯流排的特點及其與RS485的比較,總結如下:

 

注:以下是從網上搜索總結的。

 

CAN匯流排特點:

1、國際標準的工業級現場匯流排,傳輸可靠,實時性高;  
2、傳輸距離遠(最遠10Km),傳輸速率快(最高1MHz bps); 
3、單條匯流排最多可接110個節點,並可方便的擴充節點數;  
4、多主結構,各節點的地位平等,方便區域組網,匯流排利用率高;  
5、實時性高,非破壞匯流排仲裁技術,優先順序高的節點無延時;  
6、出錯的CAN節點會自動關閉並切斷和匯流排的聯絡,不影響匯流排的通訊;  
7、報文為短幀結構並有硬體CRC校驗,受干擾概率小,資料出錯率極低;  
8、自動檢測報文傳送成功與否,可硬體自動重發,傳輸可靠性很高;  
9、硬體報文濾波功能,只接收必要資訊,減輕cpu負擔,簡化軟體編制;  
10、通訊介質可用普通的雙絞線,同軸電纜或光纖等;  
11、CAN匯流排系統結構簡單,有極高的價效比。

 

RS485介面標準特點:

(1) RS-485的電氣特性:邏輯"1"以兩線間的電壓差為+(2-6)V表示;邏輯"0"以兩線間的電壓差為-(2-6)V表示。介面訊號電平比RS-232-C降低了,就不易損壞介面電路的晶片,且該電平與TTL電平相容,可方便與TTL 電路連線。
(2) RS-485的資料最高傳輸速率為10Mbps
(3) RS-485介面是採用平衡驅動器和差分接收器的組合,抗共模幹能力增強,即抗噪聲干擾性好。
(4) RS-485介面的最大傳輸距離標準值為4000英尺,實際上可達 3000米,另外RS-232-C介面在總線上只允許連線1個收發器,即單站能力。而RS-485介面在總線上是允許連線多達128個收發器。即具有多站能力,這樣使用者可以利用單一的RS-485介面方便地建立起裝置網路。但RS-485總線上任何時候只能有一發送器傳送。
(5) 因RS-485介面具有良好的抗噪聲干擾性,長的傳輸距離和多站能力等上述優點就使其成為首選的序列介面。 
(6) 因為RS485介面組成的半雙工網路,一般只需二根連線,所以RS485介面均採用遮蔽雙絞線傳輸。 

 

CAN匯流排與RS485的比較:

1,速度與距離:CAN與RS485以1Mbit/S的高速率傳輸的距離都不超過100M,可謂高速上的距離差不多。但是在低速時CAN以5Kbit/S時,距離可達10KM,而485再低的速率也只能到1219米左右(都無中繼)。可見CAN在長距離的傳輸上擁有絕對的優勢。

2,匯流排利用率:RS485是單主從結構,就是一個總線上只能有一臺主機,通訊都由它發起的,它沒有下命令,下面的節點不能傳送,而且要發完即答,受到答覆後,主機才向下一個節點詢問,這樣是為了防止多個節點向匯流排傳送資料,而造成資料錯亂。而CAN-bus是多主從結構,每個節點都有CAN控制器,多個節點發送時,以傳送的ID號自動進行仲裁,這樣就可以實現匯流排資料不錯亂,而且一個節點發完,另一個節點可以探測到匯流排空閒,而馬上傳送,這樣省去了主機的詢問,提高了匯流排利用率,增強了快速性。所以在汽車等實性要求高的系統,都是用CAN匯流排,或者其他類似的匯流排。

3,錯誤檢測機制,RS485只規定了物理層,而沒有資料鏈路層,所以它對錯誤是無法識別的,除非一些短路等物理錯誤。這樣容易造成一個節點破壞了,拼命向匯流排發資料(一直髮1),這樣造成整個匯流排癱瘓。所以RS485一旦壞一個節點,這個匯流排網路都掛。而CAN匯流排有CAN控制器,可以對匯流排任何錯誤進行檢測,如果自身錯誤超過128個,就自動閉鎖。保護匯流排。如果檢測到其他節點錯誤或者自身錯誤,都會向匯流排傳送錯誤幀,來提示其他節點,這個資料是錯誤的。大家小心。這樣CAN匯流排一旦有一個節點CPU程式跑飛了,它的控制器自動閉鎖。保護匯流排。所以在安全性要求高的網路,CAN是很強的。

4,價格與培訓成本:CAN器件的價格大約是485的2倍這樣,485的通訊從軟體上是很方便的,只要懂序列通訊,就可以程式設計,而CAN需要底層工程師瞭解CAN複雜的層,編寫上位機軟體也要了解CAN的協議。可謂培訓成本較高。

5,CAN匯流排通過CAN控制器介面晶片82C250的兩個輸出端CANH和CANL與物理匯流排相連,而CANH端的狀態只能是高電平或懸浮狀態,CANL端只能是低電平或懸浮狀態。這就保證不會出現象在RS-485網路中,當系統有錯誤,出現多節點同時向匯流排傳送資料時,導致匯流排呈現短路,從而損壞某些節點的現象。而且CAN節點在錯誤嚴重的情況下具有自動關閉輸出功能,以使總線上其他節點的操作不受影響,從而保證不會出現象在網路中,因個別節點出現問題,使得匯流排處於“死鎖”狀態。

6,CAN具有完善的通訊協議,可由CAN控制器晶片及其介面晶片來實現,從而大大降低了系統的開發難度,縮短了開發週期,這些是隻僅僅有電氣協議的RS-485所無法比擬的。