请大家帮我分析下,这个串口通信是用什么方法校验的啊
串口监控到的数据如下
//只差1位的命令串对比
23 7B 53 52 41 31 31 33 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 34 31 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 3B 3E 0D
//*******2411
23 7D 53 52 41 31 31 33 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 34 31 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 3C 31 0D
//*******2412
23 7B 53 52 41 31 31 33 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 34 31 33 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 3C 30 0D
//*******2413
23 7B 53 52 41 31 31 33 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 34 31 34 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 3C 31 0D
//**********2414
23 7B 53 52 41 31 31 33 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 34 31 35 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 3C 32 0D
//********2415
23 7B 53 52 41 31 31 33 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 34 31 36 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 3C 33 0D
//********2416我看起像是CRC16,但去计算时好像不对,请大家帮我分析一下,命令中修改一位数据,倒数第2,3位就会变化,即用2个BYTE在校验.
串口监控到的数据如下
//只差1位的命令串对比
23 7B 53 52 41 31 31 33 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 34 31 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 3B 3E 0D
//*******2411
23 7D 53 52 41 31 31 33 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 34 31 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 3C 31 0D
//*******2412
23 7B 53 52 41 31 31 33 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 34 31 33 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 3C 30 0D
//*******2413
23 7B 53 52 41 31 31 33 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 34 31 34 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 3C 31 0D
//**********2414
23 7B 53 52 41 31 31 33 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 34 31 35 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 3C 32 0D
//********2415
23 7B 53 52 41 31 31 33 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 34 31 36 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 3C 33 0D
//********2416我看起像是CRC16,但去计算时好像不对,请大家帮我分析一下,命令中修改一位数据,倒数第2,3位就会变化,即用2个BYTE在校验.
看起来有点象modbus ascii 一样,会不会用的是LRC
#}SRA1130000000000000000000000002412000000000000000000000000<1
#{SRA1130000000000000000000000002413000000000000000000000000<0
#{SRA1130000000000000000000000002414000000000000000000000000<1
#{SRA1130000000000000000000000002415000000000000000000000000<2
#{SRA1130000000000000000000000002416000000000000000000000000<3
3B 3E 0D
3C 30 0D
这三组都是校验的结果