注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
xbhero的个人空间 https://home.eeworld.com.cn/space-uid-536884.html [收藏] [复制] [分享] [RSS]
日志

老六----简要分析下一包CAN数据包含哪些。

已有 3367 次阅读2015-7-1 13:44 |个人分类:STM32| 软件编程, 数据采集, 示波器, 程序

最近学习CAN,对CAN也有了一定了解,其实程序写起来吧,跟串口区别不大,也就多了一些CAN应该定义的东东。呵呵
下面我来分析下我所掌握的CAN扩展数据帧。方便对刚接触CAN的人理解CAN数据吧。
第一、一帧CAN数据包括哪些东西?

对,就是以上。。数据域前面有五个字节(39位)。数据域后面25位。

前面的39位,即五个字节都是有含义的哦。具体的话以后再给大家讲。

每一次CAN最多发送八个字节。那有人问:比如(0x) 10 02 00 01 02 03 04 05 06 07 08 09 0A 10 03怎么发出去呢?

在示波器上测得话是怎么样的波形呢?那我在这里给大家讲一下吧:

CAN总线上发的第一帧是:

前面39位+10 02 00 01 02 03 04 05+后面25位;

CAN总线上发的第二帧是:

前面39位+06 07 08 09 0A 10 03 00+后面25位;不够八位的用0X00补齐。

当然00也可以在软件编程时候设置发送的DLC长度,让它不发出来。

CAN在连续出现5个0或者1的时候,会自动位填充一个反向的码流哦。示波器也是可以看到这个码流的,所以将CAN示波器上看到的数据采集下来的话

要记得连续的5个0或者1,后面的1或者0,要把它删掉,才能得到真正踩到的数据哈。。。会插反向码流的区域是从SOF(包括在内)----->CRC分隔符前(CRC分隔符不包括在内)。

那有人接收方怎么去接收呢?

回答:接收的话就是看前面39位里面的帧ID号来判断咯。呵呵

还有人问,CAN总线上如果不只一个节点再发数据的话,会怎么样?不是乱掉了吗?

回答:如果有两个节点在发送,那么肯定要比较优先级哦。帧ID越小,优先级越高。先发咯。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章