【ZiDongHua 之方案應(yīng)用場收錄關(guān)鍵詞:迪捷軟件 汽車電子 集成充電控制 】
  
  ECU通訊:CAN總線仿真測(cè)試
  
  01
  
  ECU
  
  在軟件定義汽車的大背景下,幾乎每一個(gè)汽車功能都需要依靠ECU(Electronic Control Unit,電子控制單元)來實(shí)現(xiàn):有些功能靠ECU獨(dú)立實(shí)現(xiàn),有些功能則需要多個(gè)ECU聯(lián)合實(shí)現(xiàn)??傮w來說,ECU絕大多數(shù)情況下都需要與其他ECU進(jìn)行信息交互,比如充電功能就需要車載充電機(jī)OBC(On-Board Charger)聯(lián)合電池管理系統(tǒng)BMS(Battery Management System)、整車控制器VCU(Vehicle Control Unit)等聯(lián)合才能實(shí)現(xiàn)。
  
  常見的ECU通訊方式有CAN(Controller Area Network),LIN(Local Interconnect Network)和FlexRay,隨著汽車電子電器架構(gòu)朝著中央集成控制方向發(fā)展,以太網(wǎng)的應(yīng)用也越來越廣泛。
 
  
  ▲電子電氣架構(gòu)的演變趨勢(shì)
  
  來源:the software Car: Building ICT Architectures for Future Electric Vehicles
  
  02
  
  CAN總線
  
  當(dāng)前最為常見的ECU通訊方式為CAN總線,即控制器局域網(wǎng)總線。CAN是博世于上世紀(jì)八十年代為車載網(wǎng)絡(luò)所開發(fā)的。在此之前,汽車制造商一直使用點(diǎn)對(duì)點(diǎn)布線系統(tǒng)來提供車載電子設(shè)備之間的連接。然而,隨著車輛中使用的電子元件數(shù)量的增加,笨重且昂貴的線束占據(jù)了過多的空間。據(jù)統(tǒng)計(jì),中型轎車需要的線束插頭為300個(gè)以上,插針總數(shù)在1800-2200個(gè),線束總長超過2千米,裝配極為復(fù)雜,故障率也極高。
  
  為降低布線成本,CAN總線應(yīng)運(yùn)而生。CAN是一種用于聯(lián)網(wǎng)智能設(shè)備的高度一致的串行總線系統(tǒng),自1993年起就作為汽車聯(lián)網(wǎng)國際標(biāo)準(zhǔn)被廣泛引入汽車行業(yè)。只需要兩條線(CAN High和CAN Low),每個(gè)ECU便可以與其他ECU進(jìn)行通信。下圖為一種典型的CAN總線通信方式:
 
  
  ▲典型的CAN總線通信方式
  
  各個(gè)ECU通過CAN收發(fā)器連接到CAN總線上,同時(shí)將數(shù)據(jù)廣播出去,處于CAN總線上的每個(gè)ECU都可以接收到該廣播信息。如果該信息為收方ECU所需信息就會(huì)被接收,反之則會(huì)被忽略。
  
  CAN可工作于多種方式,網(wǎng)絡(luò)中的各節(jié)點(diǎn)都可根據(jù)總線訪問優(yōu)先權(quán)(取決于報(bào)文標(biāo)識(shí)符)采用無損結(jié)構(gòu)的逐位仲裁的方式競爭向總線發(fā)送數(shù)據(jù),且CAN 協(xié)議廢除了地址編碼,而是對(duì)通信數(shù)據(jù)進(jìn)行編碼,使不同的節(jié)點(diǎn)能夠同時(shí)接收到相同的數(shù)據(jù)。這些特點(diǎn)使得CAN總線構(gòu)成的網(wǎng)絡(luò)各節(jié)點(diǎn)之間的數(shù)據(jù)通信實(shí)時(shí)性強(qiáng),并且容易構(gòu)成冗余結(jié)構(gòu),有助于提高系統(tǒng)的可靠性和系統(tǒng)的靈活性。
  
  世界上幾乎所有的汽車廠商都采用了CAN總線來實(shí)現(xiàn)汽車內(nèi)部控制系統(tǒng)與各檢測(cè)和執(zhí)行機(jī)構(gòu)間的數(shù)據(jù)通信。CAN總線的應(yīng)用優(yōu)勢(shì)如下:
  
  1.提供了輕量級(jí)、低成本的網(wǎng)絡(luò)
  
  作為總線網(wǎng)絡(luò),每個(gè)ECU僅需要一個(gè)CAN接口就可以與處于網(wǎng)絡(luò)上的其他ECU進(jìn)行通信。
  
  2.廣播式通信
  
  每條消息都可以被各個(gè)ECU的CAN收發(fā)器接收,并由各ECU自行決定是否忽略該條消息。
  
  3.優(yōu)先級(jí)機(jī)制
  
  CAN總線是點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò),無主從設(shè)備之分。數(shù)據(jù)發(fā)送前會(huì)先檢查總線是否繁忙。傳輸?shù)腃AN幀不包含地址編碼,而是在整個(gè)網(wǎng)絡(luò)中唯一的仲裁ID,也是各ECU判斷是否接受該數(shù)據(jù)的依據(jù)。如果多個(gè)節(jié)點(diǎn)同時(shí)嘗試向CAN總線發(fā)送消息,則將依據(jù)CAN幀優(yōu)先級(jí)(幀ID)被授予訪問總線的權(quán)限,總線繁忙時(shí),優(yōu)先級(jí)低的CAN幀必須等待總線可用才能再次嘗試傳輸。優(yōu)先級(jí)機(jī)制保證了CAN節(jié)點(diǎn)之間的確定性通信。
  
  4.錯(cuò)誤檢測(cè)
  
  CAN使用了循環(huán)冗余碼(CRC,Cyclic Redundancy Check)進(jìn)行校驗(yàn),用于確保數(shù)據(jù)完整性,可以對(duì)每個(gè)幀進(jìn)行錯(cuò)誤檢查,錯(cuò)誤幀將被所有結(jié)點(diǎn)忽略。
  
  03
  
  軟件與仿真測(cè)試
  
  在過去的普遍認(rèn)知中,軟件貌似與汽車行業(yè)關(guān)系甚小,甚至許多車主也傾向于認(rèn)為汽車軟件只存在于汽車的信息娛樂系統(tǒng)中。實(shí)際上,一輛汽車所包含的軟件遠(yuǎn)比想象中多得多,上百個(gè)ECU中的每一個(gè)都需要運(yùn)行軟件。可以說,如今汽車上的每一個(gè)功能幾乎都有軟件參與控制。汽車軟件的增加也意味著問題產(chǎn)生的幾率上升。事實(shí)上,主機(jī)廠因軟件缺陷而召回的車輛的情況不在少數(shù):
  
  2016年,由于軟件缺陷而召回的車輛占總召回車輛的46%。
  
  2021年,美國梅賽德斯奔馳公司召回了41838輛SUV車型,原因?yàn)檐浖收蠈?dǎo)致的前輪扭力施加問題。
  
  2024年3月,現(xiàn)代起亞因集成充電控制模塊(ICCU,Integrated Charging Control Unit)軟件問題召回14.7萬輛汽車。
  
  多ECU聯(lián)合實(shí)現(xiàn)的汽車功能則更易受到影響。為了盡可能地避免軟件故障問題帶來的損失,應(yīng)使用仿真平臺(tái)搭建虛擬總線來進(jìn)行ECU軟件中總線功能的測(cè)試,還可應(yīng)用仿真平臺(tái)所提供的總線監(jiān)視功能來監(jiān)控軟件運(yùn)行過程中的總線通信數(shù)據(jù),方便開發(fā)人員進(jìn)行故障排查。
  
  天目全數(shù)字實(shí)時(shí)仿真軟件SkyEye,是一款國產(chǎn)自主可控的基于可視化建模的硬件行為級(jí)仿真平臺(tái),能夠用于汽車虛擬CAN總線的搭建。建立下圖所示的CAN總線應(yīng)用場景:
 
  
  ▲CAN總線應(yīng)用場景
  
  該場景需要仿真4個(gè)SVCU計(jì)算節(jié)點(diǎn),以2個(gè)VCU計(jì)算節(jié)點(diǎn)為例,通過SkyEye搭建的目標(biāo)系統(tǒng)拓?fù)浣Y(jié)構(gòu)如下圖所示:
  
  ▲基于SkyEye的CAN總線交互設(shè)計(jì)