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