來源:曉超說
--lIN物理層--
大家好,本文章向大家介紹LIN總線的物理層。
出于成本原因與CAN相比,LIN通信線路為一根線。
另外,LIN通信可以不需要通信控制器,它的物理通信可以通過UART接口也稱為SCI接口實現(xiàn)。
這種接口幾乎集成在所有的微控制器中,所以LIN是基于UART幀結(jié)構(gòu)的通信。
通過右圖我們可以看到真實LIN報紋與UART幀的對應(yīng)關(guān)系。
圖片源VECTOR
我們可以看到UART幀包括8個數(shù)據(jù)位加一個起始位和一個停止位。
起始位是一個固定的邏輯0,停止位是一個固定的邏輯1。
那么在LIN總線中,邏輯0與邏輯1和物理電瓶如何對應(yīng)呢?
我們繼續(xù)學(xué)習(xí)LIN的信號規(guī)范。
在LIN規(guī)范中,規(guī)定顯信位是一個邏輯0。
對于發(fā)送節(jié)點,總線物理電瓶小于20%VSUP時即為0。
對于接收節(jié)點,總線物理電瓶小于40%VSUP時為0。
隱性位是一個邏輯1。
對于發(fā)送節(jié)點,總線物理電瓶大于80%VSUP時為1。
對于接收節(jié)點,總線物理電瓶大于60%VSUP時即為1。
以上規(guī)定了接收節(jié)點和發(fā)送節(jié)點的信號特征。
在數(shù)據(jù)傳輸過程中,發(fā)送節(jié)點和接收節(jié)點還需要進(jìn)行同步,來保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。
下面我們介紹Lin總線的同步。
在LIN總線中,有初始同步和重同步兩種同步方式。
首先我們介紹初始同步。
LIN主節(jié)點/重節(jié)點在每次報文傳輸開始時需要建立同步。
為了降低成本,LIN總線沒有時鐘線。
重節(jié)點一般采用低成本的RC振蕩器,并允許最大14%的時鐘偏差。
當(dāng)總線處于空閑時,總線狀態(tài)為邏輯1。
數(shù)據(jù)開始傳輸時,由LIN的主節(jié)點實現(xiàn)初始同步。
主節(jié)點會向總線發(fā)送同步間隔場和同步場數(shù)據(jù)。
同步間隔場至少由13個位的顯信位和1個位的隱信位組成。
同步場數(shù)據(jù)為LIN(x)55。
當(dāng)重節(jié)點接收到主節(jié)點發(fā)送的同步場數(shù)據(jù)后,
重節(jié)點測量同步場第一個和最后一個下降嚴(yán)之間的時間,并將此時間除以8。
由此計算出主節(jié)點的位時間。
同時,根據(jù)計算結(jié)果調(diào)整自身的位速率,從而使主節(jié)點和重節(jié)點的位速率一致。
初始同步實現(xiàn)了所有重節(jié)點時鐘和主節(jié)點時鐘同步。
但是,在實際應(yīng)用中,各節(jié)點時鐘精度是存在差異的。
在數(shù)據(jù)傳輸?shù)倪^程中,由于這種時鐘精度的差異可能會造成未傳輸?shù)钠睢?/p>
在LIN總線中還有一種同步方式,為重同步。
LIN幀格式是基于UART的通行格式。
發(fā)送節(jié)點和接收節(jié)點可利用UART幀其實位的下降嚴(yán)進(jìn)行同步。
盡量避免因時鐘精度的差異而導(dǎo)致的傳輸偏差。
這個階段的同步稱之為重同步。
以上內(nèi)容就是關(guān)于LIN總線物理層的介紹。
--LIN通信原理及幀結(jié)構(gòu)--
接下來向大家介紹LIN總線的通信原理以及LIN報文幀結(jié)構(gòu)。
首先是LIN總先通信原理。
LIN網(wǎng)絡(luò)采用的是主從結(jié)構(gòu)。在這種主從結(jié)構(gòu)中,有一個主節(jié)點和多個從節(jié)點。主節(jié)點包含主任務(wù)和從任務(wù),從節(jié)點只包含從任務(wù)。
主任務(wù)根據(jù)在LIN調(diào)度表中確定的時間,負(fù)責(zé)向總先發(fā)送Header也稱為"報頭"。網(wǎng)絡(luò)中的節(jié)點接收到Header后,從任務(wù)負(fù)責(zé)發(fā)送Response或接收Response或不發(fā)送也不接收。Response也稱為"響應(yīng)"。
Header和Response就組成了LIN報文。
我們這里可以看一個例子,來理解LIN總線的通信原理。
在這個例子中,網(wǎng)絡(luò)有一個主節(jié)點和三個從節(jié)點。在LIN的調(diào)度表中定義了LIN報文的發(fā)送時間。
在T0發(fā)送Header1,在T1發(fā)送Header2,在T2發(fā)送Header3。那么,LIN的主節(jié)點就會按照定義好的時間去發(fā)送Header。
主節(jié)點在T0發(fā)送了Header1,接著從節(jié)點1發(fā)送了Response,從節(jié)點3接收了Response,從節(jié)點2不發(fā)送也不接收。
接著,主節(jié)點根據(jù)調(diào)度表發(fā)送了Header2、Header3,完成一個通信循環(huán)。由此我們可以看到,LIN報文的發(fā)送和接收時間都是預(yù)先確定并且可以預(yù)測的。
經(jīng)過上面的介紹,我們了解到LIN報文是由Header和Response組成的。下面我們具體看一下LIN報文的幀結(jié)構(gòu)。
首先是Header。Header是由主節(jié)點發(fā)送的。
header由sync break field的及同步間隔場、sync field的同步場和Protected Identifier及PID組成。同步間隔場由同步間隔和間隔界定符組成。同步間隔為至少持續(xù)13個位的顯信位。
由于總線處于空閑時為隱信位,并且報文中除同步間隔場外的任何其他字段均符和UART真格式,也就不會發(fā)出大于9個位的顯信位。
所以,同步間隔可以表示一幀報文的其實。間隔接訂符至少包含一個隱信位。同步場為固定格式,數(shù)據(jù)為LINx55,用于初始同步。下面我們來詳細(xì)看一下header中的PID。
PID由6位ID和P0,P1兩位奇偶校驗位組成。由于LIN的ID有6位,所以它的范圍為0-63。在這些ID中,60和61及LINx3C和LINx3D用于診斷報文。
62和63為保留。P0,P1兩位奇偶校驗位組成,P0是ID0、ID1、ID2、ID4進(jìn)行異或運算的結(jié)果。P1是ID1、ID3、ID4、ID5進(jìn)行異或運算后取非的結(jié)果。
由此我們可以看出ID與PID是有一個確定的對應(yīng)關(guān)系的。
我們接著看Response。
Response包含數(shù)據(jù)場和校驗場。數(shù)據(jù)場長度為1-8個字節(jié)。校驗場能夠起到校驗和保護(hù)傳輸內(nèi)容的作用。我們具體來看一下。在另總線中有兩種校驗?zāi)P?分別是經(jīng)典校驗和增強(qiáng)校驗。
那么它們有什么區(qū)別呢?經(jīng)典校驗范圍為數(shù)據(jù)場內(nèi)容,增強(qiáng)校驗范圍為PID和數(shù)據(jù)場內(nèi)容。
在LIN規(guī)范1.1、1.2、1.3版本中沒有增強(qiáng)校驗。這里需要注意的是,對于ID為LINx3c和LINx3d的報紋,也就是整段報文,在所有版本的LIN規(guī)范中使用的都是經(jīng)典校驗。
評論