今天讲一讲,如何进行使用simulink进行can报文的解析。本教程需要有一定的can基础(后续如果有时间,会在入门板块进行讲解,欢迎进行持续关注)。在simulink里对can报文的解析,有两种方式,最直接的方式就是进行手动解析。需要对can的数据非常熟悉。另外一种方式就是需要有can数据文件,数据的解析完全通过dbc完成。
一.手动解析
手动对报文进行解析,和使用c代码进行解析比较类似。需要弄清楚以下问题:①编码方式:intel还是motorola,需要弄清楚高低字节,两种方式解析不一样。②信号的起始位,所占的bit位数。③信号的偏移量和分辨率。
原理:
跨字节:解析值=(高字节数据*256+低字节数据)*分辨率+偏移量
非跨字节:解析值=字节数据*分辨率+偏移量
对于字节数据的取出,如占满字节,直接转无符号8位即可。如果字节未占满,和C代码一样,主要通过与操作&和移位>>操作完成,主要用Bitwise Operator和Shift Arithmetic两个模块。
举个栗子