Forum: Mikrocontroller und Digitale Elektronik Hilfe gesucht bei xOr Prüfsumme


von Dieter R. (dieter_r)


Lesenswert?

Hallo zusammen

ich habe bei der Dekodierung des Protokolls von Eberle Instat-868-r1 
Funkthermostaten ein Problem mit der Prüfsumme. In einer Reihe von 
Telegrammen konnte ich die Prüfsumme mittels XOr verifizieren. 
Allerdings gibt es auch eine Reihe von Telegrammen bei denen dies nicht 
gelingt, bzw. die Magic Number unterschiedlich ist.
Neben dem Block "0x0 0x0 0xF" sind dies eigentlich alle Telegramme mit 
mehr als einem Block ungleich "0", aber bei denen passt es. Aber 
vielleicht habe ich ja was übersehen und jemand sieht eine Lösung. Mir 
fehlen nun irgendwie Ideen wie ich weiter vorgehen könnte.

Die relevanten Teile des Telegramms sind 5 Bytes, davon 3 Bytes 
Nutzdaten, 1 Byte Paritätszeichen "5" für ungerade ID3 und "A" für 
gerade und 1 Byte Prüfsumme. Als MagicNumber habe ich "1" ermittelt.

Gruß,
Dieter
1
ID1 ID2 ID3 Par PSum XOR
2
0x0 0x0 0x2 0x5 0x6  0x1
3
0x0 0x0 0x4 0x5 0x0  0x1
4
0x0 0x0 0x6 0x5 0x2  0x1
5
0x0 0x0 0x8 0x5 0xC  0x1
6
0x0 0x0 0xA 0x5 0xE  0x1
7
0x0 0x0 0xC 0x5 0x8  0x1
8
0x0 0x0 0xE 0x5 0xA  0x1
9
      
10
0x0 0x0 0x1 0xA 0xA  0x1
11
0x0 0x0 0x3 0xA 0x8  0x1
12
0x0 0x0 0x5 0xA 0xE  0x1
13
0x0 0x0 0x7 0xA 0xC  0x1
14
0x0 0x0 0x9 0xA 0x2  0x1
15
0x0 0x0 0xB 0xA 0x0  0x1
16
0x0 0x0 0xD 0xA 0x6  0x1
17
18
0x0 0x0 0xF 0xA 0x8  0xD
19
20
0x0 0x1 0x0 0xA 0xA  0x1
21
0x0 0x2 0x0 0x5 0x6  0x1
22
0x0 0x4 0x0 0x5 0x0  0x1
23
0x0 0x8 0x0 0x5 0xC  0x1
24
0x1 0x0 0x0 0xA 0xA  0x1
25
0x2 0x0 0x0 0x5 0x6  0x1
26
0x4 0x0 0x0 0x5 0x0  0x1
27
0x0 0x0 0x6 0x5 0x2  0x1
28
0x0 0x6 0x0 0x5 0x2  0x1
29
0x6 0x0 0x0 0x5 0x2  0x1
30
0x0 0x0 0x3 0xA 0x8  0x1
31
0x0 0x0 0xC 0x5 0x8  0x1
32
0x0 0x3 0x0 0x5 0x8  0x1
33
0x0 0xC 0x0 0x5 0x8  0x1
34
0x3 0x0 0x0 0x5 0x8  0x1
35
36
0x8 0x0 0x0 0x5 0xE  0x3
37
0x0 0xF 0x0 0x5 0x3  0x9
38
0x1 0x8 0x0 0x5 0x2  0xE
39
0x4 0x0 0x2 0x5 0x3  0x0

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Dieter R. schrieb:
> Die relevanten Teile des Telegramms sind 5 Bytes
Haben diese "Bytes" immer nur 1 Nibble und nicht wie üblich 2?
https://inst.eecs.berkeley.edu/~cs150/sp98/lectures/week6_2/tsld002.htm

von mIstA (Gast)


Lesenswert?

Dieter R. schrieb:
> Allerdings gibt es auch eine Reihe von Telegrammen bei denen dies nicht
> gelingt, bzw. die Magic Number unterschiedlich ist.

Nur mal zur Sicherheit, um auszuschließen, daß Du einfach einige 
Telegramme fehlerhaft empfangen hast: Du hast die Telegramme, bei denen 
Deine Rechnung nicht aufgeht auch alle mehrmals in identischer Form 
empfangen?


Übrigens kann ich Deine Interpretation der 4.Spalte als Parität nicht so 
recht nachvollziehen, denn über die ersten 5 Spalten hast Du fast immer 
(bis auf die letzte, dritt- und viertletzte Zeile) ungerade Parität und 
über alle 6 Spalten - interessanterweise - immer gerade Parität.

von Dieter R. (dieter_r)


Lesenswert?

Lothar M. schrieb:
> Haben diese "Bytes" immer nur 1 Nibble und nicht wie üblich 2?
> https://inst.eecs.berkeley.edu/~cs150/sp98/lectures/week6_2/tsld002.htm

Übertragung ist Manchestercodiert und die Gruppierung der einzelnen Bits 
ergab das als einzig plausible Lösung. Und danke, das Nibble hatte ich 
nicht im aktiven Wortschatz.


mIstA schrieb:
> Nur mal zur Sicherheit, um auszuschließen, daß Du einfach einige
> Telegramme fehlerhaft empfangen hast: Du hast die Telegramme, bei denen
> Deine Rechnung nicht aufgeht auch alle mehrmals in identischer Form
> empfangen?
Kann ich, ja. Die ganzen Telegramme inkl. IDs sind selber generiert und 
an den Empfänger verschickt der sie akzeptiert hat. Ich musste in 
manchen Fällen alle 16 Möglichkeiten ausprobieren, damit die Prüfsumme 
akzeptiert wurde.

> Übrigens kann ich Deine Interpretation der 4.Spalte als Parität nicht so
> recht nachvollziehen, denn über die ersten 5 Spalten hast Du fast immer
> (bis auf die letzte, dritt- und viertletzte Zeile) ungerade Parität und
> über alle 6 Spalten - interessanterweise - immer gerade Parität.

Unklare Ausdrucksweise meinerseits: die Parität bezieht sich immer nur 
auf ID3. Korrekterweise gibt es noch ein weiteres Byte mit reiner 
Information zur Parität von ID3 ("C"/"3"), bringt aber zur Auswertung 
keinen Mehrwert.

Dass die Parität über alle 6 Spalten immer "gerade" ist, ist logisch 
weil ja auch die "richtige" MagicNumber dabeisteht, die kenne ich anhand 
Spalte 1-5 ja aber noch gar nicht.

: Bearbeitet durch User
von Dieter R. (dieter_r)


Lesenswert?

Lothar M. schrieb:
> Haben diese "Bytes" immer nur 1 Nibble und nicht wie üblich 2?

Ich habe mir die Daten noch mal angesehen, also man könnte die ID und 
Parität auch als Byte schreiben, die "5" ist immer konstant. Bei der 
Prüfsumme bleibt es aber beim Nibble, höchstens man füllt auf.
Deshalb habe ich auch die MagicNumber dabei belassen.
Ist das so einfacher in der Darstellung?

Zusätzlich habe ich noch ein paar weitere Pakete erstellt und überprüft. 
Bei keinem passt, wie beinahe zu erwarten war, die ursprüngliche 
MagicNumber. Aber es wiederholt sich auffällig oft die "2", aber keine 
Ahnung was das besagt.
1
ID1 ID2 Par Psum Xor
2
3
50 01 3A A 1
4
50 02 C5 6 1
5
50 03 3A 8 1
6
50 04 C5 0 1
7
50 05 3A E 1
8
50 06 C5 2 1
9
50 07 3A C 1
10
50 08 C5 C 1
11
50 09 3A 2 1
12
50 0A C5 E 1
13
50 0B 3A 0 1
14
50 0C C5 8 1
15
50 0D 3A 6 1
16
50 0E C5 A 1
17
50 0F 3A 8 D
18
    
19
50 10 3A A 1
20
50 20 C5 6 1
21
50 40 C5 0 1
22
50 80 C5 C 1
23
51 00 3A A 1
24
52 00 C5 6 1
25
54 00 C5 0 1
26
50 06 C5 2 1
27
50 60 C5 2 1
28
56 00 C5 2 1
29
50 03 3A 8 1
30
50 0C C5 8 1
31
50 30 C5 8 1
32
50 C0 C5 8 1
33
53 00 C5 8 1
34
    
35
58 00 C5 E 3
36
50 F0 C5 3 9
37
51 80 C5 2 E
38
54 02 C5 3 0
39
    
40
50 11 3A 4 E
41
51 01 3A 4 E
42
51 10 C5 5 0
43
51 11 3A D 6
44
50 88 C5 0 5
45
58 80 C5 7 2
46
58 08 C5 7 2
47
58 88 C5 F 2
48
55 55 3A 9 2
49
5A AA C5 D 2

von Dieter R. (dieter_r)


Lesenswert?

Anscheinend bisher keiner da, der weiterhelfen kann. Ich habe hier noch 
einen Satz an Telegrammen, vielleicht hilft das weiter. Für ID3 0-7 
stimmt die Prüfsumme bei "00" und "FF" überein und lässt sich über Xor 
berechnen, für 8-F bei "FF" dagegen nicht mehr.
Die gleichen Prüfziffern habe ich auch bei "7A" und "8A" bzw. "85", aber 
unterschiedliche Werte für Xor.
Langsam bin ich am zweifeln ob Xor denn tatsächlich die Methode der Wahl 
ist.

Ich weiß nicht, ob das auch ein Hinweis ist, aber es werden vom Sender 
auch nicht alle "FFF" möglichen IDs generiert. ID1/2 wird nur 00, 05, 
0A, 0D, 12, 15, 18, 1A, 1F,..., F2, F5, FA, FF

000 C5 4  7A0 C5 4  850 C5 4  8A0 C5 4  FF0 C5 4
001 3A A  7A1 3A A  851 3A A  8A1 3A A  FF1 3A A
002 C5 6  7A2 C5 6  852 C5 6  8A2 C5 6  FF2 C5 6
003 3A 8  7A3 3A 8  853 3A 8  8A3 3A 8  FF3 3A 8
004 C5 0  7A4 C5 0  854 C5 0  8A4 C5 0  FF4 C5 0
005 3A E  7A5 3A E  855 3A E  8A5 3A E  FF5 3A E
006 C5 2  7A6 C5 2  856 C5 2  8A6 C5 2  FF6 C5 2
007 3A C  7A7 3A C  857 3A C  8A7 3A C  FF7 3A C
008 C5 C  7A8 C5 C  858 C5 B  8A8 C5 C  FF8 C5 B
009 3A 2  7A9 3A 2  859 3A 5  8A9 3A 2  FF9 3A 5
00A C5 E  7AA C5 E  85A C5 9  8AA C5 E  FFA C5 9
00B 3A 0  7AB 3A 0  85B 3A 7  8AB 3A 0  FFB 3A 7
00C C5 8  7AC C5 8  85C C5 C  8AC C5 8  FFC C5 C
00D 3A 6  7AD 3A 6  85D 3A 2  8AD 3A 6  FFD 3A 2
00E C5 A  7AE C5 A  85E C5 F  8AE C5 A  FFE C5 F
00F 3A 4  7AF 3A 4  85F 3A 1  8AF 3A 4  FFF 3A 1

von Anton (adr)


Lesenswert?

Hallo Dieter,

unsere Heizung hat zwei Zonen die jeweils von einem Eberle Instat-868-r1 
gesteuert werden.  Ich würde gerne die Kontrolle per Raspi übernehmen. 
Ist es dir gelungen, zuverlässig mit den Eberle Empfängern zu 
kommunizieren?

Mit freundlichen Grüßen,

Anton

von Dieter R. (dieter_r)


Lesenswert?

Hallo Anton,
ja, habe das Problem gelöst bekommen, aber nichts mehr daran gearbeitet. 
Kontaktiere mich gerne per pm

Gruß,
Dieter

von Anton (adr)


Lesenswert?

Hab's versucht, hoffentlich hat's geklappt.  :)

Anton

Dieter R. schrieb:

> Kontaktiere mich gerne per pm

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.