搜索
bottom↓
回复: 9

关于UART通讯的checksum计算【恢复】

[复制链接]

出0入0汤圆

发表于 2009-1-17 16:13:45 | 显示全部楼层 |阅读模式
现在用UART 通讯做一个项目。 发送命令过去以后接着发送checksum。(checksum不正确的话主机没以有反应)

我试过用异或指令,但是不行。



  ----我在样机上测出2个数的checksum,按照测出来的checksum发送就OK了。共3BYTE长的数据2位命令+1个checksum

  1)0x60,0x00,0xA1(checksum)

  2)0x0A,0x00,0xF7(checksum)

---------------------------

  上面的0xA1 和0xF7checksum是怎样计算出来的??



  谢谢!

出0入0汤圆

 楼主| 发表于 2009-1-19 13:42:00 | 显示全部楼层
xielihong 蚂蚁 真是高人。谢谢如此祥细的回复!!!

出0入0汤圆

发表于 2009-1-19 11:50:02 | 显示全部楼层
不是,经验而已



一般可能的cksum为

sum :数据和

常见的cksum

1. crc8

2. crc16

3. crc32    

// 对与crc的初始值一般为0或者-1(即0xFFFF)

4. cksum = sum

5. cksum = 0 - sum

6. cksum = (cksum 的数据类型)~(sum) + 1;即cksum 是 sum 的补码

   比如 cksum = (uchar)~(sum) + 1;

7. cksum = ~(sum)

8. 其他,可能在上面的基础上做点小改动



判断方法

1. 对于5,6,7,cksum的第一个字节高位为A-F的几率比较大

2. 对于 4 , 算算就知道了

3. 对于crc, 跟据位数用通用算法试试,crc的初始值有的用0,有的用-1,





关于串口监听,

如果用到PC机的话,直接用串口监听工具就行了,比如AccessPort(免费的,挺好用的)

如果是两个MCU的话,可以用两个PC串口的rx,来监听tx和rx数据。











   

本贴被 xielihong 编辑过,最后修改时间:2009-01-19,11:51:37.

出0入0汤圆

 楼主| 发表于 2009-1-19 09:45:02 | 显示全部楼层
以经试过15个command了,这个cksum 是【3楼】xielihong 蚂蚁

所说的。====》表示衷心的感谢!!

  我是用示波器根据UART的时序一个一个测出来的样品数据。最后才发现是我cksum部分的问题。

历时12天。现在终于可以安心的过个年了。



   再次感谢蚂蚁和各位!!



.......这个cksum 的计算方法是行业标准吗?



    

出0入8汤圆

发表于 2009-1-19 09:24:42 | 显示全部楼层
自定义的

一般是: char(dat[0] + dat[0] + ... + chksum) = 0;

不明白他们为什么结果等于1

出0入0汤圆

 楼主| 发表于 2009-1-19 08:15:13 | 显示全部楼层
谢谢-【3楼】 xielihong 蚂蚁的回复,刚试了上面2个数据是ok了。

请问一下UART的 cksum 都是这样子计算的吗?

 这个公式是怎样得来的。

   谢谢!!

出0入0汤圆

发表于 2009-1-17 17:01:02 | 显示全部楼层
帧格式为

data[0..1] cksum



cksum = 0 - (data[0]+data[1]) + 1;





本贴被 xielihong 编辑过,最后修改时间:2009-01-17,17:01:16.

出0入0汤圆

 楼主| 发表于 2009-1-17 16:55:08 | 显示全部楼层
可以说是在破解,因为我之前不是负责这个案子的。

现在是想学习。那位外国的同事只给了command资料。

我也不愿低声下气向他要。呵呵

出0入0汤圆

发表于 2009-1-17 16:29:09 | 显示全部楼层
有足够多的样本才能分析,你是在破解别人的产品协议吧?

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-5-8 20:04

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

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