湯自寧,張玉穩(wěn),白穩(wěn)峰,呂冬慧
(1.中國汽車技術研究中心,天津 300300;2.天津中德應用技術大學,天津 300350)
汽車中電子產品的成本比重逐漸提高,從20世紀70年代的4%增加到現在的30%左右,預計到2030年這一比重將上升為50%。日益增加的電子零部件對網關系統(tǒng)的實時性、可拓展性和不同通信協議間轉換的能力提出了更高的要求。
汽車網絡拓撲的結構決定了使用集成網關還是獨立網關。集成網關集成度較高,綜合成本較低,但通信數據量較小,且一旦出現問題,必須同時更換集成網關及其載體,增加了系統(tǒng)的維護成本。獨立網關因具有通信數據量大、信息安全性高、整車UDS診斷和BT下載方便、產品開發(fā)和布置方式靈活的特點,而成為整車電子化的發(fā)展趨勢。
基于整車信息化多種網絡和多網段數據信息交流的需求,本文以XC2268N為核心處理器,TLE9262為系統(tǒng)基礎芯片,并基于USIC(ASC)技術開發(fā)以XC2268N為主控制器的車載獨立網關,以實現整車基于網關數據和信號交換的功能,達到路由信息在不同通信協議間進行轉換的目的。經過對某車輛獨立網關系統(tǒng)進行臺架試驗與實車驗證,證明該系統(tǒng)具有實時性好、可靠性高、成本低的優(yōu)點。
獨立網關系統(tǒng)由電源管理模塊、通用I/O輸入采集模塊、CAN總線收發(fā)模塊、LIN總線收發(fā)模塊和XC2268N外圍電路構成。其系統(tǒng)結構如圖1所示。
該獨立網關主要技術要求:額定電壓12 V;工作電壓9~16 V;工作溫度-30~80℃;暗電流≤0.5 mA;CAN/LIN通信速率可配置。
該獨立網關主要實現的功能:①CAN/CAN路由功能,包含報文及信號路由;②CAN/LIN路由功能,實現通信協議轉換;③網絡管理功能OSEK;④UDS診斷功能;⑤BT刷寫功能;⑥報文映射:診斷CAN能夠查看任何一路CAN報文;⑦電源管理功能;⑧EOL下線檢測功能。
圖1 獨立網關系統(tǒng)構成
基于XC2268N的獨立網關系統(tǒng)電源模塊采用TLE9262集成芯片進行設計。TLE9262是一款單片式集成電路,采用PG-VQFN-48-31電源封裝。該芯片面向各種CAN-LIN車身應用,可以充當微控制器的電源和CAN總線與LIN總線網絡的接口[1]。TLE9262系統(tǒng)基礎芯片 (SBC)除為微控制器提供5 V低壓差穩(wěn)壓器LDO電源外,還帶有用于數據傳輸的CAN、LIN收發(fā)器、4路高邊輸出、16 Bit SPI同步串行通信接口[2]、自帶硬件看門狗輸出和失效檢測輸出。該芯片有多種模式可以選擇,且在休眠模式下可以將CAN/LIN收發(fā)器設置為具有遠程喚醒監(jiān)控功能。其資源能夠很好滿足低功耗、拓展性以及安全性的要求。TLE9262電源模塊原理圖如圖2所示。
單片機最小系統(tǒng)直接影響著控制器運行的穩(wěn)定性,對獨立網關控制器的設計至關重要。本文根據XC2000系列芯片的特點,以系統(tǒng)可靠性和穩(wěn)定性為出發(fā)點設計了獨立網關控制器最小系統(tǒng)電路,如圖3所示。
本文中選擇使用XC2268N作為獨立網關控制器的微處理器芯片。XC2268N是具有5級流水線和MPU的高性能CPU[3],在80 MHz的主頻下,單周期執(zhí)行指令僅僅12.5 ns的時間;帶有可編程多項式的硬件CRC檢查器可以對片上存儲區(qū)域進行監(jiān)控;高達16 Kbytes片上DSRAM和320 Kbytes的Flash存儲區(qū)域。此外,片上集成6個符合CAN2.0B標準的CAN控制器和6個全部可以用于異步串行通信 (ASC)的串行接口[4]。其外設通信接口資源較多,處理性能較高,非常適應于獨立網關系統(tǒng)的開發(fā)。
基于XC2268N的獨立網關控制器具有4個LIN通道,通信速率高達20 kb/s,每個LIN通道既可作為主節(jié)點也可作為從節(jié)點,方便網絡配置。收發(fā)器選型采用TLE7257SJ,方案采用標準LIN總線模塊進行設計。為兼容多款處理器,該收發(fā)器RXD引腳默認漏極開路輸出,本設計使用4.7 K上拉電阻R111連接到單片機VDD_5 V供電電源。電容負載C67用來改善EME和EMI特性。為實現自動故障防護功能,將主機端電阻R113和反向二極管VD3串聯到INH引腳。ESD防護選用TVS管MMBZ27VCLT1G。LIN通信電路如圖4所示。
CAN收發(fā)器在CAN控制器和物理傳輸線之間起著邏輯電平與差分電壓信號轉換的作用。本文采用TJA1042 CAN收發(fā)器,方案采用標準CAN總線模塊進行設計。
CAN通信電路中預留有共模電感,可根據EMC試驗情況選擇共模電感是否焊接。ESD防護選用TVS管MMBZ27VCLT1G。為穩(wěn)定總線電壓,降低總線EME,將SPILT引腳連接到拆分式網絡終端 (R27、R30),并通過C12電容將直流電泄放到GND。C11與C20電容值為22 pF,用于濾除總線上的高頻干擾,并且具有一定的抗電磁輻射能力。CAN通信電路如圖5所示。
圖2 系統(tǒng)基礎芯片 (SBC)TLE9262電源模塊
圖3 獨立網關外圍電路設計
圖4 獨立LIN收發(fā)器通信電路
圖5 CAN通信電路
網關軟件架構總體上分為3層:應用邏輯層 (APP)、接口層 (RTE)和基礎軟件層 (BSW)。軟件總體架構設計如圖6所示。APP層是應用功能邏輯實現層,分模塊并獨立于硬件平臺運行。RTE層是連接BSW層和APP層的接口層,其優(yōu)點是在接口定義明確的條件下,底層基礎軟件和上層應用功能邏輯軟件可以獨立開發(fā)。BSW層與硬件關系緊密,該層細分為Function Service、Communication Service、ECU Driver、MCU Driver 4個層次。
SBC上電初始化流程如圖7所示。
圖6 軟件總體架構設計
圖7 SBC上電初始化流程
網關系統(tǒng)技術要求在休眠時網關只能工作在低功耗模式 (Standby)。一般情況下,微控制器在Standby模式只能在RAM中運行一些簡單的指令,如周期查詢任務 (判斷是否有本地IG喚醒請求)和外部中斷觸發(fā)任務 (判斷是否有外部中斷ESR觸發(fā))。因此,在網關進入Standby模式前,必須先設置看門狗處于STOP模式,否則SBC RO PIN腳的復位信號輸出時會導致微控制器直接復位。
網關系統(tǒng)上電后,SBC進入INIT模式 (默認):VCC1低壓差穩(wěn)壓電源處于開啟狀態(tài),向微控制器提供5 V電源;VCC2和VCC3外部電源供電處于關閉狀態(tài);看門狗處在Long open window模式,溢出時間默認為200 ms。微控制器需要在200ms超時周期內完成SBC的初始化工作,否則SBC看門狗溢出后將導致整個系統(tǒng)復位??刂破魃想娨院?,微處理器通過SPI接口發(fā)送指令使SBC進入Normal模式,使能SBC內部自帶的CAN/LIN收發(fā)器,設置看門狗為Long open window模式,溢出時間為100 ms,至此完成SBC的全部初始化工作。
SBC看門狗只有在Normal模式下才可以被禁用。出于安全考慮,禁用看門狗時要嚴格遵循如圖8所示的工作流程。在Normal模式下,首先設置WD_STM_EN_1為1,然后觸發(fā)1次看門狗,再設置SetBit WD_STM_EN0為1;緊接著進入Stop模式。如果在進入Stop模式時被喂狗中斷,或者被WD Trigger_1觸發(fā),錯過設置Bit WD_STM_EN0,都會返回失敗的結果。
圖8 SBC看門狗禁用流程
基于XC2268N的獨立網關CAN通信軟件設計主要包括CAN/CAN路由功能與報文映射功能。
XC2268N包含6個CAN節(jié)點,256個Message Object。通過配置軟件Dave可以將每個MO分配到任意CAN節(jié)點。CAN Message Object分配如圖9所示。通過MO對報文的屬性(ID、標準幀、擴展幀、報文長度、是否允許接收中斷或者發(fā)送中斷等)進行配置。通過設置MO掩碼,對總線上不相關的報文進行初步過濾,以降低MCU負荷。此外,XC2268N自帶的網關模式允許2個獨立的CAN總線系統(tǒng)之間建立自動信息傳遞,無需微處理器介入[5]。
圖9 CAN Message Object分配
CAN/CAN路由功能:該網關在處理CAN/CAN報文路由和信號路由時采用接收中斷的方法。對于優(yōu)先級比較高的ID,因實時性要求較高,軟件為每個ID分配2個或者多個MO,并將其中1個MO設置為接收,其余MO設置為發(fā)送。對于優(yōu)先級不高的ID,按照一定規(guī)則進行分類,并通過設置MO掩碼使其能夠共用1個MO接收對象。實踐證明:在總線負載率較高的情況下,此方法比硬件路由 (自帶網關功能)方式的實時性更高,靈活度更強。
報文映射功能:即在診斷CAN通道上可以監(jiān)控任意CAN通道的報文,通過診斷服務可以開啟或者關閉映射功能。綜合診斷CAN負載率的特點,報文映射功能采用發(fā)送FIFO的方法,即在目標CAN網絡中,將多個發(fā)送對象級聯成1個公共發(fā)送緩存 (FIFO)。此方法既能滿足報文映射功能又可以提高MO利用率。
LIN數據幀結構由間隔場、同步場、標識符場、數據場和校驗場組成[6]。LIN[7]總線的通信原理為:主任務發(fā)送報文頭,主任務或者從任務用響應來補充報文頭從而形成完整的報文。LIN調度表負責調度網絡報文發(fā)送順序,調度表在網絡系統(tǒng)設計階段確定,LIN通信嚴格按照調度表執(zhí)行。LIN通信幀格式如圖10所示。
圖10 LIN通信幀格式
本文根據LIN數據幀結構的特點,并基于USIC(ASC)編寫了LIN總線數據收發(fā)驅動程序。該程序可實現數據接收、發(fā)送、數據超時處理、數據校驗和位流錯誤檢測等功能。其工作流程如圖11所示。
為滿足功能安全的需求,應用程序在SBC的監(jiān)控下運行時,任何原因導致應用程序不能及時觸發(fā)看門狗都會引起SBC看門狗復位。Normal模式下應用軟件周期性觸發(fā)看門狗SPI的通信波形如圖12所示。
借助CANstress、CANoe和示波器等工具對總線物理層進行測試,測試結果表明該設計能夠滿足技術規(guī)范的要求。CAN總線物理層測試報告和LIN總線物理層測試報告分別如圖13和圖14所示。
通過CANoe Interractive Generator模擬干擾報文對目標網絡報文在源網絡總線負載率嚴重超標情況下的周期波動情況進行測試。測試結果表明,目標網絡報文的當前周期曲線與源網絡報文發(fā)送周期曲線波動完全吻合;經Trace統(tǒng)計,源網絡實際發(fā)送報文條數與目標網絡實際接收條數相等,且報文無亂序。網絡負載率較高情況下總線丟幀測試結果如圖15所示。
圖11 LIN發(fā)送數據工作流程
圖12 周期性觸發(fā)看門狗SPI通信波形
圖13 CAN總線物理層測試報告
圖14 LIN總線物理層測試報告
圖15 網絡負載率較高情況下總線丟幀測試
臺架和實車試驗驗證了車載獨立網關的UDS診斷、網絡管理[8]、報文路由、信號路由、BT刷寫和休眠喚醒等功能。并利用vFlash對Bootloader刷寫功能進行了極限測試,未出現報文亂序、報文超時和亂碼等問題。測試結果表明,該系統(tǒng)滿足技術協議中規(guī)定的各項性能要求。臺架、實車測試驗證如圖16所示,實車測試報告如圖17所示。
本文基于XC2268N開發(fā)并設計了車載獨立網關[9]控制系統(tǒng),該網關實現了6路CAN之間的信號路由、CAN與LIN之間的信息路由,并兼有整車網絡管理、UDS診斷、BT下載、休眠喚醒等功能。通過對某車輛獨立網關系統(tǒng)的臺架試驗與實車驗證,證明了該系統(tǒng)具有實時性好、可靠性高、成本低和可維護性好的優(yōu)點,符合汽車電子化發(fā)展方向。
圖16 臺架測試與實車驗證
圖17 網關實車測試結果