文章引用于:CANMatrix代码自动生成实践笔记http://www.ilovematlab/thread-559819-1-1.html(出处: MATLAB中文论坛)
目录:
1 背景介绍
2 建立模型
3 代码生成
4 代码验证
1 背景介绍
通常在有CAN通讯的项目开发中,当收到客户的“通讯矩阵”和对应的.dbc后,就要立马着手进行信号的解析和计算,等程序写好了紧接着做测试,如果期间又有比较多的需求变更,改动起来是比较费劲的。常规的这种开发过程效率并不高,限于个人能力通常代码质量也并不高。
读了斑竹老胡的《为什么要基于模型设计?》觉得很有道理,但又苦于不知从何入手,最近在MATLAB网站学习时,发现了“Vehcile Network Toolbox ”,于是便有种豁然开朗之感,遂尝试对以往的工作方式进行优化,便有了这篇笔记。
2 建立模型
改进的思路如下图所示:
通常既要接收报文也要发送报文,所以需要CAN Pack和CAN Unpack两种模块,如图:
为了测试,编写一个通讯矩阵,包含接收帧和发送帧,如图:
建立模型,如图:
分别在CAN Pack和CAN Unpack中添加.dbc文件,如图:
3 代码生成
配置代码生成过程:(该过程在这里就不赘述 )
生成的代码如图所示:
ID:0x206 message CAN_Pack code
ID:0x115 message CAN_Unpack code
代码生成报告,如图:
通过report,可以将模型和代码进行对应跳转,方便查找。
4 代码验证
为了验证模型生成的代码,将生成的代码集成到现有的工程中,通过仿真器和CANtest,监控变量、手法报文:
如上图,通过监控变量的值,可知,满足设计。
更多推荐
Matlab simulink CANMatrix代码自动生成实践笔记
发布评论