串口通讯校验和问题(100分)

yangxiaoma123   2007-12-3 13:04 楼主
  格式:      ESC+ID+COMMAND+DATA+CHECKSUM+END(ASCII 码传送)
  说明:      
  名称         内容     长度(BYTE)  说明
  ESC         0x1B      1
  ID          序列号    11         FFFFFFFFFFF或用户设定
  COMMAND     命令       1
  DATA        数据                  由程序员定      
  CHECKSUM    校验和     2         CHECKSUM为除ESC与END以及本身之外的所有之和
  END         0x05      1                    

   ESC                ID                COMMAND  DATA  CHECKSUM  END
    1B |46 46 46 46 46 46 46 46 46 46 46| 52|  |35 34 |05

(此处 DATA为空)

请问CHECKSUM 如何计算出来的,

回复评论 (12)

  CHECKSUM都是自己规定的,但是楼主的CHECKSUM规则明显和数据不符(和为0x0354)。
  我猜楼主是接收到数据,要反推CHECKSUM算法吧?那1组数据肯定是不够了。多发几组(比如把其中一个0x46改为0x45),自己检测一下,类似于矩阵或者说解方程那样,应该也不是太复杂吧。
点赞  2007-12-3 13:53
ding
点赞  2007-12-3 17:06
一般人不会去用非常偏的算法的,

不是加和,那试试异或和校验,要不就是CRC

也就常用的那么几种,呵呵

点赞  2007-12-3 17:14
35   34

对应的值是 54


ID :aaaaaaaaaaa
把前面的值也换成这样的,把前面的都加起来,然后取个反,只要最低8个bit 看值得不是54对应的hex进制的 值

点赞  2007-12-3 19:20
是不是
ID + COMMAND 后是 354,只取末尾 54,扩展成 ASCII码 35 34.
嗯,很像某plc的Frame Check Sum
点赞  2007-12-4 14:09
1B |46 46 46 46 46 46 46 46 46 46 46 44 |34 36 | 05

1B |30 30 30 30 30 30 30 30 30 30 30 52 |36 32 | 05

1B |30 30 30 30 30 30 30 30 30 30 31 52 |36 33 | 05

1B |30 30 30 30 30 30 30 30 30 30 32 52 |36 34 | 05

1B |30 30 30 30 30 30 30 30 30 30 30 44 |35 34 | 05

1B |30 30 30 30 30 30 30 30 30 30 31 44 |35 35 | 05


这是使用ACCESSPORT 截获的数据
点赞  2007-12-4 15:55
1B   ?30   30   30   30   30   30   30   30   30   30   30   52   ?36   32   ?   05

1B   ?30   30   30   30   30   30   30   30   30   30   31   52   ?36   33   ?   05

1B   ?30   30   30   30   30   30   30   30   30   30   32   52   ?36   34   ?   05


从这个三组看,应该是我说的方法 嘿嘿,加和后,取反+1,与0xff  
点赞  2007-12-4 19:15
还有哪位高手帮我分析一下
点赞  2007-12-5 13:33
提示: 作者被禁止或删除 内容自动屏蔽
点赞  2007-12-5 21:51
1B   ?46   46   46   46   46   46   46   46   46   46   46   58  ?35   41   ?   05


和为(0x035A)

ascii码 应该是 35 65 吧
点赞  2007-12-6 09:23
楼主,65是十进制的ASCII码,十六进制的时候,这个数是0x41。。。。。。。
点赞  2007-12-6 09:33
OMG,终于搞明白了,谢谢各位.
点赞  2007-12-6 10:03
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复