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