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

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

 

     

 

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

 

 

 

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

对!你没听错,就是它!

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

 

背景引入

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

 

 

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

 

 

以下是常见的各大OEM Package:

 

 

 

模型生成

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

 

Step1:启动Model Generation Wizard

 

 

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

 

 

Step3:模型生成配置– Settings

 

 

Step4:模型生成配置 -Nodes

 

 

Step5:模型生成– Generation

 

 

Step6:打开生成模型

 

 

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

 

 

交互层(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咨询。怿星官网:http://www.e-planet.cn/

  • 6
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值