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



AUTOSAR的相關資料推薦
如何對SOA進行軟硬件部署
一種基于FPGA的以太網(wǎng)高速傳輸平臺
以太網(wǎng)的分類及靜態(tài)以太網(wǎng)交換和動態(tài)以太網(wǎng)交換、介紹
以太網(wǎng)的傳播速率_以太網(wǎng)的傳輸介質(zhì)
Xilinx平臺以太網(wǎng)接口(一)TCP/IP基礎

如何快速分辨以太網(wǎng)與千兆以太網(wǎng)

Vector智能以太網(wǎng)交換機固件MICROSAR Classic veSwitch榮獲大獎
車載以太網(wǎng)時間同步AUTOSAR層級關系

Classic Autosar下的以太網(wǎng)通信架構概覽

車載以太網(wǎng)靜態(tài)架構介紹

評論