CAN BUS特色與應(yīng)用實(shí)例
由于汽車產(chǎn)業(yè)不斷追求安全可靠、極致性能、舒適方便以及低成本等目標(biāo),但汽車內(nèi)高復(fù)雜的系統(tǒng)網(wǎng)絡(luò),使得線束過于龐大,導(dǎo)致成本提高且網(wǎng)絡(luò)架構(gòu)也難以持續(xù)提升,與前者形成沖突。
本文引用地址:http://www.ex-cimer.com/article/196148.htm于是德國Bosch在1985年提出CAN BUS(Controller Area Network),不但解決了車內(nèi)線束持續(xù)增加的問題,還為日后可靠且有效率的網(wǎng)絡(luò)系統(tǒng)墊定了基礎(chǔ)。1993年,CAN BUS更制定為標(biāo)準(zhǔn)化(ISO-11898),由于具有高可靠性和錯誤檢測能力,也被廣泛應(yīng)用在船舶、航空電子、大眾交通、農(nóng)用設(shè)備、醫(yī)療設(shè)備、工業(yè)控制中。
CAN BUS是一種串行雙線式差分傳輸?shù)募夹g(shù)規(guī)格(見圖1),MCU負(fù)責(zé)運(yùn)算數(shù)據(jù),CAN Controller處理運(yùn)算后的數(shù)據(jù)并傳送“0”或“1”數(shù)據(jù),經(jīng)過 CAN Transceiver的轉(zhuǎn)換由CAN High和CAN Low產(chǎn)生差分信號(見圖2)。其中,CAN High電壓減CAN Low電壓小于0.5V代表邏輯狀態(tài)為“1”,而CAN High電壓減 CAN Low電壓大于0.9V代表邏輯狀態(tài)為“0”,所以圖2中傳送位串為101。藉由差分的方式可以避免噪聲的產(chǎn)生,而終端電阻120Ω則是防止信息傳送后反射造成的干擾。
圖1 CAN BUS的應(yīng)用架構(gòu)
圖2 CAN BUS的輸出準(zhǔn)位
CAN BUS上最小單位為節(jié)點(diǎn)(Node),每個節(jié)點(diǎn)都可以主動發(fā)送信息到總線上,也可以要求特定節(jié)點(diǎn)回傳信息,并不限定于只有一個主控端。每個信息(Message)都是以識別子字段(ID Field )為起頭,以識別值決定發(fā)送信息的優(yōu)先權(quán),數(shù)值越小優(yōu)先權(quán)越高。所以信息的傳遞并不是定義在節(jié)點(diǎn)上,而是定義在信息上。由于是串接的架構(gòu)加上識別子(ID)的判定機(jī)制,所以軟硬件不需要做修正就能夠輕易增加或移除節(jié)點(diǎn),不但降低了布線成本也降低了維護(hù)的復(fù)雜度,這種多主控端架構(gòu)成就更完整的智能網(wǎng)絡(luò)設(shè)備。
信息傳遞可透過節(jié)點(diǎn)上的設(shè)定,使信息可以被每個節(jié)點(diǎn)接收至緩沖器內(nèi),也可以選擇對該信息置之不理。CAN BUS也支持遠(yuǎn)程數(shù)據(jù)請求,當(dāng)該信息識別值符合節(jié)點(diǎn)內(nèi)部的識別值,且該信息是遠(yuǎn)程信息(Remote Message)時,指定的節(jié)點(diǎn)會將相符的數(shù)據(jù)傳送出去。用戶便可利用這功能,來進(jìn)行節(jié)點(diǎn)與節(jié)點(diǎn)間的溝通。
在CAN BUS上,傳輸速度最快可達(dá)1Mbps,用戶可藉由修改位時序設(shè)定來修改傳輸速度,而傳輸距離隨通信速度增加而遞減,例如當(dāng)通信速度40Kbps時,通信距離可達(dá)1km;當(dāng)通信速度1Mbps時,通信距離最遠(yuǎn)可達(dá)40m,據(jù)此用戶可依照本身的應(yīng)用做調(diào)配。
值得信賴的幫手
強(qiáng)大的容錯能力
CAN BUS協(xié)議具有相當(dāng)可靠的錯誤處理和檢錯機(jī)制,這些都是屬于硬件自動偵測反應(yīng),在此種機(jī)制下,網(wǎng)絡(luò)訊息的傳輸不但有效率且使用起來更加方便。
自動重傳
當(dāng)總線上的節(jié)點(diǎn)偵測到錯誤時,硬件會自動重新發(fā)送該訊息到總線上,直到該訊息有任何節(jié)點(diǎn)響應(yīng)ACK (Acknowledged)后,該訊息才會停止發(fā)送。
錯誤偵測
CAN BUS提供了五種錯誤偵測機(jī)制,分別為位錯誤(Bit Error),填充位錯誤(Stuff Error),循環(huán)冗余代碼校驗(yàn)(CRC Error),格式錯誤(Form Error),響應(yīng)錯誤(Ack Error),利用這些錯誤偵測機(jī)制,使得總線上的傳輸更加穩(wěn)定,而不需用戶介入。
錯誤通知
偵測到錯誤發(fā)生時,節(jié)點(diǎn)會發(fā)送錯誤訊息(Error Message)到總線上,使得總線上的所有節(jié)點(diǎn)都知道此時有錯誤發(fā)生,以便作出相對的反應(yīng),包括重傳或停止發(fā)送等。
錯誤恢復(fù)與排除
在CAN協(xié)議中規(guī)范了每個節(jié)點(diǎn)都有傳送錯誤記數(shù)器(TEC: Transmit Error Counter)和接收錯誤記數(shù)器(REC: Receive Error Counter),根據(jù)TEC和REC的值來決定目前節(jié)點(diǎn)為何種狀態(tài),一旦TEC大于255,硬件會讓該節(jié)點(diǎn)脫機(jī)且暫時不接收與發(fā)送訊號到總線上,待特定情況發(fā)生時,用戶才可將該節(jié)點(diǎn)重新初始化,并重新開始監(jiān)控總線上的訊號,如此一來,可避免因各別節(jié)點(diǎn)使總線發(fā)生嚴(yán)重錯誤,影響其他節(jié)點(diǎn)的傳輸。
無限可能的應(yīng)用系統(tǒng)
CAN BUS的應(yīng)用實(shí)例
電梯系統(tǒng)(Elevator)
傳統(tǒng)的電梯系統(tǒng)采用繼電器邏輯線路,有著線束過多且維護(hù)不便等問題,改換成以CAN建構(gòu)系統(tǒng),不僅大幅減少線束,增加系統(tǒng)可靠度,更有著建構(gòu)簡單,便于系統(tǒng)偵錯等優(yōu)點(diǎn)。
橋梁應(yīng)變規(guī)(Strain Gage)
有鑒于天然災(zāi)害頻傳,所以藉由橋梁應(yīng)變規(guī)來監(jiān)控橋梁的健康度,以避免人員及車輛傷亡。但傳統(tǒng)應(yīng)變規(guī)多半置于橋上,需要人員到場而無法遠(yuǎn)程監(jiān)控。利用CAN BUS低速時傳輸距離長的特性,可將規(guī)劃區(qū)域內(nèi)的橋梁上放置應(yīng)變規(guī),并連接至CAN BUS以回傳監(jiān)控中心監(jiān)控橋梁情形,大幅減少人力成本。
車用監(jiān)控系統(tǒng)(Recorder with car information)
由于車禍肇事頻傳,使用行車紀(jì)錄器掌握前方路況,作為車禍左證的功能。但監(jiān)視器只能錄取前方路況影像,而無法有效掌控本身行車內(nèi)部的信息,如目前車速,油門狀態(tài)等。運(yùn)用CAN處理行車信息,再由SPI(Serial Peripheral Interface)、I2C(Inter-Integrated Circuit)等高速接口傳給錄像監(jiān)視器,便可在每段錄像畫面加上目前車內(nèi)信息,成為車禍?zhǔn)露烁欣淖C據(jù)。
車用診斷系統(tǒng)(OBDII)
OBDII (On Board Diagnosis - II ) 為一種車輛發(fā)生故障時,產(chǎn)生故障警示訊號,提醒駕駛?cè)诉M(jìn)廠維修的協(xié)議。我們可以使用支持CAN的MCU來實(shí)現(xiàn),利用USB(Universal Serial Bus)裝置和CAN來建構(gòu)診斷系統(tǒng),可隨時將OBDII connector 接上汽車總線,并將其接收訊息透過USB傳送到計(jì)算機(jī),配合計(jì)算機(jī)端程序來診斷汽車內(nèi)部異常訊號,進(jìn)而加速汽車維修速度。
紅外熱像儀相關(guān)文章:紅外熱像儀原理
評論