RS232 über RS485-Strecke brücken?

OP #2160641
Lesenswert?

Hallo Forum,

folgende Ausgangslage:

ein RFID-Devboard von Pollin
ein Linux-PC mit Steuersoftware, der weit davon weg steht

Nun war die Idee, an das RFID-Board einen RS232-RS485-Konverter zu 
hängen und an den PC (mangels RS232-Port) einen USB-RS485-Konverter.

Ich habe an Hardware:

Hexin Technology HXSP-485B
Hexin Technology HXSP-2108F

Leider funktioniert das irgendwie überhaupt nicht, ich bekomme über die 
Strecke nichts übertragen. Sprich selbst mit zwei PCs und Terminal 
bekomme ich keine Zeichen übertragen.

Nach viel Probiererei und so fiel mir dann mal auf, dass es bei RS485 ja 
überhaupt kein festes Protokoll gibt. Daher die Frage: kann das so 
überhaupt funktionieren, oder brauche ich bspw. zwingend zwei gleiche 
RS232-RS485-Konverter?

Dann kamen noch an Fragen auf:
der Bus muss doch beidseitig mit 120 Ω terminiert werden, oder?
Etwas Rätsel gaben uns auch die Ports "+9V" und "GND" auf den 
Breakout-Platinen der Konverter auf. Welche der Konverter müssen 
sinnvollerweise mit Spannung versorgt werden?
Die Beschreibung liest sich beim USB-Konverter so, dass der USB-Port 
genug Strom für den Konverter liefert.

Das RFID-Board hat sicherlich keinen Saft auf dem RS232; die 
Beschreibung liest sich hier so, dass man den Eingang mit 9V versorgen 
sollte, wenn der Pegel auf dem RS232 unter 5V liegt.

Bin für Tipps sehr dankbar :)
OP #2160684
Lesenswert?

Daniel F. schrieb:
> In deinem Fall eher Segen, da du ganz einfach z.B. 9600 8N1 übertragen
> kannst und dir über das Protokoll keine Gedanken machen musst...

Ja Okay, aber meine Frage ging jetzt in die Richtung ob das, was der 
RS232-RS485-Konverter über RS485 rausbläst halt vom USB-RS485-Adapter 
auch "verstanden" wird und umgekehrt, deshalb.

Aber wenn das nicht das Problem ist, frage ich mich: was ist dann das 
Problem?
#2160685
Lesenswert?

Mit Vollduplex geht das problemlos ohne sich um irgendwas kümmern zu 
müssen. Also eine Vierdrahtleitung, mit MAX488 o.ä.
Willst du Halb-Duplex übertragen, kommst du nicht umhin, entweder die 
Originalsoftware anzupacken oder auf beiden Seiten was "Intelligentes" 
dazwischenzupacken, was Daten puffert und sich um die 
Richtungsumschaltung kümmert.
OP #2160695
Lesenswert?

H.joachim Seifert schrieb:
> Mit Vollduplex geht das problemlos ohne sich um irgendwas kümmern zu
> müssen. Also eine Vierdrahtleitung, mit MAX488 o.ä.

Vollduplex fällt allein schon deswegen flach, weil der 
RS232-RS485-Konverter kein Vollduplex kann.

Die Software anzupassen ist kein Problem, weil ich beide Seiten selbst 
geschrieben habe :)

Wie "schalte" ich denn da die "Richtung" um? In der Doku zu dem 
Konverter steht dazu z. B. jarnüscht.
#2160716
Lesenswert?

Jens B. schrieb:
> Vollduplex fällt allein schon deswegen flach, weil der
> RS232-RS485-Konverter kein Vollduplex kann.
>
> Die Software anzupassen ist kein Problem, weil ich beide Seiten selbst
> geschrieben habe :)
>
> Wie "schalte" ich denn da die "Richtung" um? In der Doku zu dem
> Konverter steht dazu z. B. jarnüscht.

RS232 ist von Hause aus erstmal vollduplex. Das heisst nichts weiter, 
als das zeitgleich sowohl gesendet als auch empfangen werden kann. Beim 
Halbduplex muss der Übertragungskanal für beide Richtungen genutzt 
werden. Wie die Umschaltung geschieht, ist erstmal egal.

http://www.maxim-ic.com/images/appnotes/367/367Fig05.gif
fig. b,
Gast #2160724
Lesenswert?

Jens B. schrieb:
> Wie "schalte" ich denn da die "Richtung" um? In der Doku zu dem
> Konverter steht dazu z. B. jarnüscht.

Ich kenne das nur so das die Konverter in Normalfall auf Empfang stehen. 
Willst du ein Zeichen senden schalten die für die Dauer des sendens um. 
Dazu muß denen aber bekannt gemacht werden wie viele Bits ein Zichen 
enthält und mit welcher Baudrate gesendet werden soll.
Alternativ gibt es auch Konverter die mit dem RTS Signal von der RS232 
umgeschaltet werden können.
OP #2160726
Lesenswert?

Falk Brunner schrieb:
> @  Jens B. (sunnyman)
> Ist auch so. Aber wieso glaubst du, dass RS232 nicht austreicht?

Weil das RFID-Board an der Tür im Erdgeschoss angebracht ist und der 
Rechner für die Auswertung im 2. OG im Inneren des Gebäudes steht. Als 
Verbindungsleitung steht mehr sowas wie ein mehrfach unterbrochener 
"Klingeldraht" zur Verfügung, die Gesamtstrecke dürften auch gut und 
gern 120 m sein.
OP #2160728
Lesenswert?

H.joachim Seifert schrieb:
> http://www.maxim-ic.com/images/appnotes/367/367Fig05.gif
> fig. b,

Achso, also was du meinst ist im Prinzip nur, dass ich nicht von beiden 
Seiten der RS232-Strecke gleichzeitig sende / empfange.

Die Anwendung arbeitet allerdings schon quasi passend dazu.

Allerdings habe ich auch probiert, zwei PCs mit dieser Strecke mit 
einander zu verbinden und habe auf beiden Rechnern minicom gestartet und 
dann beim einen bzw. anderen Rechner was ins Fenster getippt - ohne 
Erfolg.
Gast #2160753
Lesenswert?

Ausser der korrekten Verdrahtung der RS485 Verbindung gibt es zwei Dinge 
zu beachten. Erstens die Stromversorgung der RS 485 Treiber. Das sollte 
auf PC Seite über USB wohl funktionieren. Auf der RFID-Seite ist mir das 
nach dem Überfliegen der Doku nicht ganz klar. Notfalls erstmal 5V an 
den vorgesehenen Pin legen. Zweitens muss die Datenrichtung auf beiden 
Seiten entsprechend umgeschaltet werden. Am RS-486 Treiber wird das über 
den DE-Pin erreicht. Der muss entsprechend angesteuert werden, z.B. über 
RTS der RS-232. Oder er wird automatisch umgeschaltet, wenn ein Zeichen 
gesendet wird. Auch das geht aus der Doku nicht so richtig klar hervor. 
Transparent Mode könnte darauf hindeuten.

gk
Gast #2160905
Lesenswert?

Ich vermute einen prinzipiellen Fehler. Die RS232 benötigt ein 
High-Ruhepotential auf der TxD/RxD-Leitung, da der Übergang auf Low das 
Startbit definiert. Die RS485 kennt aber kein Ruhepotential, da bei Ruhe 
TriState vorgeschrieben ist. Ohne besondere Maßnahmen kann also die 
Umsetzung RS485->RS232 dieses Startbit nicht erhalten. Ich kann auch 
nicht erkennen, dass deine Konverter für die andere Richtung vorgesehen 
sind - allerdings muss ja eine Antwort empfangen werden. Um dieses 
Problem auszuschließen, miss doch mal, ob das Ruhepotential auf beiden 
RS232 High ist. Dies war jedenfalls das Problem bei meinem 
Selbstbau-Konverter. Dort habe ich dieses grundsätzliche Problem mit 
einem unsymmetrischen Abschlusswiderstand gelöst.
Mit einem Fertig-Billig-Konverter hatte ich das Problem, dass der 
RS485-Treiber zeitweilig keine Versorgungsspannung bekam. Die wird aus 
dem Negativ-Potential der freien RS232-Ports gewonnen. Der Pegelwandler 
war falsch beschaltet und lief deshalb manchmal nicht an. Nach 
entsprechender Lötarbeit lief er dann, der Konverter hatte aber weitere 
Probleme. Die Versorgung der Treiber würde ich auch nachmessen.
Vergiss auch die Abschlusswiderstände auf beiden Enden der RS485 nicht, 
sie sind meistens nicht in den Konvertern eingebaut, da der Konverter ja 
nicht das Ende der Leitung sein muss.
Gast #2160939
Lesenswert?

gk schrieb:
> Zweitens muss die Datenrichtung auf beiden
> Seiten entsprechend umgeschaltet werden. Am RS-486 Treiber wird das über
> den DE-Pin erreicht. Der muss entsprechend angesteuert werden, z.B. über
> RTS der RS-232

Habe Deinen Beitrag erst jetzt genau gelesen.
Stimmt: Bei meinem Billig-Konverter und dem Eigenbau wird jedes Zeichen 
einzeln übertragen und jedes Mal DE geschaltet. Die Ansteuerung über RTS 
geht in der Praxis nicht - ich bin jedenfalls kläglich gescheitert. 
Windows kann die RS232 nur asynchron ansteuern, das bedeutet, man hat 
keine Kontrolle, wann der String eigene gesendet ist. Entweder man 
schaltet seinen eigenen String ab, oder man muss ewig warten (viele ms) 
weil Windows keine Echtzeit kann.
Das Ergebnis: ein Billig-Konverter schaltet DE synchron mit dem Signal 
(total krause Ansteuerung) und ein besserer braucht einen µP mit 2 UART.
Gast #2161243
Lesenswert?

Ich habe hier einen industriellen Converter, der auch die automatische 
Umschaltung macht. Das funktioniert tadelos. Wenn man Programme benutzen 
will/muss die für die RS-232 geschrieben wurden geht das auch nicht 
anders.
Ich denke, dass im vorliegenden Fall das Senden vom PC aus funktioniert. 
Daher erstmal die Verbindung PC --> RFID zum Laufen bringen. Zum 
Beispiel per Software dauerd was senden und schauen was ankommt. Ausser 
dem DE-Signal muss auch das RE-Signal am RS-485 Baustein angesteuert 
werden. Das ist meistens mit DE direkt verbunden. Besonders hilfreich 
wäre natürlich ein Oszilloskop zur Fehlersuche.
gk
Gast #2161531
Lesenswert?

Ich habe mal in die Bedienungsanleitung des Hexin Technology HXSP-485B 
gesehen. Die Kopplung zweier Module über RS485 ist vorgesehen. 
Vielleicht ist es ja ein ganz dummer Fehler:
- Ist die Baudrate auf beiden Seiten richtig eingestellt?
- Ist die Polarität der RS485 auf beiden Seiten richtig? Bei mehrfach 
unterbrochenem Klingeldraht ist das ja schnell passiert.

Jens B. schrieb:
> Als Verbindungsleitung steht mehr sowas wie ein mehrfach unterbrochener
> "Klingeldraht" zur Verfügung, die Gesamtstrecke dürften auch gut und
> gern 120 m sein.
Habe ich da richtig gelesen? Das geht ja wohl gar nicht!! Ein twistet 
pair Kabel ist ja wohl ein Muss! Das steht in jeder Beschreibung über 
RS485. Sonst passt auch der Standard-Abschlusswiderstand nicht und 120m 
kannste wohl knicken. Ich habe ein billiges Cat5-Kabel genommen 
(Reichelt: 30m für 7€ und ein paar Patch-Verbinder für 1,95 muss man 
schon mal ausgeben).
OP #2161961
Lesenswert?

Hermann schrieb:
> Ich habe mal in die Bedienungsanleitung des Hexin Technology HXSP-485B
> gesehen. Die Kopplung zweier Module über RS485 ist vorgesehen.
> Vielleicht ist es ja ein ganz dummer Fehler:
> - Ist die Baudrate auf beiden Seiten richtig eingestellt?

Jawoll. In mehreren Stunden Rumprobiererei muss allein statisch gesehen 
schon die richtige Einstellung dabei gewesen sein :)

> - Ist die Polarität der RS485 auf beiden Seiten richtig?
+ auf + und - auf -, nicht wahr?
> Bei mehrfach
> unterbrochenem Klingeldraht ist das ja schnell passiert.
Der ist noch nicht im Einsatz, im Moment ist alles noch auf dem 
Labortisch montiert.


> Habe ich da richtig gelesen? Das geht ja wohl gar nicht!! Ein twistet
> pair Kabel ist ja wohl ein Muss!

Sag das nicht der Installation auf RS485-Basis, die ich betreue, dort 
sind bei ca. 120m Gesamtbuslänge ca. 60 Meter Telefon-Erdkabel beteiligt 
:)
Gast #2162005
Lesenswert?

Jens B. schrieb:
> Als
> Verbindungsleitung steht mehr sowas wie ein mehrfach unterbrochener
> "Klingeldraht" zur Verfügung, die Gesamtstrecke dürften auch gut und
> gern 120 m sein.

Sowohl für RS232 als auch für RS485 wäre es schon gut, wenn die Leitung 
nicht unterbrochen ist.
;-)
Gast #2162166
Lesenswert?

Jens B. schrieb:
> Ein Hitachi VC 6145 (100 MHz 4ch, 2K Speicher) wäre verfügbar.

Dann kann doch jetzt die gezielte Fehlersuche los gehen. Zum Beispiel 
auf der PC-Seite per Software ein Zeichen wiederholt senden. Das muss 
dann am Anfang der Leitung zu sehen sein, wobei auf der Leitung B, das 
invertierte Signal der Leitung A zu sehen sein muss. Die beiden Signale 
können dann bis zum Empfänger verfolgt werden. Auf der RFID-Seite muss 
das Signal dann am PIN 3 der D-SUB-Buchse heraus kommen. Wenn das 
funktioniert sehen wir weiter.
gk
#2162189
Lesenswert?

Jens B. schrieb:

>> - Ist die Polarität der RS485 auf beiden Seiten richtig?
> + auf + und - auf -, nicht wahr?

Wie sieht es mit Deiner Masse aus?

Obwohl der RS485 Receiver im Prinzip nur die Spannungsdifferenz misst, 
brauchst Du trotzdem eine gemeinsame Masse, weil der 
Aussteuerungsbereich des Differenzverstärkers begrenzt ist. Heißt also: 
Wenn das Ground-Potential der beiden Seiten um mehr als sagen wir mal 7V 
unterschiedlich ist, funktioniert es nicht mehr.

Genau wie bei CAN brauchst Du bei RS485 neben den beiden Signalleitungen 
für einen zuverlässigen Betrieb noch eine Masseleitung. Hast Du die?
Ein unzuverlässiger Betrieb kommt ggf. ohne Masse aus - wenn die 
Potentialdifferenzen gering genug sind, mag das zufällig funktionieren - 
das ist das Gemeine daran.

fchk

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren