我之前写过好几篇文章介绍大端小端的存储、显示和读取。在介绍DBC的文章中,也有信号在CAN消息数据中如何定义的顺序,它和大端小端采用的原理相同,但是不能带入数据大端小端存储的方法。这里千万要注意!
DBC数据库中定义信号时采用的字节顺序,如果想讲明白,很简单。但是如何讲明白的同时,还能通俗易懂,让人容易记住,这是我一直思考的问题!之前看过几篇别人写的介绍信号字节顺序的文章,怎么说呢?不那么通俗易懂,尤其对于初学者来说,太八股文了,今天尝试以我的角度解读信号的字节顺序
这篇文章,我打算通过:画图、举例与分析相结合的方式,让读者全方位地了解CAN消息数据、信号、字节顺序之间的关系
对于CAN报文来说,最多有8个字节,32个bit位:
上图就是CAN报文数据的布局,注意里面的两个箭头:
- byte0到byte7表示CAN报文在发送和接收时的顺序,不管信号怎么定义。CAN消息的数据在发送时必定是从byte0开始发送
- bit0到bit7表示一个字节的数据,低bit位在右侧,高bit位在左侧,这决定了一个字节数据的大小
信号是什么?
用户在应用层设置某个功能,想要通知其他ECU节点,就可以用某条CAN消息携带这个功能值,发送到CAN总线上。比如设置空调温度值,同步显示在Radio界面,需要在