Hallo liebe Community :) Es hat sich bei mir ein neues Projekt herauskristallisiert, was mich an die Grenze meines Wissens uns Könnens treibt, aber die Motivation ist groß! Ich hoffe ihr könnt mir weiter helfen. Das Vorhaben ist: Das verbinden von 2 (bzw. 3) Bussystemen (K-CAN und K-Line in einem KFZ) Also ein 2Adern CAN 2.0A Bus (100kbit/s) , mit einem Einfachen 9,6kbit 1Adern Bus. Nun habe ich leider noch wenig Ahnung wie ich das ganze angehen soll. Was ich mich überlegt habe, ich brauche einen Programmierbaren Microcontroller, welcher Busbotschaften auf der einen Seite empfängt, übersetzt, und auf der anderen Seite wiederausgibt. So nun meine Frage: Gibt es soetwas schon? Wenn ja woher bezieht man es, und wie programmiert man es? wie ihr seht bin ich neuling :) Vielen Dank im Voraus! Gruß Andrej
Hardwareseitig kann das jeder µC mit CAN-Controller und UART (für K-Line). Die wichtigste Frage ist aber: Hast Du eine Spezifikation über die Protokolle, die auf CAN und K-Line laufen? Sprich: Ist Dir bekannt, welche Informationen in welcher CAN-Nachricht in welcher Codierung kommen? Ohne dies kannst Du mit den CAN-Nachrichten nichts anfangen, da Du nicht weißt, was sie Dir sagen sollen.
Hi, ja so etwas gibt es schon komplett fertig oder als Bauteil. Du kannst einen einfachen OBD2 Adapter nehmen, der z.B. per USB an den PC angeschlossen wird. Dort ist meist ein PIC oder ein ELM Baustein verbaut, die die Umsetzung der ASCII Anfragen in das entsprechende Protokoll machen. Lade dir einmal das Datenblatt des ELM327. Das ist ein Baustein, der alle OBD2 Bussysteme des OBD2 unterstützt und auch die entsprechenden Protokolle selbst ermittelt. Diese Logik müsstest du in deinem Controller auch umsetzen, wenn du kompatibel sein möchtest. Neuere Fahrzeuge nutzen CAN und da ist das Protokoll einheitlich. Was möchtest du denn damit genau machen? LG
Danke schinmal für die Infos :) Die k-line Codierung ist eigentlich komplett bekannt, beim k-can ist man (ich noch nicht) gerade dabei zu loggen und zuzuordnen, gibt aber schon einiges :) Ziel ist es (zuerst mal) in alle BMWs zwischen 1995 und 2004 (welche k-line bzw. Ibus benutzen) die kompletten navi, Audio, Systeme einbauen zu können der neueren BMWs , und damit halt auch die erweiterten infosystemeUnd dazu muss die kommunikation stimmen (lenkwinkelsensor, PDc Etc. ) Bronco, kannst du mir ein Beispiel geben für solch einen uc mit uart und can Controller? Das mit dem elm327 find ich auch interessant, nur was mach ich mit meiner k-line? Die ist nicht obd2 Standard :(
edit: grad beim stöbern auf http://www.chip45.com/products/crumb128-can-5.1_avr_atmega_modul_board_at90can128_usb_rs485_can.php das ding da gestossen, das wäre doch ideal oder irre ich da? Ich habe ein OBD-CAN und ein OBD-K-Line Interface mit denen ich fröhlich beim Bus ja mitlauschen könnte (ein neuer BMW mit NAVI ist auch zugänglich von einem gutem freund...) Danke für euer Feedback!
Andrej S. schrieb: > edit: > > grad beim stöbern auf > > http://www.chip45.com/products/crumb128-can-5.1_avr_atmega_modul_board_at90can128_usb_rs485_can.php > > das ding da gestossen, das wäre doch ideal oder irre ich da? leider nein. Beide serielle Ports des AVRs sind bereits belegt - einer mit der USB-Bridge, einer mit dem RS485-Transceiver. Dein K-Line Transceiver will auch noch eine serielle Schnittstelle haben. Du müsstest also das Board ändern. Da ist es besser, ein neues zu machen. Nimm doch einfach einen PIC32MX564F128H-I/PT. Da hast Du CAN drin, da sind genügend UARTs drin, alle LIN-fähig (falls Du das mal brauchst), für USB brauchst Du keinen extra Chip, das ist auch schon drin, 64k RAM drin, 512k Flash, 32Bit 80 MHZ Prozessor, und kostet z.B. bei Farnell 5,73€. Der auf dem von Dir gefundenen Board verwendete AT90CAN128, der nur ein 8 Bit Controller mit viel weniger Leistung ist, kostet dort 11,60 €. Da wärst Du doch schön doof, wenn Du für einen Bruchteil der Leistungsfähigkeit die doppelte Kohle hinlegst, oder? fchk
Andrej S. schrieb: > Es hat sich bei mir ein neues Projekt herauskristallisiert, was mich an > die Grenze meines Wissens uns Könnens treibt, aber die Motivation ist > groß! Eher weit darüber hinaus. Andrej S. schrieb: > Danke schinmal für die Infos :) > > Die k-line Codierung ist eigentlich komplett bekannt, beim k-can ist man > (ich noch nicht) gerade dabei zu loggen und zuzuordnen, gibt aber schon > einiges :) > > Ziel ist es (zuerst mal) in alle BMWs zwischen 1995 und 2004 (welche > k-line bzw. Ibus benutzen) die kompletten navi, Audio, Systeme einbauen > zu können der neueren BMWs , und damit halt auch die erweiterten > infosystemeUnd dazu muss die kommunikation stimmen (lenkwinkelsensor, > PDc Etc. ) > > Bronco, kannst du mir ein Beispiel geben für solch einen uc mit uart und > can Controller? > > Das mit dem elm327 find ich auch interessant, nur was mach ich mit > meiner k-line? Die ist nicht obd2 Standard :( Vergiß es, Dazu brauchst du sehr viele BMW interne Informationen , die dir niemand geben wird. Jedenfalls keiner der noch länger bei BMW arbeiten will. Was du brauchst ist ein Gateway zwischen der alten und der neueren BMW Systemarchitektur. Also such dir mal die Entwicklungsdokumentation zu den beiden Versionen der Systemarchitektur. Wenn du diese Daten zusammen hast, kannst du mal anfangen. ( Das ist weit mehr als nur die Can Signalbeschreibung )
Frank K. schrieb: > leider nein. Beide serielle Ports des AVRs sind bereits belegt - einer > mit der USB-Bridge, einer mit dem RS485-Transceiver. Dein K-Line > Transceiver will auch noch eine serielle Schnittstelle haben. Du > müsstest also das Board ändern. Da ist es besser, ein neues zu machen. Alles klar danke schonmal :) Also wenn ich den RS485 transreceiver auf dem Board tauschen würde (gegen was für k-line?), wäre es möglich? Ich wollte kein neues Board entwickeln. Zum hintergrund: bin nun im 5. Semester an der TU Darmstadt, in Elektro und Informationstechnik, und es ist ganz viele tolle theorie die ich behersche, ich wollte aber mal was "machen" > Nimm doch einfach einen PIC32MX564F128H-I/PT. Da hast Du CAN drin, da > sind genügend UARTs drin, alle LIN-fähig (falls Du das mal brauchst), > für USB brauchst Du keinen extra Chip, das ist auch schon drin, 64k RAM > drin, 512k Flash, 32Bit 80 MHZ Prozessor, und kostet z.B. bei Farnell > 5,73€. Der auf dem von Dir gefundenen Board verwendete AT90CAN128, der > nur ein 8 Bit Controller mit viel weniger Leistung ist, kostet dort > 11,60 €. Da wärst Du doch schön doof, wenn Du für einen Bruchteil der > Leistungsfähigkeit die doppelte Kohle hinlegst, oder? sehr cool, gibt es für dem (oder einen ähnlichen) schon ein "fertiges" Board? Ralph schrieb: > Eher weit darüber hinaus. Mag sein, ich lerne jedoch schnell, und an Zeit mangelt es mir nicht... > Was du brauchst ist ein Gateway zwischen der alten und der neueren BMW > Systemarchitektur. das ist mir bewusst, ich möchte aber nicht die vollständige kommunikation herstellen, ich benötige nur einen Bruchteil. Ich habe nicht vor ein Motor von 2010 in eine Karrosserie von 1998 einzubauen, sondern lediglich das Navi- und Infosystem. d.h. Ich übernehme z.b. Monitor, Navi-computer, iDrive Radio aus einem neuerem BMW, welche alle untereinander über ihren K-Can kommunizieren. Diese Systeme brauchen dann bestimmte Infos, bsp: Navi: Blinker gesetzt?, Geschwindigkeit, Licht an (nachtmodus des monitors) Bordcomputer: Öltemp, Wassertemp, Serviceintervalle, PDC sensoren abstände, etc. Ich habe hier kein Projekt mit Deadline x, sondern wollte mich in das Bussystem einarbeiten, und mal was produktives tun, was sich im überschaubaren rahmen halten kann, wo man aber auch erweitern kann, und ich denke das ist machbar. (so wie die meisten projekte die ich hatte, unterschätze ich es natürlich, aber das ist ja mein problem ;))
Für die Aufgabe empfehle ich dieses günstige Board mit LPC11C24: - CAN 1MBit (CAN-Treiber im ROM) für K-CAN - GPIO 50MHz (oder UART) für K-Line - Demo-Software ist dabei - falls später doch mal eine eigene Platine notwendig wird, auf dem LPC11C24 ist der CAN-Transceiver mit drauf, ist also eine 1-Chip-Lösung https://www.olimex.com/Products/ARM/NXP/LPC-P11C24
Andrej S. schrieb: > Frank K. schrieb: > >> leider nein. Beide serielle Ports des AVRs sind bereits belegt - einer >> mit der USB-Bridge, einer mit dem RS485-Transceiver. Dein K-Line >> Transceiver will auch noch eine serielle Schnittstelle haben. Du >> müsstest also das Board ändern. Da ist es besser, ein neues zu machen. > > Alles klar danke schonmal :) > Also wenn ich den RS485 transreceiver auf dem Board tauschen würde > (gegen was für k-line?), wäre es möglich? > Ich wollte kein neues Board entwickeln. Na ja, "neues Board" heißt: Controllerchip mit Taktgenerator, CAN-Transceiver, K-Line Transceiver und Spannungsversorgung mit Überspannungsschutz, d.h.in einem 12V Bordnetz hast Du bei Anlassen Spannungen bis zu 30-40V, da müssen also Schutzschaltungen vor alle Ein- und Ausgänge und in die Spannungsversorgung rein, sonst ist das ein Einweg-Board. Bei den üblichen Demoboards wie den von Dir vorgeschlagenen hast Du nur den Prozessor mit Takterzeugung und vielleicht noch den CAN-Transceiver drauf, der ganze Rest, insbesondere die ganze Schutzbeschaltung in der Stromversorgung und dem CAN fehlt. Und der CAN-Transceiver ist vielleicht einer, der nicht ganze so spannungsfest ist. Du musst also trotz Verwendung eines Demoboards noch einiges selber machen, und viel fehlt dann zum eigenen Board nicht mehr. Und wenn Deine Schaltung den Labortisch verlässt, wirst Du es zu schätzen wissen, wenn es kein fliegender Aufbau ist, wo mal ein Draht abgeht oder Störungen in die Verdrahtung einkoppeln. > Zum hintergrund: bin nun im 5. Semester an der TU Darmstadt, in Elektro > und Informationstechnik, und es ist ganz viele tolle theorie die ich > behersche, ich wollte aber mal was "machen" Fein. Dann mal zu. >> Nimm doch einfach einen PIC32MX564F128H-I/PT. Da hast Du CAN drin, da >> sind genügend UARTs drin, alle LIN-fähig (falls Du das mal brauchst), >> für USB brauchst Du keinen extra Chip, das ist auch schon drin, 64k RAM >> drin, 512k Flash, 32Bit 80 MHZ Prozessor, und kostet z.B. bei Farnell >> 5,73€. Der auf dem von Dir gefundenen Board verwendete AT90CAN128, der >> nur ein 8 Bit Controller mit viel weniger Leistung ist, kostet dort >> 11,60 €. Da wärst Du doch schön doof, wenn Du für einen Bruchteil der >> Leistungsfähigkeit die doppelte Kohle hinlegst, oder? > > > sehr cool, gibt es für dem (oder einen ähnlichen) schon ein "fertiges" > Board? Das ist ein größerer Prozessor aus der Serie. Wie gesagt, die ganze Außenbeschaltung, musst Du ohnehin selber machen, und sie muss automotive-fest sein, d.h. Du musst an jeden Pin, der rein oder raus geht, so 30-40V plus oder minus anlegen können, und das Board muss es überleben, und zwar nicht nur einmal. https://www.olimex.com/Products/Duino/PIC32/PIC32-T795/ Programmieren und debuggen tust Du hiermit: https://www.olimex.com/Products/PIC/Programmers/PIC-KIT3/ Es gibt auch diverse ARM-basierte Controller als Alternative. Wenn Du gerne DIL haben willst, dann kannst Du einen dsPIC33FJ128GP802 nehmen, das ist ein 16-Bitter mit 40MHZ Takt, 16k RAM und 128k Flash, CAN, 2*UART im DIL28-Gehäuse. Ein 8 MHz Quarz mit den obligatorischen 18-27pF an jedem Quarzpin dran, an jedem VCC-GND-Paar 100n, 10u keramisch 16V an VCAP gegen GND, MCLR über 10k gegen VCC, und dann läuft das Teil. Als CAN-Transceiver nimmst Du am Besten einen MAX13054, der kann bis +-80V auf CAN_H/CAN_L ab. Die übliche Schutzbeschaltung wie stromkompensierte Drossel und TVS-Dioden bzw MOVs brauchst Du natürlich trotzdem noch. Als K-Line Transceiver wäre da z.B. der MC33660 oder der TLE6258-2G zu nennen. In wieweit man auch normale LIN-Transceiver für K-Line aka ISO9141 verwenden kann, die nicht ausdrücklich dafür vorgesehen sind, weiß ich nicht - die ISO-Norm dafür habe ich nicht da. fchk
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.