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