Хтось запитав мене днями, як працює FTDI USB для послідовного UART, і я зрозумів, що не знаю. Я переглянув таблицю даних для FT232R, і блок-схема мені не дуже допомогла. Чи може хтось пояснити або зв’язати мене з гарним поясненням?
Хтось запитав мене днями, як працює FTDI USB для послідовного UART, і я зрозумів, що не знаю. Я переглянув таблицю даних для FT232R, і блок-схема мені не дуже допомогла. Чи може хтось пояснити або зв’язати мене з гарним поясненням?
Відповіді:
Фішки FTDI реалізують стек протоколу USB. Відповідальність цього обладнання полягає в тому, щоб повідомити вашому ПК, що це таке (використовуючи деяку ідентифікаційну інформацію), щоб ваш комп'ютер міг завантажувати потрібний драйвер для нього, а також керувати транзакціями з даними на ПК на ньому після - шукати кінцеві точки USB для кращого пояснення цих процесів.
Після завантаження цих драйверів це визначає набір команд, який ваш ПК може використовувати для запиту чіпа. Ця апаратура піклується про одну сторону рівняння (спілкування з вашим ПК). З іншого боку це буде деяке виділене обладнання для управління протоколом UART, що включає логіку, буфери та драйвери рядків та їх види. Згаданий раніше набір команд буде використовуватися для читання або запису на апаратне забезпечення UART. Напевно, слід зазначити, що USB-пристрої опитуються ПК, тому у випадках, коли ви використовуєте код, який базується на подіях, ваш ПК фактично проводить опитування, щоб визначити, що нові дані надійшли - це може відрізнятись від рідного серіалу порт, я б не знав.
Вищевказана логіка може бути реалізована або як виділений ASIC, або за допомогою стриженого ядра мікроконтролера, який виконує прошивку на ПЗУ. Якщо це дійсно мікроконтролерне ядро, то я думаю, що UART підключений до нього як периферійний.
Всередині є мікроконтролер USB, який говорить про власний протокол через USB (звідси потреба в драйверах) і перетворює це в "звичайні" сигнали UART і знову назад.