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



車載以太網(wǎng)基礎(chǔ)培訓(xùn)——車載以太網(wǎng)的鏈路層#車載以太網(wǎng)
AUTOSAR的相關(guān)資料推薦
如何對(duì)SOA進(jìn)行軟硬件部署
一種基于FPGA的以太網(wǎng)高速傳輸平臺(tái)
以太網(wǎng)的分類及靜態(tài)以太網(wǎng)交換和動(dòng)態(tài)以太網(wǎng)交換、介紹
以太網(wǎng)的傳播速率_以太網(wǎng)的傳輸介質(zhì)
快速平臺(tái)-帶DLR網(wǎng)絡(luò)接口的以太網(wǎng)/IP

Xilinx平臺(tái)以太網(wǎng)接口(一)TCP/IP基礎(chǔ)

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

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

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

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

評(píng)論