Crc berechnung ?

Gast #6710782
Lesenswert?

Hallo
Ich habe mit einen Akkutester gekauft EBC-A20
https://de.aliexpress.com/item/1005002193414522.html?
Ein wie ich finde tolles Gerät.

Zum Problem. Die Software welche die Daten aufzeichnet und eine Lade / 
Endladekurve darstellt ist ein Windows Programm und muss permanent 
laufen um die Messung ordentlich aufzuzeichnen. Ich habe eigentlich kein 
Windows und ich möchte keinen Pc Ewig laufen lassen. Ich teste damit 
LifePo4 Zellen mit bis zu 300A das dauert etwas.
Ich möchte das Problem mit einem Raspberry oder ggf sogar einer Avr 
Lösung lösen
 Die Schnittstelle ist seriell 9600
Der grundlegende Aufbau des Protokoll ist soweit einfach nur an der 
Checksumme fehlt es mit

Die Software sendet einmalig das sie Verbunden ist zum Gerät
[250,5,0,0,0,0,0,0,5,248]
Und einmalig das sie getrennt wird
[250,6,0,0,0,0,0,0,6,248]

Wenn der Pc verbunden ist lässt sich das Gerät nicht mehr per tasten 
bedien. auch nicht wenn die Verbindung getrennt wird oder der Pc aus 
ist.
Nur der Befehl zum trennen oder ein Reset hilft da.

Wenn das gerät verbunden ist sendet es selbstständig im ca Sekundentakt 
die Messwerte.
[250,12,1,200,15,100,0,101,0,0,2,20,1,130,0,10,9,93,248]
[250,12,1,231,15,100,0,35,0,0,2,20,1,130,0,10,9,52,248]
[250,12,1,211,15,100,0,71,0,0,2,20,1,130,0,10,9,100,248]
[-1-,--2-,---3--,---4-,--5--,-6-,--7-,--8--,--9-,xx,yyy]

1 Start
2 A ist
3 V ist
4 mAh ist
5 ?
6 A Soll
7 V Soll
8 ?
9 Temperatur ?
xx crc
yy ende

Es sei gesagt die jeweils 2 Byte zu einem Datenfeld werte werden 
merkwürdig berechnet
[250,12,1, 200,15,  100,0,101,0,0,2,20,1,130,0,10,9,93,248]
15*240! +200 = 3600 = 3,6V
Ich habe noch nie gesehen das die mit 240 berechnet werden.


Befehle zum Starten Vom Pc zum Gerät
start
c-cv 5a 3,7v 0,1v
[250,33,2,20,1,130,0,10,190,248]
c-cv 5a 3,8v 0,1v
[250,33,2,20,1,140,0,10,176,248]
c-cv 4a 3,8v 0,1v
[250,33,1,160,1,140,0,10,7,248]
c-cv 4,1a 3,8v 0,1v
[250,33,1,170,1,140,0,10,13,248]

Hat jemand eine Idee wie die auf die Checksumme kommen?
Gast #6710813
Lesenswert?

[250,33,1,170,1,141,0,10,12,248]
[250,33,1,170,1,142,0,10,15,248]
[250,33,1,170,1,143,0,10,14,248]
[250,33,1,170,1,144,0,10,17,248]
[250,33,1,170,1,145,0,10,16,248]

Das sieht irgendwie nach xor oder so aus?
Gast #6713969
Lesenswert?

Sven schrieb:
> Es sei gesagt die jeweils 2 Byte zu einem Datenfeld werte werden
> merkwürdig berechnet
> [250,12,1, 200,15,  100,0,101,0,0,2,20,1,130,0,10,9,93,248]
> 15*240! +200 = 3600 = 3,6V
> Ich habe noch nie gesehen das die mit 240 berechnet werden.
Das verhindert, dass Werte ab 240 in den Daten vorkommen. Dadurch wird 
das Framing robuster: wenn der Empfänger eine 250 sieht, weiß er immer, 
dass das der Start (oder Prüfsumme) ist; das kann nach 
Übertragungsstörungen wichtig sein.

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