我正在寻找有关编写C函数以计算LTO RFID芯片的16位CRC的一些建议。

规格说明:


  对于受16位CRC保护的命令和数据,
  生成多项式应为G(x)= x16 + x12 + x5 + 1 CRC字节
  应通过生成器处理所有字节来生成
  电路。见图F.11。寄存器R0至R15必须为1位宽
  其中R0为最低有效位,R15为最高有效位
  重要的一点。这些寄存器应在设置之前设置为(6363)。
  开始处理。字节应顺序馈入
  编码器,最低有效位在前。在字节已经被
  处理后,R0的内容为CRC0,并且应最小
  重要的一点。 R15的内容为CRC15,应为最大
  重要的一点。


但是我只是一个谦虚的自学C程序员,这对我没有任何意义。

有人可以帮我一些代码或解释公式吗?

最佳答案

ECMA 319 Standard中的图显示了如何做:

c - LTO CM CRC功能-LMLPHP

尽管包含错误。 R11和R10之间的“异或”应该从连接到R15的导线上抽出另一个输入。

输入的位从顶部输入,从第一个输入字节的最低有效位开始。在每个时钟,每个寄存器都设置为其输入。圆圈中的加号是异或门。

您可以在C中使用按位运算^&>>来实现此功能。请享用!

关于c - LTO CM CRC功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35470541/

10-11 23:13