www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Was heißt RS-232 interface mit "on-board transceiver"!?


Autor: David H. (david_h)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

kurze Verständnis-Frage:

Ich schaue mir gerade die Beschreibung für das "TMS320F28335 eZdsp 
Starter Kit" von TI an. Da steht das Board habe ein
> RS-232 interface with on-board transceiver
(http://focus.ti.com/docs/toolsw/folders/print/tmds...)
Was heißt das denn jetzt genau, das da ein "on-board transceiver" dabei 
ist? Ich dachte ein Interface beinhaltet, dass man über die 
Schnittstelle senden und empfangen kann. Bzw was ist der Unterschied zu 
einem Gerät mit einem
> Isolated RS-232 interface
http://focus.ti.com/docs/toolsw/folders/print/tmds... 
?

Beide Boards umfassen den TMS320F28335 Digital Signal Controller von TI 
der ein SCI mit UART Unterstützung hat.

Mein Ziel ist es mit dem Prozessor möglichst ohne Umstände über USB zu 
kommunizieren. Er hat zwar keine USB Schnittstelle aber SCI (UART) 
Module die ich ja dann über einen entsprechenden Konverter/Adapter 
(FT232R, TUSB3410) an USB anschließen könnte.

Wäre nett wenn mir das jemand erläutern würde.

Gruß, David

Autor: singulaer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da ist halt ein MAX232 o.ä. mit drauf

Autor: Lehrmann Michael (ubimbo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
David H. schrieb:
>> RS-232 interface with on-board transceiver

Heißt einfach, dass da ein Pegelwandler (MAX232) dabei ist - wie mein 
Vorredner schon sagte. Die RS232 Pegel für den PC sind andere wie die 
die der µC liefern kann. Darum ein Pegelwandler. Er wandelt die Signale 
so, dass dein µC nicht in Rauch aufgeht wenn der PC sendet und 
"verstärkt" ganz salop gesagt die Signale für den PC.

Ganz nebenbei: Achtung beim Programmieren - diese netten MAX232 
invertieren das Signal ....

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Ganz nebenbei: Achtung beim Programmieren - diese netten MAX232
>invertieren das Signal ....

Blödsinn. Invertieren heißt aus einem L ein H bzw. aus einem H ein L zu 
machen. Und das macht ein MAX232 nicht .

MfG Spess

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
naja, ein bißchen schon.
Aus einem MC-Low (0V, logisch 0) wird ein RS232-High (10 V
bei MAX232, ebenfalls logisch 0) und aus einem MC-High
(5V, logisch 1) wird ein RS232-Low (-10 V, logisch
1).

Also logisch bleibt es gleich, spannungsmäßig wird es schon
invertiert (und auch noch ins Negative gestreckt).
Die Frage ist halt, ob man mit "invertieren" logisch
oder elektrisch meint.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>naja, ein bißchen schon.

Wie ein bißchen schwanger?

Ein H auf der TTL-Seite wird als H auf der RS232-Seite ausgegeben. Und 
das entspricht ganz und gar nicht meinen Vorstellungen eines Inverters. 
Die LOgikpegel sind dabei uninteressant.

MfG Spess

Autor: Klaus Wachtler (mfgkw)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
spess53 schrieb:
> Ein H auf der TTL-Seite wird als H auf der RS232-Seite ausgegeben.

Aus dem Maxim-Datenblat zum MAX232 (u.a.) zum Thema RS232-Receiver:
"EIA/TIA-232E and V.28 specifications define a voltage
level greater than 3V as a logic 0, so all receivers invert."

Siehe auch die Kopie aus dem DB (Figure 1+2).

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Ich finde diese Beschreibung besser:

The MAX232 is a dual driver/receiver that includes a capacitive voltage 
generator to supply TIA/EIA-232-F voltage levels from a single 5-V 
supply.
Each receiver converts TIA/EIA-232-F inputs to 5-V TTL/CMOS levels.
These receivers have a typical threshold of 1.3 V, a typical hysteresis 
of 0.5 V, and can accept ±30-V inputs. Each driver converts TTL/CMOS 
input
levels into TIA/EIA-232-F levels.

MfG Spess

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da steht aber nicht, daß die levels gleichsinnig sind.

Autor: Yalu X. (yalu) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@David H.:

> RS-232 interface with on-board transceiver

Bei diesem Board ist, wie schon die Vorposter geschrieben haben, der
Pegelwandler eingebaut, der die 3,3V-Logikpegel des DSC in RS-232-Pegel
umwandelt. Erst dadurch wird aus einer UART-Schnittstelle eine echte
RS-232-Schnittstelle, die ohne zusätzliche Konverterschaltung direkt mit
einem anderen RS-232-Gerät (bspw. mit einem PC) verbunden werden kann.

> Isolated RS-232 interface

Dieses Board enthält ebenfalls einen RS-232-Pegelwandler, zusätzlich ist
die Schnittstelle aber noch von den restlichen Board-Komponenten galva-
nisch getrennt. Dies hat den Vorteil, dass die beiden über RS-232 mit-
einander vebundenen Geräte nicht auf dem gleichen Massepotential liegen
müssen. Nachteilig ist, dass der Pegelwandler und der Isolatorbaustein
des Boards von extern mit Strom versorgt werden müssen. Es reicht also
nicht, das Board über ein einfaches Kabel mit dem PC zu verbinden.
Braucht man die galvanische Trennung nicht, kann man sie mit Lötbrücken
überbrücken. Dann verhält sich die Schnittstelle wie beim anderen Board
ohne galvanische Trennung.

> Mein Ziel ist es mit dem Prozessor möglichst ohne Umstände über USB zu
> kommunizieren. Er hat zwar keine USB Schnittstelle aber SCI (UART)
> Module die ich ja dann über einen entsprechenden Konverter/Adapter
> (FT232R, TUSB3410) an USB anschließen könnte.

Da (zumindest beim zweiten Board mit der galvanischen Trennung) die
UART-Pins des DS über die DIMM-Leiste nach außen geführt sind, kannst du
unter Umgehung des Pegelwandlers direkt einen FT232R o.ä. anschließen.
Evtl. muss dazu eine Lötbrücke entfernt werden, um Konflikte mit dem
Pegelwandler bzw. dem Isolatorbaustein zu vermeiden.

Alternativ kannst du natürlich auch einen fertigen USB<->RS-232-Konver-
ter aus dem PC-Shop an den Pegelwandler des Boards anschließen.

Autor: Yalu X. (yalu) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spess53 schrieb:
> Blödsinn. Invertieren heißt aus einem L ein H bzw. aus einem H ein L zu
> machen. Und das macht ein MAX232 nicht .

Doch genau das macht ein MAX232. Das kann man zum einen an dem von Klaus
geposteten Zitat erkennen:

> "EIA/TIA-232E and V.28 specifications define a voltage
> level greater than 3V as a logic 0, so all receivers invert."

Zum andern erkennt man im Datenblatt an den Spitzen der Dreiecke, die
die Treiber symbolisieren, kleine Kreise, die anzeigen, dass hier das
Signal invertiert wird.

Ganz abgesehen davon kann man die Spannungspegel auch nachmessen, um zu
sehen, dass H (hohe Spannung) in L (niedrige Spannung) umgewandelt wird
und umgekehrt.

Was oft zur Verwirrung führt ist die Tastsache, dass der Treiber zwar
die elektrischen Signale (H und L), nicht aber die Binärwerte (1 und 0)
invertiert. Da die RS-232-Übertragung in negativer Logik arbeitet,
entspricht auf der Leitung ein H-Pegel einer binären 0 und ein L-Pegel
einer binären 1. Hättest du in deiner Aussage also H durch 1 und L durch
0 ersetzt, hättest du recht gehabt ;-)

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Ganz abgesehen davon kann man die Spannungspegel auch nachmessen, um zu
>sehen, dass H (hohe Spannung) in L (niedrige Spannung) umgewandelt wird
>und umgekehrt

Seit wann bedeutet H hohe Spannung und L niedrige Spannung? Kennt hier 
niemand negative Logik?

http://de.wikipedia.org/wiki/Logikpegel

MfG Spess

Autor: Carsten Sch. (dg3ycs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Yalu X. schrieb:
> spess53 schrieb:
>> Blödsinn. Invertieren heißt aus einem L ein H bzw. aus einem H ein L zu
>> machen. Und das macht ein MAX232 nicht .
>
> Doch genau das macht ein MAX232. Das kann man zum einen an dem von Klaus
> geposteten Zitat erkennen:
>
...
>
> Ganz abgesehen davon kann man die Spannungspegel auch nachmessen, um zu
> sehen, dass H (hohe Spannung) in L (niedrige Spannung) umgewandelt wird
> und umgekehrt.
>
> Was oft zur Verwirrung führt ist die Tastsache, dass der Treiber zwar
> die elektrischen Signale (H und L), nicht aber die Binärwerte (1 und 0)
> invertiert. Da die RS-232-Übertragung in negativer Logik arbeitet,
> entspricht auf der Leitung ein H-Pegel einer binären 0 und ein L-Pegel
> einer binären 1. Hättest du in deiner Aussage also H durch 1 und L durch
> 0 ersetzt, hättest du recht gehabt ;-)

Du meinst zwar Grundsätzlich das richtige... Aber irgendwie doch falscht 
ausgedrückt.
Wobei: Es liegt einzig und alleine daran wie man H & L bzw 1 & 0 
definiert.

Worauf wir uns glaube ich alle einigen können ist die Tatsache das ein 
MAX232 aus +5V an der TTL Seite ein Ausgangssignal (V24 Seitig) von -10V 
macht.
Bei 0V an der TTL Seite macht er +10V V.24 Seitig.

Oder ist etwa jemand ernsthaft anderer Meinung ?

Sowohl in der Ausbildung als auch im Studium habe ich aber gelernt das 
sowohl die Angaben Hi und Lo so wie 1 und 0 eigendlich unabhängig von 
der Tatsächlichen Spannung gesehen werden können. Das muss man dann 
anhand der Bezugsebene festlegen... Nun können wir auch noch True & 
False mit reinnehmen.

Wobei ich gar nicht behaupten will das das jetzt die einzig richtige 
Auslegung ist... Kann gut sein das es woanders unterschiedlich 
gehnadhabt wird.

Ist ja so, das wenn ich beim µC den Port für RS232 händisch auf TRUE 
setze ich -10 V hinter dem RS232 habe... Habe schon Compiler gesehen wo 
ich statt 1 oder True auch HI schreiben kann!

Allerdings zeigt bei mir die Erfahrung das es für mich völlig irrelevant 
ist welche Spannungspolarität auf der V.24 Seite anliegt. Dies dürfte 
für den absoluten Großteil der anderen User hier ebendfalls so sein...
Dazwischen ist halt immer der MAX oder ein anderer Wandler - oder man 
geht direkt an einen PC.
Einzige Ausnahme dürfte es geben wenn man den Treiber einsparen will und 
direkt auf die V.24 seite zugreifen will. Ist möglich aber kaum noch 
üblich. Und natürlich bei der Entwicklung von Halbleitern für die V.24 
Seite...

Gruß
Carsten

Autor: HildeK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lehrmann Michael schrieb:
> Ganz nebenbei: Achtung beim Programmieren - diese netten MAX232
> invertieren das Signal ....
Da brauchst du gar nichts beachten!
Wenn du allerdings mit dem Skope auf der Leitung misst und die Daten 
interpretieren willst, dann musst du bei dieser Auswertung darauf achten 
und wissen, welche Spannungspegel einer logischen Null oder Eins 
entsprechen.

Wichtig ist, dass man beim Programmieren deshalb nicht dieses Umsetzen 
auf die Leitungsebene betrachten muss und einfach vergessen kann! Hier 
ist es völlig egal, was der PHY auf der Leitung ausgibt - solange es der 
Vereinbarung entspricht und sich alle anderen PHYs daran halten.
Mir fällte keiner der RS232-Treiber ein, der das nicht machen würde ...

Autor: Yalu X. (yalu) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spess53 schrieb:
>>Ganz abgesehen davon kann man die Spannungspegel auch nachmessen, um zu
>>sehen, dass H (hohe Spannung) in L (niedrige Spannung) umgewandelt wird
>>und umgekehrt
>
> Seit wann bedeutet H hohe Spannung und L niedrige Spannung?

Die Antwort hast du mit dem Verlinken des Wikipedia-Artikels schon
gegeben:

  "In der Regel sind die Informationen binär  codiert und somit sind
  auch zwei Spannungs-Pegel erforderlich, um die Logikwerte zu
  repräsentieren: der High-Pegel, die höhere Spannung, entspricht meist
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  nahezu der Betriebsspannung; der Low-Pegel als niedrigere Spannung
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  liegt meist nahe bei 0 Volt (Bezugsmasse, kurz GND von engl. ground)."

Das ergibt sich aber auch ganz einfach aus der Übersetzung der
englischen Wörter "high" und "low".

> Kennt hier niemand negative Logik?

Doch, und wer es nicht weiß, kann es im Wikipedia nachlesen:

  "In der sogenannten positiven Logik kodiert der High-Pegel die
  Binärwert 1 und der Low-Pegel den Binärwert 0, in negativer Logik
  stellt High-Pegel die 0 und der Low-Pegel die 1 dar."

Aber das deckt sich doch exakt mit dem, was ich oben geschrieben habe:

> Da die RS-232-Übertragung in negativer Logik arbeitet, entspricht auf
> der Leitung ein H-Pegel einer binären 0 und ein L-Pegel einer binären
> 1.

Hat ein bestimmtes Bit des von der Software gesendeten Bytes den Wert 1,
wird diese 1 vom Prozessor (positive Logik) in einen H-Pegel (+5V oder
+3,3V) umgesetzt. Der UART ändert daran nichts, er sorgt lediglich für
das richtige Timing. Der Inverter im Pegelwandler macht daraus ca. -10V,
also einen L-Pegel. Da die RS-232-Übertragung in negativer Logik
erfolgt, bleibt der Binärwert aber trotz der Signalinvertierung 1. Im
Pegelwandler des Empfängers wird das Signal erneut invertiert, so dass
der dortige UART wieder einen H-Pegel sieht. Der UART reicht den Pegel
unverändert an den Prozessor (positiver Logik) weiter, der ihn als eine
1 interpretiert.

Autor: David H. (david_h)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die zahlreichen Antworten!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.