Forum: PC Hard- und Software rs485 und eigenartige Parity


von Miki C. (miki11)


Angehängte Dateien:

Lesenswert?

Hallo,

ich analysiere hier gerade eine RS485 Übertragung. Soweit kann ich 
schonmal sagen, dass ich 9600Baud mit 11 Bits habe. 1 Start Bit, 1 Stop 
Bit und entweder 9 Bit Daten, oder 8Bit (hoffe ich) und dann eine 
eigenartige Nutzung der Parity.

So wie es aussieht ist der Bit vor der Stop Bit immer dann High, wenn 
eine längere Pause statt fand, vermutlich kommt dann ein Befehl und dann 
die Parameter mit Space als Parity.

Kennt jemand ein Standard zu so eine Übertragung, oder hat man hier was 
eigenes gebastelt?

von dummschwaetzer (Gast)


Lesenswert?

485 mit mehr als 2 Teinemer? Eventuell Adressierungsbyte.

von Nick M. (Gast)


Lesenswert?

Manchmal wird das "9. Bit" verwendet um zwischen Daten und Kommandos zu 
unterscheiden.

von Johannes S. (Gast)


Lesenswert?

auch Multiprocessor oder Multidrop genannt, gibt es schon sehr lange.

von Miki C. (miki11)


Lesenswert?

Danke für die Antworten.
Ja, mehr als zwei Teilnehmer, Adressierung wird aber anderes erfolgen, 
da es Verschiedene Baugruppen, mit bis zu 16 Adressen angeschlossen 
werden.
Das mit der Kommando erscheint, wie gesagt noch am plausibelsten.
Das Problem damit ist jedoch, dass die "normale" Libs keine direkte 
Manipulation des 9.Bits zulassen.

Darum meine Frage, ob es irgendwo eine Definition für sowas existiert, 
also ob das Kind einen Namen hat, nach der ich googlen kann.

Ich werde erstmal versuchen diesen Bit zu ignorieren und hoffe, dass die 
Slaves auch ohne agieren. Versuch macht schlau.

: Bearbeitet durch User
von Johannes S. (Gast)


Lesenswert?

Namen hatte ich doch schon genannt. In dem Modus werden 9 Bit 
übertragen, das wäre hier ohne Parity. Mit dem 9. Bit werden Daten und 
Adressen unterschieden. Dabei gibt es je nach UART Variationen wie 
darauf reagiert wird, von daher kann man auch von hier aus suchen: 
welcher Controller oder UART ist hier verbaut?

von Pandur S. (jetztnicht)


Lesenswert?

Ich fuerchte der Poster moechte einen PC anschliessen... In dem Falle 
waer's dann :
1) USB UART (FT232)
2) Controller
3) RS485 Treiber (ADM483)
4) allenfalls eine Isolation (ADuM1301) zwischen drin

Zwischen PC und Controller ein passendes Protokoll laufenlassen.

: Bearbeitet durch User
von Miki C. (miki11)


Lesenswert?

Danke nochmal,

@Johannes S. (jojos)
Ja, hast du. Es dauerte ein Moment, bis ich darüber brauchbare Infos 
gefunden habe.

@Pandur S. (jetztnicht)
es steht nicht fest, worüber ich was machen will.

Es ging insgesamt darum, für diese Technik mehr Verständnis zu erlangen.

Meine erste Versuche waren am PC mit einem einfachen RS485 USB Dongel 
und QSerialPort als LIB.
Die Daten konnte ich soweit sehen und Analysieren. Als erstes wird ein 
Befehl mit 9.Bit Mark gesendet. Danach ein Byte für die Adresse, dann 
weitere zwei Zahlen und ein XMODEM CRC16.

Da alleine schon die QT LIB an der stelle nur mit aufwendige Tricks es 
erlaubt den 9. Bit zu manipulieren, geht das auf diesen einfachen Weg 
nicht weiter.

Dennoch habe ich auch Befehle simulieren können. Raspberry wäre noch 
eine Möglichkeit, wenn ich dafür einen RS485 besorge, bzw. auf die von 
Pandur S. genannte setzte und dann ein passende LIB suche, oder 
eventuell scheibe.

Aber wie gesagt, es ging mir nur darum, zu verstehen, welche Hürden hier 
entstehen, und welche Möglichkeiten verfolgt werden können.

Das habe ich jetzt soweit erarbeitet und kann soweit den Aufwand 
einschätzen, wenn ich meine Neugierde weiter nachkommen wollte. Danke 
für die Hilfe.

PS: es geht um eine Alarmanlage, welche über RS485 BUS mit seine 
Komponenten kommuniziert.

EDIT:
Man findet Lustige Sachen im Netz hierzu, z.B. meinte hier jemand, das 
sei ein BUG, den 9.Bit nicht manipulieren zu können:
https://bugreports.qt.io/browse/QTBUG-70364
Hier wird auch ein Versuch beschrieben:
https://bohdan-danishevsky.blogspot.com/2016/10/9-bit-serial-communication-in-linux.html

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.