Ich habe hier ein Auto, an dessen OBD-Anschluß nur noch der CAN-Bus auf der OBD-Buchse im Gange ist. Dadurch funktioniert mein altes K/L-Interface nicht mehr. Ich sah eine Menge Schaltungen, in dem ein MCP2551 als CAN-Bus Ankopplung fungiert. Da ja die Baudrate dabei unheimlich hoch ist und auch der Auf- bau des Protokolls mit bis zu 134 Bit für einen "Durchgang" ganz anders als bei RS232 aussieht, kann ich ja nicht einfach einen MAX232 hinten dran hängen und das auf den Rechner "jagen". Ich fand heraus, daß es Spezialschaltkreise gibt (ELM327), die offenbar diese Protokollumsetzung bewerkstelligen. Diese Biester sind allerdings sehr teuer. Frage: Hat schon einmal jemand diese Umsetzung mit einem AVR (nicht CAN-AVR sondern "normale" Atmega xx oder Attiny xx) realisiert? Hinweis: Ich bin kein Tachoversteller, mir geht es nur darum, wie früher mit dem K/L Interface eventuell aftretende Fehlercodes auslesen zu können. MfG Paul
Paul Baumann schrieb: > Diese Biester sind allerdings > sehr teuer. Du bezahlst da natürlich auch einen Teil der Entwicklungskosten mit. Dafür finde ich die Preise ganz ok. Du kannst dir das ganze natürlich auch mit einem ATMega + MCP2515 (über SPI) + MCP2551 aufbauen und das Protokoll + die Host-Software selbst implementieren.
das billigste und vor allem einfachste ist ein at90can128 (<10euro) und nen ft232rl dran damit man nen CAN<>USB adapter hat. hab letztens erst nen paar von so dingern gebaut, ist echt simpel
Mit einem AT90CAN128 und einem USB UART Wandler kommt man schnell zum Ziel. Es braucht nur noch den CAN Transceiver (z.B. PCA82C251). Auf einem Crumb128 (http://www.chip45.com/AVR-ATmega-Mikrocontroller-Module/Crumb128-V4-0-AVR-ATmega128-ATmega2561-90CAN128-USB-RS485-CAN-Modul.html) ist alles an Hardware schon vorhanden. Von Atmel gibt es auf der AT90CAN128 Seite http://www.atmel.com/dyn/products/product_card_v2.asp?part_id=3388 unten eine "AT90CAN32/64/128 Software Library", die man kostenlos herunterladen kann. Da ist ein CAN-Spy Beispiel dabei, das alle CAN Messages auf einem UART ausgibt. Ich habe das kürzlich verwendet und es hat super funktioniert. Für eine schnelle Lösung gut zu gebrauchen. Viele Grüße, ER!K http://www.chip45.com
Erik Lins schrieb: > Von Atmel gibt es auf der AT90CAN128 Seite > http://www.atmel.com/dyn/products/product_card_v2.asp?part_id=3388 unten > eine "AT90CAN32/64/128 Software Library", die man kostenlos > herunterladen kann. Da ist ein CAN-Spy Beispiel dabei, das alle CAN > Messages auf einem UART ausgibt. Ich habe das kürzlich verwendet und es > hat super funktioniert. Für eine schnelle Lösung gut zu gebrauchen. die lib kann ich jetzt nicht so wirklich empfehlen, ist einfach sich da eben was eigenes zu schreiben...
Ich danke Euch fuer die Anworten. Mit dem CAN-Bus habe ich mich noch nie befassen muessen. Deshalb eine Frage: Wie ich in der Spezifikation des CAN-Busses sah, kann ein "Durchgang" zwischen 1 und 64 Bit an "Nutzinformation" beinhalten. Ich muesste mir also aus dem Datenstrom an Rxd vom MCP2551 die eigentliche Information herauspicken und dann in Form von 1 Byte bzw. maximal 8 Byte langen Paketen zu meinem Kontroller senden. Der aber wiederum kann ja nur langsamer (115000 Baud) an den angeschlossenen Rechner senden. Es wuerde also mein Kontroller in kurzer Zeit mit CAN-Daten "zugestopft". Frage: Sind meine Ueberlegungen richtig Hier ist noch ein Link auf eine derartige Schaltung: http://www.tuning.it/elm327_schematic.pdf Ich suchte nach einer Schaltung die diese Funktion statt des ELM327 (der auch alle anderen Protokolle unterstuetzt)mit einem z.B. Atmega8 erfuellt. Ich fand mittlerweile heraus, dass dieser ELM327 kein spezifisch her- gestellter Schaltkreis, sondern ein PIC ist. MfG Paul
Paul Baumann schrieb: > Ich muesste mir also aus dem Datenstrom an Rxd vom MCP2551 die > eigentliche > Information herauspicken und dann in Form von 1 Byte bzw. maximal 8 Byte > langen Paketen zu meinem Kontroller senden. Dafür brauchst Du einen CAN-Controller. Entweder im Prozessor oder als Stand-Alone Teil wie z.B. der MCP2515. Mittels Port-Pin oder serieller Schnittstelle schaffst Du das nicht. > Der aber wiederum kann ja > nur > langsamer (115000 Baud) an den angeschlossenen Rechner senden. Es wuerde > also mein Kontroller in kurzer Zeit mit CAN-Daten "zugestopft". Die Hauptarbeit macht dein Prozessor. Steuergerät reizen, zyklisches "tester present" Signal und ausfiltern der nicht an der Testerkommunikation beteiligten CAN-Botschaften. Auf der Seriellen Schnittstelle reichen dann im allgemeinen 9600 bis 57600 Baud. Gruß Anja
Danke, Anja für Deine Erklärungen und Hinweise. Ich habe mir das Datenblatt vom MCP2515 hergeholt. Das sieht ganz vernünftig aus. Dann werde ich mir mal den MCP2551 und den 2515 besorgen und mal sehen, wie ich über die SPI-Schnittstelle von einem Atmega8 aus mit ihm "reden" kann. MfG Paul
Nur so als anregung, mit den FTDI-Chips sind sehr schnelle uart/rs232 verbindungen über den USB-Port möglich. Weis aber grach nich ob's dafür reichen würd 1:1 zu senden, ich mein mal was von 3Mbaut gelesen zu haben, aber kann ich mit Sicherheit nich sagen. Hab auch leider grad keine zeit das rauszufinden ...
Für den FT2232H gibts eine Applikation mit den SJA1000 im Datenblatt: http://www.ftdichip.com/Documents/DataSheets/DS_FT2232H.pdf
Nein, das was ich vorhabe, ist mit den FTDI-Chips auch nicht zu machen. Die Geschwindigkeit würde wohl reichen, aber: Ich will den CAN-Bus eines Autos ansteuern. Sämtliche PC-Programme dafür verwenden AT-Kommandos (wie bei Telefonen üblich), um die einzelnen Steuergeräte im Auto ab- zufragen. Es muß also ein Kontroller zwischen den CAN Receiver/Transmitter MCP2551 und den Rechner gesetzt werden, der dann die AT-Kommandos, die die PC-Programme senden in die entsprechenden CAN- Kommandos umsetzt. Das wäre z.B. oben genannter ELM327. Den gibt es aber nicht mehr mit DIL-Gehäuse zu kaufen, so daß ich mir etwas Anderes überlegen muß. Der Link von A.K. (prx) ist gut für mich. Das ist zwar in C geschrieben, aber gut kommentiert. MfG Paul
das ELM ding für CAN kostet beim chinesen (fix fertig) mit USB anschluss 15€ was soll denn da bitte teuer sein ?
@lrlr Gibst Du mir bitte mal einen Link zu den 15 Euro? ;-) MfG Paul
OT: Genau das habe ich erwartet: Einen Link zu Ebay und dann 3schlechte Bewertungen für dieses Gerät. Es funktioniert nicht mit dem CAN-Bus Außerdem zahle ich nie per Paypal. Trotzdem danke ich Dir für Deine Suche. MfG Paul
es gibt nur 3 negative? was glaubst wie viele "experten" das ding bestellen, und dann nicht mal den treiber installiert bekommen.... ich hab einen smart forfour (der hat nur can) und dieses ding drehzahl, irgendwelche drücke usw. wird alles angezeigt ps. ich hab keine negative bewetungen (für dieses geräte) gefunden. (bin ich wohl "blind".) ich weiß aber auch nicht mehr von welchem chinesen ich es gekauft hab.. ich hab das aber auch eher vorgeschlagen, weil behauptet wurde der ELM wäre so teuer, .. das ding kannst dir ja zerlegen und alles brauchbare rauslöten...
>Frage: Hat schon einmal jemand diese Umsetzung mit einem AVR (nicht >CAN-AVR sondern "normale" Atmega xx oder Attiny xx) realisiert? Der ELM327 ist ein PIC aus Kanada. Von den Chinesen gecrackt. Mehr schlecht als recht. Also entweder das Original, was ja auch nicht sooo teuer ist oder Finger weg -> Original PIC googeln "Küster Hannover". In der Zeitschrift Elektor (Aachen) und Funkamateur (Berlin) ist ein Industriemodul beschrieben (Homepages der Verlage findet man auch leicht über Google), das nennt sich DXM und beinhaltet schon die gesamte Peripherie für den OBD2 Anschluss. Selbst wenn Du Dir die Bauelemente dafür einzeln kaufst und zusammenbastelst, wirst Du teurer kommen - und das Modul ist komplett fertig. Was die Bastelei am CAN-Bus betrifft, da kann man geteilter Meinung sein. Aber das DXM hat wohl auch einen CAN-Open Modus, damit kann man mit der Freeware CANHACKER auf den CAN-Bus frei zugreifen. Homepage DXM: http://dxm.obd-diag.net/ ELV bietet ein Starterkit dazu an (RS232): Artikel-Nr.: 68-880-31 Ein Bausatz für ein Gerät mit LCD-Anzeige ist im Elektor erschienen: Elektor: http://www.elektor.de/jahrgang/2009/september/obd-2-analyser-ng.1040758.lynkx Homepage dazu: http://openhandheld.obd-diag.net/ Wie gesagt, ich glaube kaum, dass der Aufwand sowas selbst zu entwickeln den Preis dafür rechtfertigt. Das gibt es für überschaubare Preise alles fertig. Letzteres Projekt ist sogar open-source, PC-Software gibts gratis dazu und die Sourcen zum download.
achso - hier habe ich Dokus zum DXM gefunden: http://www.er-forum.de/obd-diag-dl/index.php?PHPSESSID=00054d3c34bb7b6b4dc0c4df4e6878ed&direction=0&order=&directory=DXM%20-%20Diamex-OBD2-Modul&PHPSESSID=00054d3c34bb7b6b4dc0c4df4e6878ed
Hallo Rudolf, dieses DXM 1-Modul ist eine feine Sache. Ich denke, daß ich mir statt des ELM327 dieses Modul bestelle, da es genau so viel kostet, wie der ELM allein. Einen MAX3232 habe ich zur Anpassung an den RS232-Pegel auch noch da. Außerdem ist mir ein Kontroller von Atmel lieber als ein PIC. Deine Ausküfte haben mir sehr geholfen. MfG Paul
>Außerdem ist mir ein Kontroller von Atmel lieber als ein PIC. da ist sogar ein Cortex M3 drauf. Man findet keine Schalt-Pläne zu dem Teil, aber rein optisch ist das ganz schön mit Silizium vollgepflastert - auch ziemlich klein das alles. Einen K-Line-, CAN-Treiber hab ich entdeckt, diverse Spannungsregler, ein paar Transistoren. Spezial-ICs sind auch drauf. Konnte ich bisher nicht identifizieren. Die PCB ist minimum vierlagig. Ich habe ein Evalutionboard, da ist auch noch ein LCD (dreizeilig) drauf, das wird direkt über ISP angesteuert. Das braucht man sicher nicht unbedingt. Das Board lässt sich sauber als USB-Interface betreiben. Und ist nach meinem Geschmack preislich durchaus attraktiv. Der Anschluss eines LCDs ist in den Datasheets beschrieben. Man braucht also strenggenommen kein Developmentboard, weil man sich das LCD selbst an das DXM dran klemmen kann, aber wenn ich bei Reichelt schaue, ist das LCD (EA-DOG-M 163 - Electronic-Assembly) doch nicht gerade ein Schnäppchen. Sicher gehen da auch andere Teile mit ISP Schnittstelle. Nur wenn man es selber dranklemmt ist das sicher teurer als wenn man gleich komplett und fertig kauft. Mal abgesehen davon, dass der Spaß abhanden kommt. Der Hauptvorteil liegt im bereits freigeschalteten CAN-Open Modus, den man sonst beim DXM extra bezahlen muss. Also nochmal 15 Euro gespart. Hier der Link zum Anbieter: http://www.obd-shop.com/danila/product_details.php?id=359&lang=de Das Entwicklungsbord bekommt man offenbar nur dort.
Das werde ich gar nicht brauchen, da ich nur einen Rechner anschließen will, um zu sehen, was dem Motorsteuergerät auf der Seele brennt, wenn es mir die gelbe MIL-Anzeige leuchten läßt. ;-) Auf andere Sachen (ABS, Airbag usw. will ich gar nicht zugreifen können. Vielleicht kannst Du mir diese Frage beantworten: Sehe ich das richtig, daß der Kontroller hierbei eigentlich "nur" ein Interpreter sein muß, der AT-Kommandos vom Rechner empfängt und sie dann in CAN-Befehle umsetzt? MfG Paul
>Sehe ich das richtig, daß der Kontroller hierbei eigentlich "nur" ein >Interpreter sein muß, der AT-Kommandos vom Rechner empfängt und sie dann >in CAN-Befehle umsetzt? ja das ist ja ein Interpreter im OBD2 Modus.
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.