打印

PIC和PC通信

[复制链接]
1829|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
请教个问题
我用串口工具看见PC和PIC单片机通信时的数据,
有8字节,前面7个应该是信息位,最后一位据说是效验位,那么这个效验位怎么算出来的呢? 是CRC效验吗? 比如向单片机发出DE DE 81 01 02 61 37 D7   
                                  单片机返回的是DE DE 81 01 05 61 37 C1
这个是怎么算出来的呢?谁能帮我看一下,谢谢。
沙发
hjs1618| | 2012-7-14 11:22 | 只看该作者
CRC好象有一个算法

使用特权

评论回复
板凳
xfgood3872|  楼主 | 2012-7-14 11:28 | 只看该作者
2# hjs1618
这个数据是实测的,不知道是不是CRC,可能不是呢?  我用CRC8算了一下 不对啊,取的是8  5  4  0  和+1的算法,多项式指数是X8+X5+X4+1

使用特权

评论回复
地板
Ryanhsiung| | 2012-7-14 12:10 | 只看该作者
CRC8
X8+X2+X1+1两个我都演算过了!!

使用特权

评论回复
5
xfgood3872|  楼主 | 2012-7-14 13:28 | 只看该作者
本帖最后由 xfgood3872 于 2012-7-14 13:29 编辑

4# Ryanhsiung
你好,恩~   可以把您的计算工具发给我吗?
我在线的。 [email=xfgood3872@126]xfgood3872@126[/email].com

使用特权

评论回复
6
xfgood3872|  楼主 | 2012-7-14 13:39 | 只看该作者
4# Ryanhsiung
我在线等您啊。

使用特权

评论回复
7
xfgood3872|  楼主 | 2012-7-14 13:55 | 只看该作者
4# Ryanhsiung
我在网上看了一点CRC效验的**,不是太懂,比如这段话:

除了多项式,初始值的差异外,有的实现采用了MSB first,有的则是LSB first,就是所谓的reflection。另外有的实现在结果上还进行异或操作,高低字节对调等操作。这样下来都叫做CRC-CCITT的不同实现会有多种完全不同的结果。
  链接的CRC计算器里面所使用的的算法初始值,最终异或都为0,MSB first(没有reflection),没有高低字节对调。Linux Kernel的算法则使用了初始值0xFFFF,LSB first。如果是表格实现的话,你会发现第一种实现的table[1]=0x1021,就是CCITT的多项式值,而Linux实现的table[1]=0x1189,这个值是哪里来的呢?原来Linux实现的table[0x80]=0x8408,即reversed CCITT多项式,而0x80正是1的reflection。

里面的MSB LSB 和CRC-CCITT都是什么呢? 能说下吗?  谢谢。

使用特权

评论回复
8
Ryanhsiung| | 2012-7-14 15:32 | 只看该作者
4# Ryanhsiung
你好,恩~   可以把您的计算工具发给我吗?
我在线的。 xfgood3872@126.com
xfgood3872 发表于 2012-7-14 13:28


已发送!

使用特权

评论回复
9
Ryanhsiung| | 2012-7-14 15:33 | 只看该作者
4# Ryanhsiung  
我在网上看了一点CRC效验的**,不是太懂,比如这段话:

除了多项式,初始值的差异外,有的实现采用了MSB first,有的则是LSB first,就是所谓的reflection。另外有的实现在结果上还进行异或操作 ...
xfgood3872 发表于 2012-7-14 13:55

我也看不懂,使用CRC一定要注意其多项式!!

使用特权

评论回复
10
Ryanhsiung| | 2012-7-14 15:36 | 只看该作者
工具是上次做带PEC SMBUS通信编写的小工具!!
  算法是借鉴HOT大叔的。

使用特权

评论回复
11
xfgood3872|  楼主 | 2012-7-14 18:16 | 只看该作者
10# Ryanhsiung
厉害。  我不会写,从网上下了个程序不会用,编译老是出错。 这个是用C++写的吗?

使用特权

评论回复
12
yanghangci| | 2012-7-15 11:06 | 只看该作者
看看热闹

使用特权

评论回复
13
yanghangci| | 2012-7-15 11:07 | 只看该作者
看看热闹

使用特权

评论回复
14
Ryanhsiung| | 2012-7-16 08:19 | 只看该作者
10# Ryanhsiung
厉害。  我不会写,从网上下了个程序不会用,编译老是出错。 这个是用C++写的吗?
xfgood3872 发表于 2012-7-14 18:16


没有,用DELPHI写的,C++好久没用了!

使用特权

评论回复
15
xfgood3872|  楼主 | 2012-7-16 16:04 | 只看该作者
14# Ryanhsiung C++用处大吗?   我刚学单片机,不知道怎么学好,哎。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

350

帖子

1

粉丝