||
对,就是以上。。数据域前面有五个字节(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越小,优先级越高。先发咯。