PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fahrradcomputer. Aufschlüsseln von Datenpaketen



Searcher
22.03.2020, 12:25
Hallo,

bitte um Hilfe bei Dekodierung von Datenpaketen :pray:

Ich versuche die Daten, die von einem Geschwindigkeitssender an einer Fahrradgabel zum Fahrradcomputer drahtlos gesendet werden zu entschlüsseln. Es handelt sich um den BC2316 STS von Sigma.

Dazu habe ich die Datenpakete empfangen, die Länge der Pulse und Pausen gemessen und aufgezeichnet. Geschichte und Meßaufbau siehe diesen und folgende Blogeinträge. https://www.roboternetz.de/community/entries/468-Wie-%C3%BCberliste-ich-den-Fahrradcomputer

Im Anhang befindet sich eine komprimierte csv Datei (Semikolon delimited) mit 1026 aufgezeichneten Datenpaketen. Die erste Zahl einer Zeile ist der Beginn eines Pakets. Immer eine Einschaltung einer Sendefrequenz von 112kHz für etwa 6840µs (57*120µs). Dann folgt eine Abschaltung für Länge der zweiten Zahl der Reihe für etwa 960µs (8*120µs). Dritte Zahl wieder Einschaltung der Sendefrequenz in µs. usw. Die Pakete dauern alle gleich lang mit einer Dauer von etwa 38400µs. Die Interpretation des Vielfachen von 120µs ist meine "Erkenntnis" :-) und muß nicht stimmen.

Die Pakete können an den Fahrradcomputer im Abstand von 1130 Millisekunden gesendet werden (so werden sie auch vom Geschwindigkeitssender gesendet; unabhängig von der Radgeschwindigkeit immer gleicher zeitlicher Abstand). Auf der Anzeige wird dann eine Geschwindigkeit von 16,6km/h angezeigt. Der Radumfang ist mit 2095mm eingestellt. Im Datenpaket ist auch noch irgendwo eine Sender ID versteckt, da der Sender von ID 1 auf ID 2 umgestellt werden kann so daß der Computer an verschiedenen Rädern genutzt werden kann. Im Augenblick ist ID 1 eingestellt. Wird die Sendereihenfolge der Pakete geändert, wird zwar noch die richtige Geschwindigkeit angezeigt aber die Angabe der gefahrenen Strecke stockt. Wird dann irgendwann wieder aufgenommen aber zeigt einen Sprung in der Streckenlänge an, der nichts mit der "Stockzeit" zu tun hat.

Wird das Senden mit dem ersten Paket aus der CSV Datei begonnen, dauert es vier bis acht Pakete (ca. 4 bis 8 Sekunden, ist unterschiedlich) bis sich der Computer synchronisiert hat und beginnt anzuzeigen. Daz muß der Computer in der Halterung eingeklinkt sein, die nur zwei Kontakte am Computer verbindet. Unterbricht man die Verbindung für etwa 1,5 Sekunden, synchronisiert sich der Computer neu auf den Sender. Kann auch per Tastendruck aufgerufen werden.

Auf dem Oszi sieht ein Paket wie folgt aus. Zweites Bild mit Beginn eines Pakets in höherer Auflösung. Kanal eins: Empfang an der Empfangsspule gemessen. Kanal zwei: Nach Aufbereitung für Messung am µC.

34902 34903

Wer hat zuviel Zeit und möchte sich an der Dekodierung versuchen oder kennt sogar das Protokoll?

Gruß
Searcher

Moppi
22.03.2020, 13:01
Hallo Searcher,

ich lese das ja schon eine ganze Zeit mit, bei Dir.
Nur zum besseren Verständnis: was wird da drahtlos übertragen, was Du aufgezeichnet hast, ist das nur das Tachosignal?


MfG

Searcher
22.03.2020, 13:23
... was Du aufgezeichnet hast, ist das nur das Tachosignal?
Ja. Der Sensor zur Geschwindigkeitsmessung wird ja normalerweise an der Vorderradgabel am Fahrrad befestigt. Am Laufrad gibt es ein Permanentmagnet, der bei jeder Radumdrehung im Vorbeistreichen am Sensor kurz den Reedkontakt im Sensor betätigt. Der Sensor sendet nun drahtlos Datenpakete zum Computer. Die habe ich aufgezeichnet. Alle anderen Daten, die der BC2316 noch auffangen kann, interessieren mich im Augenblick nicht.

Ist das Rad eine Weile in Ruhe, sendet der Sensor nichts mehr. Nach einmaliger Betätigung des Reedkontaktes werden acht Pakete im Abstand von 1130ms gesendet. Dann wieder nichts mehr, es sei denn, der Reedkontakt ist während der Sendung der ersten acht Pakete wieder betätigt worden. Dann läuft ununterbrochen die Sendung im 1130ms Abstand bis das Laufrad wieder steht.

Die ersten Pakete in der angehangenen CSV Datei entsprechen übrigens den ersten Paketen nach Ruhe und dann erster Betätigung des Reedkontakts. Der Reedkontakt wird dann weiter betätigt in zeitlichen Abständen die den 16,6km/h entsprechen - fast 20 Minuten lang für die 1026 Datensätze.

Gruß
Searcher

Moppi
22.03.2020, 14:00
Wenn der nur das Signal sendet, pro Umdrehung, dass also eine Umdrehung geschafft ist, dann wären doch die Datenpakete identisch oder würden sich kaum unterscheiden (evtl. Nummerierung). Und es wären auch nicht so viele notwendig.

Leider kann ich mit den Werten in der Tabelle nichts anfangen.


MfG

Searcher
23.03.2020, 06:38
Wenn der nur das Signal sendet, pro Umdrehung, dass also eine Umdrehung geschafft ist, dann wären doch die Datenpakete identisch oder würden sich kaum unterscheiden (evtl. Nummerierung). Und es wären auch nicht so viele notwendig.

Das wäre zu einfach;) Ich habe jetzt noch zwei Aufnahmen angehangen. csv Dateien mit je 50 Paketen (Dateien mit Endung csv lassen sich nicht hochladen) Die Toleranzen in der Zeitmessung zu den 1026 Paketen Datei im ersten post kommen durch leicht unterschiedliche Lage der Empfangsspule zum Sender zustande.

Da man die ID am Geschwindigkeitssensor umschalten kann, ist die eine Aufnahme mit ID1, die andere mit ID2. Die Geschwindigkeit am Tacho damit ist 3,2km/h bei 2095mm Radumfang. Außer der ID sollte alles gleich sein. Aber nein! Selbst die ID, die vielleicht immer an der gleichen Stelle im Paket steht, kann ich nicht finden. Werd mal sehen, ob ich noch weitere sinnvolle Aufnahmen machen kann. Du hast mir ja im Blog einige Anregungen gegeben Moppi.

Gruß
Seracher

Moppi
23.03.2020, 11:41
Ja, wer weiß, wie das kodiert ist. Möglichkeiten sind zahlreich.
Deshalb ist es vielleicht sinnvoll, den Datenwirrwar, der übertragen wird, situationsabhängig abzugreifen und aufzuzeichnen, was Du offenbar schon kannst.
Dann kannst Du die einzelnen Sequenzen verwenden, wie Du sie benötigst. Wenn Du Pech hast, funktioniert das dann aber auch nicht 100%.

MfG