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