新聞中心

EEPW首頁 > 汽車電子 > 設(shè)計應(yīng)用 > 飛思卡爾終端節(jié)點通訊解決方案

飛思卡爾終端節(jié)點通訊解決方案

作者: 時間:2016-12-22 來源:網(wǎng)絡(luò) 收藏
本文旨在介紹本地互聯(lián)網(wǎng)(LIN)這種低成本的串行通訊協(xié)議,它主要用于汽車的分布式電子系統(tǒng)和基于網(wǎng)絡(luò)的車輛概念中。

車內(nèi)網(wǎng)絡(luò)解決方案

新技術(shù)為車輛帶來的眾多改變之一就是電子零部件的不斷增加,同時,帶有多種傳感器、執(zhí)行器、電子控制器的高級控制系統(tǒng)也對車用通訊技術(shù)提出了巨大需求。顯而易見,這些需求只能通過使用這種網(wǎng)絡(luò)解決方案來滿足,因為車內(nèi)環(huán)境各不相同,所以,本文將介紹三種能滿足成本、安全性和通訊速度需求的主要通訊標準。

*FlexRay

*CAN -控制器局域網(wǎng)絡(luò)

*LIN -本地互聯(lián)網(wǎng)絡(luò)

以上三種通訊標準在通訊速度和每個節(jié)點的成本方面的比較,見圖1



圖1: 主要汽車通訊協(xié)議

每個通訊標準都有各自的優(yōu)點和目標應(yīng)用平臺:

FlexRay--高速度(每信道高達10 Mbps)、雙信道、時間觸發(fā)、強大的容錯協(xié)議,設(shè)計用作骨干網(wǎng)。一般的目標應(yīng)用是所謂的X-by-wire(線控)概念。其目的是通過電子信號傳輸來替代傳統(tǒng)的制動踏板和制動器或方向盤和車輪之間的機械傳動。

CAN(控制器局域網(wǎng))--中等速度(最高1Mbps)、單信道、雙線容錯協(xié)議,目前不僅在汽車業(yè),還在許多工業(yè)應(yīng)用中廣泛使用。CAN協(xié)議的目標應(yīng)用可以包括電機控制、懸架控制和車內(nèi)信息娛樂功能。

LIN-本地互聯(lián)網(wǎng)絡(luò)--低速(最高20kbps)、單線低成本協(xié)議,可用于終端節(jié)點應(yīng)用。LIN的概念注定這種協(xié)議用于傳感器/執(zhí)行器中,一般用于低速通訊,即速度不是關(guān)鍵因素的應(yīng)用中。

圖2是面向總線的汽車設(shè)計理念的一個例子。這種設(shè)計顯示三種通訊協(xié)議的共存。 



圖2:總線車概念

LIN--本地互聯(lián)網(wǎng)絡(luò)

如上所述,LIN是一種低成本的單線串行通訊接口。它基于通用的UART/SCI接口,可以20 kbps的波特率保證數(shù)據(jù)的可靠傳輸。LIN總線一般應(yīng)用于集成裝置,比如門、方向盤、座椅、溫度控制和發(fā)動機冷卻風扇等。在這些裝置中,LIN網(wǎng)絡(luò)對成本敏感的特性使其采用了一系列先進的機械電子裝置,如智能傳感器/執(zhí)行器。此外,通過用數(shù)字編碼代替模擬編碼,機械電子裝置可以輕松連接到車輛網(wǎng)絡(luò)系統(tǒng),并易于進行各種診斷和維修,包括系統(tǒng)的重新編程和更新。

LIN協(xié)議的另一個主要特征是從節(jié)點中可以自動完成同步而無需晶振或陶瓷振蕩器。這一特性和基于SCI的通訊的簡便性是任何LIN實施提供經(jīng)濟高效性的主要因素。

操作基礎(chǔ)

LIN的操作概念基于一主多從的拓撲結(jié)構(gòu)。在這種情況下,LIN集群(LIN 2.0版中LIN網(wǎng)絡(luò)的同義詞)包含一個主節(jié)點和幾個(多達15個)從節(jié)點。



圖3: 操作概念

如圖3所示,LIN節(jié)點實際上可以分成兩個獨立的部分:

*主任務(wù)(Master task),負責決定何時傳輸哪個幀

*從任務(wù)(Slave task),提供將通過LIN總線傳輸?shù)臄?shù)據(jù),并允許通過節(jié)點從低功耗模式中喚醒LIN集群。

典型的主節(jié)點包含主任務(wù)和從任務(wù),而從節(jié)點只包含從任務(wù)。

幀的組成

通過LIN總線傳輸?shù)臄?shù)據(jù)單位叫作幀。每個幀包含兩個主要部分:

*主任務(wù)提供的報頭。

*從任務(wù)處理的響應(yīng)。



圖4:LIN幀的組成

報頭包含以下幾個部分:

* 中斷(Break) - 至少13位長的LIN總線的主導(dǎo)狀態(tài),由主任務(wù)產(chǎn)生,包含每個LIN幀。

* 同步字段(Synchronisation field) - 數(shù)據(jù)值在0x55的位字段,使從任務(wù)能與主時鐘同步。

* 受保護的識別符(PID) - 獨特地定義消息內(nèi)容但不定義接收方的地址。PID以一個6位長的識別符開始,后面跟有兩個奇偶校驗位。

LIN幀的響應(yīng)部分是節(jié)點的從任務(wù)提供的,可分為以下兩部分:

*數(shù)據(jù)字段--傳輸1到8個字節(jié)的數(shù)據(jù)。

*檢驗和字段--包含反向轉(zhuǎn)化的8個字節(jié)總和,包括后續(xù)(Carry Over)數(shù)據(jù)字節(jié)。

LIN幀的結(jié)構(gòu)見圖5。



圖5:LIN幀結(jié)構(gòu)

在LIN幀的響應(yīng)部分傳輸?shù)臄?shù)據(jù)內(nèi)容有三種類型:

信號 - 響應(yīng)的數(shù)據(jù)字段中包含的梯狀值或字節(jié)陣列。在這種情況下,幀的ID必須在0x00和 0x3B之間。注意,數(shù)據(jù)段中信號的位置對帶有相同 PID的幀來說是固定的。

診斷信息 - 用來傳輸診斷或配置數(shù)據(jù)。這些信息總是8位長,并帶有預(yù)留的ID號。0x3C ID用于主請求, 而0x3D 用于從響應(yīng)。

保留信息 - 可用于用戶定義的擴展名 (這種情況下ID等于0x3E)或預(yù)留用于未來的協(xié)議改進(ID設(shè)為0x3F)。

主任務(wù)對報頭的傳輸基于集群的時間表。時間表規(guī)定了傳送幀的順序,以及當前和下一個幀之間的間隔。由于時間表的數(shù)量從理論上講沒有限制,所以可以定義幾個不同的時間表來滿足集群運行的不同需求。時間表概念是一個機制,有助于確保網(wǎng)絡(luò)不會過載,并確保有保證的數(shù)據(jù)傳輸。

網(wǎng)絡(luò)管理

LIN中的網(wǎng)絡(luò)管理只指集群喚醒和休眠(go-to-sleep)流程。所有其它網(wǎng)絡(luò)管理功能,如配置檢測或自我保護(limp hom)管理都由應(yīng)用完成。

若想使所有從節(jié)點均進入低功耗模式,主節(jié)點會發(fā)出第一個數(shù)據(jù)字節(jié)為零的主請求(MasterRequest)幀。此幀就是休眠命令。從節(jié)點軟件負責處理正確進入低功耗模式所需的所有步驟。此外,如果LIN總線處于非活動狀態(tài)超過25000位時間(在使用LIN 2.0規(guī)范的情況下為超過4秒),從節(jié)點也應(yīng)該自動進入低功耗模式。

為了喚醒休眠的LIN集群,任何節(jié)點都可以發(fā)出喚醒命令。喚醒請求是通過迫使總線進入250ms到5 ms的主導(dǎo)狀態(tài)發(fā)出的。每個從節(jié)點都可以檢測到喚醒請求,并準備好接收100 ms之內(nèi)的總線命令。

LIN節(jié)點功率管理狀態(tài)圖見圖6。



圖6:LIN節(jié)點功率管理

LIN評估

1996年,沃爾沃和Volcano通訊(VCT) 為Volvo S80系列開發(fā)了一種基于UART/SCI的協(xié)議,即Volcano Lite。此協(xié)議是車輛通訊系統(tǒng)不可缺少的組成部分。1997年,摩托羅拉公司與沃爾沃和沃爾沃通訊合作,幫助它們改進Volcano Lite協(xié)議以滿足各種不同需求(比如無需晶振的從設(shè)備自動同步),并制定可以支持各種半導(dǎo)體產(chǎn)品的開放標準。1998年12月,Audi、BMW、Daimler Chrysler和VW也加入進來,由此形成了LIN協(xié)會(http://www.lin-subbus.org)。

LIN 1.0版于1999年7月發(fā)布,并受到一些汽車公司使用的VLIT總線的嚴重影響。LIN標準在2000年經(jīng)過兩次更新,從而產(chǎn)生LIN1.2版本。

2002年11月,LIN協(xié)會頒布LIN1.3版標準,主要對物理層進行修改,提高了節(jié)點之間的兼容性。

當前的標準版本,即LIN2.0,是2003年9月發(fā)布的。由于LIN2.0版是現(xiàn)行標準,所以本文主要介紹此版本。

由于Audi、BMW、Daimler Chrysler、VW、Porsche 和VCT汽車公司在實施過程中發(fā)現(xiàn)了一些問題,所以,LIN的新版本目前正在制定當中。2005年5月,VCT被Mentor Graphics (http://www.mentor.com)收購,成為一個大公司的組成部分,因而能持續(xù)支持和開發(fā)VCT的完整產(chǎn)品線。
LIN 2.0規(guī)范包

LIN規(guī)范2.0版反映了LIN協(xié)會指出的發(fā)展趨勢。它還包括了SAE J2602 Task Force提供的信息,尤其是在現(xiàn)有從節(jié)點的使用方面。LIN2.0規(guī)范包包含以下部分:

* LIN物理層規(guī)范描述了物理層,包括比特率、時鐘容限(clock tolrerance)等。

* LIN協(xié)議規(guī)范描述了LIN的數(shù)據(jù)鏈路層。

* LIN API規(guī)范描述了網(wǎng)絡(luò)和應(yīng)用程序之間的接口,包括配置和診斷層。

* LIN配置語言規(guī)范描述了LIN說明文件的句法和語義,此說明文件用于配置完整的網(wǎng)絡(luò),并作為開發(fā)和分析工具的輸入信息。

* LIN診斷和配置規(guī)范描述了可部署在數(shù)據(jù)鏈層上,為診斷消息和節(jié)點配置提供信息的服務(wù)。

* LIN節(jié)點功能語言規(guī)范定義了用來描述現(xiàn)有從節(jié)點的格式。這些從節(jié)點可與即插即用工具一同使用,以自動創(chuàng)建LIN描述文件。

圖7中的LIN開發(fā)工作流程顯示了LIN 2.0規(guī)范包的各個部分如何組成一個整體。



圖7:VCT LIN開發(fā)工作流程

LIN 2.0和LIN1.3規(guī)范包可以在http://www.lin-subbus.org.上注冊后免費訂購。

通過比較LIN1.3和LIN 2.0規(guī)范包,我們可以看到兩個最重要的改變就是對配置和診斷的標準化支持,以及規(guī)定的節(jié)點能力文件。它們的目標都是簡化現(xiàn)有節(jié)點的使用。

其它重要的改變包括:

* LIN API(LIN規(guī)范包的一部分)是所有用C語言編程的節(jié)點所必需的。

* 增加了改進型校驗和(LIN2.0的校驗和還包括PID字節(jié))。

* 增加了節(jié)點配置命令。

* 標準化和必備的LIN產(chǎn)品識別符(供應(yīng)商ID/功能ID/版本ID)是配置的一部分。

* 增加了診斷和診斷API。

* 定義了新的幀和信號類型,從而可以使用零星的幀和字節(jié)陣列信號。

* 增加了必需的響應(yīng)錯誤(Response_error)從狀態(tài)監(jiān)控。

* 將休眠(goto_sleep)和喚醒(wake_up)信號分離。

* 規(guī)范中增加了自動比特率檢測。

LIN2.0是LIN 1.3的擴展集,因此LIN2.0主節(jié)點可以處理包含LIN 1.3和/或LIN 2.0從節(jié)點的集群。自然,一些LIN2.0的特殊特性(包括增強的校驗和、重新配置和診斷等)不能從LIN1.3從節(jié)點中請求。但是,LIN2.0從節(jié)點不能與LIN1.3主節(jié)點一同運行(因為LIN2.0從節(jié)點需要配置)。

SAE J2602 LIN工作組

AE J2602的目標是通過滿足LIN2.0的模糊、矛盾或可選的要求來提高網(wǎng)絡(luò)中不同LIN設(shè)備之間的可互操作性和可交互能力。J2602的規(guī)定與LIN2.0規(guī)范的主要不同之處包括:

* 波特率固定在10.417Kbps。

* 由于斜率針對固定的波特率進行了優(yōu)化,可以實現(xiàn)更好的EMC。

* 不推薦從節(jié)點之間的通訊。

* 不允許基于事件的消息。

* 除了休眠和有目標的復(fù)位(Sleep and Targeted Reset)外,所有配置和診斷服務(wù)都是可選的。

AEJ2602還提出了LIN2.0中沒有的其它要求(如容錯操作、網(wǎng)絡(luò)拓撲和內(nèi)置的標準化報告等)。

一般來說,SAEJ2606的設(shè)計考慮了實施定制從節(jié)點的長期目標,而LIN2.0假設(shè)使用基于MCU的實施。因此,J2602期望通過定制從節(jié)點來進一步節(jié)約成本。

硅元件上的可能實施

根據(jù)目標MCU提供的功能,可以采用幾種LIN驅(qū)動器實施策略。

對于沒有UART模塊的MCU,需要位響應(yīng)(Bit-Bang)解決方案,使用一個定時器和兩個通用IO引腳將UART功能構(gòu)建到軟件中。主要優(yōu)勢是沒有UART的MCU一般是最便宜的處理器。另一方面,這樣的CPU使用非常精密,需要為每個字節(jié)都發(fā)送中斷請求。最后,這種解決方案與基于UART的解決方案相比一般需要更多內(nèi)存,比如,在飛思卡爾68HC908QY器件中就可以找到這類LIN驅(qū)動器。
帶有標準的UART(SCI)模塊的MCU一般意味著驅(qū)動器的軟件安裝更加簡單,但另一方面,UART模塊會增加最終解決方案的MCU成本。與需要位響應(yīng)(Bit-Bang)解決方案相比,這種解決方案的優(yōu)勢在于CPU的負荷更低,因為基于LIN通訊的中斷只對接收到的每個字節(jié)進行。

LIN優(yōu)化UART模塊的MCU是減少驅(qū)動器軟件部分而增加功能/特性的下一個步驟。飛思卡爾68HC908EY 或 68HC908GR設(shè)備中采用的增強型SCI模塊提供波特率調(diào)節(jié)和仲裁模塊選項,無需額外的定時器就能測量輸入信號(對LIN同步消息有用)。另一方面,這種方法可能會增加最終設(shè)計的成本。

最后一點,也是很重要的一點,理想的解決方案應(yīng)使用LIN專用的UART模塊。飛思卡爾MCU(如68HC908QL設(shè)備)的SLIC(LIN 從接口控制器)模塊就是一個范例。與標準的UART解決方案相比,這種解決方案的成本和復(fù)雜性更高,并且要求實施SLIC優(yōu)化的驅(qū)動器。另一方面,SLIC提供如下功能:自動同步、自動波特率調(diào)整、與上述任何解決方案相比中斷數(shù)大大減少、自動校驗和的生成與驗證。因此,它允許將MCU專用于用戶應(yīng)用。

此外,還有一種非常有趣的解決方案是將所有與LIN有關(guān)的計算轉(zhuǎn)移到支持LIN的協(xié)處理器模塊上。飛思卡爾的MC9S12X系列采用了這種方案。這些產(chǎn)品配備有完全獨立于核心的X-gate RISC協(xié)處理器,可將整個LIN通訊負載從CPU核心中釋放,從而保證CPU在所有時間內(nèi)都可用于用戶應(yīng)用。

LIN2.0應(yīng)用實例

如前所述,LIN通訊協(xié)議設(shè)計用于汽車傳感器和執(zhí)行器應(yīng)用。但是,其使用并不限于這些領(lǐng)域。此處介紹的支持LIN的無刷直流電機(BLDC)發(fā)動機風扇控制應(yīng)用就是LIN應(yīng)用于其它領(lǐng)域的一個實例。

無刷直流電機(BLDC)在汽車應(yīng)用中越來越常見,主要用在空調(diào)控制和發(fā)動機冷卻風扇中。與有刷直流電機相比,無刷直流電機(BLDC)使用電子交換,而不是機械交換器,因此能提高整個系統(tǒng)的可靠性和效率。并且,由于無刷直流電機(BLDC)轉(zhuǎn)子可產(chǎn)生轉(zhuǎn)子磁通量,能夠?qū)崿F(xiàn)更高的機電轉(zhuǎn)換效率。

支持LIN的無刷直流電機(BLDC)發(fā)動機風扇控制應(yīng)用在閉環(huán)、支持PWM的無刷直流電機(BLDC)應(yīng)用中采用LIN2.0通訊協(xié)議。無刷直流電機(BLDC)由霍爾傳感器驅(qū)動,用于轉(zhuǎn)子位置檢測,并且,應(yīng)用中還嵌入了電流和過壓檢測功能。此應(yīng)用的主要部分見圖8:



圖8:支持LIN的無刷直流電機(BLDC)發(fā)動機風扇控制

如圖所示,支持LIN的無刷直流電機(BLDC)發(fā)動機風扇控制硬件設(shè)計非常簡單,包含四個部分:

發(fā)動機風扇控制LIN 主節(jié)點 - 為LIN集群提供所需的風扇速度信息,以及運行/停止命令和錯誤跟蹤。

MC68HC908QB8 LIN 開發(fā)包 - 是一個LIN從節(jié)點,處理的無刷直流電機(BLDC)控制功能,并為集群提供實際風扇轉(zhuǎn)速信息和風扇運行/錯誤狀態(tài)信息。評估板的LIN開發(fā)包系列 (EVB)是開發(fā)者輕松開發(fā)他們各自基于LIN的項目而無需關(guān)注硬件開發(fā)的一種方法。目前,這些評估板可用于飛思卡爾半導(dǎo)體的各種8/16位MCU:從非常小型、便宜的MC68HC908QY4 MCU到功能強大的MC68HC908S12C32。在本應(yīng)用中,我們選擇了MC68HC908QB8,它是低成本、小型的8位MCU系列的一員。

MC33395 EVB - 用于功率設(shè)計。飛思卡爾半導(dǎo)體的評估板概念不只限于這種基于MCU的板,還包括基于飛思卡爾SMARTMOS系列的評估板。MC33395 EVB非常適合各種12V的電機控制應(yīng)用,包括零交叉和背EMF (zero crossing and back EMF)無刷直流電機(BLDC)轉(zhuǎn)子位置檢測方法,使用戶可以輕松使用先進的電機控制程序。

無刷直流電機(BLDC)風扇-- 這種應(yīng)用使用EBM-Papst W3G300-EQ22-90軸向風扇。

以下是發(fā)動機風扇系統(tǒng)的功能。主節(jié)點發(fā)送有關(guān)要求的無刷直流電機(BLDC)負載循環(huán)、開/關(guān)命令和復(fù)位信號(用來清除從節(jié)點上的電流過高和過壓信號)的信息。所需的速度可以直接在主板上設(shè)置,也可以通過高級CAN總線發(fā)送給主節(jié)點。從節(jié)點為主節(jié)點提供實際無刷直流電機(BLDC)速度、電流過大和電壓過高標志。

將LIN2.0鏈接增加到獨立發(fā)動機風扇中的第一步是創(chuàng)建集群消息策略。它完整描述了集群中不同設(shè)備之間的通訊。它包括所有幀的一個列表,帶有定義的幀ID、幀發(fā)行者和用戶以及數(shù)據(jù)字段內(nèi)容(包括信號結(jié)構(gòu))。為集群創(chuàng)建一份日程表也非常重要。這些都應(yīng)該包含在LIN描述文件(*.ldf)中,它的結(jié)構(gòu)由LIN規(guī)范包(LIN配置語言說明)規(guī)定。

對于項目的軟件部分,Volcano(訪問www.volcanoautomotive.com了解更多信息)LIN 目標包(LTP)用作LIN 2.0驅(qū)動器。這種工具可以從集群LDF文件中生成LIN特定的C代碼文件。然后,這些文件被直接添加到用戶編譯器/鏈接器中,以在項目中增加LIN鏈接程序。因此,應(yīng)用開發(fā)人員只需編寫用戶的特定程序而無需花時間來開發(fā)與LIN通訊有關(guān)的程序。欲了解這方面的更多信息,請參見飛思卡爾半導(dǎo)體應(yīng)用指南AN2767, 使用Volcano LTP的飛思卡爾8/16位MCU上的LIN 2.0鏈接。它是一篇簡單、易讀的文章,描述和介紹了LIN2.0的實施主題。

支持LIN的無刷直流電機(BLDC)發(fā)動機風扇控制在飛思卡爾半導(dǎo)體AN2983應(yīng)用指南中進行了詳細描述。該應(yīng)用指南包括完整的軟件代碼,可從飛思卡爾網(wǎng)站上免費下載。圖9顯示了該應(yīng)用的真實圖片。



圖10:支持LIN的無刷直流電機(BLDC)發(fā)動機風扇控制的實際安裝

飛思卡爾半導(dǎo)體提供廣泛的LIN產(chǎn)品系列,包括8/16/32位主MCU和8/16位從節(jié)點MCU。而且,模擬產(chǎn)品部(Analogue Product Group)也提供多種產(chǎn)品,包括LIN物理層接口、LIN/CAN SBC(系統(tǒng)基礎(chǔ)芯片)和IDC(智能分布式控制)。IDC產(chǎn)品是高度集成的單一封裝芯片,包含一個8位MCU、LIN物理層接口、電壓調(diào)節(jié)器和各種功率驅(qū)動(SMARTMOS)組件,如半橋、高/低端開關(guān)、霍爾傳感器輸入等。此解決方案非常適合空間有限的應(yīng)用,如后視鏡或車窗升降器。


關(guān)鍵詞: 車載網(wǎng)

評論


技術(shù)專區(qū)

關(guān)閉