Это очень зависит от оборудования!Можете ли вы гарантировать, что:
ваш UART не находится в режиме FIFO.Если это так, то несколько символов будут буферизироваться аппаратными средствами, так что вы можете попрощаться с вашим предположением о времени.
Никакая другая задача (пользовательское пространство или ядро) не прервет ваше чтение и последнийболее 1 мс?
Каждый символ приведет к другому событию чтения?Это похоже на первое предположение (без аппаратного FIFO), но на стороне водителя.
Учитывая медленную скорость передачи данных, возможно, вы можете достичь 1 и 3.
Iдумаю, что реализовать это с ОС, такой как linux, невозможно или очень неэффективно (т. е. вы тратите все свое время на обработку аппаратного обеспечения).
Этот тип «протокола» лучше обрабатывается ПЛИС или микроконтроллером.То есть с помощью демонстрационной платы pic, декодируйте ваши сообщения на плате PIC и отправляйте их на ваш процессор linux.