Emuliert UART über USB
Weiß jemand, ob es möglich ist, zu emulieren UART (einfache serielle senden und empfangen) über USB? Wie würde dies werden erreicht?
Fand ich diesen link auf der Microchip-website, aber es ist nicht sehr entgegenkommend.
http://www.microchip.com/forums/m522571-print.aspx
Irgendwelche Ideen? Danke.
- Definitiv mit einem FTDI ist der beste Weg zu gehen.
- FTDI? Bitte erklären. Mein manager wird verlangt, dass ich konfigurieren Sie den integrierten USB-Peripheriegerät zum Betrieb als UART. So weit wie ich kann sagen, dies ist nicht möglich, aber er besteht darauf, dass es ist.
- FTDI-chips wandeln UART auf USB. Also intern würde man nur normale UART-Peripheriegerät, sondern extern anschließen mit USB. Auf PC-Seite, erhalten Sie einen virtuellen COM-port, so dass Sie mit ihm interagieren können wie eine normale serielle Schnittstelle. Dieser ist sehr sauber und einfach und die Art und Weise, jeder tut es. Ich kann mir nicht vorstellen, warum Sie wirklich brauchen, um verwenden Sie das USB-Peripheriegerät an Ihren chip.
- Haben Sie vielleicht Google würde es bevor Sie Fragen: ftdichip.com
- Gründe für die Verwendung des on-chip-Peripherie: Für die Serienfertigung, weniger Kosten und weniger Platzbedarf auf der platine. Auf der anderen Seite für niedrige Volumen und one-off, es sei denn, Sie haben bereits eine USB-VID und code-signing-Zertifikat, dass es nicht kosteneffizient ist, und führt eine hohe CPU-Aufwand - nur den Anschluss des USB-Kabels mit einem PC generiert einen 1ms interrupt-rate und mehr bei der Datenübertragung.
- Welche mikrocontroller verwendest du? Und welche toolchain? Dies kann haben einen Einfluss auf die Verfügbarkeit der vorhandenen Bibliotheken, Beispiele und app-notes.
InformationsquelleAutor Jim Fell | 2012-10-01
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Grundsätzlich haben Sie zwei Möglichkeiten zu emulieren UART über USB:
Verwendung eines bestehenden Produkts. Die Firma FTDI bietet bekannten und soliden UART-USB-bridge-chips, z.B. FT230X. Pro: Sie brauchen keine detaillierte Kenntnis über USB. Nachteile: Teuer, wenn Sie in die Massenproduktion. Zusätzliche hardware, benötigt zusätzliche Energie.
Umsetzung der USB-Geräteklasse "Communication Device Class" (CDC). Die Spezifikation der CDC ist von der USB.org finden Sie hier. Pro: Billig in der Massenproduktion (wenn dein Mikrocontroller hat USB on board). Con: Sie brauchen detaillierte Kenntnisse über USB.
Sie implementieren müssen, um die device-stack als ein CDC-ACM-Gerät (auch bekannt als Virtuellen COM-port oder VCP). Die meisten Anbieter von mikrocontroller mit USB-Unterstützung haben, Beispiel-code oder den app-notes.
Da, sucht Ihr Gerät wie ein COM-port soweit es Windows betrifft. Auf dem Gerät beenden, erhalten Sie rohe Blöcke von Daten übertragen. Eine geeignete Abstraktionsebene implementiert werden kann, für beide UART-und USB-Schnittstellen geben, dann die gleiche Schnittstelle, falls erforderlich.
Eine gotcha ist, dass die USB-Geräte benötigen eine Verkäufer ID zugeordnet, die durch das USB Implementers Forum, die an einer $5000 Gebühr(richtig 23. Juli 2016). Wenn du gehst, lassen Sie Ihre Gerät in freier Wildbahn, die Sie wirklich benötigen, wenn Ihr Gerät wird erkannt und korrekt Verhalten mit anderen Geräten. Einige mikrocontroller-Anbieter ermöglichen die Nutzung Ihrer vendor-ID für eine Teilmenge der Produkt-IDs für eine Kostenlose oder eine kleinere Gebühr, aber Sie können das nur tun, wenn Sie wurden Kauf erhebliche Mengen von Geräten aus Ihnen.
Weiteres Problem ist, dass, während auf OSX oder Linux zu einem CDC/ACM anerkannt wird, ohne weitere Treiber, Windows ist mehr wählerisch und benötigt eine INF-Datei zu verknüpfen, das spezifische USB-Vendor-und Produkt-ID des usbser.sys -Treiber. Dann kommen Sie in die ganze Welt der Treibersignierung, die unerlässlich ist, wenn Sie mit Windows Vista 64, oder eine beliebige version von Windows 7. Eine code-signing Signatur wird auch Sie Geld Kosten. Wenn Ihr Lieferant zur Verfügung gestellt hat. B. VCP-code, Sie werden auch wahrscheinlich einen signierten Treiber. STMicroelectronios die STM32 VCP Beispiel ist sogar WHQL-zertifiziert, so kann erworben werden automatisch über Windows Update.
Also das Fazit ist, dass für Experimente, Sie können es tun, wenn Ihr Lieferant bereits mit code und einen signierten Treiber (oder Sie sind nicht mit Windows), sondern um die Bereitstellung eines Produkts, müssen Sie eine Hersteller-ID und einem code-signing-Zertifikat. Es ist ein bisschen wie ein Minenfeld, um ehrlich zu sein.
Einfacher Ansatz ist die Verwendung eines FTDI-USB<->Seriell-chip. Dies ist besonders nützlich für einen microcontroller ohne USB-controller, aber die Datenübertragungsrate wird begrenzt durch die Mikro-und/oder die FTDI ' s UART-Schnittstelle statt USB-Geschwindigkeit. Einen FTDI-chip benutzt werden kann, ist mit FTDI die VID/PID oder Sie können passen Sie es mit Ihrem eigenen VID/PID. Die Individualisierung bringt Sie zurück in benötigen, zu erwerben ein VID und ein Signaturzertifikat, aber kann Ihr Gerät eindeutig zu identifizieren, anstatt als " generic serial port.