Re(5): Proprietärer 2-Draht-Bus, Botschaften manipulieren/ändern
Geizhals » Forum » Programmierung » Proprietärer 2-Draht-Bus, Botschaften manipulieren/ändern (13 Beiträge, 633 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
Proprietärer 2-Draht-Bus, Botschaften manipulieren/ändern
06.02.2017, 21:50:08
Ich habe 5 Geräte an einem offensichtlich proprietären 2-Draht-Bus.

Die für mich relevanten Botschaften/Telegramme habe ich bereits entschlüsselt.

Ich möchte zumindest eine der Botschaften von einem der Geräte abhängig von ihrem Inhalt verändern, d.h. die "richtige" Botschaft entfallen lassen und durch eine veränderte Botschaft ersetzen.
(Konkret, aber vereinfacht: Wenn 1 von 3 bestimmten Bits gesetzt ist, möchte ich abhängig von der Uhrzeit zusätzlich ein weiteres der beiden nicht gesetzten Bits setzen.)

Ich habe mir überlegt, die Busleitung aufzutrennen und ein selbst programmiertes Gateway dazwischenzuhängen. Das Gateway kopiert die Botschaften der 4 unveränderten Geräte auf den anderen Bus bzw. es liest die Botschaften von dem 1 Gerät, dessen Inhalt ich manchmal verändern will, ein und schreibt die veränderten Botschaften auf den Bus der 4 unveränderten Geräte.

Hier noch einige Infos, die ich über die Geräte/Botschaften habe und für relevant erachte:

Alle 5 Geräte senden permanent in immer der gleichen Reihenfolge am Bus eine "Standard"-Botschaft (enthält als Daten vmtl. irgendeine Seriennummer/Typ o.ä.). Danach kommt noch irgendeine weitere "Abschluss-Botschaft". Wer die sendet weiss ich nicht.
Wenn ein Gerät Daten übertragen will, sendet es anstatt der "Standard"-Botschaft seine "Daten"-Botschaft. Diese "Daten"-Botschaft wird nur 1x versendet, wenn sich der Inhalt ggü. der zuletzt gesendeten "Daten"-Botschaft ändert.
Beim Hochfahren des Bus findet offenbar irgendeine Initialisierung statt, bei der die IDs der Geräte (in meinem Fall 0x00-0x04 bzw. 0xF0 für den Abschluss) vergeben werden. Dabei scheint es keine Priorität zu geben, die IDs scheinen "zufällig". Wird ein Gerät abgeklemmt und wieder angeklemmt, hat es u.U. eine andere ID als vorher. Trotzdem funktioniert der Gesamtverbund problemlos.

Wie gehe ich das am Besten an?

Mein Hauptproblem scheint das richtige Timing zu sein. Wie schaffe ich es, immer die gleiche Reihenfolge einzuhalten?

Bisher habe ich nur mit HTerm "mitgelauscht" und dann die Botschaften entschlüsselt.
Ein Sendeversucht mit HTerm hat keine Reaktion verursacht, sie ist nichtmal bei den "gesendeten Botschaften" aufgeschienen.

BMW 320d E90: Spritmonitor.de
Yamaha FZ6-S Fazer: Spritmonitor.de
Antworten PM Alle Chronologisch
 
Melden nicht möglich
.....
Re(5): Proprietärer 2-Draht-Bus, Botschaften manipulieren/ändern
07.02.2017, 23:22:25
Ausgeborgter RS485-auf-USB-Adapter. In dem Zuge wurde mir auch HTerm
empfohlen.

wer ist auf diese Idee gekommen? RS485/RS422 sind differentielle/symmetrische Schnittstellen, AFAIK brauchen die sogar 4 Drähte - sowas können die meisten Controller inkl. dem MSP430 ohne extra Treiberchips gar nicht ausspucken. (Was aber nicht ausschließt, daß deren Protokoll "unbalanced" mißbraucht wird, so wie man das notfalls auch mit XLR-Audio tun kann.)

Daß der Adapter da tatsächlich was zuverlässig zu decodieren scheint, ist natürlich eine vielversprechende Beobachtung, aber IMHO noch nicht die Lösung. Mit welchen Baudraten und hast du in hterm den experimentiert?

Erst einmal würd ich - sofern nicht ohnehin eine Internetrecherche, zu den fraglichen Geräten was ergibt - ausmessen, wie die beiden Drähte tatsächlich beschalten sind = handelt es sich um Masse + Bussignal / "1-wire"-verwandtes-Protokoll (brauchen trotzdem eine Masse, aber ohne die Phantomspannung)? Mit welchen Pegeln arbeitet das Drahtpaar?

Kurz: Ich seh da einen Fall für einen Logic Analyzer, mit dem man die Kandidaten, die punkto Verdrahtung und Spannungspegel ins Bild passen durchprobieren kann. Ich glaube, daß du ein Detail auf der elektrischen Seite übersehen hast, das dein Adapter nicht mitbekommt.

Nach wie vor würde es mich wundern, wenn da angesichts der inzwischen üblichen bereits von den Controllern mitgelieferten Protokolle was eigenes erfunden worden wäre.

Aber wie gesagt ... bin kein Elektronik-Crack, nur ein paar Beobachtungen, Erfahrungswerte und was man sich so anliest.

Antworten PM Alle Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung