飛思卡爾終端節點通訊解決方案
本文旨在介紹本地互聯網(LIN)這種低成本的串行通訊協議,它主要用于汽車的分布式電子系統和基于網絡的車輛概念中。 車內網絡解決方案 新技術為車輛帶來的眾多改變之一就是電子零部件的不斷增加,同時,帶有多種傳感器、執行器、電子控制器的高級控制系統也對車用通訊技術提出了巨大需求。顯而易見,這些需求只能通過使用這種網絡解決方案來滿足,因為車內環境各不相同,所以,本文將介紹三種能滿足成本、安全性和通訊速度需求的主要通訊標準。 *FlexRay *CAN -控制器局域網絡 *LIN -本地互聯網絡 以上三種通訊標準在通訊速度和每個節點的成本方面的比較,見圖1 ![]() 圖1: 主要汽車通訊協議 每個通訊標準都有各自的優點和目標應用平臺: FlexRay--高速度(每信道高達10 Mbps)、雙信道、時間觸發、強大的容錯協議,設計用作骨干網。一般的目標應用是所謂的X-by-wire(線控)概念。其目的是通過電子信號傳輸來替代傳統的制動踏板和制動器或方向盤和車輪之間的機械傳動。 CAN(控制器局域網)--中等速度(最高1Mbps)、單信道、雙線容錯協議,目前不僅在汽車業,還在許多工業應用中廣泛使用。CAN協議的目標應用可以包括電機控制、懸架控制和車內信息娛樂功能。 LIN-本地互聯網絡--低速(最高20kbps)、單線低成本協議,可用于終端節點應用。LIN的概念注定這種協議用于傳感器/執行器中,一般用于低速通訊,即速度不是關鍵因素的應用中。 圖2是面向總線的汽車設計理念的一個例子。這種設計顯示三種通訊協議的共存。 ![]() 圖2:總線車概念 LIN--本地互聯網絡 如上所述,LIN是一種低成本的單線串行通訊接口。它基于通用的UART/SCI接口,可以20 kbps的波特率保證數據的可靠傳輸。LIN總線一般應用于集成裝置,比如門、方向盤、座椅、溫度控制和發動機冷卻風扇等。在這些裝置中,LIN網絡對成本敏感的特性使其采用了一系列先進的機械電子裝置,如智能傳感器/執行器。此外,通過用數字編碼代替模擬編碼,機械電子裝置可以輕松連接到車輛網絡系統,并易于進行各種診斷和維修,包括系統的重新編程和更新。 LIN協議的另一個主要特征是從節點中可以自動完成同步而無需晶振或陶瓷振蕩器。這一特性和基于SCI的通訊的簡便性是任何LIN實施提供經濟高效性的主要因素。 操作基礎 LIN的操作概念基于一主多從的拓撲結構。在這種情況下,LIN集群(LIN 2.0版中LIN網絡的同義詞)包含一個主節點和幾個(多達15個)從節點。 ![]() 圖3: 操作概念 如圖3所示,LIN節點實際上可以分成兩個獨立的部分: *主任務(Master task),負責決定何時傳輸哪個幀 *從任務(Slave task),提供將通過LIN總線傳輸的數據,并允許通過節點從低功耗模式中喚醒LIN集群。 典型的主節點包含主任務和從任務,而從節點只包含從任務。 幀的組成 通過LIN總線傳輸的數據單位叫作幀。每個幀包含兩個主要部分: *主任務提供的報頭。 *從任務處理的響應。 ![]() 圖4:LIN幀的組成 報頭包含以下幾個部分: * 中斷(Break) - 至少13位長的LIN總線的主導狀態,由主任務產生,包含每個LIN幀。 * 同步字段(Synchronisation field) - 數據值在0x55的位字段,使從任務能與主時鐘同步。 * 受保護的識別符(PID) - 獨特地定義消息內容但不定義接收方的地址。PID以一個6位長的識別符開始,后面跟有兩個奇偶校驗位。 LIN幀的響應部分是節點的從任務提供的,可分為以下兩部分: *數據字段--傳輸1到8個字節的數據。 *檢驗和字段--包含反向轉化的8個字節總和,包括后續(Carry Over)數據字節。 LIN幀的結構見圖5。 ![]() 圖5:LIN幀結構 在LIN幀的響應部分傳輸的數據內容有三種類型: 信號 - 響應的數據字段中包含的梯狀值或字節陣列。在這種情況下,幀的ID必須在0x00和 0x3B之間。注意,數據段中信號的位置對帶有相同 PID的幀來說是固定的。 診斷信息 - 用來傳輸診斷或配置數據。這些信息總是8位長,并帶有預留的ID號。0x3C ID用于主請求, 而0x3D 用于從響應。 保留信息 - 可用于用戶定義的擴展名 (這種情況下ID等于0x3E)或預留用于未來的協議改進(ID設為0x3F)。 主任務對報頭的傳輸基于集群的時間表。時間表規定了傳送幀的順序,以及當前和下一個幀之間的間隔。由于時間表的數量從理論上講沒有限制,所以可以定義幾個不同的時間表來滿足集群運行的不同需求。時間表概念是一個機制,有助于確保網絡不會過載,并確保有保證的數據傳輸。 網絡管理 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優化UART模塊的MCU是減少驅動器軟件部分而增加功能/特性的下一個步驟。飛思卡爾68HC908EY 或 68HC908GR設備中采用的增強型SCI模塊提供波特率調節和仲裁模塊選項,無需額外的定時器就能測量輸入信號(對LIN同步消息有用)。另一方面,這種方法可能會增加最終設計的成本。 最后一點,也是很重要的一點,理想的解決方案應使用LIN專用的UART模塊。飛思卡爾MCU(如68HC908QL設備)的SLIC(LIN 從接口控制器)模塊就是一個范例。與標準的UART解決方案相比,這種解決方案的成本和復雜性更高,并且要求實施SLIC優化的驅動器。另一方面,SLIC提供如下功能:自動同步、自動波特率調整、與上述任何解決方案相比中斷數大大減少、自動校驗和的生成與驗證。因此,它允許將MCU專用于用戶應用。 此外,還有一種非常有趣的解決方案是將所有與LIN有關的計算轉移到支持LIN的協處理器模塊上。飛思卡爾的MC9S12X系列采用了這種方案。這些產品配備有完全獨立于核心的X-gate RISC協處理器,可將整個LIN通訊負載從CPU核心中釋放,從而保證CPU在所有時間內都可用于用戶應用。 LIN2.0應用實例 如前所述,LIN通訊協議設計用于汽車傳感器和執行器應用。但是,其使用并不限于這些領域。此處介紹的支持LIN的無刷直流電機(BLDC)發動機風扇控制應用就是LIN應用于其它領域的一個實例。 無刷直流電機(BLDC)在汽車應用中越來越常見,主要用在空調控制和發動機冷卻風扇中。與有刷直流電機相比,無刷直流電機(BLDC)使用電子交換,而不是機械交換器,因此能提高整個系統的可靠性和效率。并且,由于無刷直流電機(BLDC)轉子可產生轉子磁通量,能夠實現更高的機電轉換效率。 支持LIN的無刷直流電機(BLDC)發動機風扇控制應用在閉環、支持PWM的無刷直流電機(BLDC)應用中采用LIN2.0通訊協議。無刷直流電機(BLDC)由霍爾傳感器驅動,用于轉子位置檢測,并且,應用中還嵌入了電流和過壓檢測功能。此應用的主要部分見圖8: ![]() 圖8:支持LIN的無刷直流電機(BLDC)發動機風扇控制 如圖所示,支持LIN的無刷直流電機(BLDC)發動機風扇控制硬件設計非常簡單,包含四個部分: 發動機風扇控制LIN 主節點 - 為LIN集群提供所需的風扇速度信息,以及運行/停止命令和錯誤跟蹤。 MC68HC908QB8 LIN 開發包 - 是一個LIN從節點,處理的無刷直流電機(BLDC)控制功能,并為集群提供實際風扇轉速信息和風扇運行/錯誤狀態信息。評估板的LIN開發包系列 (EVB)是開發者輕松開發他們各自基于LIN的項目而無需關注硬件開發的一種方法。目前,這些評估板可用于飛思卡爾半導體的各種8/16位MCU:從非常小型、便宜的MC68HC908QY4 MCU到功能強大的MC68HC908S12C32。在本應用中,我們選擇了MC68HC908QB8,它是低成本、小型的8位MCU系列的一員。 MC33395 EVB - 用于功率設計。飛思卡爾半導體的評估板概念不只限于這種基于MCU的板,還包括基于飛思卡爾SMARTMOS系列的評估板。MC33395 EVB非常適合各種12V的電機控制應用,包括零交叉和背EMF (zero crossing and back EMF)無刷直流電機(BLDC)轉子位置檢測方法,使用戶可以輕松使用先進的電機控制程序。 無刷直流電機(BLDC)風扇-- 這種應用使用EBM-Papst W3G300-EQ22-90軸向風扇。 以下是發動機風扇系統的功能。主節點發送有關要求的無刷直流電機(BLDC)負載循環、開/關命令和復位信號(用來清除從節點上的電流過高和過壓信號)的信息。所需的速度可以直接在主板上設置,也可以通過高級CAN總線發送給主節點。從節點為主節點提供實際無刷直流電機(BLDC)速度、電流過大和電壓過高標志。 將LIN2.0鏈接增加到獨立發動機風扇中的第一步是創建集群消息策略。它完整描述了集群中不同設備之間的通訊。它包括所有幀的一個列表,帶有定義的幀ID、幀發行者和用戶以及數據字段內容(包括信號結構)。為集群創建一份日程表也非常重要。這些都應該包含在LIN描述文件(*.ldf)中,它的結構由LIN規范包(LIN配置語言說明)規定。 對于項目的軟件部分,Volcano(訪問www.volcanoautomotive.com了解更多信息)LIN 目標包(LTP)用作LIN 2.0驅動器。這種工具可以從集群LDF文件中生成LIN特定的C代碼文件。然后,這些文件被直接添加到用戶編譯器/鏈接器中,以在項目中增加LIN鏈接程序。因此,應用開發人員只需編寫用戶的特定程序而無需花時間來開發與LIN通訊有關的程序。欲了解這方面的更多信息,請參見飛思卡爾半導體應用指南AN2767, 使用Volcano LTP的飛思卡爾8/16位MCU上的LIN 2.0鏈接。它是一篇簡單、易讀的文章,描述和介紹了LIN2.0的實施主題。 支持LIN的無刷直流電機(BLDC)發動機風扇控制在飛思卡爾半導體AN2983應用指南中進行了詳細描述。該應用指南包括完整的軟件代碼,可從飛思卡爾網站上免費下載。圖9顯示了該應用的真實圖片。 ![]() 圖10:支持LIN的無刷直流電機(BLDC)發動機風扇控制的實際安裝 飛思卡爾半導體提供廣泛的LIN產品系列,包括8/16/32位主MCU和8/16位從節點MCU。而且,模擬產品部(Analogue Product Group)也提供多種產品,包括LIN物理層接口、LIN/CAN SBC(系統基礎芯片)和IDC(智能分布式控制)。IDC產品是高度集成的單一封裝芯片,包含一個8位MCU、LIN物理層接口、電壓調節器和各種功率驅動(SMARTMOS)組件,如半橋、高/低端開關、霍爾傳感器輸入等。此解決方案非常適合空間有限的應用,如后視鏡或車窗升降器。 |
評論