广告

基于INTERWORK VDE的SOME/IP通信设计

2023-05-08 汽车电子与软件 阅读:
接下来的Ethernet通信设计过程需承接上游服务设计的内容,进行数据链路层(MAC+VLAN)、网络层(IP)、传输层(UDP/TCP Port)以及应用层(SOME/IP、SOME/IP-SD)的参数定义,并最终导出ARXML文件输入下游软件开发团队。

一、前言KV3ednc

在前期的文章《基于Enterprise Architect的SOA开发方法》中介绍了使用MBSE开发SOA架构的方法,通过需求分析、功能设计、模块设计过程定义Service以及Service Interface,接下来的Ethernet通信设计过程需承接上游服务设计的内容,进行数据链路层(MAC+VLAN)、网络层(IP)、传输层(UDP/TCP Port)以及应用层(SOME/IP、SOME/IP-SD)的参数定义,并最终导出ARXML文件输入下游软件开发团队,对于ARXML文件的生成方法行业内目前大概的方式如下:
  • 通过对Enterprise Architect进行二次开发,可基于文档生成器导出服务矩阵,然后再使用第三方插件将SOME/IP服务矩阵转换为ARXML文件,从而导入Matlab生成应用层开发的SWC模型;
  • 直接从Enterprise Architect导出XMI文件,然后将XMI格式文件导入下游通信设计工具比如INTERWORK VDE,从而进行Ethernet通信设计,并可导出AP XML文件及CP XML文件,从而导入Matlab生成应用层开发的SWC模型。
图1:Enterprise Architect XMI文件导出

 KV3ednc

 

二、SOME/IP通信设计

 KV3ednc

本文主要介绍的就是第二种方式,其基于Enterprise Architect+INTERWORK VDE的工具链实现了SOA架构的完整开发,如下图2所示,通过将Enterprise Architect导出的XMI文件导入VDE工具,从而形成了Service Library以及DataType Library并根据服务的部署关系自动创建Ethernet Node和Provide Service Instance和Consumer Service Instance.KV3ednc

KV3ednc

KV3ednc

2:EA导出XMI文件导入VDE

2.1 服务参数定义

将XMI文件导入VDE后,会根据配置文件自动设置默认参数,例如Service ID、Element ID、Instance ID、Port number、Mac Address、Netork Address、Network Mask等,通信工程师可使用默认参数或根据实际需要修改默认参数。服务定义页面共有General、Method、Event、Field和EventGroup五个标签页:KV3ednc

  • General标签页:主要用于定义Service Name、Service ID、Service Description;KV3ednc

  • Method标签页:可以定义Element Name、Element ID(0x0001-0xFFFE)、RR/FF、Protocol(UDP/TCP)、Parameter Name、Datatype、Direction(IN/OUT/INOUT)、Comment;KV3ednc

  • Event标签页:可以添加多个Event类型的接口,并定义Element Name、ElementID、Protocol、Trigger(Cycle/trigger)、Period、Threshold Value、Parameter Name、Data Type以及Comment;KV3ednc

  • Field标签页:可以添加多个Field类型的接口,并定义Element Name、Protocol、Getter/Setter/Notifier、ElementID、Trigger、Period、Threshold Value、Parameter Name、DataType以及Comment;KV3ednc

  • EventGroup标签页:可定义EventGroup Name、EventGroup ID, 并选择当前Service下的Event和Notifier添加到对应的EventGroup.KV3ednc

 KV3ednc

3:Service定义界面

2.2 VLAN定义

VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN再逻辑上划分为多个广播域的通信技术,每个VLAN是一个广播域,VLAN内的主机间可以直接通信,而VLAN间则不能直接互通,从而避免冲突严重、广播泛滥的问题,从而提升网络通信质量。如图4为VLAN MAC帧的帧结构,在目标物理地址和源物理地址后跟4个字节的VLAN Tag,其包含如下3个部分:
  • PRI(3bit):帧优先级,就是通常所说的802.1p;
  • CFI(1bit):规范标识符,0为规范格式,用于802.3或Ethernet II以太网帧
  • VLAN ID:就是VLAN的标识符ID;
图4:MAC完整帧结构
如图5位VDE的VLAN定义界面,且包含两个标签页:
  • General标签页:定义VLAN Name、VLAN ID(2字节,大小范围为0x0000-0x00FF)、VLAN Prority(优先级范围0-7);
  • SD Address标签页:用来添加服务发现地址,

图5:VLAN定义界面KV3ednc

2.3 以太网节点定义

在以太网网段下可以添加以太网节点,Node编辑界面有General、Network Addrss和Port Config三个标签页:
  • General标签页:定义Node Name,Mac Address;KV3ednc

  • Network Address标签页:定义ECU的IP地址以及子网掩码;KV3ednc

  • Port Config标签页:一个ECU可以有多个端口,ECU是通过Port和VLAN关联,通常一个端口可以与多个VLAN进行关联,定义Port以及对应的Network Address 和VLAN;KV3ednc

图6:Ethernet Node 定义界面KV3ednc

2.4 添加Service Instance

Service Instance 是对Service的实例化,包含Provide Service Instance和Consumed Service Instance,Provide Service Instance是指提供端服务实例的部署,Consumed Service Instance是指消费端服务实例的部署。每个ECU Node可以提供多个服务实例和消费多个服务实例,每个ECU不能消费自己提供的服务实例,只能消费处于同一个VLAN下的其他ECU提供的服务实例。
 
图7:Service Instance 编辑界面

编辑Service Instance界面包含如下内容:KV3ednc

  • Provide Service Name:不可编辑,与添加的service名称一致;KV3ednc

  • Service ID:不可编辑;KV3ednc

  • Protocol:为Service中指令所拥有的所有协议类型,TCP、UDP和TCP/UDP,不可编辑;KV3ednc

  • Instance ID:长度一个字节,大小范围0x00-0Xff,通过Instance ID区分不同ECU提供的Service;KV3ednc

  • Port Number:端口号,大小范围是0-65535;KV3ednc

  • VLANID:选择该Service Instance要添加到那些VLAN下,可供选择的VLAN为当前ECU已经添加的VLAN,可以同时选择多个VLAN。KV3ednc

在ECU下面添加Consumed Service Instance时,可供选择的Service Instance为与当前ECU处于统一VLAN下的其他ECU提供的Provide Service Instance,并且Provided Service Instance所选择的VLAN也包含当前ECU所在的VLAN。KV3ednc

 KV3ednc

2.5 ARXML文件导出

在完成上述设计工作后,可以整个Etherne网段或ECUNode为单位导出ARXML文件(AP XML、CP XML),并导入下游Matlab Simulink创建SWC接口。

 
图8:VDE导出ARXML文件导入Simulink

三、总结

上述介绍的Enterprise Architect+INTERWORK VDE+Matlab Simulink工具链覆盖了SOA架构设计主要工作,从而使各阶段的开发输入输出能够有效衔接,避免了传统文档传递的过程,实现数据复用、数据一致性,另外本文介绍的INTERWORK VDE工具不仅支持XMI文件导入以及ARXML文件导出,同时支持传统CAN、CANFD、LIN以及J1939的设计工作,并可方便的实现EXCEL通信矩阵、DBC、LDF、ARXML等各种格式文件的导入以及导出,满足上下游不同业务的需求。KV3ednc

责编:Ricardo
文章来源及版权属于汽车电子与软件,EDN电子技术设计仅作转载分享,对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。如有疑问,请联系Demi.xia@aspencore.com
汽车电子与软件
汽车电子与软件
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
广告
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了