Hallo, ich habe ein Projekt vor bei dem ich gut die Hilfe der User in diesem Forum gebrauchen könnte. Habe schon viele Beiträge über die Suche gelesen, aber das reicht nicht. Ich möchte den CAN-Bus meines Audis (A3 8P) "abhören" und bei bestimmten ID's 12V Ausgänge schalten lassen (im Bestfall erweiterungsfähig, mit Timern usw). Ich möchte folgendes realisieren: Mein Austauschradio soll bei "Zündung an" einschalten und bei "Schlüssel abgezogen" ausschalten. Und eine Coming/Leaving Funktion auf die Tagfahrleuchten und diverse LED's. Das Szenario soll das so aussehen: Ich stelle das Auto ab und ziehe den Zündschlüssel (Radio geht aus), dann betätige ich kurz die Lichthupe um die ComingHome/Leaving Home Funktion bis zum nächsten Start zu aktivieren. Ich öffne von innen die Tür (Tagfahrleuchten / LEDs im Spiegel und unter der Tür gehen an) und steige aus. Ich verschließe mit der Fernbedienung den A3 womit der Timer der ComingHome Funktion startet (Lichter schalten nach ca. 30 sek aus). Später komm ich wieder Richtung Auto, öffne mit der FFB und die Leuchten gehen an (Leaving Home) solange bis ich die Fahrertür öffne (dann gehen die LED's aus). Ich schalte die Zündung ein (Radio geht an) und damit wird die Coming Leaving Home Funktion "resettet". Diese sollte für den nächsten Durchgang nun wieder mit Lichthupe aktiviert werden müssen. Das zu meiner Fantasie ^^ Ich suche nun sinnvolle Bauteile und Schaltungsvarianten um zu realisieren, dass die CAN-Informationen gelesen werden (zB: Zündung an). Die gelesene Info soll der CAN-Mikrochip lesen, dann wissen das er das an einen zB: Atmel Mega16 weitergeben soll damit dieser einen Ausgang setzt um über einen Optokoppler 12V auf das Autoradio zu geben. Vergleichbar wäre das mit den Informationen "Tür auf", "Verschlossen" und "aufgeschlossen" auf dem CAN Bus. Diese sollen auch ausgewertet werden um dann Ausgänge zu setzen. Ich weis, das ist bestimmt etwas zu grob aber ich kenn keine Bauteile und kann nur sagen das ich durch das lesen im Netz damals auf den Atmel Mega16 gekommen bin und durch weiteres lesen auf die Möglichkeit den CAN Bus mitzuhören. Könnt ihr Bauteile / Kombinationen zwischen lesendem und schaltendeM Teil empfehlen? Es gibt ja viele Infos im Netz, deshalb bin ich optimistisch. Ich brauche nur erstmal einen Anfang mit Bauteilen um dann Schaltungen zu überlegen. Oder kennt ihr Beispielschaltungen? DAs sollte reichen an Text, wäre super wenn Ihr mal ein paar Erfahrungen schreiben könntet. Wie gesagt, es geht mir vorwiegend um das auslesen, nicht um das schreiben auf dem Bus. thx und Grüße! WoS
Sehr aufwaendig das ganze, das braucht mindestens mehrere FPGAs oder Power PCs... Die Platine muss ausserdem mindestens 8lagig sein.
jetzt kommen gleich ganz viele erhobene Zeigefinger: -das darfst du nicht -Versicherungsschutz erlischt -ABS funktioniert nicht mehr -vielleicht kannst du plötzlich gar nicht mehr bremsen, Kind totgefahren und ganz viele andere Horrorszenarien. Das meiste davon ist reines Hörensagen, die Warner vom Dienst haben noch nie was am CAN gemacht und haben auch keine Ahnung, wie das so im Auto (z.B. mit der Bremse) funktioniert:-) Was du in der Tat lassen solltest: eigene Sachen auf den CAN schreiben, ohne die gesamte CAN-Matrix zu kennen (normalerweise kommt man auch gar nicht an die Infos). Mithören und eigene Sachen hinten dran hängen ist überhaupt kein Problem. Der MCP2515 ist der ideale Chip für dich, der Rest ist Softwaresache.
Kennst du denn die IDs, die du abhören möchstest? Wenn nicht -> vergiß den Rest. Schaltungstechnisch ist das alles nicht so wild. X-beliebigen µC + externen CAN-Controller (wie MCP2515) oder gleich einen µC mit integriertem CAN. Aber ich schätze mal bei deinen nicht vorhandenen Elektronik- und Programmierkenntnissen - so lese ich das mal raus - weiß ich nicht wohin das führen soll.
Cool, schonmal viele Antworten. @ DUDE: warum soll das ganze denn sehr aufwendig werden? 8-lagig usw... wenn es MC mit integriertem CAN gibt, dann brauche ich "nurnoch" den MC programmieren und die Ausgänge festlegen die schalten sollen. Dort optokoppler ran und schalten. es geht ja erstmal nur um 2 Ausgänge die ich schalten möchte. Der Rest ist ja wirklich die Softwaresache. Das mit dem ganzen " die Bremsen gehen nichtmehr" usw. ist albern. Mal ehrlich, wenn ich nichts auf den CAN schreibe, beeinflusse ich nicht. Ich lese vorhandene ID's (die ich teilweise schon kenne) und schalte damit ne Lampe an (simpel gesagt). Das hat auch nichts mit Versicherungsschutz zu tun, weil meine Tagfahrlichter als Standlicht genehmigt sind und LED's unterm Spiegel die Leuchten wenn ich stehe sind nicht verboten. Und es gibt 3 unterschiedliche CAN Busse im Audi. Ich greife nichtmal in den Motorsteuerungs-CAN Bus ein... @ARM-Fan: Danke für deine Antwort! Ja, ich kenne die ID's ("Zündungs ID's, Tür verschlossen usw") Ich würde gern bei deiner Aussage ansetzen, was würdest du für Controller empfehlen? Was spricht gegen einen integrierten CAN im MC? Du kannst gut "rauslesen" ^^ Also fast, weil ich habe nur mal mit nem 555er ne PWM mit nem Kumpel gebaut um meine Tagfahrleuchten zu dimmen. Aber ich zeige Interesse und würde mir gern die Sache aneignen... Mit etwas Unterstützung wird das werden. Was für CAN-MC kombinationen sind zu empfehlen? Ich würde das ganze demzufolge NICHT über CAN Bus programmieren, sondern den Atmel über MISO, MOSI,SCHK... PS: Die Bremse hat garnichts mit dem Komfortbus zu tun ^^ thx WoS
> Mal ehrlich, wenn ich nichts auf den CAN schreibe, beeinflusse ich nicht.
Wird immer wieder behauptet, wird dadurch aber nicht wahrer - es reicht
bereits eine Fehlterminierung um Störungen zu verursachen.....
Otto
@S. Wolf Bei dude war eine Menge Ironie dabei. Bzw. meinte er das werden viele andere hier schreiben. > Wird immer wieder behauptet, wird dadurch aber nicht wahrer - es reicht > bereits eine Fehlterminierung um Störungen zu verursachen..... Es kommt drauf an, an welchen CAN-Bus man geht. Mach einen Kurzschluss zwischen CAN-L und CAN-H am CAN-Komport oder lege beide Leitungen auf +12V und du wirst keine Funktionsstörung beim Motor, Bremsen oder Airbags haben.
Es geht nicht (nur) um die reale Beeinflussung eines Busses sondern eher um die rechtliche Bewertung, und da sitzen Anwälte, keine Techniker. Wenn irgend etwas passiert, ganz egal ob es wirklich was mit CAN zu tun hat, steht jede erkennbare Manipulation auf dem Prüfstand und kann einer Versicherung als Grund dienen, nicht zahlen zu müssen. Wenn du Pech hast führt das de fakto zu einer Beweislastumkehr und du musst dann beweisen, dass die Manipulation nicht die Ursache gewesen sein kann.
> sitzen Anwälte, keine Techniker
Eben.
Dann darfst du auch kein Radio selbst einbauen, keine Lampe selbst
wechslen, kein Handy im Auto verwenden, kein Subwoofersystem einbauen
usw. Es könnte ja alles das ABS beeinflussen.
Ich habe das original Radio entfernt, dadurch fehlt ein Teilnehmer bzw. der CANbus ist an dieser Stelle offen - daraus folgt ein Fehlereintrag im Fehlerspeicher. Naund? Das passiert auch wenn eine Glühbirne defekt ist. Das ABS und ESP funktionieren auch schon nichtmehr (kurzzeitig) wenn die Batterie abgeklemmt wurde. Lernt sich aber wieder selbst an. Vieleicht gibt es dadurch diese Meinungen, weil dieser Effekt schnell auftreten kann. Aber ich möchte das hier nicht diskutieren ob das irgendwann mal irgend ein Anwalt so verdrehen könnte das das der Grund war! Ich vertrete auch die Meinung, da dürfte man ja ncihteinmal ein hifi System verbauen, bzw. müsste ich meine selbst verbauten Tagfahrleuchten wieder ausbauen obwohl die völlig legal verbaut sind (lt. TÜV). Aber gut ist mit dem Zeug, zurück zur Frage: Empfehlt ihr eher die Verwendung von einem AT90CAN oder eher einen MCP2515 und einen MC hinten ran? Was wäre simpler zu realisieren? Und welche Variante kann ich zum CAN Bus abhören mit einem Laptop verwenden? Ich möchte auch per Laptop die Programmierung übertragen können. Ich wäre wirklich dankbar wenn jemand dazu was sagen könnte. Deshalb stelle ich ja hier die Frage, weil hier Leute sind, die mir helfen könnten. Also danke schonmal! mfg WoS
>Empfehlt ihr eher die Verwendung von einem AT90CAN oder eher einen >MCP2515 und einen MC hinten ran? Was wäre simpler zu realisieren? Machs wie dir besser gefällt(evtl. Errata vergleichen). In jedem Fall bedenken, dass auch noch ein Transceiver nötig ist. z.B. MCP2551 Hast also die Wahl zwischen einer 2- und 3-Chip Lösung. Gruß, Edson
Tja, die Varianten nehmen sich nicht allzuviel - ich habe damals auf den MCP2515 gesetzt, da die CAN-Varianten der AVRs schlecht zu bekommen waren. Ich bin mit dem Teil mehr als zufrieden. U.a. eine CAN-Bridge, die dem Auto ein korrektes Motorsteuergerät vorgaukelt, obwohl ein ganz anderes drin ist. Umgekehrt natürlich auch, der Motor merkt nichts davon, dass der im falschen Auto werkelt... Zum einfachen Mithören am PC: nimm da auf jeden Fall einen fertigen CAN-USB-Dongle, gibts von mehreren Herstellern. Ich habe den: http://www.peak-system.com/index_de.html Alles, was du für den MCP2515 an Software brauchst, findest die hier super behandelt - nochmal ein Lob von mir an diese Seite! http://www.kreatives-chaos.com/artikel/ansteuerung-eines-mcp2515#empfangen
Hallo, ich habe heute die Seite ordentlich durchgelesen und viele Leute schreiben ja positiv von der MCP2515 Variante. Erst dachte ich eher in die Richtung AT90CAN aber zu dem MCP2515 sind natürlich viele nützliche Infos zu finden. Da werde ich wohl zu der Kombination greifen: MCP2551 / MCP2515 /ATMega8 Wieviele freie Ausgänge hat der ATMega8 dann noch wenn er fertig verdrahtet ist? Ich habe gelesen, dass der 3 PWM Funktionen hat, 2 könnte ich gut gebrauchen. Zudem brauche ich mindestens 5 Ausgänge die ich verwenden kann. Das sollte aber doch machbar sein mit dem MEGA8 oder? Ich bin noch nicht soweit eingelesen um das sicher zu wissen wieviele ich verwenden kann. Im Anhang habe ich mal einen Ausschnitt (Mega8) der Schaltung vom kreatives-chaos.de hochgeladen. Habe ich da die Pins Nr. 23-26 11-16 4 und 6 noch frei um diese als Ausgänge zu verwenden? Oder kann ich zB. Pin 11 nur als Timer verwenden? Ich bin weiter am lesen ^^ Danke erstmal! cu WoS
MOSI, MISO und SCK solltest du auf jeden Fall von der Hardware-SPI nehmen. Dazu einen beliebigen Portpin als CS und einen (Int0 oder Int1) Interrupteingang. Den Rest kannst du beliebig verwursten. OC2 geht dir also verloren.
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.