Как работает последовательная консольная связь в микроконтроллере? - PullRequest
0 голосов
/ 08 апреля 2020

Мои сомнения касаются физического уровня связи, я знаю из практики, что для использования, например, тератерма для связи с MCU, просто включите и настройте периферийное устройство UART, а затем подключите через USB микроконтроллер и вуаля.

Но для меня пока не имеет смысла, что если USB подключается к DN и DP, а UART использует RX и TX, как хост эффективно взаимодействует с микроконтроллером?

Ответы [ 2 ]

5 голосов
/ 08 апреля 2020

Существует две возможности.

  1. Вы подключаетесь к мосту USB / UART, например, к устройствам от FTDI или Prolifi c,
  2. Микроконтроллер имеет контроллер устройства USB и USB-стек, реализующий класс устройства CDC / ACM (виртуальный COM-порт).

В первом случае чип моста представляет устройство CDC / ACM хосту и обменивается данными с UART, подключенным к микроконтроллер UART. Управление вводом / выводом, такое как установка скорости передачи, не влияет на соединение USB, скорее оно используется для настройки соединения UART.

enter image description here

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. Вы увидите, что обмениваются намного больше, чем просто «последовательные» данные вашего приложения.

1 голос
/ 08 апреля 2020

Вам нужно использовать интерфейс uart-usb I C, который может конвертировать uart в usb (и наоборот).

...