劉 聰,陳 敏Liu Cong,Chen Min
面向服務的電子電氣架構研究與應用
劉 聰,陳 敏
Liu Cong,Chen Min
(上海禾騁科技有限公司,上海 201805)
汽車行業技術升級對電子電氣架構提出了更高兼容性、靈活性、迭代能力等要求,介紹了面向服務的電子電氣架構設計,提出面向服務架構的開發流程、關鍵步驟及設計原則,并結合項目開發實例進行分析。
面向服務;汽車電子電氣架構;軟件架構
汽車行業正在向更高算力、更高平臺化、更高靈活性方向發展,促進了電子電氣架構的重大變革。物理架構將向域集中及區域控制方向演進[1],軟件架構需要解決軟件復雜度提升、功能迭代頻繁的問題。SOA(Service Oriented Architecture,面向服務架構設計)解決了汽車電子電氣架構面臨的各種挑戰,在國內外各大整車企業得到逐步應用。
汽車電子電氣架構已從傳統的分布式演進到集中式,在功能部署上從基于功能切換到基于物理區域劃分;但傳統的架構開發方式以功能實現鏈路為核心、以信號為依托,在需要實現新增功能時,面臨著功能定義及功能開發效率低下、功能迭代開發周期長的問題,較難實現功能快速迭代,無法實現最優的用車體驗。
基于SOA的電子電氣架構以靈活性、可拓展性為傳統開發方式所面臨的問題提供了可行解決方案,其功能可分解為各個獨立的服務,服務之間通過服務接口交互,并通過服務的組合及部署實現功能應用。這種基于服務的架構設計可實現軟硬件解耦、功能靈活組合與快速實施,這些特性解決了汽車架構設計面臨的挑戰,使得SOA架構得到逐步應用。
廣義上講,SOA平臺系統由3大系統組成:開發者平臺、云后臺和車輛。授權認證的開發者登錄專屬的開發者平臺后,可以通過場景編輯等方式開發新的應用程序。開發者平臺通過云平臺與車輛建立連接,通過服務通道發送服務指令,通過OTA(Over The Air,遠程升級)通道向車輛推送個性化的應用程序,實現了功能的快速組合、應用的快速迭代。
結合項目實踐提出基于SOA架構的功能開發及服務設計方法。
對基于SOA的電子電氣架構設計從功能場景分析,得出服務清單,并對服務進行詳細設計、分層和映射,進而得到軟件模塊的定義;同時結合車輛已有的傳感器、執行器等硬件基礎,將硬件能力抽象為服務,通過服務組合得到應用功能[2]。關鍵步驟包括功能設計、服務設計、模塊設計、通信設計等[3]。
在功能設計階段,首先完成功能用例庫,輸入產品經理提供的功能需求清單,輸出針對特定功能的用例。當完成多個功能定義后,也就形成了基于整體功能的用例庫。功能用例庫的開發流程如圖1所示。

圖1 功能用例庫開發流程
針對功能用例進行詳細設計,輸入為功能用例庫和當前車輛的硬件配置,輸出為實現這些功能用例的服務,此階段中服務庫基于當前功能用例分析和硬件配置分析建立,整體流程如圖2所示。

圖2 功能詳細設計開發流程
在服務設計階段,基于功能設計階段生成的服務庫進行服務接口詳細設計,定義服務接口的類型和設計規則。
2.2.1 服務接口類型
服務接口分為數據類、指令類和事件類。數據類型接口可以被get、set、notify調用,指令類接口可以直接被RR(Request/Response)、FF(Fire&Forget)調用,事件類接口可以被notify調用。各服務接口均遵循請求/響應或訂閱/發布的交互機制。
2.2.2 服務接口設計規則
1)RR控制類指令
RR控制類指令應用于需要執行一段時間才會有效執行反饋的控制類指令,其Response(響應)中需要攜帶控制狀態,此時RR的Response僅表示接收到Request,并做了必要的前提判斷,并非真正的執行結果。
對于可以對控制指令的Request做出及時反饋的控制類指令,其Response可直接攜帶是否執行成功的信息。
2)通知類指令
通知類指令必須涵蓋該控制類指令所涉及的所有狀態,例如控制任一車窗全部開度的RR控制指令,必須有獲取/通知車窗當前位置的狀態類指令與之對應。
所有通知類指令攜帶的狀態數據必須包含指示數據有效性的信息,有如下幾種情況:(1)狀態數據對應的CAN(Controller Area Network,控制器局域網)信號本身已有invalid枚舉項或信息,沿用并無需添加內容;(2)狀態數據對應的CAN信號為連續量,例如單電池電壓(0~4 095 mV),不在此范圍內的數值即為無效值,不再額外定義invalid指示信息。
2.2.3 服務分類
對服務進行分類及整合,將服務劃分為基礎服務、拓展服務、協調服務,其分層結構如圖3所示,具體分類原則為:(1)基礎服務層為實現過程無任何依賴的需求,多指傳感器、執行器;(2)拓展服務層依賴基礎層和域內同層,一般指算法包;(3)有跨域交互需求的服務均在協調服務層。

圖3 服務分層結構
模塊設計階段,依據服務定義創建相應的SWC(Software Component,軟件組件),定義對應SWC的接口信息及接口數據類型,描述SWC的靜態依賴關系及動態依賴關系,將最終得到的SWC進行打包部署,得出最終的輸出給到軟件開發團隊。
從服務到SWC映射的設計方法包括:(1)根據SWC之間的調用關系明確SWC之間的詳細設計,包括實現某個需求所需的SWC之間的時序圖、活動圖、狀態機;(2)明確SWC之間的信息傳遞,即服務接口;(3)在SWC部署階段,考慮各成熟ECU的功能實施方案,如底盤安全均在ESC(Electronic Stability Control System,電子穩定控制系統)中,同時結合整車最終的域控制器方案定義每個SWC的歸屬。
通信設計階段,完成數據類型定義、通信行為定義、SD(Service Discovery,服務發現)全局定義、SD ECU定義等。此階段屬于網絡設計,數據命名、數據類型定義等參照AUTOSAR(Automotive Open System Architecture,汽車開放系統架構)標準,不再進行詳細說明。
在某項目開發中,采用以太骨干網通信方式,并引入SOA架構設計理念,通過開發實例對SOA架構開發流程進行說明。
在車身域和娛樂域中,選出功能用例和對應的服務,具體見表1。功能列為功能清單輸入,包含迎賓功能、燈光功能、智能空調和賬戶管理4個功能;用例列由各功能定義;服務列為實現該特定用例所需要的服務。表1中功能用例和服務定義為部分示例。

表1 功能用例和服務定義示例

續表1
在已有功能和服務基礎上,添加一個新的智能迎賓場景,該場景定義為用戶攜帶智能鑰匙靠近車輛后,車輛自動解鎖,外燈能夠自動開關遠光燈一次(迎賓效果),同時用戶打開門進入車內,空調可以自動打開并調整到該用戶定制的溫度、風速和風向。原有的迎賓功能不具備此功能,如果采用傳統的電子電氣架構開發方法,需要重新定義功能用例和功能實現方案、功能分配方案,會影響開發效率。
基于SOA的架構系統,可以根據現有功能用例庫、服務庫進行快速的功能定義和功能開發,節省開發效率。在現有的功能用例庫中,可以快速拆解出智能迎賓是由功能用例庫中的UC-001、UC-003、UC-004、UC-005和UC-006組成;再根據各用例和服務的關聯關系,得出實現該功能場景所必須的服務包括S0001、S0002、S0003、S0006、S0007、S0008、S0009、S0010、S0011、S0012、S0013和S0014。以上可實現復用原有設計,達到快速完成功能定義和功能開發的目的,如圖4所示。

圖4 智能迎賓功能設計
在總結傳統電子電氣架構開發所面臨的問題和挑戰的基礎上,提出SOA架構開發流程,說明開發流程的具體要求及設計原則,結合項目實例進行展示。未來,基于SOA的設計能力會是整車廠重點發展的能力,其設計理念會得到更廣泛的應用。
[1]劉佳熙,丁鋒.面向未來汽車電子電氣架構的域控制器平臺[J].中國集成電路, 2019, 28(9):6.
[2]VETTER A,OBERGFELL P,GUISSOUMA H,et al,Development Processes in Automotive Service-oriented Architectures[C]//2020 9th Mediterranean Conference on Embedded Computing(MECO),2020.
[3]華一丁,龔進峰,戎輝,等.基于模型的智能汽車電子電氣架構發展綜述[J].汽車零部件,2019(2):4.
2021-07-14
1002-4581(2021)06-0034-04
U463.6.02
A
10.14175/j.issn.1002-4581.2021.06.010