未來汽車中的終端節(jié)點通訊
網(wǎng)絡管理
LIN中的網(wǎng)絡管理只指集群喚醒和休眠(go-to-sleep)流程。所有其它網(wǎng)絡管理功能,如配置檢測或自我保護(limp hom)管理都由應用完成。
若想使所有從節(jié)點均進入低功耗模式,主節(jié)點會發(fā)出第一個數(shù)據(jù)字節(jié)為零的主請求(MasterRequest)幀。此幀就是休眠命令。從節(jié)點軟件負責處理正確進入低功耗模式所需的所有步驟。此外,如果LIN總線處于非活動狀態(tài)超過25000位時間(在使用LIN 2.0規(guī)范的情況下為超過4秒),從節(jié)點也應該自動進入低功耗模式。
為了喚醒休眠的LIN集群,任何節(jié)點都可以發(fā)出喚醒命令。喚醒請求是通過迫使總線進入250ms到5 ms的主導狀態(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é)議以滿足各種不同需求(比如無需晶振的從設備自動同步),并制定可以支持各種半導體產(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)絡和應用程序之間的接口,包括配置和診斷層。 LIN配置語言規(guī)范描述了LIN說明文件的句法和語義,此說明文件用于配置完整的網(wǎng)絡,并作為開發(fā)和分析工具的輸入信息。 LIN診斷和配置規(guī)范描述了可部署在數(shù)據(jù)鏈層上,為診斷消息和節(jié)點配置提供信息的服務。 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)品識別符(供應商ID/功能ID/版本ID)是配置的一部分。 增加了診斷和診斷API。 定義了新的幀和信號類型,從而可以使用零星的幀和字節(jié)陣列信號。 增加了必需的響應錯誤(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工作組
SAE J2602的目標是通過滿足LIN2.0的模糊、矛盾或可選的要求來提高網(wǎng)絡中不同LIN設備之間的可互操作性和可交互能力。J2602的規(guī)定與LIN2.0規(guī)范的主要不同之處包括:
波特率固定在10.417Kbps。 由于斜率針對固定的波特率進行了優(yōu)化,可以實現(xiàn)更好的EMC。 不推薦從節(jié)點之間的通訊。 不允許基于事件的消息。 除了休眠和有目標的復位(Sleep and Targeted Reset)外,所有配置和診斷服務都是可選的。
SAEJ2602還提出了LIN2.0中沒有的其它要求(如容錯操作、網(wǎng)絡拓撲和內(nèi)置的標準化報告等)。
一般來說,SAEJ2606的設計考慮了實施定制從節(jié)點的長期目標,而LIN2.0假設使用基于MCU的實施。因此,J2602期望通過定制從節(jié)點來進一步節(jié)約成本。
硅元件上的可能實施
根據(jù)目標MCU提供的功能,可以采用幾種LIN驅(qū)動器實施策略。
對于沒有UART模塊的MCU,需要位響應(Bit-Bang)解決方案,使用一個定時器和兩個通用IO引腳將UART功能構建到軟件中。主要優(yōu)勢是沒有UART的MCU一般是最便宜的處理器。另一方面,這樣的CPU使用非常精密,需要為每個字節(jié)都發(fā)送中斷請求。最后,這種解決方案與基于UART的解決方案相比一般需要更多內(nèi)存,比如,在飛思卡爾68HC908QY器件中就可以找到這類LIN驅(qū)動器。
評論