未來汽車中的終端節點通訊
網絡管理
LIN中的網絡管理只指集群喚醒和休眠(go-to-sleep)流程。所有其它網絡管理功能,如配置檢測或自我保護(limp hom)管理都由應用完成。
若想使所有從節點均進入低功耗模式,主節點會發出第一個數據字節為零的主請求(MasterRequest)幀。此幀就是休眠命令。從節點軟件負責處理正確進入低功耗模式所需的所有步驟。此外,如果LIN總線處于非活動狀態超過25000位時間(在使用LIN 2.0規范的情況下為超過4秒),從節點也應該自動進入低功耗模式。
為了喚醒休眠的LIN集群,任何節點都可以發出喚醒命令。喚醒請求是通過迫使總線進入250ms到5 ms的主導狀態發出的。每個從節點都可以檢測到喚醒請求,并準備好接收100 ms之內的總線命令。
LIN節點功率管理狀態圖見圖6。
圖6:LIN節點功率管理
LIN評估
1996年,沃爾沃和Volcano通訊(VCT) 為Volvo S80系列開發了一種基于UART/SCI的協議,即Volcano Lite。此協議是車輛通訊系統不可缺少的組成部分。1997年,摩托羅拉公司與沃爾沃和沃爾沃通訊合作,幫助它們改進Volcano Lite協議以滿足各種不同需求(比如無需晶振的從設備自動同步),并制定可以支持各種半導體產品的開放標準。1998年12月,Audi、BMW、Daimler Chrysler和VW也加入進來,由此形成了LIN協會(http://www.lin-subbus.org)。
LIN 1.0版于1999年7月發布,并受到一些汽車公司使用的VLIT總線的嚴重影響。LIN標準在2000年經過兩次更新,從而產生LIN1.2版本。
2002年11月,LIN協會頒布LIN1.3版標準,主要對物理層進行修改,提高了節點之間的兼容性。
當前的標準版本,即LIN2.0,是2003年9月發布的。由于LIN2.0版是現行標準,所以本文主要介紹此版本。
由于Audi、BMW、Daimler Chrysler、VW、Porsche 和VCT汽車公司在實施過程中發現了一些問題,所以,LIN的新版本目前正在制定當中。2005年5月,VCT被Mentor Graphics (http://www.mentor.com)收購,成為一個大公司的組成部分,因而能持續支持和開發VCT的完整產品線。
LIN 2.0規范包
LIN規范2.0版反映了LIN協會指出的發展趨勢。它還包括了SAE J2602 Task Force提供的信息,尤其是在現有從節點的使用方面。
LIN2.0規范包包含以下部分:
LIN物理層規范描述了物理層,包括比特率、時鐘容限(clock tolrerance)等。 LIN協議規范描述了LIN的數據鏈路層。 LIN API規范描述了網絡和應用程序之間的接口,包括配置和診斷層。 LIN配置語言規范描述了LIN說明文件的句法和語義,此說明文件用于配置完整的網絡,并作為開發和分析工具的輸入信息。 LIN診斷和配置規范描述了可部署在數據鏈層上,為診斷消息和節點配置提供信息的服務。 LIN節點功能語言規范定義了用來描述現有從節點的格式。這些從節點可與即插即用工具一同使用,以自動創建LIN描述文件。
圖7中的LIN開發工作流程顯示了LIN 2.0規范包的各個部分如何組成一個整體。
圖7:VCT LIN開發工作流程
LIN 2.0和LIN1.3規范包可以在http://www.lin-subbus.org.上注冊后免費訂購。
通過比較LIN1.3和LIN 2.0規范包,我們可以看到兩個最重要的改變就是對配置和診斷的標準化支持,以及規定的節點能力文件。它們的目標都是簡化現有節點的使用。
其它重要的改變包括:
LIN API(LIN規范包的一部分)是所有用C語言編程的節點所必需的。 增加了改進型校驗和(LIN2.0的校驗和還包括PID字節)。 增加了節點配置命令。 標準化和必備的LIN產品識別符(供應商ID/功能ID/版本ID)是配置的一部分。 增加了診斷和診斷API。 定義了新的幀和信號類型,從而可以使用零星的幀和字節陣列信號。 增加了必需的響應錯誤(Response_error)從狀態監控。 將休眠(goto_sleep)和喚醒(wake_up)信號分離。 規范中增加了自動比特率檢測。
LIN2.0是LIN 1.3的擴展集,因此LIN2.0主節點可以處理包含LIN 1.3和/或LIN 2.0從節點的集群。自然,一些LIN2.0的特殊特性(包括增強的校驗和、重新配置和診斷等)不能從LIN1.3從節點中請求。但是,LIN2.0從節點不能與LIN1.3主節點一同運行(因為LIN2.0從節點需要配置)。
SAE J2602 LIN工作組
SAE J2602的目標是通過滿足LIN2.0的模糊、矛盾或可選的要求來提高網絡中不同LIN設備之間的可互操作性和可交互能力。J2602的規定與LIN2.0規范的主要不同之處包括:
波特率固定在10.417Kbps。 由于斜率針對固定的波特率進行了優化,可以實現更好的EMC。 不推薦從節點之間的通訊。 不允許基于事件的消息。 除了休眠和有目標的復位(Sleep and Targeted Reset)外,所有配置和診斷服務都是可選的。
SAEJ2602還提出了LIN2.0中沒有的其它要求(如容錯操作、網絡拓撲和內置的標準化報告等)。
一般來說,SAEJ2606的設計考慮了實施定制從節點的長期目標,而LIN2.0假設使用基于MCU的實施。因此,J2602期望通過定制從節點來進一步節約成本。
硅元件上的可能實施
根據目標MCU提供的功能,可以采用幾種LIN驅動器實施策略。
對于沒有UART模塊的MCU,需要位響應(Bit-Bang)解決方案,使用一個定時器和兩個通用IO引腳將UART功能構建到軟件中。主要優勢是沒有UART的MCU一般是最便宜的處理器。另一方面,這樣的CPU使用非常精密,需要為每個字節都發送中斷請求。最后,這種解決方案與基于UART的解決方案相比一般需要更多內存,比如,在飛思卡爾68HC908QY器件中就可以找到這類LIN驅動器。
評論