搜索
bottom↓
回复: 6

关于CAN协议文档中的起始字节与起始位

[复制链接]

出0入0汤圆

发表于 2016-11-8 19:01:57 | 显示全部楼层 |阅读模式
本帖最后由 大傻师 于 2016-11-8 19:03 编辑


在搞一个电动汽车充电相关的东西,这是别人发给我的CAN通信协议文档的一部分。
以第一个数据包为例:第一个数据起始字节位置是1,起始位是8,然后数据长度16。第二个数据起始字节3,起始位24,数据长度16。然后第三个数据起始字节4,起始位32,长度2。
问题1:为什么从第8位开始存放数据?前面的一个字节就空着不用了?
问题2:第二个数据从24位开始,长16位,第三个字节应该从第40位开始啊,为什么是从第32位开始?
然后我问了一下写文档那个人,他说这是Motorola格式的,算数据位置的时候起始位前后都要算进去。比如第一个数据起始字节1,起始位8,长16。意思就是说从第8位开始,0-7位高字节,8-15位低字节。数据的实际位置是第0个字节跟第1个字节这两个字节,而不是第1个字节跟第二哥字节。这么一看倒也说得通。
搜了一下Motorola格式跟Intel格式的区别,其实就是所谓的大端跟小端而已,感觉跟他这标注方法完全没什么关系。

CAN接触的不多,之前接触的一个CAN的文档没这个问题,感觉写的很清晰,也很符合我的习惯。

这个文档看起来十分别扭。是我对CAN理解的问题,还是他这个写法的问题?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2016-11-9 00:39:04 来自手机 | 显示全部楼层
没错的,汽车上can一般用的都是Motorola格式

出0入0汤圆

发表于 2016-11-9 00:42:59 来自手机 | 显示全部楼层
64bit按照从右往左,从上往下的顺序排列后,Motorola格式是从起始位开始往左数,跨字节往上数。Intel是跨字节后往下数

出0入0汤圆

 楼主| 发表于 2016-11-9 14:14:39 | 显示全部楼层
q457344370 发表于 2016-11-9 00:42
64bit按照从右往左,从上往下的顺序排列后,Motorola格式是从起始位开始往左数,跨字节往上数。Intel是跨字 ...

也就是说如果有一个32位的数据,标注的时候是起始字节3,起始位24,数据长度32。然后数据最高的1字节在第0字节,最低的1字节在第3字节?

出0入0汤圆

发表于 2016-11-13 20:31:47 | 显示全部楼层
大傻师 发表于 2016-11-9 14:14
也就是说如果有一个32位的数据,标注的时候是起始字节3,起始位24,数据长度32。然后数据最高的1字节在第 ...

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2016-11-13 22:24:43 | 显示全部楼层
用EXCEL 把8个byte 框画出来 怎样连贯怎样弄

出0入0汤圆

发表于 2017-7-3 20:01:19 | 显示全部楼层
Motorola式的信号有4种表示方法,分别是:Motorola Forward LSB, Motorola Forward MSB, Motorola Sequential, Motorola Backward。
这里是第一种Motorola Forward LSB咯,比较尬
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 04:34

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表