浅谈CANoe实现SOA仿真测试

发布时间:2024-06-25  

前言


我们这次来聊一聊怎么通过我们熟悉的CANoe工具去实现SOA的相关功能。


什么是SOA

SOA的全称是面向服务架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。(来源:百度百科)


SOA里面涉及服务,接口、服务提供者、服务消费者等概念。


  • 服务:实现某种功能的函数或方法,是一个可远程访问并独立执行和更新的离散功能单元;

  • 接口:能够被其他模块调用的函数名称或一个封装的API;

  • 服务提供者:提供服务功能 如算法,数据源;

  • 服务消费者:如消费数据,使用功能。


但是SOA的架构为什么要在汽车上应用?

我们可以通过下面的例子进行思考,并分析传统架构与面向服务架构的异同。


pYYBAGLmNZqAfXz6AAE3Cfau6rg319.png


根据上面的例子我们可以清晰的看出:


对于传统面向信号的架构来说,增加新功能所需要的步骤更加繁琐,增加了我们对于开发本身的成本,也可以透过整个流程看出,面向信号的架构对于系统本身的利用率并不高。


面向服务的架构对于ECU的更新版本、更新信号库、代码修改等过程更加简便和灵活。简化成了注册服务与调用API。节约了时间成本,让整个系统的功能可扩展性极大扩张。


汽车在不断提高智能化水平;引入智能驾驶,V2X等技术的同时,也更加关注用户的体验与需求。软件的迭代、OTA等功能的使用也越来越广泛和频繁。在我们传统的电子电气架构下,我们可扩展的功能越来越有限,我们需要一个功能可扩展性强、软硬件松散耦合、标准化接口、支持异构系统集成的电子架构。这也就是为什么我们要在汽车上使用SOA架构。


System and Communication Setup功能介绍

CANoe中System and Communication Setup功能主要的使用场景是建立SOA仿真通信。SOA的核心是服务,任何功能都可以链接到“服务”,并且服务的提供者和消费者都可以自由地改变。因此Communication Setup功能主要是在环境中实现不同的服务的链接,这些服务链接不仅局限于数据库中的定义,可以在CANoe仿真环境中动态地建立连接。


在Communication Setup中将应用层与实际传输介质分离。我们在这里使用通信对象来描述应用层信息,通信对象可以是服务、PDU或者信号。在此环境下,通信对象可以完全独立于网络通信介质,在CANoe中进行纯粹的模拟通信。


通信对象可以通过绑定链接到传输介质。绑定的方式也分为两种。


  • 第一种是采用以太网传输,绑定SOME/IP通信。我们可以通过以太网协议实现端对端的Server与Client仿真相关的SOA功能。

  • 第二种是通过抽象绑定,这类绑定一般是在开发的早期阶段,通过抽象绑定,无需定义底层协议,注重的是应用的通信。


pYYBAGLmNb-AfBs0AAGpiYDSiH8626.png


我们可以通过以上表格了解传统工程仿真的元素与SOA仿真元素的对应关系。


配置流程介绍


打开CANoe后即进入仿真标签,找到左上角系统与通信窗口。


poYBAGLmNeGAagswAACCksnXvbM315.png


之后进入到配置界面。


poYBAGLmNfmAe1emAACm6L2L4S4942.png


首先我们需要加载数据源文件。


poYBAGLmNgeAPuMQAADRtv5tzgc714.png


pYYBAGLmNhSABJY9AAFtfgxau4k927.png


选取ARXML或者是vCDL等文件。

加载完成后进入下一步,可在数据库加载完成后提前定义好数据库中属于被测系统以及测试环境的元素有哪些。


poYBAGLmNiGAEvGjAAGVRuvBcjA206.png


poYBAGLmNjWABJKhAAGF8LQ9lQM996.png


导入完成后回到配置界面

添加应用模型文件(.CAN/.CS/.DLL等)。


pYYBAGLmNkOAeviJAADFRFhEIlw929.png


poYBAGLmNlGAQQfZAADLvRSrAMQ539.png


如果你使用的是CANoe 14.0版本,模型导入完成后需要进行通信绑定的配置。


pYYBAGLmNneATAZMAAEb6X-pMKM605.png


绑定界面可将未定义的元素进行拖动定义,绑定分为抽象绑定或SOME/IP绑定。


poYBAGLmNpOAQMf0AACnTXauYiM536.png


完成后点击OK保存。


在CANoe 15.0版本中,通过读取ARXML或vCDL等数据文件,文件预先设置了节点角色,可直接进入服务查看通信绑定状态。

如绑定SOME/IP


pYYBAGLmNquAGb_0AACAJ9096iA691.png


或者是抽象绑定


poYBAGLmNsuATUUxAADNVD7ezFs016.png


基本配置完成后,之后我们再进入系统浏览器,查看之前加载好的所有数据。

左侧的菜单栏中对我们的测试功能进行了分类,分为系统定义与预定义。


poYBAGLmNuiANW5fAADGX4q7Mgc341.png


预定义的分类下是我们在数据库导入的时候定义好的。


poYBAGLmNvqAPbxbAAA4cuzb6Bg323.png


poYBAGLmNwSAWTP8AABStlNmcqk110.png


我们可以在窗口右上角切换用例的运行环境。

如果我们的被测对象是真实设备,并且已经与CANoe进行了连接,可以将右上角的用例状态切换为environment simulation。


poYBAGLmNxCAIA4SAADJcOoxKjk696.png


切换后我们再将state的信息切换为REAL(Device)。此时我们的被测系统是真实的,而环境是仿真出来的。


pYYBAGLmNzuAZBxXAAD2rg7gB28032.png


如果我们也没有真实的硬件设备,我们把右上角状态切换为test the tester。


pYYBAGLmN0aAGjOzAADte580ysU363.png


切换后我们的state的信息会切换为simulated。此时我们的被测系统和环境都是仿真出来的。

我们也可以借助此窗口查看系统的通信关系。


poYBAGLmN1OAEMKgAACK_wpgJW0301.png


通信的拓扑图可以直观查看到。


pYYBAGLmN2qATNdfAAB9wchfJTE688.png


工具栏也可查看选择的端点内包含的通信对象。

配置完成后,点击熟悉的黄色闪电⚡按钮,就可以进行CANoe的SOA功能仿真啦。


poYBAGLmN4SAMQCBAAGIok_RxGs667.png


知识补充

1、在SOA仿真中我们看到了一种新的数据源格式:vCDL

首字母缩写词 vCDL代表 Vector Communication Description Language,是一种域特定语言 (DSLClosed),用于描述 CANoe中的通信对象。 vCDL允许通过用于简单和基于文本的通信对象配置的工具扩展 CANoe通信概念。 通信对象及其各自的参数以类似于最常见编程语言的语法定义。 该语言的主要设计目标是能够用很少的语言元素映射简单的结构。 如果需要复杂的配置,扩展语法允许通过属性补充定义(类似于 C#中常用的属性)。


我们可以使用系统自带的 vCDL Editer实现文件的生成与编辑。


poYBAGLmN6WAUWJyAAB8xhZKLds205.png


poYBAGLmN7CATcTTAACvOMahTHE603.png


2、CANoe可以编辑和生成ARXML了?

我们在编辑系统数据的功能窗口发现,我们可以查看ARXML的部分信息,如PDU、DATA Types、Encodings等。


poYBAGLmN8KAdKO9AAEM9asw72c062.png


目前模型编辑窗口修改的ARXML参数只是应用于当前工程内部,修改参数值和相关内容并不会改变ARXML数据库文件本身的内容,也无法生成新的ARXML文件。


此窗口更多的协助用户校对和匹配通信对象,以及更改修正关于以太网通信参数(如SOME/IP参数) 等场景使用。


5、为什么绑定功能中SOME/IP也作为绑定的一类?

SOME/IP (Scalable service-Oriented Middlewareover IP),即“运行于IP之上的可伸缩的面向服务的中间件”,是车载以太网中存在于应用层的高层协议。 “中间件”可以是操作系统,也可以是应用程序,也可以是某个服务功能。SOME/IP属于应用层协议,它提供面向服务的通讯接口。服务接口包含请求/响应方法(R/R Method),单向请求方法(F&F Method),通知事件(Notification Events),字段(Fields)。可以支持请求/响应模式的远程服务调用,也可以支持订阅/发布模式的消息通知。SOMP/IP-SD服务发现功能可以发现服务提供者的信息以及检查服务的状态。


服务是SOME/IP的最核心概念,在一个服务中,定义了服务端(Server)和客户端(Client)两个角色:服务端提供服务,客户端调用服务。对于同一个服务,只能存在一个服务端,但可以同时存在多个客户端调用服务。


poYBAGLmN_qAVsQWAABksOxP03E838.png


SOA本身的特性就是面向服务,并需要通过协议调用一个或多个服务进行数据交互来满足系统的业务需求。


一个是面向服务的架构,一个是面向服务的通信协议。SOA架构中的服务可借助SOME/IP在不同的软件平台或操作系统之间共享资源,两者在此功能中集合是一种必然。


在车载以太网普及度逐年攀升的时代,在实车上实现SOA以及进行测试通常会运用到SOME/IP协议。


6、总结

CANoe Communication Setup功能为实现SOA模型的交互和模型测试提供了全新的接口。用户可以通过CANoe更加灵活地实现面向服务架构的仿真。


汽车新四化的发展,汽车的功能由过去的靠特定功能硬件实现转向为越来越多靠功能执行模块实现,软件对汽车的功能和性能起着决定性作用。


面对未来全新的架构,CANoe可以继续极大程度简化测试与开发流程,帮助用户高效开发。


CANoe是德国Vector公司出的一款总线开发环境,是网络和ECU开发、测试和分析的专业工具,支持从需求分析到系统实现的整个系统开发过程;其丰富的功能和配置选项被OEM和供应商的网络设计工程师、开发工程师和测试工程师所广泛使用。


北汇信息作为Vector中国的合作伙伴,不仅提供相应的工具和技术支持服务及培训,还针对不同的应用提供相应的解决方案,助力中国客户的研发效率提升。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>