FIS Textanzeige / Vialle LPG Gasanlage Tankstand über FIS anzeigen

Audi A6 C6/4F

Hi all,

nach langer Entwicklungszeit habe ich endlich mal ein Video über eins meiner Projekte gedreht, um euch das Projekt mal vorzustellen.

Da ich bei mir eine Vialle Gasanlage verbaut habe und diese Anlage nicht mit den übrigen Fahrzeugsystemen integriert ist, braucht man normalerweise ein extra Bedienteil im Innenraum, welches den Tankstand mittels 5 LEDs anzeigt und über einen Taster erlaubt von Benzin- auf Gasbetrieb (bzw. umgekehrt) umzuschalten.
An dem Bedienteil hat mich
a) gestört, dass es als "Fremdkörper" im Innenraum sichtbar ist (z.B. blaue LEDs ...)
b) dass es den Tankstand nur in sehr groben Schritten anzeigt
c) dass es mir nicht angezeigt hat, wenn die Gasanlage unter hoher Motorlast temporär zurück auf Benzinbetrieb schaltet (die Regeln, wann und auf basis welcher Parameter die Lastumschaltung geschieht, kann man in der Anlage programmieren - leider ohne Anzeige am Bedienteil, wann sie greifen)

In meiner naiven Denkweise hatte ich zuerst geplant das Bedienteil durch einen Mikrocontroller abzulösen, welcher mit einem Taster in der Mittelkonsole gesteuert wird, der auch eine LED enthält und darüber den Status anzeigt.
Die Tankanzeige wollte ich eigentlich über durch den Mikrocontroller simulierte Tankgeber zum Kombiinstrument hin realisieren. (bei Benzinbetrieb Anzeige des Benzintankstands / bei Gasbetrieb Anzeige des Gastankstands)

So weit so gut ... also habe ich damit angefangen und musste folgendes feststellen:
1) die Bedieneinheit der Gasanlage wird digital mit Daten versorgt (z.B. auch den Tankstand)
2) das KI erlaubt nur bei einem Stillstand von mehr als 10 Sekunden eine von der normalen Mittelwertsberechnung (die Anzeigeschwankungen während der Fahrt elemeniert) losgelöste Einstellung des neuen Tankstandes

Das Vialle Protokoll hat mich dann erst einmal 2 volle Wochen beschäftigt, bis ich es decodiert hatte und im eigenen Mikrocontroller nachgebaut hatte.
Die Tankstandanzeige hat es dann leider nötig gemacht am ursprünglichen Plan eine Änderung durchzuführen. Ich habe mir dann halt überlegt, dass es ja auch ganz nett wäre, den Tankstand im FIS anzuzeigen 🙂

Beim 4B wäre das noch sehr einfach gewesen. Leider nicht beim 4F ... aber das konnte ich da ja noch nicht wissen ... 😉

Nächster Schritt war der Bau einer CAN-Bridge mit dem Mikrocontroller. Zwei CAN-Busse, den Mikrocontroller zwischen KI und CAN-GW, wobei der Mikrocontroller alles was auf Bus #1 empfangen wird auf Bus #2 rausschickt und umgekehrt.
Gesagt, getan - eine weitere 1 Wochen später hatte ich das dann auch fertig. Hat eine Woche gedauert, da ich auf dem Weg feststellen musste, dass es mit Zündplus für die Schaltung an der Stelle leider nicht getan ist. da das KI auch ohne Zündung noch kommunizieren können muss, was Dauerplus nötig gemacht hat - leider verbunden mit der Anforderung eines extrem niedrigen Ruhestromverbrauches. (Sleep Modi, auch für die CAN Teiber / den CAN Controller / den Mikrocontroller etc.)

Nächster Schritt das FIS Protokoll ...
Ich dachte eigentlich, dass es mit dem Umschreiben von CAN Messages getan ist, weil diese regelmässig über den Bus - und damit über den Mikrocontroller - geschickt werden und den angezeigten Text enthalten.
Dem ist leider nicht so 🙁
Die Kommunikation ist an der Stelle schon wirklich sehr gut gelöst. Es wird nichts unnötiges über den Bus geschickt.
Man kann sich die Kommunikation ähnlich wie beim TCP Protokoll im Internet vorstellen - jedenfalls was die Sequenznummern in den FIS Datenpaketen angeht.
Bei einem Protokoll, welches Sequenznummern verwendet, ist es leider nicht möglich einfach zusätzliche Nachrichten einzufügen, ohne die Sequenznummern zu stören. Die Kommunikationspartner stellen sofort fest, dass da irgendetwas in der Kommunikation nicht stimmt, weil die Sequenznummern nicht mehr zu der Anzahl der empfangenen/gesendeten Nachrichten passen.
Das FIS quittiert ein Fehler im Sequenznummernzyklus mit einem Reset ... sehr unschön, da das FIS für eine lange Zeitspanne komplett schwarz wird, bis sich das Protokoll zum MMI wieder vollständig neu aufgebaut hat.

Ok ... weiter im Text ...
Bei einem solchen Protokoll gibt es nur die Möglichkeit eines sogenannten "man in the middle" Angriffs. (falls man hier von einem Angriff sprechen möchte ... ich wollte doch einfach nur meinen Tankstand anzeigen lassen ... *g*)
Glücklicherweise hatte ich das Design ja aber sowieso schon als CAN Bridge mit dem Mikrocontroller in der Mitte ausgelegt 🙂
Hat mich zwar einige Nerven gekostet, aber mit dem nötigen Zeiteinsatz habe ich das schliesslich dann auch noch alles in den Griff bekommen. (ich gehe hier nicht auf weitere Hürden ein, die zu nehmen sind ...)

Den Mittelkonsolentaster habe ich mit einer RGB-LED versehen. Ist ein blanko-Sonderfunktionstaster, dessen Kappe normalerweise nicht beschriftet ist. Die Kappe habe ich mir gravieren lassen. Man kann keinen Unterschied zu den normalen Mittelkonsolentastern feststellen.

Die Information, ob mein Dicker wirklich auf Gas oder Benzin läuft habe ich mir von jeweils einer Einspritzdüse geholt. Ich denke mal dort kann man 100% sicher sein, auf was gerade gefahren wird ...

So - kommen wir zu dem, was hier wahrscheinlich die Meisten mit sicherheit eh nur interessieren wird ... dem Video, welches die Lösung in Aktion zeigt.

Man könnte nun mit der Lösung auch sehr nette andere Sachen machen:
- Tachoangleichung über den µC
- Anzeige von beliebigen Werten/Texten im FIS (von Daten die über den CAN zum KI fliessen oder über den µC extern geholt werden)
- mit ziemlicher Sicherheit auch weitere Ebenen im Bordcomputer realisieren (wie die Ebenen, die man über die Mode-Taste ansprechen kann)
- Eingaben über den Bordcomputer-Lenkstockschalter realisieren (wenn man die BC Lenkstocktaster länger drückt und wieder loslässt, dann wird kein normaler Event ausgelöst ... dieses lange Drücken könnte der µC auswerten und dann etwas machen)

So viel erst einmal dazu .... hoffe ich bin nicht zu sehr meinem Schreibfluss erlegen und habe euch nicht zu sehr gelangweilt 😉

Kai

Beste Antwort im Thema

Hi all,

nach langer Entwicklungszeit habe ich endlich mal ein Video über eins meiner Projekte gedreht, um euch das Projekt mal vorzustellen.

Da ich bei mir eine Vialle Gasanlage verbaut habe und diese Anlage nicht mit den übrigen Fahrzeugsystemen integriert ist, braucht man normalerweise ein extra Bedienteil im Innenraum, welches den Tankstand mittels 5 LEDs anzeigt und über einen Taster erlaubt von Benzin- auf Gasbetrieb (bzw. umgekehrt) umzuschalten.
An dem Bedienteil hat mich
a) gestört, dass es als "Fremdkörper" im Innenraum sichtbar ist (z.B. blaue LEDs ...)
b) dass es den Tankstand nur in sehr groben Schritten anzeigt
c) dass es mir nicht angezeigt hat, wenn die Gasanlage unter hoher Motorlast temporär zurück auf Benzinbetrieb schaltet (die Regeln, wann und auf basis welcher Parameter die Lastumschaltung geschieht, kann man in der Anlage programmieren - leider ohne Anzeige am Bedienteil, wann sie greifen)

In meiner naiven Denkweise hatte ich zuerst geplant das Bedienteil durch einen Mikrocontroller abzulösen, welcher mit einem Taster in der Mittelkonsole gesteuert wird, der auch eine LED enthält und darüber den Status anzeigt.
Die Tankanzeige wollte ich eigentlich über durch den Mikrocontroller simulierte Tankgeber zum Kombiinstrument hin realisieren. (bei Benzinbetrieb Anzeige des Benzintankstands / bei Gasbetrieb Anzeige des Gastankstands)

So weit so gut ... also habe ich damit angefangen und musste folgendes feststellen:
1) die Bedieneinheit der Gasanlage wird digital mit Daten versorgt (z.B. auch den Tankstand)
2) das KI erlaubt nur bei einem Stillstand von mehr als 10 Sekunden eine von der normalen Mittelwertsberechnung (die Anzeigeschwankungen während der Fahrt elemeniert) losgelöste Einstellung des neuen Tankstandes

Das Vialle Protokoll hat mich dann erst einmal 2 volle Wochen beschäftigt, bis ich es decodiert hatte und im eigenen Mikrocontroller nachgebaut hatte.
Die Tankstandanzeige hat es dann leider nötig gemacht am ursprünglichen Plan eine Änderung durchzuführen. Ich habe mir dann halt überlegt, dass es ja auch ganz nett wäre, den Tankstand im FIS anzuzeigen 🙂

Beim 4B wäre das noch sehr einfach gewesen. Leider nicht beim 4F ... aber das konnte ich da ja noch nicht wissen ... 😉

Nächster Schritt war der Bau einer CAN-Bridge mit dem Mikrocontroller. Zwei CAN-Busse, den Mikrocontroller zwischen KI und CAN-GW, wobei der Mikrocontroller alles was auf Bus #1 empfangen wird auf Bus #2 rausschickt und umgekehrt.
Gesagt, getan - eine weitere 1 Wochen später hatte ich das dann auch fertig. Hat eine Woche gedauert, da ich auf dem Weg feststellen musste, dass es mit Zündplus für die Schaltung an der Stelle leider nicht getan ist. da das KI auch ohne Zündung noch kommunizieren können muss, was Dauerplus nötig gemacht hat - leider verbunden mit der Anforderung eines extrem niedrigen Ruhestromverbrauches. (Sleep Modi, auch für die CAN Teiber / den CAN Controller / den Mikrocontroller etc.)

Nächster Schritt das FIS Protokoll ...
Ich dachte eigentlich, dass es mit dem Umschreiben von CAN Messages getan ist, weil diese regelmässig über den Bus - und damit über den Mikrocontroller - geschickt werden und den angezeigten Text enthalten.
Dem ist leider nicht so 🙁
Die Kommunikation ist an der Stelle schon wirklich sehr gut gelöst. Es wird nichts unnötiges über den Bus geschickt.
Man kann sich die Kommunikation ähnlich wie beim TCP Protokoll im Internet vorstellen - jedenfalls was die Sequenznummern in den FIS Datenpaketen angeht.
Bei einem Protokoll, welches Sequenznummern verwendet, ist es leider nicht möglich einfach zusätzliche Nachrichten einzufügen, ohne die Sequenznummern zu stören. Die Kommunikationspartner stellen sofort fest, dass da irgendetwas in der Kommunikation nicht stimmt, weil die Sequenznummern nicht mehr zu der Anzahl der empfangenen/gesendeten Nachrichten passen.
Das FIS quittiert ein Fehler im Sequenznummernzyklus mit einem Reset ... sehr unschön, da das FIS für eine lange Zeitspanne komplett schwarz wird, bis sich das Protokoll zum MMI wieder vollständig neu aufgebaut hat.

Ok ... weiter im Text ...
Bei einem solchen Protokoll gibt es nur die Möglichkeit eines sogenannten "man in the middle" Angriffs. (falls man hier von einem Angriff sprechen möchte ... ich wollte doch einfach nur meinen Tankstand anzeigen lassen ... *g*)
Glücklicherweise hatte ich das Design ja aber sowieso schon als CAN Bridge mit dem Mikrocontroller in der Mitte ausgelegt 🙂
Hat mich zwar einige Nerven gekostet, aber mit dem nötigen Zeiteinsatz habe ich das schliesslich dann auch noch alles in den Griff bekommen. (ich gehe hier nicht auf weitere Hürden ein, die zu nehmen sind ...)

Den Mittelkonsolentaster habe ich mit einer RGB-LED versehen. Ist ein blanko-Sonderfunktionstaster, dessen Kappe normalerweise nicht beschriftet ist. Die Kappe habe ich mir gravieren lassen. Man kann keinen Unterschied zu den normalen Mittelkonsolentastern feststellen.

Die Information, ob mein Dicker wirklich auf Gas oder Benzin läuft habe ich mir von jeweils einer Einspritzdüse geholt. Ich denke mal dort kann man 100% sicher sein, auf was gerade gefahren wird ...

So - kommen wir zu dem, was hier wahrscheinlich die Meisten mit sicherheit eh nur interessieren wird ... dem Video, welches die Lösung in Aktion zeigt.

Man könnte nun mit der Lösung auch sehr nette andere Sachen machen:
- Tachoangleichung über den µC
- Anzeige von beliebigen Werten/Texten im FIS (von Daten die über den CAN zum KI fliessen oder über den µC extern geholt werden)
- mit ziemlicher Sicherheit auch weitere Ebenen im Bordcomputer realisieren (wie die Ebenen, die man über die Mode-Taste ansprechen kann)
- Eingaben über den Bordcomputer-Lenkstockschalter realisieren (wenn man die BC Lenkstocktaster länger drückt und wieder loslässt, dann wird kein normaler Event ausgelöst ... dieses lange Drücken könnte der µC auswerten und dann etwas machen)

So viel erst einmal dazu .... hoffe ich bin nicht zu sehr meinem Schreibfluss erlegen und habe euch nicht zu sehr gelangweilt 😉

Kai

111 weitere Antworten
111 Antworten

Zitat:

Original geschrieben von kbankett


Hi Justin,

ok, die Datenübertragung zwischen dem Vialle-Bedienteil und dem Steuergerät ist eine UART Schnittstelle. (also einfach seriell)
Du brauchst also nur einen Controller, der einen seriellen Port hat.
Baudrate müsste ich nachschauen. Ich meine es waren 9600 Baud. (8N1)

Das Vialle Steuergerät sendet dauernd einen Datenstrom.
Wenn du es also so weit an den Start gebracht hast, dass du die Daten empfängst, dann kann ich dir ein paar Tips geben in welchem Byte was drinsteht.
Alle Bytes konnte ich natürlich nicht rausfinden, sondern nur die, die sich im Normalbetrieb auch ändern.
In einem Byte findet sich der Tankstand, in einem anderen der Anlagenzustand (Gas oder Benzin).

Die Umschaltung (der Taster) ist darüber realisiert, dass die Datenleitung auf Masse gezogen wird.
Du brauchst also noch einen GPIO, mit dem du einen Transistor anschteuerst, welcher dann die Leitung auf Masse zieht.

Zum Thema Taster findest du hier was.

Mir ist nur noch nicht klar, wie du den Tankstand anzeigen möchtest, wenn nicht über das FIS.
Derzeit plane ich nicht ein Board zu entwickeln. Mein Fokus liegt im Moment woanders.

Grüße,

Kai

Kai,

vielen Dank schonmal für die Info! 🙂

Meine Vorstellung bzgl. einer Tankanzeige wären LEDs im Deckel des Taster. also Z.b. 4 LEDs für die Tankanzeige und eine RGB-LED für den Betriebszustand der Gasanlage (so wie bei dir)... 5 LEDs in einem Deckel (der ja im A4 noch schmäler als der im A6 4F ist), wird sicherlich eng aber vllt. ja trotzdem möglich...

Gruß
Justin

Zitat:

Original geschrieben von kbankett


Nein, ich kann nicht mal eben erklären wie man C programmiert und Hardware entwickelt - tut mir leid 😉
Wenn, dann ginge das nur mit einem S3_225 2013 Software Update 😁

schon klar - c programmieren ist auch ned das Problem 😉. Hätte ja sein können, dass du einen Schaltplan für deine CAN Bridge hast. Mit der Hardware sollte das ja dann machbar sein, da sie ja eh schon im CAN hängt und darüber an die Daten für Öltemperatur usw. kommt. Sollte dann ja nur noch eine Softwaregeschichte sein.

Eine Bridge braucht es dafür nicht. Die braucht es aber für die Anzeige im FIS.
Schaltplan bekommst du doch einfach aus den Datenblättern. Habe ich auch so gemacht.
Es gibt halt CAN Bausteine - Nummer gerade nicht im Kopf, die per SPI am Controller angeflanscht werden.
Eine Library gibt es zur Ansteuerung auch schon fertig im Netz. Diese habe ich dann nur auf mehrere CAN-ICs gleichzeitig aufgebohrt.
Eigentlich ist die Bridge dann nur noch zwei Interrupts mit jeweils einer Zeile drin und schon wird alles von A nach B und umgekehrt befördert.
Ok, im main() dann natürlich noch die Initialisierung der Bausteine.

Rein aus Interesse, welche(s) Ausbildung/Studium/Hobby muss man haben, um so in der Autosoftware experimentieren zu können. Ist das das Handwerk eines "normalen" Informatikers?

Würdest du die Komplettlösung auch einzelnen hier aus dem Forum anbieten, quasi bei dir hinstellen und fertig mitnehmen?

Ähnliche Themen

Nein, wie gesagt gibt es keine Komplettlösung, tut mir leid.
Prins Gasanlage wäre aber sogar deutlich einfacher. Die Vialle ist da bedingt durch die digitale Datenübertragung zwischen Bedieneinheit und Steuergerät schon sehr "speziell".
Bei Prins wird der Tankstand analog übermittelt. Sie sonstigen Bedienfunktionen liegen auch jeweils auf schön getrennten Adern.

Elektronik und Computer begleiten mich seit ich ca. 7 Jahre alt bin.
"Geek" halt durch und durch 😉
Ich möchte nicht wissen wieviele Jahre meines Lebens ich (in Summe) schon vor einem Computerscreen/Funkgerät/Lötkolben verbracht habe.

echt geniall gemacht,du könntest damit echt gut geld verdienen wenn du dass für andere weniger begabte leute machst

Moin Kai,
also ich habe mir das Video angesehen und finde die Lösung echt stark, ich glaube da hast du viel Zeit und Arbeit reingesteckt - kann sich sehen lassen!

Jedoch muss ich auch sagen, dass mir persönlich der Aufwand für die digitale LPG-Tankanzeige deutlich zu groß wäre.
Allerdings finde ich den Taster für die LPG-Anlage sehr gut, ebenso die integrierte LED - das sieht wie aus, als wäre es serienmäßig verbaut. Toll !

Ich möchte einen Tipp geben: Wäre es nicht ausreichend, anstatt des Bedienteils des LPG-Anlagenherstellers diesen LPG-Taster mit 4-5 LED Balken zu versehen, die dann als Tankanzeige dienen + 1 LED für den Betriebszustand! Das wäre vom Aufwand her glaube ich deutlich geringer und man hätte trotzdem diese tolle Optik.
Dazu eine Frage, woher hast du diesen LPG Taster ? Und wie hast du die Aussparung für die LED hin bekommen ?

Des Weiteren würde mich mal ganz allgemein interessieren, was ein LPG Umbau beim V8 ca. kostet - also komplett mit Tank, Gutachten usw.
Sollte man Flashlube verbauen, oder ist das beim 4,2er nicht nötig?
Wie siehts bei dir nach nun über 100000km auf LPG aus - hat es außerplanmäßige Werkstattaufenthalte aufgrund der LPG Anlage gegeben ?

Besten Dank schonmal für die Antworten,
Gruß Gerry

Zitat:

Original geschrieben von Frisch-Denker


ich glaube da hast du viel Zeit und Arbeit reingesteckt

Im Vergleich zu anderen Dingen ist wenig Zeit reingeflossen.

Ca. 3 Wochen Arbeit.

Zitat:

Ich möchte einen Tipp geben: Wäre es nicht ausreichend, anstatt des Bedienteils des LPG-Anlagenherstellers diesen LPG-Taster mit 4-5 LED Balken zu versehen, die dann als Tankanzeige dienen + 1 LED für den Betriebszustand!

Klar geht das. Dann hat man aber halt wieder eine zusätzliche Anzeige, die man irgendwo unterbringen muss. Das wollte ich halt nicht.

Zitat:

Dazu eine Frage, woher hast du diesen LPG Taster ? Und wie hast du die Aussparung für die LED hin bekommen ?

Zu den Tastern findest du

hier

was.

Es gibt einen Taster mit LED, der einen unbeschrifteten Tastendeckel hat. Den kann man dann passend gravieren lassen.

Zitat:

Des Weiteren würde mich mal ganz allgemein interessieren, was ein LPG Umbau beim V8 ca. kostet - also komplett mit Tank, Gutachten usw.

Kommt darauf an welche Anlage man verbauen lässt und bei welchem Umrüster.

Ich würde - bei einem vernünftigen Betrieb von ca. 2500-3000 EUR ausgehen.

Zitat:

Sollte man Flashlube verbauen, oder ist das beim 4,2er nicht nötig?

In meinen Augen Blödsinn. Insofern von mir ein klares "Nein".

Zitat:

Wie siehts bei dir nach nun über 100000km auf LPG aus - hat es außerplanmäßige Werkstattaufenthalte aufgrund der LPG Anlage gegeben ?

Nein, bisher rennt die Anlage und rennt und rennt ... 😉

Zitat:

Original geschrieben von kbankett



Zitat:

Ich möchte einen Tipp geben: Wäre es nicht ausreichend, anstatt des Bedienteils des LPG-Anlagenherstellers diesen LPG-Taster mit 4-5 LED Balken zu versehen, die dann als Tankanzeige dienen + 1 LED für den Betriebszustand!

Klar geht das. Dann hat man aber halt wieder eine zusätzliche Anzeige, die man irgendwo unterbringen muss. Das wollte ich halt nicht.

Danke erstmal für die hilfreichen Infos.

Bezüglich des Tasters, da meinte ich eigentlich eine integrierte Balkentankanzeige in dem LPG - Taster.

Alternativ kann man natürlich auch eine freie Tasterblende (falls noch vorhanden) für eine Balkentankanzeige benutzen.

Dadurch braucht man die LPG-Anlagen Tankanzeige nicht mehr einbauen.

Hoffe du verstehst was ich meine?!

Die digitale Tankanzeige im FIS ist sicher die beste Lösung - jedoch hatte ich in deinem Video bemerkt, dass der LPG-Tankgeber auch kein super genaues Signal ausgibt -> Die digitale Anzeige schwankt.
Ich finde, eine Balkenanzeige sollte doch ausreichen, zumal man nach kurzer Zeit ohnehin weiß, wie hoch die Reichweite mit einer LPG-Füllung ist - wie groß ist eigentlich dein Tank ? Radmulde?

Gruß Gerry

Zitat:

Original geschrieben von S3_225


gibt es keine Möglichkeit, den Ladedruck oder die Öltemperatur vom CAN auszulesen und über so ein "Gerät" auf dem FIS anzuzeigen? Leider habe ich von der Hardwareentwicklung überhaupt keine Ahnung. Software wäre schon weniger das Problem. Müsste man nur noch die Software auf den Controller bekommen, was für mich wieder böhmische Dörfer sind 😉

Mit deiner Hardware müsste sowas doch eigentlich möglich sein? Kannst du da evtl. einen Bauplan und deinen Quellcode zur Verfügung stellen und erklären, wie man den µc programmiert? Dann könnte man dort angreifen und eine Ladedruckanzeige und/oder Öltemperaturanzeige fürs FIS aufbauen. Ich denke, das wäre für viele Leute interessant.

Hi,

daran arbeite ich gerade, habe bereits eine Hardware mit 2 CAN Ports, sowie Ethernet/USB gebaut. Firmware
ist auch vorhanden, nur mangels Zeit, bin ich noch nicht so weit wie unser Ober-Guru 😉 - Sprich das "Überschreiben" der obersten
FIS-Zeile habe ich noch nicht fertig realisiert. Was du dann darüper hinaus noch brauchst, ist die Möglichkeit eine Diagnose-Session mit dem Motor-STG aufzubauen und darüber dann die entsprechenden Werte abzufragen. Das könnte man vermutlich mit VCDS-Diagnose und parallelem Bus-Analysieren rauskriegen. Oder man weiß einfach wie Grundsätzlich das Diagnoseprotokoll über CAN aussieht...

Gruß Andi

Du brauchst dafür (Öltemperatur, Ladedruck, Wassertemperatur etc.) keine Diagnose-Session aufzubauen.
Die Werte müssten auf dem Motor-CAN direkt vorbeigeflogen kommen.
Man braucht dort nur die richtigen Message-IDs und Bytes zu finden und schon hat man die Werte.
CAN funktioniert ja auf einem "Broadcast Prinzip".
Es werden regelmäßig Daten verbreitet und der Busteilnehmer, der sie nun gerade braucht kann sie einfach auswerten.
(ist bie Ethernet aber ja genauso)

Höhere Protokolle müssen davon unabhängig auf anderer Schicht realisiert werden. An der grundsätzlichen Funktionsweise eines CAN-Busses ändert das erst einmal nichts.
Der CAN-Bus ist erst einmal die (ISO) Layer 1 (physikalisch) und 2 (logisch) Transportschicht.

Klar, wenn Werte nicht von anderen Steuergeräten benötigt werden, dann sind diese wahrscheinlich auch nicht direkt auf dem Bus verfügbar.
In so einem Fall (Beispiel: Injektorwerte), müsste man dann natürlich an die dementsprechenden Messwerte aus dem Steuergerät kommen und noch mehr an Protokoll implementieren.
Sind aber ja alles ISO Standards 😉

Hallo Kai,
extrem interessant deine Darstellungen und Erklärungen. Dank eines Hinweises bei den A4 Freunden wurde ich auf diesen Betrag aufmerksam......
Ich arbeite seit geraumer Zeit in meinem A4 Cabrio 2,0 TDI an ähnlichem - aber nur zur Anzeige im FIS mit den 2 x 8 Zeichen (keine LPG) . Mit "C" beschäftige ich mich jetzt noch nicht solange komme aber mit Hilfe klar. Mein Brigde arbeitet mit 2 MCPs die per SPI an einem ATMega angeflanscht sind. Die reine Bus A <-> B Komunikation geht auf dem Labortisch schon gut - im Auto harkt es aber noch, ich denke an der 120 Ohm Terminierung.
Die Konfiguration im Auto : MuFu, BNS 5, Telefon, Bose................

Wenn ich über meine externe Schaltung direkt die Ids 436, 6c0, 661 + 261 und 263 für die CAN Ring Anmeldung, Statusmeldung Navie usw...auf den Bus schreibe, bekomme ich auch eine Anzeige.
Wie genau sieht die Durchnummerierung der Nachrichten aus , das ist mir bei meinen Traces garnicht aufgefallen. ?????

Allerdings kommt es in Abständen vor das die 2 Zeilen mal kurz dunkel sind ...so für eine Gedenksekunde. Wie du siehst bin ich von deinem Status und deinem Wissen noch deutlich entfernt. Ich bleibe auch nur am Info CAN da ich zunächst die Öltemp aus dem TOG Datenstrom herausrechne.
Der Ladedruck ist auf dem CAN garnicht vorhanden da kein anderes Steuergerät die Daten braucht.

Gruß
Schorsch

Deine Kommunikation wird im Auto nicht sauber funktionieren, weil du bestimmt nur eine Main-Loop hast und dort drin die CAN Messages pollst - richtig?
Im Fahrzeug fliesst da einfach viel zu viel. Ich hatte zu Anfang auch Probleme, welche dann aber direkt verschwunden waren, nachdem ich über HW-Interrupt Pins und demensprechende INT-Vectoren gegangen bin.
Der kleine ATMega scheint für ein reines Polling einfach zu langsam zu sein.
Weiter habe ich den ATMega mit 18.543 Mhz (hoffe ich vertue mich da jetzt nicht - die Zahl war jedenfalls gerade in meinem Kopf) leicht übertaktet. (Die Fequenz verwende ich immer, weil es mit 16Mhz mehr Probleme mit dem UART gibt und mir alle anderen möglichen Frequenzen einfach zu niedrig sind)

Die Message-IDs sind im 4F anders. Das war aber auch nicht anders zu erwarten, da diese natürlich nicht genormt sind, sondern je nach Fahrzeug neu ausgewürfelt werden 🙁
Weiter braucht es im 4F auch nur zwei Message-IDs - jedenfalls für die FIS Textzeilen.
Auf dem Labortisch habe ich nicht versucht ein KI ans rennen zu bekommen. Ich habe einfach direkt am Fahrzeug entwickelt.
Eine Ringmeldung brauche ich also nicht, weil diese das MMI ganz normal durchführt.

Die Sequenznummer steht bei den 4F Messages direkt am Anfang der CAN Payload. (im ersten Byte)
Weiter muss jede Meldung quittiert werden. Jeweils mit der letzten (bei Multipart-Messages) Sequenznummer + 1. (die Quittierung ist also gleichzeitig die nächste zu verwendende Sequenznummer)
Anscheined verwendet der 8H dann noch keine Sequenznummern. Das ist schön für dich, da diese doch zeimliche Bauchschmerzen verursachen 🙂
(du hättest sie ansonsten im Trace mit absoluter Sicherheit gesehen bzw. überhaupt nicht erst einen Text angezeigt bekommen ohne die Sequenznummer mindestens hochzuzählen - die Antworten vom KI könnte man auf der Werkbank noch einfach ignorieren, im Fahrzeug funktioniert das dann aber nicht mehr, weil das MMI im 4F diese Quittierungen erwartet und ansonsten die Verbindung resettet bzw. nach mehreren Versuchen einfach ganz einstellt)

Hallo Kai,

Zitat:

Deine Kommunikation wird im Auto nicht sauber funktionieren, weil du bestimmt nur eine Main-Loop hast und dort drin die CAN Messages pollst - richtig?

nein.............

Meine MCPs hängen per HW interrupt am ATMega der kann bis 20MHz und so ginge die SPI bis max 10MHz (Layout ohne Störungen). Aktuell MC 16MHz und SPI 8MHz. Bei den geraden Frequenzen gehen noch 38400 auf der Uart - natürlich ginge auch der 14......MHz Quarz und bis zu 115kBaud - mehr Auswahl habe ich auch nicht da. Mehr MHz bedeuten natürlich auch mehr Rechenpower wenn auch nicht unbedingt proportional.

Die Beschriftung der 2 FIS Zeilen hat sogar mit Bascom funktioniert, da allerdings mit den Aussetzern die ich aber auf das Timing zurück führe schlecht wenn es die Sequenzierung wäre. Wenn ich die 5 IDs mit dem entsprechendem Inhalt versende zeigt das FIS die Daten/ Öltemperatur an - zumindest auf 300Km Probefahrt. Da lief alles aber ohne Radio weshalb ich selbst die CAN Ring Anmeldung simulieren mußte. Die Ringantwort des Telefons lasse ich mal aussen vor. Auf dem Labortisch habe ich die Brigde in der mitte die links und rechts von 2 CAN USB Donglen befeuert wird. Da geht schon was an Datendurchsatz. Ausprobiert habe ich auch schon direkt am Auto.

Zitat:

Die Sequenznummer steht bei den 4F Messages direkt am Anfang der CAN Payload. (im ersten Byte)
Weiter muss jede Meldung quittiert werden. Jeweils mit der letzten (bei Multipart-Messages) Sequenznummer + 1. (die Quittierung ist also gleichzeitig die nächste zu verwendende Sequenznummer)

Hast du mal ein Beispiel wie sich die CAN Frames verändern auch ein Trace wäre hilfreich. Ich denke nur so kann ich die Sequenzierung ausschließen. Da das A4 Cabrio von der Entwicklung deutlich vor dem A6 4F stand wäre es toll wenn es ohne Sequenzierung wäre oder sogar erst mit Einzug des MMI umgesetzt wurde.

Der Plan
Da ich ausschließlich die 2 x 8 Zeichen (0x261, 0x263) im FIS beschreiben will, möchte ich das wie folgt lösen. Nach Fahrzeugstart und Anwahl der Öltemp im FIS nimmt die Bridge die Arbeit auf. Wird aus dem BNS 5 das Telefon angewählt wird die Bridge abgeschaltet. Die Bedienung des Telefons über das MuFu hat da keinen Einfluß da die Tonaufschaltung anders läuft und die FIS Zeilen sowie so mit höherer Priorität über steuert werden. Beim Navi, sobald navigiert werden soll und Displayfläche angefordert wird so ebenfalss abgeschaltet werden. In diesem Fall würde eh die ATemp in die obere Zeile geschoben und eine Öltempanzeige nicht mehr so darzustellen sein da eine Zeile durch die AT belegt ist und das durch das KI selbst ohne Einflüsse von aussen. Die neue Zusammenstellung der Beschriftung und Daten für eine Zeile und 8 zeichen ist nicht zweckmäßig.
Für die Abschaltungen wird dann die entsprechende ID ausgewertet und wird ein Sendeversuch detektiert wird die Bridge abgeschaltet. Die Realisierung der Abschaltung ist so noch offen ob geschaltet oder per sleep Modus der Bausteine. Die ID die dafür sorgt das alle Steuergeräte in den Sleepmodus gehen oder wieder aufgeweckt werden habe ich noch nocht gefunden da dann ja auch der CAN USB nichts mehr loggt. Da habe ich noch keine Antwort. Die Displayfläche in der Mitte will ich nicht nutzen.

Gruß
Schorsch

PS: ein Scrennshot vom CAN Hacker wäre kein Problem !!!

Ich muss mal schauen, ob ich noch einen alten Trace rumfliegen habe ...
Werde ich dann mal posten.
Beim 4F wird die Screen-Umschaltung (Mode-Taste am MuFu Lenkrad, Navi etc.) auch auf den beiden Message-IDs mit signalisiert.
Von daher bräuchte man da keinen Aufwand treiben.
38400 wären mir viel zu wenig. Wenn man da so richtig am debuggen ist, dann muss da schon mehr durchs Terminal rauschen 😉
Auf dem CAN-Bus ist schon eine Menge los - auch wenn man nur die beiden Message-IDs betrachtet.
Ich meine es war 0x478 und 0x479 - nagelt mich jetzt aber nicht drauf fest. Ist schon so lange her .... müsste ich sonst im Source nachschauen, auf den ich hier auf der Arbeit momentan aber schlecht Zugriff habe.

Alternativ kannst du ja auch mal einen Trace hier reinstellen, dann kann ich dir auch direkt sagen ob eine Sequenznummer drin ist oder nicht.
Ist aber wirklich total easy zu sehen, da in Messages immer ein Byte mit jeder Message um eins erhöht wird. Das sieht selbst ein Blinder 😉

Deine Antwort
Ähnliche Themen