一分钟理解can报文结构02(学习笔记)

一分钟理解can报文结构02(学习笔记)
上一节ecu如何发送01回答要么有差分电压要么没有差分电压有Ch3.5Cl1.5电压差2V是显0都是chcl2.5电压差是0隐1这也就是CAN协议——can总线传输数据上一节的问题010101不是二进制而是can协议ISO11898can总线传输协议标准本章重点报文结构数据帧七个大部分一个位叫一比特要发报文时第一个2微秒帧起始一比特一定是显必须是0仲裁域(ID)11个比特(11个0或者1的组合经常写成7进制)身份证号RTR控制位如果是1就是远程帧0就是数据帧显性一般都是0控制域第一个ide扩展帧如果是1就是扩展0就是数据帧第二个保留位一般是0看报文后面四个DLC数据长度data length code 后续的数据为有多少个字节1字节8bit1111842115这里利用的是二进制100080008注意9~15都算8个字节补充一下二进制知识点11111*2^31*2^21*2^11*2^0842115二进制是我今天学c语言学会的、包括16进制8进制16进制是0x或者0X或者\x八进制是0开头或者\数字这里是c语言知识基本上20分钟就可以理解数据域我到现在也没看明白为撒数据0~64一定得是8的倍数不能是5也不能是17奇了怪了1 字节 (Byte) 8 比特 (bit) 8 位注这里应该是有64个格子的CRC序列循环冗余检查码用来检查是否错误CRC界定符表示发完了隐1ACK域ACK槽接受ecu从0变成1就算接收成功隐1总线上有10个ECU原先都是2.5隐性状态如果变成了有差分信号那就是说明发送成功这个地方好难理解的ACK界定符隐1帧结束帧结束连续七个隐性1一小格1bit总结一下以上内容就是我听到啥然后瞎记录的我学明白的就是1.首先帧起始是显0(忽然开始启动)结束的时候会有连续7个隐1也也就是说会连续平7次2.仲裁域ID别名身份证号码每个CAN报文都会有自己单独的ID也就是身份证号码用的是2进制反正有7进制也有16进制乱七八糟rtr从左往右第13个比特显0起来的3.ide是0控制域ide是1扩展帧id扩展身份证号扩展0起来的4保留位是0起来的5.dlc4个bit后续数据域有多少字节6数据域我真的太笨蛋了终于看明白了为啥0~64bit但是一定是8的倍数因为真的规定的很呆你就把数据域这里的每一个字节看成蛋挞对这个蛋挞必须一次性买8个一盒多了不买少了不卖必须是一整盒起步买对其他阈值都没有这样的烦恼只有它必须是整合起购必须是8个一盒乌龟的屁股我看了半天就是看不懂原来就是因为协议的规定霸王条款强卖强买所以是规定我绷不住了7我写完发现我乱掉了哈哈哈哈哈哈