You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AX.25数据包CRC16计算结果不符,求助需反转哪些字节?

AX.25数据包CRC/FCS计算匹配问题

我在处理AX.25数据包时,自行计算CRC/FCS的结果始终与数据包中的值不符。

相关数据

  • 完整比特流:1001101010000010100010001000101010101010101001100110000010000010100001101001111010011010011000100110110001101001000000111111000001110100011010000110100101110011001000000110100101110011001000000110000100100000011101000110010101110011011101000010000001101101011001010111001101110011011000010110011101100101001011100000101011000101
  • 十六进制表示:9A 82 88 8A AA A6 60 82 86 9E 9A 62 6C 69 03 F0 74 68 69 73 20 69 73 20 61 20 74 65 73 74 20 6D 65 73 73 61 67 65 2E 0A C5
  • 数据包末尾16位CRC:0000101011000101(对应十六进制 0AC5)

核心疑惑

AX.25数据包以LSB优先发送,我不确定计算CRC时是否需要反转每个字节。

已尝试的方法

  • 在线计算器计算:输入数据为9A 82 88 8A AA A6 60 82 86 9E 9A 62 6C 69 03 F0 74 68 69 73 20 69 73 20 61 20 74 65 73 74 20 6D 65 73 73 61 67 65 2E,结果与目标CRC不匹配。
  • Python crcmod库计算:代码如下:
    import crcmod
    
    input = b"\x9A\x82\x88\x8A\xAA\xA6\x60\x82\x86\x9E\x9A\x62\x6C\x69\x03\xF0\x74\x68\x69\x73\x20\x69\x73\x20\x61\x20\x74\x65\x73\x74\x20\x6D\x65\x73\x73\x61\x67\x65\x2E"
    print(input)
    
    ploy_coeff = 0b10001000000100001
    k = crcmod.Crc(poly=ploy_coeff, initCrc=0xFFFF, rev=True, xorOut=0xFFFF)
    k.digest_size = 4
    
    k.update(input)
    print(hex(k.crcValue))
    
    输出结果为0x9565,仍与目标CRC不符。

需求

如何得到正确的CRC值?计算过程中需要反转哪些字节?


内容的提问来源于stack exchange,提问作者madeuf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 08:47:47