CAN 是控制器局域網(wǎng)總線,是一種用于實時應用的串行通訊協(xié)議總線,它可以使用雙絞線來傳輸信號,是世界上應用最廣泛的現(xiàn)場總線之一。CAN 協(xié)議用于汽車中各種不同元件之間的通信,以此取代昂貴而笨重的配電線束。該協(xié)議的健壯性使其用途延伸到其他自動化和工業(yè)應用。CAN 協(xié)議的特性包括完整性的串行數(shù)據(jù)通訊、提供實時支持、傳輸速率高達 1Mb/s、同時具有 11 位的尋址以及檢錯能力。
CAN總線協(xié)議(Controller Area Network),控制器局域網(wǎng)總線,是德國BOSCH(博世)公司研發(fā)的一種串行通訊協(xié)議總線,它可以使用雙絞線來傳輸信號,是世界上應用最廣泛的現(xiàn)場總線之一。
CAN通訊協(xié)議標準(ISO-11898:2003)介紹了設備間信息是如何傳遞以及符合開放系統(tǒng)互聯(lián)參考模型(OSI)的哪些分層項。實際CAN通訊是在連接設備的物理介質(zhì)中進行,物理介質(zhì)的特性由模型中的物理層定義。ISO11898體系結(jié)構(gòu)定義七層,OSI模型中的最低兩層作為數(shù)據(jù)鏈路層和物理層。
①,多主控制??偩€空閑時,所有單元都可發(fā)送消息,而兩個以上的單元同時開始發(fā)送消息時,根據(jù)標識符(ID,非地址)決定優(yōu)先級。兩個以上的單元同時開始發(fā)送消息時,對各消息ID
的每個位進行逐個仲裁比較。仲裁獲勝(優(yōu)先級最高)的單元可繼續(xù)發(fā)送消息,仲裁失利的單元則立刻停止發(fā)送而進行接收工作。
②,系統(tǒng)柔軟性。連接總線的單元,沒有類似“地址”的信息,因此,在總線上添加單元時,已連接的其他單元的軟硬件和應用層都不需要做改變。
③,速度快,距離遠。最高1Mbps(距離<40M),最遠可達10KM(速率<5Kbps)。
④ ,具有錯誤檢測、錯誤通知和錯誤恢復功能。所有單元都可以檢測錯誤(錯誤檢測功能),檢測出錯誤的單元會立即同時通知其他所有單元(錯誤通知功能),正在發(fā)送消息的單元一旦檢測出錯誤,會強制結(jié)束當前的發(fā)送。強制結(jié)束發(fā)送的單元會不斷反復地重新發(fā)送此消息直到成功發(fā)送為止(錯誤恢復功能)。
⑤,故障封閉功能。CAN可以判斷出錯誤的類型是總線上暫時的數(shù)據(jù)錯誤(如外部噪聲等)還是持續(xù)的數(shù)據(jù)錯誤(如單元內(nèi)部故障、驅(qū)動器故障、斷線等)。由此功能,當總線上發(fā)生持續(xù)數(shù)據(jù)錯誤時,可將引起此故障的單元從總線上隔離出去。
⑥,連接節(jié)點多。CAN
總線是可同時連接多個單元的總線??蛇B接的單元總數(shù)理論上是沒有限制的。但實際上可連接的單元數(shù)受總線上的時間延遲及電氣負載的限制。降低通信速度,可連接的單元數(shù)增加;提高通信速度,則可連接的單元數(shù)減少。
ISO11898標準物理層特性:
CAN 控制器根據(jù)CAN_L和CAN_H上的電位差來判斷總線電平??偩€電平分為顯性電平和隱性電平,二者必居其一。發(fā)送方通過使總線電平發(fā)生變化,將消息發(fā)送給接收方。
連接在CAN總線上的設備叫做節(jié)點設備(CAN Node),CAN網(wǎng)絡的拓撲一般為線型。線束最常用的是雙絞線,線上傳輸為對稱的差分電平信號。下圖為CAN總線網(wǎng)絡示意圖,節(jié)點主要包括Host、控制器和收發(fā)器。Host常集成有CAN控制器,CAN控制器負責處理協(xié)議相關(guān)功能,以減輕Host的負擔。CAN收發(fā)器將控制器連接到傳輸媒介。通常控制器和總線收發(fā)器通過光耦或磁耦隔離,這樣即使總線上過壓損壞收發(fā)器,控制器和Host設備也可以得到保護。
在發(fā)送數(shù)據(jù)時,CAN控制器把要發(fā)送的二進制編碼通過CAN_Tx線發(fā)送到CAN收發(fā)器,然后由收發(fā)器把這個普通的邏輯電平信號轉(zhuǎn)化成差分信號,通過差分線CAN_High和CAN_Low輸出到CAN總線網(wǎng)絡。接收數(shù)據(jù)過程,相反。采用差分信號,可以取得更好的電磁兼容效果。因此,CAN總線物理傳輸媒介只需要兩根線。