Hallo, ich habe da leider eine "dumme" Frage. Ich habe ein Ladegerät und einen Akku. Das Ladegerät "spricht" via einer "1-Draht" Verbindung mit dem Akku um festzustellen wie es dem Akku geht. Jetzt wollte ich schauen was die genau sprechen und verstehe das Protokoll nicht so ganz. Fakt ist, das Ladegerät sendet einen TTL Pegel von 5 Volt aus. Wird der Akku eingesteckt, wird der Pegel kurz auf 0 gesenkt und der "Master" also das Ladegerät beginnt mit dem Senden von Informationen (Bild anbei). Jetzt werde ich aber genau nicht schlau aus diesem Header. Es sieht nicht aus wie One-Wire noch wie LIN Bus... Daher die Frage, kann sich das Signal einer erklären? Schon mal gesehen? Ich glaube nicht an eine "Eigenentwicklung" daher die Frage, ob das jemand kennt oder zumindest eine Idee wie man das decodieren kann? kleinster Peak = 200 us Mittlerer Peak = 1,4 ms großer Peak = 5 ms Vermutung: großer Peak = Break/Pause Mittlerer Peak = Adresse ?? kleiner Peak = Break ? Danke für jede Unterstützung!
c-hater schrieb: > Andreas Z. schrieb: > >> Ich glaube nicht an eine "Eigenentwicklung" > > Warum nicht? Ich denke das ist viel zu teuer - nur für die Abfrage wie es einer Batterie geht. Aber ich weis es natürlich nicht - war nur ne Vermutung.
Mister M. schrieb: > Ich denke das ist viel zu teuer Ach watt, ein simples serielles Protokoll für ein paar Bits oder Bytes Payload schreibt jeder gelernte Programmierer in ein paar Minuten im Halbschlaf runter. Was wirklich teuer wäre, ist hingegen: ein Standardprotokoll zu verwenden und das dann durch Verschlüsselung gegen Mitlauscher zu sichern.
c-hater schrieb: > Mister M. schrieb: > >> Ich denke das ist viel zu teuer > > Ach watt, ein simples serielles Protokoll für ein paar Bits oder Bytes > Payload schreibt jeder gelernte Programmierer in ein paar Minuten im > Halbschlaf runter. > > Was wirklich teuer wäre, ist hingegen: ein Standardprotokoll zu > verwenden und das dann durch Verschlüsselung gegen Mitlauscher zu > sichern. Die Frage ist ja eigentlich, welche Ansätze es gibt das Signal zu verstehen? Was kann man ggf. ausschließen um die Daten zu verstehen?
low-impuls: start telegramm danach kommt irgendwas mit entweder kurzem oder langem impuls pro bit entsprechend 0 oder 1 (oder andersrum). jedenfalls sieht das nach der übertragung von 2 byte aus.
Moin, das schaut für mich nach einem LIN Bus aus. Vielleicht hilft dir die Info.
blabla schrieb: > Moin, > das schaut für mich nach einem LIN Bus aus. Vielleicht hilft dir die > Info. Dachte ich auch erst aber normalerweise werden am Anfang die Baud Raten ausgetauscht aber wir haben hier nur ein High Signal mit 25 Bits. Das passt irgendwie für mich nicht oder ich sehe das komplett falsch. Anbei ein neues Bild - umgestaltet in Bits in Excel, basierend auf den Zeitwerten des kleinsten Signals (200 us).
Interpretation auf den ersten Blick: - langer Attention Puls - Wert - Wert wiederholt als Fehlercheck 1000011: 67 (geraten: 67 -> 6,7 -> Hälfte von 13,4 -> beliebte Akkuspannung im Auto) 0111100: 60 Passen die Zahlen irgendwie zur Applikation?
1 wire Fuel Gauge? https://www.maximintegrated.com/en/products/parametric/search.html?fam=batt_stat&374=1-Wire
Ant Wort schrieb: > Interpretation auf den ersten Blick: > - langer Attention Puls > - Wert > - Wert wiederholt als Fehlercheck > > 1000011: 67 (geraten: 67 -> 6,7 -> Hälfte von 13,4 -> beliebte > Akkuspannung im Auto) > 0111100: 60 > > Passen die Zahlen irgendwie zur Applikation? Nein, das ist nur die Anfrage des Ladegerätes an den Akku - der Akku hat noch nicht geantwortet. Anbei einmal ein neues Bild mit meiner "Interpretation". Kennt das einer? Stimmt das? Aktuell gehe ich von einer 6-Bit seriellen Übertragung mit einem Start und einem Stop Bit aus - sowie jeweils dem langen Warteimpulsen. Der ganze Spaß bei 9600 Baud.
ACDC schrieb: > 1 wire Fuel Gauge? > > https://www.maximintegrated.com/en/products/parametric/search.html?fam=batt_stat&374=1-Wire Leider kenne ich den Chip nicht - vergossen mit Epoxy ... ist aber ein Deutscher Hersteller aus Süddeutschland. Recht bekannt - scheint darauf bedacht zu sein Sachen zu bauen die keiner Reparieren kann.
Mister M. schrieb: > Leider kenne ich den Chip nicht - vergossen mit Epoxy ... ist aber ein > Deutscher Hersteller aus Süddeutschland. Recht bekannt - scheint darauf > bedacht zu sein Sachen zu bauen die keiner Reparieren kann. Du kannst aber das 1-wire Protokoll von Maxim mit deinem vergleichen. Ein deutscher Hersteller? Um welche Summen geht es? 1 mio pro Gerät? oder Consumer 30€ Gerät?
ACDC schrieb: > Mister M. schrieb: >> Leider kenne ich den Chip nicht - vergossen mit Epoxy ... ist aber ein >> Deutscher Hersteller aus Süddeutschland. Recht bekannt - scheint darauf >> bedacht zu sein Sachen zu bauen die keiner Reparieren kann. > > Du kannst aber das 1-wire Protokoll von Maxim mit deinem vergleichen. > > Ein deutscher Hersteller? > Um welche Summen geht es? > 1 mio pro Gerät? > oder Consumer 30€ Gerät? Klassische Consumer Akkus, eigentlich nichts besonderes. Problem ist, wenn die Tiefenentladen sind, wird der tiefste Stand gespeichert und an das Ladegerät übermittelt - was dann nicht mehr lädt und man den Akku entsorgen kann. Das ist auf Dauer sinnfrei und nicht unbedingt gut für die Umwelt.
Mister M. schrieb: > Problem ist, wenn die Tiefenentladen sind, wird der tiefste Stand > gespeichert und an das Ladegerät übermittelt - was dann nicht mehr lädt > und man den Akku entsorgen kann Ich würde mal probieren herauszufinden, wer was macht. Mit einem Widerstand (Wert ausprobieren) in der Leitung kann man erkennen, wer wann die Leitung "runterzieht". Und dann könnte man evtl. einfach einen hoheren Mindestfüllstand aufzeichnen und wieder "abspielen". > an das Ladegerät übermittelt - was dann nicht mehr lädt > und man den Akku entsorgen kann Und wenn du es schaffst, das Ladegerät zu aktivieren, lädt der Akku dann? Könntest du also einfach die passende Spannung am Akku anlegen?
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Mister M. schrieb: >> Problem ist, wenn die Tiefenentladen sind, wird der tiefste Stand >> gespeichert und an das Ladegerät übermittelt - was dann nicht mehr lädt >> und man den Akku entsorgen kann > Ich würde mal probieren herauszufinden, wer was macht. Mit einem > Widerstand (Wert ausprobieren) in der Leitung kann man etkennen, wer > wann die Leitung "runterzieht". > > Und dann könnte man evtl. einfach einen hoheren Mindestfüllstand > aufzichnen und wieder "abspielen". > >> an das Ladegerät übermittelt - was dann nicht mehr lädt >> und man den Akku entsorgen kann > Und wenn du es schaffst, das Ladegerät zu aktivieten, lädt der Akku > dann? Könntest du also einfach die passende Spannung am Akku anlegen? Den "defekten" Akku habe ich bereits wieder voll geladen an einem normalen Labornetzteil. D.h. er verfügt über die volle Spannung. Das Ladegerät geht aber dennoch nicht an - sondern auf ROT. Lege ich einen anderen Akku ein - geht alles. Mein Plan ist, ich will schauen was das Ladegerät zwischen dem "ganzen" Akku spricht um dann mit einem Microcontroller ESP32 den Spaß zu "replayen". Nein, ich kann das nicht einfach so stecken das der ganze Akku die Signale liefert weil das LAdegerät scheinbar intelligent ist. Es muss schon wissen welche Temperatur und Spannung oder was auch immer der Akku beim laden hat. Daher möchte ich gerne das Protokoll verstehen um mich vernünftig damit unterhalten zu können. So ganz schlau werde ich nicht draus - wenn immer nur 3F übertragen wird und 0. So richtige Daten sind das nicht.
Helge schrieb: > low-impuls: start telegramm > danach kommt irgendwas mit entweder kurzem oder langem impuls pro bit > entsprechend 0 oder 1 (oder andersrum). jedenfalls sieht das nach der > übertragung von 2 byte aus. Ich habs noch mal neu erstellt, ich würde sagen Du hast recht. Die kurzen Impulse a 200us sind jeweils start/stop und die mittellangen Impulse sind dann die eigentlichen Bits, wobei jeder lange Impuls für 1 Bit steht. Wenn man das so macht, kommt man auf 8 Bits in Summe, also 2x 1 Byte. Mal schauen ob das so passt. Warum man das so macht verstehe ich aber nicht. Berechnet sich jetzt die Baud Rate nach der Länge der Stop/Start Bits oder der eigentlichen Bits?
Mister M. schrieb: > ACDC schrieb: >> 1 wire Fuel Gauge? >> >> > https://www.maximintegrated.com/en/products/parametric/search.html?fam=batt_stat&374=1-Wire > > Leider kenne ich den Chip nicht - vergossen mit Epoxy ... ist aber ein > Deutscher Hersteller aus Süddeutschland. Recht bekannt - scheint darauf > bedacht zu sein Sachen zu bauen die keiner Reparieren kann. Warum nennst du nicht den Namen des Hersteller? Ich habe z.B. von Bosch und VRI einige Unterlagen da
Diese Beiträge... Mister M. schrieb: > Mal schauen ob das so passt. Warum man das so macht verstehe ich aber > nicht. Berechnet sich jetzt die Baud Rate nach der Länge der Stop/Start > Bits oder der eigentlichen Bits? ACDC schrieb: > Du kannst aber das 1-wire Protokoll von Maxim mit deinem vergleichen. ... beinhalten bereits alles nötige. - Die Leitung hat Ruhepegel High - Ein Low-Puls länger als eine Bitzeit zur Synchronisation - ein Bit besteht aus einer High-Low-Flanke und einer Low-High-Flanke. - Der Abstand der Flanken = Länge der Low-Phase bestimmt den Wert des Bits. - Die Bits sind zeitlich an der High-Low-Flanke ausgerichtet Im Anhang eine Interpretation sync und lang kurz kurz kurz kurz lang lang lang * 0x78 (MSB zuerst, lang low = 0) * 0x87 (MSB zuerst, lang low = 1) * 0xE1 (LSB zuerst, lang low = 0) * 0x1E (LSB zuerst, lang low = 1) mfg mf
:
Bearbeitet durch User
Achim M. schrieb: > Diese Beiträge... > Mister M. schrieb: >> Mal schauen ob das so passt. Warum man das so macht verstehe ich aber >> nicht. Berechnet sich jetzt die Baud Rate nach der Länge der Stop/Start >> Bits oder der eigentlichen Bits? > > ACDC schrieb: >> Du kannst aber das 1-wire Protokoll von Maxim mit deinem vergleichen. > > ... beinhalten bereits alles nötige. > > - Die Leitung hat Ruhepegel High > - Ein Low-Puls länger als eine Bitzeit zur Synchronisation > - ein Bit besteht aus einer High-Low-Flanke und einer Low-High-Flanke. > - Der Abstand der Flanken = Länge der Low-Phase bestimmt den Wert des > Bits. > - Die Bits sind zeitlich an der High-Low-Flanke ausgerichtet > > Im Anhang eine Interpretation > > sync und lang kurz kurz kurz kurz lang lang lang > > * 0x78 (MSB zuerst, lang low = 0) > * 0x87 (MSB zuerst, lang low = 1) > * 0xE1 (LSB zuerst, lang low = 0) > * 0x1E (LSB zuerst, lang low = 1) > > mfg mf Ja, "fast" genauso hab ich das auch interpretiert (siehe Screenshot, meine Interpretation in Excel). Wie bist Du darauf gekommen wann das LSB und MSB zuerst gesendet wird? Ich hätte jetzt gedacht es wird immer erst das LSB gesendet in allen Bytes. Noch mal eine rein technische Frage - wir wird jetzt die Baudrate bestimmt? An der Länge der LOW-Pulse oder des eigentlichen Signales? Hersteller siehe PN.
Hersteller ist Bosch, die 36 Volt Akkus. https://www.bosch-diy.com/de/de/p/36-v-40-ah-lithium-ionen-akku-f016800346-v35246
Mister M. schrieb: > Noch mal eine rein technische Frage - wir wird jetzt die Baudrate > bestimmt? An der Länge der LOW-Pulse oder des eigentlichen Signales? Die Baudrate wird bestimmt durch den Abstand High-Low-Flanke zur nächsten High-Low-Flanke. Besser gesagt, jedes Bit bringt seine eigene Synchronisation mit. Der Lange Sync-Puls ist zur Synchronisation der ganzen Unterhaltung. Mister M. schrieb: > Wie bist Du darauf gekommen wann das LSB und MSB zuerst gesendet wird? Wie bist du drauf gekommen, dass das LSB immer zuerst kommt? Ich denke, du beißt dich an der Idee, das mit UART zu dekodieren, zu sehr fest. Ich sehe keine Startbits und keine Stoppbits. Ich sehe eine Flanken-Synchronisation und eine Pulslängen-Kodierung. Nix UART. mfg mf
Achim M. schrieb: > Mister M. schrieb: >> Noch mal eine rein technische Frage - wir wird jetzt die Baudrate >> bestimmt? An der Länge der LOW-Pulse oder des eigentlichen Signales? > > Die Baudrate wird bestimmt durch den Abstand High-Low-Flanke zur > nächsten High-Low-Flanke. > > Besser gesagt, jedes Bit bringt seine eigene Synchronisation mit. > > Der Lange Sync-Puls ist zur Synchronisation der ganzen Unterhaltung. > > Mister M. schrieb: >> Wie bist Du darauf gekommen wann das LSB und MSB zuerst gesendet wird? > > Wie bist du drauf gekommen, dass das LSB immer zuerst kommt? > > Ich denke, du beißt dich an der Idee, das mit UART zu dekodieren, zu > sehr fest. Ich sehe keine Startbits und keine Stoppbits. Ich sehe eine > Flanken-Synchronisation und eine Pulslängen-Kodierung. Nix UART. > > mfg mf Ja also ich komme deshalb auf UART weil ich die Zeiten durchgerechnet habe und weil ich das so aufgeschrieben habe das es passt. Das heißt ja nicht das ich richtig liege. Darum frage ich ja nach. Das von Dir kommentierte Bild hat Bit 1 und dann Bit zwei. Dazwischen ist aber ein kleines High und ein kleines Low. Hier hätte ich nach Deiner Aussage nur eines von beidem aber nicht beides erwartet. Darum hab ich geschlußfolgert, nach dem ersten Bit folgt ein Stop-Bit - ein High und dann ein Start-Bit ein Low. Diese "Wechsel" kommen öfters vor. Darum habe ich die Signale eben um ein Bit nach links verschoben - siehe mein Excel. Anbei ein weiterer Ausschnitt mit Analog Signal und weiteren wechseln - so bezeichne ich die kurzen High-Low-Flanken. Sowie ein weiteres Bild mit meinen Fragezeichen. Irgendwie habe ich hier leider noch nicht den AHA-Effekt.
:
Bearbeitet durch User
Mister M. schrieb: > Irgendwie habe ich hier leider noch nicht den AHA-Effekt. Jedes Bit besteht aus einer High-Low-Flanke und einer Low-High-Flanke. Die High-Low-Flanken kommen in festen Abständen. Die High-Low-Flanken markieren den Anfang eines Bits. Der Abstand der High-Low-Flanke zur folgenden Low-High-Flanke signalisiert den Wert des Bits. Ist das Kurze Low oder das Lange Low eine logische 1? Wird das MSB oder das LSB zuerst übermittelt? Und was ist ein kleines Low? mfg mf
:
Bearbeitet durch User
Hier mal mit Trennung der Bits eingezeichnet und kurzem Low = Logisch 1 ...
:
Bearbeitet durch User
Achim M. schrieb: > Mister M. schrieb: >> Irgendwie habe ich hier leider noch nicht den AHA-Effekt. > > Jedes Bit besteht aus einer High-Low-Flanke und einer Low-High-Flanke. > > Die High-Low-Flanken kommen in festen Abständen. > > Die High-Low-Flanken markieren den Anfang eines Bits. > > Der Abstand der High-Low-Flanke zur folgenden Low-High-Flanke > signalisiert den Wert des Bits. > > Ist das Kurze Low oder das Lange Low eine logische 1? > > Wird das MSB oder das LSB zuerst übermittelt? > > Und was ist ein kleines Low? > > mfg mf Das kleine Low kommt scheinbar immer nach einem langen Low. Vielleicht weil der Ruhestrom bei High liegt folgt eben ein Low damit wieder die High Low flanke kommen kann - quasi als Unterscheidung. "aktuell" würde ich das ignorieren. Es sei denn Ihr habt noch eine bessere Idee?! Generell ein großes Dankeschön für die vielen wertvollen Hinweise!
Mister M. schrieb: > Das kleine Low kommt scheinbar immer nach einem langen Low In dem Beispiel hier Beitrag "Re: Ein-Kabel Kommunikaton - Signal unklar" war das nicht so. Du hast es immer noch nicht verstanden. Lies doch Mal was ich schreibe: * Jedes Bit wird durch eine High-Low-Flanke begonnen. * Diese High-Low-Flanken kommen offenbar in festen Abständen * Der Abstand zwischen dieser High-Low-Flanke und der folgenden Low-High-Flanke bestimmt den Wert des Bits. Mister M. schrieb: > Es sei denn Ihr habt noch eine bessere Idee?! Wiederholt geäußert. Du hast die Dekodierung im Post Beitrag "Re: Ein-Kabel Kommunikaton - Signal unklar" bereits korrekt hinbekommen, aber die Bits an falscher Stelle vermutet. mfg mf
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.