大数跨境

总线仿真,还可以这样玩!

总线仿真,还可以这样玩! 怿星科技
2020-03-06
3
导读:本文将以Vector官方的模型库(Vector modeling)为例,手把手教大家实现由easy.dbc数据库自动生成仿真工程(使用环境CANoe12.0 SP2)。

总线仿真,一直是个头疼的问题,您一定认为是这样的:



     


当然了,这种方法并没有错,但繁杂、捉急、维护差依然掣肘。那么有没有更高效的方法呢?这个当然可以有。




“一键生成CANoe仿真工程”?

对!你没听错,就是它!

话不多说,先看一段精彩短片。



在视频中,我们基于Model Generation Wizard导入easy.dbc数据库,一波流操作自动生成CANoe仿真工程,全程没有使用CAPL。

下面小编将带领大家揭开这种模型生成的神秘面纱。

 

01
背景引入

在ECU通讯软件架构中,通常集成了IL(Interation Layer),NM(Network Management), TP(Transport Protocol)各层。与之对应,CANoe中以dll(动态链接库)的方式实现各层软件。



尽管通讯软件架构大体相似,但OEM在各层软件细节上仍有不同,例如:E2E报文计算方法,NM的自定义等。为此,CANoe针对不同的OEM开发了不同的OEM Package(定制化开发了dll)。



以下是常见的各大OEM Package



02
模型生成

本文将以Vector官方的模型库(Vector modeling)为例,手把手教大家实现由easy.dbc数据库自动生成仿真工程(使用环境CANoe12.0 SP2)。


Step1:启动Model Generation Wizard



Step2:模型生成配置 - Inputs/Directories



Step3:模型生成配置– Settings



Step4:模型生成配置 -Nodes



Step5:模型生成– Generation



Step6:打开生成模型



至此,相信大家对于如何生成工程、完成总线仿真已经了然于胸。


03
交互层(Interaction Layer)

在上边的示例中,当我们打开KL15, KL30开关,好奇的你,一定发现,仿真报文发出来了,这是怎样实现的呢?引入我们今天详细剖析的交互层(Interaction Layer)。(此部分专供老司机)


交互层负责管理传输模型并执行以下任务:

  • 提供面向信号的接口;

  • 支持OEM特定的端到端保护机制(ApplicationCRC, Counter);

  • 控制信号和报文发送类型;

  • 提供事件型报文(使用信号或报文作为触发对象);

  • 提供故障注入接口,以干扰报文的发送。



Q1:如何关联交互层(Interaction Layer) dll?

A1:在dbc属性中关联,并选择节点同步;



A2:手动添加dll;



IL dll中封装了大量的API接口,方便用户使用,以下为函数的概述:



IL API中最重要的是Control of the Interaction Layer(IL控制)API,其中涉及到IL层的状态机跳转,下图为详细阐述:



IL API中另一个很重要的是Callback Interface(回调函数)API,下图为详细阐述:




很多客户经常问到Alive Counter和Checksum的问题,这里使用IL的callback回调函数可以轻松解决。


以E2E报文仿真为例:以下代码实现了ID0x1A0报文的Checksum计算和ID 0x1A1报文的Counter计算。



本期的内容就到这里,由于篇幅所限,今天我们主要介绍了模型如何生成,以及交互层(Interaction Layer)的相关知识。这里也只是抛砖引玉,关于更多OEM Package、IL和NM的模型生成问题欢迎童鞋们在下方留言或发邮件support@e-planet.cn咨询。


更多精彩推荐:
CAN总线测试与汽车以太网测试的区别
给CANoe编程上点套路 – CAPLdll
打开V2X的神秘大门 - CANoe.Car2X之场景创建
在CANoe中开极品飞车是什么感觉?
当Python遇到CANoe
怿星之石,可以攻玉
手把手教你如何在PREEvision中进行CAN的多路信号复用设计
CANoe与Matlab/Simulink联合仿真



【声明】内容源于网络
0
0
怿星科技
让智能汽车研发更高效!
内容 428
粉丝 0
怿星科技 让智能汽车研发更高效!
总阅读647
粉丝0
内容428