LTO CM CRC函数

LTO CM CRC函数,c,crc,C,Crc,我正在寻找一些关于编写C函数来计算LTO RFID芯片的16位CRC的建议 说明书上说: 对于受16位CRC保护的命令和数据 生成器多项式应为G(x)=x16+x12+x5+1 CRC字节 应通过生成器处理所有字节来生成 巡回赛。见图F.11。寄存器R0至R15应为1位宽 其中R0应为最低有效位,R15应为最高有效位 有效位。在测试之前,这些寄存器应设置为(6363) 开始处理。字节应按顺序输入到 编码器,最低有效位优先。在字节被删除之后 处理后,R0的含量为CRC0,且应为最小值 有效位。R1

我正在寻找一些关于编写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程序员,这对我来说毫无意义

有人能帮我写一些代码或解释一下公式吗?

中的图表显示了该怎么做:

尽管它包含一个错误。R11和R10之间的异或应在连接到R15的导线上分接另一个输入

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


您可以在C中通过按位操作
^
&
>
实现这一点。享受吧

很抱歉,该请求与主题无关。然而,阅读CRC,可能从维基百科开始,也可能从谷歌开始。有相当多的资源可以找到,一个旧的,但很好的是“一个无痛指南CRC错误检测算法”(大写是从标题,而不是叫喊)。