Jak działa układ FTDI?

20

Ktoś kiedyś zapytał mnie, jak działa FTDI USB na szeregowy UART, i zdałem sobie sprawę, że nie wiem. Spojrzałem na arkusz danych FT232R i schemat blokowy tak naprawdę mi nie pomógł. Czy ktoś może mi wyjaśnić lub powiązać z dobrym wyjaśnieniem?

aloishis89
źródło
3
Więcej wyjaśnień niż implementacja po stronie urządzenia USB CDC? en.wikipedia.org/wiki/USB_communications_device_class
kenny
1
@kenny, w rzeczywistości tak nie jest. Używa zastrzeżonego profilu, dlatego musisz zainstalować sterowniki, aby z niego korzystać (przynajmniej w systemie Windows).
avakar
2
@avakar, używa sterowników na wszystkich systemach operacyjnych, niektóre tylko fabrycznie załadowane.
Kortuk

Odpowiedzi:

15

Układy FTDI implementują stos protokołu USB. Obowiązkiem tego sprzętu jest poinformowanie komputera, co to jest (przy użyciu niektórych informacji identyfikacyjnych), tak aby komputer mógł załadować odpowiedni sterownik, a także zarządzanie transakcjami danych z komputerem w późniejszym terminie - wyszukiwanie punktów końcowych USB dla lepszego wyjaśnienia tych procesów.

Po załadowaniu tych sterowników będzie to określać zestaw poleceń, których komputer może użyć do wysłania zapytania do układu. Ten sprzęt zajmuje się jedną stroną równania (komunikacja z komputerem). Z drugiej strony byłby to dedykowany sprzęt do zarządzania protokołem UART, który obejmuje logikę, bufory i sterowniki linii i inne. Wspomniany wcześniej zestaw poleceń będzie używany do odczytu lub zapisu na sprzęcie UART. Prawdopodobnie należy wspomnieć, że urządzenia USB są odpytywane przez komputer, więc w przypadkach, w których korzystasz z kodu opartego na zdarzeniach, komputer faktycznie wykonuje odpytywanie w celu ustalenia, że ​​przybyły nowe dane - może to być inny niż natywny serial port, nie wiedziałbym.

Powyższą logikę można zaimplementować jako dedykowany układ ASIC lub za pomocą zredukowanego rdzenia mikrokontrolera, który wykonuje oprogramowanie układowe na pamięci ROM. Jeśli rzeczywiście jest to rdzeń mikrokontrolera, to wyobrażam sobie, że UART jest do niego podłączony jako urządzenie peryferyjne.

Jon L.
źródło
A na ile jesteś pewien, że nie jest wykonywane oprogramowanie układowe? Mikrokontrolery zwykle wymagają mniejszej liczby bramek logicznych niż równoważna implementacja dedykowanego sprzętu ASIC. Naprawdę trudno jest odróżnić mikrokontroler od ASIC, jeśli oprogramowanie układowe mikrokontrolera nie jest dostępne dla użytkownika.
Ben Voigt
@Ben: Wiesz co? Prawdopodobnie nie powinienem był tego mówić. Odpowiedź została zredagowana z powodu mojej niewiedzy. Po przejrzeniu schematu blokowego przeszedłem do założenia, ale przypuszczam, że lepiej byłoby wyodrębnić wszelkie potencjalne szczegóły dotyczące UC. Przypuszczam, że tylko ci z FTDI wiedzieliby i przypuszczam, że sprowadza się to do podstawowych kosztów licencjonowania w porównaniu z czasem rozwoju własnego.
Jon L
1
Zwykle, gdy masz „protokół”, kończy się to „programem” do obsługi go ... nawet jeśli działa na silniku zakopanym głęboko w ASIC lub FPGA. Wyjątkiem byłyby rzeczy, w których oślepiająco duża prędkość przebija złożoność, w której prawdopodobnie zobaczysz maszynę stanu lub masywną równoległość. Pomiędzy nimi znajdują się silniki, w których ścieżka obliczeniowa jest zbudowana nieproporcjonalnie do logiki sterowania - coś w rodzaju oryginalnej koncepcji procesorów DSP
Chris Stratton
2

Wewnątrz znajduje się mikrokontroler USB, który odczytuje zastrzeżony protokół przez USB (stąd potrzeba sterowników) i przekształca go w „normalne” sygnały UART iz powrotem.

Martin Thompson
źródło