Checksum van KNX telegram berekenen

Alle vragen of opmerkingen betreffende EIB-KNX hardware kan je hier kwijt.
Plaats reactie
ON3WVS
Berichten: 25
Lid geworden op: di 07 feb 2017, 16:38

Checksum van KNX telegram berekenen

Bericht door ON3WVS »

Hallo,

Ik heb aan de hand van de beschikbare informatie op het internet, uitgezocht hoe een KNX telegram opgebouwd is. Het is me enkel nog niet duidelijk hoe de checksum aan het eind van deze telegram berekend wordt. Ik heb verscheidene documenten gevonden waar dit "redelijk vaag" uitgelegd wordt maar ik ben op zoek naar iemand die mij dit eens wat nader kan uitleggen.

Op pagina 13 van dit document http://www.ti.com/lit/an/swra497/swra497.pdf staat een uitleg maar ik snap hem niet geheel.

Stel dat mijn payload 3 bytes lang is, dan spreken ze van die extra pariteitsbit op het einde, maar die pariteitsbit zit in de hardware layer en moet niet in het telegram vermeld worden neem ik aan? Dan snap ik ook niet met welke bewerking die laatste 8 bits, dus de echte checksum, berekend wordt.

Iemand hier kaas van gegeten?

Bedankt alvast!
egfdevos
Berichten: 1417
Lid geworden op: vr 26 jul 2013, 07:31
Locatie: Zeeuws-Vlaanderen, NL

Re: Checksum van KNX telegram berekenen

Bericht door egfdevos »

Volgens mij zat het ongeveer zo:
Elke reeks data is 11 bits lang. Meerdere reeksen als je een groter pakket stuurt.

Bestaande uit:
startbit (1bit)
data octet (8bits)
pariteitsbit (1bit) "horizontale foutcontrole"
stopbit (1bit)

Checksum doet de "verticale foutcontrole"
op de bitpositie van de data octets word een pariteitscontrole gedaan.
b.v. van 1e octet bit 1, 2e octet bit 1 word een pariteitscontrole gedaan en deze komt dan als bit 1 in de checksum etc.

Als er nu 1 bitje fout gaat kun je nu precies zien welk bitje dat was en oplossen.
Worden er meer fouten gezien dan moet het hele telegram opnieuw verzonden worden.

:?: Ik kan het fout hebben maar volgens mij moet pagina 13 fig 16 de checksum zijn: 0010 1000 en niet 0010 0000
Edwin
ON3WVS
Berichten: 25
Lid geworden op: di 07 feb 2017, 16:38

Re: Checksum van KNX telegram berekenen

Bericht door ON3WVS »

Beste Egfdevos

Bedankt voor uw reactie. Het voorbeeld op p.13 houdt inderdaad geen steek, maar hoe kom je aan het resultaat van de checksum?

Voor D0 hebben we in dat voorbeeld 0 - 1 - 0 en de check bit D0 wordt een 0.
Klopt het als de som van alle D0 digits oneven is dan wordt de checkbit 0?

Dan bij D2 hebben we 1 - 1 - 0 dus de som is even. Bij een even uitkomst wordt de checkbit D2 een 1 dan.

Klopt deze logica?
egfdevos
Berichten: 1417
Lid geworden op: vr 26 jul 2013, 07:31
Locatie: Zeeuws-Vlaanderen, NL

Re: Checksum van KNX telegram berekenen

Bericht door egfdevos »

Helemaal juist voor de verticale pariteit

(Horizontaal is het net andersom even aantal geeft "0")
Edwin
ON3WVS
Berichten: 25
Lid geworden op: di 07 feb 2017, 16:38

Re: Checksum van KNX telegram berekenen

Bericht door ON3WVS »

Hallo egfdevos,

Betreffende die horizontale pariteit:

Op p27 van deze pdf staat er een voorbeeld van een payload die uit 3 x 8 bit bestaat. Maar waar komen die horizontale pariteitsbits dan in dit telegram? Of is dat iets wat op een ander hardwareniveau automatisch gebeurt?

http://knx.com.ua/attachments/article/1 ... e_full.pdf

Thx!
egfdevos
Berichten: 1417
Lid geworden op: vr 26 jul 2013, 07:31
Locatie: Zeeuws-Vlaanderen, NL

Re: Checksum van KNX telegram berekenen

Bericht door egfdevos »

Het is 3x 8 bits aan data.
maar in zijn geheel bestaat het uit 3x 11 bits.

3x stopbit pariteitsbit databits startbit

https://support.knx.org/hc/nl/articles/ ... eel-teken-
Edwin
Plaats reactie