一個項目總體方案設(shè)計為分布式系統(tǒng)叹坦,于是在通訊上糾結(jié)于CAN總線還是RS485惰匙。因此在網(wǎng)上搜索一些了一些關(guān)于RS485和CAN總線的資料,除進(jìn)一步認(rèn)識RS485通訊特點(diǎn)外,認(rèn)識了CAN總線的特點(diǎn)及其與RS485的比較月帝,總結(jié)如下:
注:以下是從網(wǎng)上搜索總結(jié)的搅荞。
CAN總線特點(diǎn):
1红氯、國際標(biāo)準(zhǔn)的工業(yè)級現(xiàn)場總線,傳輸可靠咕痛,實(shí)時性高痢甘;
2、傳輸距離遠(yuǎn)(最遠(yuǎn)10Km)茉贡,傳輸速率快(最高1MHz bps)产阱;
3、單條總線最多可接110個節(jié)點(diǎn)块仆,并可方便的擴(kuò)充節(jié)點(diǎn)數(shù)构蹬;
4王暗、多主結(jié)構(gòu),各節(jié)點(diǎn)的地位平等庄敛,方便區(qū)域組網(wǎng)俗壹,總線利用率高;
5藻烤、實(shí)時性高绷雏,非破壞總線仲裁技術(shù),優(yōu)先級高的節(jié)點(diǎn)無延時怖亭;
6涎显、出錯的CAN節(jié)點(diǎn)會自動關(guān)閉并切斷和總線的聯(lián)系,不影響總線的通訊兴猩;
7期吓、報文為短幀結(jié)構(gòu)并有硬件CRC校驗(yàn),受干擾概率小倾芝,數(shù)據(jù)出錯率極低讨勤;
8、自動檢測報文發(fā)送成功與否晨另,可硬件自動重發(fā)潭千,傳輸可靠性很高;
9借尿、硬件報文濾波功能刨晴,只接收必要信息,減輕cpu負(fù)擔(dān)路翻,簡化軟件編制狈癞;
10、通訊介質(zhì)可用普通的雙絞線帚桩,同軸電纜或光纖等亿驾;
11、CAN總線系統(tǒng)結(jié)構(gòu)簡單账嚎,有極高的性價比莫瞬。
RS485接口標(biāo)準(zhǔn)特點(diǎn):
(1) RS-485的電氣特性:邏輯"1"以兩線間的電壓差為+(2-6)V表示;邏輯"0"以兩線間的電壓差為-(2-6)V表示郭蕉。接口信號電平比RS-232-C降低了疼邀,就不易損壞接口電路的芯片,且該電平與TTL電平兼容召锈,可方便與TTL 電路連接旁振。
(2) RS-485的數(shù)據(jù)最高傳輸速率為10Mbps
(3) RS-485接口是采用平衡驅(qū)動器和差分接收器的組合,抗共模干能力增強(qiáng),即抗噪聲干擾性好拐袜。
(4) RS-485接口的最大傳輸距離標(biāo)準(zhǔn)值為4000英尺吉嚣,實(shí)際上可達(dá) 3000米,另外RS-232-C接口在總線上只允許連接1個收發(fā)器蹬铺,即單站能力尝哆。而RS-485接口在總線上是允許連接多達(dá)128個收發(fā)器。即具有多站能力,這樣用戶可以利用單一的RS-485接口方便地建立起設(shè)備網(wǎng)絡(luò)甜攀。但RS-485總線上任何時候只能有一發(fā)送器發(fā)送秋泄。
(5) 因RS-485接口具有良好的抗噪聲干擾性,長的傳輸距離和多站能力等上述優(yōu)點(diǎn)就使其成為首選的串行接口规阀。
(6) 因?yàn)镽S485接口組成的半雙工網(wǎng)絡(luò)恒序,一般只需二根連線,所以RS485接口均采用屏蔽雙絞線傳輸谁撼。
CAN總線與RS485的比較:
1歧胁,速度與距離:CAN與RS485以1Mbit/S的高速率傳輸?shù)木嚯x都不超過100M,可謂高速上的距離差不多彤敛。但是在低速時CAN以5Kbit/S時与帆,距離可達(dá)10KM了赌,而485再低的速率也只能到1219米左右(都無中繼)墨榄。可見CAN在長距離的傳輸上擁有絕對的優(yōu)勢勿她。
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)行檢測吏恭,如果自身錯誤超過128個,就自動閉鎖重罪。保護(hù)總線樱哼。如果檢測到其他節(jié)點(diǎn)錯誤或者自身錯誤,都會向總線發(fā)送錯誤幀剿配,來提示其他節(jié)點(diǎn)搅幅,這個數(shù)據(jù)是錯誤的。大家小心呼胚。這樣CAN總線一旦有一個節(jié)點(diǎn)CPU程序跑飛了茄唐,它的控制器自動閉鎖。保護(hù)總線蝇更。所以在安全性要求高的網(wǎng)路沪编,CAN是很強(qiáng)的。
4簿寂,價格與培訓(xùn)成本:CAN器件的價格大約是485的2倍這樣漾抬,485的通訊從軟件上是很方便的,只要懂串行通訊常遂,就可以編程纳令,而CAN需要底層工程師了解CAN復(fù)雜的層,編寫上位機(jī)軟件也要了解CAN的協(xié)議∑郊ǎ可謂培訓(xùn)成本較高圈匆。
5,CAN總線通過CAN控制器接口芯片82C250的兩個輸出端CANH和CANL與物理總線相連捏雌,而CANH端的狀態(tài)只能是高電平或懸浮狀態(tài)跃赚,CANL端只能是低電平或懸浮狀態(tài)。這就保證不會出現(xiàn)象在RS-485網(wǎng)絡(luò)中性湿,當(dāng)系統(tǒng)有錯誤纬傲,出現(xiàn)多節(jié)點(diǎn)同時向總線發(fā)送數(shù)據(jù)時,導(dǎo)致總線呈現(xiàn)短路肤频,從而損壞某些節(jié)點(diǎn)的現(xiàn)象叹括。而且CAN節(jié)點(diǎn)在錯誤嚴(yán)重的情況下具有自動關(guān)閉輸出功能,以使總線上其他節(jié)點(diǎn)的操作不受影響宵荒,從而保證不會出現(xiàn)象在網(wǎng)絡(luò)中汁雷,因個別節(jié)點(diǎn)出現(xiàn)問題,使得總線處于“死鎖”狀態(tài)报咳。
6侠讯,CAN具有完善的通信協(xié)議,可由CAN控制器芯片及其接口芯片來實(shí)現(xiàn)暑刃,從而大大降低了系統(tǒng)的開發(fā)難度厢漩,縮短了開發(fā)周期,這些是只僅僅有電氣協(xié)議的RS-485所無法比擬的稍走。