CAN BUS特色與應用實(shí)例
由于汽車(chē)產(chǎn)業(yè)不斷追求安全可靠、極致性能、舒適方便以及低成本等目標,但汽車(chē)內高復雜的系統網(wǎng)絡(luò ),使得線(xiàn)束過(guò)于龐大,導致成本提高且網(wǎng)絡(luò )架構也難以持續提升,與前者形成沖突。
本文引用地址:http://dyxdggzs.com/article/196148.htm于是德國B(niǎo)osch在1985年提出CAN BUS(Controller Area Network),不但解決了車(chē)內線(xiàn)束持續增加的問(wèn)題,還為日后可靠且有效率的網(wǎng)絡(luò )系統墊定了基礎。1993年,CAN BUS更制定為標準化(ISO-11898),由于具有高可靠性和錯誤檢測能力,也被廣泛應用在船舶、航空電子、大眾交通、農用設備、醫療設備、工業(yè)控制中。
CAN BUS是一種串行雙線(xiàn)式差分傳輸的技術(shù)規格(見(jiàn)圖1),MCU負責運算數據,CAN Controller處理運算后的數據并傳送“0”或“1”數據,經(jīng)過(guò) CAN Transceiver的轉換由CAN High和CAN Low產(chǎn)生差分信號(見(jià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的應用架構

圖2 CAN BUS的輸出準位
CAN BUS上最小單位為節點(diǎn)(Node),每個(gè)節點(diǎn)都可以主動(dòng)發(fā)送信息到總線(xiàn)上,也可以要求特定節點(diǎn)回傳信息,并不限定于只有一個(gè)主控端。每個(gè)信息(Message)都是以識別子字段(ID Field )為起頭,以識別值決定發(fā)送信息的優(yōu)先權,數值越小優(yōu)先權越高。所以信息的傳遞并不是定義在節點(diǎn)上,而是定義在信息上。由于是串接的架構加上識別子(ID)的判定機制,所以軟硬件不需要做修正就能夠輕易增加或移除節點(diǎn),不但降低了布線(xiàn)成本也降低了維護的復雜度,這種多主控端架構成就更完整的智能網(wǎng)絡(luò )設備。
信息傳遞可透過(guò)節點(diǎn)上的設定,使信息可以被每個(gè)節點(diǎn)接收至緩沖器內,也可以選擇對該信息置之不理。CAN BUS也支持遠程數據請求,當該信息識別值符合節點(diǎn)內部的識別值,且該信息是遠程信息(Remote Message)時(shí),指定的節點(diǎn)會(huì )將相符的數據傳送出去。用戶(hù)便可利用這功能,來(lái)進(jìn)行節點(diǎn)與節點(diǎn)間的溝通。
在CAN BUS上,傳輸速度最快可達1Mbps,用戶(hù)可藉由修改位時(shí)序設定來(lái)修改傳輸速度,而傳輸距離隨通信速度增加而遞減,例如當通信速度40Kbps時(shí),通信距離可達1km;當通信速度1Mbps時(shí),通信距離最遠可達40m,據此用戶(hù)可依照本身的應用做調配。
值得信賴(lài)的幫手
強大的容錯能力
CAN BUS協(xié)議具有相當可靠的錯誤處理和檢錯機制,這些都是屬于硬件自動(dòng)偵測反應,在此種機制下,網(wǎng)絡(luò )訊息的傳輸不但有效率且使用起來(lái)更加方便。
自動(dòng)重傳
當總線(xiàn)上的節點(diǎn)偵測到錯誤時(shí),硬件會(huì )自動(dòng)重新發(fā)送該訊息到總線(xiàn)上,直到該訊息有任何節點(diǎn)響應ACK (Acknowledged)后,該訊息才會(huì )停止發(fā)送。
錯誤偵測
CAN BUS提供了五種錯誤偵測機制,分別為位錯誤(Bit Error),填充位錯誤(Stuff Error),循環(huán)冗余代碼校驗(CRC Error),格式錯誤(Form Error),響應錯誤(Ack Error),利用這些錯誤偵測機制,使得總線(xiàn)上的傳輸更加穩定,而不需用戶(hù)介入。
錯誤通知
偵測到錯誤發(fā)生時(shí),節點(diǎn)會(huì )發(fā)送錯誤訊息(Error Message)到總線(xiàn)上,使得總線(xiàn)上的所有節點(diǎn)都知道此時(shí)有錯誤發(fā)生,以便作出相對的反應,包括重傳或停止發(fā)送等。
錯誤恢復與排除
在CAN協(xié)議中規范了每個(gè)節點(diǎn)都有傳送錯誤記數器(TEC: Transmit Error Counter)和接收錯誤記數器(REC: Receive Error Counter),根據TEC和REC的值來(lái)決定目前節點(diǎn)為何種狀態(tài),一旦TEC大于255,硬件會(huì )讓該節點(diǎn)脫機且暫時(shí)不接收與發(fā)送訊號到總線(xiàn)上,待特定情況發(fā)生時(shí),用戶(hù)才可將該節點(diǎn)重新初始化,并重新開(kāi)始監控總線(xiàn)上的訊號,如此一來(lái),可避免因各別節點(diǎn)使總線(xiàn)發(fā)生嚴重錯誤,影響其他節點(diǎn)的傳輸。
無(wú)限可能的應用系統
CAN BUS的應用實(shí)例
電梯系統(Elevator)
傳統的電梯系統采用繼電器邏輯線(xiàn)路,有著(zhù)線(xiàn)束過(guò)多且維護不便等問(wèn)題,改換成以CAN建構系統,不僅大幅減少線(xiàn)束,增加系統可靠度,更有著(zhù)建構簡(jiǎn)單,便于系統偵錯等優(yōu)點(diǎn)。
橋梁應變規(Strain Gage)
有鑒于天然災害頻傳,所以藉由橋梁應變規來(lái)監控橋梁的健康度,以避免人員及車(chē)輛傷亡。但傳統應變規多半置于橋上,需要人員到場(chǎng)而無(wú)法遠程監控。利用CAN BUS低速時(shí)傳輸距離長(cháng)的特性,可將規劃區域內的橋梁上放置應變規,并連接至CAN BUS以回傳監控中心監控橋梁情形,大幅減少人力成本。
車(chē)用監控系統(Recorder with car information)
由于車(chē)禍肇事頻傳,使用行車(chē)紀錄器掌握前方路況,作為車(chē)禍左證的功能。但監視器只能錄取前方路況影像,而無(wú)法有效掌控本身行車(chē)內部的信息,如目前車(chē)速,油門(mén)狀態(tài)等。運用CAN處理行車(chē)信息,再由SPI(Serial Peripheral Interface)、I2C(Inter-Integrated Circuit)等高速接口傳給錄像監視器,便可在每段錄像畫(huà)面加上目前車(chē)內信息,成為車(chē)禍事端更有利的證據。
車(chē)用診斷系統(OBDII)
OBDII (On Board Diagnosis - II ) 為一種車(chē)輛發(fā)生故障時(shí),產(chǎn)生故障警示訊號,提醒駕駛人進(jìn)廠(chǎng)維修的協(xié)議。我們可以使用支持CAN的MCU來(lái)實(shí)現,利用USB(Universal Serial Bus)裝置和CAN來(lái)建構診斷系統,可隨時(shí)將OBDII connector 接上汽車(chē)總線(xiàn),并將其接收訊息透過(guò)USB傳送到計算機,配合計算機端程序來(lái)診斷汽車(chē)內部異常訊號,進(jìn)而加速汽車(chē)維修速度。
紅外熱像儀相關(guān)文章:紅外熱像儀原理
評論