張大霖,馬濤
(東軟睿馳汽車技術(沈陽)有限公司,遼寧沈陽 110179)
隨著汽車智能網聯的發展,傳統的整車電子電氣架構和車內網絡通訊方式已經難以滿足越來越多樣化的功能需求。電子電氣架構方面,域控制器+區域控制器的集中式架構正逐漸取代分布式架構成為主流[1],車內功能逐漸集中融合到域控制器中[2]。車內通訊方面,不同于傳統基于信號的通訊架構[3],SOA(Service-Oriented Architecture)架構采用基于服務發布調用的方式,通過配置服務發布列表和調用列表來實現功能更新,不再需要更改整車通訊矩陣實現變更。作為整車電子電氣架構的核心部件[4]和SOA 架構載體,域控制器相較于傳統車載控制器在硬件上需要更為強大的處理芯片以提供更高的算力,同時在軟件開發上也更注重降低耦合度,提高軟件的復用度降低開發量。S32G274A 芯片是NXP 為適應整車電子電氣架構的變革在2021 年推出的高性能域控制器處理器,S32G274A 芯片可以提供高達15900DMIPS 的算力,相較于傳統車載處理器算力提升了十幾倍。為了在提升算力的同時滿足實時性和功能安全等級要求,S32G274A 采用異構架構(ARM A53 LINUX+ARM M7 RTOS)相較于傳統只支持一種架構的車載處理器具有更廣闊的應用空間,便于實現平臺化開發。
本文中的域控制器為整車的中央域控制器,作為整車的中央計算單元和網絡通訊網關,需要在為整車車身和動力功能提供高性能算力的同時滿足整車數據傳輸和轉發的要求。主要的外設接口是以太網接口和CAN 通訊接口。其中,與車載網聯終端,座艙域控制器,智駕域控制器分別有一路千兆網口(1000base-T1)和一路CANFD 進行數據傳輸。前后左右區域控制器作為中央域控制器的應用執行機構分別與中央域控制器通過一路百兆網口(100base-T1)和一路CANFD 傳輸數據。另外,針對一些傳感器和暫時無法整合到區域控制器中的獨立控制器(例如BMS 和電機控制器),預留了5 路CANFD 和2路LIN。總計需要三個千兆以太網接口,4 個百兆以太網接口和12 個CANFD 接口以及2 路LIN 接口。
S32G274A 有4 個MAC 接口,分別為PFE0,PFE1,PFE2 和GMAC。根據需求分析采用3 個獨立千兆PHY 和一個SWITCH 來擴展以太網接口,千兆PHY 選用博通的BCM89883,SWITCH 選用博通的BCM89551 將一個MAC 擴展為4 個百兆以太網(100base-T1) 和1 個RJ45 的百兆工業以太網接口,RJ45 以太網接口可用于調試。CAN 芯片選取TJA1043 共計設計12 路,兩路LIN 選取芯片為TJA1021。運行內存LPDDR4 規格2GB,EMMC 數據存儲規格8GB。為滿足國密數據加密的需求,采用了一個信大捷安的XDSM3276 的信息安全加密芯片。整個系統的電源芯片是NXP 與S32G 平臺匹配的VR5510,板上還放置一個RTC 芯片用以實現定時喚醒檢測功能,除此之外還預留了部分ADC 采樣和I/O 控制接口。系統中關鍵元器件與S32G274A 的連接方式在圖1 中做了標識。

圖1 系統框圖
圖2 給出了主要元器件在PCB 板上的布局,電源部分布置在PCB 板的右側,主要的通訊芯片布置在PCB 板的左側降低干擾,PCB 不含接插件的整板尺寸149mm*198mm。

圖2 PCB 布局
域控制器相較于傳統控制器在軟件架構上更加注重通用化和標準化,因此在軟件架構上采取分層架構。應用層功能在核間的分配需要綜合考慮功能安全等級,實時性和算力要求。A53 核的算力較高但是系統的功能安全等級和系統實時性等級較低,A53 核如果要求滿足功能安全需求需要采用QNX系統,主要原因是LINUX 操作系統是開源系統,操作系統內核過于龐大無法進行功能安全的失效率分析,考慮QNX 操作系統有高昂的授權費因此對于沒有功能安全要求的部分采用LINUX 系統以降低成本,LINUX 和QNX 系統通過HYPERVISOR 進行分割隔離,采用QNX 操作系統的兩個A53 核在運行自身分配的功能基礎上還要互為BACKUP 以保證其系統失效率。M7 核由于算力有限無法運行LINUX/QNX 系統,運行基于AUTOSAR CLASSIC平臺的RTOS 系統,RTOS 系統雖然在內核調度能力上弱于LINUX 和QNX,但是在實時性和功能安全等級上要遠遠優于LINUX 和QNX 系統。考慮到功能安全的等級嚴重影響系統的軟件復雜度和開發成本。根據功能失效的影響將3 個可用的M7 核分配為ASILB 和ASIL D 等級,具體的功能分配見圖3中的應用功能分配。

圖3 軟件系統架構
操作系統和驅動之上布置了AUTOSAR 基礎軟件和域控制器工作的必要軟件組件。AUTOSAR 基礎軟件根據處理器內核架構的不同分別采用AUTOSAR ADAPTIVE 平臺和AUTOSAR CLASSIC平臺,必要軟件組件包括電源管理,數據存儲和核間通訊等。與常見的車載控制器不同,由于S32G274A芯片是異構架構,A53 核和M7 核的通訊沒有辦法通過操作系統的統一調度實現,需要設計一個核間通訊模塊來保證整個控制器實現數據和功能的統一調度。S32G 有兩種異構架構的核間通訊通道,一種是基于共享內存配置中斷的通訊方式IPCF(NTERPLATFORM COMMUNICATION FRAMEWORK),一種是基于類似于以太網的SOCKET 通訊方式PFE(Packet Forwarding Engine),PFE 可以等效為是在芯片內部封裝了一個SWITCH。兩種通訊方式比較,IPCF 采用共享內存中斷的效率必然好于PFE,但是由于共享內存使用的是S32G 芯片的SRAM,SRAM總量只有8MB,其中大部分被M7 核的應用占用,通過測試在本文中M7 核應用功能正常工作的情況下SRAM 最大可分配3MB 用于IPCF 使用,因而IPCF的處理能力非常有限。PFE 的數據處理能力非常強,在每包數據大小64 字節的壓力測試環境下可以達到2Gbps 處理能力。核間通訊的路由表配置為實時性高且數據量不大的信號通過IPCF 傳輸方式,數據量較大的數據通過PFE。A53 核和M7 核兩種操作系統中數據在系統內部的傳遞形式不一致,因此在核間通訊時需要實行統一的數據組包解包協議,在M7 核和A53 核分別設置相應核間通訊模塊對數據進行序列化和反序列化。
對于應用層與下層通用基礎軟件和必要軟件組件的接口差異性設計了專用軟件中間件。這種架構通過專用中間件將通用組件與應用層隔離開,降低軟件耦合度便于實現平臺化開發,作為域控制器核心的SOA 中間件由于與功能耦合度較高因此布置在專用中間件層。
域控制器做為整車的中央網關節點,是整車SOA 的核心。本文中的SOA 服務設計流程如圖4。首先要列出需要實現服務化的業務列表,根據不同的功能設計相應服務,明確服務內容和角色,將設計好的服務簡化為變量,并根據變量的用途進行數據類型分類,然后根據整車網絡架構的部署選擇對應的SOA 協議棧進行數據部署(將數據類型和協議棧數據屬性對應)。上述過程完成后,需要將服務涉及的邏輯功能進行建模得到應用軟件模塊SWC,由于組合服務可能需要調用不止一個SWC 模塊,需要將多個SWC 模塊結合在一起,因此需要進行接口設計與映射,最后將服務應用與進程進行綁定,就實現了SOA 服務化設計。

圖4 SOA 組件設計流程
對上述的設計方法設計了驗證臺架,負載使用雨刮電機和前大燈,指令發布通過PC 和無線路由器下發給域控制器。SOA 協議棧采用車載領域主流的SOMEIP 協議,選取的SOMEIP 數據屬性是method,method 綁定的應用分別是method ID 000a雨刮高速檔運行1 分鐘,method ID 000b 大燈點亮5分鐘關閉5 分鐘,驗證流程如圖5。

圖5 驗證流程示意圖
根據圖5 的驗證構想搭建了驗證臺架,圖6 是驗證臺架實物和Wireshark 數據解析截圖。

圖6 臺架驗證結果
當前,車載控制器正面臨硬件平臺可拓展性低、開發周期長、成本難以控制等方面的難題。以S32G274A 高性能處理器為主處理器設計域控制器可以滿足跨域融合的算力和通訊性能要求。實現車身、動力、網關等功能的整合實現硬件平臺化開發。同時,軟件架構的分層模塊化和基于SOA 架構的車內通訊架構能大幅度提升平臺的可拓展性和可移植性,具有廣泛的應用前景。