24小時(shí)聯(lián)系電話(huà):18217114652、13661815404
中文
- 您當前的位置:
- 首頁(yè)>
- 電子資訊>
- 技術(shù)專(zhuān)題>
- 串行通信協(xié)議 CAN 和 ...
技術(shù)專(zhuān)題
串行通信協(xié)議 CAN 和 LIN
串行通信協(xié)議 CAN 和 LIN
我們將一起研究流行的 CAN 和 LIN 協(xié)議。本文是串行通信協(xié)議系列的一部分。我們希望在下次您發(fā)現自己將串行通信總線(xiàn)作為設計的一部分時(shí),該資源將被證明是無(wú)價(jià)的。我們旨在幫助您選擇適合您情況的最佳選擇。
CAN總線(xiàn)
CAN代表Controller Area Network,是各種電子設備使用的通信協(xié)議。CAN 通常用于提供車(chē)輛中設備之間的通信,例如發(fā)動(dòng)機管理系統、主動(dòng)懸架、ABS、換檔控制、照明控制、空調、安全氣囊、中控鎖系統以及車(chē)輛中的其他系統。
CAN 是一種高完整性串行數據通信總線(xiàn),非常適合實(shí)時(shí)應用。該總線(xiàn)可以以高達 1 Mbps 的數據速率運行,并具有出色的錯誤檢測和糾正能力。CAN 由 Bosh 開(kāi)發(fā),主要用于汽車(chē)應用,但現在也用于許多工業(yè)自動(dòng)化和控制應用。
CAN 是一種多主、基于消息的協(xié)議。這意味著(zhù)所有 CAN 設備都可以傳輸數據,并且多個(gè) CAN 設備可以同時(shí)請求使用總線(xiàn)。CAN 網(wǎng)絡(luò )沒(méi)有尋址系統,而是使用優(yōu)先級消息系統。所有消息都分為一系列優(yōu)先級。
目前使用的 CAN 總線(xiàn)有多種版本,其中包括:
CAN 2.0A – 使用 11 位消息標識符
CAN 2.0B - 使用 29 位消息標識符
CAN FD - 使用靈活的數據速率
在CAN 總線(xiàn)中,發(fā)送設備向所有 CAN 節點(diǎn)發(fā)送消息,每個(gè)節點(diǎn)決定如何對接收到的消息做出反應。此外,如果同時(shí)發(fā)送多條消息,節點(diǎn)將確定每條消息的優(yōu)先級。
簡(jiǎn)化的消息流程圖
CAN 總線(xiàn)有三種不同的速度類(lèi)型,它們是:
低速 - 125 kbps 數據速率和 500 米最大總線(xiàn)長(cháng)度
高速(或高速)- 1 Mbps 數據速率和 40 米最大總線(xiàn)長(cháng)度
靈活的數據速率 - 15 Mbps 數據速率和 10 米最大總線(xiàn)長(cháng)度
CAN 總線(xiàn)使用差分傳輸線(xiàn),因此不需要接地連接。差分線(xiàn)路的每一端都使用 120 Ω 端接電阻器,如下面的電路圖所示。
末端為 120 Ω 終端電阻的簡(jiǎn)單 CAN 接線(xiàn)示例
差分對傳輸線(xiàn)更加穩健并且不受環(huán)境干擾和噪聲的影響。這是因為兩條信號線(xiàn)保持非常接近,所以當電磁干擾影響一條傳輸線(xiàn)時(shí),它也會(huì )同樣影響另一條傳輸線(xiàn)。因為差分對中沒(méi)有參考地,所以 CAN 總線(xiàn)電壓是根據成對差分傳輸線(xiàn)之間的差異來(lái)測量的。
影響兩條差分對線(xiàn)的電磁干擾
在CAN差分傳輸線(xiàn)中,顯性邏輯電平為低或0,而隱性邏輯電平為高或1。
以下是標準 11 位消息的完整 CAN 協(xié)議幀:
CAN數據報文幀
消息以起始幀開(kāi)始,指示消息的開(kāi)始。通常,CAN 總線(xiàn)會(huì )處于空閑狀態(tài)(1),因此為了識別報文的開(kāi)始,發(fā)送顯性 0 信號,它勝過(guò)隱性 1。
其后是仲裁字段,指示數據的優(yōu)先級。發(fā)送器在開(kāi)始發(fā)送消息時(shí)識別消息優(yōu)先級。如果多個(gè)發(fā)送器同時(shí)發(fā)送消息,當檢測到它們正在發(fā)送隱性邏輯電平 1 但總線(xiàn)上的實(shí)際仲裁字段位是顯性電平 0 時(shí),它們會(huì )檢測到這一點(diǎn)。這告訴受影響的發(fā)送器延遲發(fā)送,因為它不是最高優(yōu)先級。這一直持續到只剩下一個(gè)發(fā)送器來(lái)發(fā)送它的消息。發(fā)送此消息后,其他較低優(yōu)先級的發(fā)送器將重新啟動(dòng)該過(guò)程。如此重復,直到所有消息按優(yōu)先級順序發(fā)送完畢,如下所示:
CAN報文優(yōu)先競爭
下一位是遠程傳輸請求。該位顯示消息幀的格式??梢允?span>Data Frame,發(fā)送端發(fā)送信息時(shí)使用,設置為顯性邏輯0表示?;蛘?,也可以是Remote Frame,發(fā)送端請求信息,設置為隱性表示邏輯 1。
下一位是 ID 擴展名。如果將 ID 擴展設置為顯性邏輯 0,則仲裁字段的長(cháng)度將是標準的 11 位,對于 2048 種不同的標識來(lái)說(shuō)足夠了。如果該位設置為隱性級別 1,則仲裁字段的長(cháng)度將擴展 29 位,這對于 536870912 種不同的標識來(lái)說(shuō)已經(jīng)足夠了。ID 擴展位之后的仲裁字段的附加 18 位。
下一位保留,通常設置為顯性邏輯電平 0,但設置為隱性邏輯電平 1 將不起作用。
接下來(lái)的四位是數據長(cháng)度代碼位,它顯示數據字段中有多少位。數據長(cháng)度可以從 1 到 8 個(gè)字節不等,相當于 8 到 64 位。
接下來(lái)的 15 位是用于錯誤檢測的CRC(循環(huán)冗余校驗)字段。
下一位是 CRC 定界符,它必須設置為隱性邏輯 1。
下一位是確認槽位。發(fā)送器將此設置為隱性邏輯電平 1。如果成功接收到消息,接收器通過(guò)覆蓋該位并將其分配給顯性邏輯電平 0 來(lái)指示這一點(diǎn)。
下一位是確認定界符,它必須設置為隱性邏輯 1。
最后七位是幀結束指示,它標識消息已經(jīng)結束。
標準 OBD2 汽車(chē)連接器包括用于診斷或軟件控制目的的 CAN 總線(xiàn)差分對引腳:
LIN總線(xiàn)
LIN 代表本地互連網(wǎng)絡(luò ),是一種主要用于類(lèi)似于 CAN 的車(chē)輛的電子通信協(xié)議。LIN 協(xié)議的出現是因為當汽車(chē)中的每個(gè)設備都需要通過(guò)總線(xiàn)進(jìn)行通信時(shí),使用 CAN 協(xié)議的總線(xiàn)變得過(guò)于昂貴。正因為如此,歐洲汽車(chē)制造商開(kāi)始使用不同的串行通信系統,這導致了兼容性問(wèn)題。
在火山汽車(chē)集團和摩托羅拉的幫助下,LIN 由五家汽車(chē)制造商創(chuàng )建:寶馬、大眾集團、奧迪、沃爾沃汽車(chē)和梅賽德斯-奔馳。
LIN 通信網(wǎng)絡(luò )是一種主從安排。通常,LIN 總線(xiàn)由 16 個(gè)節點(diǎn)(1 個(gè)主站和 15 個(gè)從站)組成。所有 LIN 總線(xiàn)消息均由單個(gè)主設備發(fā)起。同時(shí),只有一個(gè)從站可以隨時(shí)響應使用主站發(fā)送的標識符選擇的消息。
使用可變長(cháng)度的固定格式消息在連接到 LIN 總線(xiàn)的設備之間傳輸數據。主設備發(fā)送一個(gè)中斷信號,然后是同步和標識符字段以啟動(dòng)數據傳輸。從設備可以通過(guò)發(fā)送包含 2、4 或 8 個(gè)字節的數據加上 3 個(gè)字節的控制信息的數據幀進(jìn)行回復。
LIN 可用作連接到 CAN 總線(xiàn)的子總線(xiàn)。CAN 總線(xiàn)向其節點(diǎn)之一發(fā)送信號,該節點(diǎn)本身可以是 LIN 主機。當 LIN 物理層發(fā)送器接收到消息時(shí),它會(huì )使用 CAN 電池電壓電平(通常為 12 V)將其在邏輯電平上轉換為 LIN 協(xié)議。LIN 發(fā)射器還包括一個(gè)限流整形驅動(dòng)器,可減少電磁輻射。
LIN 和 CAN 總線(xiàn)集成
LIN 從接收器然后將來(lái)自 LIN 總線(xiàn)的高電池電平電壓數據轉換為可以發(fā)送到微控制器的低電壓電平邏輯信號。
LIN 作為串行廣播系統運行,使用帶接地參考的單線(xiàn)總線(xiàn)。與 CAN 或其他串行通信協(xié)議 (<20 kbps) 相比,典型的 LIN 總線(xiàn)速度相對較低。然而,實(shí)現 LIN 總線(xiàn)的成本顯著(zhù)降低,使其成為批量生產(chǎn)的理想選擇。它主要用于不太重要的非安全功能。LIN 常用于控制車(chē)窗、空調、雨刷器等。LIN 總線(xiàn)的最大長(cháng)度為 40 米。
在 LIN 總線(xiàn)上,信號可以是顯性(邏輯電平低或 0)或隱性(邏輯電平高或 1)。
LIN 協(xié)議使用遵循以下六種幀類(lèi)型之一的消息幀結構:
無(wú)條件幀——這是所有訂閱者(從站)接收的消息幀(假設沒(méi)有檢測到錯誤)
事件觸發(fā)幀 - 此消息幀提高了 LIN 集群(LIN 集群 - 一個(gè) LIN 數據總線(xiàn))的響應能力,而無(wú)需使用過(guò)多的總線(xiàn)帶寬
零星幀 - 當需要防止與其他消息沖突時(shí)傳輸此消息幀
診斷幀 - 此消息幀攜帶診斷或配置數據,并始終包含八位
用戶(hù)自定義幀——這個(gè)消息幀可以攜帶任何類(lèi)型的信息
保留幀 – 此消息幀保留用于確認 LIN 網(wǎng)絡(luò ),不應在 LIN 2.0 中使用
LIN 總線(xiàn)數據幀示例
LIN 總線(xiàn)因其標準協(xié)議、簡(jiǎn)單性和低成本在過(guò)去十年中變得非常流行,到 2020 年將有超過(guò) 6 億個(gè) LIN 節點(diǎn)安裝在汽車(chē)中。
LIN 現在還用于非汽車(chē)行業(yè)的應用,例如家用電器和工業(yè)自動(dòng)化。
本文研究了流行的 CAN 和 LIN 協(xié)議的一些特性,并討論了它們的一些優(yōu)點(diǎn)和實(shí)現細節。