Существует две возможности.
- Вы подключаетесь к мосту USB / UART, например, к устройствам от FTDI или Prolifi c,
- Микроконтроллер имеет контроллер устройства USB и USB-стек, реализующий класс устройства CDC / ACM (виртуальный COM-порт).
В первом случае чип моста представляет устройство CDC / ACM хосту и обменивается данными с UART, подключенным к микроконтроллер UART. Управление вводом / выводом, такое как установка скорости передачи, не влияет на соединение USB, скорее оно используется для настройки соединения UART.
In В мостовой схеме микросхема может быть на микроплате или в кабеле USB / последовательного адаптера. Более того, внутренняя микросхема представляет собой микроконтроллер со стеком устройств CDC / ACM.
В отличие от, скажем, RS-232, USB не является одноранговым полнодуплексным соединением и не является просто электрическим соединением; USB требует довольно сложных устройств и хост-контроллеров и более аналогичен шине устройств, такой как PCI, чем последовательным соединениям UART. Устройство класса CDC / ACM подтверждает указанный протокол c, чтобы позволить «виртуальному» UART появляться на хосте. UART, который вы видите на P C, эмулируется и физически не является UART на мосту.
Физическое фактическое USB-соединение представляет собой соединение «ведущий-ведомый», с данными и командами управления вводом / выводом (такими как скорость передачи данных и управление потоком), отправляемыми в пакетах USB, для распаковки, интерпретации и передачи на прикладной уровень. через USB-стек CDC / ACM. При таком устройстве устройство , выступающее в качестве подчиненного, не может инициировать обмен; скорее, host непрерывно опрашивает устройство, на которое оно может вернуть пакет, содержащий его данные "tx". Опрос и скорость передачи данных USB достаточно быстрые, чтобы позволить симплексному обмену «главный-подчиненный» эмулировать полнодуплексное соединение UART, с более высокой пропускной способностью, чем обычно может быть достигнуто типичным реальным UART, и, конечно, быстрее, чем физический RS-xxx подключение.
Вы можете получить представление о том, как все это работает, наблюдая обмен необработанными данными USB с помощью такого инструмента, как WireShark. Вы увидите, что обмениваются намного больше, чем просто «последовательные» данные вашего приложения.