我亲身进行过CANoe 15 SP3的实测,经历过DBC信号映射胡乱飞窜致使仿真结果完全错误的那种深陷困境的情况,对于新手而言只要依照步骤逐个去操作,便能够较为轻易地躲开这……
我亲身进行过CANoe 15 SP3的实测,经历过DBC信号映射胡乱飞窜致使仿真结果完全错误的那种深陷困境的情况,对于新手而言只要依照步骤逐个去操作,便能够较为轻易地躲开这类比较常见的问题。
1 配置总线参数与波特率
使Simulation Setup窗口被开启之际情形为开展操作是可行的,CAN网络的图标被双击之时,Configuration设置页面得以成功进入。于Bit Rate所处的可操控区域之内有手动输入这一行为表现出现,手动输入的内容具体数值为500kbit/s以示明确是怎样的刻度,完成这一处境下的输入之后,OK按钮得以被准确击点,击点之后保存这一指令得以被切实执行。这属于整车CAN总线极为妥当的推荐数值,其能够确保数据的吞吐数量,并且不会由于速率过高致使信号反射出现失真情况。
【新手需防入坑】不少人报出“Bus Off”错误,缘由在于偷懒选取了默认的250 kbit/s。解决的办法是,将工程关闭掉,于硬件配置当中把波特率锁定在500 k,不要依靠自动识别。
2 导入并映射DBC文件
将鼠标指针移至CAN Databases节点处,点击鼠标右键,从中选择Add进而载入你所拥有的dbc文件。而后进入Signal Mapping界面,依靠手动方式把每一条信号的Start Bit以及Byte Order与实际车辆运行所遵循的协议达成对齐状态。我实际测试时,对于Motorola格式的信号,必须要将Byte Order设置为“1”。
【新手需注意避开的坑】映射完成之后发觉数值出现乱跳的情况?其核心的出错缘由是没有对Byte Order进行修改,默认的Intel格式会致使车速显示变为转速。再次进入映射表,逐条款项进行核对,若为Motorola就选择“1”。
3 创建IG模块发送激励
于Measurement Setup之中,将Interactive Generator模块拖拽进去,双击使其开启。用右键增添一条处于Interactive Generator模块中的CAN Message,把该CAN Message的ID设定为0x123。
针对新手避坑,点击Start后没任何反应的情况,常见报错是忘记在IG模块里勾选Active复选框,勾上它,然后查看Trace窗口有没有Tx标识,若没有则重拖一次IG模块。
4 两种发送方案的取舍
周期型发送,通过右键信号,将Cycle Time设置为10 ms,这种方式适用于转速之类需要连续监控的数据,不足之处在于总线负载较高。事件型发送,借助CAPL脚本触发,仅在特定条件达成时才进行发送,像刹车信号就是如此,其优点是能够节省带宽,然而缺点是编程较为复杂。对于简单测试单个信号而言,应采用周期型;而对于复杂系统仿真,则必须采用事件型。
周期型,要是把时间设置到少于5毫秒以下,CANoe便会直接卡死,最低得设置10毫秒,要是想要更快些,那就改用事件型触发。
5 完整解决高频报错“Bus Off”
存在这样的一种报错现象,那就是在仿真运行的过程当中,不知不觉间就全部变红了,而且数据也都完全停止了。其出错的根源在于你发出信号的速率超出了总线仲裁的上限。有着一站式的解决流程,首先要停止仿真,把Bus Statistics窗口打开去查看负载率。要是超过了30%,那就进入IG模块,将所有信号的Cycle Time翻倍,就好比从10ms改成20ms这样。接着重新启动仿真,当负载率掉到25%以下的时候就能够稳定地运行通过了。
这套方法不适用于老旧的、速度在125k bps以下的低速CAN网络,也不适用于LIN总线,在那些环境下,使用同样配置会直接不发出信号。替代方案是,用CANoe自带的CANstress硬件去衰减信号,或者换用CANcaseXL的低速模式。
看过这些坑之后让你最想亲手改变的在仿真环境里极为固化不愿改变的那个参数是什么,你说说你的实际操作经历,认为给更多工程师看是有帮助的话就点个赞。
微信扫一扫
还没有评论呢,快来抢沙发~