Как работает чип FTDI?

20

Кто-то спросил меня на днях, как работает FTDI USB для последовательного UART, и я понял, что не знаю. Я посмотрел таблицу данных для FT232R, и блок-схема мне не помогла. Кто-нибудь может объяснить или связать меня с хорошим объяснением?

aloishis89
источник
3
Больше объяснения, чем это реализует сторона устройства USB CDC? en.wikipedia.org/wiki/USB_communications_device_class
Кенни
1
@ Кенни, на самом деле это не так. Он использует собственный профиль, поэтому для его использования необходимо установить драйверы (по крайней мере, для Windows).
Авакар
2
@avakar, он использует драйверы на всех ОС, некоторые просто поставляются с предустановленной версией.
Кортук

Ответы:

15

Чипы FTDI реализуют стек протоколов USB. Ответственность за это оборудование заключается в том, чтобы сообщать вашему ПК, что это такое (используя некоторую идентификационную информацию), чтобы ваш компьютер мог загрузить для него подходящий драйвер, а также управлять транзакциями передачи данных с ПК после этого - искать конечные точки USB для лучшего объяснения этих процессов.

После загрузки этих драйверов будет указан набор команд, который ваш ПК может использовать для запроса чипа. Это оборудование заботится об одной стороне уравнения (связь с вашим ПК). Другой стороной этого было бы какое-то выделенное оборудование для управления протоколом UART, которое включает логику, буферы и линейные драйверы и тому подобное. Упомянутый ранее набор команд будет использоваться для чтения или записи в оборудование UART. Вероятно, следует упомянуть, что USB-устройства опрашиваются ПК, поэтому в тех случаях, когда вы используете код, основанный на событиях, ваш ПК фактически проводит опрос, чтобы определить, что поступили новые данные - это может отличаться от серийного серийного номера. порт, я бы не знал.

Вышеприведенная логика может быть реализована либо как выделенная ASIC, либо с помощью урезанного ядра микроконтроллера, которое выполняет встроенное программное обеспечение в ПЗУ. Если это действительно ядро ​​микроконтроллера, то я представляю, что UART подключен к нему как периферийное устройство.

Джон Л
источник
И насколько вы уверены, что программа прошивки не выполняется? Для микроконтроллеров обычно требуется меньше логических элементов, чем для эквивалентной аппаратной реализации ASIC. Очень сложно отличить микроконтроллер от ASIC, если микропрограмма микроконтроллера недоступна для пользователя.
Бен Фойгт
@Ben: Знаете что? Я, наверное, не должен был этого говорить. Ответ отредактирован по незнанию. После того, как я посмотрел на блок-схему, я придерживался своего внутреннего предположения, но полагаю, что в любом случае было бы лучше абстрагировать любые потенциальные детали ОК. Я полагаю, что только те из FTDI знали бы об этом, и я полагаю, что это сводится к основным затратам на лицензирование по сравнению со временем разработки дома.
Джон Л
1
Обычно, когда у вас есть «протокол», вы получаете «программу» для его обработки ... даже если он работает на движке, скрытом глубоко в ASIC или FPGA. Исключение составляют вещи, где ослепительно высокая скорость превосходит сложность, где вы, скорее всего, увидите конечный автомат или массовый параллелизм. Между ними находятся двигатели, в которых путь вычислений построен пропорционально логике управления - своего рода оригинальная идея DSP-процессоров
Крис Страттон,
2

Внутри есть микроконтроллер USB, который передает собственный протокол через USB (отсюда и необходимость в драйверах) и преобразует его в «нормальные» сигналы UART и обратно.

Мартин Томпсон
источник