Мне нужен (чтобы спроектировать?) Протокол для связи между микропроцессорным регистратором данных и ПК (или аналогичным) через последовательное соединение.Не будет никаких линий управления, единственный способ, которым устройство / ПК может узнать, связаны ли они, по данным, которые они получают.Соединение может быть разорвано и восстановлено в любое время.Последовательное соединение дуплексное.(8n1)
Проблема в том, какие пакеты использовать, коды подтверждения связи или тому подобное.Микропроцессор чрезвычайно ограничен в возможностях, поэтому протокол должен быть максимально простым.Но регистратор данных будет иметь ряд функций, таких как планирование журналов, загрузка журналов, настройка частоты дискретизации и т. Д., Которые могут быть активными одновременно.
Моя раздутая версия будет выглядеть следующим образом: для обоих данныхрегистратор и ПК, фиксированный размер пакета 16 байтов с простой 1-байтовой контрольной суммой, возможно, 0x00 байт в начале / конце для упрощения распознавания пакетов, и один байт, обозначающий тип данных в пакете (команда / настройки /данные журнала / значения в реальном времени и т. д.).Для синхронизации ПК может отправлять уникальный пакет «привет / сброс» (например, из всех нулей), который при обнаружении устройством затем возвращается для подтверждения синхронизации.
Буду признателен за любые комментарии по этому подходу и приветствую любые другие предложения, а также общие замечания.
Замечания: я думаю, что мне придется свернуть свои собственные, поскольку мне это нужно длябыть максимально легким.Я буду брать кусочки из протоколов, предложенных в ответах, а также некоторые другие, которые я нашел ... Слип , PPP и HLDC .