Рассчитать CRC-5, используя повышение

Мне нужно рассчитать контрольную сумму CRC-5, как указано в стандарте пассивного RFID-протокола EPC (UHF Class 1 Gen 2 Standard). Я намерен использовать оптимизированный компьютер CRC от Boost для расчетов, но мне трудно сопоставить информацию из спецификации EPC с параметрами компьютерного шаблона crc:

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

Определение CRC 5 из стандарта EPC можно найти в таблице 6.12:
введите описание изображения здесь

Приложение F содержит эту дополнительную информацию:
введите описание изображения здесь

Первый параметр шаблона (биты), очевидно, 5, и я предполагаю, что TruncPoly должен быть 0x09 (из википедия), но я мог бы действительно использовать некоторые советы для отдыха.

1

Решение

После еще нескольких поисков я нашел это: 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;
2

Другие решения


По вопросам рекламы [email protected]