ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CAN总线数据解析(Intel格式)

2020-07-28 15:00:14  阅读:1326  来源: 互联网

标签:0000 Intel 符号 总线 100 bit 解析 ID


1.1 CAN总线输出数据表头: 解析CAN数据的相关基础知识:

1.channel:CAN通道。

2.Identifier:在某个时间点发送一条报文,该报文的ID号,将这个ID号对照解析文件,从而进行报文解析。 3.Is Standard:判断是否是标准帧。 CAN的消息帧格式有两种,分别是CAN2.0A标准帧(standard)和CAN2.0B扩展帧(extended)。 标准帧用11个bit表示ID编号(identifier),注意11bit的ID是一个有符号数,需要用偏置(offset)补偿。【扩展帧用?个bit表示ID编号,是否是有符号数?】 4.Is Data:判断帧类型是否是数据帧。 帧的类型有四种类型,分别是数据帧、远程帧、错误帧、超载帧。 远程帧:接收数据的节点可以通过发送远程帧要求源节点发送数据,远程帧没有数据场。 错误帧:是6个连续的显性位。 5. Is TX:判断是接收节点还是发送节点(TX) 6.DLC:数据长度码,占4个bit,可包括0~8Byte,本例中为8Byte。 7~14:报文(包含8个字节),十六进制表示。     1.2 解析原始数据的公式
【程序中的ui表示Ui(unsigned int)无符号整型数据,不同公司的CAN解析有各自的解析规则,需要解析文件】
CAN总线发送出来的原始数据是有符号数,需要转化为无符号数,所以需要加一个offset偏置量。factor是调整(状态参数物理值和报文数值)的比例系数
offset含义:将有符号数值(比如100 0000 0000)转化为无符号数(000 0000 0000)需要+1024。
【100 0000 0000(bin)=1024 (dec)
CAN总线传输出的数据是 100 0000 0000 ,但是第一个bit表示的是符号位,1表示负号,其真正想传输的是0(十进制的数值0),所以需要解析的时候需要+1024;
100 0000 0000 是11个bit,这是由于标准帧表示ID的bit个数是11;【那么扩展帧的偏置是29bit,偏置+2^29?】
factor含义:
按照老师程序的编写方式:解析规律= 状态值 = (报文解析出的十进制数值 + offset) * factor (有空可以再去看看一般的CAN解析公式)
【程序中的/10,/8,/100  对应的就是 factor=0.1,0.125,0.01】

标签:0000,Intel,符号,总线,100,bit,解析,ID
来源: https://www.cnblogs.com/feynmania/p/13290434.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有