Wie RS232 funktioniert : RS232 definiert ein Protokoll, das beschreibt, wie ein Datenstrom sequentiell auf ein Kabel übertragen wird, dh einen Bitstrom. Die Reihenfolge undBedeutung jedes Bits wird durch das Protokoll definiert. Die einfache Erklärung reicht aus, um es zu verstehen – Sie müssen kein großes Handbuch lesen!,
RS232 ist ein Standard für die serielle Informationsübertragungdas definiert sowohl das Protokoll (Methode der Datenübertragung) als auch diephysische Hardware, um dies zu tun. Dieses Dokument beschreibt, wie es funktioniert auf derphysikalische Ebene, damit Sie wissen, welche Signale Sie an themicrocontroller Pins erwarten können.
Was ist RS232?,
Grundsätzlich ist es eine Methode zum Übertragen von Daten über ein einzelnes Kabel (youneed zwei Drähte, um Daten zurück zu bekommen, da jede Leitung Daten in einer Richtungnur überträgt):
Es ist eine Methode (oder Protokoll – ein vereinbarter Standard), die definiert, wie man Daten zwischen zwei Geräten mit ein paar Drähten überträgt. Es verwendet eine Serialtransmission-Methode, bei der Datenbytes bitweise auf asingle Wire ausgegeben werden.
Daten werden nur in einer Richtungfür jeden Draht übertragen, so dass für die bidirektionale Kommunikation (zwei Richtungen) zwei Drähte benötigt werden., Dies ist also kein Multidrop-LAN-Kommunikationssystem wie RS485, sondern ein Punkt-zu-Punkt-Protokoll.
Diese beiden zusammen mit einer bodenreferenz (insgesamt: drei drähte) bilden theminimum konfiguration, die sie weg mit.
Hinweis:Für eine zuverlässigere Kommunikation über lange Distanzen müssen Sie möglicherweise andere Verbindungen verwenden, die im RS232standard definiert sind, z. B. DTR DCT usw. handshake-Signalen usw.
Grundsätzlich kann es ein einzelnes Datenbyte über ein serielles Kabel übertragen, das zwischen 3 und 22 Signalen liegt und mit Geschwindigkeiten von 100 bis 20k baud läuft. Commonbaud raten verwendet sind 2,4 k, 9,6 k, 19,2 k, die kabel länge kann bis zu 50ft. Höhere Baudraten werden verwendet, aber nicht durch den Standard abgedeckt, den sie immer noch verwenden, z. B. 38400,57600 Baud (Bits/s).
Zur Übertragung eines Datenblocks werden einzelne Bytes nacheinander übertragen.,
Dieser Abschnitt beschreibt, wie RS232 im Allgemeinen funktioniert, ohne zu Beschreibenhandshake-Methoden-nur das einfachste System wird beschrieben – das es themostuseful und am wahrscheinlichsten zu arbeiten!.
Handshake-Signale benötigen zusätzliche Pegelübersetzungshardware (ein RS232chip mit mehr E/A) und obwohl sie normalerweise nicht für den Betrieb der Entwicklungsplatine erforderlich sind. Möglicherweise benötigen Sie sie für Systeme, die mehrere Geräte steuern, bei denen Sie möglicherweise vorübergehend Daten von einer Einheit stoppen müssen. Es gibt einen Abschnitt über handshake-Signale später in diesem Dokument.,
Daten werden seriell in einer Richtung über ein Paar von Drähten übertragen. Datagoing out ist mit Tx gekennzeichnet (was die Übertragung anzeigt), während Daten mit Rx gekennzeichnet sind (was den Empfang anzeigt). Um ein Zwei-Wege-Kommunikationssystem zu erstellen, aminimum von drei Drähten werden Tx, Rx und GND (Masse) benötigt. Wenn Sie Tx& Rx zwischen den beiden Systemen überqueren, kann jede Einheit mit dem gegenüberliegenden sprechen.
Jedes Byte kann jederzeit übertragen werden (solange das vorherige Byte übertragen wurde). Das gesendete Byte wird nicht mit dem Empfänger synchronisiert -es ist ein asynchrones Protokoll, dh es gibt kein Taktsignal. Aus diesem Grundsoftware an jedem Ende der Kommunikationsverbindung muss genau so eingerichtet werden, dass jeder serielle Decoder-Chip den seriellen Datenstrom dekodieren kann.
Hinweis: Der Signalpegel inversion (Logik 1-12V und Logik 0 +12V).,
Baudrate
Wie RS232 in der Beziehung zwischen Baudrate und Signalfrequenz arbeitet.
Die baudrate ist einfach die übertragungsgeschwindigkeit gemessen in bits pro second.It definiert die Frequenz jeder Bitperiode.
Für eine baudrate von 2400 (2400 bps) die frequenz ist 2400Hz und die bitperiod ist 1/2400 oder 416,6 uns. Dies ist die Information, die ein Empfänger verwendetüberdecken Sie die Bits aus dem Datenstrom.,
Wie RS232 funktioniert – Voltagelevels
Damit es über lange Kabel funktioniert, werden von jedem Sender hohe Spannungen gesendet, da aufgrund des Kabelwiderstands die Spannung das weitere Signal verringert muss reisen. Die Ausgangsspannungsspezifikation reicht von +5V bis +25V (Übertragung einer logischen Null) und-5V bis-25V (Übertragung einer logischen Null).
Hinweis: Alle Signale im Kabel müssen die gleichen Spannungspegel erzeugen, z. B. DTR, DSR, RTS, CTS. Sie benötigen also viele Level-Translator-Chips für ein vollesinterface, aber für sehr kurze Distanzen benötigen Sie nur TX und RX und Ground.,
Die maximale spannung von ±25 V muss nicht verwendet werden und eine commonvoltage in verwenden ist ±12 V (ausgang durch MAX232 transceiver chip).
Eine Markierung (logische) wird als-12V gesendet und ein Leerzeichen (logische Null) wird als+12V gesendet, dh der logische Sinn wird invertiert.
Hinweis: Die Tatsache, dass an der seriellen Schnittstelle hohe Spannungen vorhanden sind, ermöglichtpowering-Geräte, die Sie normalerweise nicht darauf finden würden. Aber sie ziehen nur sehr wenig Strom.
Empfänger-Spannungspegel
Am Eingang des Empfängers sind die minimalen Spannungspegel als ±3V definiert, d.h., um eine logic zero zu empfangen, muss die spannung größer als 3V sein und um eine logic one zu empfangen, muss die spannung kleiner als-3V sein. Dies ermöglicht verluste, da das signal das kabel durchläuft und eine störfestigkeit bietet, dh störgeräusche bis zu einem pegel von ±3V können toleriert werden, ohne dass dies auswirkungen auf den empfänger hat.
Wie RS232 funktioniert-TheRS232 Startbit
Das Protokoll wird als asynchron beschrieben, da überhaupt keine Uhr übertragen wird. Stattdessen wird eine andere Methode der Uhrwiederherstellung verwendet.,
Zu Beginn jeder Übertragung wird ein Startbit übertragen, das dem Empfänger anzeigt, dass ein Datenbyte folgen wird. Da der Leerlaufzustand der RS232-Leitungen niedrig (- 12V) ist, um einen Startzustand zu signalisieren, wird die Leitung für 1 Bitperiode hoch(+12V) eingestellt. Dies bedeutet, dass ein Übergang auf der Leitung immergeneriert wird, so dass ein Empfänger weiß, wann die 1. Kante der Daten burstoccurs.
Mit dem Startbit kann der Empfänger mit den Datenbits synchronisiert werden, da er die steigende Flanke des Signals auf der Leitung messen kann., Dies bedeutet, dass Thereceiver in der Mitte jedes Bits einen eigenen Sample-Clock erstellen kann-um zu entscheiden, ob das Bit tatsächlich eine Daten-Null oder eine Daten-Eins ist.
Sobald das Startbit gefunden ist, weiß der Empfänger, wo die Followingbits sein werdenwenn er die Abtastperiode (abgeleitet von der Baudrate) als Teil des Initialisierungsprozesses erhält. Aus diesem Grund müssen Sie die gleichen Einstellungen inboth dem Empfänger und dem Sender Hardware dh Baudrate, Anzahl der Stop-Bits, Anzahl der Datenbits und Paritätsbit (ein oder aus)., Sonst passiert in der Regel nichts – oder man sieht Mülltonnen am Empfänger.
Wie RS232 funktioniert-Die Datenbits
Datenbits folgen dem Startbit. Normalerweise werden sieben oder acht Datenbits mit dem lsb zuerst übertragen. Der Grund, warum Sie zwischen sieben oder acht wählen können, ist, dass ASCII innerhalb der ersten sieben Bits (sowie der Steuerzeichen) aus dem Alphabet besteht. Das achte Bit erweitert den Zeichensatz fürgrafische Symbole.
Wenn Sie nur Text übertragen möchten, benötigen Sie nur 7 Bit., Dies spart Abit und erhöht die Übertragungsgeschwindigkeit bei der Übertragung großer Datenblöcke.Andere Datenbitgrößen sind 5, 6, 8 und 9 Bit. Die Bitlänge beträgt jedoch in der Regelsatz auf 8 Bits – dies wird sehr häufig verwendet.
Hinweis: Wenn Sie RS232 zum Übertragen von Rohdaten (Binärdaten) verwenden, benötigen Sie 8 Datenbits.,
Wie RS232 funktioniert-Das Paritätsbit
Das RS232-Paritätsbit ist ein grober Fehlererkennungsmechanismus.Sie können entweder ungerade Parität oder gerade Parität oder gar keine verwenden (im Diagramabove ist ein Paritätsbit enthalten (zwischen dem letzten Datenbit und dem Stoppbit-Hier wird die Parität als ‚1‘ angezeigt, was bedeutet, dass es eine ungerade Anzahl Vondatabits. Die verwendete Parität ist also ungerade Parität. Das folgende Diagramm (häufig verwendetin Mikrocontroller-Arbeit) verwendet kein Paritätsbit.,
Es wertet einfach alle Datenbits aus und gibt für eine ungerade Parität eine logische zurückwenn eine ungerade Anzahl von Datenbits festgelegt ist. Für gerade Parität eine Gleichmäßiganzahl von Datenbits, die gesetzt sind, setzt das Paritätsbit.
Am Empfänger wird das Paritätsbit verwendet, um festzustellen, ob während der Übertragung ein Fehler aufgetreten ist. Sie können dies in der Empfängersoftware verwenden, indem Sie ein Flag im UART-Modul lesen.
Das Problem bei der Fehlererkennung mit dem Paritätsbit besteht darin, dass die Paritätsprüfung fehlschlägt, wenn zwei Bit fehlerhaft sind., Dies liegt daran, dass jeder Fehler abbrichtdie Wirkung des anderen (in Bezug auf die Paritätsberechnung). Jede gerade Anzahl von Fehlern verursacht einen Fehler bei der Fehlererkennung.
Es wird kein Problem auf einem Bench-Top-basierten System sein (das keinen kritischen Datentransfer hat). Über ein kurzes Kabel werden Sie wahrscheinlich keine Fehler sehen. Normalerweise benutze ich keine Parität und es gibt überhaupt kein Problem.
Für Systeme, die über eine lange Strecke oder in einer lauten Umgebung laufen, sollte ein Bettersystem verwendet werden, z. B. Um dem Datenstrom vor und nach dem Senden über die RS232 eine zyklische Redundanzprüfung hinzuzufügen., Mit CRCs können Sie einige Fehler überprüfen und korrigieren, ohne die Daten erneut zu übertragen.
Wie RS232 funktioniert-Das Stopbit
Das RS232 Stopbit gibt lediglich einen Zeitraum an, bevor das Startbit übertragen werden kann. Es ist der gegenteilige Sinn zum Startbitund dadurch kann das Startbit gesehen werden, d.h. ein Stoppbit gefolgt vonein Startbit gibt immer ein ansteigendes Kantensignal zur Erkennung durch den Empfänger.
Wenn kein Stoppbit vorhanden war, wäre das letzte Bit im Datenstrom das Paritätsbit (oder Datenbit, wenn die Parität nicht aktiv ist)., Dies würde sich ändern, je nach den Daten, die gesendet werden, so dass, wenn Sie hatte die gleichen Sinne wie die start-bit, dann das startbit nicht sehen konnte!
Das Stopbit kann zwischen 1, 1,5 oder 2 Bitperioden eingestellt werden.
Bei sehr hohen Baudraten ist die Periode von Stopbit zu Startbit(vorausgesetzt, Daten werden kontinuierlich gesendet) sehr klein, z. B. bei einer Baudrate von 115200 Baud beträgt die Zeit auf ein Bit 1/115200 = 8.26 us, sodass Sie mit 2 Bitperioden die Zeit auf 16.5 us erhöhen., Dies kann es dem Empfänger ermöglichen, das Startbit leichter zu erkennen, da die Wellenformen bei einer Kapazität auf der Leitung eine CR-und Fallzeit aufweisen. Die Verlängerung des Zeitraums ermöglicht mehr kapazitives Laden. Allerdings hängt italso von der verwendeten Empfängerhardware ab.
Typische Einstellungen
Typische Einstellungen für den Einsatz auf dem Desktop z.B. zwischen einem Mikrocontroller und einem Endemulatorprogramm wie „Tera Term“:
Baud | 9600 |
Data bits | 8 |
Parity | None |
Stop bits | 1 |
Flow Control | None |
This can also be compactly written as:
9600 8N1
Hardware Connections 3 (Rx,Tx,GND) – Rx and Tx crossed over.,
„Flow Control“ in der obigen Liste bezieht sich auf eine Hardware-Flow-Control-Signalisierungsmethode, die die Signale DTR/DSR und RTS/CTS verwendet. Siehe hier für mehr dazu.
Wie RS232 funktioniert-Signalpegel
Irgendwann möchten Sie vielleicht einen Software – UART erstellen, um möglicherweise Codespace in Ihrem aktuellen Design zu speichern (möglicherweise benötigen Sie den Empfangsteil nicht-da Sie nur Variablen ausgeben) oder um einen Ersatzstift zu verwenden.
Hinweis: Auf den Tutorialseiten 12F675 finden Sie den Empfangs-und Transmitsoftware-USART-Code.,
Um es zu erstellen, benötigen Sie die tatsächlichen Signaldiagramme, die Sie am Themicrocontroller-Pin sehen (seltsamerweise sind diese im Web schwer zu finden).
Das folgende Diagramm zeigt den zeitgesteuerten 0V-und 5V-Bitstrom am Ausgangspin des Mikrocontrollers. Das untere Diagramm zeigt die übersetzten Signalpegel beidie RS232-Ausgangstreiber, die über das serielle Kabel übertragen werden.
Diese höheren Pegel werden erzeugt, indem die 0-5V Logikpegel an einen atransceiver Chip gesendet werden, z., MAX232, in dem ein Dioden – / Kondensator-Boost-Konveteringebaut ist, der die Signalpegel auf die erforderliche RS232-Voltageof ±12 Volt steigert. Beachten Sie, wie der Pegel-12V einem logischen ‚1‘ und +12Vlevel einem logischen ‚0‘entspricht.
Die untere Wellenform im obigen Bove-Diagramm zeigt das RS232signal, das Sie mit einem Oszilloskop auf dem Ausgabeantrieb eines Übersetzerchips wie dem MAX232 sehen würden. Beachten sie, dass die RS232 idlevoltage ist-12 V,
RS232 Uhr
Das obige diagramm zeigt auch die RS232 timingdiagram wo jedes bit zeitraum ist 1 / frequenz so für abaud rate von 9600 bps (bits pro sekunde) die zeitraum von jeder bit ist 1/9600 oder mehr.,166us dies ist effektiv die RS232-Taktperiode, die für die spezifische verwendete Baudrate erforderlich ist.
RS232-Wellenform
Im Diagramm oben zeigt die untere Wellenform das RS232-Voltagesignal, das Sie am Ausgang des RS232-TX-Pins(auch die gleichen Pegel am RX-Pin) eines Oszilloskops sehen können. In einigen Chips themaximaler Signalpegel kann nicht ±12V sein – die Max-und Min-Spannung könnte seinmaller (da es keinen großen Spannungsabfall über kurze Distanzen geben wird)., Für lange Distanzen sollten diese ±12V betragen – am Ende eines langen Kabels fällt die Spannung über den Widerstand des Kabels ab, muss aber am anderen Ende mehr als ±3V betragen.
Die kabel kapazität wird auch langsam die steigenden und fallenden kanten – roundingthem off.
Wie RS232 funktioniert-Handshake-Signale
Handshake-Signale sind einfach eine Methode, um den Datenfluss zu stoppen. Wenn ein Teil des Systems ausgelastet ist, kann es möglicherweise nicht in der Lage sein, mehr Daten zu akzeptierenund anstatt sie zu verlieren, werden Signale an jedem Ende der Verbindung verwendet, um das andere Ende anzuhalten, um die Übertragung von Daten zu stoppen., Es gibt zwei Arten usedin RS232: – hardware-handshake-und software-handshake.
Hardware-Handshake
- DTR-Datenterminal bereit.
- DSR – Datensatz bereit.
- RTS-Anfrage zu senden.
- CTS-Klar Zu Senden.
Wenn Sie diese Signale verwenden, müssen sie alle auf theRS232-Pegeln übertragen werden, dh ±25V (oder welche Spannung auch immer vom Translator-Chip erzeugt wird, z. B. ±12V, dh die gleiche wie der TX-Ausgang, sodass Sie einen RS232-Chip mit mehr Pegelübersetzern zum Senden und Empfangen von Signalen benötigen.,
Denken Sie daran, dass das Protokoll auf einem Modem basiert (die DCE oder Datenkommunikationsgeräte) sitzt auf einem Schreibtisch und einem angeschlossenen (über RS232)an den PC (die DTE oder Datenterminal Ausrüstung) – die Steuerung. Es gibt auch eine Klingelanzeige (RI), die signalisiert, wann das Telefon klingelte, direkt an die Telefonleitung angeschlossen, was eine automatische Modemdetektion eines eingehenden Datenstroms ermöglichen würde.
Jedes Signal ist nicht orthogonal, was bedeutet, dass kein äquivalentes Signal in die andere Richtung zurückgeht., Dieser Teil des Protokolls hat Überstunden gemacht, daher gibt es verschiedene Verwendungen dieser Signale, aber im Allgemeinen wird Folgendes verwendet:
Um Daten vom PC zu stoppen, dh um das Modem nicht mehr mit Daten zu überwältigen:
- RTS (PC) zum Modem.
- CTS (modem) auf den PC.
Der PC behauptet RTS, um anzuzeigen, dass er Daten an das Modem übertragen möchte.
Das Modem behauptet CTS Daten vom PC zu empfangen.
Um Daten zu stoppen, die vom Modem kommen, dh um den PC nicht mehr mit Daten zu überwältigen:
- DTR (PC) zum Modem.
- DSR (modem) auf den PC.,
Das Modem behauptet DSR, um anzuzeigen, dass es Daten an den PC übertragen möchte.
Der PC behauptet DTR, um Daten vom Modem zu empfangen.
Software-Handshake
Wenn Sie die Begriffe XON und XOFF sehen, ist dies ein Software-Flow-Controlmethod, bei dem der Empfänger ein Sonderzeichen (im ASCIIset) sendet, um zu sagen, dass der Sender keine Daten mehr sendet. Wenn der Empfänger wiedergefunden hat (ein Puffer leert sich) , kann er das XON-Signal an den Sender senden, um die Übertragung erneut zu starten.