來源:汽車電子與軟件 SOA在IT行業(yè)已經(jīng)存在很多年,隨著近幾年智能汽車的出現(xiàn),,用于對于自動駕駛,、V2X、智能座艙等新功能的需求也逐漸強(qiáng)烈,,汽車逐漸由一個機(jī)電耦合的系統(tǒng)轉(zhuǎn)變?yōu)橐粋€智能終端,,類似智能手機(jī),可升級可進(jìn)化,。面對這樣的變革,,汽車行業(yè)借鑒IT行業(yè)的經(jīng)驗引入了SOA及以太網(wǎng),同時新的技術(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)中基本會劃分為動力域、底盤域,、車身域(電子電器),、智駕域等部門,因此我們的軟件架構(gòu)也會依據(jù)組織架構(gòu)劃分為不同的Domain,,然而,,引入SOA需要不同以往的跨域協(xié)調(diào)和通訊,部分職責(zé)需要跨域前期的部門和組織邊界,,協(xié)作和合作稱為SOA開發(fā)成功的先決條件,,同時也需要引入新的崗位和專家角色,。 在開發(fā)流程方面,為了更好的滿足用戶需求的快速迭代,,一個新功能(Feature)通常通過Use Case(用例)來構(gòu)建用戶的需求,,借助于UML(Unified Modelling Language)的建模工具創(chuàng)建Use CaseDiagram,然后進(jìn)行邏輯功能架構(gòu)設(shè)計,、模塊架構(gòu)設(shè)計,、服務(wù)設(shè)計等工作定義出服務(wù),再借助于PREEvision工具進(jìn)行服務(wù)實現(xiàn)軟件架構(gòu)的構(gòu)建,,以太網(wǎng)的設(shè)計,,最終導(dǎo)出ARXML。 本文以基于Classic AutoSAR 平臺進(jìn)行SOA和以太網(wǎng)的設(shè)計為例,,介紹整個開發(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)行軟件實現(xiàn),即將服務(wù)角色(Service Provider/Service Consumer)轉(zhuǎn)換為對應(yīng)的SoftwareType; (4) 將服務(wù)接口(Service Interface)中的子元素由對應(yīng)的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) 軟件組件作為軟件類型的實例,其對應(yīng)的Port端口被創(chuàng)建,,同時將SWC Interface(C/Sor S/R)分配給對應(yīng)的Port,; (6) 在硬件架構(gòu)層創(chuàng)建以太網(wǎng)網(wǎng)絡(luò)拓?fù)洌?/span> (7) 將實現(xiàn)服務(wù)的軟件組件部署到網(wǎng)絡(luò)拓?fù)渲械膶?yīng)的ECU上; (8) 通過Switch Configuration將物理拓?fù)鋭澐譃檫壿嬀W(wǎng)絡(luò)VLAN,; (9) 信號路由,,根據(jù)VLAN找到給定網(wǎng)絡(luò)拓?fù)渲械耐ㄐ怕窂剑姆?wù)設(shè)計和服務(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è)計及CANoe仿真,。 (1) 服務(wù)定義 定義整車的服務(wù)Service,,并定義每個服務(wù)的服務(wù)提供者和服務(wù)消費者,以及Service ID和VLAN,,同時定義服務(wù)的API-Service Interface. (2) 服務(wù)接口定義 服務(wù)的能力及特征由其服務(wù)接口定義,,服務(wù)接口的定義決定了服務(wù)消費者如何使用服務(wù),服務(wù)接口由如下子元素組成: Properties(Field),,描述一條數(shù)據(jù),,該數(shù)據(jù)可由服務(wù)消費者Client讀取或?qū)懭耄部梢陨梢粋€NotifierEvent如果這個數(shù)據(jù)發(fā)生變化,; Event,,當(dāng)事件發(fā)生時,服務(wù)提供者Service通過Event向訂閱的Client發(fā)送數(shù)據(jù),; Method,,描述可用的Operation,可以從其他服務(wù)進(jìn)行調(diào)用,,方法產(chǎn)生并返回一些數(shù)據(jù)(R&R),,或者在服務(wù)中啟動一些進(jìn)程(F&F); (3) SOME/IP網(wǎng)絡(luò)綁定 在上述服務(wù)接口定義的基礎(chǔ)上,,通過CreateSOME/IP Interface Deployment自動將UML服務(wù)接口轉(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進(jìn)行Mapping,,最后將Application Data Type分配給服務(wù)接口的子元素,。 (1) 服務(wù)實現(xiàn) 服務(wù)接口由Software Type來實現(xiàn),,通過Service to AutoSAR Classic Technology Mapping可自動創(chuàng)建Application SW Component Types以及C/S或S/R接口來實現(xiàn)服務(wù)和服務(wù)接口,,每一個服務(wù)角色(Servcie Provider/ServiceConsumer)都生成對應(yīng)的Application SW Component Type。 (2) 服務(wù)接口實現(xiàn) 通過上述Servcie to AutoSAR Classic Technology Mapping操作后,,不僅為每個服務(wù)角色創(chuàng)建對應(yīng)的Application SW Component Type和C/S以及S/R接口,,同時創(chuàng)建對應(yīng)的Operations 和Data Elements,對于同一個服務(wù)接口,R&R-method/Getter-Field/Setter-Field子元素轉(zhuǎn)換為Operations被打包為一個Client/Server Interface,,而對于Event/F&F-Method/Notifier-Field將會有單獨的SenderReceiver Interface 實現(xiàn),。 在硬件拓?fù)鋵觿?chuàng)建網(wǎng)絡(luò)拓?fù)鋱D,,添加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)絡(luò)拓?fù)渲袆?chuàng)建的Bus System選擇Creating missing Cluster,基于Bus Type創(chuàng)建Ethernet Cluster,,并自動將Bus System 移動到Ethernet Cluster,。對于每一個Ethernet Cluster需要創(chuàng)建對應(yīng)的Ethernet CommunicationCluster,在Network Topology Editor表格選擇CL(Ethernet Cluster)點擊Create missing EthernetCommunication Cluster,將在左側(cè)結(jié)構(gòu)樹Communication Package創(chuàng)建Transport Layer Package以及Ethernet CommunicationCluster,。 四,、以太網(wǎng)通信設(shè)計(Ethernet Communication) (1) ECU定義(ECUDefinition) 定義網(wǎng)絡(luò)拓?fù)渲忻恳粋€ECU的ID,該ID用戶后期MAC地址的自動計算,,以太網(wǎng)物理層類型選擇(例如100BASE T1),,CNB主從時鐘選擇,MAC Address生成硬件MAC地址,,VLAN 設(shè)置VLAN屬性,,IPV4配置。 (2) 以太網(wǎng)Cluster 配置(Ethernet Cluster Configuration) 定義ECU的Socket Addresses,,指定傳輸協(xié)議TP,,指定傳輸端口Port,NetworkEndpoint以及IPV4 Address,。 在設(shè)計完Service以及ServiceInterface,并進(jìn)行服務(wù)實現(xiàn)(Service Implementation)后,,并設(shè)計完網(wǎng)絡(luò)拓?fù)浜?,在面向服?wù)的系統(tǒng)設(shè)計中下一步工作就是進(jìn)行服務(wù)的部署,在將服務(wù)角色部署到ECU后,,可自動創(chuàng)建實例化的Composition Type,,用來實現(xiàn)服務(wù)角色,并同步在ECU內(nèi)部創(chuàng)建Process Unit,。 六,、軟件架構(gòu)(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口之間的連線,。 在信號路由過程中,,需要電定義幾個通信Artifacts來完成以太網(wǎng)通信設(shè)計: ① Signa和PDU以及Signal和PDU Transmissions被自動創(chuàng)建; ② 如果沒有進(jìn)行Switch Configuration,,則初始VLAN結(jié)構(gòu)的Switch Configuration被設(shè)置,, Socket Adaptor提供了基于Socket的以太網(wǎng)通信和Classic AutoSAR面向PDU的通信之間的轉(zhuǎn)換,,Socket Adaptor Connection Communication Viewer對于每一個VLAN提供了一個詳細(xì)的視圖,,通過Take Over message ID ofService into IPDU header,可自動生成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點擊Update data Serialization setting atthe I-Signal,可生成Data Transformer,信號要經(jīng)過Ldcom,,對于每一個Signal-IPDU需要創(chuàng)建如下屬性:Protocol:SOMEIP,Transformer Class:SERIALIZER,,Version:1,, Signal:設(shè)置信號長度,SignalIPDU:設(shè)置IPDU長度,,Signal-IPDU-Assignment:設(shè)置Byte Order,、Transfer Property,同時對每一個PDU增加Event controlled Timing. Minor Version:次要版本; Major Version:主要版本,; Instance Identifier:1,視通信矩陣而定,; Service Identifier:10,,視通信矩陣而定; Offer Cyclic Delay:2,,表示Offer方在進(jìn)入主階段后Offer報文的發(fā)送周期,; Initial Delay Min Value:初始化階段延遲最小值; Initial Delay Max Value:初始化階段延遲最大值,; Initial Repetitions Base Delay:重復(fù)階段報文發(fā)送基時,; Initial Repetitions Max:重復(fù)階段報文發(fā)送最大次數(shù); TTL:生存周期,,單位為秒,; Multicast Threshold:如果Server在響應(yīng)訂閱時不需要用到多播,該值就設(shè)置為0,; Event Group Identifier:事件組ID,,視通信矩陣而定,當(dāng)前為201,。 最后可導(dǎo)出Software Component Descrption ARXML文件,,導(dǎo)入MatlabSimulink進(jìn)行進(jìn)一步的算法開發(fā)。 上述過程是基于PREEvision提供的SOA&Ethernet Exploer集成開發(fā)環(huán)境進(jìn)行的,,其提供了如下表格所示的10個Category,包含從服務(wù)定義到以太網(wǎng)設(shè)計的全過程,,同時上述過程主要適用于Classic AutoSAR 平臺SOA的開發(fā),對于AP平臺,,PREEvision提供另外一個集成開發(fā)環(huán)境Adaptive AutoSAR Explorer,,同時在服務(wù)定義階段,目前Vector已經(jīng)開發(fā)了接口可以導(dǎo)入由外部工具設(shè)計的服務(wù)矩陣(Excel文件),。 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 |
|
來自: xingqingzl > 《SOA》