通过CANoe Communication Concept实现SOA仿真

文章来源:Vector维克多 发布时间:2021-01-29
分享到
CANoe中Communication Concept模块着重于实现现代车辆架构中以服务为导向的通信,即SOA架构通信。
图片


Communication Concept介绍

CANoe中Communication Concept模块着重于实现现代车辆架构中以服务为导向的通信,即SOA架构通信。SOA的核心是服务,任何功能都可以链接到“服务”,并且服务的提供者和消费者都可以自由地改变。因此Communication Concept支持在CANoe中进行以服务为导向的动态场景建模:通信矩阵或者通信参与者通常不是由静态的系统描述文件指定,而是在运行时动态地建立连接。


为了实现动态场景的建模,Communication Concept将通信应用层和传输介质严格分离。在Communication Concept中可以使用通信对象(Communication Object,简称CO)来描述应用层信息,CO可以是服务、PDU或者信号。由于在应用层不需要数据传输的详细信息,通信对象可以完全独立于网络在CANoe中进行纯粹的模拟通信。

通信对象可以通过绑定(Binding)链接到传输层。采用SOA理念所设计的软件架构在与外界交互时,可以通过以太网进行数据传输,基于SOME/IP的通信则是一个最典型的基于以太网通信的应用方式。Communication Concept中的Binding支持将服务通过SOME/IP绑定,可以实现端对端的基于以太网的SOME/IP通信。此外,在开发的早期阶段,更关注应用层服务的实现,可以使用抽象绑定(Abstract Binding)实现模拟节点之间与应用相关的通信,无需描述和模拟底层通信协议。


Communication Setup窗口介绍

CANoe 14.0使用“System and Communication Setup”窗口配置“Communication Concept”相关功能,该窗口可以直接在Simulation主菜单中打开访问。

图1 访问System and Communication Setup窗口

如图2和图3所示,“System Definition”窗口可以用于加载数据库文件(ARXML/FIBEX/vCDL/vCODM)、应用程序模型(C#/CAPL)和VTT模型以及配置通信对象的绑定。“System Explore”窗口可以用于设置或显示通信细节,如配置模拟节点或者真实节点、显示通信的网络拓扑、对被测系统和仿真系统分组管理等。

图片

图2 System Definition窗口

图片

图3 System Explore窗口

工程搭建步骤:


Step1:数据库的导入

点击“Import Data Source”选项可以导入系统数据库文件。数据库导入时允许将不同的描述文件导入到同一数据模型中,实现ARXML/FIBEX/vCDL/vCODM文件的组合使用。在数据库信息不完整的情况下,也可通过Model Editor对导入的数据库进行编辑扩展,或者导入vCDL文件扩展补充相关信息。

图4 导入数据库文件


Step2:通信模型配置

将窗口切换至“System Explore”页面,这是CANoe中所有可用元素和应用模型的中心视图。在“System Explore”页面可以配置通信网络,并查看谁与谁通信。此处需要介绍两组概念:


一:终端(Endpoint)和通信参与者(Participant)

实现CO交互的双方都称之为Endpoint,SOA通信也通常称为端对端通信,所以一个Endpoint可能是一个服务的Client端或者Server端。Participant则是一个或多个Endpoint的合集,表示一个通信节点可能同时与多个节点实现多个服务间的通信。


二:Participant和Endpoint的状态模式

在属性栏显示有三种状态模式可供选择切换,分别是Simulated、Off以及Remote。Simulated表示在Communication Setup中仿真该通信节点;Remote表示该节点参与通信,但不经由Communication Setup仿真;Off则表示该Endpoint/Participant不参与当前的通信。


可以参照实际的测试或仿真需求在“System Explore”中单独设置Endpoint的状态或者在Participant层面统一设置通信节点包含的所有Endpoint的状态。

图5 设置Participant的状态模式


Step3:通信绑定

通过绑定可以将CO链接到指定的总线系统或协议,实现Endpoint之间通过相应协议/网络的通信。一些数据库文件或描述文件已包含所有绑定相关的信息,在这种情况下,只需正确导入相关描述文件即可实现相应绑定的自动配置,当然也可以在编辑器中手动配置绑定相关参数的数据。


当前CANoe支持两种绑定方式:抽象绑定和SOME/IP绑定。通过抽象绑定CANoe无需描述传输协议参数就可以实现仿真Endpoint之间的数据传输,允许其在应用程序级别进行通信。SOME/IP绑定可以实现端对端的基于SOME/IP的通信。在这种情况下,通常另一个Endpoint是真实的节点。SOME/IP绑定支持事件的传输、方法的调用和基于Service Discovery的查找和订阅服务等机制,此外还支持具有E2E(End-to-End)保护和基于SecOC(Secure Onboard Communication)的Signal-I-PDU的传输。


绑定的配置需要点击“Configure Binding”按钮打开“Bindings”窗口,将CO拖拽到对应的模式下即可(见图6)。如果配置SOME/IP绑定,则需要检查确认Ethernet相关的参数是否正确,包括Endpoint对应的MAC、IP、TCP/UDP端口等信息。如果信息不完整或有误,可以点击右上角的“Open Model Editor”选项进行补充修改。

图6 配置SOME/IP绑定


Step4:模型仿真和测试

C#或CAPL可以使用Communication Concept中的对象(CO/DO)和API来创建应用程序模型或实现测试功能。图7展示了C#和CAPL模拟通信Consumer和Provider的源代码,其中使用C#搭建应用程序模型时需要在Participant的属性窗口中激活“Generate C# API”选项,从而允许C#通过生成的API访问应用层对象信息。

图片

图7 C#/CAPL应用模型代码

添加C#/CAPL编写的仿真应用程序模型,只需将对应的C#/CAPL的源文件导入到“Application Models”中并激活即可:

图片

图8 导入C#/CAPL模型文件

测试功能则可以通过在CANoe中添加C#/CAPL测试模块或者集成vTESTstudio工程生成的测试执行文件实现自动化测试。


Step5:通信测量分析

CANoe中的测量分析窗口可以同步监测分析Communication Setup中搭建的SOA模型的通信数据。切换Trace窗口栏选项为“Communication Objects”可以从抽象层角度来跟踪记录通信数据。Graphic、Data等窗口可以导入Method、Event相关参数进行同步观察。


此外,Panel工具提供“Method Call Control”插件,只需与Consumer端的Method关联,即可在CANoe运行过程中模拟Consumer发送Method调用指令。在测量过程中通过“System Explore”中的“Change Value”选项,也可以便捷地修改Provider端数据。

图9 CANoe测量分析SOA通信数据


数据库的修改


方法一:Model Editor

通过点击“Edit System Data”可以打开“Model Editor”窗口。在Model Editor的对话框中可以定义完整的数据库,也可以对工程中已有的系统数据进行修改完善。Model Editor编辑的内容不会影响导入的源文件:CANoe会在系统描述文件导入后生成一个vCODM格式的模型描述文件,Model Editor是在该模型文件基础上进行编辑修改。


Model Editor窗口可以对如下内容进行编辑定义:

  • 在“Type Definition”中可以定义创建新对象(CO/DO)所需的模板,包括创建一个服务接口作为新服务的模板。在服务接口中可以描述事件、方法、PDU和字段。其中创建事件、方法、字段和信号时所需的函数类型、数据类型和编码也在“Type Definition”中进行定义。

  • “Communication Objects”和“Distribute Objects”则使用上述模板实例化应用层对象(CO/DO)。

  • “Participants”栏可以创建Endpoint并将其分配给对应的Participant。

  • “Ethernet Peer Setup”可以定义以太网,包括Endpoint对应的IP、VLAN、MAC以及TCP/UDP端口等信息。

  • “Bindings”:如果通信需要绑定到SOME/IP,此处可以补充定义SOME/IP相关参数,包括SOME/IP-SD属性,SOME/IP服务相关的Instance ID、服务ID、Method ID以及Event ID等。

图片

图10 Model Editor编辑数据库


方法二:vCDL

vCDL的全称是Vector Communication Description Language,是CANoe中用来创建和完善数据库的语言,其文件格式为*.vCDL。vCDL文件可以作为一个独立的系统描述文件或补充文件导入到“Communication Setup”中。CANoe 14.0自带的vCDL编辑工具“vCDL Editor”支持代码的自动补全以及解析错误提示功能。图11展示了vCDL Editor工作窗口。vCDL模型通过关键字“import”可以导入到其他源文件。

图片

图11 vCDL编写数据库

小结

Communication Concept提供统一的、跨网络的通信概念,为应用模型和测试脚本提供独立于网络的接口,允许在仿真过程中动态创建通信端点。这种方法非常灵活地支持面向服务的通信建模。


随着汽车电子行业的飞速发展,汽车电子架构越来越复杂,面向服务的体系架构在汽车领域日益重要。个性化需求的增加使得未来技术方向有很大的不确定性。Communication Concept能够灵活应对技术方向的变化,只需基于服务包实现相应的绑定即可支持新的技术。


收藏
赞一下
0