Цитата(mantech @ Jul 8 2016, 18:28)

Задержки при 2х стороннем обмене, фрагментация в усб драйвере и еще мелкие нюансы, которых нет в реальном уарте...
По теме - в таких простейших случаях использую hex-передачу, т.е. код 0 передаю как 00 (в ASCII коде) 255 - как FF.
прием аналогичен, все символы, кроме диапазона 0-F - ошибка. Конец строки - 0x0A или 0D.
Вы пишите о мелких нюансах реализации виртуального COM-порта, а с другой стороны считаете возможным передавать данные простейшим потоком, который и протоколом то назвать язык не поворачивается.
Считаю обязательным и по крайней мере очень желательным:
1. Забыть о передаче данных без защиты хотя бы двухбайтной CRC.
2. Не заморачиваться с отдельными реализациями протоколов для Fullduplex и Halfduplex. Всегда есть большая вероятность, что понадобится использовать RS485 или другой полудуплексный интерфейс.
3. Если нет опыта в реализации, то лучше сразу смотрите в сторону стандартного протокола, например Modbus RTU. Избежите детских проблем при разработке своего протокола и не понадобится клиентам/партнерам/коллегам объяснять преимущества своего уникального протокола.
4. Ну а если всё же решите пройти по пути создания своего протокола, рекомендую прочитать про SLIP (как уже советовали), а также поиметь хотя бы малейшее представление о уровнях взаимодействия открытых систем, классификации, которая лежит в основе любых обменов данными.