Matlab simulink CANMatrix代码自动生成实践笔记
目录: 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,监控变量、手法报文: 如上图,通过监控变量的值,可知,满足设计。