目錄:
1、LIN的網絡拓撲
2、LIN Frame
1)Header? ?2)Response
3、LIN的通信規則
1)LIN的發送行為示例? ?2)LIN的接收行為示例
雖然LIN總線的通信速率不高,工程中,最高的速率也就19200bps。但是,LIN總線依然在整車拓撲(汽車電子知識匯總)中被廣泛使用,為什么呢?答:成本。LIN總線,作為CAN總線的補充衍生而來。對于一些實時性、安全性要求不高的場景(eg:空調、座椅、門窗、后視鏡),可以使用價格相對低廉的Lin總線,以此降低整車成本。本文,從LIN Frame開始,聊一聊Lin。
1、LIN的網絡拓撲
LIN總線和CAN總線一樣,是串行通信總線。不同于CAN總線的雙絞線,LIN的物理連接,使用單線連接,LIN總線的網絡拓撲如下所示:
一個Lin網絡拓撲中,受限于電氣特性,一般會約束通信節點的數量,eg:16個。
2、LIN Frame
學習任何總線,都需要清楚其鏈路層的報文格式,也就是"Frame"。對于LIN總線的學習,最權威的規范莫過于17897,LIN Frame的講解主要在Part3部分。LIN Frame結構如下所示:
如上圖,LIN Frame主要由兩部分組成:Header +?Response。
1)Header
Header包含三個Field:Break Field、Sync?Byte?Field、Protected?Identifier Field。
Break Field:間隔域。由Master發送,表示一個新的LIN Frame的開始,至少由13 Bit的顯性位組成,之后跟至少1Bit的隱性位,如下所示:
LIN總線的顯性(Dominant)和隱性(Recessive)不同于CAN總線,由于Lin總線是單線通信方式,沒有壓差的概念。在LIN總線中,接收端(Receiver)將高于Vbat 60%的電壓看作隱性,將低于Vbat 40%的電壓看作顯性;對于發送端,將高于Vbat 80%的電壓看作隱性,將低于Vbat 20%的電壓看作顯性。如下所示:
Sync Byte Field:同步域,主要作用是:協調接收端識別發送端的通信速率。按照協議規范,此處固定為0x55。接收端判斷同步域開始和結束的兩個下降沿,再除以8就可以算出發送端每個Bit的時間長度。
Protected Identifier Field:此域包括Frame Identifier和Parity,這兩個部分構成了常說的PID。
Frame Identifier:報文的唯一標識,由6個Bit組成。6個bit可以表示的數據范圍0x00~0x3F;Parity:奇偶校驗,由兩個Bit組成。Frame Identifier和Parity在Protected Identifier Field中的Mapping如下所示:
2)Response
LIN通信中,請求只能Master發起,即發送Header,Slave響應主節點請求。各從節點根據Header中的ID來識別是否需要響應。LIN總線的Response部分包括數據和Checksum,數據最大可以傳送8 Byte。Header和Resposne之間有一個響應間隔(response space),每個數據字節之間有inter-byte space。Response格式如下所示:
對于間隔空間(Space),對應到具體的LIN Controller,可以根據項目需求配置,如下為一個LIN Frame的Maximum Bit示例:
Master可以處理三種類型的信息:發送幀頭(TxH)、發送響應(TxR)、接收響應(RxR);Slave也可以處理三類信息:接收幀頭(RxH)、發送響應(TxR)、接收響應(RxR)。如下所示:
3、LIN的通信規則
LIN總線的通信模式:主從模式。即:Master發送Header,Slave或者Master給出響應(Response)。
1)LIN的發送行為示例
-
LIN通信啟動以后,Master節點先發送Header 0x10;
-
Slave A識別0x10,需要給出響應(Response)。同理,其他節點也需要識別0x10,并給出對應的動作(響應、接收響應、忽略);
-
Master節點按照時序,繼續發送Header 0x11;
-
Slave C識別0x11,需要給出響應(Response)。同理,其他節點也需要識別0x11,并給出對應的動作(響應、接收響應、忽略);
-
Master節點按照時序,繼續發送Header0x12;
-
Slave B識別0x12,需要給出響應(Response)。同理,其他節點也需要識別0x12,并給出對應的動作(響應、接收響應、忽略);
2)LIN的接收行為示例
(1)Slave A給出0x10報文響應,Slave B接收0x10報文的響應,其他節點忽略此信息;
(2)Slave C給出0x11報文響應,Slave B接收0x11報文的響應,其他節點忽略此信息;
(3)Slave B給出0x12報文響應,Slave Master接收0x12報文的響應,其他節點忽略此信息。
具體接收流程示意如下所示:
原文出處:LIN基礎:從LIN Frame開始。?
世上無難事,只要肯登攀。覺得不錯,動動發財的小手點個贊哦!