Ну да.
Посмотрим на вопрос поближе.
- для чего контроль за целосностью информации если вы не сможете определить что надо передавать при ошибке, ведь поток будет непрырывный. Прийдется передавать всю информацию заново при возникновении ошибки.
Решение: необходимое блокирование (образование блоков) информации и подальшая их нумерация.
- размер блока должен быть сопоставим с оптимальностью. Его длина должна быть оптимальной в соотношени количества информации, размера номерующего блока, и размера проверочных символов.
Решение: искать коды для обнаружение ошибок основываясь на ваше железо (в основном на разрядность системы) и на готовые оптимальные коды (искать в инете).
- обнаружение ошибок не приведет никогда к непририрывному потоку... ибо для перезапроса надо остановит основной поток.
Решение: брать за основу коды с сисправлением ошибок. Для примера код Рида-Соломона. Ибо он похож на оптимальный и в нем описаны все алгоритмы.
Одним словом - юзай код Рида-Соломона, НО!
Обрати внимание, что для его реализации необходимо очень много вычеслительных ресурсов. НО! Для реализации на PLC вопросов совсем нету, все работает на очень больших скоростях (до 10Мбит), ибо в даном случае все сделано на логике.
Есть правда готовые кодеры Рида-Соломона. Но, я их на базаре не встречал.
Там реализована ситуация след образом.
Береш кусок информации (будуший блок), пишеш в память. Дальше тупо ищеш по таблицах проверочные коды в соответствии к твоей кодовой комдинации (блока). Дальше посылаеш блок+проверочную комдинацию...
Да проще купить готовый кодер и не парить себе заднее место.
Ибо реализация на мегах ... тянет только на курсовой проджект, но в жизни никому не нада...