我需要按照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:
附件F包含以下附加信息:
第一个模板参数(Bits)显然是5,我认为TruncPoly应该是0x09(来自wikipedia),但我可以真正使用其他建议。
答案 0 :(得分:2)
经过一番搜索,我发现了这个:http://reveng.sourceforge.net/crc-catalogue/1-15.htm#crc.cat-bits.5
它提供以下信息(复制以确保它不会消失):
如果不清楚可见,相关信息是:
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;