高速CAN、容錯CAN、LIN總線的區別是什麼

2020-12-15 電子發燒友

高速CAN、容錯CAN、LIN總線的區別是什麼

嵌入式ARM 發表於 2020-12-06 09:37:00

花點時間看了一些關於LIN總線基礎的內容,把其中的關鍵點提取了出來,在這裡分享給大家。在這裡你可能要問「不都有CAN總線了嗎?這個LIN總線又是從哪裡來的?」其實理由很簡單,就是CAN總線太貴啦!處處都用CAN總線的話,那整車的總線架構成本將會變得很高!在一些比如車身電子配件的地方(如車窗、後視鏡、大燈、車鎖等),我們不需要報文像CAN總線上傳輸的那樣「高速」!各大廠商一拍腦門就研究了這個LIN總線!

本文關注點:有了CAN為什麼還會有LIN,CAN和LIN的區別,LIN的優勢在哪?

1. 什麼是LIN總線?

LIN(Local Interconnect Network)總線是基於UART/SCI(通用異步收發器/串行接口)的低成本串行通訊協議。其目標定位於車身網絡模塊節點間的低端通信,主要用於智能傳感器和執行器的串行通信,而這正是CAN總線的帶寬和功能所不要求的部分。

2. CAN/LIN總線區別

由於LIN網絡在汽車中一般不獨立存在,通常會與上層CAN網絡相連,形成CAN-LIN網關節點。

2.1.LIN總線的主從關係

LIN總線採用的是單線傳輸形式,應用了單主機多從機(有無主動上報的支持?)的概念,總線電平一般為12V,傳輸速率最高限制為20kbps。由於物理層的限制,一個LIN網絡最多可以連接16個節點。

總線任務負責:

調度總線上幀的傳輸次序

監測數據,處理錯誤

作為標準時鐘參考(不是異步通信?)

接收從機節點發出的總線喚醒命令

從機任務不能直接向總線發送數據,需要接受到主節點發送的幀頭後,根據幀頭所包含的信息來判斷:

發送應答

接收應答

既不接收也不應答

LIN的特點

網絡由一個主節點與若干個從節點構成

使用LIN總線可以大幅度削減成本(CAN和Lin都需要收發器,但是Lin屬於單線制在線束上節省)

傳輸具有確定性,傳播時間可以提前計算

LIN具有可預測的EMC(電磁兼容性)性能,為了限制EMC的強度,LIN協議規定最大傳輸速率為20kbps

LIN總線提供信號的配置、處理、識別和診斷功能(這些都是UART不具備的,可LIN是怎麼實現的呢?)

3.LIN報文幀結構

LIN報文幀包括幀頭(hearder)與應答(response)兩部分。主機負責發送至幀頭;從機負責接收幀頭並作出解析,然後決定是發送應答,還是接收應答或不回復。

(主機)幀頭結構包括同步間隔段、同步段、PID段(受保護ID)段,應答部分包括數據段與效驗和段。其中值「0」為顯性電平、「1」為隱性電平,這點與CAN總線相類似玩轉嵌入式micropoint8。在總線上實行「線-與」:當總線有至少一個節點發送顯性電平時,總線呈現顯性電平;所有節點均發送隱性電平或者不發送信息時,總線呈隱性電平,即顯性電平起著主導作用。

3.1.1.同步間隔段

同步間隔段至少是由13位的顯性電平組成,由於幀中的所有間隙或者總線空閒時總線均保持隱性電平狀態。所以同步間隔段可以標誌一個幀的開始。其中同步間隔段的間隔符至少為1位隱性電平。

3.1.2.同步段

LIN同步以下降沿為判斷標誌,採用字節0x55(01010101b)進行同步。在從機節點上可以不採用高精度的時鐘,由此帶來的偏差,需要通過同步段來進行調整。

3.1.3.PID段

受保護的ID的前6位叫做幀ID,加上兩個奇偶效驗碼後稱作受保護的ID。幀ID的取值範圍為0x00~0x3f總共64個,幀ID標識了幀的類別和目的地。從機任務會根據幀頭ID作出反應(接收/發送/忽略應答)。其中P0與P1效驗如下:

LIN總線根據幀ID號的不同,把報文分為信號攜帶幀、診斷幀、保留幀。

PS:從機應答幀是一個完整的幀,與(主節點)幀結構中的「應答」不同!

3.1.4.數據段

數據段可以包含1-8個字節,其中包含有兩種數據類型,信號(singal)和診斷消息(diagnostic messages)。信號由信號攜帶幀傳遞,診斷消息由診斷幀傳遞。

協議中並沒有規定哪一部分顯示數據長度碼的信息(這點與CAN總線不同),數據的內容與長度均是由系統設計者根據幀ID事先約定好的。

總線上的數據是以廣播形式發出,任何節點均可以收到,但並非對每個節點有用(與CAN相同)。具體到發布與接聽是由哪個節點進行完成這個取決於應用層的軟體配置,一般情況下,對於一個幀中的應答,總線上只存在一個發布節點,否則就會出現錯誤。事件觸發幀例外,可能出現0,1,多個發布節點。

3.1.5.效驗和段

效驗和段是為了對幀傳輸內容進行效驗。效驗分為標準型效驗與增強型效驗。採用標準型還是增強型是由主機節點管理,發布節點和收聽節點根據幀ID來判斷採用哪種效驗和。

4.LIN總線波形

5.LIN總線的通訊

上圖展示的是LIN總線的通訊方式,可以看出無論什麼時候幀頭總是由主機節點發布,當主機節點想發布數據時,整個幀全部由主機節點發送。當從機節點想發布數據時,幀頭部分由主機節點發布,應答部分由從機節點發布(主機怎麼知道從機節點想發布數據,那肯定是主機節點無數據可發,故只發了幀頭?),這樣其餘節點都能收到一個完整的報文幀。可以很直接的觀察到,LIN總線的通訊都是由主機節點發起的玩轉嵌入式micropoint8,只要合理的規定要每個節點的配置,這樣就不會存在總線衝突的情況(事件觸發幀衝突時採用採用衝突解決進度表)。

幀類型

5.1.無條件幀

無條件幀是具有單一發布節點的,無論信號是否發生變化,幀頭均會被無條件應答的幀。

如上圖中幀ID=0x30應答部分的發布節點為從機節點1,收聽節點為主機節點,應用在從機節點向主機節點報告自身狀態;幀ID=0x31中,應答部分為主機節點,收聽部分為從機節點,應用在主機節點向從機節點發送消息;幀ID=0x32中應答部分的發送節點為從機節點2,收聽節點為從機節點1,應用與從機節點之間的通信。

5.2.事件觸發幀

事件觸發幀是主機節點在一個幀間隙中查詢各從機節點的信號是否發生變化時使用的幀。當存在多個發布節點時,通過衝突解決進度表來解決衝突。

當從機節點信號發生變化的頻率較低的時候,主機任務一次次地查詢各個節點信息會佔用一定的帶寬。為了減小帶寬的佔用,引入了事件觸發幀的概念。其主要原理就是:當從機節點信息狀態沒有發生變化的時候,從機節點可以不應答主機發出的幀頭;當有多個節點信息同時發生變化的時候,同時應答事件觸發幀頭會造成總線的衝突。當主機節點檢測到衝突時,便會查詢衝突解決進度表來依次向各個節點發送無條件幀(無條件幀只有能1個節點應答)來確定從機節點的信息狀態。

與事件觸發幀關聯的多個無條件幀需要滿足以下5個條件:

數據段所包含的數據字節數等長 使用相同的效驗與類型數據段的第一個字節為該無條件幀的受保護ID,這樣才能夠知道應答是哪個關聯的無條件幀發送出來的 由不同的從機節點發布不能與時間觸發幀處於同一個進度表中。

5.2.1.偶發幀

偶發幀是主機節點在同一幀時隙中當自身信號發生變化時向總線啟動發送的幀。當存在多個關聯的應答信號變化時,通過預先設定的的優先級來仲裁。與事件觸發幀類似,偶發幀也定義了一組無條件幀。規定偶發幀只有由主機節點發布。

偶發幀的傳輸可能出現三種情況:

當關聯的無條件幀沒有信號發生變化,這是主機連幀頭也不需要發送。

當關聯的一個無條件幀信號發生變化則發送該幀。

當有多個無條件幀發生信號變化時,則按照事先規定要的優先級依次發送。

5.2.2.診斷幀

診斷幀包括主機請求幀和從機應答幀,主要用於配置、識別和診斷。主機請求幀ID=0x3c,應答部分的發布節點為主機節點;從機應答幀ID=0x3d,應答部分的發布節點為從機節點。數據段規定為8個字節,一律採用標準效驗和。

5.2.3.保留幀

保留幀的ID=0x3e與0x3f,為將來擴張需求用。

5.3.進度表

進度表是幀的調度表,規定了總線上幀的傳輸次序以及傳輸時間。進度表位於主機節點,主機任務根據應用程需要進行調度。進度表可以有多個,一般情況下,輪到某個進度表執行的時候,從該進度表的入口處開始執行,到進度表的最後一個幀時,如果沒有新的進度表啟動則返回到當前進度表的第一個幀開始執行玩轉嵌入式micropoint8,也有可能在執行到某個進度表時發生中斷,跳到另一個進度表後再返回,如事件觸發幀就是一個典型的例子。

6.狀態機的實現

6.1.主機狀態機

6.2.從機狀態機

從機任務負責發布或者接聽幀的應答狀態,包括連兩個狀態機:同步間隔段與同步段檢查器、幀處理器。

6.3.從機任務狀態機

責任編輯:xj

原文標題:什麼是LIN總線?高速CAN、容錯CAN、LIN總線有什麼區別?

文章出處:【微信公眾號:嵌入式ARM】歡迎添加關注!文章轉載請註明出處。

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 什麼是LIN總線?高速CAN、容錯CAN、LIN總線有什麼區別?
    花點時間看了一些關於LIN總線基礎的內容,把其中的關鍵點提取了出來,在這裡分享給大家。在這裡你可能要問「不都有CAN總線了嗎?這個LIN總線又是從哪裡來的?」其實理由很簡單,就是CAN總線太貴啦!處處都用CAN總線的話,那整車的總線架構成本將會變得很高!在一些比如車身電子配件的地方(如車窗、後視鏡、大燈、車鎖等),我們不需要報文像CAN總線上傳輸的那樣「高速」!
  • 什麼是CAN總線,CAN總線的優勢和特點
    此後,1993年11月ISO正式頒布了道路交通運載工具--數字信息交換--高速通信控制器局部網(CAN)國際標準(ISO11898),為控制器局部網標準化、規範化推廣鋪平了道路。CAN總線特點:CAN總線是德國BOSCH公司從80年代初為解決現代汽車中眾多的控制與測試儀器之間的數據交換而開發的一種串行數據通信協議,它是一種多主總線,通信介質可以是雙絞線、同軸電纜或光導纖維。
  • can總線基本概念
    由於這些系統之間通信所用的數據類型及對可靠性的要求不盡相同,由多條總線構成的情況很多,線束的數量也隨之增加。為適應「減少線束的數量」、「通過多個LAN,進行大量數據的高速通信」的需要,1986 年德國電氣商博世公司開發出面向汽車的CAN 通信協議。此後,CAN 通過ISO11898 及ISO11519 進行了標準化,在歐洲已是汽車網絡的標準協議。
  • CAN總線錯誤幀長得啥樣?怎麼產生?
    關鍵字:CAN總線  錯誤幀 編輯:什麼魚 引用地址:http://news.eeworld.com.cn/qrs/2015/0917/article_24676.html
  • CAN總線協議概述
    注意,總線中的信號持續跟蹤最後獲得總線讀取權的站的報文。在此例中,站2的報文被跟蹤。這種非破壞性位仲裁方法的優點在於,在網絡最終確定哪一個站的報文被傳送以前,報文的起始部分已經在網絡上傳送了。所有未獲得總線讀取權的站都成為具有最高優先權報文的接收站,並且不會在總線再次空閒前發送報文。
  • 「can」和「be able to」的區別是什麼?
    新東方網>英語>英語學習>語法詞彙>詞彙指導>正文「can」和「be able to」的區別是什麼?您能解釋「can」和「be able to」之間的區別嗎?謝謝。   回答   嗨,卡弗   我可以解釋兩者之間的差異。   我只是用「can」來談談我做某事的能力。我們也使用「be able to」來獲得能力,但通常只有在「can」不能使用時才能使用。我會在一分鐘內告訴你這意味著什麼。   但首先,我們來探討「can」這個詞。
  • can canfd 兼容_canfd與can兼容嗎 - CSDN
    CAN-FD與CAN2.0 A/B節點共同組網要求總結參考文檔    引言    上篇公眾號文章(點擊文章標題即可直接跳轉閱讀)--《細說汽車電子通信總線之CAN 2.0 總線協議詳解》詳細介紹了目前汽車電子ECU中使用最為廣泛的傳統CAN 2.0 A/B總線協議。
  • 神馬是CAN總線?CAN總線抗幹擾6要素是什麼?
    什麼是CAN總線?   CAN 是Controller Area Network 的縮寫(以下稱為CAN),是ISO國際標準化的串行通信協議。在汽車產業中,出於對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統被開發了出來。由於這些系統之間通信所用的數據類型及對可靠性的要求不盡相同,由多條總線構成的情況很多,線束的數量也隨之增加。
  • 汽車CAN總線原理培訓
    選擇CAN收發器時我們認為其延遲參數越小越好,但小的傳輸延遲會帶來什麼好處,是什麼因素限定了CAN網絡的傳輸延遲?圖2 CAN網絡ACK響應總線電平在ISO11898-2規定的高速CAN網絡中,通常我們關心差分信號的幅值,這是總線數據傳輸的關鍵。
  • can總線故障一般原因及問題解決方法
    三、汽車CAN總線故障原因   CAN總線系統中擁有一個CAN控制器、一個信息收發器、兩個數據傳輸終端及兩條數據傳輸總線,除了數據總線外,其他各元件都置於各控制單元的內部。   2.汽車CAN總線系統的鏈路故障:當出現通信線路的短路、斷路或線路物理性質變化引起通信信號衰減或失真,都會導致多個電控單元工作不正常,使CAN總線系統無法工作。   3.汽車CAN總線系統的節點故障:節點是汽車CAN總線系統中的電控模塊,因此節點故障就是電控模塊的故障。
  • 英語中Can和May的真正區別是什麼?
    單詞can和may是助動詞,當我們談論可能性或允許時,它們經常並列。基本上,當某人有能力做某事時,或者當你被允許做某事時,可以使用「can」這個詞。另一方面,可以用來討論未來可能發生的事件。當你想接受或允許做某事時,也可以使用它。
  • can總線通訊協議
    CAN總線作為一種有效支持分布式控制或實時控制的串行通信網絡,應用範圍遍及從高速網絡到低成本的多線路網絡。如:CAN在汽車中的發動機控制部件、ABS、抗滑系統等應用中的位速率可高達1Mbps。同時,它可以廉價地用於交通運載工具電器系統中,例如電氣窗口、燈光聚束、座椅調節等,以替代所需要的硬體連接。
  • you can you up no can no bb什麼意思 you can you up是什麼梗
    you can you up no can no bb什麼梗?具體翻譯,你行你上啊, 不行別逼逼!中國式英語,老外也讚不絕口啊 you can you up!  you can you up no can no bb什麼意思?這大概是只有中國人能夠看懂的句式了吧,雖然全是英文,但其實都是中國句式的語法,下文有詳解。
  • 整車CAN網絡介紹
    在了解can網絡之前, 先了解1個問題:什麼是智能硬體與ECU?本文引用地址:http://www.eepw.com.cn/article/202002/409594.htm何為智能硬體,就是包含智能控制單元的硬體。比如發動機,發動機上有一塊兒專門負責控制發動機進氣量、噴油量、排氣量的控制單元,這塊單元相當於發動機的大腦。
  • CAN接口——實時串流傳輸CAN總線和OBD2數據
    使用CLX000,可以從任何基於CAN的應用場景(汽車,卡車,輪船,機器等)中串流式傳輸CAN總線數據。下面以汽車串流式傳輸為例。4、示例:在Wireshark中串流式傳輸CAN / OBD2數據下面將說明一下數據流是以什麼形式呈現的
  • CAN總線協議詳解
    其中ISO11898-1定義了CAN數據鏈路層;ISO11898-2定義了非容錯CAN物理層;ISO11898-3定義了11898-3的容錯物理層。CAN總線協議只定義了物理層和數據鏈路層,要將CAN總線應用於實際的工程項目和產品開發中必須制定上層應用協議。目前汽車上應用的協議有:ISO15675(傳輸層協議)、ISO14229(應用層協議)等。
  • CAN總線通信硬體原理圖(採用TJA1050T CAN總線驅
    CAN總線智能測控節點。本設計中採用PHILIP公司的TJA1050T CAN總線驅動器。CAN總線通信硬體原理圖如圖3所示。圖中F040 的CAN信號接收引腳RX和發送引腳TX並不直接連接到TJA1050T的RXD和TXD端,而是經由高速光耦6N137進行連接,這樣做的目的是為了實現CAN總線各節點的電氣隔離。
  • 利用CAN中斷進行簡單的數據接收
    關鍵字:CAN  中斷  數據接收 編輯:什麼魚 引用地址:http://news.eeworld.com.cn/mcu/ic476213
  • can總線結構和原理
    控制器區域網總線(CAN,Controller Area Network)是一種用於實時應用的串行通訊協議總線,它可以使用雙絞線來傳輸信號,是世界上應用最廣泛的現場總線之一。CAN協議用於汽車中各種不同元件之間的通信,以此取代昂貴而笨重的配電線束。
  • 廣州虹科CAN總線培訓班邀請函--14年3月21-22號
    本文引用地址:http://www.eepw.com.cn/article/234271.htm  CAN總線培訓班  CAN(Controller Area Network,控制器區域網)是國際上應用最廣泛的現場總線之一,最初CAN被設計作為汽車環境中的各電子控制裝置ECU之間傳輸信息的控制網絡。