使用boost计算CRC-5

时间:2014-12-07 14:38:34

标签: c++ boost rfid crc

我需要按照EPC无源RFID协议标准(UHF Class 1 Gen 2 Standard)中的规定计算CRC-5校验和。我打算使用来自Boost的optimized crc computer进行计算,但是我很难将信息从EPC规范映射到crc计算机模板参数:

template < std::size_t Bits, impl_def TruncPoly,
           impl_def InitRem, impl_def FinalXor,
           bool ReflectIn, bool ReflectRem >

EPC标准中的CRC 5定义见表6.12: enter image description here

附件F包含以下附加信息: enter image description here

第一个模板参数(Bits)显然是5,我认为TruncPoly应该是0x09(来自wikipedia),但我可以真正使用其他建议。

1 个答案:

答案 0 :(得分:2)

经过一番搜索,我发现了这个:http://reveng.sourceforge.net/crc-catalogue/1-15.htm#crc.cat-bits.5

它提供以下信息(复制以确保它不会消失): enter image description here

如果不清楚可见,相关信息是:

  

width = 5 poly = 0x09 init = 0x09 refin = false refout = false xorout = 0x00   check = 0x00 name =“CRC-5 / EPC”

正如您所看到的,他们不只是提供所需的信息,而且还会全面参考他们的来源,因此如果您正在使用此链接,我建议您按照此链接进行操作。

为了回答我自己的问题,boost crc-5-epc定义变为:

boost::crc_optimal<5, 0x09, 0x09, 0x00, false, false>  crc_5_epc;