Jemand hat mich neulich gefragt, wie ein FTDI USB zu seriellem UART funktioniert, und mir wurde klar, dass ich es nicht wusste. Ich habe mir das Datenblatt für den FT232R angesehen und das Blockdiagramm hat mir nicht wirklich geholfen. Kann mir jemand eine gute Erklärung erklären oder verlinken?

Kommentare

  • Eher eine Erklärung als die Geräteseite eines USB-CDC-Geräts zu implementieren? de.wikipedia.org/wiki/USB_communications_device_class
  • @kenny, tatsächlich nicht ' t. Es wird ein proprietäres Profil verwendet, weshalb Sie Treiber installieren müssen, um es zu verwenden (zumindest unter Windows).
  • @avakar, es werden Treiber auf allen Betriebssystemen verwendet, einige sind nur vorinstalliert.

Antwort

Die FTDI-Chips implementieren den USB-Protokollstapel. Die Verantwortung dieser Hardware besteht darin, Ihrem PC mit Hilfe einiger Identifikationsinformationen mitzuteilen, was es ist, damit Ihr Computer den richtigen Treiber dafür laden kann, und anschließend die Datentransaktionen mit dem PC zu verwalten – suchen Sie nach USB-Endpunkten zur besseren Erklärung dieser Prozesse.

Sobald diese Treiber geladen sind, wird ein Befehlssatz angegeben, mit dem Ihr PC den Chip abfragen kann. Diese Hardware kümmert sich um eine Seite der Gleichung (Kommunikation mit Ihrem PC). Die andere Seite wäre eine dedizierte Hardware zur Verwaltung des UART-Protokolls, die Logik, Puffer und Leitungstreiber sowie die Sortierungen enthält. Der zuvor erwähnte Befehlssatz wird zum Lesen oder Schreiben von der UART-Hardware verwendet. Es sollte wahrscheinlich erwähnt werden, dass USB-Geräte vom PC abgefragt werden. In Fällen, in denen Sie ereignisbasierten Code verwenden, führt Ihr PC tatsächlich eine Abfrage durch, um festzustellen, ob neue Daten eingetroffen sind. Dies kann sich von einer nativen Seriennummer unterscheiden Port, würde ich nicht wissen.

Die obige Logik kann entweder als dedizierter ASIC oder unter Verwendung eines abgespeckten Mikrocontrollerkerns implementiert werden, der Firmware auf ROM ausführt. Wenn es sich tatsächlich um einen Mikrocontrollerkern handelt, dann ich Stellen Sie sich vor, der UART ist als Peripheriegerät mit ihm verbunden.

Kommentare

  • Und wie sicher sind Sie, dass es keine ' Wird ein Firmware-Programm ausgeführt? Mikrocontroller benötigen normalerweise weniger Logikgatter als die entsprechende Implementierung einer dedizierten ASIC-Hardware. ' Es ist wirklich schwierig, einen Mikrocontroller von einem ASIC zu unterscheiden, wenn Die Firmware des Mikrocontrollers ist nicht ' für Benutzer zugänglich.
  • @Ben: Weißt du was? Ich sollte es wahrscheinlich tun ldn ' habe das nicht gesagt. Die Antwort wurde aufgrund meiner Unwissenheit bearbeitet. Nachdem ich mir das Blockdiagramm angesehen hatte, ging ich von meiner Bauchannahme aus, aber ich nehme an, es wäre besser, mögliche uC-Details trotzdem zu abstrahieren. Ich nehme an, nur die Mitarbeiter von FTDI würden es wissen, und ich nehme an, dass es auf die Kernlizenzkosten im Vergleich zur internen Entwicklungszeit ankommt.
  • Normalerweise, wenn Sie eine " haben Protokoll " Sie erhalten ein " Programm ", um damit umzugehen … sogar wenn es ' auf einem Motor läuft, der tief in einem ASIC oder FPGA vergraben ist. Die Ausnahme wären Dinge, bei denen unglaublich hohe Geschwindigkeit die Komplexität übertrifft, bei denen Sie wahrscheinlich eine Zustandsmaschine oder massive Parallelität sehen. Dazwischen befinden sich Engines, bei denen der Rechenpfad überproportional zur Steuerlogik aufgebaut ist – eine Art ursprüngliche Idee hinter DSP-Prozessoren

Antwort

Dort befindet sich ein USB-Mikrocontroller, der ein proprietäres Protokoll über USB kommuniziert (daher Treiber erforderlich) und dieses in „normale“ UART-Signale und wieder zurück konvertiert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.