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