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

2020-12-10 電子發燒友

高速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總線
    USB-CAN分析儀雙通道CAN總線分析儀單通道CAN總線分析儀可攜式CAN分析儀8通道CAN總線分析儀CAN FD分析儀CAN核心模塊CAN總線網關/轉換器多功能串口-CAN總線轉換模塊串口轉CAN模塊乙太網轉CAN模塊CAN光纖中繼器Modbus RTU-CAN網關ModBus TCP-CAN網關PLC及總線IO
  • 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總線的特點、幀類型以及應用中的注意事項
    1980年,Bosch的工程師開始研究汽車上高速串行通信的問題,並在1986年發布了CAN(Controller Area Network)總線。CAN以其多主,高速(最高1Mbps),抗幹擾的特性被廣泛應用汽車及各種工業環境。在此我們主要介紹一下CAN總線的特點,幀類型,以及應用中的注意事項。
  • Can you can a can as a canner can can a can?
    Can you can a can as a canner can can a can?你能夠像罐頭工人一樣裝罐頭嗎?2. I wish to wish the wish you wish to wish, but if you wish the wish the witch wishes, I won't wish the wish you wish to wish.
  • 太陽的後裔OST《HOW CAN I LOVE YOU》
    韓文歌詞 附羅馬音How can I love you그대는 아나요keu dae neu na na
  • 基於CAN總線的汽車開關電器盒設計
    0 引 言本文引用地址:http://www.eepw.com.cn/article/174981.htm隨著現代汽車工業技術的不斷發展進步,車上安裝的電子設備在不斷增加,從而使汽車綜合控制系統中,有大量控制信號需要進行實時交換.CAN 總線作為一種可靠的汽車計算機網絡總線,已經被廣泛地推廣到汽車控制系統的各個應用領域.將CAN 總線技術應用到汽車開關電器盒中,可使得各汽車計算機控制單元能夠通過
  • ...LIN總線分類-LIN總線的應用-什麼是LIN總線-測控百科-CK365測控網
    LIN 的目標是為現有汽車網絡(例如CAN 總線)提供輔助功能,因此LIN總線是一種輔助的總線網絡。在不需要CAN 總線的帶寬和多功能的場合,比如智能傳感器和制動裝置之間的通訊使用LIN 總線可大大節省成本。LIN 技術規範中除定義了基本協議和物理層外還定義了開發工具和應用軟體接口。
  • I Can
    i can do anything我做什麼都可以i can do anything today今天我做什麼都可以
  • 如何實現電源和信號隔離以確保 CAN 總線可靠運行
    所提供的解決方案包括分立實施方案(即基於單個 CAN 收發器)以及基於單晶片和雙晶片隔離 CAN 總線設計的集成解決方案。 故障的原因和隔離的必要性 CAN 總線故障可能由多種原因引起:子系統之間的接地電勢差;共模能量和輻射能量等一般噪聲源;以及配電總線上的高壓噪聲和尖峰。
  • 如果有人說:I can't adult today時是什麼意思?
    如果有人說:I can't adult today時是什麼意思?既然要讓學生「學」英語,為什麼只讓他「學」這句英語的「中文答案」是什麼?而且還是由「老師」直接告訴學生「中文答案」?而不訓練他自己查英英字典,自己解決「英語什麼意思」的解決問題的能力呢?
  • 情態動詞can、may、must、need的用法和區別
    can,may、must,need是小學到初中我們最常用到的情態動詞,其他比如dare,shall,ought to也是情態動詞,但不是經常用到,就直接pass了。那麼什麼是情態動詞呢?顧名思義:情緒和態度,表示說話人對這一動作或狀態的看法或主觀設想。
  • 基於LPC2292控制器和CAN現場總線實現電力電纜溝道監測系統的設計
    (2)上位機數據處理層 上位機是CAN總線與IP網之間的連接設備,該層的控制器件也是LPC2292。不過在這層不接傳感器,而是網絡連接模塊、液晶接口、鍵盤、以及CAN通信模塊。除了與下位機之間進行CAN通信有關功能外,還將從下位機得到的電力溝道信息顯示在LCD上,可通過鍵盤設置系統參數。
  • 「I can't make it」是什麼意思?
    I can't make it:我去不了。I can't make it on sunday’s party.我無法參加星期天的派對。I can't make it to dinner this weekend,but can we take a rain check?這個周末我不能去吃晚飯,但是我們改天再吃好嗎?take a rain check:改天,遇雨改期。
  • Brown Can Moo! Can You?
    ☟ ☟ ☟ (start reading )Oh, the wonderful soundsMr.Brown can do!He can sound like a cow.He can go Moo MooHe can sound like a bee.Mr.Brown can BUZZBUZZHow about you?
  • 「can see my point」是什麼意思?
    can see my point:能明白我的意思。Can you see my point?你能明白我的觀點嗎?I can see your point,you and I seem like a match made inheaven.我懂你的意思,你和我似乎是天生的一對。
  • 如何像《速度與激情6》入侵汽車電腦CAN總線,黑掉汽車(上)
    現在的車和幾十年前的車相比,最大的一個區別就是電子系統越來越多,很多人說如今的車機械感降低,都是電子設備,修都不好修的了。CAN數據解碼示意圖這個CAN總線對每個模塊都打開的,只要帶寬允許,每個在CAN總線上的模塊都可以發送或接受信息,但是接受到的信息是什麼,怎麼讀,就有講究了。雖然不算是加密的,但也不是一眼就能讀懂。
  • 「you can't make me」是什麼意思?
    you can't make me:你不能逼我。You can't make me go!你不能讓我走!man, you can't make me do this.你不能讓我幹這事。I don't want to eat it,You can't make me.我不想吃這個,你不要逼我。
  • 英語疑難解析:can't help doing還是can't help to do?
    #英語語法疑難答疑#先看下面一題:He knows nothing about it, so he can't help _______ any of your work.A.doingB.to doC.being doingD.to be done【陷阱】容易誤選A,根據 can't help doing sth這一結構推出。【分析】其實答案應選B。
  • 英語語法學習:情態動詞can和be able to的區別
    英語情態動詞can和be able to表示能力時的用法相同。can只用於一般現在時和一般過去時(could),其它時態要用be able to。另外,表示過去某一特定情況下成功做到某事時,用be able to。
  • 看美劇「讀懂」英語:I can't help it什麼意思?
    看美劇「讀懂」英語:I can't help it什麼意思?看美劇學英語是個好方法,但不等於「用」中文去「讀懂」英語就算「學會了」英語:你「讀」英語「說」(已知的,學過的)英語的能力沒有因為看美劇而有任何改變,沒有得到任何訓練。所以,雖然你看了很多(用中文懂的)美劇,讓你「說」一句完整的英語(思維)句子你可能都做不到。