CAN总线和RS485的比较:
?
CAN總線:
3、單條總線最多可接110個(gè)節(jié)點(diǎn),并可方便的擴(kuò)充節(jié)點(diǎn)數(shù);??
4、多主結(jié)構(gòu),各節(jié)點(diǎn)的地位平等,方便區(qū)域組網(wǎng),總線利用率高;??
5、實(shí)時(shí)性高,非破壞總線仲裁技術(shù),優(yōu)先級(jí)高的節(jié)點(diǎn)無(wú)延時(shí);??
6、出錯(cuò)的CAN節(jié)點(diǎn)會(huì)自動(dòng)關(guān)閉并切斷和總線的聯(lián)系,不影響總線的通訊;??
7、報(bào)文為短幀結(jié)構(gòu)并有硬件CRC校驗(yàn),受干擾概率小,數(shù)據(jù)出錯(cuò)率極低;??
8、自動(dòng)檢測(cè)報(bào)文發(fā)送成功與否,可硬件自動(dòng)重發(fā),傳輸可靠性很高;
RS-485??
(1) RS-485的電氣特性:邏輯"1"以兩線間的電壓差為+(2-6)V表示;邏輯"0"以兩線間的電壓差為-(2-6)V表示。接口信號(hào)電平比RS-232-C降低了,就不易損壞接口電路的芯片,且該電平與TTL電平兼容,可方便與TTL 電路連接。
(2) RS-485的數(shù)據(jù)最高傳輸速率為10Mbps
(3) RS-485接口是采用平衡驅(qū)動(dòng)器和差分接收器的組合,抗共模干能力增強(qiáng),即抗噪聲干擾性好。
(4) RS-485接口的最大傳輸距離標(biāo)準(zhǔn)值為4000英尺,實(shí)際上可達(dá) 3000米,另外RS-232-C接口在總線上只允許連接1個(gè)收發(fā)器,即單站能力。而RS-485接口在總線上是允許連接多達(dá)128個(gè)收發(fā)器。即具有多站能力,這樣用戶可以利用單一的RS-485接口方便地建立起設(shè)備網(wǎng)絡(luò)。但RS-485總線上任何時(shí)候只能有一發(fā)送器發(fā)送。
(5) 因RS-485接口具有良好的抗噪聲干擾性,長(zhǎng)的傳輸距離和多站能力等上述優(yōu)點(diǎn)就使其成為首選的串行接口。
總線利用率:? ?485單主從? 主機(jī)輪詢? ? ? ?can多主從結(jié)構(gòu)? ?總線仲裁? ?
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總線,或者其他類似的總線。
?
錯(cuò)誤檢測(cè)機(jī)制:? 485無(wú)糾錯(cuò)機(jī)制,一個(gè)節(jié)點(diǎn)故障會(huì)導(dǎo)致整個(gè)奔潰??
? ? ? ? ? ? ? ? ? ? ? ? ?can? ?總線錯(cuò)誤檢測(cè),總線保護(hù)
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è),如果自身錯(cuò)誤超過(guò)128個(gè),就自動(dòng)閉鎖。保護(hù)總線。如果檢測(cè)到其他節(jié)點(diǎn)錯(cuò)誤或者自身錯(cuò)誤,都會(huì)向總線發(fā)送錯(cuò)誤幀,來(lái)提示其他節(jié)點(diǎn),這個(gè)數(shù)據(jù)是錯(cuò)誤的。大家小心。這樣CAN總線一旦有一個(gè)節(jié)點(diǎn)CPU程序跑飛了,它的控制器自動(dòng)閉鎖。保護(hù)總線。所以在安全性要求高的網(wǎng)路,CAN是很強(qiáng)的。
總結(jié)
以上是生活随笔為你收集整理的CAN总线和RS485的比较:的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 嵌入式Linux操作系统移植IMX6开发
- 下一篇: 两个二进制数异或的结果