Seriell zu USB Konverter

Ich habe ein DSP-Kit mit serieller Verbindung. Da ich auf meinem Laptop arbeite, habe ich keinen Zugriff auf eine serielle Schnittstelle. Ich würde also einen Seriell-zu-USB-Konverter benötigen

  1. Wie erstelle ich einen Seriell-zu-USB-Konverter?
  2. Funktioniert es bei jeder Baudrate usw. oder ist es fest?
  3. Kann ich über Hyperterminal, Teraterm, Minicom usw. auf USB zugreifen oder benötige ich eine andere Software?
  4. Irgendwelche anderen Überlegungen?

Danke.

Antworten unten.. Ich wäre sehr unterschiedlich von USB-Adaptern von Prolific, ich habe schreckliche Erfahrungen mit ihnen gemacht. Sie verlieren Bytes und Treiber sind fehlerhaft. FTDI ist im Allgemeinen eine sichere Wahl.
in Bezug auf die Marke Prolific, die @Frank erwähnt hat - ich hatte Probleme mit diesen bei höheren Raten, z. B. 115200, so dass sie mit einigen Geräten spielen und mit anderen nicht, aber bei 9600 habe ich kein Problem gesehen. Und um fair zu sein, ich habe gesehen, dass auch viele andere Geräte bei 115200 lückenhaft wurden.
So wahr @Frank! Der Qualitätsbereich von schlecht bis anständig ist erstaunlich für ein scheinbar einfaches Gerät. Guter Rat, bei FTDI zu bleiben.

Antworten (5)

A1: Die bei weitem schnellste und einfachste Methode und möglicherweise die gleich beste ist der Kauf eines vorhandenen USB-zu-Seriell-Konverters. Ich habe diese bei ebay für unter 5 $ beworben gesehen und das waren wahrscheinlich nicht die billigsten. Hier sind die eBay-Angebote von USB-zu-RS232-Konvertern - es lohnt sich, sie sich anzusehen, um das verfügbare Sortiment (und die Preise) zu sehen.

Wow! - Hier ist einer für 3 US-Dollar, einschließlich Versand in die USA aus Hongkong .

OK - Schecks - Sie befinden sich in Mumbai, Indien - Schecks - 1,99 $ nach Indien, kostenloser Versand!. Für so wenig werden Sie keinen bauen - wahrscheinlich um den Faktor 10 bis 20!

Hier sind ein paar Dutzend Fotos und Links zu Seriell-zu-USB-Konvertern - bewegen Sie den Mauszeiger über die Bilder, um weitere Informationen zu erhalten (auf der oben verlinkten Seite - nicht auf dem Bild unten) - klicken Sie, um zur entsprechenden Website zu gelangen. Ein paar Beispiele - viel Auswahl !!! -

Geben Sie hier die Bildbeschreibung ein

Sie können Ihren eigenen bauen, indem Sie einen von mehreren verfügbaren benutzerdefinierten ICs verwenden, die für diesen Zweck erstellt wurden - aber das kostet Sie mehr als der Kauf eines vorgefertigten ICs.

Ein Marktführer, aber nicht die einzige Quelle für ICs, ist FTDI Corp, die diese Produkte herstellt .

A2. Die gebräuchlichsten Einheiten (normalerweise ein „Kabel“, das in einen USB-Port gesteckt wird) erscheinen einem PC als standardmäßiger serieller „Comms-Port“. Sie arbeiten mit einer Reihe von Baudraten. Kann herstellerabhängig sein. Kann in der Software eingestellt werden.

A3: Wie oben – erscheint als standardmäßiger serieller Anschluss.

A4: Peripheriegeräte einiger Hersteller machen seltsame Dinge und funktionieren möglicherweise nicht für alle Konverter. Zum Beispiel verwendet das PIC-basierte PICAxe-System ein Programmierprotokoll, das alle Daten unter Verwendung von RS232-"Unterbrechungssignalen" hin und her sendet. dh sie nutzen die Datenleitungen nicht zur Informationsübertragung. Einige Konverter unterstützen das Break-Signal nicht.

Sie müssen wissen, ob Ihre Ausrüstung grob vom Standard abweicht. Wenn dies der Fall ist, funktionieren einige Konverter möglicherweise damit.

.

Wozu dient das A#-Schema?
4. Any other considerations?

Ja. Klassische serielle Ports sind normalerweise Byte-orientiert, dh jeweils ein Zeichen mit recht geringer Latenz. USB ist von Natur aus paketorientiert, mit vergleichsweise hoher Latenz. Mit anderen Worten, USB eignet sich hervorragend zum gleichzeitigen Verschieben vieler Daten, ist jedoch beim Verschieben kleiner Datenmengen langsamer. Wenn Sie versuchen, viele Daten in winzigen Stücken mit USB zu verschieben, verlieren Sie - schlecht .

Für das einfache Tippen auf einem Terminalprogramm, das mit einem Modem oder einem eingebetteten Gerät spricht, oder sogar das Hochladen von Dateien usw., ist dies wirklich kein Problem, da einzelne Dosen der Latenz für menschliche Verhältnisse gering sind und der USB problemlos Blöcke verschieben kann Daten schnell genug mit jeder seriellen Baudrate mithalten.

Aber andere Protokolle, die vom ständigen Hin und Her von Kurznachrichten oder einzelnen Zeichen zwischen einem Computer und einem seriellen Peripheriegerät abhängen, können bei Verwendung mit einem USB-Seriell-Konverter langsam werden (oder sogar falsch funktionieren). Wenn ein Computer so etwas wie ein einzelnes Zeichen sendet und darauf wartet, dass das Peripheriegerät antwortet, bevor er dann das nächste sendet, wird die Zeichenrate durch die Latenz für zwei vollständige USB-Pakete bestimmt - eines zum Senden eines einzelnen Zeichens und eines zum Empfangen eines (Es kann sogar noch schlimmer sein - der Empfang könnte auf der niedrigsten Ebene Poling beinhalten). In der heutigen Welt, in der USB-Seriell-Konverter genauso verbreitet oder häufiger sind als echte serielle Ports, ist es wichtig, Protokolle so zu gestalten, dass Sie viele Daten senden können, bevor Sie auf eine Antwort warten müssen. Bei Legacy-Systemen haben Sie vielleicht Glück und stellen fest, dass es gut funktioniert, es funktioniert vielleicht aber langsam,

Und selbst innerhalb eines bestimmten Protokolls, Peripheriegeräts, Computers und Betriebssystemtreibers spielt das Design der Client-Software eine Rolle. Ich bin einmal auf eine Verwaltungssoftware für ein eingebettetes Gerät gestoßen, die von einem Auftragnehmer unter Verwendung einer echten seriellen Schnittstelle geschrieben und getestet worden war. Es stellte sich heraus, dass eine Variation von seriellen .NET-Aufrufen verwendet wurde, die sich auf einem Laptop mit einem USB-Seriell-Konverter als langsam herausstellte. Mein eigenes vorheriges einfaches Win32-Verwaltungstool für dieses Gerät lief scheinbar ohne Verzögerung auf demselben Laptop mit demselben Konverter. Vielleicht habe ich besseren Code geschrieben, aber da der Konverter meine normale Testumgebung war, hätte ich das Glück gehabt, wenn es ein ähnliches Problem mit meinem Code gegeben hätte, es zu finden, während noch Zeit war, das Problem zu beheben.

Moral der Schimpfwörter In der heutigen Welt sollte alles (Hardware oder sogar Client-Software), das für die Verwendung einer seriellen Schnittstelle entwickelt wurde, früh genug in seiner Entwicklung auf Verwendbarkeit mit USB-Seriell-Konvertern getestet werden, damit das Design geändert werden kann, um alle entdeckten Probleme zu beheben.

Danke für die ausführliche Erklärung. Es war ziemlich interessant! :)
Dito +1. Ich habe auch viel von diesem Schmerz und Wissen gelebt!

Sie brauchen so etwas wie einen FT232:

FT232 Produktseite

USB zu RS232 Adapter mit FT232

Sie können auch preiswerte fertig konfektionierte Kabel kaufen, die dies tun:

Amazon-Seite mit Beispielen für USB-zu-Seriell-Kabel

Je nach Geschwindigkeit des Chips sollten die meisten Standard-Baudraten nutzbar sein, die stehen auf dem Kabel, das ich hier irgendwo habe. Wenn ich mich richtig erinnere, sollte das Kabel / der Chip nach der Installation der Treiber wie ein COM-Anschluss aussehen, und Sie können Hyperterminal usw. verwenden, als ob Sie (fast *) einen seriellen Anschluss verwenden würden.

  • Verschiedene Kabel können mehr/weniger genau emulieren - ich erinnere mich, dass ich bei der Verwendung meines Kabels Schwierigkeiten mit dem Handshaking usw. hatte. Vielleicht schaust du vor dem Kauf ins Handbuch (falls vorhanden).

Für Option 1, um einen Seriell-zu-USB-Konverter zu erstellen, würde ich den Ardunio ausprobieren , es gibt einige Beispiele im Internet , aber ich würde das nur tun, wenn mir die Ideen für andere Projekte ausgehen.

Ich habe drei berühmte Chips an einem Standort in Indien zu einem sehr günstigen Preis gefunden. Wenn Sie einen machen möchten, verwenden Sie einen Ihrer Wahl. Ich habe einen mit PL2303HX und einen mit CP2102 gemacht, beide sind großartig und funktionieren ohne Probleme.