高速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閱讀更多精彩內容

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

相關焦點

  • 「can」和「be able to」的區別是什麼?
    新東方網>英語>英語學習>語法詞彙>詞彙指導>正文「can」和「be able to」的區別是什麼?您能解釋「can」和「be able to」之間的區別嗎?謝謝。   回答   嗨,卡弗   我可以解釋兩者之間的差異。   我只是用「can」來談談我做某事的能力。我們也使用「be able to」來獲得能力,但通常只有在「can」不能使用時才能使用。我會在一分鐘內告訴你這意味著什麼。   但首先,我們來探討「can」這個詞。
  • 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什麼意思?這大概是只有中國人能夠看懂的句式了吧,雖然全是英文,但其實都是中國句式的語法,下文有詳解。
  • could只是can的過去式?could與can用法大全
    今天我們就拿could和can這兩個詞比較一下,看看他們的全部用法。一、表示能力He can swim.他會遊泳He could swim at the age of 8.他八歲就會遊泳了在這兩個例子中我們可以看到,在表示能力的時候就會有時態問題。表示現在的能力用can,表示過去的能力用could。
  • 初中英語詞義辨析:can與be able to的用法區別
    can 和 be able to 都表示「能」的意思,那麼它們之間的用法區別是怎麼樣的呢?011) 都表示有能力做某事She can(can強調自身具有的能力)He will be able tosing the song in English a few minutes, too.幾分鐘後,他也能用英文唱這首歌。
  • 汽車數位化技術CAN總線數據應用是落腳點
    一、技術背景在當今的中高檔汽車中都採用了汽車總線技術。汽車總線為汽車內部各種複雜的電子設備、控制器、測量儀器等提供了統一數據交換渠道。一些汽車專家認為,就像在20世紀70年代引入集成電路、80年代引入微處理器一樣,近20年來數據總線技術的引入也將是汽車電子技術發展的一個裡程碑。
  • CAN總線有什麼方法可以診斷故障問題
    【太平洋汽車網】CAN總線故障問題診斷方法可以將CAN節點一個一個往總線上接,每接一個節點後觀察、測試總線通信狀況。該方法相信是絕大多數現場應用工程師都有嘗試,往往可以零成本揪出問題節點。CAN總線多用於工控和汽車領域,在CAN總線的開發測試階段,需要對其拓撲結構、節點功能、網路整合等進行開發測試,需要虛擬、半虛擬、全實物仿真測試平臺,同時必須測試各節點是否符合ISO11898中規定的錯誤響應機制等,因此CAN
  • be able to 和 can 都表示「能」,怎麼區別?
    文/陳德永be able to(do) 和 can 都表示「能」,怎麼區分他們呢?我們可以從兩個方面,搞明白他們的區別,首先就是用法上的區別,其次是含義上的不同。1.用法的不同:can 的變化比較低調,只有 can --- could 兩種形式,沒有單三形式,也沒有其它時態變化,只用於現在時和過去式。而 be able to 中有一個很靈活的詞be,這個詞有各種形式的變化,故而 be able to 可以用於多種時態:這樣,be able to 就可以用於各種各樣的時態。比如:He is able to swim.
  • 增加CAN總線節點數量的幾個方法
    一、影響CAN總線節點數的因素  影響總線節點數的因素有多種,本文我們從滿足接收節點的差分電壓幅值方面來討論,只有滿足了這個前提條件,我們才能考慮總線的其他因素如寄生電容我們分析RL的組成有3個:終端電阻、總線節點的差分輸入電阻、總線本身的有效電阻。  終端電阻:總線兩端均需要增加終端電阻,當總線距離長時,總線有效電阻大,損耗大,可以適當增加終端電阻值以減小總線有效電阻的損耗,如150Ω~300Ω。
  • 汽車CAN總線的開發與測試系列-開篇
    作者根據自己的工作經驗,準備寫一個關於汽車CAN總線的系列文章。該系列文章將CAN總線在汽車電子領域的應用做一個簡單的梳理,內容包括測試和開發兩個主要方面。本節的主要目的是簡介CAN總線的基礎知識,大家在看後面章節的時候,可以返回來快速查閱這些基礎知識。
  • 抖音i can say i can do是什麼歌 中英完整歌詞分享
    ­  i can say i can do這首英文歌非常的好聽,不少抖友都在找這首歌。這首英文歌是什麼呢?小編為你帶來了相關介紹,趕緊來看看吧。­  i can say i can do是什麼歌­  歌名:Pretty Girl (Cheat Codes X CADE Remix)
  • can't 的展開形式,是 cannot,還是 can not
    can't 是 can 的否定形式,它的展開形式既可以是一個單詞的 cannot,雖然很多拼寫檢查程序認為 can not 是錯誤的,但它的展開形式也可以是兩個單詞的 can not,cannot 和 can not 的用法還是有很大的不同。
  • 如果有人說:I can't adult today時是什麼意思?
    如果有人說:I can't adult today時是什麼意思?既然要讓學生「學」英語,為什麼只讓他「學」這句英語的「中文答案」是什麼?而且還是由「老師」直接告訴學生「中文答案」?而不訓練他自己查英英字典,自己解決「英語什麼意思」的解決問題的能力呢?
  • 情態動詞can、may、must、need的用法和區別
    can,may、must,need是小學到初中我們最常用到的情態動詞,其他比如dare,shall,ought to也是情態動詞,但不是經常用到,就直接pass了。那麼什麼是情態動詞呢?顧名思義:情緒和態度,表示說話人對這一動作或狀態的看法或主觀設想。
  • 車載CAN總線網絡數據訪問及研究意義
    車載總線的開放程度也越來越高,博世、維克多、中汽中心、速銳得可以通過這些接口輕易訪問車載CAN網絡,對CAN網絡的數據進行採集和適配,生成新的DBC文件用於測試及仿真。目前針對車載CAN總線了解的多,實戰的少,基於大數據的智能網聯汽車更是少之又少,平臺和企業對於信息的缺乏和監管,顯得掣肘。
  • 3分鐘讓你了解你的愛車之什麼是汽車CAN總線傳輸原理!
    下圖為電動汽車CAN總線系統原理框圖。該CAN總線系統由中央控制器、電池管理系統、電動機控制系統、制動控控制系統及儀表控制系統組成。各個控制器之間通過CAN總線進行通信,以實現傳感器測量數據的共享以及控制指令的發送和接收等,並使各控制器的控制性能都有所提高,從而提高系統的控制性能。通信的信息類型為信息類和命令類。信息類主要是發送一些信息, 如傳感器信號、診斷信息、系統的狀態。命令類則主要是發送給其他執行器的命令。通信主要有以下內容。(1)車輛起動時的自檢。
  • could 比 can 更加委婉,是什麼意思?
    陳德永初中英語中,我們會學到大多數情態動詞的用法,其中大家最熟悉的就是 can,can 除了表示能力,還可以表示可能性,還可以用老表達請求或建議,一旦學到 can 和 could 表示請求,老師就誰說「could 比 can 」的語氣更加委婉。
  • 工業級1-2路CAN總線的功能特點及應用
    打開APP 工業級1-2路CAN總線的功能特點及應用 佚名 發表於 2020-12-13 08:59:24 本CAN光纖貓能實現CAN總線信號轉換為光信號在光纖上傳輸,起到延長了CAN總線的通信距離的作用,同時由於採用光纖通信,解決了電磁幹擾、地環幹擾和雷電破壞的難題,大大提高了數據通訊的可靠性、安全性和保密性,可廣泛用於各種工業控制、過程控制和交通控制等場合,特別適合銀行、電力及對電磁幹擾環境有特殊要求的部門和系統。
  • 基於LPC2292控制器和CAN現場總線實現電力電纜溝道監測系統的設計
    (2)上位機數據處理層 上位機是CAN總線與IP網之間的連接設備,該層的控制器件也是LPC2292。不過在這層不接傳感器,而是網絡連接模塊、液晶接口、鍵盤、以及CAN通信模塊。除了與下位機之間進行CAN通信有關功能外,還將從下位機得到的電力溝道信息顯示在LCD上,可通過鍵盤設置系統參數。
  • can't 展開形式,是一個單詞的 cannot,還是兩個單詞的 can not
    是 can 的否定形式,它的展開形式既可以是一個單詞的 cannot,雖然很多拼寫檢查程序認為 can not 是錯誤的,但它的展開形式也可以是兩個單詞的 can not,cannot 和 can not 的用法還是有很大的不同。
  • UltraSoC和Canis Labs合作確保CAN總線的安全
    UltraSoC 與 Canis Automotive Labs 日前宣布了一項合作,旨在解決汽車行業中最嚴重的信息安全漏洞之一:CAN總線內部缺乏安全功能;而CAN總線通常用於連接諸如剎車