林元新,謝有浩
(安徽獵豹汽車(chē)有限公司,安徽 滁州 239064)
CAN/LIN網(wǎng)絡(luò)通信技術(shù)在獵豹CS10應(yīng)用
林元新,謝有浩
(安徽獵豹汽車(chē)有限公司,安徽 滁州 239064)
簡(jiǎn)述汽車(chē)網(wǎng)絡(luò)CAN/LIN總線(xiàn)技術(shù)要點(diǎn),介紹應(yīng)用層協(xié)議、規(guī)范、開(kāi)發(fā)工具;分析具體車(chē)型CAN/LIN網(wǎng)絡(luò)通信技術(shù)的應(yīng)用,CAN/LIN具體報(bào)文解析。
CAN總線(xiàn);LIN總線(xiàn);應(yīng)用層協(xié)議;總線(xiàn)開(kāi)發(fā)工具;CAN、LIN報(bào)文;報(bào)文解析
目前,網(wǎng)絡(luò)通信在車(chē)輛上應(yīng)用逐漸普及,早期只有中高端轎車(chē)上才使用的CAN總線(xiàn)、LIN總線(xiàn)技術(shù),已經(jīng)成為乘用車(chē)的標(biāo)準(zhǔn)配置。自主車(chē)型的電氣系統(tǒng)設(shè)計(jì)和系統(tǒng)測(cè)試與合資公司的差距也越來(lái)越小,其設(shè)計(jì)開(kāi)發(fā)過(guò)程也逐漸與國(guó)際接軌。CAN、LIN、OSEK、UDS等網(wǎng)絡(luò)通信技術(shù)的應(yīng)用提升了汽車(chē)產(chǎn)品的配置靈活性和品牌競(jìng)爭(zhēng)力。同時(shí),相對(duì)早期“硬線(xiàn)”電氣系統(tǒng),其開(kāi)發(fā)和維護(hù)的復(fù)雜程度有較大提升,對(duì)電氣系統(tǒng)的設(shè)計(jì)、測(cè)試、驗(yàn)證提出了更高要求。
本文以獵豹CS10為參考車(chē)型,簡(jiǎn)要介紹網(wǎng)絡(luò)通信技術(shù)的CAN/LIN總線(xiàn)技術(shù)要點(diǎn)、應(yīng)用層協(xié)議、規(guī)范和汽車(chē)網(wǎng)絡(luò)應(yīng)用中涉及的設(shè)計(jì)、開(kāi)發(fā)、測(cè)試,并進(jìn)行報(bào)文實(shí)例分析。
1)CAN總線(xiàn) CAN全稱(chēng)為控制器局域網(wǎng)絡(luò)(Controller Area Network),是一種能有效支持分布式控制和實(shí)時(shí)控制的串行通信網(wǎng)絡(luò)。其協(xié)議也發(fā)展為重要的國(guó)際標(biāo)準(zhǔn)(ISO11898、ISO11519 )。
2)LIN總線(xiàn) LIN全稱(chēng)為本地互聯(lián)網(wǎng)絡(luò)(Local Interconnect Network),是一種低成本的串行通信網(wǎng)絡(luò),用于汽車(chē)電子系統(tǒng)的分布式控制。目標(biāo)是為現(xiàn)有汽車(chē)網(wǎng)絡(luò)(如CAN總線(xiàn))提供輔助功能。LIN聯(lián)盟逐步將LIN總線(xiàn)推廣到ISO國(guó)際標(biāo)準(zhǔn)(ISO 17987)。
3)OSEK規(guī)范 OSEK全稱(chēng)為汽車(chē)電子開(kāi)放式系統(tǒng)及其接口(Open Systems and their Interfaces for the Electronics in Motor Vehicles)。OSEK規(guī)范主要由4部分組成:通信規(guī)范(OSEK Communication,OSEK COM) ;網(wǎng)絡(luò)管理規(guī)范( OSEK Net Management,OSEK NM);操作系統(tǒng)規(guī)范(OSEK Operating System,OSEK OS)和OSEK實(shí)現(xiàn)語(yǔ)言(OSEK Implementation Language,OIL)。隨著該規(guī)范應(yīng)用的不斷深入,其結(jié)構(gòu)和功能不斷完善和優(yōu)化,版本也不斷升級(jí)和擴(kuò)展,并提交ISO審議。
4)UDS UDS全稱(chēng)為統(tǒng)一診斷服務(wù)(Unified diagnostic services),UDS與OBD最大的區(qū)別就在于“Unified”上,UDS是面向整車(chē)所有車(chē)載ECU,而OBD是面向排放相關(guān)ECU。UDS是一個(gè)應(yīng)用層協(xié)議(ISO 14229系列),它可以在CAN線(xiàn)上實(shí)現(xiàn),也可以在Ethernet上實(shí)現(xiàn)。基于UDS協(xié)議的診斷又被稱(chēng)為增強(qiáng)型診斷 (Enhanced diagnostic),UDS沒(méi)有統(tǒng)一實(shí)現(xiàn)標(biāo)準(zhǔn),不是法規(guī)要求的,其優(yōu)勢(shì)在于方便生產(chǎn)線(xiàn)檢測(cè)設(shè)備的開(kāi)發(fā),同時(shí)更大地方便了車(chē)聯(lián)網(wǎng)功能實(shí)現(xiàn)和售后維修保養(yǎng)。
5)CANoe相關(guān) 汽車(chē)總線(xiàn)開(kāi)發(fā)工具和嵌入式源代碼提供商Vector,為汽車(chē)總線(xiàn)網(wǎng)絡(luò)的設(shè)計(jì)、建模、仿真、分析、測(cè)試和ECU開(kāi)發(fā)、測(cè)試、標(biāo)定和診斷等領(lǐng)域提供一系列強(qiáng)有力的軟硬件工具和源代碼。具體包括用于CAN/LIN網(wǎng)絡(luò)系統(tǒng)和控制單元仿真和測(cè)試的工具CANoe;記錄、評(píng)價(jià)CAN總線(xiàn)信號(hào)電平的工具CANscope;CAN總線(xiàn)干擾生成工具CANstress;CAN總線(xiàn)數(shù)據(jù)記錄器CANlog;測(cè)試和標(biāo)定軟件工具CANape;總線(xiàn)分析工具CANalyzer。這些工具被OEM和供應(yīng)商的網(wǎng)絡(luò)設(shè)計(jì)工程師、開(kāi)發(fā)工程師和測(cè)試工程師所廣泛使用。
采用德國(guó)Vector公司的CANoe(CAN Open Environment)、CANscope等專(zhuān)業(yè)工具進(jìn)行設(shè)計(jì)和開(kāi)發(fā),開(kāi)發(fā)劃為3個(gè)階段:①功能建模和仿真;②系統(tǒng)部分的實(shí)現(xiàn);③整個(gè)系統(tǒng)的集成。用CANoe建立仿真模型,在仿真模型基礎(chǔ)上進(jìn)行ECU的功能評(píng)估。綜合使用這些專(zhuān)業(yè)工具對(duì)CAN網(wǎng)絡(luò)通信的正確性、可靠性、合理性進(jìn)行多角度全方位的評(píng)估;定位故障、解決CAN和LIN總線(xiàn)應(yīng)用的各種問(wèn)題,確保各項(xiàng)性能指標(biāo)符合設(shè)計(jì)要求。
CAN、LIN總線(xiàn)主要性能指標(biāo)包括:網(wǎng)絡(luò)負(fù)載率、吞吐量、平均信息時(shí)延、通信沖突率、網(wǎng)絡(luò)利用率、網(wǎng)絡(luò)效率、負(fù)載完成率、總線(xiàn)電阻、總線(xiàn)波形。CS10網(wǎng)絡(luò)拓?fù)淙鐖D1所示。
圖1 CAN、LIN網(wǎng)絡(luò)拓?fù)?/p>
2.1 網(wǎng)絡(luò)技術(shù)應(yīng)用
2.1.1 CAN總線(xiàn)
CAN總線(xiàn)采用11位標(biāo)準(zhǔn)ID,通信速率為500 kb/s,動(dòng)力系統(tǒng)和車(chē)身控制系統(tǒng)共用總線(xiàn),沒(méi)有采用網(wǎng)關(guān)。支持應(yīng)用層協(xié)議和規(guī)范有:①OSEK網(wǎng)絡(luò)管理規(guī)范的直接網(wǎng)絡(luò)管理;②UDS用于車(chē)輛投放市場(chǎng)后的診斷,可通過(guò)UDS讀取診斷信息、進(jìn)行系統(tǒng)升級(jí);③CCP用于開(kāi)發(fā)階段的控制參數(shù)標(biāo)定。
圖2為CAN總線(xiàn)標(biāo)準(zhǔn)幀報(bào)文,實(shí)際上還有以下5種報(bào)文,用于滿(mǎn)足特定的信息傳輸需求,如:①數(shù)據(jù)幀:發(fā)送節(jié)點(diǎn)向接收節(jié)點(diǎn)傳送數(shù)據(jù)的幀;②遠(yuǎn)程幀:請(qǐng)求發(fā)送具有同一識(shí)別符的數(shù)據(jù)幀;③錯(cuò)誤幀:節(jié)點(diǎn)檢測(cè)到總線(xiàn)錯(cuò)誤就發(fā)出錯(cuò)誤幀;④過(guò)載幀:在先行和后續(xù)的數(shù)據(jù)幀(或遠(yuǎn)程幀)之間提供一附加的延時(shí);⑤幀間隔:將數(shù)據(jù)幀及遠(yuǎn)程幀與前面的幀分離開(kāi)來(lái)的幀。
圖2 CAN標(biāo)準(zhǔn)幀報(bào)文圖解
2.1.2 LIN總線(xiàn)
LIN總線(xiàn)通信采用LIN 2.1協(xié)議,通信速率為:19 200 b/s,一共3條總線(xiàn):BCM、RLS、SunRoof一路;PEPS、ESCL一路;PEPS與IMMO基站一路。
CAN、LIN網(wǎng)絡(luò)拓?fù)淙鐖D1所示。其中BCM、RLS、SunRoof三節(jié)點(diǎn)組成LIN網(wǎng)絡(luò):所有報(bào)文的頭部由BCM發(fā)出,BCM任務(wù)是主任務(wù),也就是總線(xiàn)行為由BCM調(diào)度,不同ID的響應(yīng)部分由對(duì)應(yīng)節(jié)點(diǎn)的從任務(wù)發(fā)出。LIN總線(xiàn)通信過(guò)程如圖3所示。
圖3 LIN總線(xiàn)報(bào)頭和響應(yīng)圖解
BCM、RLS、SunRoof的LIN總線(xiàn)標(biāo)準(zhǔn)幀報(bào)文格式如圖4所示??偩€(xiàn)包含以下6種報(bào)文滿(mǎn)足特定的信息傳輸需要:①無(wú)條件幀(Unconditional frame):主任務(wù)發(fā)出報(bào)頭,一個(gè)任務(wù)響應(yīng),一個(gè)或多個(gè)任務(wù)接收;②事件觸發(fā)幀(Event triggered frame):增強(qiáng)LIN總線(xiàn)的響應(yīng)能力,避免為了很少發(fā)生的事件而對(duì)節(jié)點(diǎn)進(jìn)行輪詢(xún),從而浪費(fèi)了大量的帶寬;③零星幀(Sporadic frame):共用一個(gè)時(shí)間隙,在需要時(shí)由主任務(wù)發(fā)送報(bào)頭和響應(yīng);④診斷幀(Diagnostic frame):用來(lái)傳輸診斷或配置信息;⑤用戶(hù)自定義幀(User-defined frame):可以傳輸任何信息,由用戶(hù)自己定義;⑥保留幀(Reserved frame):標(biāo)識(shí)符為63(0x3f)的特定幀。
圖4 LIN總線(xiàn)報(bào)文圖解
BCM、RLS、SunRoof節(jié)點(diǎn)構(gòu)成的LIN總線(xiàn)報(bào)文見(jiàn)表1。
表1 LIN總線(xiàn)報(bào)文
其中保護(hù)的標(biāo)識(shí)符(Protect ID)由標(biāo)識(shí)符(ID)和奇偶校驗(yàn)符(Parity)組成,保護(hù)的標(biāo)識(shí)符與標(biāo)識(shí)符對(duì)應(yīng)關(guān)系見(jiàn)表2。
表2 保護(hù)的標(biāo)識(shí)符與標(biāo)識(shí)符對(duì)應(yīng)關(guān)系
2.1.3 自定義串行通信
自定義串行通信是基于標(biāo)準(zhǔn)12 V電平的單線(xiàn)異步通信,通信波特率為2 400 b/s。用于玻璃升降器主副窗開(kāi)關(guān)之間交互信息使用。自定義串行通信拓?fù)湟?jiàn)圖5。左前門(mén)開(kāi)關(guān)為主機(jī),右前門(mén)開(kāi)關(guān)、左后門(mén)開(kāi)關(guān)、右后門(mén)開(kāi)關(guān)均為從機(jī)。數(shù)據(jù)由主機(jī)發(fā)出,所有從機(jī)監(jiān)聽(tīng)總線(xiàn)狀態(tài)、接收數(shù)據(jù)。實(shí)現(xiàn)休眠和喚醒。
圖5 自定義串行通信拓?fù)鋱D
2.2 整車(chē)喚醒、休眠機(jī)制
當(dāng)點(diǎn)火開(kāi)關(guān)IG OFF時(shí),一項(xiàng)功能要求總線(xiàn)上的節(jié)點(diǎn)與另一個(gè)節(jié)點(diǎn)通信,此時(shí)該網(wǎng)段上的所有節(jié)點(diǎn)將被喚醒。如果跨網(wǎng)段,還需要喚醒所有網(wǎng)段上的相關(guān)節(jié)點(diǎn),但是不相關(guān)節(jié)點(diǎn)因此也進(jìn)入非低功耗狀態(tài),這會(huì)造成不必要的功耗。例如:為了保證車(chē)輛安全,點(diǎn)火鑰匙斷開(kāi)時(shí),還需要一段時(shí)間的總線(xiàn)通信,通常為幾分鐘到幾十分鐘。在這段時(shí)間內(nèi),因?yàn)槟承┕?jié)點(diǎn)的通信需求,網(wǎng)絡(luò)上不相關(guān)節(jié)點(diǎn)也進(jìn)入喚醒狀態(tài),增加電池電量消耗,從而影響汽車(chē)的下一次起動(dòng)對(duì)電量的需求。
獵豹CS10采用OSEK 網(wǎng)絡(luò)管理系統(tǒng)(OSEKNM)、硬線(xiàn)休眠喚醒和延時(shí)休眠喚醒結(jié)合方式,很好地解決了這個(gè)問(wèn)題。
2.2.1 硬線(xiàn)休眠
通過(guò)喚醒信號(hào)線(xiàn),BCM實(shí)現(xiàn)對(duì)ABS、IPC、SCLM、LFDM休眠喚醒控制,當(dāng)此信號(hào)線(xiàn)為高平時(shí)喚醒相應(yīng)的節(jié)點(diǎn)控制器。硬線(xiàn)休眠拓?fù)鋱D如圖6所示。
圖6 硬線(xiàn)休眠喚醒拓?fù)鋱D
2.2.2 延時(shí)休眠
EPB在點(diǎn)火鑰匙斷開(kāi)10 min后進(jìn)入休眠。休眠后不發(fā)報(bào)文,總線(xiàn)報(bào)文也不喚醒此節(jié)點(diǎn)。
2.2.3 OSEK網(wǎng)絡(luò)管理
CAN、LIN總線(xiàn)拓?fù)鋱D見(jiàn)圖1。參與OSEK網(wǎng)絡(luò)管理的節(jié)點(diǎn)有:BCM、 PEPS,通過(guò)CAN總線(xiàn)發(fā)送特定報(bào)文,交互信息,協(xié)調(diào)各節(jié)點(diǎn)實(shí)現(xiàn)狀態(tài)切換。
1)特定報(bào)文 ①Ring報(bào)文:邏輯環(huán)報(bào)文。在穩(wěn)定的邏輯環(huán)中,節(jié)點(diǎn)用于傳遞狀態(tài)信息的網(wǎng)絡(luò)管理報(bào)文。②Alive報(bào)文:網(wǎng)段中的節(jié)點(diǎn)完成初始化或被跳過(guò)后,發(fā)送此報(bào)文,用于表明新的節(jié)點(diǎn)加入到邏輯環(huán)中。③LimpHome報(bào)文:接收錯(cuò)誤計(jì)數(shù)器或發(fā)送錯(cuò)誤計(jì)數(shù)器超過(guò)閾值的節(jié)點(diǎn)周期性發(fā)送此報(bào)文。
2)CAN休眠報(bào)文解析 OSEK網(wǎng)絡(luò)管理報(bào)文ID的高字節(jié)為固定值0x04,低字節(jié)為發(fā)送方地址編碼(0x0a為BCM,0x12為PEPS),報(bào)文數(shù)據(jù)的高字節(jié)為目標(biāo)地址,低字節(jié)為表明報(bào)文類(lèi)型、節(jié)點(diǎn)狀態(tài)等信息。CAN總線(xiàn)休眠報(bào)文見(jiàn)表3。
表3 CAN總線(xiàn)休眠報(bào)文
2.2.4 LIN睡眠和喚醒
主節(jié)點(diǎn)發(fā)送ID為0x3C,第1字節(jié)為0x00的零星幀,使處于工作狀態(tài)的從節(jié)點(diǎn)進(jìn)入睡眠。
當(dāng)總線(xiàn)空閑4~10 s,所有從節(jié)點(diǎn)必須進(jìn)入睡眠。
LIN喚醒(Wake Up):處于睡眠狀態(tài)的LIN網(wǎng)絡(luò)中,任何一個(gè)節(jié)點(diǎn)都可以發(fā)送喚醒信號(hào),LIN2.1規(guī)定的喚醒信號(hào)為0xF0。LIN網(wǎng)絡(luò)管理狀態(tài)切換如圖7所示。
圖7 LIN網(wǎng)絡(luò)管理狀態(tài)切換圖解
圖8 UDS診斷服務(wù)請(qǐng)求和響應(yīng)圖解
2.3 UDS統(tǒng)一診斷服務(wù)
通過(guò)OBD口連接專(zhuān)用通信設(shè)備可以實(shí)現(xiàn):故障診斷、讀寫(xiě)VIN、防盜匹配、齒訊學(xué)習(xí)、標(biāo)定學(xué)習(xí)、程序更新、真空加注等功能。如圖8所示,一個(gè)診斷儀和一個(gè)ECU通信的方式是直接通信。由診斷儀發(fā)出診斷請(qǐng)求,該請(qǐng)求包含一個(gè)服務(wù)的I D,診斷服務(wù)標(biāo)識(shí)符縮寫(xiě)為SID。一旦ECU接收到之后,對(duì)該請(qǐng)求進(jìn)行處理,處理之后回SID+40作為一個(gè)肯定響應(yīng);如果沒(méi)有處理,則回一個(gè)7F。7F為否定響應(yīng)的標(biāo)識(shí)符,7F、請(qǐng)求服務(wù)標(biāo)識(shí)符SID和錯(cuò)誤代碼NRC構(gòu)成一個(gè)完整的否定響應(yīng)回復(fù)。
1)EMS故障碼報(bào)文解析(表4)
表4 EMS故障碼報(bào)文解析
2) 坡道起步輔助(HAS)傳感器標(biāo)定報(bào)文解析(表5)
表5 坡道起步輔助(HAS)傳感器標(biāo)定報(bào)文解析
通過(guò)CAN、LIN總線(xiàn)技術(shù)的應(yīng)用,獵豹CS10經(jīng)過(guò)驗(yàn)證,不斷完善并逐步成熟。軟硬件平臺(tái)化、完整的架構(gòu)、合理的開(kāi)發(fā)流程、科學(xué)的測(cè)試驗(yàn)證手段,通過(guò)技術(shù)沉淀,可以快速移植到相關(guān)車(chē)型的開(kāi)發(fā)。目前,以此平臺(tái)化設(shè)計(jì)的車(chē)型還包括獵豹Q6AT車(chē)型、獵豹CS9系列車(chē)型,這種平臺(tái)化模式不但縮短開(kāi)發(fā)周期,各項(xiàng)性能也得到了有效保障。
[1] CANoe7.2用戶(hù)手冊(cè)CANone_Manual_En[Z].
[2] LIN Specification Package Revision 2.1[Z].
[3] OSEK/VDX Opearating System Specification 2.2.3[Z].
[4] OSEK/VDX NM Concept & API 2.5.2[Z].
[5] ISO 11898-1:2003(E)[S].
[6] ISO 11898-2:2003(E)[S].
(編輯 楊 景)
Application of CAN/LIN Network Communication Technology in LIEBAO CS10
LIN Yuan-xin, XIE You-hao
(Anhui Leopaard Motor Co., Ltd., Chuzhou 239064, China)
This article briefly introduces technical points of CAN/LIN bus of the automotive network, application layer protocol, its specification and development tools. Specific models of CAN/LIN network communication technology application are analyzed, as well as CAN/LIN message parsing.
CAN bus;LIN bus;application layer protocol;bus development tools;CAN, LIN message;message parsing
U463.6
B
1003-8639(2017)07-0022-04
2017-02-01
林元新(1974-),男,汽車(chē)設(shè)計(jì)工程師,主要從事汽車(chē)電器設(shè)計(jì)和測(cè)試工作。