求教:串口接收数据校检使用论坛中得当CRC都不对?

2020-02-01 16:22发布

已经知道是用的51单片机,通过接收串口数据知道以下几组数据:
aa c1 2a 45 42 bb         ----------------第一组
aa d1 30 32 30 30 30 31 2a 46 38 bb----------第二组
aa c7 2a 45 44 bb        ------------------第三组
AA C6 30 30 30 31 30 30 30 30 30 30 30 31 30 30 30 30 30 30 30 31 30 30 30 30 30 30 30 31 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 32 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 2A 45 45 BB   --------第四组

AA C6 30 30 30 31 30 30 30 30 30 30 30 31 30 30 30 30 30 31 30 30 30 30 30 30 30 30 30 31 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 32 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 2A 45 45 BB   ---------第五组
在论坛中和其它网站找到几种CRC校检工具,不知道何故校出来的结果各不相同,自己本身就不知道什么校检,求高手能看出来这个是用什么校检的吗?为什么CRC校检的结果各不相同呢?
几个小CRC工具打包如下:
crc.rar (728.69 KB, 下载次数: 12) 2013-1-6 21:06 上传 点击文件名下载附件
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
hisun
1楼-- · 2020-02-02 21:13
现在感觉它不象是用了CRC这样的计算方法,我调动参数发送到单片机后检测到的尾数中2a 45 XX bb会变化,现在基本上知道2a之前发除了开头第一第二字节外全都是数据,按说用了CRC这样的计算那么校检数XX重合的可能比较小,但用一个一个数据调动重合的机率比较大,单独调前一个参数或后一个参数就有很多都是重合了,从数据量最少的来说:
aa c1 2a 45 42 bb         ----------------第一组
aa c7 2a 45 44 bb        ------------------第二组
仅两组中的2a 45 XX bb 就和尝试多次发一百多个数据包的校检结尾很多都相同,加来加去还没搞清楚这家伙用的是什么计算方法。从自己目前所得到的数据来看,唯一怀疑的就只有那个XX了,难道说他们真是定义的加多少减多少这种不怕麻烦的方式啊?下面三组是我调动参数后检测到的数据:
2.1
AA C6 30 30 32 31 30 30 30 30 30 30 30 31 30 30 30 30 30 30 30 31 30 30 30 30 30 30 30 31 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 32 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 2A 45 43 BB

10.0
AA C6 30 31 30 30 30 30 30 30 30 30 30 31 30 30 30 30 30 30 30 31 30 30 30 30 30 30 30 31 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 32 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 2A 45 45 BB

1.3
AA C6 30 30 30 31 30 30 30 30 30 30 30 31 30 30 30 30 30 30 31 33 30 30 30 30 30 30 30 31 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 32 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 2A 45 44 BB
感觉跟字节有很大关系,不管是哪个只要是字节内容相同,那么2A 45 XX BB就就会相同,求问都有哪些跟字节相关的校检方式?非常感谢了!

mcu_lover
2楼-- · 2020-02-03 02:31
 精彩回答 2  元偷偷看……
eduhf_123
3楼-- · 2020-02-03 05:52
本帖最后由 eduhf_123 于 2013-1-7 22:17 编辑

协议格式:
帧头,命令,[数据,]结束符1,结束符2,校验和,帧尾

其中:
“帧头”定义为0xAA;
“命令”可能为0xCX的形式;
“数据”为可选部分;
“结束符1”为'*',即0x2A;
“结束符2”为'E',即0x45;
“校验和”为整个帧的字节校验数据,目前有点眉目了;
“帧尾”定义为0xBB。

mcu_lover 发表于 2013-1-7 21:18
呵呵,这是要逆向别人的产品么?透漏一下是什么产品,这样去研究说不定更有效,不然你就扔一堆数据出来,大家没法分析啊。
如9楼所说,希望LZ透漏更多项目信息,不然我不会公布校验数据的算法的。
hisun
4楼-- · 2020-02-03 11:07
不是逆把别人的东西,是原来的人找不到了,现在的数据范围要放大上位已经到了极限所有要从写个,就是简单地把要改的一些参数写到单片机里,因为是别人的成品不好具体讲出来,基本上就是个向电机输出电压电流范围的东西,下位机是用滴胶封闭,我也不知道对方也只有很早前的的一份烧写文件。协议格式就是如楼上所说的一样,

一周热门 更多>