CRC / Parity / Hamming Protect 16-битная параллельная шина

У меня есть MCU на базе Cortex-M4, связанный с FPGA через 16-битный параллельный интерфейс шины памяти. По сути, FPGA ведет себя как внешняя память, отображаемая в пространство памяти MCU: MCU представляет адрес, за которым следует либо слово данных (запись), либо чтение слова, представленного FPGA (чтение).

Я хочу защитить как чтение, так и запись от ошибок передачи как при адресации, так и при записи / чтении данных. Однако я не ожидаю много битовых ошибок, так как расстояние между обеими частями короткое.

Я могу легко реализовать проверку и генерацию либо четности, кодов Хэмминга или CRC внутри FPGA. Однако сделать то же самое (проверить и сгенерировать) в UC кажется сравнительно сложнее, так как я не хочу ограничивать пропускную способность. Без обнаружения ошибок считывание и запись 16-битных слов занимает около 4-6 циклов процессора и, следовательно, довольно быстро. Следовательно, я не хочу тратить сотни циклов на защитные меры.

В конце я ищу умеренно эффективный метод обнаружения ошибок для 16-битных данных, который реализован в uC в минимально возможном количестве циклов.

3

Решение

По моему опыту, защитить параллельную шину подобным образом довольно редко. Конечно, это делается на ПК и серверном оборудовании с ECC RAM и т. Д., Но редко в микроконтроллерах.

Если ваша конкретная реализация Cortex-M4 имеет аппаратный блок CRC, вы можете передавать туда данные, предполагая, что вы можете просто добавить слово CRC в конце каждой передачи по шине. Это, вероятно, все равно замедлило бы его, по крайней мере, в 2-3 раза, поскольку каждое слово, поступающее в / из ПЛИС, также должно программно передаваться в модуль CRC.

1

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


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