Grüß euch! Achtung, ich versuche hier sehr genau zu erklären was ich vor habe. Wall of Text. Aktuell arbeite ich an einem Projekt und brauche dafür wie im Titel genannt ein Zündungsplus für jedes Auto das auch einen Can-Bus hat (Über OBD2) Schnittstelle. Ich habe versucht hier im Forum danach zu suchen, es gibt ein paar ältere Themen die aber nicht genau ins Detail einer möglichen Schaltung dafür gehen. Ich habe mir schon mal einen Adapter (https://www.ebay.de/itm/Radio-Adapter-CAN-Bus-Alfa-Audi-Citroen-BMW-Ford-Mercedes-Opel-Peugeot-VW/293451568487) besorgt der genau das macht, was ich brauche. Allerdings möchte ich ihn gerne genau verstehen und eventuell selbst nachbauen. Der Adapter braucht nicht angelernt werden und funktioniert sofort. Er schaltet dann einen 12V Signal, sobald Can-Bus Aktivität im Auto ist. Leider kann ich die Bauteile nicht inspizieren, da der Adapter eingegossen ist. Folgendes weiß ich bereits über Can-Bus und theoretisch auch was ich messen müsste: * Can-Bus Spannung liegt im Sleep Modus so bei 1-2V auf Can-High und Can-Low. Je nach Auto etwas unterschiedlich. Gemessen bei ein paar verschiedenen Autos. * Can-Bus Spannung im aktiven Modus liegt auf CanH und CanL bei 2,5V * Sobald Can-Bus Daten sendet, ist auf CanH 3,75V und auf CanL 1,25V - Was ein Spannsungsdifferenz von 2,5V ausmacht -> Hier ist glaube ich der Punkt wo ich ansetzen müsste. * Die Signale sind digital, also Rechtecksignale in hoher Frequenz, je nach BaudRate des Bus Systems bei bis zu 1Mhz. Was ich gerne erreichen würde ist folgendes, ohne das ich dabei die Can Signale beeinflusse oder störe: * So wenig Stromverbrauch wie möglich - Es sollte immer im Auto verbleiben * Ein 12V Ausgang nur dann, wenn es Can-Bus Aktivität gibt - Also der Can-Bus Daten sendet -> Die 2,5V Spannungsdifferenz zwischen CanH und CanL * Dabei ist mir klar, das jedes Auto zu einem anderen Zeitpunkt in den Sleep Modus geht, dass ist mir egal wie lange das nachläuft. * Es sollte etwas gepuffert sein, um ein flackern auf dem 12V Ausgang zu verhindern. Also einen Nachlauf von ca. 1 Minute nachdem die letzte Can-Bus Aktivität gemessen wurde * Gesamtstrommenge die ich dann über diese geschaltenen 12V schicken würde sind max. 1A für kurze Zeit, eher 200-300mA auf Dauer. * Es sollte Universell für alle Fahrzeuge mit High-Speed Can-Bus sein, welcher die genannten Spannungen hat. Soweit ich weiß sind das eh schon alle PKWs ab 2004 bzw. 2001 Was ich schon geschafft habe ist, mittels einem kleinen Esp8266 die Spannung auf CanL zu messen und dann ab > 2V ein Relais zu schalten. Hier habe ich auch super unter Kontrolle wie lange das Relais noch aktiv sein soll wenn auch kein Can-Bus Signal mehr daher kommt. Problem: Diese Schaltung ist ein Overkill und verbraucht 40mA, was viel zu viel ist. Es sollte wenige mA bzw unter 1mA sein wenn möglich. Ab hier stehe ich jetzt an. Ich habe leider zu wenig Ahnung von elektronischen Bauteilen und weiß nicht genau wie ich die Schaltung dafür angehen könnte. Ich habe über ein paar Dinge nachgedacht und nachgelesen, kann mir daraus aber nichts zusammendichten. Ich erläutere hier was mein (naiven) Gedanken dazu sind, vielleicht stimmt ja das eine oder andere. Von einem Optokoppler habe ich gelesen um die Signale galvanisch zu trennen, um den Can-Bus grundsätzlich mal nicht zu stören. Ein Komperator sollte zum messen von den Spannungsdifferenzen am Bus helfen. Mit einem Transistor kann ich wahrscheinlich die 12V Dauerplus dann aufgrund des Komperator Ausgangs schalten. Mit einem Kondensator kann ich mir die Signale dann "buffern", um einen Nachlauf zu bewerkstelligen. Es wäre sehr cool, wenn mir da wer weiterhelfen kann, eventuell auch mit ein paar Schaltplanskizzen und/oder spezifischen Bauteilen (und Links dazu) Danke für eure Geduld.
:
Verschoben durch Moderator
Roland schrieb: > Von einem Optokoppler habe ich gelesen Man liest so viel... > um die Signale galvanisch zu trennen, Der CAN-Bus ist aber nicht galvanisch vom Fahrzeug getrennt. Und du willst ja deine Schaltung aus dem Fahrzeug versorgen und bei der Ausgabe wieder in das Fahrzeugpotential eingreifen. Deshalb kannst du auch mit einem OK keine galvanische Trennung erzeugen. > um den Can-Bus grundsätzlich mal nicht zu stören. Natürlich braucht eine OK-LED zum leuchten eine Leistung, die irgendwo herkommen muss. Das geht nicht "rückwirkungsfrei". > Problem: Diese Schaltung ist ein Overkill und verbraucht 40mA, was viel > zu viel ist. Es sollte wenige mA bzw unter 1mA sein wenn möglich. Nimm einen Tiny85 und lass den mit dem internen 128kHz Oszillator laufen. Dann ist der Stromverbrauch irgendwo im zweistelligen µA-Bereich. Ich würde hier mit einem Komparator (oder im einfachsten Fall einem Transistor) überwachen, ob was los ist auf dem Bus, und dann damit einen Interrupteingang des µC triggern, der dann seine Taätigkeit aufnimmt. > Komperator In diesem Wort kommt eigentlich kein -e- vor... > Wall of Text. Mal doch mal einen Schaltplan oder eine Skizze von dem Modul und was wie von Plus nach Minus drin hängt und geschaltet werden soll.
Danke für die schnelle Antwort. Das Stichwort "Tiny85" hat mir jetzt mal wirklich weitergeholfen. Diesen µC hatte ich noch gar nicht auf dem Schirm. Ich bin eher auf der Software Schiene und kann damit wohl besser arbeiten. Der Stromverbrauch sieht für mich jetzt wirklich brauchbar aus. Ich werde das mal weiter verfolgen. Eventuell kann ich es auch ganz ohne weitere Bauteile mit ADC Eingang am Tiny messen, wie ich es schon mit dem Esp8266 gemacht habe. Danke auch zum aufklären des OK, da habe ich mich dann falsch informiert. Im Anhang eine rudimentäre Skizze vom Aufbau
Ich würde einen weckfähigen CAN-Transceiver verwenden, z.B. den TJA1043. Der macht die Pegelwandlung und du kannst am Rx-Pin auf Daten lauschen. Zusätzlich hat er eine Sleep/Wakeup-Funktion, mit der du deine Schlatung schlafen legen kannst bis der Transceiver wieder CAN-Aktivität feststellt und die Schaltung aufweckt. Im Datasheet vom TJA1043 ist dazu sogar eine Beispielschaltung sskizziert. Im Sleepmode benötigt deine Schaltung dann nur paar µA. Ausserrdem kommt der CAN-Transceiver mit den zum Teil starken Leitungsstörungen im Fahrzeug zurecht, was man von den µC bzw. ADS/Komparator-Eingängen nicht sagen kann. Und er stört definitiv nicht den CAN-Bus, solange er nicht entsprechend angesteuert wird. Weckfähige wie der TJA1043 benötigen allerdings eine Ansteuerung/Konfiguration über IO-Pins und damit auch SW. "Dumme" wie der TJA1041 können dagegen auch ohne Ansteurung/SW verwendet werden, dafür hat man dann keine Wakeuperkennung mehr.
Danke für den Tipp mit dem TJA1043/TJA1041 Transceiver, auch diese Lösung klingt interessant. Werde ich auch weiter verfolgen.
Könnte die Detektion so wie im Anhang funktionieren? Wenn die Differenz zwischen den beiden ADCs zu gross ist, wird etwas übertragen. Wenn nicht, wird nichts übertragen. Geht das (theoretisch) so?
SEPP schrieb: > Geht das (theoretisch) so? Ich denke ja, ich habe es jedenfalls mit einem ESP8266 schon mal so gemacht. Allerdings nur auf CanH mit Check auf >2,5V ohne 10k Widerstand. Es genügt ja im Prinzip eine Leitung zu checken, da bei Bus Signalen eh beide gleichzeitig Low/High sind, denke ich... Bei mir hat es bei 2 Autos und im "Labor" funktioniert, was aber nicht bedeutet, dass es vernünftig ist es so zu machen. Mit einem Tiny85 werde ich das jetzt genau so nochmal probieren und schauen in wie weit ich Stromverbrauch reduzieren kann. Dann noch schauen wie Fehlertolerant das System ist. Kurzschluss (Durch Fehler im Auto) zu G oder 12V zu CanL/CanH ist im Auto ja technisch möglich und zerstört normalerweise auch keine Can-Bus Teilnehmer.
:
Bearbeitet durch User
Normallerweise hat jeder KL30 CAN Transceiver einen sogenannten INHIBIT-Ausgang, das ist ein Highside Schalter, der Plus (die KL30) durchschaltet. Jetzt hängst du einen solchen Transceiver an einen kleinen Microcontroller und konfigurierst ihn so, dass er Listen Only Mode läuft und wenn z.B. 30s nichts mehr gesendet, dass er dann in den Sleep wechselt. Startet jetzt die CAN-Kommunikation, wacht der Transceiver aus, schaltet den INHIBIT, damit lässt sich auch der Microcontroller wecken indem er die Spannung für den Spannungsregler bzw. dessen Wake-Input schaltet. Als passenden CAN Transceiver wären z.B. NXP TJA1041 zu nennen und die App-Note AN00094. Das steht eigentlich alles drin.
Nachtrag: Diese Methode hat den Vorteil, dass du keine Ahnung von der Verwendeten Kommunikationsmatrix haben musst. Sie funktioniert einfach.
> Aktuell arbeite ich an einem Projekt und brauche dafür wie im Titel > genannt ein Zündungsplus für jedes Auto das auch einen Can-Bus hat (Über > OBD2) Schnittstelle. Noch ein Hinweis am Rande: Nicht alle Fahrzeuge haben CAN-Botschaften auf der OBD2 Schnittstelle, wenn der CAN-Bus im Fahrzeug aktiv ist. Z.B. erst, wenn ein Diagnosetester eine Diagnosesession initiiert hat, sind dort CAN-Botschaften zu finden.
Andreas W. schrieb: > Noch ein Hinweis am Rande: > Nicht alle Fahrzeuge haben CAN-Botschaften auf der OBD2 Schnittstelle, > wenn der CAN-Bus im Fahrzeug aktiv ist. > > Z.B. erst, wenn ein Diagnosetester eine Diagnosesession initiiert hat, > sind dort CAN-Botschaften zu finden. Interessante Information. Würden dann aber nicht alle am Markt erhältlichen OBD2 Dongles, die grundsätzlich für fast alle Fahrzeuge gehen, bei solchen Autos auch nicht funktionieren? Denn damit so ein Dongle funktioniert, muss er wissen mit welchem Protokoll der Can-Bus im Auto kommuniziert (BaudRate), bevor er etwas senden kann. Das machen die normalerweise einfach mit lauschen und warten bis Signale kommen. Weiters würde in einem solchen Auto, wo mal per Default gar keine Signale am Can-Bus OBD2 Stecker kommen, alle genannten Lösungen nicht funktionieren. Man könnte "blind" jetzt aber eine Can-Bus Diagnose Message schicken, weiß man aber das genaue Protkoll des Autos nicht, kann das Fehler im Auto erzeugen (Hab ich schon geschafft mit einem Can-Bus Modul am Arduino). Ich denke, wenn es wirklich solche Autos gibt, dann muss ich für mein Projekt davon ausgehen, es wie eine Auto ohne irgendeinen Can-Bus zu handhaben, also unsupported.
Nein, denn die Baudrate an der OBD2-Schnittstelle ist mit 500 kBit/s bekannt, wenn Du den CAN-Bus an den Pins 6, 14 meinst. Und die Diagnosebotschaften sind auch bekannt, deshalb funktionieren die ganzen OBD2 Dongles (Diagnose). Dein oben aufgeführter Beispieladapter ist wohl eher für den Innenraum-CAN Bus vorgesehen und nicht für die OBD2 Schnittstelle damit er in allen Fahrzeugen funktioniert. Ich würde wohl eher an den Anschluss an der OBD2-Buchse verzichten und mich direkt am CAN-Bus vom z.B. dem Radio dranhängen um jedes Fahrzeug abzudecken. (Die Nachteile die damit für den Einbau und Dokumentation verbunden sind, sind mir bewusst :-( ) Und hier findest Du noch ein paar Hintergrund Informationen zu: - Diagnoseprotokolle (Kapitel 5,6): http://www.emotive.de/documents/WebcastsProtected/Transport-Diagnoseprotokolle.pdf - PIDs: https://en.wikipedia.org/wiki/OBD-II_PIDs
Andreas W. schrieb: > Nein, denn die Baudrate an der OBD2-Schnittstelle ist mit 500 > kBit/s > bekannt, wenn Du den CAN-Bus an den Pins 6, 14 meinst. > Und die Diagnosebotschaften sind auch bekannt, deshalb funktionieren die > ganzen OBD2 Dongles (Diagnose). Das meine ich ja, aber 500kbits ist nicht genormt. Es könnte auch 125kbits, 250kbits, 1mbit oder irgendeine andere Rate sein. Das ist dem Hersteller überlassen. Wobei es stimmt das mit 500kbits die meisten arbeiten, deswegen probieren die Can-Dongles das auch als erstes. Hatte aber auch schon ein Auto, wo es 250kbits waren. > Dein oben aufgeführter Beispieladapter ist wohl eher für den > Innenraum-CAN Bus vorgesehen und nicht für die OBD2 Schnittstelle damit > er in allen Fahrzeugen funktioniert. Ne das sind schon die OBD2 Dongles die ich meine. Die haben ein automatisches ermitteln des Protokolls/BaudRate. Sieht man auch in den unterliegenden AT-Befehlen die man an das ELM327 Modul darin senden kann. > Ich würde wohl eher an den Anschluss an der OBD2-Buchse verzichten und > mich direkt am CAN-Bus vom z.B. dem Radio dranhängen um jedes Fahrzeug > abzudecken. > (Die Nachteile die damit für den Einbau und Dokumentation verbunden > sind, sind mir bewusst :-( ) Ja, das wäre am Schluss auch eine Möglichkeit, aber nicht der Weg den ich gehen möchte. Ich werde als ersten Ansatz jetzt mal den Attiny85 testen, mit dem ich via ADC einfach die Can-Bus Spannung messen kann. Das Teil ist super günstig, kann ich programmieren und benötigt keine weiteren Bauteile, außer vielleicht den ein oder anderen Widerstand und ein Relais. Soweit ich das bei meinen bisherigen Tests mitbekommen habe, haben alle meine getesteten Autos den Can-Bus im Sleep Modus auf weniger als 2V geregelt, was ich erkennen kann, ohne das überhaupt jemals eine Message gesendet wurde. Sobald der Can-Bus Aktiv wird, fährt die L/H Voltage auf 2,5V - Das heißt Aktiv aber noch nichts gesendet. Bei 3 Autos hat das geklappt, wie gesagt eben mit einem Esp8266 der mir zuviel Strom saugt. Aber mit dem Tiny85 sollte ich das selbe erreichen, mit minimalem Stromverbrauch.
Ok ein kurzes Update zum Test mit Attiny85. Ich habe ein Modul gekauft das bereits einen USB Anschluss hat zum einfachen programmieren. Damit schaffe ich das, was ich haben möchte, mit akzeptablen Stromverbrauch von ca. 8mA im Mittel bei 12V im Ruhezustand. Tests in mehreren Autos stehen noch aus. Die Schaltung liest permanent CAN-H Spannung. Sobald diese über 2V geht, nehme ich jetzt mal an das der CAN-Bus Aktiv genutzt werden kann, egal ob jetzt Daten gesendet werden oder nicht. Bei meinen vorherigen Tests mit dem Esp8266 hat sich gezeigt, das alle Autos die ich getestet habe den Bus im Ruhezustand auf <1V runterregulieren wenn das Auto schlafen geht. Der Attiny85 selbst verbraucht nur 2mA, das meiste geht für den DC Step Down Converter drauf der 6mA verbraucht. Ich habe das Gefühl es gibt einen performanteren Converter, der 12V runterregeln kann, habe aber noch keinen wirklich passenden gefunden. Mein Attiny85 verträgt selbst direkt 12V Input am VIN, verbrennt dabei aber mehr Strom als wenn ich nen richtigen Buck Converter vorher nehme. Ein Spannungsteiler 100k/27K am CAN-H Input zum Attiny schützt mir die Schaltung bei Kurzschluss zu 12V und gibt mir bei 2,5V Can-H Spannung noch genug Genauigkeit (ca. 0,5V) Am Schluss schalte ich aktuell ein 5V Relais, baue das aber noch um auf Transistoren, wenn ich welche da habe. Ein Nachlauf von ca. 1 Minute nachdem der Can-Bus schlafen geht ist einprogrammiert, das möchte ich so haben und funktioniert auch. Gesamtschaltung kostet mir somit grob so um die 5-6€. Geht sicher noch billiger wenn ich mehr Zeit in die Suche investiere bzw. mehr auf einmal Kaufe. Ich poste dann demnächst noch die Ergebnisse meiner Tests und evtl. Schaltung und Code dazu.
:
Bearbeitet durch User
Roland schrieb: > Ich habe mir schon mal einen Adapter > (https://www.ebay.de/itm/Radio-Adapter-CAN-Bus-Alfa-Audi-Citroen-BMW-Ford-Mercedes-Opel-Peugeot-VW/293451568487) > besorgt der genau das macht, was ich brauche. Allerdings möchte ich ihn > gerne genau verstehen und eventuell selbst nachbauen. Und was macht man in so einem Fall? Rumjammern? Rätselraten? Nö, aufmachen und nachsehen! > Der Adapter braucht nicht angelernt werden und funktioniert sofort. Er > schaltet dann einen 12V Signal, sobald Can-Bus Aktivität im Auto ist. > Leider kann ich die Bauteile nicht inspizieren, da der Adapter > eingegossen ist. Na und? Ich hab mir für Dich mal so einen Adapter besorgt und freigelegt. Leider ist es völlig demystifizierend was man darin findet... einen µController sucht man vergebens.
:
Bearbeitet durch User
Versuchs mal mit einem LP2905 oder gleich einem LP2952, der hat sogar einen Shutdown-Pin. Mit seinen 100 mA Max. dürfte er voll ausreichen. Er ist kurzschlußfest, thermalgesichert, verpolungssicher und kann Eingangsspannungen bis 30V ab.
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.