局域互聯(lián)網(wǎng)(LIN)是一種低成本的嵌入式網(wǎng)絡(luò)標(biāo)準,用于連接智能設(shè)備。LIN最常見于汽車工業(yè)。
1. LIN概述
局域互聯(lián)網(wǎng)(LIN)總線是為汽車網(wǎng)絡(luò)開發(fā)的一種低成本、低端多路復(fù)用通信標(biāo)準。雖然控制器局域網(wǎng)(CAN)總線滿足了高帶寬、高級錯誤處理網(wǎng)絡(luò)的需求,但是實現(xiàn)CAN的軟硬件花費使得低性能設(shè)備(如電動車窗和座椅控制器)無法采用該總線。若應(yīng)用程序無需CAN的帶寬及多用性,可采用LIN這種高性價比的通信方式。用戶可在最先進的低價位8位微控制器中嵌入標(biāo)準串行通用異步收發(fā)器(UART),以相對廉價的方式實現(xiàn)LIN。
現(xiàn)代汽車網(wǎng)絡(luò)包含各類總線。例如,在主體電子設(shè)備的低成本應(yīng)用程序中使用LIN,在主流動力系統(tǒng)和車身通信中使用CAN,而在先進系統(tǒng)(如主動懸掛)中的高速同步數(shù)據(jù)通信中使用新興的FlexRay總線。
LIN總線采用主/從方法,包含一個LIN主方和一個或多個LIN從方。
?
圖1. LIN消息幀
消息標(biāo)題包含一個中斷(用于標(biāo)記幀的開始)和一個同步字段(供從節(jié)點同步時鐘)。標(biāo)識符(ID)包含一個6位消息ID和一個2位校驗字段。ID表示特定的消息地址,而非目標(biāo)。接收并解碼ID后,從方開始消息響應(yīng),該消息響應(yīng)包含1至8字節(jié)的數(shù)據(jù)以及一個8位校驗和。
主方控制消息幀的排序,該排序在調(diào)度中是固定的。用戶可按需改變該調(diào)度。
LIN標(biāo)準更新過多個版本。1.3版本最終確定了字節(jié)層通信。2.0和2.1版本新增了更多消息規(guī)范和服務(wù),但仍與LIN 1.3版本的字節(jié)層兼容。
API對該功能不提供原生支持,但用戶依然可實現(xiàn)該功能。
表1. LIN 1.3、2.0及2.1版本對比
2. LIN幀格式
LIN總線是一種輪詢總線,帶有一個主設(shè)備和一個或多個從設(shè)備。主設(shè)備同時包含一個主任務(wù)和一個從任務(wù)。每個從設(shè)備僅包含一個從任務(wù)。LIN總線上的通信完全由主設(shè)備上的主任務(wù)控制。LIN總線上傳輸?shù)幕締挝皇菐繋址譃闃?biāo)題和響應(yīng)。標(biāo)題總是通過主節(jié)點傳輸,包含3個不同的字段:中斷、同步(sync)及標(biāo)識符(ID)。響應(yīng)通過從任務(wù)傳輸,可位于主節(jié)點或從節(jié)點中,包含一個數(shù)據(jù)載荷及一個校驗和。
通常,主任務(wù)通過傳輸標(biāo)題,在循環(huán)中輪詢每個從任務(wù)。該標(biāo)題包含一個中斷-同步-ID序列。啟動LIN之前,每個從任務(wù)被配置為根據(jù)接收到的標(biāo)題ID向總線發(fā)布數(shù)據(jù)或從總線訂閱數(shù)據(jù)。一旦收到標(biāo)題,每個從任務(wù)將驗證ID校驗,并檢查ID,以決定選擇發(fā)布或訂閱。若從任務(wù)需要發(fā)布響應(yīng),將向總線傳輸1至8數(shù)據(jù)字節(jié),后接1個校驗和字節(jié)。若從任務(wù)需要訂閱,將從總線讀取數(shù)據(jù)載荷和校驗和字節(jié),并采取適當(dāng)?shù)膬?nèi)部動作。
對于標(biāo)準從至主通信,主方廣播標(biāo)識符至網(wǎng)絡(luò),僅有一個從方響應(yīng)數(shù)據(jù)載荷。
主至從通信伴隨著一個主節(jié)點中的獨立從任務(wù)。該任務(wù)自我接收發(fā)布至總線的全部數(shù)據(jù),并以獨立從節(jié)點的方式響應(yīng)。為了傳輸數(shù)據(jù)字節(jié),主方必須首先根據(jù)需要傳輸?shù)臄?shù)據(jù)值,升級其內(nèi)部從任務(wù)的響應(yīng)。接著,主方將發(fā)布合適的幀標(biāo)題,內(nèi)部從任務(wù)傳輸其數(shù)據(jù)載荷至總線。
?
圖2. LIN消息幀
1. 中斷
每個LIN幀都以中斷作為開始,包含13個顯性位(額定),后接一個1位(額定)隱性中斷分隔符。中斷的作用是將幀的開始通知給總線上的所有節(jié)點。
2. 同步
同步字段是主任務(wù)在標(biāo)題中傳輸?shù)牡诙€字段。同步被定義為字符x55。同步字段允許進行自動波特率檢測的從設(shè)備測量波特率周期,并調(diào)節(jié)其內(nèi)部波特率,與總線進行同步。
3. ID
ID字段是主任務(wù)在標(biāo)題中傳輸?shù)淖詈笠粋€字段。該字段識別網(wǎng)絡(luò)上的每條消息,并最終決定由網(wǎng)絡(luò)中的哪些節(jié)點接收或響應(yīng)每個傳輸。所有從任務(wù)連續(xù)監(jiān)聽ID字段、驗證其校驗,并決定其是否是該特定標(biāo)識符的發(fā)布者或訂閱者。LIN總線一共能提供64個ID。ID 0~59用于信號攜帶(數(shù)據(jù))幀,60和61用于攜帶診斷數(shù)據(jù),62預(yù)留給用戶自定義擴展,63預(yù)留給未來協(xié)議升級。ID作為一個受保護的ID字節(jié)通過總線傳輸,低6位包含原始ID,高2位包含校驗。
表2. 校驗計算方法
4. 數(shù)據(jù)字節(jié)
從任務(wù)在響應(yīng)中傳輸數(shù)據(jù)字節(jié)字段。該字段包含1至8字節(jié)的載荷數(shù)據(jù)字節(jié)。
5. 校驗和
從任務(wù)在響應(yīng)中傳輸校驗和字段。LIN總線采用2個校驗和算法之一,以計算8位校驗和字段中的值。經(jīng)典校驗和的計算方法是單獨累加數(shù)據(jù)字節(jié),而增強校驗和的計算方法則是累加數(shù)據(jù)字節(jié)及受保護的ID。
LIN 2.0規(guī)范將校驗和的計算過程定義為:累加所有值,且當(dāng)總和大于等于256時減去255(與modulo-255或modulo-256不同)。根據(jù)LIN 2.0標(biāo)準,經(jīng)典校驗和用于LIN 1.3從節(jié)點,而增強校驗和用于LIN 2.0從節(jié)點。該規(guī)范進一步規(guī)定,ID 60~63應(yīng)該總是使用經(jīng)典校驗和。NI LIN接口允許設(shè)置校驗和類型為經(jīng)典或增強。默認設(shè)置為經(jīng)典。根據(jù)LIN 2.0規(guī)范,無論如何設(shè)置校驗和屬性,ID 60~63總是使用經(jīng)典校驗和。
圖3顯示了主任務(wù)標(biāo)題和從任務(wù)響應(yīng)如何組合成一個完整的LIN幀。
?
圖3. 創(chuàng)建LIN幀
3. LIN總線定時
由于LIN總線是輪詢總線,處理每幀分配的額定時間槽如下:
THeader_Nominal = 34 * TBit
TResponse_Nominal = 10 * (NData + 1) * TBit
TFrame_Nominal = THeader_Nominal + TResponse_Nominal
處理每幀分配的最大時間槽如下:
THeader_Maximum = 14 * THeader_Nominal
TResponse_Maximum = 1.4 * TResponse_Nominal
TFrame_Maximum = THeader_Maximum + TResponse_Maximum
4. LIN拓撲結(jié)構(gòu)及行為
LIN總線連接一個主設(shè)備(節(jié)點)和一個或多個從設(shè)備(節(jié)點),成為一個LIN簇。對應(yīng)的功能文件描述了該節(jié)點的行為。節(jié)點功能文件輸入系統(tǒng)定義工具,生成LIN描述文件(LDF),描述整個簇的行為。系統(tǒng)生成器解析LDF,自動生成目標(biāo)節(jié)點中的特定行為。此時,按照LDF中指定的方式,主節(jié)點主任務(wù)開始在總線上傳輸標(biāo)題,簇中的所有從任務(wù)(包括主節(jié)點自己的從任務(wù))開始響應(yīng)。
總體來說,LDF用于配置及創(chuàng)建LIN簇的調(diào)度行為。例如,LDF定義了波特率、主任務(wù)傳輸標(biāo)題時的順序及時間延遲,以及響應(yīng)時每個從任務(wù)的行為。NI LIN硬件及用于LIN的NI-CAN幀API無法為LDF提供原生的完整支持,即用戶無法下載調(diào)度行為至硬件。但是,硬件提供了訪問總線的底層支持(寫入標(biāo)題及發(fā)布或訂閱作為響應(yīng)),用戶可在應(yīng)用程序?qū)觿?chuàng)建調(diào)度行為。正如在NI LIN響應(yīng)輸入幀類型的描述中所說,NI LIN硬件采用響應(yīng)隊列存儲從任務(wù)響應(yīng)。響應(yīng)隊列保留64個響應(yīng),與每個為LIN指定的(最多64個)ID一一對應(yīng)。這將確保LIN接口的從任務(wù)可在LIN規(guī)范規(guī)定的響應(yīng)時間內(nèi)響應(yīng)標(biāo)題。
用于LIN的NI-CAN幀API可通過一種穩(wěn)健的方式完成與LIN總線的底層交互。終端用戶可使用基本功能,開發(fā)復(fù)雜應(yīng)用程序,包括分析及原型化LIN網(wǎng)絡(luò)。用于LIN的NI-CAN幀API無法為LIN診斷或配置、LDF或調(diào)度表提供原生支持。但是,用戶可在采用用于LIN的NI-CAN幀API的應(yīng)用程序中實現(xiàn)這些任務(wù)。
評論
查看更多