Есть устройство, которое щучит, допустим входное напряжение, выходные токи и т.д. Я хочу пограмотнее реализовать выдачу этой информации в внешний мир. Хочется +- реал тайм, хотя-бы укладываться с частотой в 1 кГц выдавать несколько значений. С каном все просто, там на аппаратом уровне проверяется целостность и начало/конец посылки. С uart иначе, надо самому контролировать. Сейчас реализовал следующим образом. Есть посылка первого значения, затем n величин с данными. И так по кругу
я обычно (не стоит задача энергосбережения) поступаю точно также: шлю пакеты один-за-другим с признаком начала пакета (уникальный символ, выбранный из соображений еще улучшения синхронизации UART, в теле пакета он меняется на комбинацию других символов - несколько дней назад как раз обсуждали этот простецкий протокол), фиксированной длной пакета - ну это вариабельно, просто мне не нужжно было усложнять, в конце CRC. С малой (но ненулевой) вероятностью CRC конечно не заметит повреждения пакета - вот именно для этого шлю их непрерывно - как раз примерно 1к посылок в сек и получается. Для целей управления и мониторинга всегда хватало. Для особо критичных параметров управления, если таковые есть в пакете, чтобы исключить даже случай единичного пропуска ошибки на то малое время, пока не пришел новый пакет с верным значением - прогоняю через фильтр этот параметр - мне критично важно отсутствие резких всплесков в этих вещах. Собсна все отлично работает даже тогда, когда длинная, неграмотно сделанная на соплях линия (правда везде гальва как де-факто) и пакеты не проходят CRC до 50+ % от общего числа. Ща скину обсуждение протокола если интересно.
Кароче кратко: все норм, делайте! :)