市场动态



在上一篇中我们聊到面对汽车智能网联化浪潮带来的一系列技术革新,传统CAN远远不能满足车载网络通信的需求。面对车载通信的新使命,以太网与汽车深度拥抱的契机已经来临。并介绍了在以太网的设计过程中采用面向服务的架构设计(Service-Oriented Architecture,简称SOA)的开发流程。以太网SOA基于服务,而服务通过标准化的接口提供功能,这种开发方式的优势:在新平台,服务的高度可重用性;通过系统抽象,减少了广泛服务使用的复杂性;降低了软件开发成本;更加灵活。下面和大家分享如何应用PREEvision进行基于EthernetSOA设计。


 


SOA开发流程

PREEvision遵循以太网面向服务的方法论,以UML Diagram, Service等提供遵循SOA架构开发环境。

基于EthernetSOA设计流程,如下图所示:



主要包含以下6部分内容:

  • 服务定义

  • 软件设计

  • 硬件设计

  • 服务部署

  • 信号路由

  • 以太网通信详细参数定义

PREEvision提供了一种基于表格的形式逐步引导设计人员完成SOA设计过程并提供了自动化操作的敏捷开发体验。下面我们将一个视频播放的功能抽象成一个Video Player的服务,并在PREEvision中进行设计。


 

1服务定义

通过服务定义,服务以标准化的接口提供功能。

Service Definition中可以点击相应表格进行定义服务相关内容:

Step1:Service Definition Editor定义服务(Service):Video Player

服务提供者(Service Provider: Video Player Provider

服务消费者(Service Consumer: Video Player Consumer

服务接口(Service Interface):Video Player Interface

小贴士

tips

SOA基于服务,而服务通过标准化的接口提供功能。在设计初期对需求进行分析阶段,我们可能更感兴趣这些服务怎么被使用以及他们之间的交互关系。在此处我们定义了有哪些参与者、参与者之间有什么关系,即Who (Provider) provides What(Service) to Whom(Consumer) and How(Service Interface)

 

Service Definition Editor:创建服务

 

Step2:Service Interface Editor定义服务接口(Service Interface):包含具体的服务内容

方法(Method: VideoPlayerControlCmd

事件(Event: CurrentPlayingTime

域(Field: VideoInfo

小贴士

tips

服务以标准化的接口提供功能,接口包含具体的服务内容。Method指一种被调用的方法、过程、功能或例程;Event类似CAN总线中的信号,可以周期发送/事件触发/使能;Field可以简单理解成MethodEvent的组合。


 

Service Interface Editor:创建服务接口


Step3:Service Interface ID Editor定义报文IDMessage ID:包括服务IDService ID和方法IDMethod ID/事件IDEvent ID

Service ID : 0x64

Method ID:0x0015

Event ID:0x0001

小贴士

tips

报文ID类似于CAN ID,报文ID服务ID和方法ID/事件ID组成。在PREEvision中通过定义服务ID和方法ID/事件ID后即可自动计算出报文ID。服务ID是唯一标志不同服务,方法ID/事件ID用来区分不同的方法/事件。

 

 

Service Interface ID Editor:定义ID


Step4:在Service Interface Data Type Editor定义服务接口的数据类型(Service Interface Data Type

应用数据类型(ApplicationDataType

实现数据类型(ImplementDataType

基本类型(BaseType

小贴士

tips

每个服务接口都需要定义其数据类型,开发人员应根据具体服务接口定义相关数据类型。应用数据类型是从应用的角度定义所有的数据属性,用于在两个软件部件之间交换应用数据;实现数据类型从实现的角度进行定义,用于基础软件内的接口的描述和数据;基本数据元素是实现数据类型的基础。

 

 

Service Interface Data Type Editor:定义数据类型


2软件设计

服务的实现离不开应用软件和硬件资源的支持。在完成服务定义后进行软件设计时,PREEvision提供了一种合成功能。通过点击Service Implementation按钮,将创建实现服务(Service)和服务接口(Service Interface)的应用软件部件类型(Application SW Component Type)和接口(Interface)、数据元素(Dataelement

小贴士

tips

应用软件之间的信息交互,是通过软件部件的端口(Port)进行传输信息(Interface)。通过服务实施,实现服务的软件部件设计完成。

 

 

Service Implementation Editor:创建实现服务的软件部件


Service Interface Implementation:创建软件部件的PortInterface

 

3件设计

定义带有Switch的以太网网络拓扑结构,设置总线类型为Ethernet


定义网络拓扑

设置总线类型

 

4服务部署

在完成实现服务的软件设计以及硬件拓扑设计后,将服务部署到具体的ECU内。

服务部署


通过服务部署,实现服务的软件组件映射到相应的ECU内。

服务部署-Service ECU Deployment Editor

 

5信号路由

在将服务部署到具体的ECU后,通过信号路由的方式自动创建以太网通信相关的一系列构件:

  • Socket Address

  • Socket Connection Bundle

  • Socket Connection

  • Signal

  • Signal Transmissions


小贴士

tips

通过信号路由,将实现服务的软件部件间的通信转变成真实的总线通信。

 

实施信号路由

 

 


 

本期由于篇幅原因,就先分享到这。下一篇我们将提到SOA以太网通信是通过IP地址、MAC地址建立节点间的连接,采用UDP/TCP传输协议通过端口Port实现具体通信。精彩不容错过,欢迎您持续关注。

 

 

往期回顾:

【连载一】基于PREEvision的智能网联EE架构开发

【连载二】基于PREEvision的智能网联EE架构开发