CAN-Bus aktiv ansprechen?

  • Moin, moin,


    ich habe eine Frage, auf die ich mit der Suchfunktion keine Antwort gefunden habe, und die geht so:


    Unser REX hat einen CAN-Bus. An diesen sind etliche Sensoren angeschlossen und können ausgewertet werden. Darüber hinaus sind aber auch Steuerelemente angeschlossen -> z.B. Fensterheber und Schiebedach....


    Diese Info habe ich von meinem Freundlichen, weil dass der Grund war, dass er den rechten Seitenfensterheber nicht umklemmen konnte, damit er ohne Batterie funktioniert.


    Wenn ich den Gedanken weiterdenke, dann muss der Fensterheber doch auch über den CAN-Bus anzusteuern sein, d.h. den Befehl "Fenster senken" oder "Fenster heben" müsste ich doch auch von einem PDA senden können...


    Wie nah bin ich mit meinen Vermutungen an der Realität dran? :denk:


    fragt
    Marquis

  • Hallo Marquis!


    Also fangen wir ganz von vorne an:


    Als Grundlage zum CAN gibt´s das Standard-Buch: Controller-Area-Network, Konrad Etschberger, Hanser Verlag, ISBN 3-446-19431-2


    Für den CAN-Bus gibt´s eine ganze Menge Tools, um Daten zu versenden und auch zu empfangen, z.B. bei folgenden Firmen:


    http://www.vector-informatik.de/
    http://www.ixxat.de


    Es gibt auch einfachere Lösungen, weil du im Prinzip nur einen CAN Transceiver und -controller brauchst, gibt´s z.B. schon fertig im Mikrokontroller z.B.


    http://www.phytec.de


    Minimodul 515c, ca. 100,- Euro, da noch ein wenig selbstgestrickte Software drauf und schon siehst du alles und kannst fast alles machen!


    Nun zu deiner konkreten Frage:
    Du hast theoretisch natürlich die Möglichkeit alle Steuergeräte im Fahrzeug anzusprechen und auch zu beeinflussen ... aber das ganze ist nicht trivial, als Beispiel deine angesprochene Fensterheberfunktion:


    Der Fensterheber(-motor) wird (modernes Fahrzeug) von einem Steuergerät angesteuert. Der Schalter für den Fensterheber hängt entweder direkt am Steuergerät oder wird über ein anderes Steuergerät auf den Bus geschickt. Im zweiten Fall müsstest du nur den Befehl selber schicken, und er fährt (unter der Voraussetzung, daß gewisse Randbedingungen erfüllt sind!). Im ersteren Fall geht es nicht so ohne weiteres.
    Wenn der Fensterheberschalter direkt am Steuergerät hängt sollte das Steuergerät einen Diagnosebefehl unterstützen, um die Fensterheber per Tester anzusteuern. Das ist auch nur eine Bus/CAN-Botschaft (aber eine andere als die "normale" Fensterheberbedienung).


    Und bei deinem Fall gehe ich davon aus, du willst den Fensterheber bedienen, ohne daß die Zündung ein ist. Da musst du nun entweder die Steuergerätesoftware ändern, daß es ohne Zündung funktioniert (eher unwahrscheinlich) oder aber dem Steuergerät vorgaukeln, Zündung wäre ein, also das entsprechende CAN Telegramm verschicken. Wenn du Pech hast, hat das Steuergerät nicht nur den CAN Anschluß, sondern auch einen WakeUP Eingang, der parallel zum Status der Zündung läuft, und den du natürlich dann auch simulieren musst, sonst bekommst du einen Fehlerspeichereinträge in den Fahrzeugsteuergeräten weil die Signale auf dem Bus und der Hardware nicht zusammenpassen!
    Nur den Befehl zum Fensterheber bewegen zu schicken, ohne das die Randbedinungen, die das Steuergerät braucht, erfüllt sind enden bestenfalls in keiner Reaktion, im worst-case bekommt du einen Eintrag im Fehlerspeicher des Steuergerätes!


    (Wenn du was anderes vorhast (z.B. beide Fensterheber gleichzeitg mit einer Taste bedienen, oder Beifahrer Fensterheber auf einen kurzen Druck vollständig öffnen) oder ich dich gänzlich falsch verstanden habe, bitte korrigiere mich, vielleicht gehts auch einfacher ohne Bus Eingriffe!)


    ABER


    Ohne eine Nachrichtenübersicht des Busses (da sind vereinfacht gesagt alle Bus Botschaften und die Beschreibung deren Inhalte drinnen) zu haben bzw. eine Beschreibung der Diagnosebefehle (und dann brauchst du zwar keine CAN Karte aber ein Diagnosekabel zum Anschluß an die OBD Dose des Fahrzeugs) wird das nicht ganz einfach.


    Du kannst natürlich per Aufzeichnung des CAN Datenverkehrs (z.B. mit der Software CANalyzer von Vector) versuchen herauszufinden, welches Bit für den Fensterheber steht, aber das wird äußerst schwierig bis unmöglich - quasi Reverse Engineering.
    So machen´s manche Dritt-Anbieter von Diagnose und Analysesoftware, die du frei kaufen kannst, entweder nutzen sie die gesetzlich vorgebenen Funktionen, die jedes Fahrzeug, daß z.B. einen OBD Zugang (Pflicht ab Euro3/D4 Schadstoffnorm) haben muß, oder aber per Reverse-Engineerring, weil die Autohersteller Ihre Unterlagen natürlich hüten wie Augäpfel!


    Als zusätzliche Fehlerquelle bei Eingriffen auf den Bus hast du nun plötzlich mehrere Sender für eine CAN Botschaft. Nun hat das zwar im ersten Augenblick keine Auswirkungen, da CAN Botschaften ja keine Sende- oder Empfängeradresse haben, sondern nur eine Message ID. Aber nun schickst du per Bus den Status "Zündung ein", das original Steuergerät, daß noch nicht eingeschlafen ist, schickt "Zündung aus" ... da kommt Stimmung auf dem Bus auf ... :><:


    Physikalisch solltest du bei Eingriffen auf dem Bus auch sicherstellen, daß die Busterminierung noch passt und deine (Stich-)Leitung nicht zu lange wird und auch sauber verdrillt ist!


    So und nun zum Schluß noch ein Hinweis in eigener Sache und um etwaigen Rückfragen vorzubeugen:
    NEIN, ich habe keinen Zugriff auf Nachrichtenkataloge o.ä. von MAZDA!
    Ich hätte es gerne, da gäbe es eine Menge Spielereien, die mir da für meinen RX-8 noch einfallen ... :thumb:

    Noch einen schönen Tag!


    SVEN


    :Y: Mazda RX-8 Revolution/MJ 2006, 231 PS, montrealblau, Navi und OZ Ultraleggera 8x18 in Racing Gold :Y:

  • Hi Sven,


    WOW erstmal - ist ja ne Menge Information zu verdauen. Mein Anliegen ist eigentlich banal, aber natürlich entwickelt meine Fantasie auch schon die wildesten Szenarien bei voller CAN-Kontrolle :D


    Was ich eigentlich "bauen" wollte ist eine Komfortschließung für die Zentralverriegelung. Gerade im Sommer lasse ich nämlich gerne mal die Scheiben unten oder das Dach auf und merke es immer erst, wenn ich den Wagen schon abgestellt habe. Mein Traum wäre: 2x ZV abschließen = alle Fenster und das Dach gehen zu... 2x ZV aufschließen und die Scheiben/Dach gehen auf...


    Ist bei anderen Fahrzeugen ja auch Standard - hatte sogar schon mein altes BMW 3er Cabrio aus den 90er Jahren. Fehlt mir halt irgendwie *sehnsucht hat*


    Danke für den Buchtip, werde mich mal aufschlauen.


    cu
    Marquis

  • Hallo Marquis!


    *** Achtung: Ohne Gewähr, Nach-/Einbau auf eigene Gefahr, nur als Gedankenspiele ***


    Zu deinen konkreten Wünschen ...


    Das einfachste ist, du versuchst herauszufinden, ob es die von dir gewünschte Funktion im RX-8 z.B. in einer spezifischen Länderausführung (USA ...) gibt.
    Dann geht´s entweder per Codierung (Steuergerät wird vereinfacht gesagt mittels einem Bit von Europa auf USA umgeschaltet), wenn´s nicht codiert werden kann, geht´s evtl. über das aufspielen der (z.B.) USA Software und im worst-case muß das Steuergerät komplett getauscht werden.


    ABER - das wird dir kein Händler offiziell machen, weil es u.U. (wenn nach Murphy alles zusammenkommt) soweit führen kann, daß die (EG-)Zulassung deines Fahrzeugs erlischt und dadurch dein Fahrzeug nicht mehr gefahren werden darf! Außerdem stellt sich die Frage, welcher Händler sowas kann, nach meinen letzten Erfahrungen mit verschiedenen Hänldern (verschiedener Marken) hege ich da große Zweifel! ;(


    Nächstes Problem - ich will dich übrigens nicht entmutigen, sondern dich nur auf ein paar Kleinigkeiten aufmerksam machen, die du beachten solltest - ist, das der Fensterheber auf der Beifahrerseite keinen Einklemmschutz hat (kann auch anders sein, aber ich glaube mich zu erinnern, daß der Fensterheber auf der Beifahrerseite nur solange läuft, wie der Knopf gedrückt ist und nicht wie auf der Fahrerseite auch selbstständig auf und zu - wäre ein Indiz dafür). Auch stellt sich die Frage, ob das Schiebedach einen Einklemmschutz hat! Sollte eines der Teile keinen Einklemmschutz haben, fällt die Version mit der nur zweimal auf die Fernbedienung drücken schonmal flach, weil du ja quasi das Komfortschließen auslösen könntest und dich dann vom Fahrzeug abwendest, während ein böser Mensch durchs Schiebedach hinheinhüpft ... zumindest, wenn du dich an gängige Vorschriften halten willst ... :evil:


    Da bliebe dann noch die Möglichkeit das Schloß der Fahrertür zu verwenden, z.B. wie´s einige Autos machen, Schlüssel rein, auf Position zusperren, und dann halten und solange du den Schlüssel in der Position hältst fahren die Scheiben und/oder das Schiebdach. Dabei hast du dann das Problem, daß die Diebstahlwarnanlage nicht eingeschaltet wird ...


    Aber nun zur konkreten Umsetzung:


    Die Hobbymethode ohne großartige Busspielereien:


    Du trennst die Motorleitungen zwischen Steuergerät und Antrieb per Relaisschaltung auf. Damit kannst du die Motoren quasi fremdsteuern. Ach ja, in die dann offenen Motorleitungen zum Steuergerät kommen Ersdatzwiderstände, die ungefähr den Nennwiderstand der Motoren haben, um einen Fehlerspeichereintrag im Steuergerät zu verhindern. :tongue:
    (Natürlich für jeden Antrieb und irgendwo noch einen zentrale Elektronik, die das ganze dann steuert, kommt jetzt gleich ...)


    Jetzt wird´s kompliziert: Das original Steuergerät hat verschiedene Möglichkeiten zu erkennen, ob die Motoren laufen und auch entsprechend abzuschalten um Beschädigungen zu vermeiden, wenn du z.B. auf Fenster schließen drückst wenn das Fenster schon zu ist.
    Einfachste Version: Messung des Motorstroms per Shunt, komplizierter per Hallsensoren (oder auch beides, um ein durchbrennen einer Sicherung zu verhindern).


    Über die im ersten Schritt aufgetrennten Motorleitungen kannst du nun die Motoren betreiben, sprich Batteriespannung (natürlich nur abgesichert!) draufgeben (mit doppelter Umschaltung, um rauf- und runterfahren zu können). Und per Shunt den Motorstrom messen um abzuschalten, wenn du am Anschlag bist. Alternativ die Hallsensoren bzw. deren Signale benutzen, ist präziser.


    Problem hierbei: Motorstrom hängt von vielen Parametern ab - Temperatur (kälter = härterer Gummi, mehr Strom, da Windungen kälter = geringerer Widerstand...), Schmutz in der Fensterheberführung, Toleranz der Motoren, Verschleiß in den Getrieben (die Motoren hängen wahrscheinlich nicht direkt am Antrieb, sondern per Reduktionsgetriebe).
    Hallsensoren sind hier besser aber halt schaltungs- bzw. softwaretechnisch schwieriger zu handeln.
    Viele Stunden mit Oszi, Meßgerät und Strommesszange in der Garage ... :evil:


    Die Ansteuerung deiner Schaltung geht z.B. in dem du den Kontakt deines Türschloßes "anzapfst" (DWA Probleme siehe weiter oben, evtl. mag das original Steuergerät es auch nicht, wenn der Kontakt zu lange an ist, außerdem sind die Türschösser zwecks Einbruch- und Diebstahlverhinderung geschützt, also nicht einfach ran- und reinzukommen). Oder du besorgst dir eine zusätzliche Funkfernbedienung, gibt´s z.B. bei Conrad, AFAIK 70,- Euro, hat aber keinen Wechselcode, kommt nicht so gut, wenn da jemand mitlauscht und dir dann das Auto leerräumt. Außerdem weist du bei der Gelegenheit nicht, in welche Richtung es gehen soll, weil deine Schaltung ja nicht "weiß", wo die Fenster bzw. Schiebedach stehen.


    Eleganter wäre die Möglichkeit, die Zentralverriegelung anzuzapfen und dann die Fenster und das Schiebedach "gleichsinnig" dazu zu bewegen. D.h. bei verriegeln wird alles zugefahren, bei öfnen alles auf. Macht er dann aber immer, egal ob´s regnet oder die Sonne scheint, und wieder das Problem mit dem Einklemmschutz ... :denk: ... müsste man probieren, ob die original Zentralverriegelung dumm ist, und beim zweiten druck auf die Taster die Motoren nochmal kurz ansteuert (beim Mazda 2, den ich letzens als Ersatzfahrzeug hatte war´s so, aber beim RX-8 glaub ich geht´s nicht), dann hättest du die Möglichkeit das Komfortöffnen oder -schließen gezielt zu steuern! :thumb:


    Was du grundsätzlich beim Basteln am Auto beachsten solltest:
    Je nach Einbauort muß deine Schaltung wasserdicht, oder zumindest Spritzwassergeschützt sein.
    Der Automotive Temperaturbereich geht von -40 Grad Celsius bis + 85 Grad Celsius.
    Die Schaltung darf nicht zu einem erhöhten Ruhestrom im Fahrzeug führen: Entweder ist dann die Batterie leer, oder die Fahrzeugelektronik erkennt den zusätzlichen Verbraucher und trägt wieder einen Fehler irgendwo ein ... :baby:


    Und mit Sicherheit hab ich noch ein paar Kleinigkeiten vergessen, aber für ein wenig Kopfzerbrechen reich´s hoffentlich für heute ... :denk:


    *** Achtung: Ohne Gewähr, Nach-/Einbau auf eigene Gefahr, nur als Gedankenspiel ***

    Noch einen schönen Tag!


    SVEN


    :Y: Mazda RX-8 Revolution/MJ 2006, 231 PS, montrealblau, Navi und OZ Ultraleggera 8x18 in Racing Gold :Y:

  • gibt auf youtube ein vodeo von wem der sich einen car-pc eingbaut hat, über den am CAN BUS hängt und über sein iphone türen, kofferraum sperren kann und motor an und aus machen kann!


    (-:

    05' Mazda RX-8 Revolution - blau - 231 PS - Leder schwarz - Bose (seit 2010)
    00' Suzuki SV650S - schwarz - 80 PS - schwarz - Remus (-: (seit 2008)
    22' Citroen C4 1,2l PureTech Shine - blau - 130 PS - Leder blau - HiFi Paket (seit 2022)
    93' Citroen XM V6.24 Pallas - grün - 200 PS - Leder schwarz - Pioneer (seit 2015)
    83' Citroen 2CV6 Charleston - grau - 29 PS - Velour grau - Pioneer (seit 2016)

  • gibt auf youtube ein vodeo von wem der sich einen car-pc eingbaut hat, über den am CAN BUS hängt und über sein iphone türen, kofferraum sperren kann und motor an und aus machen kann!


    (-:

    ja das stimmt aber da hängt einiges mehr dran als "nur" das steuergerät im kofferraum. da muss man auch ein bischien in der auto elektronik verändern..... meines wissens nach also in den bus einzigreifen ist oft garnicht so leicht. allgemein diese steuerungen mit BUS arbeien oft mit widerstandswerten und wenn man diese verändert kann das auf die gesamte elektronik einfluss haben.
    bsp.... ein feuchtsensor.... der feuchtsensor ist ganz einfahc auf gebaut. sind quasie nur offene leiterbahnen auf einer platine die nah bei einander laufen und wenn dann die beiden leiterbahnen durch wasser verbunden werden gibt das ein signal ans steuergerät. so und um einen drahtbruch elektronisch feststellen zu können werden die beiden leiterbahnen von vornerein schon mit einem gewissen widerstand gebrückt der allerdings genau festgelegt ist und das steuergerät kennt. verändert sich dieser widerstand so gibt es eine fehlermeldung.
    also ich habe beruflich sehr viel mit bussystemen zutun und ich würde wenn ich keine genauen werte und schaltpläne hätte die finger davon lassen nur als gutgemeinter rat ^^ aber ist ja jedem selber überlassen ;)


    Mein REX: 231 PS ; Silber Metallic ; Schwarze Lederausstattung ; Navi ; Bose Sound System ;
    Stahlflexbremsschläuche ; ATE Racing BLue Bremsflüssigkeit ; H&R Tieferlegeungsfedern 45/45 ;
    Rial Nogaro 8JX18" -vorne 225/45/R18 -hinten 245/40/R18 ; Nummernschild tiefer gesetzt


  • Der Zugriff auf den CAN-Bus erfolgt i.d.R. über ein normales OBD-Interface, welches einen Low-Level-Zugriff zulässt (z.B. AGV4000exp). Dann muss man "nur noch" die entsprechenden CAN-Adressen wissen, um die verschiedenen Steuergeräte anzusprechen. Mit Widerständen muss man da also nicht rumhantieren. Ungefährlich ist der Spaß aber trotzdem nicht...

  • gibt auf youtube ein vodeo von wem der sich einen car-pc eingbaut hat, über den am CAN BUS hängt und über sein iphone türen, kofferraum sperren kann und motor an und aus machen kann!


    (-:


    der Typ spietl definitiv nicht in meiner Liga, hier berichtet er darüber :ugly:

  • Boah das ist aber richtig geil!
    Fehlt nur noch das hier:


    Rex 2 (im Besitz ab 08/2009): RX-8 Revolution, 170KW, EZ 06/2004, sunlight silver, Leder schwarz, Bose, tiefes KZ, LAAs, Exedy Stage-1 Sportkupplung, 2KW-Anlasser


    Rex 1 (im Besitz bis 12/2007): RX-8 Revolution, 170KW, EZ 09/2004, sunlight silver, Leder schwarz, Bose, Heck komplett gecleant (inkl. 3. Bremsleuchte),
    Racing Beat REV8 Catback Exhaust, K&N Typhoon I, Rial Daytona Race 9x20" mit Good Year 245/35 R20, Mazdaspeed B-Pillar, Alu-LAAs, H&R -45mm,
    H&R Spurplatten, tiefes KZ, Scheibenfolie tiefschwarz, Parrot Bluetooth Freisprecheinrichtung