前言:
SOA在IT行業已經存在很多年,隨著近幾年智能汽車的出現,用于對于自動駕駛、V2X、智能座艙等新功能的需求也逐漸強烈,汽車逐漸由一個機電耦合的系統轉變為一個智能終端,類似智能手機,可升級可進化。面對這樣的變革,汽車行業借鑒IT行業的經驗引入了SOA及以太網,同時新的技術引入也需要和新的組織架構及開發方法適配,正如康威定律所說的:“Organizations which design systems[……] are constrained to producedesigns which are copies of the communication structures of the organizations.”在目前各OEM的組織架構中基本會劃分為動力域、底盤域、車身域(電子電器)、智駕域等部門,因此我們的軟件架構也會依據組織架構劃分為不同的Domain,然而,引入SOA需要不同以往的跨域協調和通訊,部分職責需要跨域前期的部門和組織邊界,協作和合作稱為SOA開發成功的先決條件,同時也需要引入新的崗位和專家角色。 在開發流程方面,為了更好的滿足用戶需求的快速迭代,一個新功能(Feature)通常通過Use Case(用例)來構建用戶的需求,借助于UML(Unified Modelling Language)的建模工具創建Use CaseDiagram,然后進行邏輯功能架構設計、模塊架構設計、服務設計等工作定義出服務,再借助于PREEvision工具進行服務實現軟件架構的構建,以太網的設計,最終導出ARXML。
一、設計流程總述
本文以基于Classic AutoSAR 平臺進行SOA和以太網的設計為例,介紹整個開發流程。
(1)定義服務Service、服務角色(Service Provider/ServiceConsumer)、服務ID以及服務接口(Service Interface包含Methods,Properties、Events);
(2)將服務接口及其子元素(Method/Properties/Events)部署到SOME/IP作為以太網的協議棧;
(3)將服務進行軟件實現,即將服務角色(Service Provider/Service Consumer)轉換為對應的SoftwareType;
(4)將服務接口(Service Interface)中的子元素由對應的CP SWC接口實現,例如R&R Method轉換為C/S Interface,F&F Method轉換為S/R Interface,Field(Getter/Setter)轉換為C/S Interface,Event轉換為S/R Interface;
(5)軟件組件作為軟件類型的實例,其對應的Port端口被創建,同時將SWC Interface(C/Sor S/R)分配給對應的Port;
(7)將實現服務的軟件組件部署到網絡拓撲中的對應的ECU上;
(8)通過Switch Configuration將物理拓撲劃分為邏輯網絡VLAN;
(9)信號路由,根據VLAN找到給定網絡拓撲中的通信路徑,并從服務設計和服務部署衍生出通信描述;
(10)以太網通信定義,詳細的SocketConnection定義;
(11)數據序列化(Data Serialization),通過以太網傳輸的數據必須被序列化轉換為比特流;
(12)服務發現(Service Discovery)SOME/IP-SD通信框架定義;
(13)導出符合AutoSAR規范的ARXML文件,用于Matlab/Simulink軟件詳細設計及CANoe仿真。
二、服務定義Service Definition
(1)服務定義
定義整車的服務Service,并定義每個服務的服務提供者和服務消費者,以及Service ID和VLAN,同時定義服務的API-Service Interface.
(2)服務接口定義
服務的能力及特征由其服務接口定義,服務接口的定義決定了服務消費者如何使用服務,服務接口由如下子元素組成:
Properties(Field),描述一條數據,該數據可由服務消費者Client讀取或寫入,也可以生成一個NotifierEvent如果這個數據發生變化;
Event,當事件發生時,服務提供者Service通過Event向訂閱的Client發送數據;
Method,描述可用的Operation,可以從其他服務進行調用,方法產生并返回一些數據(R&R),或者在服務中啟動一些進程(F&F);
(3)SOME/IP網絡綁定
在上述服務接口定義的基礎上,通過CreateSOME/IP Interface Deployment自動將UML服務接口轉換為SOME/IP接口,同時可定義傳輸協議(UDP/TCP),Method/Event ID以及Event Group,同時根據前期定義的Service ID以及Method/Event ID自動生層Message ID。
(4)數據類型定義
創建Application Data Type 、ImplementationData Type 以及Base Data Type,并將BaseType和Implementation Type Mapping,同時將Application DataType和Implementation Data Type進行Mapping,最后將Application Data Type分配給服務接口的子元素。
服務實現Service Implementation
(1)服務實現
服務接口由Software Type來實現,通過Service to AutoSAR Classic Technology Mapping可自動創建Application SW Component Types以及C/S或S/R接口來實現服務和服務接口,每一個服務角色(Servcie Provider/ServiceConsumer)都生成對應的Application SW Component Type。
(2)服務接口實現
通過上述Servcie to AutoSAR Classic Technology Mapping操作后,不僅為每個服務角色創建對應的Application SW Component Type和C/S以及S/R接口,同時創建對應的Operations 和Data Elements,對于同一個服務接口,R&R-method/Getter-Field/Setter-Field子元素轉換為Operations被打包為一個Client/Server Interface,而對于Event/F&F-Method/Notifier-Field將會有單獨的SenderReceiver Interface 實現。
三、網絡拓撲設計Network Design
在硬件拓撲層創建網絡拓撲圖,添加ECU、HPC、Ethernet Switch并創建Bus System Types,在Network Topology Editor表格中選擇Bus System并點擊Set Ethernet bus and connectorTypes,可為Bus Connectors分配EthernetConnenctor Type,同時為Bus System分配EthernetType,在Network Topology Editor Table選擇網絡拓撲中創建的Bus System選擇Creating missing Cluster,基于Bus Type創建Ethernet Cluster,并自動將Bus System 移動到Ethernet Cluster。對于每一個Ethernet Cluster需要創建對應的Ethernet CommunicationCluster,在Network Topology Editor表格選擇CL(Ethernet Cluster)點擊Create missing EthernetCommunication Cluster,將在左側結構樹Communication Package創建Transport Layer Package以及Ethernet CommunicationCluster。
四、以太網通信設計(Ethernet Communication)
(1)ECU定義(ECUDefinition)
定義網絡拓撲中每一個ECU的ID,該ID用戶后期MAC地址的自動計算,以太網物理層類型選擇(例如100BASE T1),CNB主從時鐘選擇,MAC Address生成硬件MAC地址,VLAN 設置VLAN屬性,IPV4配置。
(2)以太網Cluster 配置(Ethernet Cluster Configuration)
定義ECU的Socket Addresses,指定傳輸協議TP,指定傳輸端口Port,NetworkEndpoint以及IPV4 Address。
五、服務部署/軟件映射(Service Deployment/SoftwareMapping)
在設計完Service以及ServiceInterface,并進行服務實現(Service Implementation)后,并設計完網絡拓撲后,在面向服務的系統設計中下一步工作就是進行服務的部署,在將服務角色部署到ECU后,可自動創建實例化的Composition Type,用來實現服務角色,并同步在ECU內部創建Process Unit。
六、軟件架構(Software Architecture)
選擇Service Interface,點擊Connect ports compatible interface(Select a composition,SW-Componentor SW-port to Start),創建Port,并將Interface分配給Port。
雙擊Root Compoistion Package 可自動創建Software Architecture Diagram,將ApplicationSW Component Type拖拽到圖中,并選擇所有Ports,右鍵選擇Show Path,則自動創建Provider和Consumer SW Component Port口之間的連線。
七.信號路由(Signal Routing)
在進行了Servcie Definition、Service Implementation、Network Architecture、Software Mapping,下一步的以太網通信設計工作就是信號路由,信號路由能夠從設置VLAN的網絡拓撲中尋找通訊路徑,并從中獲取通信描述,信號路由需要滿足的條件: ① 定義了Service 和Service Interface; ② 進行了服務實現,將ServiceProvider和ServiceConsumer轉換為對應Software Type,并將Service Interface轉換為C/S和S/R接口,并合成C/S接口的Operaton,以及S/R接口的Data Element; ③ 將硬件拓撲轉換為網絡拓撲; ④ 將服務角色部署到對應的ECU; ⑤ 更新Service Implementation,創建SWC Ports并為Ports分配對應的Interface。
在信號路由過程中,需要電定義幾個通信Artifacts來完成以太網通信設計: ①Signa和PDU以及Signal和PDU Transmissions被自動創建; ②如果沒有進行Switch Configuration,則初始VLAN結構的Switch Configuration被設置,
八、Socket Adaptor
Socket Adaptor提供了基于Socket的以太網通信和Classic AutoSAR面向PDU的通信之間的轉換,Socket Adaptor Connection Communication Viewer對于每一個VLAN提供了一個詳細的視圖,通過Take Over message ID ofService into IPDU header,可自動生成Socket Connection IPDUIdentifier的HeaderID。SocketAdaptor Bundle Communication Viewer提供了Server Sockets的詳細視圖。
九、數據序列化(Data Serialization)
在以太網傳輸的數據必須被序列化成比特流,然后在接收端通過反序列化重構數據,選擇Signal點擊Update data Serialization setting atthe I-Signal,可生成Data Transformer,信號要經過Ldcom,對于每一個Signal-IPDU需要創建如下屬性:Protocol:SOMEIP,Transformer Class:SERIALIZER,Version:1, Signal:設置信號長度,SignalIPDU:設置IPDU長度,Signal-IPDU-Assignment:設置Byte Order、Transfer Property,同時對每一個PDU增加Event controlled Timing.
十、服務發現(Service Discovery)
通過服務發現可以在服務提供者和服務消費者之間建立通信,服務提供者可以通過Offer Service宣布服務可用性及服務位置,服務消費者通過訂閱Event Groups來從服務提供者Get Notifications. 在PREEvisionSOA&Ethernet Explorer Service Discovery Category選擇VLAN,點擊Create Service Discovery,自動生成Socket Address/SocketConnection,通過Service Discovery Subscription創建服務訂閱,自動創建Socket Adaptor Routing Group,并將ProvierInstance和ConsumerInstance進行綁定,對于每一個Provide ServiceInstance、Consumer Service Instance,Event Handler、Consumed Event Group,需要進行如下參數設置。 Minor Version:次要版本; Major Version:主要版本; Instance Identifier:1,視通信矩陣而定; Service Identifier:10,視通信矩陣而定; Offer Cyclic Delay:2,表示Offer方在進入主階段后Offer報文的發送周期; Initial Delay Min Value:初始化階段延遲最小值; Initial Delay Max Value:初始化階段延遲最大值; Initial Repetitions Base Delay:重復階段報文發送基時; Initial Repetitions Max:重復階段報文發送最大次數; TTL:生存周期,單位為秒; Multicast Threshold:如果Server在響應訂閱時不需要用到多播,該值就設置為0; Event Group Identifier:事件組ID,視通信矩陣而定,當前為201。
最后可導出Software Component Descrption ARXML文件,導入MatlabSimulink進行進一步的算法開發。
總結:
上述過程是基于PREEvision提供的SOA&Ethernet Exploer集成開發環境進行的,其提供了如下表格所示的10個Category,包含從服務定義到以太網設計的全過程,同時上述過程主要適用于Classic AutoSAR 平臺SOA的開發,對于AP平臺,PREEvision提供另外一個集成開發環境Adaptive AutoSAR Explorer,同時在服務定義階段,目前Vector已經開發了接口可以導入由外部工具設計的服務矩陣。
Category | Table Editor |
Service Definition | Service Definition Editor |
Service Interface Editor | |
SOME/IP Interface Deployment Editor | |
Service Interface Data Typr Editor | |
Service Implementation | Service Implementation Editor |
Service Interface Implementation Editor | |
Network Design | Network Topology Editor |
Service Deployment/Software Mapping | Service ECU Deployment Editor |
Service Socket Deployment Editor | |
Software Architecture | Provider |
Consumer | |
Switch Configuration | VLAN Switch Configuration Editor |
Switch Load Editor | |
Multicast MAC Forawarding Editor | |
Ethernet Communication | ECU Definition |
Ethernet Cluster Configuration | |
VLAN-ECU Allocation | |
Socket Adaptor | Socket Adaptor Connection Communication Viewer |
Socket Adaptor Bundle Communication Viewer | |
Data Serialization | Data Transformation Viewer |
Service Discovery | Service Discovery |
Service Discovery Subscription | |
Service Discovery Editor |
審核編輯:湯梓紅
-
以太網
+關注
關注
40文章
5419瀏覽量
171598 -
AUTOSAR
+關注
關注
10文章
360瀏覽量
21553 -
SOA
+關注
關注
1文章
287瀏覽量
27463
原文標題:面向服務架構SOA和以太網通信設計方法
文章出處:【微信號:智能汽車電子與軟件,微信公眾號:智能汽車電子與軟件】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論