USB statt RS232

13

RS232 ist nicht mehr so ​​beliebt wie früher und wird hauptsächlich durch USB ersetzt [ Wikipedia ]. Probleme, wie sie in dieser Frage angesprochen werden , tragen auch nicht zu seiner Reputation bei.

In einem neuen Systemdesign könnte man sich daher vorstellen, USB anstelle des seriellen Anschlusses für die Kommunikation zu verwenden. Es scheint jedoch immer noch, dass RS232 das serielle Kommunikationsprotokoll / der Port der Wahl ist.

Warum das? Ich verstehe, dass das Ändern alter Maschinen, die mit RS232 arbeiten, teuer ist, aber was hindert neue Systementwickler daran, USB anstelle von RS232 zu verwenden?

Shahbaz
quelle

Antworten:

12

Zumindest in der Mikrocontroller-Ebene:

  1. Serielle Ports (normalerweise TTL oder LVTTL) sind nach wie vor die gebräuchlichste Kommunikationsmethode, da die meisten einfachen Mikrocontroller keinen USB-Controller besitzen.

    Beispiel: Die meisten 8-Bit-AVR- oder PIC-Mikrocontroller verfügen nicht über USB, einige 32-Bit-ARM-Mikrocontroller jedoch normalerweise über serielle Anschlüsse.

  2. Die Konvertierung von serieller TTL / LVTTL-Kommunikation zu RS-232 erfordert eine "einfache" Logikpegel-Konvertierung, die mit sehr billigen ICs (MAX232 / MAX3232) durchgeführt werden kann.

  3. Die Konvertierung von serieller TTL / LVTTL-Kommunikation zu USB, wenn Ihr Mikrocontroller keinen USB-Controller hat, erfordert normalerweise die Verwendung eines etwas teureren IC (FTDI), der keine Optionen für die Durchsteckmontage bietet, sondern nur für die Oberflächenmontage.

  4. In Bezug auf das Protokoll gibt es einige Details, die bei der Verwendung von USB-Geräten im Allgemeinen zu beachten sind, z. B. die aktuelle Stufe, die möglicherweise vom USB-Host angefordert wird. Bei seriellen Schnittstellen müssen Sie sich nur um 3 bis 5 feste Parameter kümmern, die in Ihrem System konsistent sein müssen (Baudrate, Anzahl der Stoppbits, Parität usw.).

Georgebrindeiro
quelle
9

Einfachheit, denke ich. Eine USB-Implementierung (Chips und Treibersoftware) ist normalerweise komplexer als die gute alte RS232, die sogar in vielen 8-Bit-Mikrocontrollern zu finden ist. Während USB über viele Protokollmechanismen verfügt und dafür ausgelegt ist, mit vielen Teilnehmern über einen Bus umzugehen, verfügt eine RS232-Verbindung über nichts davon. Stattdessen ist es die "unkomplizierteste" Form, Bytes über eine Leitung zu senden.

Obwohl Arduino und die zunehmende Verbreitung von USB-zu-Seriell-Adaptern versprechen, dass USB irgendwann so dominant werden wird wie früher RS232.

Daniel Eberts
quelle
5

Ich denke, der Hauptgrund dafür, dass RS232 erhalten geblieben ist, ist die einfache Implementierung gängiger Anwendungsfälle in Embedded-Hardware - wie das Senden einer Sequenz von ASCII-Bytes zwischen zwei Geräten zur Steuerung. Die Anwendungsfälle für das Senden von Informationen mit den viel höheren Geschwindigkeiten, die mit USB verfügbar sind, sind den Kompromiss hinsichtlich der Komplexität, die durch die Implementierung der Signalisierung des USB-Protokolls verursacht wird, nicht wert .

Angesichts der Anforderungen an höhere Geschwindigkeiten würde es mich nicht wundern, wenn RS-485 aufgrund seiner sehr einfachen physischen Schnittstelle und hohen Datenraten (bis zu 10 MBit / s) immer häufiger verwendet wird.

thisismyrobot
quelle
4
  • Einfachheit für Hardware-Designer und einfache Bedienung für Programmierer
  • Verlässlichkeit
  • In vielen Systemen bekannt und unterstützt

Besonders in der Robotik, als wir gezwungen waren, USB anstelle von RS232 zu verwenden (unsere neuen PCs hatten keine RS232-Anschlüsse). Wir hatten viele Probleme:

  1. Jedes Trennen der USB-Buchse erfordert so viel Aufwand, um das System wiederherzustellen. Manchmal kommt es zu einem Systemfehler und wir mussten die PCs neu starten.

  2. Jeder Schlag oder jede Gefahr machen es ausgesteckt.

  3. Zu viel Programmierzeit

masoud
quelle
2

Die Kommunikationslatenz ist ein weiterer Grund, warum USB1.1 oder USB2.0 nicht immer ein guter Ersatz für RS232 ist. Daten auf dem USB1.1- oder USB2.0-Bus werden in 1ms- oder 125us-Frames formatiert, wodurch eine minimale Empfangsverzögerung von zwei Frame-Perioden (in der Praxis häufig mehr) erforderlich ist. Dies ist ein wichtiger Gesichtspunkt für moderne PC-Hardware, die normalerweise keinen eingebauten RS232-Anschluss hat und stattdessen einen USB / RS232-Konverter verwendet.

Paul Jurczak
quelle