Vialle Bedienteil mit µC nachgebaut

Hi all,

habe die letzten 1 1/2 Wochen damit verbracht das Protokoll zwischen dem Vialle Steuergerät und dem Bedienteil zu analysieren.
Das Bedienteil selbst enthält einen ATTiny26 Mikrocontroller und wird mit 13V (rote Leitung), Masse (gelbe Leitung) und Daten (weisse Leitung) versorgt.

Angefangen habe ich mit den Pegeln auf der Datenleitung. (Pegel liegt für x µs an)
Dann zu den Bits, über zu den Bytes, der Checksummenberechnung der einzelnen Gruppen, bis hin zu dem kompletten Statusmodell des Protokolls. (Umschaltvorgänge, Tankanzeige etc.)

Damit bin ich soweit fertig. Habe die komplette Funktionalität des originalen Bedienteils mit einem eigenen Controller nachgebaut.

Spassig ist, auf was man dabei nicht alles stösst:
Wusstet ihr schon, dass ihr, wenn ihr das Bedienteil abmacht, den Tank komplett leer fahren könnt? (habe den Versuch abgebrochen, als mein Motor zu stottern angefangen hat)
Das Steuergerät signalisiert dem Bedienteil nur, dass Reserve alle ist. Die eigentliche Umschaltung auf Benzin nimmt dann das Bedienteil vor.
Mag sein, dass es irgendwann noch eine entgültige Rückschaltung auf Benzin gibt, wenn wirklich überhaupt kein Druck mehr ist - weiter wollte ich es aber nicht treiben und habe dann die nötigen Funktionen zur rechtzeitigen Rückschaltung auf Benzin in mein Bedienteil programmiert.

Warum tut man so etwas? (mit dem Verhalten hätte ich nie gerechnet ...)

Schade, dass ich keine Prins habe ... sonst würde ich da gleich weitermachen ... 😁

Heiterkeit ...

Kai

Beste Antwort im Thema

E-Technik-, Nachrichtetechnik-, Informatik- oder Physik-Grundstudium, dann sollten diese Sachen klar sein.
Alternativ: genügend praktische Erfahrung 😉

48 weitere Antworten
48 Antworten

Also eher für die Riege der Maschinenbauer,nicht der Ottonormalschrauber.

Zitat:

Original geschrieben von LPG-Fan


Also eher für die Riege der Maschinenbauer,nicht der Ottonormalschrauber.

Ein Maschinenbauer wird mit µC wohl überfordert sein. Obwohl es auch schöne Bücher gerade zu AVR gibt und wenn man mal grundlegend verstanden hat um was es geht, man dann mit einem Development-Board auch einiges ausprobieren kann. (z.B. STK500)

Aber die Atmel AVR RISC Mikrocontroller sind schon eine tolle Sache.

Für mich wäre evtl mal interessant ob der TE in Assembler oder in Basic (Bascom) das o.g. Projekt am laufen hat. Bzw. ob es möglich wäre mal einen Blick in den Quelltext zu werfen.

Solong
B

PS: Soll der LPG Füllstand im normalen FIS von deinem 4F angezeigt werden?

@kbankett
Pin 32 rein und Pin 13 zum Bendienelement.
(Beide weiss)

Grüße

__________________________________

PS:

@LPG-Fan

Zitat:

Also eher für die Riege der Maschinenbauer,nicht der Ottonormalschrauber.

Recht sinnfrei, oder.....

Zitat:

Original geschrieben von Bandit7311


Für mich wäre evtl mal interessant ob der TE in Assembler oder in Basic (Bascom) das o.g. Projekt am laufen hat. Bzw. ob es möglich wäre mal einen Blick in den Quelltext zu werfen.

Assembler wollte ich mir dafür nicht antun. Ich liebe C für solche Sachen. Platz ist in dem von mir verwendeten µC auch genügend. (ATMega32))

Ich muss mal sehen, was ich auf der finalen Platine verwende. Genügend Platz im Flash wird aber trotzdem sein, um ohne Assembler auszukommen.

Quelltext ist noch nicht aufgeräumt genug um ihn zu veröffentlichen. Da ist derzeit noch so viel Müll drin ... angefangen von den Relikten des Logik-Analysers, den ich mir erst für die Pegelanalyse geschrieben habe über nicht mehr verwendete Timer etc. etc.

Weiter passt das natürlich jetzt auf genau mein Einsatzgebiet. Ich habe mir zusätzlich noch Signale von jeweils einer Benzin- und einer Gaseinspritzdüse geholt, die ich auswerte.
(hatte dazu ja mal ein Thema erstellt, in dem es darum ging im Vialle Steuergerät programmierte Benzinumschaltungen sichtbar zu machen)

Den Teil, als ich die reine Vialle Bedienteilfunktionalität abgebildet hatte, ist nun in der Form nicht mehr im SW-Stand.
Mal sehen, wenn wirklich Interesse bestehen sollte, dann kann ich in Zukunft gerne mal die Teile des Protokolls, von denen ich denke 100% verstanden zu haben, dokumentieren und veröffentlichen.
Vialle wollte mir das Protokoll nicht geben. (schlechte Entscheidung, da ich notfalls auch ein NDA unterzeichnet hätte ... aber wollten sie ja nicht 😎)
Die "statischen" Bytes kann ich so natürlich nicht rausfinden. Scheinen aber ja auch für die eigentliche Funktionalität nicht verwendet zu werden.

Zitat:

PS: Soll der LPG Füllstand im normalen FIS von deinem 4F angezeigt werden?

Die Tankgeber hängen am KI (Kombiinstrument). Der Bordcomputer, das FIS etc. sind ja auch Bestandteil des KIs. Von daher, ja, ich möchte natürlich auch, dass der Bordcomputer im FIS richtig anzeigt.

100% passen wird es nicht, da ich derzeit schon 15% Mehrverbrauch im KI codiert habe. Mehr lässt sich nicht codieren. Leider verbrauche ich ca. 20% mehr Gas als Benzin.

Von daher wird leider eine kleine Restabweichung übrig bleiben.

Kai

Ähnliche Themen

Na dann bin ich mal gespannt wie es weiter geht.
Halte uns mal schön weiter auf dem laufenden.

Zitat:

Original geschrieben von kbankett



Assembler wollte ich mir dafür nicht antun. Ich liebe C für solche Sachen. Platz ist in dem von mir verwendeten µC auch genügend. (ATMega32))
Ich muss mal sehen, was ich auf der finalen Platine verwende. Genügend Platz im Flash wird aber trotzdem sein, um ohne Assembler auszukommen.

Hmm,

also wenn du mal soweit bist dann kannst du mir gerne mal deinen Sourcecode zuschicken.

Ob C / Basic, beides find ich ok. Nur kann man mit den Compilern nicht die ganze Geschwindigkeit / Performance aus einem AVR Chip raus holen. Assembler ist und bleibt Maschinensprache und man weiss genau vorher wie schnell das ganze läuft.

Mit ATMega32 hab ich auch schon Projekte gemacht, ist auch schön dass er noch im DIL40 zu haben ist.

Und Assembler ist kein Hexenwerk. 😉

Solong
B

Ja, aus dem Grund (DIL) hatte ich auch noch ATMega32 rumfliegen. Vereinfacht das "mal eben etwas zusammenstricken" doch ungemein 😎

Du, keine Sorge, wenn es Sinn macht, verwende ich auch Assembler.

Ich bin ja mal gespannt, ob mir Vialle das Leben mit dem Tankstand wenigstens einfacher macht. Wenn die Linearisierung im Steuergerät/TIM stattfindet anstatt im Bedienteil.
Auf die genauen Liter im Tank muss ich aber trotzdem noch kommen.
Morgen weiss ich mehr ... werde wohl etwas länger an der Zapfsäule brauchen *hüstel*
5l tanken, Messwert notiern, wieder 5l tanken etc. etc.

So, wenigstens bin ich ein paar Schritte weiter. (hat mich noch gut Nerven gekostet)

Die Idee mit dem Tankgeber habe ich wieder verworfen, weil sich die Tankanzeige nur im Stand (mindestens 10 Sekunden 0/kmh Tacho) auf einen Rutsch verstellen lässt.
Während der Fahrt läuft die Anpassung nur über die Mittelwertberechnung und damit nur sehr, sehr langsam.

Ich habe die Lösung jetzt noch um eine CAN Bridge erweitert. (2 CAN Busse am µC)
Der µC hängt jetzt am CAN Bus vor dem Kombiinstrument, so dass der gesamte Datenverkehr über diesen fliesst.
Alles was an Port 1 reinkommt, wird auf Port 2 rausgeschickt und umgekehrt.

Dann habe ich mich noch an das Datenprotokoll für die Textzeilen im FIS gemacht. Dieses ist leider nicht mehr so einfach, wie es noch beim 4B war, sondern enthält Sequenznummern, eine Überkreuzkommunikation zwischen 2 Message-IDs, ein Keepalive-Protokoll etc.
Die Sequenznummern erfordern zwingend eine CAN Bridge, da man nicht einfach Messages einfügen kann, sondern getrennte Sequenzzyklen in beide Richtungen benötigt.

Lange Rede kurzer Sinn, ich lasse mir den LPG-Tankstand nun abwechselnd mit dem Sendernamen/Musiktitelnamen im FIS anzeigen.
(man könnte dort natürlich auch noch mehr anzeigen ...)
Vorteil der CAN Lösung, ich kann auch gleich noch eine Tachoangleichung vornehmen, da mein RS6 KI einen anderen Abrollumfang eingebrannt hat.

Nun muss ich nur noch einen Einparkhilfe-Taster mit einer Duo-LED ausrüsten - Teile habe ich schon hier liegen - und dann sieht man von der eigentlichen Gasanlage nicht mehr viel ...
Ok, Tasterkappe noch anfertigen lassen.

Wenn es fertig ist, dann stelle ich auch mal Bilder / ein Filmchen online.

Kai

Geiles Projekt! Respekt 😁

Das mit der Mittelwertberechnung der Tankanzeige ist sehr interessant. Ich bin auch Elektrotechniker und hab auch schon mal darüber nachgedacht, die Tankanzeige auch für LPG zu nutzen, aber bisher aus Zeitgründen noch nicht weiter verfolgt. Du hast zwar ein anderes Auto als ich, aber ich vermute ganz stark, dass sich die Anzeige bei mir genauso verhalten wird (kommt vermutlich sowieso alles von Bosch, egal wer das Auto am Ende zusammenbaut 😉 ).

Hallo Kai,
nach Deiner Beschreibung nach wird es ja was.

Allerdings hättest Du den Schalter im Aschenbecher verstecken
und dir eine Vialle-Anzeige dazukaufen können....😉

Grüße

Lpg-anzeige

Hier mal der Link zu dem derzeitigen Ergebnis des Projektes. (bin halt im 4F-Bereich zuhause ...)

Hier der direkte Link zu einem Video, aus diesem wird wahrscheinlich auch direkt klar, warum die Lösung mit dem Aschenbecher nicht einmal ansatzweise vergleichbar ist 😉
(Bilder sagen mehr als Worte ...)

Kai

Nett, die CAN Bridge würde mich interessieren, leider hab ich auf den AT Prozessoren noch nichts gemacht.

Kannst du nicht die Tankanzeige umwidmen? Bei Benzin zeigt die Benzin an, bei Gasbetrieb wird der Gasfüllstand angezeigt. Erspart viel Aufwand mit dem FIS.

Hatte ich ja schon was zu geschrieben ... leider nicht so einfach möglich. Eigentlich wollte ich es ja so lösen, aber die Mittelwertberechnung, die ein schwanken der Tanknadel verhindern soll, macht einem einen Strich durch die Rechnung.

Beim 4F läuft es jedenfalls so:
Wenn Tacho > "0" -> Tankanzeige Mittelwertberechnung
Wenn Tacho länger als 10 Sekunden Wert "0" -> Tankanzeige richtet sich "direkt" nach den Tankgebern

Ich habe ja zuerst den µC zwischen die Tankgeber und das KI hängen gehabt. Leider macht das keinen Sinn, wenn man losfährt, die Gasanlage irgendwann auf Gas schaltet, allerdings die Tankanzeige ne halbe Stunde braucht, bis sie den LPG-Stand anzeigt.
Die Mittelwertberechnung macht eine grosse Änderung leider sehr, sehr träge.

Tacho für 15-20 Sekunden während der Fahrt abklemmen wäre eine Lösung. So richtig toll finde ich die Idee dann aber auch wieder nicht 😉

Die eigentliche Bridge ist nicht sonderlich kompliziert. Man braucht nur die Schaltung drumherum. Ansonsten per Interrupts die Daten von den CAN Controllern abholen und auf den jeweils anderen rausschicken. Ist ein 20-30-Zeiler in C. (eine fertige CAN Library gibt es ja - ok, da fällt mir gerade ein, dass ich diese anpassen musste, um mehr als einen CAN Controller / Bus zu unterstützen)

Hm. Kann man nicht die LPG Anzeige berechnen? So wie Peugeot das macht? Die brauchen unter LPG schließlich nen "Tankfopper" um keinen Unfug zu machen. Auch Audi scheint bei meinem A4 im roten Bereich zu berechnen statt wie vorher zu messen - noch für 80 km Benzin und die Tanknadel fällt trotz Gasbetrieb auf Null 😉

Idee wäre: Momentanverbrauch per OBD2 abholen abholen, aufsummieren (sofern auf Gas) und vom Füllstand abziehen. Steht der Wagen kannst du gemessenen und berechneten Stand abgleichen bzw. auf Plausibilität prüfen. Wenns per OBD2 nicht geht kann man vielleicht direkt die Gassignale abgreifen, auf nen Tiefpass/Integrator schicken und aufsummieren. Ist der Füllstand beim Einschalten der Zündung höher wie beim Ausschalten muss getankt worden sein und du hast nen neuen Startwert.

Scheisse, ich häng noch bin nächsten Sommer im Ausland fest. Mir schwebte bei den Prozessoren eher sowas vor: http://www.wilke.de/cantiger.php ... klar überdimensioniert und für den Masseneinsatz zu teuer, aber ziemlich gut und einfach zu programmieren. Zudem ausreichend Schnittstellen um z.B. GPS Module (Rotenlogging/Fahrtenbuch) und andere Späße zu realisieren.

Super Video , kann ich nur sagen.

Deine Antwort
Ähnliche Themen