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

Komentarze

  • Więcej wyjaśnienia niż implementacja strony urządzenia USB CDC? pl.wikipedia.org/wiki/USB_communications_device_class
  • @kenny, właściwie nie ' t. Używa zastrzeżonego profilu, dlatego musisz zainstalować sterowniki, aby z niego korzystać (przynajmniej w systemie Windows).
  • @avakar, używa sterowników we wszystkich systemach operacyjnych, niektóre są po prostu wstępnie załadowane.

Odpowiedź

Chipy FTDI implementują stos protokołów USB. Odpowiedzialnością tego sprzętu jest poinformowanie komputera o tym, co to jest (przy użyciu pewnych informacji identyfikacyjnych), tak aby komputer mógł załadować odpowiedni sterownik, a także zarządzanie transakcjami danych z komputerem później – sprawdź punkty końcowe 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 (komunikacją z komputerem). Drugą stroną byłoby dedykowany sprzęt do zarządzania protokołem UART, który obejmuje logikę, bufory, sterowniki linii i ich rodzaje. Wspomniany wcześniej zestaw poleceń byłby używany do odczytu lub zapisu do sprzętu UART. Należy prawdopodobnie wspomnieć, że urządzenia USB są odpytywane przez komputer, więc w przypadkach, gdy używasz kodu opartego na zdarzeniach, twój komputer faktycznie przeprowadza odpytywanie w celu ustalenia, czy nadeszły nowe dane – może to być inne niż natywny serial nie wiem.

Powyższa logika może być zaimplementowana albo jako dedykowany układ ASIC, albo przy użyciu okrojonego rdzenia mikrokontrolera, który wykonuje oprogramowanie układowe na pamięci ROM. Jeśli rzeczywiście jest to rdzeń mikrokontrolera, to ja wyobraź sobie, że UART jest podłączony do niego jako urządzenie peryferyjne.

Komentarze

  • I na ile jesteś pewien, że nie ma ' czy program jest uruchamiany? Mikrokontrolery zwykle wymagają mniej bramek logicznych niż równoważna implementacja dedykowanego sprzętu ASIC. ' Naprawdę trudno jest odróżnić mikrokontroler od układu ASIC, jeśli oprogramowanie układowe mikrokontrolera nie jest ' dostępne dla użytkownika.
  • @Ben: Wiesz co? Prawdopodobnie powinienem ldn ' nie powiedziałem tego. Odpowiedź została zredagowana z powodu mojej ignorancji. Po spojrzeniu na schemat blokowy poszedłem z moim przeczuciem, ale myślę, że i tak lepiej byłoby wyabstrahować wszelkie potencjalne szczegóły uC. Przypuszczam, że wiedzieliby o tym tylko pracownicy FTDI i przypuszczam, że sprowadza się to do kosztów podstawowych licencji w porównaniu do czasu rozwoju własnego.
  • Zwykle, gdy masz " protokół " otrzymujesz " program " do obsługi … nawet jeśli ' działa na silniku umieszczonym głęboko w układzie ASIC lub FPGA. Wyjątkiem byłyby rzeczy, w których oślepiająco duża prędkość przeważa nad złożonością, w których prawdopodobnie zobaczysz maszynę stanową lub masową równoległość. Pomiędzy nimi znajdują się silniki, w których ścieżka obliczeniowa jest zbudowana nieproporcjonalnie do logiki sterowania – coś w rodzaju pierwotnej idei procesorów DSP

Odpowiedź

Wewnątrz znajduje się mikrokontroler USB, który komunikuje się z zastrzeżonym protokołem przez USB (stąd potrzeba sterowników) i konwertuje go na „normalne” sygnały UART iz powrotem.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *