Fahrzeug-Diagnose der zweiten Generation (OBD-2)

Werbung
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Fahrzeug-Diagnose der zweiten Generation (OBD-2, EOBD)
( © Gerhard Müller, Stand 10.06.2007, jegliche unautorisierte Verwendung wird
strafrechtlich verfolgt)
Interface zwischen OBD-2/EOBD Fahrzeug-Diagnosestecker und Computer
- ElmCan® - SER mit IC ELM327® V1.1 – für seriellen Anschluß
- ElmCan® - USB mit IC ELM327® V1.1 – für USB-Anschluß
- ElmCan® II - USB mit IC ELM327® V1.2 – für USB-Anschluß
- ElmCan® - BT mit IC ELM327® V1.1 – für Bluetooth-Anschluß
- ElmCan® - Bausatz mit IC ELM327® V1.1 – nur für seriellen Anschluß
Diese Dokumentation beschreibt alle bisher erschienenen Versionen des IC
ELM327® und der mit diesem Interpreter-Chip bisher erschienenen ElmCan®
Interfaces und Bausätze.
(Inhaltsverzeichnis siehe letzte Seite)
(unter Verwendung eines Datenblattes der Firma Elm Electronics Kanada, in autorisierter
Übersetzung)
Ende 2002 wurde von CarCode Müller erstmalig in Europa der OBD-ProtokollInterpreterchip ELM323 vorgestellt und eingeführt, der Grundlage eines DatenübertragungsInterfaces zwischen Fahrzeugen mit genormter OBD2/EOBD Diagnoseschnittstelle und
einem PC/Laptop für ISO-Protokolle nach 9141 und 14230 ist. Gleichzeitig wurden auch die
IC ELM320 und ELM322 für die SAE J1850 Protokolle PWM und VPW angeboten.
Der ELM327® ist nun der Nachfolger dieser Chips und vereint in sich alle Funktionen und
somit Protokolle seiner Vorgänger sowie zusätzlich das inzwischen auch für OBD
zugelassene CAN-Protokoll (ISO 15765). Auch der ELM327® wird wieder exklusiv von
CarCode Müller vorgestellt und eingeführt. Der ELM327® basiert auf den Erfahrungen von
Tausenden von Anwendern seiner Vorgänger.
In meinen Artikeln in der Zeitschrift Elektor 10-12/2002 über Fahrzeug-Diagnosesysteme der
zweiten Generation (OBD-2) wurde bereits darauf hingewiesen, daß aufgrund einer EURichtlinie alle ab dem 01. Januar 2001 zugelassenen Neufahrzeuge mit Otto-Motor mit einer
einheitlichen Diagnose-Schnittstelle versehen sein müssen. Der einheitliche Stecker kann vier
verschiedene Protokolle mit Varianten (somit insgesamt 9 verschiedene Protokolle) zur
Verfügung stellen, von denen in Europa hauptsächlich das ISO Protokoll verwendet wird.
Inzwischen wenden die Hersteller auch zunehmend das CAN-Protokoll an. Sowohl diese
Protokolle als auch der abweichende Spannungspegel schließen eine direkte Verbindung des
Fahrzeug-Diagnose-Steckers mit dem seriellen Port eines Computers aus.
Inzwischen erfaßt die EU-Richtlinie auch Pkw mit Selbstzündermotor (Diesel) ab TypPrüfung 2003 oder Zulassungsdatum 01. Januar 2004. Selbst Nutzfahrzeuge sollen ab 1.
Oktober 2005 OBD-2 haben. Darüber hinaus wurde als weiteres OBD2-Protokoll das CANProtokoll zugelassen. Weltweit haben Kfz-Hersteller bekundet, daß sie bis spätestens 2008
nur noch das CAN-Protokoll für neue Fahrzeuge verwenden werden. Diesen Bedingungen
und auch Erfahrungen mit den ELM Chips ELM320/322/323 sowie Forderungen der
Anwender trägt der Hersteller mit dem neuen ELM327® IC Rechnung.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 2
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Mit der hier vorgestellten Applikation soll eine einfache Möglichkeit dargestellt werden, über
ein Interface einen PC, einen Laptop oder PDA zur Fahrzeug-Diagnose verwenden zu
können. Das Interface basiert auf einem vorprogrammierten Embedded Microchip der Firma
Elm Electronics, dem ELM327®. Dieser IC mit 28 Anschlüssen benötigt nur wenige externe
Bauteile, um die OBD-Signale zu interpretieren und sie in Standard ASCII-Zeichen zu
übersetzen. Damit kann jeder PC, Laptop oder PDA mit serieller Schnittstelle und einem
Terminal-Programm benutzt werden. Unter Verwendung eines geeigneten RS232/USBAdapters ist auch der Anschluß an USB möglich. Darüber hinaus kann sich ein erfahrener
Programmierer ein komfortabeles Diagnose-Programm selbst schreiben.
Die zur Zeit vorliegenden Schaltungen mit dem ELM327® sind für Fahrzeugsysteme mit 12
Volt Bordspannung konzipiert. Bei Nutzfahrzeugen kann die Bordspannung auch 24 Volt
haben. Die derzeitigen Interfaces dürfen daher für Nutzfahrzeuge nicht verwendet werden.
Die zwar äußerlich gleiche Diagnosebuchse bei 24 Volt Systemen soll einen unterbrochenen
Mittelsteg besitzen, so daß übliche 12 Volt Diagnosestecker mit durchgehendem Mittelsteg
nicht hineinpassen.
Der ELM327® wurde ebenso wie seine Vorgängertypen speziell für Hobby-Anwender
entwickelt, um preiswert Zugang zu einem OBD2/EOBD-System zu erhalten. Die in den
Vorgängertypen noch nicht vorhandenen Funktionen wie RS232-Handshaking, variabele
Baudraten usw. sind jetzt implementiert. Weiterhin kann dieser IC nicht nur für das 10,4 kHz
ISO 9141-2 Protokoll und die Derivate KWP2000 Fast sowie KWP2000 Slow (ISO 14230-4)
bei einer schnelleren Baudrate von jetzt 38400 am seriellen Ausgang verwendet werden,
sondern auch für die beiden anderen möglichen Protokolle VPW und PWM, für die es
vormals nur separate ICs der Firma Elm Electronics (ELM320, ELM322) gab. Zusätzlich
unterstützt der ELM327® jetzt das CAN-Protokoll (500 kbps und 250 kbps mit 11 Bit und 29
Bit IDs).
Blockdiagramm des ELM327®
Leistungs-Beschreibung ELM327®
Niedrige Leistung aufnehmendes CMOS Design, Quarz-kontrollierte Genauigkeit, ISO 91412 und ISO 14230-4 Protokolle, J1850-Potokolle PWM und VPW, CAN-Protokolle nach ISO
15765-4, konfigurierbar mit AT-Befehlen, Standard ASCII-Zeichen Ausgang, vier
stromstarke LED Treiberausgänge, A/D-Wandler, Memory Option, Hochgeschwindigkeit
RS232 Schnittstelle gepuffert usw., einsetzbar als Diagnose-Fehlercode-Ausleser, FahrzeugScantool und für Lehrzwecke.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 3
________________________________________________________________
Bild Anschluss
Die Anschlußpins des ELM327® sind im Folgenden beschrieben.
MCLR (Pin 1)
Master Clear Schmitt-Trigger Eingang, aktiviert bei niedrigem Eingang. Wenn nicht
verwendet, soll dieser Pin an logisch hoch (Vcc) angeschlossen werden.
Vmearure (Pin 2)
Spannungseingang zum A/D-Wandler (0 bis 5 Volt), Kalibrierung des A/D-Wandlers durch
AT-Befehl möglich. Die Versorgungsspannung des ELM327® soll nicht überschritten
werden, um Schäden des Chips zu meiden. Falls nicht verwendet, an VDD oder VSS
anschließen.
J1850Volts (Pin 3)
J1850 Bus Plus Spannungskontrolle Ausgang, hoch 8 Volt, tief 5 Volt. 8 Volt sind für J1850
VPW erforderlich und 5 Volt für J1850 PWM. Wird dieses in einer Schaltung nicht benötigt,
kann dieser Anschluß offen bleiben.
J1850Bus+ (Pin 4)
J1850 Bus Plus Treiber Ausgang, aktiv hoch. Dieses Signal muß nicht für die Buslinie
verwendet werden (wie es auch beim ELM320 der Fall war), da ein separater J1850
Bustreiber-Ausgang an Pin 14 zur Verfügung steht.
Memory (Pin 5)
Memory-Option Eingang, speichert das zuletzt erfolgreich verbundene Protokoll. Bei Eingang
hoch ist die Funktion eingeschaltet und bei Eingang niedrig ausgeschaltet bei jedem
Einschalten oder Reset des Chips. Die Funktion kann auch jederzeit durch die ATM1 bzw.
ATM0 Befehle kontrolliert werden.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 4
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Baud Rate (Pin 6)
Eingang zur Einstelloption der Baudrate, bei hohem Eingang 38400 Baud und bei niedrigem
Eingang 9600 Baud bei jedem Einschalten oder Reset des Chips.
LineEnd (Pin 7)
Dieser Eingang wird zur Auswahl des standardmäßigen Zeilenschaltungs-Modus (LF Linefeed) nach dem Einschalten oder einem System-Reset benutzt. Ist der Eingang hoch,
werden vom ELM327® gesendete Zeilen mit Wagenrücklauf (CR - Carriage Return) und
Zeilenschaltung (LF - Linefeed) abgeschlossen. Bei niedrigem Eingang werden Zeilen nur mit
CR abgeschlossen. Dieses Verhalten kann durch Senden eines ATL0- oder ATL1-Befehls
geändert werden (siehe Abschnitt über AT-Befehle).
VSS (Pin 8)
Die Schaltkreis-Masse wird an diesen Pin angeschlossen. Es ist der negativste Punkt in der
Schaltung.
XTAL1 (Pin 9) und XTAL2 (Pin 10)
Zwischen diesen beiden Pins wird ein Kristallquartz mit 4,00 MHz angeschlossen.
Üblicherweise werden je ein Quartz-Ladekondensator (typisch 27 pF) zwischen jeden Pin und
Schaltungsmasse (VSS) geschaltet.
Anmerkung: Der ELM327 ist nicht für einen externen Oszillator vorgesehen, er erwartet
einen an diese Pins angeschlossenen Quartz. Verwendung eines externen Oszillators wird
nicht empfohlen.
VPWIn (Pin 11)
Die OBD-Daten des VPW-Protokolls werden über diesen Pin mit dem Logikpegel hoch
zugeführt, entsprechend dem aktiven Status der J1850-Bus+ Linie. Bei inaktivem Bus liegt
niedriger Logikpegel an. Es wird ein Schmitt-Trigger verwendet, deshalb muß das OBD
Signal nicht gepuffert werden, um die Transientenzeiten der internen CMOS-Schaltungen zu
minimieren. Der Schmitt-Trigger kontrolliert die Signalflanken.
ISOIn (Pin 12)
Die OBD-Daten der ISO-Protokolle ISO9141 und ISO14230 werden über diesen Pin mit dem
Logikpegel niedrig zugeführt, entsprechend dem aktiven Status der OBD K-Linie. Es wird ein
Schmitt-Trigger verwendet, deshalb muß das OBD Signal nicht gepuffert werden, um die
Transientenzeiten der internen CMOS-Schaltungen zu minimieren. Der Schmitt-Trigger
kontrolliert die Signalflanken.
PWMIn (Pin 13)
Die OBD-Daten des PWM-Protokolls werden über diesen Pin mit dem Logikpegel niedrig
zugeführt, entsprechend dem aktiven Status der J1850-Bus+ Linie. Bei inaktivem Bus liegt
hoher Logikpegel an. Es wird ein Schmitt-Trigger verwendet, deshalb muß das OBD Signal
nicht gepuffert werden, um die Transientenzeiten der internen CMOS-Schaltungen zu
minimieren. Der Schmitt-Trigger kontrolliert die Signalflanken.
J1850Bus- (Pin 14)
J1850 Bus Minus Treiber Ausgang, aktiv hoch für J1850 PWM Anwendungen. Bei
Nichtverwendung kann der Ausgang offen bleiben.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 5
________________________________________________________________
RTS (Pin 15)
Eingang aktiv niedrig RTS (Request To Send), Bereitschaftsfrage. Dieser im aktiven Zustand
niedrige Eingang kann zur Prozeßunterbrechung, um einen neuen Befehl zu senden,
verwendet werden. Im Normalfall hoch kann der Eingang auf niedrig gesetzt werden, bis die
Busy-Linie (Pin 16) meldet, daß der ELM327® nicht mehr länger beschäftigt (busy) ist. Der
Eingang hat einen Schmitt-Trigger zur Signalformung.
Busy (Pin 16)
Ausgang aktiv hoch, wenn Busy Verarbeitung. In diesem Zustand ist der ELM327® also mit
der Befehlsverarbeitung beschäftigt, bei Pegel niedrig nicht.
RS232Tx (Pin 17)
Dies ist der RS232 Sende- oder Datenausgangs-Pin. Der Signalpegel ist kompatibel zu den
meisten Interface ICs und es steht ein ausreichender Stromfluß zur Verfügung, um als
Interface nur einen PNP Transistor zu verwenden, falls gewünscht.
RS232Rx (Pin 18)
Das RS232 Sendesignal eines Computers kann an diesen Pin direkt angeschlossen werden,
solange ein strombegrenzender Widerstand (typisch etwa 47 kΩ) in Reihe geschaltet ist.
(Interne Schutzdioden leiten die Eingangsströme sicher zu den Versorgungsanschlüssen und
schützen den ELM327®.) Interne Signal-Inversion und Schmitt-Trigger
Wellenformbearbeitung sorgen für die notwendige Signal-Behandlung. Der Signalpegel ist
kompatibel mit den meisten Interface ICs.
VSS (Pin 19)
Die Schaltkreis-Masse wird an diesen Pin angeschlossen. Es ist der negativste Punkt in der
Schaltung.
VDD (Pin 20)
Dieser Pin dient zur positiven Spannungsversorgung und sollte die höchste Spannung in der
Schaltung führen. Interne Schaltungen innerhalb des Chips sorgen für ein Reset-Verhalten des
Mikroprozessors bei Einschaltung der Versorgungsspannung, so daß kein externes ResetSignal benötigt wird. Weitere Informationen enthält die Tabelle über elektrische Daten.
ISOK (Pin 21) und ISOL (Pin 22)
Dies sind die aktiv-hoch Ausgangssignale, die zum Treiben des OBD Bus (ISO 9141 und ISO
14230) verwendet werden unter Benutzung von externen NPN Transistoren. Die
Datenübertragung erfolgt normalerweise nur über die K Linie, aber die Standards erfordern,
daß die L Linie ebenfalls implementiert ist, um den Bus ordnungsgemäß zu initialisieren. Da
bei neueren Fahrzeugen die L Linie nicht mehr benötigt wird, kann Pin 22 offen bleiben.
Näheres siehe unter dem Abschnitt über die Beispiel-Applikation.
CANTx (Pin 23)
Aktiv hoch CAN Sende-Ausgang. Diese Leitung muß mit einem CAN Tranceiver verbunden
werden. Erfolgt dieses nicht, kann durch Verbindung zu einem existierenden CAN-System
dieses System gefährdet werden. Näheres siehe unter dem Abschnitt über die BeispielApplikation.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 6
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
CANRx (Pin 24)
Aktiv hoch CAN Empfangs-Eingang. Diese Leitung muß mit einem CAN Tranceiver
verbunden werden. Erfolgt dieses nicht, kann durch Verbindung zu einem existierenden
CAN-System dieses System gefährdet werden. Näheres siehe unter dem Abschnitt über die
Beispiel-Applikation.
LED Treiber Ausgänge (Pins 25, 26, 27 und 28)
Diese vier Pins führen niedrigen Pegel, wenn der ELM327® RS232- oder OBD-Daten sendet
oder empfängt, und haben sonst hohen Pegel. Diese Ausgänge sind ausreichend
dimensioniert, um die meisten LED's direkt über strombegrenzende Widerstände zu treiben.
Falls nicht verwendet, sollen diese Pins offen bleiben. (RS232 Rx – Pin 25, RS232 Tx – Pin
26, OBD Rx – Pin 27, OBD Tx – Pin 28)
Grenzwerte des IC ELM327®
Lagertemperatur
-65 °C bis +150 °C
Umgebungstemperatur unter Spannung
-40 °C bis +85 °C
Spannung an VDD in Relation zu VSS
0 bis +7,5 V
Spannung an jedem anderen Pin in Relation
zu VSS
-0,3 V bis (VDD + 0,3 V)
Anmerkung:
Überschreitung der obigen Werte kann zur Schädigung des IC führen. Die Werte stellen nur
Auslegungs-Richtwerte dar. Es wird nicht empfohlen, den IC an diesen Grenzen zu betreiben.
Elektrische Charakteristika
Soweit nicht besonders gekennzeichnet, beziehen sich alle Werte auf den Betrieb bei 25 °C
und 5 Volt Spannungsversorgung. Weitere Information siehe unter Anmerkung 1) unten.
Charakterika Minimum Typisch Maximum Einheit
Versorgungsspannung, VDD
4,5
VDD Anstiegsrate
0,05
Mittlere Stromversorgung, IDD
Eingang Grenz-Spannung
5,5
9,0
1,0
Schmitt-Trigger
steigend
Eingangsgrenzen
fallend
Ausgang niedrige Spannung
Ausgang hohe Spannung
Reset Spannung
A/D Wandler Zeit
RS232 Baudrate
5,0
1,3
3,0
1,4
0,3
4,6
4,07
4,2
7
38400
4,59
500000
Bemerkung
V
V/ms
siehe Anmerkung 2
mA
siehe Anmerkung 3
V
alle außer Schmitt
Eingänge
siehe Anmerkung 4
V
V
V
V
V
msec
Baud
Strom (Senke) = 10 mA
Strom (Quelle) = 10 mA
siehe Anmerkung 5
siehe Anmerkung 6
Anmerkungen:
1. Dieser integrierte Schaltkreis wird unter Verwendung des PIC18F248/2840 von
Microchip Technology Inc. als Core-Embedded Microcontroller hergestellt. Weitere
Spezifikationen siehe unter http://www.microchip.com
2. Dieser spezifizierte Wert muß zur korrekten Reset-Funktion bei Spannung-Ein
eingehalten werden. Das ist bei den üblichen Spannungsquellen gewährleistet, kann aber
bei langsam ändernden Versorgungsspannungen wie direkter Anschluß an Solarzellen
oder einigen Ladeschaltungen nicht gegeben sein.
3. Nur IC, ohne Lastströme.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 7
________________________________________________________________
4. Die Pins 1, 11, 12, 13, 15 und 18 haben interne Schmitt-Trigger zur WellenformAnpassung.
®
5. Die typische Breite des Busy Ausgangsimpulses während der ELM327 Befehle
interpretiert, Spannung mißt, skaliert und das Ergebnis einer Mittelwert-Messung bei
38400 Baud überträgt.
6. Nominale Datentransferrate, wenn der empfohlene 4,00 MHz Quartz als ReferenzFrequenz benutzt wird. Daten werden zum und vom ELM327® mit 8 Datenbits, kein
Paritätsbit und 1 Stopbit (8N1) gesendet. Ab Version V1.2 ist der ELM327® für maximal
500 kiloBaud ausgelegt.
Der ELM327® besteht aus einem 300 Mil Plastik DIP-Gehäuse. Es ist ebenfalls eine 300 MIL
SOIC Version verfügbar.
Übersicht
Im Folgenden wird die Verwendung des ELM327® beschrieben, um möglichst viele Daten
vom Fahrzeug zu erhalten. Einigen Anwendern werden die folgenden Informationen zu
kompliziert sein, während sie für andere nicht umfassend genug sind.
Beginnend mit der Erläuterung, wie mit dem IC vom PC aus kommuniziert werden kann,
wird anschließend erklärt, wie mit AT-Befehlen die Optionen geändert werden können, und
schließlich, wie der ELM327® zum Auslesen von Fehlercodes (und ihrer Löschung) benutzt
werden kann. Für fortgeschrittene Anwender gibt es ebenfalls Abschnitte über die
Anwendung der programmierbaren Funktionen dieses Produkts.
Die Verwendung des ELM327® ist nicht so kompliziert, wie es zunächst erscheinen mag.
Viele Anwender werden vielleicht nie einen AT-Befehl, eine Justierung von
Zeitüberschreitungen oder eine Änderung von Kopfbytes benutzen müssen. Für die Meisten
ist nur ein PC oder PDA mit einem Terminal-Programm wie HyperTerminal oder Zterm
erforderlich und die Kenntnis von einem oder zwei OBD-Befehlen, die im Folgenden erklärt
werden. Für Windows-Vista empfehlen wir das freie Terminalprogramm ComPortTerminal
von WGSoft.
Kommunikation mit dem ELM327®
Dem ELM327® liegt eine Standard-RS232 serielle Datenverbindung zu Grunde, um mit dem
Anwender zu kommunizieren. Die Datenrate ist 38400 Baud mit 8 Datenbits, keinem
Paritybit, einem Stopbit und keinem Handshaking (oft bezeichnet als 38400 8N1), wenn die
Pins 15 und 16 des ELM327® nicht benutzt werden. Es ist möglich, auf die bei den VorläuferELM-Chips verwendete Baudrate von 9600 zu wechseln. Die Version V1.2 und höher des
ELM327® unterstützt Datenraten bis zu 500 kiloBaud. Ebenfalls kann jetzt Handshaking
benutzt werden, wenn die Schaltung entsprechend konzipiert ist. Alle Antworten des IC sind
mit einem einzigen Wagenrücklaufzeichen (Carriage Return, CR) abgeschlossen und optional
auch mit einem Zeilenwechsel (Line Feed, LF). Stellen Sie sicher, daß Ihre Software
entsprechend konfiguriert ist.
Ist der ELM327® richtig angeschlossen und eingeschaltet, leuchten zunächst die vier
Ein/Ausgangs-LED sequentiell auf als Lampen- und Funktionstest und anschließend wird die
Meldung
ELM327 v1.1
>
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 8
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
ausgegeben.
Zusätzlich zur Identifikation der Version des IC bedeutet die Ausgabe dieser Zeichen, daß die
Computerverbindungen und deren Konfiguration in Ordnung sind. An dieser Stelle hat jedoch
noch keine Kommunikation mit dem Fahrzeug stattgefunden und der Status der
Fahrzeugverbindung ist noch unbekannt.
Das oben gezeigte „>“ - Zeichen ist der ELM327® Eingabe-Prompt. Es bedeutet, daß sich das
Gerät im Wartezustand befindet und zur Annahme von Zeichen über den RS232-Port bereit
ist. Vom Computer gesendete Nachrichten können entweder zur internen Verwendung im
ELM327® bestimmt sein oder zur Bearbeitung und Weiterleitung an den OBD-Bus.
Der ELM327® kann schnell feststellen, wohin die empfangenen Zeichen zu leiten sind, indem
er nach Empfang der Nachricht die Zeichenkette analysiert. Befehle zur internen Verwendung
im ELM327® beginnen immer mit den Zeichen „AT“ wie bei Modems zur Konfiguration
üblich, während Befehle für den OBD-Bus nur die ASCII-Codes für hexadezimale Digits (0
bis 9 und A bis F) enthalten dürfen.
Egal ob ein interner „AT“-Typ-Befehl oder eine hexadezimale Zeichenkette für den OBDBus, alle Nachrichten an den ELM327® müssen mit dem CR-Zeichen (Hex „0D“)
abgeschlossen sein, bevor sie ausgeführt werden. Die einzige Ausnahme besteht beim
Empfang einer nicht kompletten Zeichenkette ohne CR-Zeichen. In dem Fall unterbricht eine
interne Zeitschaltung die unvollständige Nachricht nach etwa 20 Millisekunden und der
ELM327® gibt ein einzelnes Fragezeichen „?“ aus zum Zeichen, daß der Eingang nicht
verstanden und auch nicht ausgeführt wurde.
Nachrichten, die vom ELM327® nicht verstanden werden (Syntax-Fehler), werden immer mit
einem einzelnen Fragezeichen „?“ beantwortet. Das sind unvollständige Nachrichten,
fehlerhafte AT-Befehle oder fehlerhafte hexadezimale Zeichenketten. Aber das ist kein
Indikator dafür, ob die Nachricht vom Fahrzeug verstanden wurde oder nicht. Beachten Sie,
daß der ELM327® ein Protokoll-Interpreter ist, der nicht die Richtigkeit von OBDNachrichten prüft. Er stellt nur sicher, daß eine gerade Anzahl von Hex-Digits sortiert in
Bytes empfangen und zum OBD-Port gesendet werden, und er weiß nicht, ob die zum
Fahrzeug gesendete Nachricht richtig ist.
Unvollständige oder falsch verstandene Nachrichten können auch auftreten, wenn der
angeschlossene Computer versucht, zum ELM327® zu senden, bevor dieser bereit ist, den
nächsten Befehl zu erhalten, wenn keine Handshake-Signale zur Datenflußkontrolle benutzt
werden. Um einen Datenüberlauf zu verhindern, sollte der Anwender in diesem Fall immer
auf das Prompt-Zeichen („>“) warten, bevor der nächste Befehl eingegeben wird.
Zum Schluß noch einige allgemeine Konventionen: Der ELM327® unterscheidet keine GroßKlein-Schreibung, „ATZ“ ist daher gleich „atz“ oder gleich „AtZ“. Das Gerät ignoriert
sowohl Leertaste-Zeichen (Space) als auch Kontroll-Zeichen wie z.B. Tab, LineFeed usw. in
der Eingabe, so daß diese zur besseren Lesbarkeit überall benutzt werden können. Schließlich
bewirkt ein einzelnes Wagenrücklauf-Zeichen (CR) die Wiederholung des zuletzt vom
ELM327® empfangenen Befehls und vereinfacht es damit, Abfragen von dynamischen Daten
wie z.B. Motorumdrehungen zu tätigen.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 9
________________________________________________________________
AT-Befehle
Mehrere Parameter des ELM327® können geändert werden, um sein Verhalten anzupassen.
Diese müssen nicht unbedingt geändert werden, bevor mit dem Fahrzeug kommuniziert
werden kann, aber gelegentlich möchte der Anwender die Konfiguration ändern, um z.B. das
Zeichen-Echo auszuschalten, den Timeout-Wert anzupassen oder die Kopf-Adresse zu
ändern. Um dies zu tun, müssen interne AT-Befehle verwendet werden.
Alle, die noch mit PC-Modems gearbeitet haben, werden die AT-Befehle als Standard zur
internen Konfiguration von Modems kennen. Der ELM327® benutzt die gleiche Methode, in
dem er immer auf Nachrichten vom PC achtet, die mit dem Zeichen “A“ gefolgt vom Zeichen
“T“ beginnen. Bei Erhalt dieser Zeichenfolge werden die folgenden Zeichen zur internen
Konfiguration oder als „AT-Befehl“ interpretiert und ausgeführt, wenn sie mit einer
Zeilenschaltung (Enter oder CR) abgeschlossen sind. Der ELM327® antwortet darauf
normalerweise mit den Zeichen ’OK’ zur Bestätigung, daß der Befehl ausgeführt wurde und
der Anwender darüber informiert ist.
Einige der folgenden Befehle können Zahlen als Argumente zum Setzen interner Werte
beinhalten. Dieses sind immer hexadezimale Zahlen, die in der Regel paarweise zu
verwenden sind. Die hexadezimale Umrechnungstabelle im nächsten Abschnitt mag zur
Interpretation der Werte nützlich sein. Es sollte auch beachtet werden, daß die Ein/AusgabeBefehle die typische Notation als Zahl (1 oder 0) besitzen.
Es folgt eine Zusammenstellung aller AT-Befehle, die von der aktuellen Version des
ELM327® erkannt werden, in alphabetischer Reihenfolge.
AL [Erlaube lange Nachrichten]
Die Standard OBD-2 Protokolle begrenzen die Anzahl der Datenbytes auf sieben, die der
ELM327® normalerweise auch zum Senden und Empfangen verwendet. Ist AL gewählt,
gestattet der ELM327® das Senden von acht Datenbytes und eine unbegrenzte Anzahl von
Empfangsbytes. Der Grundwert ist AL Aus und NL An.
AR [Automatisches Setzen der Empfänger-Adresse]
Antworten vom Fahrzeug werden dann erkannt und vom ELM327® angezeigt, wenn die
intern gespeicherte Empfänger-Adresse mit der Adresse übereinstimmt, an die die Nachricht
gesendet wird. Ist der Auto-Empfänger Modus aktiviert, dann wird der Wert für die
Empfänger-Adresse aus den aktuellen Kopfbytes gewählt und automatisch erneuert, wenn
sich die Kopfbytes ändern.
Der Wert für die Empfänger-Adresse wird aus dem ersten Kopfbyte bestimmt. Zeigt sich, daß
die Nachricht physikalische Adressierung verwendet, wird das dritte Kopfbyte als
Empfänger-Adresse verwendet. Anderenfalls (bei funktionaler Adressierung) wird das zweite
Kopfbyte, erhöht um den Wert 1, verwendet. Auto-Empfang ist die Grundeinstellung.
AT0, AT1 und AT2 [Adaptives Timing aus (0) oder ein (1) bzw. (2)]
Beim Erhalt von Antworten vom Fahrzeug wartet der ELM327® traditionell die Zeit ab, die
mit dem AT ST hh Befehl als Antwortzeit gesetzt wurde. Zur Sicherstellung, daß der IC mit
einer großen Zahl unterschiedlicher Fahrzeuge sicher arbeitet, wurde dieser Wert konservativ
(langsam) gesetzt. Obwohl er konfigurierbar ist, haben viele Anwender nicht die Möglichkeit
oder Erfahrung, einen besseren Wert zu bestimmen.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 10
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Die neue adaptive Zeitfunktion kann die aktuellen Antwortzeiten des angeschlossenen
Fahrzeugs messen, sie lernen und die entsprechenden Einstellungen machen, um den Zeitwert
zu verringern (es werden jedoch weiterhin die mit AT ST hh gemachten maximalen Werte
verwendet). Im Ergebnis verdoppeln oder verdreifachen sich die Datenraten gegenüber den
vorherigen Versionen. Die Grundeinstellung ist Adaptives Timing ein (1). AT2 ist eine etwas
aggressivere Form von AT1 bei der Berechnung des Zeitverhaltens.
BD [OBD Receive Buffer Dump]
Alle vom ELM327® gesendeten oder empfangenen Nachrichten sind zeitweise in zwölf
Speicherstellen, genannt OBD-Puffer, gespeichert. Es kann vorkommen, daß eine BusInitialisierung nicht erfolgreich ist oder die OBD Rx LED flackert vielleicht, aber es wird
nichts an die RS232 Verbindung gesendet. In diesen Fällen kann es von Vorteil sein, lediglich
zu sehen, was auf der OBD-Seite ankommt. Dieser Befehl zeigt den gesamten OBD-Puffer
(Buffer) Inhalt als ein Längenbyte gefolgt von 12 anderen Datenbytes. Da nicht alle
Datenbytes relevant sein müssen und eventuell mehr als 12 in den Puffer passende Bytes
gesendet wurden, sollte der Wert des Längenbytes zuerst überprüft werden, bevor die
Datenbytes interpretiert werden. Ist der AL Befehl aktiviert und wird eine lange Nachricht
erhalten, gibt es keine Möglichkeit, die erweiterten Bytes zu erhalten. Es werden nur die
ersten 12 Bytes in diesem Buffer gespeichert. Daher ist es wichtig, zunächst das erste Byte,
das Längenbyte, zu untersuchen.
BI [Umgehe (Bypaß) die Initialisierung und werde aktiv]
Dieser Befehl sollte mit Vorsicht verwendet werden. Er aktiviert ein Protokoll ohne jegliche
Initialisierung oder Handshaking. Die Initialisierung wird normalerweise zur Validierung des
Protokolls verwendet und ohne dies können unvorhersehbare Ergebnisse auftreten. Der
Befehl sollte nicht für allgemeine OBD-Anwendungen benutzt werden und wurde nur zur
Verfügung gestellt, um ECU Simulatoren oder Training-Anwendungen herstellen zu können.
BRD hh [versuche Baudraten Divisor hh]
Dieser Befehl wird zum zeitweisen Einstellen des RS232 Baudraten-Teilers (Divisor) auf den
mit hh übergebenen hexadezimalen Wert verwendet. Die aktuelle Baudrate (in kbps) ist 4000
geteilt durch diesen Divisor. Zum Beispiel würde eine Einstellung von 115,2 kbps einen
Divisor von 4000 / 115,2 = 35 erfordern. In hexadezimaler Schreibweise ist 35 gleich 23, was
der zu sendende Wet für hh ist. (Der vollständige Befehl würde dann AT BRD 23 lauten.)
Da nicht alle RS232 Interfaces die Baudraten unterstützen, die der ELM327® liefern kann,
wurde ein Mechanismus eingebaut, der die Baudrate automatisch auf den vorherigen Wert
zurücksetzt, wenn Probleme auftauchen. Das funktioniert folgendermaßen: Der Anwender
sendet einen Befehl zum Ändern der Baudrate und der ELM327® antwortet mit dem üblichen
„OK“ gefolgt von einem Carriage Return (CR) Zeichen und, falls eingestellt, einem Line
Feed (LF) Zeichen. Danach wartet ein interner Timer 75 Millisekunden, um sicherzustellen,
daß der korrespondierende Computer ausreichend Zeit zum Ändern auf die neue Baudrate hat.
Der ELM327® sendet dann seine Identifizierungsnachricht (AT I) mit der neuen Baudrate und
wartet weitere 75 Millisekunden auf eine Antwort des korrespondierenden Computers. Wurde
die AT I Nachricht fehlerfrei empfangen, muß der korrespondierende Computer nur ein
Carriage Return (CR) Zeichen senden, das der ELM327® mit „OK“ bestätigt, um die neue
Baudrate beizubehalten. Sieht der korrespondierende Computer Fehler (oder schlimmer: gar
nichts), erfolgt keine Antwort und es wird auf die alte Baudrate zurück geschaltet. Läuft der
Timer ohne eine erhaltene Antwort ab, wird ebenfalls auf die vorherige Baudrate zurück
geschaltet. Beachten Sie, daß dieser Befehl aufgrund der geringen Antwortzeiten nicht von
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 11
________________________________________________________________
Hand verwendet werden kann, sondern nur in einem Computerprogramm. Soll die Baudrate
von Hand geändert werden, kann dies durch Ändern von PP 0C erfolgen.
Die neue Baudrate bleibt erhalten bei Anwendung des Default-Wert Befehls (AT D) und auch
beim Warmstart-Befehl (AT WS). Sie überlebt aber nicht einen Hardware-Reset
(Versorgungsspannung ein/aus oder AT Z Befehl). Wird AT Z in der Software verwendet,
sollte es auf AT WS geändert werden.
BRT hh [Baudraten Timeout]
Damit kann die Timeout Zeit des Timers im BRD Befehl eingestellt werden. T = hh * 5 msec.
Grundwert ist 0F.
CAF0 und CAF1 [CAN Automatische Formatierung aus (0) oder ein (1)]
Diese Befehle bestimmen, ob der ELM327® bei der Formatierung gesendeter und
empfangener CAN Daten assistieren soll. Ist die CAN Automatische Formatierung
eingeschaltet (CAF1), generiert der IC Formatierungsbytes (PCI) beim Senden und entfernt
sie beim Empfangen. Das bedeutet, daß OBD-Anfragen wie gewohnt (01 00 usw.)
eingegeben werden können, ohne Beachtung der zusätzlichen Bytes, die CAN-Systeme
benötigen. Mit Formatierung Ein werden die zusätzlichen, nicht verwendeten Bytes am Ende,
die in einem Frame empfangen werden, entfernt und nur die relevanten Daten gezeigt.
Ist die CAN Automatische Formatierung aus (CAF0), zeigt der ELM327® alle erhaltenen
Datenbytes mit keiner Änderung außer der üblichen Konvertierung in ASCII-Zeichen. Es
werden keine Bytes versteckt und keine hinzugefügt. Ähnlich müssen beim Senden einer
Datenabfrage ohne Formatierung die erforderlichen zusätzlichen Datenbytes, genau wie sie
gesendet werden sollen, eingegeben werden. Der ELM327® übernimmt keine weitere
Formatierung außer dem Zufügen von Füllbytes, damit die erforderlichen 8 Bytes gesendet
werden können. Damit sind Operationen in Systemen möglich, die nicht die PCI-Bytes
benutzen, wie es ISO 15765-4 tut.
Gelegentlich werden lange (Multi-Frame) Antworten vom Fahrzeug zurückgegeben. Um bei
deren Analyse zu helfen, extrahiert der Auto-Format Modus die Gesamtlänge der Daten und
gibt sie in einer Zeile aus. Anschließend wird jedes Segment der Nachricht mit der
Segmentnummer (ein einziges hexadezimales Digit) am Beginn der Zeile mit einem
Doppelpunkt (:) als Separator ausgegeben.
Es können ebenfalls die Zeichen „FC:“ am Beginn der Zeile ausgegeben werden, wenn Maske
und Filter geändert wurden. Das ist eine Flußkontroll-Nachricht, die der ELM327® als
Antwort auf mehrzeilige Nachrichten sendet. Flußkontroll-Nachrichten werden vom
ELM327® automatisch in Reaktion auf eine „First Frame“ Antwort gesendet, solange die
CFC Einstellung an ist, unabhängig vom gewählten CAF1 oder CAF0 Modus. Ein anderer
Nachrichtentyp (RTR, Remote Transfer Abfrage) wird automatisch im CAF1 Modus entfernt,
da er keine Daten enthält und nicht von den Diagnose-Standards unterstützt wird. Ist
Autoformatierung Aus (CAF0), wird RTR ausgegeben, wenn ein „Remote Transfer Abfrage“
Frame empfangen wurde.
Beachten Sie, daß das Einschalten der Header-Anzeige (mit AT H1) das Formatieren CAF1
erhaltener Daten überschreibt und alle erhaltenen Bytes wie im CAF0 Modus angezeigt
werden, genau wie sie erhalten wurden. Nur die ausgegebenen Daten sind betroffen, wenn
sowohl CAF1 und H1 Modus aktiviert wurde, bei den gesendeten Daten wird das PCI Byte
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 12
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
weiterhin erzeugt und Füllbytes werden weiterhin hinzugefügt. Auto-Format Ein (CAF1) ist
die Grundeinstellung des ELM327®.
CF hhh [setzt den CAN ID Filter auf hhh]
Der CAN Filter arbeitet zusammen mit der CAN Maske zur Bestimmung, welche
Informationen vom Empfänger akzeptiert werden. Bei jeder erhaltenen Nachricht werden die
eintreffenden CAN ID Bits mit den CAN Filter Bits verglichen, wenn das Masken-Bit auf „1“
steht. Treffen die relevanten Bits zu, wird die Nachricht akzeptiert und vom ELM327®
verarbeitet, anderenfalls wird die Nachricht ignoriert. Die drei Nibbles des CAN Filter
Befehls vereinfachen das Setzen von Filtern bei 11 Bit ID CAN Systemen. Es werden nur die
11 rechten Bits der verfügbaren Nibbles genutzt und das höchstsignifikante Bit wird ignoriert.
Die Daten werden jedoch intern als 4 Bytes gespeichert und der Befehl fügt für die anderen
Bytes führenden Nullen hinzu. Weitere Details siehe unter CM-Befehlen.
CF hh hh hh hh [setzt den CAN ID Filter auf hhhhhh]
Mit diesem Befehl können alle 4 Bytes (aktuell 29 Bits) des CAN Filters auf einmal gesetzt
werden. Die 3 höchstsignifikanten Bits werden immer ignoriert und können jeden Wert
enthalten. Beachten Sie, daß dieser Befehl auch zur Eingabe eines 11 Bit ID Filters genutzt
werden kann, da er intern an gleicher Stelle gespeichert wird. Die Eingabe von AT CF 00 00
0h hh ist somit exakt das Gleiche wie die Eingabe des kürzeren AT CF hhh Befehls.
CFC0 und CFC1 [CAN Fluß-Controlle aus (0) oder ein (1)]
In der Grundeinstellung führt der ELM327® automatisch einen Zähler mit, wenn eine CAN
Abfrage gesendet wurde und eine „First Frame“ Nachricht als Antwort empfangen wird, was
als „Fluß-Kontroll“ Nachricht bezeichnet wird. Dies ist als Teil des ISO 15765-4 Protokolls
erforderlich und interessiert den Anwender normalerweise wenig. Wird der ELM327® jedoch
experimentell in einem Nicht-OBD-System Art verwendet, kann es notwendig werden, diese
Fluß-Kontroll Nachrichten mit AT CFC0 abzuschalten. Die Grundeinstellung ist also CFC1 –
Flußkontrolle an.
Beachten Sie, daß während des Monitorings (AT MA, MR oder MT) niemals FlußkontrollNachrichten gesendet werden, egal wie die CFC Option gesetzt ist.
CM hhh [setzt die CAN ID Maske auf hhh]
In einem CAN System können jederzeit sehr viele Nachrichten transportiert werden. Zur
Begrenzung auf die den ELM327® betreffenden Nachrichten muß ein Filtersystem zum
Ausfiltern der relevanten von all den anderen Nachrichten vorhanden sein. Dies wird mit
Filtern erreicht, die im Verbund mit Masken arbeiten. Eine Maske ist eine Gruppe von Bits,
die dem ELM327® sagen, welche Bits in einem Filter relevant sind und zutreffen müssen und
welche ignoriert werden können. Eine zutreffende Kondition wird durch Setzen des
Maskenbits auf „1“ signalisiert, während eine „Ignoriere“ Kondition mit Setzen des Bits auf
„0“ erzeugt wird. Diese drei Digit Version des CM-Befehls wird zur Erzeugung von MaskenWerten für 11 Bit ID Systeme verwendet, das höchstsignifikante Bit wird immer ignoriert.
Beachten Sie, daß intern eine allgemeine Speicherstelle für die 29 Bit und 11 Bit Masken
verwendet wird, so daß es möglich ist, den folgenden Befehl (CM hh hh hh hh) auch für 11
Bit Masken zu verwenden, falls die extra Tipparbeit nicht stört. Die Werte sind rechts justiert,
daher müssen 5 führende Nullen gefolgt von den drei Masken Bytes verwendet werden.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 13
________________________________________________________________
CM hh hh hh hh [setzt CAN ID Maske auf hhhhhhhh]
Mit diesem Befehl werden Masken-Werte für 29 Bit ID Systeme zugewiesen. Siehe dazu die
Beschreibung oben unter dem CM hhh Befehl, die außer der Länge identisch ist.
Beachten Sie, daß die von Ihnen im ersten Digit vorgegebenen drei höchstsignifikanten Bits
ignoriert werden.
CP hh [setzt CAN Prioritäts Bits auf hh]
Dieser Befehl wird zum Setzen der 5 höchstsignifikanten Bits in einem 29 Bit CAN ID Wort
verwendet. Die anderen 24 Bits werden mit dem AT SH Befehl gesetzt. Einige Systeme
verwenden mehrere dieser 5 Bits zur Zuweisung eines Prioritätswertes einer Nachricht. Daher
wurde dieser Befehl so genannt. Alle Bits, die über die 5 erforderlichen Bits hinausgehen,
werden ignoriert und nicht im ELM327® gespeichert, es werden nur die übergebenen 5
niedrigst-signifikanten Bits verwendet. Der Grundwert für diese Prioritätsbits ist 0x18 (Hex).
CS [zeigt den CAN Status]
Das CAN Protokoll erfordert das Führen einer Statistik über die Anzahl der übertragenen und
empfangenen Fehler. Tritt eine signifikante Anzahl auf, kann das Gerät Offline gehen, um
nicht die anderen Daten auf dem Bus zu stören. Es könnte sich sowohl um einen Hardwareals auch Software-Fehler handeln. Der AT CS Befehl zeigt sowohl den Wert des Tx
Fehlerzählers als auch des Rx Fehlerzählers an. Sollte der Transmitter aus sein (Zähler größer
als FF), wird OFF ausgegeben anstelle der Fehlerzahl.
CV dddd [Calibriere die Voltzahl auf dd.dd Volt]
Der vom ELM327® mit dem AT RV Befehl dargestellte Spannungswert kann mit diesem
Befehl kalibriert werden. Der Befehl benötigt immer 4 Digits ohne Dezimalzeichen. Das
Dezimalzeichen wird automatisch zwischen dem zweiten und dritten Digit angenommen.
Zur Nutzung dieser Kalibrierfunktion verwendet man ein Voltmeter mit ausreichender
Genauigkeit zum Ablesen der aktuellen Spannung. Gibt der ELM327® zum Beispiel
permanent 12.2V aus, wenn aktuell 11.99 Volt gemessen werden, dann gibt man AT CV 1199
ein und das Gerät kalibriert sich selbst auf die eingegebene Voltzahl. Wegen der Rundung
wird dann 12.0V ausgegeben. Wird eine Testspannung von weniger als 10 Volt verwendet,
darf die führende Null nicht vergessen werden. 9.02 Volt müssen als AT CV 0902 eingegeben
werden.
D [setzt alles auf Default]
Dieser Befehl setzt alle Optionen auf ihren Default-Wert oder die „Werkseinstellungen“, wie
sie hier beschrieben werden. Dadurch kann mit unterschiedlichen Einstellungen
experimentiert werden und schnell mit einem einzigen Befehl auf die Grundeinstellung
wieder zurück gestellt werden.
Zusammengefaßt sind diese Default-Werte: E ist Ein, H ist Aus und M, B, L sind
entsprechend dem Spannungszustand der Beschaltung von Pins 5 bis 7 gesetzt. Der ’NO
DATA’ Zeitüberschreitungswert hat seinen Default-Wert und die Zeit zwischen den BusHaltenachrichten hat ebenfalls den Default-Wert wie die Baudrate. Schließlich sind die
Kopfbytes auf ihre vorgeschriebenen Werte für OBDII Operationen gesetzt und die AntwortAdressen sind entsprechend angepaßt. Das zuletzt gespeicherte Protokoll wird verwendet,
möglicherweise mit Schließung eines anderen gerade verwendeten Protokolls. Wenn der Bus
initialisiert ist, bleibt er aktiv.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 14
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
DM1 [Monitor für DM1]
Das SAE J1939 Protokoll verbreitet periodisch Fehlercodes, wenn sie entdeckt werden, mit
Diagnostic Mode 1 (DM1) Nachrichten. Dieser Befehl stellt den ELM327® auf
kontinuierliche Überwachung für diesen Nachrichtentyp ein mit dem geforderten MultiSegment Protokoll-Transport. Beachten Sie, daß eine Kombination von Masken und Filtern
einen ähnlichen Effekt haben könnte, aber keine mehrzeiligen Nachrichten erkennen würde.
Der DM1 Befehl enthält die zusätzliche Logik für mehrzeilige Nachrichten.
Dieser Befehl ist nur bei verwendetem CAN Protokoll (A, B oder C) verfügbar zur J1939
Formatierung. Bei allen anderen Konditionen gibt er einen Fehler zurück.
DP [zeige das aktuelle Protokoll]
Im Automatik-Modus kann der ELM327® selbsttätig das OBD-Protokoll des Fahrzeugs
bestimmen, zu dem er eine Verbindung aufnimmt (… hoffentlich, es gibt immer wieder
Fahrzeuge, die abweichende Standards verwenden). Beim Verbindungsaufbau zum Fahrzeug
meldet der ELM327® nicht das gefundene Protokoll, da der Anwender diese Information zum
Lesen oder Löschen von Fehlercodes usw. nicht benötigt. Gelegentlich möchte man aber den
Protokolltyp kennen. Mit dem DP Befehl wird das im ELM327® ausgewählte Protokoll
angezeigt, egal ob es gültig ist oder nicht. Ist die Automatik-Option ebenfalls angewählt, wird
das Protokoll mit dem vorangestellten Wort „AUTO“ angezeigt.
Beachten Sie, daß die aktuellen Namen im Klartext angezeigt werden und nicht die
Nummern, die beim Protokoll-Einstell Befehl benutzt werden.
DPN [zeige das aktuelle Protokoll numerisch]
Der DPN Befehl entspricht dem DP Befehl, nur daß die Ausgabe in numerischen Zeichen wie
bei AT SP oder AT TP erfolgt. Im Auto-Modus ist ein A vorangestellt, also z.B. A3. Dieser
Befehl erleichtert das Schreiben von Software für den ELM327®.
E0 und E1 [Echo Aus (0) oder Ein (1)]
Diese Befehle bestimmen, ob am RS232 Port empfangene Zeichen zurück zum HostComputer übertragen werden (Echo) oder nicht. Um den Verkehr am RS232 Bus zu entlasten,
kann es wünschenswert sein, das Echo mit dem Befehl ATE0 abzuschalten. Der Default-Wert
ist E1 (Echo Ein).
FC SM h [Fluß-Controlle setze Modus auf h]
Dieser Befehl bestimmt, wie der ELM327® auf die erste Frame Nachricht antwortet, wenn
automatische Fluß-Kontroll Antworten aktiviert ist. Das übergebene einzelne Digit h kann
entweder ‚0’ (der Standardwert) für vollständig automatische Antworten, ‚1’ für vollständig
Anwender definierte Antworten oder ‚2’ für Anwender definierte Datenbytes in der Antwort
sein. Weitere vollständige Details und Beispiele stehen im Abschnitt Änderung Fluß-Kontroll
Nachrichten.
FC SH hhh [Fluß-Controlle setze Header auf …]
Die Kopfbytes (Headerbytes) oder genauer gesagt die ‚CAN ID’ für die CAN Fluß-Kontroll
Nachrichten können mit diesem Befehl gesetzt werden. Es werden nur die 11 rechtsstehenden
der verfügbaren Bits verwendet – das meist signifikante Bit wird immer entfernt. Dieser
Befehl betrifft momentan nur den Fluß-Kontroll Modus 1.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 15
________________________________________________________________
FC SH hhhhhhhh [Fluß-Controlle setze Header auf …]
Dieser Befehl wird zum Setzen der Header (oder ‚CAN ID’) Bits von 29 Bit CAN ID
Systemen verwendet. Da die 8 Nibbels 32 Bits definieren, werden davon nur die
rechtsstehenden 29 Bits verwendet – die meist signifikanten drei Bits werden immer entfernt.
Dieser Befehl betrifft momentan nur den Fluß-Kontroll Modus 1.
FC SD [1-5 Bytes] [Fluß-Controlle setze Daten auf …]
Mit diesem Befehl können die in einer CAN Fluß-Kontroll Nachricht gesendeten Datenbytes
gesetzt werden. Die aktuelle Software-Version erlaubt nur die Definition von ein bis fünf
Datenbytes, wobei der Rest der Datenbytes in der Nachricht automatisch auf das Default
CAN Filterbyte gesetzt wird. Die mit diesem Befehl übergebenen Daten werden nur im FlußKontroll Modus 1 und 2 verwendet.
H0 und H1 [Header (Kopf) Aus (0) oder Ein (1)]
Diese Befehle kontrollieren, ob die zusätzlichen Kopf-Informationen in den Antworten vom
Fahrzeug gezeigt werden sollen oder nicht. Die Kopf-Informationen sind die vom System
extra hinzugefügten Bytes, die mehr Informationen über die OBD-Nachricht enthalten können
als die reinen Header-Bytes. Sie enthalten Informationen darüber, an wen die Nachricht
adressiert wurde, woher sie ist und welche Priorität sie hat. Die ersten OBDII Systeme
(J1850, ISO 9141 usw.) fügten immer drei zusätzliche Bytes am Beginn der Nachricht an
(Header) und ein weiteres abschließendes Prüfbyte nach den Datenbytes. Das CAN System
(ISO 15765-4) verwendet eine unterschiedliche Anzahl von Bytes (Prüf-Digits, PCI Bytes),
aber fügt weiterhin die gleichen Informationstypen an die Nachrichten an. Als einzige
Ausnahme zeigt die aktuelle Version nicht den CAN Datenlängen Code (DLC), den CRC
oder die speziellen J1850 IFR Bytes an. Letztere werden von manchen Protokollen als
Bestätigung zum Erhalt einer Nachricht gesendet. Diese zusätzlichen Bytes sind
normalerweise vom ELM327® für den Anwender versteckt (die Grundeinstellung ist H0 –
Kopfbytes aus). Um diese weiteren Informationen zu sehen, kann der Anwender mit dem
ATH1 Befehl das Kopffeld einschalten. Der Default Wert ist H0 (Header Aus).
I [Identifiziere dich selber]
Mit diesem Befehl identifiziert sich der Chip selber, in dem er die Produktions ID wie beim
Start ausgibt (dies ist z.Zt. ‚’ELM327 v1.2’). Eine Software kann dies benutzen, um
festzustellen, um welchen Chip es sich handelt, ohne den gesamten IC zurücksetzen zu
müssen.
IB 10 [setzt die ISO Baudrate auf 10400]
Mit diesem Befehl wird die ISO 9141-2 und ISO 14230-4 Daten-Baudrate auf den Grundwert
von 10.400 Baud zurückgesetzt.
IB 96 [setzt die ISO Baudrate auf 9600]
Auf Wunsch vieler Anwender wurde dieser Befehl aufgenommen, um die Baudrate für ISO
9141-2 und ISO 14230-4 Protokolle (Nummern 3, 4 und 5) auf 9.600 Baud einzustellen und
damit Anforderungen beim Initialisierungs-Datenaustausch realisieren zu können. Der Befehl
kann daher für Experimente mit einigen Fahrzeugen nützlich sein. Es kann zu jeder Zeit auf
die normale Baudrate von 10.400 Baud mit dem Befehl IB 10 zurückgestellt werden.
IFR 0, IFR 1 und IFR 2 [IFR Kontrolle]
Das J1850 Protokoll kennt ein sog. In-Frame Response (IFR) Byte, das nach jeder Nachricht
gesendet wird, gewöhnlich um den richtigen Empfang der Nachricht anzuzeigen. Der
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 16
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
ELM327® generiert und sendet dieses Byte automatisch für Sie in der Grundeinstellung. Mit
diesem Befehl kann dieses Verhalten geändert werden.
Der AT IFR 0 Befehl unterbindet das Senden aller IFRs, während AT IFR 2 immer das
Senden des IFR Bytes erzwingt, egal ob die Kopfbytes es erfordern oder nicht. Der AT IFR 1
Befehl setzt auf das automatische Senden von IFRs zurück, wie es vom „K“ Bit des
Kopfbytes bestimmt wird. AT IFR 1 ist die Grundeinstellung.
IFR H und IFR S [IFR vom Header (Kopf) oder Source (Quelle)]
Der gesendete Wert in dem J1850 In-Frame Response (IFR) Byte ist normalerweise der
gleiche Wert, der als Source (oder Tester) Adressbyte gesendet wird, der im Kopf der Anfrage
war. Gelegentlich ist es jedoch wünschenswert, einen anderen Wert zu verwenden, und
hierfür sind diese Befehle vorgesehen.
Wird der Befehl AT IFR S gesendet, verwendet der ELM327 den Wert, der als Source
Adresse (Adresse des Testers) definiert ist, anstelle des Wertes, der in den Kopfbytes
gesendet wurde. Das ist normalerweise F1, kann aber mit PP 06 geändert werden. Meistens ist
dies unnötig und der Befehl AT IFR S sollte daher mit Vorsicht verwendet werden. Der
Befehl AT IFR H setzt den IFR Byte-Wert wieder auf den in den Kopfbytes gelieferten Wert
zurück. AT IFR H ist die Grundeinstellung.
IIA hh [setzt die ISO Initialisierungs Adresse auf hh]
Die ISO 9141-2 und ISO 14230-4 Normen bestimmen, daß zu Beginn einer Sitzung mit einer
ECU die Initialisierungs-Sequenz auf eine bestimmte Adresse ($33) gelenkt wird. Zum
Experimentieren kann die langsame 5 Baud Sequenz mit diesem Befehl auf eine andere
Adresse gelenkt werden. Soll zum Beispiel die Initialisierung der ECU mit Adresse $7A
erfolgen, dann senden Sie einfach folgenden Befehl:
>AT IIA 7A
Der ELM327® verwendet dann diese Adresse bei den Protokollen 3 oder 4. Der Adress-Wert
wird jedem Reset- oder Default-Befehl auf $33 zurück gesetzt.
KW0 und KW1 [Key Word Prüfung aus (0) oder ein (1)]
Der ELM327® sucht spezielle Bytes (Key Words genannt) während der ISO 9141-2 und ISO
14230-4 Initialisierungs-Sequenz. Werden diese Bytes nicht gefunden, dann ist die
Initialisierung fehlgeschlagen (es erscheint „UNABLE TO CONNECT“ oder vielleicht „BUS
INIT: ...ERROR“). Das ist der Fall bei nicht OBD-2 kompatibelen oder vielleicht älteren
ECUs.
Soll experimentiert werden, aber der ELM327® nicht die Byte-Werte in den Key Words
prüfen, kann dies abgeschaltet werden mit:
>AT KW0
Dann sucht der IC nur nach irgendwelcher Antwort, aber nicht nach dem aktuellen Wert in
der Antwort. Damit kann eine Verbindung in einer sonst „unmöglichen“ Situation erfolgen.
Das normale Verhalten kann mit dem Befehl AT KW1 zurück erlangt werden, der
Grundeinstellung.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 17
________________________________________________________________
Zu erwähnen ist, daß der ELM327® weiterhin mit KW2 antwortet, wie vorgeschrieben in den
Standards, er schaut nur nicht mehr auf den Wert.
L0 und L1 [Linefeeds (Zeilenschaltung) Aus (0) oder Ein (1)]
Ob der ELM327® ein Zeilenschaltungszeichen nach jedem Wagenrücklauf (CR) überträgt
oder nicht, wird mit dieser Option kontrolliert. Wird ATL1 gegeben, wird das
Zeilenschaltungszeichen generiert und bei ATL0 nicht. Der Anwender wird diese Option
eingeschaltet haben bei Verwendung eines Terminalprogramms, aber ausgeschaltet bei
Verwendung eines Anwendungsprogramms, da dieses weitere Zeichen die Übertragung vom
Fahrzeug verlangsamt. Die Grundeinstellung wird vom Spannungslevel am Pin 7 bestimmt,
wenn der IC zurückgesetzt wird (Versorgungsspannung Ein oder ATZ) oder die DefaultWerte eingestellt werden (ATD).
M0 und M1 [Memory aus (0) oder ein (1)]
Der ELM327® besitzt internen, nicht-flüchtigen Speicher, in dem das zuletzt verwendete
Protokoll behalten wird, sogar bei ausgeschalteter Stromversorgung. Das ist vorteilhaft, wenn
oft ein bestimmtes Protokoll verwendet wird, da dieses dann das erste beim Einschalten des
IC ist. Diese Speicherfunktion wird mit dem AT-Befehl M1 eingeschaltet oder vom
Spannungslevel an Pin 5, der bei hohem Spannungslevel die Speicherfunktion einschaltet.
Ist die Memory-Funktion aktiviert, wird jedesmal, wenn der ELM327® ein gültiges OBDProtokoll findet, dieses Protokoll gespeichert und wird zum neuen Grundwert. Ist die
Memory-Funktion nicht aktiviert, startet der ELM327® immer mit dem zuletzt gespeicherten
Protokoll, egal was in vorherigen Sitzungen benutzt wurde.
Wird der ELM327® in Fällen benutzt, in denen immer wieder ein anderes Protokoll
vorkommt, ist es besser, die Memory-Funktion auszuschalten und dann den Befehl AT SP 0
zu verwenden. Der SP 0 Befehl setzt den ELM327® zum Start in den Automatik-Protokoll
Modus, der in unbekannten Umgebungen am nützlichsten ist. Der IC besitzt diese
Werkseinstellung bei Auslieferung. Wenn jedoch nur ein Fahrzeug vorhanden ist, das immer
wieder gescannt werden soll, ist der Speicherbefehl zum Speichern dieses FahrzeugsProtokolls am sinnvollsten.
Wie schon angemerkt, wird die Grundeinstellung der Memory-Funktion vom Spannungslevel
an Pin 5 beim Start oder IC-Reset bestimmt. Ist der Pin 5 an hohem Spannungspegel
angeschlossen, dann ist der Grundwert der Memory-Funktion Speicher Ein, bei niedrigem
Spannungslevel Speicher Aus.
MA [Monitor Alle Nachrichten]
Die Verwendung dieses Befehls versetzt den ELM327® in einen Bus Beobachtungsmodus, in
dem er alle Nachrichten anzeigt, die er auf dem OBDII Bus sieht. Dies geschieht undefiniert
solange, bis es durch eine Aktivität am RS232 Eingang gestoppt wird oder den RTS Pin. Um
die Beobachtung (das Monitoring) zu beenden, kann ein einzelnes Zeichen gesendet werden,
um dann zu warten, bis der ELM327® mit dem Prompt-Zeichen (’>’) antwortet. Alternativ
kann der RTS Eingang auf niedrigen Spannungslevel gesetzt werden, um das Gerät auch so
zu unterbrechen. Dieses Warten auf das Prompt-Zeichen ist erforderlich, da die Antwortzeit
nicht vorhersehbar ist wegen der Abhängigkeit des IC von seiner augenblicklichen
Beschäftigung während des Interrupts. Ist er z.B. mitten in der Ausgabe einer Zeile, wird die
Zeile zunächst vervollständigt, bevor er in den Befehlsstatus geht und das Prompt-Zeichen
ausgibt. Wartet er hingegen einfach auf Eingänge, kehrt er augenblicklich zurück. Das
Zeichen, das den Beobachtungsstatus stoppt, wird immer verworfen und beeinträchtigt nicht
die folgenden Befehle.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 18
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Im CAN Modus zeigt MA alle Nachrichten, die Filter und Maske passieren, wenn sie gesetzt
wurden. Wurden keine gesetzt, versucht der ELM327® alle Nachrichten anzuzeigen, die auf
dem CAN Bus laufen.
Beachten Sie, daß dieser Befehl als eine Zugabe zu betrachten ist und mit Vorsicht benutzt
werden sollte. Im Bus Beobachtungsstatus sendet der ELM327® keine periodischen „BusWachhalte“-Nachrichten, so daß, wenn der Bus vor Eingabe dieses Befehls initialisiert wurde,
es möglich ist, daß die Fahrzeugverbindung abbricht und neu initialisiert werden muß. Der
ELM327® wird den Verbindungsverlust nicht merken und muß möglicherweise mit einem
ATSW00 oder einem ATZ Befehl zurückgesetzt werden.
MP hhhh [Monitor für PGN hhhh]
Die AT MA, MR und MT Befehle sind sehr nützlich, wenn ein spezielles Byte im Kopf einer
typischen OBD Nachricht gesucht wird. Beim SAE J1939 Protokoll ist es jedoch oft
wünschenswert, die Multi-Byte Parameter Gruppen Nummern (oder PGNs) zu überwachen,
die im Kopf oder in den Datenbytes erscheinen können. Der MP Befehl ist ein spezieller
Befehl für J1939 zur Suche nach Antworten auf eine bestimmte PGN Abfrage und folgt
Multi-Segment Erscheinungen von ihnen.
Die aktuelle Version des ELM327® stellt keine Möglichkeit zur Einstellung der ersten zwei
Digits der PGN zur Verfügung – sie werden immer als 00 angenommen. Dem DM2 PGN
wurde zum Beispiel der Wert 00FECB zugewiesen (siehe SAE J1939-73). Zur Überwachung
aller DM2 Nachrichten kann der Befehl AT MP FECB gegeben werden, da der ELM327®
immer annimmt, daß der PGN zwei Nullen (00) vorangestellt ist.
Der Befehl ist nur verfügbar, wenn für J1939 Formatierung ein CAN Protokoll (A, B oder C)
gewählt ist. Unter allen anderen Konditionen gibt er einen Fehler zurück. Beachten Sie, daß
diese Version nur Antworten zeigt, auf die die Kriterien zutreffen, nicht jedoch Antworten auf
Abfragen nach Informationen.
MR hh [Monitor nur Receiver hh]
Dieser Befehl versetzt den ELM327® ebenfalls in den Monitor Modus, zeigt jedoch nur
Nachrichten, die an die mit hh bestimmte Hexadresse gesendet wurden. Dies sind
Nachrichten, die diesen Wert im zweiten Byte eines traditionellen 3-Byte OBD-Headers
haben oder in den Bits 8 bis 15 bei 29 Bit CAN oder in den Bits 8 bis 10 in einer 11 Bit CAN
Nachricht. Jegliche RS232 Aktivität (einzelnes Zeichen) beendet das Monitoring ebenso wie
beim MA Befehl.
MT hh [Monitor nur Transmitter hh]
Ein weiterer Monitor Befehl, der nur Nachrichten zeigt, die an die Transmitter-Adresse hh
gesendet wurden. Dies sind Nachrichten, die diesen Wert im dritten Byte eines traditionellen
3-Byte OBD-Headers haben oder in Bits 0 bis 7 bei CAN Systemen. Wie beim MA und MR
Monitor-Modus unterbricht jede RS232 Aktivität (einzelnes Zeichen) das Monitoring.
NL [Normal Länge (7 Byte) Nachrichten]
Bei Verwendung des NL Modus werden alle gesendeten und empfangenen Nachrichten auf
die Standard 7 Datenbyte Länge begrenzt, ähnlich wie bei den ELM320/322/323 Chips. Für
längere Nachrichten ist der AL Befehl zu verwenden. Die Grundeinstellung ist NL Ein.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 19
________________________________________________________________
Bei den KWP Protokollen können jedoch längere Nachrichten abhängig vom eingebetteten
Längenwert z.B. bei 4 Byte Headern verwendet werden.
PC [Protokoll schließen]
Es kann Situationen geben, in denen man das Protokoll stoppen (schließen) möchte. Vielleicht
wird nicht die automatische Protollsuche verwendet und es soll manuell ein Pritokoll aktiviert
und deaktiviert werden, vielleicht möchte man die Wachhalte-Nachrichten stoppen oder es
liegen andere Gründe vor. Der PC Befehl wird in diesen Fällen zur Erzwingung einer
Protokoll-Beendigung benutzt.
PP hh OFF [schalte Prog. Parameter hh OFF (Aus)]
Dieser Befehl schaltet den programmierbaren Parameter Nummer hh ab. Jeglicher mit dem
Befehl PP hh SV gesetzte Wert wird nicht mehr verwendet und es treten wieder die
Werkseinstellungen in Kraft. Die Zeit bis zum Eintreten des neuen Parameterwertes hängt
vom Parametertyp ab. Weitere Informationen über Typen stehen im Abschnitt
Programmierbare Parameter.
Anmerkung: Der Befehl ‚PP FF OFF’ ist ein Sonderfall, der alle programmierbaren Parameter
gleichzeitig abschaltet, als ob jeder mögliche Parameter mit PP hh OFF einzeln abgeschaltet
worden ist.
Es ist möglich, einige Programmierbare Parameter so zu ändern, daß es schwierig oder sogar
unmöglich wird, weiter mit dem ELM327® zu kommunizieren. In solchen Fällen gibt es einen
Hardware Reset zum Zurücksetzen aller Programmierbarer Parameter auf einmal. Verbinden
Sie einen Jumper mit Schaltung Masse auf Pin 28 und halten ihn dort während des
Einschaltens (Spannungsversorgung ein) bis die RS232 Receive LED anfängt zu blinken (das
bedeutet, daß alle Pps abgeschaltet wurden). Jetzt entfernen Sie den Jumper und lassen den IC
damit nun normal hochfahren. Beachten Sie, daß der PP Reset sehr schnell erfolgt. Ist der
Jumper länger als ein paar Sekunden im Eingriff und die RS232 Receive LED blinkt nicht,
entfernen Sie den Jumper und versuchen es erneut. Es kann ein Kontaktproblem gegeben
haben. Diese Funktion ist nur in den Versionen ab v1.2 verfügbar und nicht in früheren
Versionen des ELM327®.
PP hh ON [schalte Prog. Parameter hh ON (Ein)]
Dieser Befehl aktiviert den programmierbaren Parameter Nummer hh. Bei Aktivierung wird
der mit dem Befehl PP hh SV voreingestellte Wert anstelle des werksseitigen Wertes
verwendet. Man beachte, daß alle programmierbaren Parameterwerte werksseitig auf ‚FF’
gesetzt sind, so daß das Aktivieren eines programmierbaren Parameters ohne vorherige
Wertzuweisung zu unvorhersehbaren Ergebnissen führen kann. Die Zeit bis zum Eintreten
eines neuen Parameterswertes ist von dessen Typ abhängig. Weitere Informationen über
Typen stehen im Abschnitt Programmierbare Parameter.
Anmerkung: Der Befehl ‚PP FF ON’ ist ein Sonderfall, der alle programmierbaren Parameter
gleichzeitig einschaltet.
PP xx SV yy [Program. Parameter xx setzen auf Value (Wert) yy]
Mit dem Befehl wird dem programmierbaren Paramter Nummer xx der Wert yy zugewiesen.
Das System kann diesen Wert aber erst verwenden, wenn der programmierbare Parameter
aktiviert ist.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 20
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
PPS [Programmierbare Parameter Summary (Übersicht)]
Mit diesem Befehl wird der gesamte Bereich der aktuellen programmierbaren Parameter
angezeigt (selbst wenn sie noch nicht implementiert sind). Jeder wird als PP Wert angezeigt,
gefolgt von Semikolon und dem zugewiesenen Wert. Dann folgt ein Digit – entweder ‚N’
oder ‚F’ zum Zeichen, daß es aktiviert (N, ON) oder deaktiviert (F, OFF) ist.
R0 und R1 [Antworten aus (0) oder ein (1)]
Diese Befehle kontrollieren die automatische Ausgabe der Antworten durch den ELM327®.
Sind Antworten ausgeschaltet, wartet der ELM327® auf keinerlei Reaktion des Fahrzeugs
nach einer gesendeten Abfrage und kehrt sofort in den Wartestatus für weitere RS232 Befehle
zurück. Dies ist verwendbar, wenn mit dem ELM327® blinde Befehle in einer Nicht-OBDAnwendung gesendet werden sollen oder in einer ECU Simulation in einer Lernumgebung.
Es wird nicht empfohlen, diesen Befehl sonstwie zu verwenden, da ein Fahrzeug
Schwierigkeiten bekommen kann, wenn es ein Bestätigungsbyte erwartet und dies niemals
bekommt. Die Grundeinstellung ist R1 (Antworten Ein)..
RV [Lese (Read) Eingangsspannung Volt]
Mit diesem Befehl wird die Spannung an Pin 2 gelesen und in einen numerischen Wert
umgewandelt. Die aktuelle Spannung an Pin 2 darf die Versorgungsspannung des ELM327®
nicht übersteigen (normalerweise 0 bis 5 Volt). Es wird grundsätzlich angenommen, daß der
Eingang zur zu messenden Spannung über einen 47 Kilo-Ohm und 10 Kilo-Ohm
Widerstandsteiler (mit dem 10 Kilo-Ohm Widerstand von Pin 2 zu Vss) erfolgt und daß die
ELM327® Versorgungsspannung 5 Volt beträgt. Damit kann die Messung einer
Eingangsspannung von bis zu 28 Volt erfolgen mit einer nicht kalibrierten Genauigkeit von
typisch etwa 2 %.
SH yzz [Setzt den Header auf yzz]
Erläuterung siehe unter SH xx yy zz.
SH xx yy zz [Setzt den Header auf xx yy zz]
Dieser Befehl gestattet es dem Anwender, die Werte zu kontrollieren, die als die drei
Kopfbytes (Header) in einer Nachricht gesendet werden. Diese Bytes haben normalerweise
zugewiesene Werte und müssen nicht verändert werden, aber es kann Situationen geben, wo
es gewünscht wird, diese Werte zu verändern. Dies trifft insbesondere beim Experimentieren
mit physikalischen Adressierungen zu. Der Wert der hexadezimalen Digits xx wird für das
erste oder Prioritäts/Typ-Byte verwendet, yy für das zweite oder Empfänger-/Ziel-Byte und zz
für das dritte oder Sender-/Quell-Byte. Diese bleiben bestehen, bis sie geändert werden oder
auf ihre Default-Werte mit den Befehlen ATD, ATWS oder ATZ zurückgesetzt werden.
Die Standard Kopfbyte-Werte sind für Fahrzeuge mit ISO 9141 Protokoll 68 6A F1, während
sie für ISO 14230 (KWP2000) Cn 33 F1 sind, wobei n die Anzahl der Datenbytes der
Nachricht repräsentiert. Beachten Sie, daß der Anwender niemals das Längenbyte bei ISO
14230 Systemen setzen muß, da dies automatisch vom ELM327® vorgenommen wird.
Dieser Befehl war bereits in den ELM32x implementiert und erlaubt das Experimentieren mit
den Kopfbytes, wobei die periodischen „Wachhalte“-Nachrichten nicht tangiert werden. Dazu
kann jeweils ein eigener Satz von Kopfbytes für die periodischen „Wachhalte“-Nachrichten
und die Standard Abfragen verwendet werden. Dies geschieht zunächst durch eine Zuweisung
von Kopfbytes (oder dem Belassen der Default-Werte) und daran anschließender
Initialisierung des OBDII Bus. Welche Kopfbytes auch immer zur Initialisierung des OBDII
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 21
________________________________________________________________
Bus verwendet werden, diese werden für alle weiteren periodischen „Wachhalte“-Nachrichten
verwendet, bis der IC zurückgesetzt wird (oder mit ATSW00 abgeschaltet werden). Die
Verwendung von ATSH nach der Bus Initialisierung betrifft nur die folgenden Abfragen und
hat keinen Effekt auf die periodischen „Wachhalte“-Nachrichten.
Beim ELM327® kann er nun für alle Protokolle verwendet werden, egal ob J1850, ISO 9141,
ISO 14230 oder ein CAN System. Das CAN System benutzt diese drei Bytes zum Füllen der
Bits 0 bis 23 des ID-Wortes in einem 29 Bit ID oder verwendet nur die 11 rechtsstehenden
Bits bei einem 11 Bit CAN ID. Die weiteren 5 Bits für ein 29 Bit System werden vom AT CP
Befehl zur Verfügung gestellt, da sie sich selten ändern. Die Eingabe eines 11 Bit ID Wortes
(Header) erfordert normalerweise das Hinzufügen führender Nullen (z.B. AT SH 00 07 DF),
aber ist nicht notwendig. Dafür kann die Variante des SH Befehls (SH yzz), die 3 Digits
akzeptiert, verwendet werden. Der ELM327® nimmt also auch Eingaben von 3 Digits und
benutzt intern die 11 rechtsstehenden Bits, fügt führende Nullen hinzu und speichert es an den
Header Speicherorten. T SH 7DF ist zum Beispiel ein gültiger Befehl und verwendbar beim
Arbeiten mit 11 Bit CAN Systemen. Er wird aktuell als Header-Bytes 00 07 DF intern
gespeichert.
Beim Zuweisen von Werten für die Kopfbytes der KWP Protokolle (4 und 5) muß sorgfältig
beim Setzen des ersten (xx) Wertes vorgegangen werden. Der ELM327® fügt immer die
Nummer der Datenbytes für Sie ein, aber wie das getan wird, hängt von der Werten ab, die
Sie bestimmen. Wenn das zweite Digit des ersten Kopfbytes (xx) etwas anderes als 0 (Null)
ist, dann nimmt der ELM327® an, daß Sie den Längenwert an diesem Punkt einfügen
möchten. Mit anderen Worten, die Übergabe eines eines Längenwertes im ersten Kopfbyte
veranlaßt den ELM327® zur Verwendung von traditionellen drei Byte-Headern, in denen die
Länge im ersten Byte gespeichert ist.
Wird der Wert 0 für das zweite Digit des ersten Kopfbytes übergeben, dann nimmt der
ELM327® an, daß der hierfür Wert 0 bleiben soll und ein viertes Kopf-(Längen)-Byte in die
Nachricht eingefügt wird. Das entspricht zwar nicht dem ISO 14230-4 OBD Standard, wird
aber von vielen KWP2000 Systemen für (nicht-OBD) Übertragung verwendet und kann daher
beim Experimentieren nützlich sein.
SP h [Setzt Protokoll auf h]
Dieser Befehl setzt den ELM327® intern auf das Arbeiten mit dem Protokoll „h“ und sichert
es als Grundwert. Dieses Protokoll wird dann unabhängig von der Einstellung mit AT M0/M1
gespeichert. Zur Zeit gibt es folgende gültige Protokolle:
0 – Automatic
1 – SAE J1850 PWM (41,6 kBaud)
2 – SAE J1850 VPW (10,4 kBaud)
3 – ISO 9141-2 (5 Baud Init, 10,4 kBaud)
4 – ISO 14230-4 KWP (5 Baud Init, 10,4 kBaud)
5 – ISO 14230-4 KWP (Fast Init, 10,4 kBaud)
6 – ISO 15765-4 CAN (11 Bit ID, 500 kBaud)
7 – ISO 15765-4 CAN (29 Bit ID, 500 kBaud)
8 – ISO 15765-4 CAN (11 Bit ID, 250 kBaud)
9 – ISO 15765-4 CAN (29 Bit ID, 250 kBaud)
Die Einstellung Automatic (Protokoll 0) ist eine spezielle Einstellung, die den ELM327®
veranlaßt, automatisch alle Protokolle zu probieren auf der Suche nach einem gültigen
Protokoll. Die Suche beginnt mit Protokoll 1 und geht sequentiell weiter, bis ein Modus
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 22
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
korrekt initialisiert ist. Ist beim Finden eines gültigen Protokolls die Memory-Funktion
eingeschaltet, dann wird dieses Protokoll gespeichert und wird zum neuen Startpunkt. Wurde
so gespeichert, dann ist die automatische Suche weiterhin eingeschaltet und wenn der
ELM327® beim nächsten Mal keine Verbindung zu dem gespeicherten Protokoll bekommt,
sucht er wiederum weiter, aber jetzt beginnend von diesem Startpunkt.
Ist ein anderes Protokoll (außer Automatic) mit diesem Befehl gewählt (z.B. AT SP 3), dann
ist dieses Protokoll der Grundwert und das einzige Protokoll, das der ELM327® benutzt.
Fehler bei der Verbindung in dieser Situation führen zu den von den anderen ELM-Chips
bekannten Antworten wie BUS INIT: … ERROR und es wird kein anderes Protokoll mehr
versucht. Dies ist von Vorteil, wenn das Fahrzeug nur ein bekanntes Protokoll unterstützt.
SP Ah [Setzt Protokoll auf Auto, h]
Diese Version des SP Befehls erlaubt die Einstellung eines Start (Grundwert) Protokolls,
während weiterhin die Möglichkeit besteht, automatisch nach einem gültigen Protokoll bei
fehlgeschlagener Verbindung mit dem Grundwert zu suchen. Hat Ihr Fahrzeug zum Beispiel
ISO 9141-2, aber Sie möchten gelegentlich den ELM327® für andere Fahrzeuge verwenden,
wählen Sie AT SP A3 und das Grundprotokoll ist immer 3 mit der Möglichkeit, nach anderen
zu suchen. Es darf dabei nicht vergessen werden, die Memory-Funktion auszuschalten, denn
sonst wird ein anderes Protokoll der neue Grund- oder Startwert. Der SP Befehl sichert das
Protokoll auch, wenn die Memory-Funktion ausgeschaltet ist. Bei der Eingabe kann A und h
umgekehrt sein, d.h. AT SP A3 kann auch als AT SP 3A eingegeben werden.
SR hh [Setzt die Empfänger Adresse auf hh]
Abhängig von der Applikation mag es für den Anwender wünschenswert sein, die Adresse zu
bestimmen, an die der ELM327® antworten soll. Mit diesem Befehl wird der AR Modus
abgeschaltet und zwingt den IC, nur noch Antworten für die Adresse hh zu akzeptieren.
Vorsicht mit dieser Einstellung, da abhängig von der gewählten Adresse eine Nachricht
(bestätigt mit einer IFR) akzeptiert werden kann, die ursprünglich für ein anderes Modul
vorgesehen war.
ST hh [Setzt Timeout auf hh]
Nach dem Senden einer Abfrage wartet der ELM327® eine bestimmte Zeit, bevor festgestellt
wird, daß vom Fahrzeug keine Antwort kommt (die ’NO DATA’ Antwort). Selbst wenn eine
Antwort kommt, wartet der ELM327® diese Zeitspanne ab, um sicherzustellen, daß keine
weiteren Antworten kommen. Abhängig von der Applikation (und der Priorität der Abfrage)
mag der Anwender diese Zeitüberschreitungs-Periode modifizieren wollen, um mehr oder
weniger Zeit zu erlauben. Mit dem ST Befehl ist das möglich.
Die aktuell benutzte Zeit, bevor eine Zeitüberschreitung auftritt, ist (ungefähr) 4
Millisekunden mal dem Bytewert des übergegebenen hexadezimalen Arguments. Die
Verwendung des Wertes FF ergibt damit eine maximale Zeit von ungefähr 1020 ms. Beachten
Sie, daß das Setzen des Wertes 00 (Null) nicht erlaubt ist. Dieser wird intern auf den
Grundwert hexadezimal 32 (dezimal 50) entsprechend dem Zeitüberschreitungswert 200 ms
gesetzt.
SW hh [Setzt Wakeup (Wachhaltung) auf hh]
Ist einmal eine Verbindung zum Fahrzeug hergestellt, muß es alle paar Sekunden einen
Datenfluß geben, damit die Verbindung nicht wieder „einschläft“. Der ELM327® generiert
automatisch Dummy „Wachhalte“-Nachrichten, um die Verbindung aufrecht zu erhalten,
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 23
________________________________________________________________
wenn der Anwender keinerlei Daten abfragt. Die Antworten zu diesen WachhalteNachrichten werden immer ignoriert und nicht angezeigt.
Die Zeit zwischen den periodischen Nachrichten kann in Schritten von 20 ms mit dem AT
SW hh Befehl justiert werden, wobei hh ein hexadezimaler Wert zwischen 00 und FF ist. Die
maximale Zeit wird mit dem hexadezimalen Wert FF (oder dezimal 255) erreicht und beträgt
5,12 Sekunden. Der Grundwert ist 7D (oder dezimal 125), was 2,5 Sekunden zwischen den
Nachrichten entspricht.
Beachten Sie, daß ein Wert von 00 (Null) als besonderer Fall betrachtet wird und mit Vorsicht
benutzt werden sollte. Es wird zum Abbruch aller periodischen Nachrichten intern verwendet
und sagt dem ELM327® intern, daß der Bus nicht länger aktiv ist. Dies kann nützlich sein,
wenn das Fahrzeug eine Zeitüberschreitung hat (vielleicht bei Verwendung des ATMA
Befehls) und der Anwender möchte den ELM327® darüber informieren, ohne einen
vollständigen Reset durchzuführen. Der folgende Kommunikationsversuch mit dem Fahrzeug
nach einen ATSW00 Befehl führt zu einer neuen Initialisierungs Sequenz des ELM327®.
TP h [(Try) Versuche Protokoll h]
Dieser Befehl ist identisch zum SP Befehl, nur wird das gewählte Protokoll nicht sofort im
internen Speicher gesichert und verändert so nicht die Grundeinstellung. Das kann beim
Experimentieren hilfreich sein.
Beachten Sie, daß bei eingeschalteter Memory-Funktion (AT M1) das neue Protokoll bei
erfolgreicher Verbindung gespeichert wird.
TP Ah [(Try) Versuche Protokoll h mit Auto]
Dieser Befehl ist ähnlich dem SP Ah Befehl, nur das gewählte Protokoll ist lediglich temporär
und wird nicht im internen nicht-flüchtigen Speicher (EEPROM) gespeichert. Das gewählte
Protokoll wird versucht und, wenn die Initialisierung fehlschlägt, geht der ELM327®
automatisch sequentiell durch alle Protokolle zum Verbindungsversuch.
WM xx yy zz aa [bb | bb cc] [Setzt Wachhalte Nachricht (Wakeup Message)]
Dieser Befehl gestattet das Überschreiben der internen (Grundwerte) Einstellungen für die
Wachhalte Nachricht (manchmal auch als periodische Leerlauf-Nachricht bezeichnet). Der
Anwender muß drei Kopfbytes (Header, xx yy zz) vorgeben und mindestens ein Datenbyte
(aa). Die aktuelle Version akzeptiert ein, zwei oder drei Datenbytes, wie oben gezeigt. Das
Prüfsummen-Byte muß nicht übergeben werden, das erzeugt der ELM327® automatisch. Die
so erzeugte Nachricht wird periodisch mit der vom AT SW Befehl gesetzten Datenrate
gesendet. Der ELM327® gibt niemals Antworten auf diesen Sendebefehl aus. Die mit diesem
Befehl zugewiesenen Byte-Werte beeinflussen nicht andere Werte von anderen Befehlen (AT
SH) und haben keinen Effekt auf die Übertragung normaler OBD Abfrage-Nachrichten.
WS [Warm Start]
Dieser Befehl verursacht einen kompletten Software-Reset des ELM327® ähnlich dem ATZ
Befehl, aber ohne den Lampentest der LED’s. Anwender können dies zum schnellen
Zurücksetzen verwenden.
Z [Setzt alles zurück]
Dieser Befehl verursacht einen kompletten Reset des Chips, als ob die Spannungsversorgung
ab und wieder angeschaltet würde. Alle Einstellung kehren zu ihren Grundwerten (Default)
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 24
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
zurück und der Chip wird in den Leerlaufmodus versetzt, in dem er auf Zeichen vom RS232
Bus wartet.
@1 [zeigt die Hersteller-Zeichen]
Dieser Befehl zeigt die Hersteller-eigenen Identifikationszeichen, die eine bestimmte Version
eines Herstellers bezeichnen.
Die folgende Übersicht zeigt alle Befehle des aktuellen ELM327®. Zum besseren Verständnis
wurden diese in vier Gruppen angeordnet, ohne eine Bedeutung zu haben, wie diese genutzt
werden sollten – es dient nur zur Klarheit. Die Zusammenstellung mag beim Experimentieren
mit dem IC nützlich sein.
Übersicht ELM327® AT Befehle
Allgemein:
BRD hh – versuche Baudraten Divisor hh
BRT hh – setze BRD Timeout
D – setzt alles auf Default-Werte
E1/0 – Echo Ein/Aus
I – zeigt die Identifikations-Zeichen
L1/0 – Zeilenschaltung Ein/Aus
WS – Warmstart
Z – setzt alles zurück
<CR> - wiederholt letzten Befehl
J1850 spezifisch:
IFR 0/1/2 – IFR aus, auto oder ein
IFR H/S – IFR-Wert von Header oder Quelle
ISO spezifisch:
IB 10 – setzt ISO Baudrate auf 10400
IB 96 – setzt ISO Baudrate auf 9600
IIA hh – setzt ISO (slow) Init Adresse auf hh
KW0/1 – Key Word Prüfung aus oder ein
SW hh – setzt Wachhaltezeit (hh * 20 ms)
WM xx yy zz aa [bb | bb cc] - setzt
Wachhalte-Nachricht
CAN spezifisch:
CAF1/0 – CAN autom. Formatierung Ein/Aus
CF hhh – setzt CAN ID Filter auf hhh
CF hh hh hh hh – setze CAN ID Filter
CFC1/0 – CAN Flußkontrolle Ein/Aus
CM hhh – setzt CAN ID Maske auf hhh
CM hh hh hh hh – setzt CAN ID Maske
CP hh – setzt CAN Priorität
CS – zeigt CAN Status
DM1 – (J1939) Monitor für DM1 Nachrichten
FC SM h - setzt Fluß-Kontroll Modus auf h
FC SH hhh – setzt Fluß-Kontroll Header auf hhh FC SH hh hh hh hh – setzt Fluß-Kontroll
FC SD [1 bis 5 DatenBytes] – setzt Fluß-Kontroll
Header auf hhhhhhhh
Daten auf […]
OBD allgemein
AL – erlaubt >7 Byte Nachrichten
AT0/1/2 – adaptives Timing aus, ein, restr.
BI – Beipaß Initialisierung
H1/0 – Header Ein/Aus
MA – Monitor Alles
MT hh – Monitor Transmitter
PC – Protokoll Ende
SH xyz – Setze Header
SP h – Setze Protokoll
ST hh – Setze Timeout
SR hh – Setze Receive Adresse hh
TP Ah – Versuche Protokoll
AR – automatisch Receive
BD – OBD Speicher Dump
DP – zeigt akt. Protokoll
DPN – zeigt akt. Protokoll numerisch
M1/0 – Memory Ein/Aus
MR hh – Monitor Receiver
NL – Normal lange Nachrichten
R1/0 – Antworten Ein/Aus
SH xx yy zz – Setze Header
SP Ah – Setze Protokoll
TP h – Versuche Protokoll
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 25
________________________________________________________________
Verschiedenes
CV dddd – Kalibriere Spannung
RV – Lese Spannung
PP xx ON/OFF – aktiviere/deaktiviere programmierbaren Parameter xx
PP FF ON/OFF – aktiviere/deaktiviere alle programmierbaren Parameter
PP xx SV yy – setze Wert yy für programmierbaren Parameter xx
PPS – Ausgabe PP Übersicht
@1 – Zeige Hersteller Zeichen
Batterie-Spannung lesen
Bevor zum OBD-Teil gekommen wird, soll an einem Beispiel gezeigt werden, wie ATBefehle benutzt werden. Es wird vorausgesetzt, daß der ElmCan® Bausatz fertig
zusammengebaut ist oder ein Fertiggerät zur Verfügung steht. Die Schaltung besitzt einen
Anschluß zum Lesen der Fahrzeug-Batteriespannung, dessen Funktion Sie nützlich finden
werden.
Beim Blick in die AT-Befehlsliste finden Sie einen RV Befehl (Read Voltage). Diesen Befehl
müssen Sie verwenden. Stellen Sie zunächst sicher, daß das Prompt-Zeichen vorhanden ist
(das ist das “>“ Zeichen). Geben Sie dann “AT“ gefolgt von “RV“ ein und drücken Sie Enter:
>at rv
12.6V
>
Beachten Sie, daß wir hier keine Großbuchstaben zur Eingabe verwendet haben. Dem
ELM327® ist es egal, ob Sie Groß- oder Kleinbuchstaben oder gar eine Mischung daraus
verwenden. Außerdem haben wir hier ein Leerzeichen zwischen AT und RV benutzt, das nur
zur besseren Lesbarkeit dient. Dem ELM327® ist es auch egal, ob und wieviele Leerzeichen
zwischen AT und RV benutzt werden.
In der Werkseinstellung hat der ELM327® eine Genauigkeit von etwa 2%. Das ist meist
ausreichend. Soll die Genauigkeit höher sein, ist eine Kalibrier-Möglichkeit mit dem
Spannungs-Kalibrier-Befehl gegeben.
Zum Ändern der internen Kalibier-Konstante, muß die augenblickliche Batterie-Spannung
genauer bekannt sein, als sie der ELM327® anzeigt. Mit vielen qualifizierten DigitalVoltmetern kann das erreicht werden., jedoch sollte die Genauigkeit verifiziert werden, bevor
irgendwelche Änderungen vorgenommen werden. Vielleicht zeigt also Ihr angeschlossenes
Multimeter 12,47 Volt an und Sie möchten, daß der ELM327® das auch anzeigt. Kalibrieren
Sie daher einfach auf diese Spannung mit dem CV Befehl:
>at cv 1247
OK
>
An diesem Punkt wird der interne Wert geändert und der ELM327® weiß, daß die derzeitige
aktuelle Eingangsspannung 12,47 V ist. Der Dezimalpunkt (US-Notation) soll beim CV
Befehl nicht mit eingegeben werden, da der IC weiß, daß er zwischen dem 2. und 3. Digit sein
muß. Zur Überprüfung der Änderung lesen Sie die Spannung nochmals:
>at rv
12.5V
>
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 26
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Der ELM327® rundet die Messung immer auf eine Dezimalstelle, so daß 12,47 V tatsächlich
als 12,5 V angezeigt werden. Beachten Sie, daß die zweite Dezimalstelle immer intern und zu
Berechnungen verwendet wird, aber niemals angezeigt wird.
Der ELM327® kann mit jeder verfügbaren Referenzspannung kalibriert werden, beachten Sie
aber, daß der CV Befehl immer 4 Zeichen für die eingegebene Spannung erwartet. Wird eine
9 Volt Batterie als Referenz verwendet und der Wert ist aktuell 9,32 Volt, dann muß eine
führende Null zur Kalibrierung des IC verwendet werden:
>at cv 0932
OK
>
Andere AT-Befehle werden in der gleichen Art verwendet. Geben Sie einfach die Buchstaben
A und T ein, gefolgt von dem gewünschten Befehl und den eventuell zu diesem Befehl
erforderlichen Parameter und drücken Sie dann Enter. Leerzeichen können, so oft Sie zur
Lesbarkeit dienen sollen, eingegeben werden, da sie vom ELM327® nicht beachtet werden.
Bus Initialisierung
Der ELM327® sucht sich im Auto-Modus automatisch unter 9 möglichen Protokollen bzw.
Protokollvarianten das im Fahrzeug vorhandene Protokoll aus. Die Reihenfolge der
abgefragten Protokolle entspricht der unter dem AT Befehl SP gezeigten Liste, deren
Anfangspunkt entsprechend der augenblicklichen Konfiguration des Chips unterschiedlich
sein kann. Es ist ebenfalls möglich, ein Protokoll gezielt auszuwählen.
Standards wie ISO 9141-2 und ISO 14230-4 (KWP2000) benötigen eine Initialisierung des
Fahrzeug-Bus bevor eine Kommunikation erfolgen kann. ISO 9141 hat hierzu eine kurze
Phase (2 bis 3 Sekunden mit 5 Baud), während ISO 14230 dieses und eine schnellere
Alternative bietet. In jedem Fall muß die Kommunikation mindestens alle fünf Sekunden
stattfinden, um den Bus „am Leben“ zu erhalten.
Der ELM327® übernimmt diese Bus-Initialisierung und diese „Lebenserhaltung“ automatisch
ohne Zutun des Anwenders. Der ELM327® unternimmt die Bus-Initialisierung erst bei der
Sendung des ersten OBD-Befehls in sequentieller Reihenfolge der Liste. Während dieses
automatischen Initialisierungs-Prozesses erscheint folgende Meldung:
SEARCHING
Wenn eine der Initialisierungsmethoden erfolgreich war, erfolgt die Antwort "OK". Wenn
dies aber fehlschlägt, erscheint nur eine Fehlermeldung. Häufig vorkommender Fehler ist es,
die Zündung nicht einzuschalten, bevor versucht wird, mit dem Fahrzeug „zu sprechen“.
Einmal initialisiert, hält der ELM327® den Bus am Leben, ohne daß der Anwender eingreifen
muß. An den installierten LED kann alle fünf Sekunden bei einem ISO-Protokoll eine
„Dummy“-Nachricht erkannt werden, die den Bus am Leben erhält, wenn sonst keine
weiteren Nachrichten gesendet werden. Da der RS232-Eingang die höchste Priorität innerhalb
des ELM327® hat, ist es vorstellbar, daß eine Kombination fehlerhafter Eingaben den Chip
einen Wachruf verpassen lassen, aber dies ist sehr unwahrscheinlich.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 27
________________________________________________________________
In der Grundeinstellung sendet der ELM327® alle 3 Sekunden eine Wachhalte-Nachricht,
aber dies kann mit dem AT SW Befehl eingestellt werden. Der Inhalt der WachhalteNachricht kann ebenfalls mit dem AT WM Befehl eingestellt werden. Normalerweise muß
der Anwender aber keine dieser Einstellungen vornehmen, da die Grundeinstellungen mit fast
allen Systemen arbeiten.
Ist die Auto Option ausgeschaltet, sehen Sie eine Nachricht ähnlich dieser:
BUS INIT: …
Die drei Punkte erscheinen nur bei der langsamen Initialisierung, bei der schnellen
Initialisierung gibt es keine drei Punkte (KWP2000 slow oder KWP2000 fast):
Die untere Skizze zeigt einen Überblick über den automatischen Initialisierungs-Prozeß unter
der Annahme, daß die automatische Initialisierung ohne festgelegten Startpunkt aus einer
vorherigen Initialisierung mit Memory-Funktion stattfindet. Abhängig von der Konfiguration
durch AT-Befehle des ELM327® oder seiner letzten Verwendung kann der Eintrittspunkt an
anderer Stelle liegen.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 28
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Anforderung zur
Bus-Initialisierung
Versuch mit PWM
Initialisierung
Versuch mit langsamer
ISO Initialisierung
ja
Antwo
rt
erhalte
KWP
oder
ISO ?
Bus initialisiert,
weiter mit Befehlen
nein
Versuch mit VPW
Initialisierung
nein
Versuch mit schneller
ISO Initialisierung
ja
positive
Antwort
erhalten
ja
ja
Keep-Alive Header
setzen
ja
positive
Antwort
erhalten
positi
ve
Antwo
Bus initialisiert,
weiter mit Befehlen
nein
nein
Bus initialisiert,
weiter mit Befehlen
Versuch mit CAN
Initialisierung 500 kB
ja
positive
Antwort
erhalten
11 Bit
ID
oder
Bus initialisiert,
weiter mit Befehlen
nein
Bus initialisiert,
weiter mit Befehlen
Versuch mit CAN
Initialisierung 250 kB
ja
positive
Antwort
erhalten
11 Bit
ID
oder
Bus initialisiert,
weiter mit Befehlen
nein
Bus initialisiert,
weiter mit Befehlen
Ausgabe: ERROR
Initialisierung des Bus
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 29
________________________________________________________________
Wachhalte-Nachrichten
Nach dem Aufbau einer ISO 9141 oder ISO 14230 Verbindung müssen periodisch Daten zur
Aufrechterhaltung der Verbindung gesandt werden. Werden die üblichen Abfragen und
Antworten gesendet, ist das ausreichend, aber gelegentlich müssen Nachrichten versendet
werden, um den Abbruch der Verbindung durch fehlenden Datenverkehr innerhalb einer
Zeitspanne zu vermeiden.
Diese periodischen Nachrichten nennen wir Wachhalte-Nachrichten. Sie erhalten die
Verbindung am Leben und verhindern den Rückfall in den Leerlauf- oder Schlaf-Modus.
Mitunter findet man auch die Bezeichnung Leerlauf-Nachrichten. Der ELM327® erzeugt und
sendet diese Nachrichten automatisch, wenn sonst kein Datenverkehr erkennbar ist. Sie
müssen sich daher um nichts kümmern. Besteht eine Verbindung, können Sie aber am
periodischen Flackern der LEDs sehen, daß der ELM327® diese Nachrichten sendet. Wollen
Sie den Inhalt dieser Nachrichten sehen, vollziehen Sie einen Buffer Dump. Beachten Sie, daß
der ELM327® niemals die Antworten auf diese Wachhalte-Nachrichten anzeigt.
Die Normen bestimmen, daß bei keiner Aktivität innerhalb von 5 Sekunden die Verbindung
geschlossen werden kann. Um dies zu verhindern, sendet der ELM327® in der
Grundeinstellung eine Wachhalte-Nachricht nach 3 Sekunden ohne Bus-Aktivität. Dieses
Zeitintervall ist programmierbar, falls etwas anderes gewünscht wird. Siehe dazu unter dem
AT SW Befehl.
Wie beim ELM323 erlaubt der ELM327® dem Anwender den Inhalt der zu sendenden
Wachhalte-Nachricht zu ändern. Dazu senden Sie dem ELM327® einfach mit dem AT WM
Befehl die zu ändernde Nachricht. Sollen z.B. die Daten-Bytes 44 55 mit den Kopf-Bytes
gesetzt auf 11 22 33 gesendet werden:
>AT WM 11 22 33 44 55
Von da ab enthält jede vom ELM327® gesendete Wachhalte-Nachricht den Inhalt wie oben.
Sie können dies so oft machen wie gewünscht. Es muß nur immer die komplette Nachricht
übergeben werden, das heißt, drei Kopf-Bytes gefolgt von einem, zwei oder drei Daten-Bytes.
Sie brauchen sich nicht um die Prüfsumme zu kümmern, da diese automatisch für Sie
angehängt wird.
OBD-Befehle
Wenn die am RS232-Bus empfangenen Bytes nicht mit den Buchstaben „A“ und „T“
beginnen, wird angenommen, daß es sich um Befehle für den OBD-Bus handelt. Die Bytes
werden dann getestet, um sicherzustellen, daß es sich um richtige Paare hexadezimaler Digits
handelt, und die hexadezimalen Digits werden zum Senden zu einzelnen Bytes
zusammengestellt. Man erinnere sich jedoch, daß keine Prüfung auf Richtigkeit der OBDBefehle erfolgt - Daten werden so weitergesandt, wie sie empfangen wurden.
OBD-Befehle werden tatsächlich als Datenpaket zum Fahrzeug gesandt. Die Standards
verlangen, daß jede Nachricht drei Kopf-Bytes und eine Fehler-Checksumme bzw. bei CANProtokollen einen spezifischen Header enthält. Der ELM327® fügt diese Header und
Prüfsummen automatisch ohne Zutun des Anwenders ein. Diese Standard-Werte für die Kopf-
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 30
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Bytes (Header-Bytes) sind in den meisten Fällen ausreichend, können aber geändert werden
(siehe Abschnitt über Fortgeschrittene Datenaufnahme).
Um die Zusatz-Bytes einer vom Fahrzeug empfangenen Nachricht zu sehen, kann der interne
ATH1 Befehl verwendet werden. Gelegentlich haben Fahrzeuge mehr als ein Modul, das auf
Anfragen antwortet, daher ist es nützlich zu sehen, welches Modul geantwortet hat. Dazu
schaltet man die Anzeige von Zusatz-Bytes ein und bestimmt das dritte Byte der Antwort.
Dies ist die Adresse des Absenders.
Die meisten OBD-Befehle für das Fahrzeug haben eine Länge von ein oder zwei Bytes, aber
einige können drei oder mehr Bytes lang sein. Der ELM327® kann sieben Datenbytes senden
entsprechend 14 hexadezimalen Digits, was nach den Standards der maximal erlaubten Zahl
entspricht. Der ELM327® kann aber jetzt auch bei Verwendung des AT AL-Befehls 8
Datenbytes senden und eine unbegrenzte Byte-Anzahl empfangen. Versuche, eine ungerade
Anzahl von Digits oder zu viele zu senden, führen zu einem Syntax-Fehler - der gesamte
Befehl wird verworfen und ein einzelnes Fragezeichen angezeigt.
Für den gesamten Datenaustausch mit dem ELM327® werden hexadezimale Digits
verwendet, da dieses Datenformat in den relevanten SAE und ISO Standards benutzt wird. Es
ist konsistent zu den Modus Abfragelisten und ist das meist benutzte Format zur Darstellung
der Ergebnisse. Mit etwas Praxis ist es nicht sehr schwer, mit Hex-Werten umzugehen, aber
viele möchten eine Umrechnungstabelle oder einen Rechner neben sich liegen haben. Alle
Anwender müssen jedoch die Werte in irgendeiner Art und Weise bearbeiten (Bytes
zusammenziehen und durch 4 teilen, um U/min zu bekommen; durch 2 teilen, um Grad
Zündvoreilung zu bekommen usw.), so daß eine Software hilfreich ist, die all das übernimmt.
Hexadezimale Umrechnung
Dez.
Hex.
Dez.
0
00
10
1
01
11
2
02
12
3
03
13
4
04
14
5
05
15
6
06
16
7
07
17
8
08
18
9
09
19
usw.
Hex.
0A
0B
0C
0D
0E
0F
10
11
12
13
Dez.
20
21
22
23
24
25
26
27
28
29
Hex.
14
15
16
17
18
19
1A
1B
1C
1D
Dez.
30
31
32
33
34
35
36
37
38
39
Hex.
1E
1F
20
21
22
23
24
25
26
27
Als Beispiel zum Senden eines Befehls zum Fahrzeug, nehmen wir an, daß A6 (oder dezimal
166) der gewünschte Befehl ist. In diesem Fall tippt der Anwender den Buchstaben A, dann
die Zahl 6 und drückt dann die Enter-Taste CR. Diese drei Zeichen (A6+CR)würden über den
RS232-Bus zum ELM327® gesendet werden. Der ELM327® speichert die Zeichen, sobald sie
empfangen wurden, und wenn das dritte Zeichen (CR) empfangen wird, prüft er die beiden
anderen. Er stellt fest, daß es beide normale Hex-Digits sind, und konvertiert sie zu einem
Byte-Wert (der dezimale Wert ist 166). Es werden drei Kopf-Bytes und ein Prüfsummen-Byte
hinzugefügt und insgesamt fünf Bytes würden zum Fahrzeug gesendet werden (bei CAN
unter Verwendung des 11 oder 29 Bit ID). Beachten Sie, daß das CR-Zeichen nur ein Signal
für den ELM327® ist und niemals zum Fahrzeug gesendet wird.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 31
________________________________________________________________
Nach Sendung eines Befehls hört der ELM327® den OBD-Bus auf für ihn bestimmte
Antworten ab. Wenn eine Nachrichten-Adresse zutrifft, werden die empfangenen Bytes zu
dem entsprechenden hexadezimalen Paar von ASCII-Zeichen konvertiert und über den
RS232-Port an den Anwender oder die Software geschickt. Nachrichten ohne zutreffende
Adresse werden ignoriert, sind aber mit dem AT BD Befehl zur Ansicht verfügbar. Statt
Kontrollzeichen zu senden, die von den meisten Terminals nicht lesbar sind, werden die
Digits als Zahlen und Buchstaben gesendet (z.B. das Hex-Digit „A“ wird als dezimaler Wert
65 und nicht als 10 gesendet).
Der ELM327® wartet auf an ihn adressierte Nachrichten, bis in der mit dem Befehl AT ST
gesetzten Zeit keine Antwort erfolgt. Solange Nachrichten empfangen werden, wird dieser
Timer zurückgesetzt. Beachten Sie, daß der IC immer irgendwie antwortet, selbst wenn mit
„NO DATA“ geantwortet wird, daß keine an ihn adressierten Daten vorliegen.
Mit dem Fahrzeug „sprechen“
Der ELM327® kann nicht direkt mit dem Fahrzeug verbunden werden, sondern benötigt eine
Schaltung, wie das im Abschnitt „Applikation“ beschriebene ElmCan®. Ist eine derartige
Schaltung vorhanden, wird lediglich ein Terminalprogramm erforderlich, um Bytes mit dem
ELM327® zum Fahrzeug zu senden oder zu empfangen.
Die SAE Standards bestimmen, daß jede zum Fahrzeug gesendete Byte-Gruppe einem
bestimmten Format entsprechen muß. Das erste Byte (genannt „Mode“) beschreibt immer den
abgefragten Datentyp, während das zweite, dritte usw. die aktuelle Information bezeichnet
(genannt „Parameter Identifikation“ oder kurz PID Zahl). Die Modes und PIDs sind detailliert
in den SAE Normen J1979 (ISO 15031-5) beschrieben und können um weitere vom
Fahrzeug-Hersteller spezifierte PIDs ergänzt werden.
Normalerweise ist man nur mit den neun Diagnose Test Modes konfrontiert, die in J1979
beschrieben sind, obwohl es Erweiterungsmöglichkeiten gibt, die ebenfalls in den
fortgeschriebenen Normen festgelegt sind.. Beachten Sie, daß nicht alle diese Modes von
jedem Fahrzeug unterstützt werden müssen, sie sind es oft nicht. Die neun Modes sind:
01 : zeige aktuelle Daten
02 : zeige Freeze Frame Daten
03 : zeige Diagnose Fehlercodes
04 : lösche Fehlercodes und gespeicherte Werte
05 : Test Resultate, Lambda-Sensoren
06 : Test Resultate, nicht kontinuierlich überwacht
07 : zeige anstehende Fehlercodes
08 : spezieller Kontroll Mode
09 : Abfrage von Fahrzeug-Informationen
Die in Mode 02 genannten „Freeze Frame“ Daten, sind Daten, die im Fahrzeug-Modul
gespeichert werden, wenn ein Fehler auftritt und ebenfalls ein Fehlercode gespeichert wurde.
Freeze Frame Daten sind also ein Schnappschuß der Situation beim Fehlereintritt.
Innerhalb jedes Mode ist die PID 00 normalerweise dafür reserviert, die in dem Mode
unterstützten PIDs anzuzeigen. Mode 01, PID 00 muß von allen Fahrzeugen unterstützt
werden und kann wie folgt abgefragt werden:
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 32
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Stellen Sie sicher, daß der ELM327® ordnungsgemäß mit dem Fahrzeug verbunden ist und
eingeschaltet ist. Die meisten Fahrzeuge antworten nicht, wenn die Zündung nicht
eingeschaltet ist.. Also schalten Sie die Zündung ein, starten aber den Motor nicht. Geben Sie
am Prompt den Mode 01 PID 00 Befehl ein:
>01 00
Wurde der Bus zum ersten Mal angesprochen, erscheint die Initialisierungs-Nachricht
SEARCHING…
während der ELM327® das gültige Protokoll des Fahrzeugs automatisch sucht,
gefolgt von der Antwort, die wie folgt aussehen kann:
41 00 BE 1F B8 10
Die 41 00 bedeutet eine Antwort (4) von einer Mode (1) Frage mit PID 00 (eine Mode 2, PID
00 Frage wird mit 42 00 beantwortet usw.). Die nächsten vier Bytes (BE, 1F, B8 und 10)
repräsentieren die abgefragten Daten, in diesem Fall ein Bitmuster mit den unterstützten PIDs
in diesem Mode (1 = unterstützt, 0 = nicht unterstützt). Obwohl diese Information für den
gelegentlichen Anwender wenig aussagt, dient es doch dem Nachweis, daß die Verbindung
zum Fahrzeug arbeitet und der Fahrzeug-Datenbus für das angeschlossene Diagnosesystem
initialisiert wurde.
Ein weiteres Beispiel fragt die aktuelle Kühlwassertemperatur des Motors (Engine Coolant
Temperature, ECT) ab. Das ist PID 05 im Mode 01 und kann wie folgt erfragt werden:
>01 05
Die Antwort wäre:
41 05 7B
Dies zeigt eine Mode 1 Antwort (41) von PID 05 mit dem Wert 7B. Hexadezimal 7B
konvertiert zu Dezimal ergibt 7 x 16 + 11 = 123. Das ist die aktuelle Temperatur in Grad
Celsius mit einem Null Offset-Wert (40), um Temperaturen unterhalb Null Grad darstellen zu
können. Zur Konvertierung muß also 40 von dem erhaltenen Wert abgezogen werden, dann
ist die Temperatur 123 - 40 = 83 °C.
Ein anderes Beispiel zeigt eine Abfrage über den Fahrzeug-Konformitätsstatus, den das
Fahrzeug erfüllt. Das ist PID 1C im Mode 01, so daß am Prompt einzugeben ist:
>01 1C
Eine typische Antwort wäre:
41 1C 01
Der Rückgabe-Wert (01) zeigt, daß das Fahrzeug den OBDII Standards (nach ARB
Kalifornien) entspricht. Die z.Zt. definierten Antworten sind:
01 : OBDII (California ARB)
02 : OBD (Federal EPA, amerikan. Umweltbehörde)
03 : OBD und OBDII
04 : OBD I
05 : nicht geeignet, den OBD-Anforderungen zu entsprechen
06 : EOBD (Europa)
Ein letztes Beispiel zeigt die Abfrage der Motor-Umdrehungen (der Motor ist gestartet und
läuft). Das ist PID 0C im Mode 01, so daß die Eingabe am Prompt ist:
>01 0C
Eine typische Antwort:
41 0C 1A F8
Der aktuell zurückgegebene Wert (1A F8) ist ein zwei Byte Wert, der in einen dezimalen
Wert konvertiert werden muß, um verwendbar zu sein. Konvertiert ergibt das 6904, was für
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 33
________________________________________________________________
die Drehzahl ziemlich hoch erscheint. Grund ist, die Drehzahl wird in Anteilen von ¼
Drehzahl übertragen. Sie muß daher durch 4 geteilt werden, so daß das Ergebnis (6904 / 4 =
1726) plausibel erscheint.
Einige Modes können Antworten über mehrere Zeilen hervorrufen, so z.B. 09, das, wenn der
Mode unterstützt wird, die Fahrgestellnummer anzeigt. Der ELM327® versucht in diesen
Fällen alle Antworten darzustellen, solange er ausreichend Zeit dafür hat. Es sind Situationen
denkbar, in denen das Fahrzeug zu schnell antwortet und Zeilen verloren gehen können.
Näheres unter Mehrzeilen-Antworten.
Dies zeigt hoffentlich, wie typische Anfragen vonstatten gehen. Es ist nicht als Beschreibung
aller möglichen Modes und PIDs gedacht - diese Informationen können vom SAE
(http://www.sae.org), vom Fahrzeug-Hersteller, vom ISO (http://iso.org) oder von diversen anderen
Quellen im Internet erhalten werden.
Mehrzeilige Antworten
Gelegentlich muß ein Fahrzeug mit mehr Informationen antworten, als in einer einzigen
Nachricht enthalten sein können. In diesen Fällen antwortet es mit mehreren Zeilen, die zu
einer vollständigen Nachricht zusammengefaßt werden müssen.
Ein Beispiel solch einer Abfrage ist die Fahrgestell-Nummer (Mode 09, PID 02). Das ist oft
eine mehrzeilige Antwort, die zusammengefaßt werden muß. In solchen Situationen müssen
Sie aufpassen, daß alle Antworten erhalten wurden und in der richtigen Reihenfolge
vorliegen, bevor die komplette Übertragung angenommen wird. Die aktuelle Antwort hat
üblicherweise ein Byte, das die Datensequenz anzeigt und dabei hilft. Hier ist ein Beispiel
eines typischen SAE J1850 Fahrzeugs:
>0902
49 02 01 00 00 00 31
49 02 02 44 34 47 50
49 02 03 30 30 52 35
49 02 04 35 42 31 32
49 02 05 33 34 35 36
Beachten Sie, daß OBD2-kompatibele Fahrzeuge nicht unbedingt diese Informationen
anzeigen müssen. Viele ältere Fahrzeuge tun es nicht, aber neuere Fahrzeuge tun es in der
Regel. Falls Ihr Fahrzeug diese Abfrage nicht unterstützt, wird lediglich „NO DATA“
angezeigt.
Die ersten zwei Bytes (49 und 02) in jeder Zeile der obigen Antwort zeigen keine FahrzeugInformationen. Sie bedeuten lediglich, daß dies eine Antwort auf eine 09 02 Abfrage ist. Das
nächste Byte in jeder Zeile zeigt die Reihenfolge, in der die Daten zusammengefaßt werden
müssen. Dies ergibt also unter Weglassung der ersten 00 Bytes:
31 44 34 47 50 30 30 52 35 35 42 31 32 33 34 35 36
Diese Hex-Digits konvertiert mit einer ASCII-Tabelle ergibt die folgende Fahrgestellnummer:
1D4GP00R55B123456
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 34
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
CAN-Systeme zeigen diese Information in einer leicht abgewandelten Art an. Hier ist eine
typische Antwort von einem CAN-Fahrzeug:
>0902
014
0: 49 02 01 31 44 34
1: 47 50 30 30 52 35 35
2: 42 31 32 33 34 35 36
CAN-Formatierung blieb eingeschaltet (die Grundeinstellung), so daß die Daten einfacher zu
lesen sind. Bei eingeschalteter Formatierung werden die Reihenfolge-Nummern mit einem
Doppelpunkt (:) gezeigt, wie hier 0:, 1:, 2: usw. CAN-Systeme fügen diese Nummern hinzu,
die von 0 bis F reichen und sich dann wiederholen, um das Zusammenfügen der Daten
ähnlich wie bei J1850 zu erleichtern.
Die erste Zeile dieser Antwort gibt an, daß 014 Bytes an Informationen folgen. Hexadezimal
014 ist 20 dezimal, was mit den 6 + 7 + 7 Bytes in den drei Zeilen übereinstimmt.
Fahrgestellnummern haben in der Regel 17 Zeichen, wie erhalten wir diese also aus 20
Digits?
Die zweite gezeigte Zeile beginnt mit den bekannten 49 02 als Antwort auf eine 09 02
Abfrage. Diese sind also nicht Teil der Fahrgestellnummer. CAN fügt gelegentlich ein drittes
Byte der Antwort an. Dieses Byte (01) zeigt die Anzahl der Daten in der Antwort. Hier also 1,
da die Fahrgestellnummer nur einmal vorhanden ist und daher die Daten nur einmal
vorkommen. Dies dritte Byte kann ignoriert werden. Die übrig gebliebenen 17 Datenbytes
sind also die Fahrgestellnummer, die der Einfachheit halber identisch zu dem ersten Beispiel
ist. Was bleibt, ist die Konvertierung in ASCII, um sie ebenso lesen zu können wie zuvor.
Ein letztes Beispiel zeigt eine andere Art mehrzeiliger Antworten, die auftreten kann, wenn
zwei oder mehr Steuergeräte gleichzeitig auf eine Abfrage antworten. Im Folgenden ist eine
typische Antwort auf eine 01 00 Abfrage:
>01 00
41 00 BE 3E B8 11
41 00 80 10 80 00
Das ist ohne ein Paar mehr Informationen schwierig zu entziffern. Wir müssen die KopfBytes (Header) einschalten, um zu sehen, wer hier sendet:
>at h1
OK
>01 00
48 6B 10 41 00 BE 3E B8 11 FA
48 6B 18 41 00 80 10 80 00 C0
Wenn wir jetzt den Header analysieren, sehen wir, daß das dritte Byte mit 10 das MotorSteuergerät zeigt und auch in der zweiten Zeile mit 18 das Getriebe-Steuergerät antwortet.
Dieser Antwort-Typ tritt häufig auf und man sollte darauf vorbereitet sein.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 35
________________________________________________________________
In einem letzten Beispiel wird gezeigt, wie ähnliche Nachrichten gelegentlich in einem CAN
System ‚gemixt’ sein können. Wir fragen nach der Kalibrier-ID (09 04) des Fahrzeuges und
bekommen folgende Antwort:
>09 04
013
0: 49 04 01 35 36 30
1: 32 38 39 34 39 41 43
013
0: 49 04 01 35 36 30
2: 00 00 00 00 00 00 31
1: 32 38 39 35 34 41 43
2: 00 00 00 00 00 00 00
Das ist verwirrend. Die erste Gruppe (die 013, 0:, 1:) scheint Sinn zu machen, aber die
folgende ist konfus. Warum sind dort zwei Segmente Nummer 2? Zu welcher ECU gehören
Sie? Die einzige Möglichkeit, dies herauszufinden, ist, die Abfrage mit eingeschalteten
Kopfbytes zu wiederholen.
>AT H1
OK
>09 04
7E8 10 13 49 04 01 35 36 30
7E9 10 13 49 04 01 35 36 30
7E8 21 32 38 39 34 39 41 43
7E8 22 00 00 00 00 00 00 31
7E9 21 32 38 39 35 34 41 43
7E9 22 00 00 00 00 00 00 00
Diesmal ist die Reihenfolge etwas anders (das ist ein echtes Beispiel), aber es gibt wieder 6
Antwortzeilen wie zuvor.
Beim Betrachten der ersten Digits stellt man fest, daß einige mit 7E8, andere mit 7E9
anfangen. Das sind die speziellen CAN IDs, die die ECU#1 und ECU#2 repräsentieren. Das
Einordnen der ECU's ergibt:
7E8 10 13 49 04 01 35 36 30
7E8 21 32 38 39 34 39 41 43
7E8 22 00 00 00 00 00 00 31
und
7E9 10 13 49 04 01 35 36 30
7E9 21 32 38 39 35 34 41 43
7E9 22 00 00 00 00 00 00 00
Damit kann die Nachricht richtig eingeordnet werden. Dazu sehen wir uns das Byte nach den
CAN ID an. Es wird als PCI Byte bezeichnet und wird zur Bezeichnung des folgenden
Datentyps verwendet. In diesem Fall beginnt das PCI Byte entweder mit 1 (für einen ersten
Frame) oder mit 2 (für einen folgenden Frame). Die zweite Hälfte des PCI Bytes zeigt die
Reihenfolge, in der die Information angeordnet ist (d.h. die Segment Nummer). In diesem Fall
sind die Segment Nummern bereits in Reihe, wäre das nicht der Fall, hätten sie geordnet
werden müssen.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 36
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Normalerweise können mehrzeilige Antworten so relativ logisch entziffert werden, aber es ist
etwas Erfahrung nötig. Diese kleine Einführung soll anhand einiger schwieriger Beispiele
geholfen haben. Haben Sie weiterhin Probleme, dann hilft nur der Kauf der Standards und
deren Studium.
Interpretation von Fehlercodes
Die häufigste Verwendung des ELM327® wird im Auslesen von Fehlercodes (Diagnostic
Trouble Code, DTC) bestehen. Dies erfordert mindestens, daß eine Mode 03 Abfrage
gemacht wird. Aber zunächst sollte man feststellen, wie viele Fehlercodes z.Zt. gerade
gespeichert sind. Dazu dient eine Mode 01 PID 01 Abfrage, wie folgt:
>01 01
Eine typische Antwort wäre:
41 01 81 07 65 04
Die 41 01 signalisiert uns die Antwort auf die Abfrage und das erste Datenbyte (81) ist das
Ergebnis, das wir suchen. Eindeutig werden nicht 81 (Hex) bzw. 129 (Dezimal) Fehlercodes
vorhanden sein, wenn das Fahrzeug noch einigermaßen funktioniert. Tatsächlich erfüllt das
Byte eine Doppelfunktion. Das höchstwertige Bit wird benutzt, um anzuzeigen, ob die
Störungslampe (Malfunction Indicator Lamp, MIL oder „Check Engine“) von einem Code der
Module - wenn es mehrere Module gibt - eingeschaltet ist. Die anderen 7 Bits beinhalten die
aktuelle Zahl der gespeicherten Fehlercodes. Um die Zahl der gespeicherten Fehlercodes zu
bestimmen , muß man daher 128 (oder 80 Hex) von der Zahl abziehen, wenn diese größer als
128 ist, anderenfalls kann die Zahl der gespeicherten Codes direkt bestimmt werden.
Die obige Antwort zeigt also an, daß ein Fehlercode gespeichert ist und daß dieser zum
Einschalten der Störungslampe (MIL) geführt hat. Die restlichen Bytes der Antwort geben
Auskunft über die Typen der Tests, die von dem jeweiligen Modul unterstützt werden (siehe
hierzu die entsprechenden Informationen in der Norm SAE J1979). Mit Modulen sind hier die
verschiedenen Steuergeräte gemeint, die in einem Fahrzeug vorhanden sein können. Dies sind
vielleicht neben dem Motorsteuergerät ein ABS-Steuergerät, eines für Airbags oder auch
sonstige.
In diesem Beispiel gab es nur eine Antwortzeile. Wenn jedoch Fehlercodes in mehreren
Modulen gespeichert wären, gäbe es jeweils eine Antwortzeile. Zur Bestimmung des die
Fehlercode-Zahl meldenden Moduls könnte man mit dem Befehl ATH1 die Kopf-Information
einschalten und mit dem dritten Byte der drei Kopf-Bytes die Adresse des Moduls erhalten.
Nach der Bestimmung der Fehlercode-Anzahl ist der nächste Schritt, die aktuellen
Fehlercodes mit einer Mode 03 Abfrage abzufragen:
>03
Eine Antwort könnte sein:
43 01 33 00 00 00 00
Die „43“ in obiger Antwort zeigt lediglich, daß es sich um eine Mode 03 Antwort handelt.
Die anderen 6 Bytes müssen paarweise gelesen werden, um die Fehlercodes zu bestimmen.
Das ergibt somit 0133, 0000 und 0000. Beachten Sie, daß gemäß den SAE Standards die
Antwort mit 00 (Nullen) aufgefüllt werden muß - 0000 ist kein aktueller Fehlercode.
Wie bei der Abfrage der Anzahl der Fehlercodes hat das höchstwertige Bit auch hier eine
besondere Bedeutung. Am einfachsten kann die folgende Tabelle helfen, die Bedeutung des
ersten Bit zu interpretieren:
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 37
________________________________________________________________
1. Digit Ersatz
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
Bedeutung
P0
Antrieb Codes - SAE definiert
P1
Antrieb Codes - Hersteller definiert
P2
Antrieb Codes - SAE definiert
P3
Antrieb Codes - unverbindlich definiert
C0
Chassis Codes - SAE definiert
C1
Chassis Codes - Hersteller definiert
C2
Chassis Codes - Hersteller definiert
C3
Chassis Codes - reserviert für Zukunft
B0
Karosserie Codes - SAE definiert
B1
Karosserie Codes - Hersteller definiert
B2
Karosserie Codes - Hersteller definiert
B3
Karosserie Codes - reserviert für Zukunft
U0
Netzwerk Codes - SAE definiert
U1
Netzwerk Codes - Hersteller definiert
U2
Netzwerk Codes - Hersteller definiert
U3
Netzwerk Codes - reserviert für Zukunft
Tabelle 1 Fehlercode Umwandlung
Das erste Hex-Digit (1. Spalte) wird durch die zwei Zeichen in der zweiten Spalte ersetzt. In
unserem Beispiel (0133) würde also das erste Digit (0) durch P0 zu ersetzen sein und der
angezeigte Wert 0133 wird zu P0133, was der Code für „Lambdasonden-Schaltkreis
langsames Antwortverhalten“ ist. In weiteren Beispielen müßte die Antwort D016 zu U1016
und 1131 zu P1131 interpretiert werden.
Gibt es Codes, die von mehr als einem Modul gespeichert wurden oder gibt es mehr als drei
gespeicherte Codes im gleichen Model, würde die obige Antwort aus mehren Zeilen bestehen.
Wie bereits darauf hingewiesen, muß zur Bestimmung des jeweiligen Moduls eventuell die
Kopf-Information mit dem ATH1 Befehl eingeschaltet werden. Weitere Informationen stehen
im Abschnitt Mehrzeilige Antworten.
Löschen von Fehlercodes
Der ELM327® ist ohne weiteres in der Lage, Diagnose Fehlercodes zurück zu setzen, da dies
nur eines Mode 04 Befehls bedarf. Die Konsequenzen sollten jedoch vor dem Senden dieses
Befehls bedacht werden, da mehr als nur ein Zurücksetzen der Fehlerlampe (MIL) geschieht.
Tatsächlich bewirkt der Mode 04 Befehl nach den OBD-Normen
- das Zurücksetzen der Anzahl der Fehlercodes
- das Löschen aller Fehlercodes
- das Löschen aller gespeicherten Freeze Frame Daten
- das Löschen des Fehlercodes, der Freeze Frame initialisierte
- das Löschen der Lambdasonden Testdaten und
- das Löschen der Mode 06 und 07 Testresultate
- als auch das Löschen temporärer Korrekturwerte-Tabellen
Das Löschen all dieser Informationen ist keine Eigenart des ELM327®; es geschieht auch
jedesmal, wenn irgendein anderes Scantool benutzt wird, um Fehlercodes zu löschen, da von
den Standards so gewollt. Der Datenverlust kann dann dazu führen, daß das Fahrzeug
anschließend für kurze Zeit unbefriedigend läuft, während es sich in den folgenden
Fahrzyklen selbst wieder kalibriert.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 38
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Um das unbeabsichtigte Löschen der gespeicherten Informationen zu verhindern, schreibt die
SAE Spezifikation vor, daß vor dem Absenden eines Mode 04 Befehls eine
Sicherheitsabfrage zu erfolgen hat („Sind Sie sicher?“), da alle Information sofort verloren
sind, wenn der Befehl ausgeführt wurde. Wir erinnern uns, daß der ELM327® nicht den Inhalt
der Nachrichten überprüft, so daß er von sich aus keine Sicherheitsabfrage generieren kann.
Das ist die Aufgabe einer Software, die für den ELM327® geschrieben wurde.
Wie ausgeführt, muß nur ein Mode 04 Befehl zum Löschen der Fehlercodes gegeben werden.
Die Antwort 44 bedeutet, daß die Anfrage ausgeführt wurde, die Informationen gelöscht
wurden und die Fehlerlampe ausgeschaltet wurde. Einige Fahrzeuge können einen besonderen
Status erfordern (z.B. Zündung ein, Motor steht), bevor sie auf einen Mode 04 Befehl
antworten.
Das ist alles über das Löschen von Fehlercodes. Nochmals Vorsicht, um nicht unbeabsichtigt
04 zu senden.
Schnell-Anleitung zum Auslesen von Fehlercodes
Wenn Sie Ihren ELM327® längere Zeit nicht benutzt haben und Sie keine Anwendersoftware
haben, ist es vielleicht nicht notwendig, dieses komplette Datenblatt durchzulesen, wenn die
„Check Engine“ Lampe (MIL) eventuell aufleuchtet. Am Einfachsten ist natürlich die
Verwendung einer Anwendersoftware für ELM327®, die den Umgang vereinfacht. Aber es
geht zur Not auch ohne nur mit einem normalen Terminalprogramm wie z.B. Hyperterminal,
Zterm, ptelnet oder ähnlichem. Verbinden Sie die ELM327® Schaltung mit dem Fahrzeug und
dem PC oder PDA und konfigurieren Sie die serielle Verbindung auf 38.400 Baud, 8
Datenbits, kein Parity-Bit, ein Stopp-Bit und kein Handshaking (Flußkontrolle). Im
Folgenden steht eine schnelle Prozedur, die in solchen Fällen hilfreich sein kann („>“ ist das
ELM327® Prompt Zeichen).
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 39
________________________________________________________________
Verbindung mit HyperTerminal, Zterm
o.ä., 38400 8N1 und kein Handshake
Zündung EIN, aber Motor AUS
>ATZ
zum Rücksetzen des IC und Antwortkontrolle
>0100
zur Antwortkontrolle des Fahrzeugs
>0101
Abfrage wieviel Codes vorhanden
(zweites Digit des dritten Bytes)
>03
Abfrage der Codes
Ignoriere erstes Byte und lese die anderen in
Paaren. Hilfe in der Tabelle.
Fehlerursache beseitigen!
>04
Fehlercodes löschen
Protokoll Auswahl
Die aktuelle Version des ELM327® unterstützt verschiedene unterschiedliche OBDProtokolle. Als Anwender brauchen Sie sich wahrscheinlich nie darum zu kümmern, da die
Werkseinstellung eine automatische Protokollsuche vornimmt. Beim Experimentieren kann
jedoch der Wunsch nach einer Protokoll-Auswahl Möglichkeit bestehen.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 40
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Wenn Sie wissen, daß Ihr Fahrzeug ein bestimmtes Protokoll unterstützt, dann möchten Sie
den ELM327® vielleicht auf dieses Protokoll einstellen. Wissen Sie z.B., daß Ihr Wagen das
SAE J1850 VPW Protokoll hat, dann sehen Sie in der untenstehenden Liste nach und
verwenden den „Set Protocol“ AT Befehl:
>AT SP 2
OK
Von da an ist dies das Standard-Protokoll auch nach erneutem Einschalten des IC oder AT D
Befehls. Zur Überprüfung fragen Sie den ELM327® nach dem aktuellen Protokoll:
>AT DP
SAE J1850 VPW
Was aber, wenn Ihr Freund nun ein Fahrzeug mit ISO 9141-2 Protokoll hat? Wie verwenden
Sie den ELM327® für dieses Protokoll? Es gibt mehrere Möglichkeiten ….
Eine Möglichkeit ist das Ändern der Protokoll-Auswahl auf automatische Suche bei Fehler
mit dem aktuellen Protokoll:
>AT SP A2
OK
>AT DP
AUTO, SAE J1850 VPW
Jetzt beginnt der ELM327 immer mit Protokoll 2, aber beginnt die automatische Suche, wenn
eine Verbindung mit Protokoll 2 fehlschlägt, wie es bei einem Verbindungsversuch mit dem
Wagen Ihres Freundes der Fall sein würde. Beachten Sie aber, daß bei eingeschalteter
Memory-Funktion das neue Protokoll des Wagens Ihres Freundes bei Verbindung zum neuen
Standard wird, aber Ihr Protokoll wieder gefunden wird, wenn Sie mit Ihrem Wagen
verbinden.
Vielleicht haben Sie die Memory-Funktion abgeschaltet (Pin 5 auf 0 Volt gesetzt) und den IC
mit AT SP 2 nur auf das Protokoll Ihres Wagens konfiguriert. Da Sie nicht AT SP A2
verwendet haben, sucht das Interface nicht nach einem anderen Protokoll, wenn Sie z.B. nicht
die Zündung eingeschaltet haben. Beim Scannen Ihres Wagens wäre das von Vorteil. Zum
Verbinden mit dem Wagen Ihres Freundes müßten Sie den „Try Protocol“ Befehl benutzen.
Wissen Sie dieses, geben Sie ein:
>AT TP 3
OK
Ist das nur eine Vermutung, dann geben Sie ein:
>AT TP A3
OK
und es werden die anderen Protokolle geprüft, wenn Protokoll 3 fehlschlägt.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 41
________________________________________________________________
Im Allgemeinen ist es für den Anwender die beste Lösung, die Memory-Funktion
eingeschaltet zu haben (Pin 5 auf 5 Volt gesetzt) und die „Auto“ Option zu wählen (am
Einfachsten mit dem AT SP 0 Befehl). Nach der ersten Protokoll-Suche wird das Protokoll
Ihres Wagens zum Standard und wird so jedesmal als erstes genommen. Wird das Interface
dann bei einem anderen Wagen verwendet, tritt nur eine geringere Verzögerung zur Suche
eines anderen Protokolls auf.
Protokoll
Beschreibung
0
Automatisch
1
SAE J1850 PWM (41,6 kBaud)
2
SAE J1850 VPW (10,4 kBaud)
3
ISO 9141-2 (5 Baud Init)
4
ISO 14230-4 (5 Baud Init)
5
ISO 14230-4 (Fast Init)
6
ISO 15765-4 CAN (11 Bit ID, 500 kBaud)
7
ISO 15765-4 CAN (29 Bit ID, 500 kBaud)
8
ISO 15765-4 CAN (11 Bit ID, 250 kBaud)
9
ISO 15765-4 CAN (29 Bit ID, 250 kBaud)
Tabelle Protokolle
OBD Nachrichten Formate
Bisher wurde nur der Inhalt von OBD-Nachrichten diskutiert und wir haben andere Teile wie
Kopf-Bytes (Header) und Prüfsumme nur gestreift, die alle Datenpakete mehr oder weniger
verwenden.
On-Board-Diagnosesysteme sind sehr flexibel konzipiert, um vielen Geräten eine
Kommunikation untereinander zu ermöglichen. Um Nachrichten zwischen Geräten zu
versenden, müssen Informationen über den Typ der Information, über das Ziel-Gerät und
vielleicht auch über das sendende Quell-Gerät hinzugefügt werden. Zusätzlich ist die
Wichtigkeit der Nachricht von Bedeutung, da die Information über die Kurbelwellen-Position
für einen laufenden Motor sicherlich wichtiger ist als die Anzahl der Fehlercodes. Daher wird
den Nachrichten auch eine Priorität zugewiesen.
Die Informationen über Priorität, den vorgesehenen Empfänger und den Sender werden vom
Empfänger sogar vor dem eigentlichen Inhalt der Nachricht benötigt. Um dies sicherzustellen,
werden diese Informationen in den ersten Kopf-Bytes (Header) von OBD-Systemen
übermittelt. Daher also der Name Kopf-Bytes oder Header. Bild 3 unten zeigt eine typische
OBD Nachrichten Struktur, wie sie von SAE J1850, ISO 9141-2 und ISO 14230-4 Normen
verwendet wird. Sie wenden drei Kopf-Bytes für Priorität, Empfänger (Receiver) und Sender
(Transmitter). Beachten Sie, daß Empfänger auch als „Ziel-Adresse (ZA)“ oder englisch
„Target Address (TA)“ und Sender auch als „Quell-Adresse (QA)“ oder englisch (Source
Address (SA)“ bezeichnet werden.
Ein anderer Gesichtspunkt ist, daß bei jeder gesendeten Nachricht Übertragungsfehler
auftreten können und die erhaltenen Daten dann falsch interpretiert würden. Zur
Fehlererkennung benutzen die verschiedenen Protokolle Prüfungsarten für die erhaltenen
Daten, meist einfach als eine Summen-Berechnung implementiert, d.h., eine Gesamtsumme
wird vom Empfänger beim Verarbeiten einer Nachricht hinzugezogen. Diese wird mit der
vom Sender erhaltenen Gesamtsumme verglichen und wenn sie nicht übereinstimmen, liegt
ein Fehler vor. Diese Gesamtsumme wird Prüfsumme (englisch checksum) oder CRC Byte
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 42
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
genannt und als letztes Byte der Nachricht versendet. Wird ein Fehler gefunden, halten die
verschiedenen Protokolle unterschiedliche Korrektur-Mechanismen vor.
Die OBD Daten-Bytes werden so normalerweise innerhalb der Nachricht eingeschlossen mit
Header Bytes am Anfang und einem Prüfsummen-Byte am Ende. Die J1850, ISO 9141-2 und
ISO 14230-4 Protokolle verwenden grundsätzlich die gleiche Struktur mit 3 Kopf-Bytes, 7
Daten-Bytes und einem Prüfsummen-Byte, wie in Bild 3 unten gezeigt.
Priorität
TA
SA
Empfänger Sender
3 Kopf-Bytes
Bis zu 7 Daten-Bytes Prüfsumme
Bild 3 Eine OBD Nachricht
Das ISO 15765-4 (CAN) Protokoll verwendet eine sehr ähnliche Struktur, der HauptUnterschied besteht nur in der Struktur des Headers. CAN Kopf-Bytes werden nicht als
solche bezeichnet, sondern sie werden stattdessen ID Bits genannt. Der ursprüngliche CAN
Standard definiert 11 ID Bits und die späteren Standards erlauben jetzt 29 insgesamt.
ID Bits (11 oder 29) PCI 7 Daten-Bytes Prüfsumme
Bild 4 Eine CAN OBD Nachricht
Der ELM327® zeigt diese Daten normalerweise nicht an, wenn er nicht mit dem Header EIN
Befehl (AT H1) zur Anzeige gezwungen wird. Damit werden alle 3 Kopf-Bytes und das
einzelne Prüfsummen-Byte bei J1850, ISO 9141 und ISO 14230 Protokollen angezeigt. Bei
den CAN-Protokollen werden jedoch stattdessen die ID Bits (gesendet als hexadezimale
Digits) und das sogenannte PCI Byte am Beginn einer Nachricht angezeigt.
Der ELM327® zeigt bei CAN-Systemen nicht die Prüfsummen-Information an, auch zeigt er
nicht die IFR Bytes bei J1850. Möchten Sie mehr über PCI und IFR erfahren, wird
empfohlen, sich die relevanten Normen von ISO oder SAE zu beschaffen, da dies den hier
vorliegenden Rahmen sprengen würde.
Es wird nie erforderlich sein, die Kopf-Bytes zu konfigurieren oder die Prüfsumme zu
berechnen, da der ELM327® das automatisch für Sie erledigt. Die Kopf-Bytes können jedoch
justiert werden, wenn dies für fortgeschrittene Anwendung wie physikalische Adressierung
erforderlich sein sollte.
IC zurücksetzen
Es kann vorkommen, daß der ELM327® scheinbar außer Kontrolle geraten ist, und der
Wunsch besteht, ihn zurückzusetzen. Bevor wir weiter die Modifizierungen anhand der vielen
möglichen Parameter erklären, ist hier vielleicht ein Einschub über einen Neustart des IC
sinnvoll. Vielleicht sollte der IC gerade den Datenbus überwachen und es fliegen seitenweise
Daten über den Bildschirm, oder der IC antwortet mit NO DATA, obwohl er vorher gearbeitet
hatte. Daher hier ein paar Tips zur Hilfe.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 43
________________________________________________________________
Der ELM327® kann jederzeit von einer Aufgabe mit einem einzigen Tastendruck auf der
Tastatur unterbrochen werden. Teil seiner normalen Arbeitsweise ist die Prüfung auf
erhaltene Zeichen und wenn er solch ein Zeichen erkannt hat, stoppt der IC seine Arbeit bei
nächster Gelegenheit. Das bedeutet meist, daß er das Senden der aktuellen Zeile fortführt,
dann unterbricht, das Prompt-Zeichen sendet und auf Eingaben vom Anwender wartet. Die
Unterbrechung geschieht oft nicht sofort, da zunächst der RS232 Puffer geleert wird und
deren Inhalt zuvor ausgegeben wird. Ebenso muß das Terminal-Programm die Zeichen
zunächst ausgeben, bis der Prompt erscheint.
Sind die Probleme gravierender und man erinnert sich nicht mehr, wodurch sie entstanden
sein könnten (vielleicht wurden Timer justiert, Kopf-Bytes geändert oder mit dem CAN-Filter
experimentiert), kann der IC auf die Grundwerte (Default) zurückgesetzt werden mit dem AT
D Befehl:
>AT D
OK
Das ist oft ausreichend, kann aber gelegentlich unerwartete Resultate bringen. Dies etwa
wenn die Verbindung mit einem bestimmten Protokoll bestand, aber das gespeicherte
Standard-Protokoll ein anderes war. In dem Fall schließt der ELM327® die aktuelle
Verbindung und setzt das Protokoll auf das Default Protokoll, wie ihm geheißen wurde.
Wenn AT D nicht das erwartete Ergebnis bringt, muß zu etwas drastischerem gegriffen
werden wie das komplette Zurücksetzen des IC. Dazu gibt es zwei Wege. Der erste Weg ist
ein kompletter Hardware-Reset wie beim erstmaligen Einschalten (Spannung ein). Es ist der
gleiche Befehl wie bei den älteren ELM IC's:
>AT Z
Es dauert etwa eine Sekunde, bis der IC alles initialisiert und den Test der vier LED mit dem
sequentiellen Aufleuchten durchgeführt hat. Ist das nicht erforderlich, gibt es für den
ELM327® einen Warmstart-Befehl:
>AT WS
Damit wird der gleiche Software Reset wie beim AT Z Befehl durchgeführt, aber nicht der
Lampentest, so daß dieser Befehl etwas schneller abgearbeitet werden kann.
Fortgeschrittene Datenabfrage – Setzen der Kopfbytes
Der ELM327® enthält die besten Funktionen aus den aktuellen Versionen der VorläuferChips ELM320, ELM322 und ELM323. So benutzte die alte Version 1.0 des ELM323 ein
festes Format des Nachrichtenkopfes, so daß nur ein Datentyp (die vorgeschriebenen
emissions-relevanten Informationen) abgefragt werden konnte. Seit der Version 2.0 des
ELM323 konnten die Kopfbytes vom Anwender spezifiziert werden, um den direkten Zugriff
auf einen großen Teil weiterer Daten zu bekommen. Dies ist mit dem ELM327® ebenfalls
möglich. Beachten Sie, daß nur die OBDII Diagnose Codes vorgeschrieben sind, so daß nicht
alle Fahrzeuge diese erweiterten Möglichkeiten unterstützen und einige tun es auch nicht.
Die den meisten Leuten bekannten emissions-relevanten Diagnose Fehlercodes sind im SAE
J1979 Standard (ISO 15031-5) beschrieben und sind eigentlich ein spezieller Fall der vom
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 44
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Standard J2178-4 erlaubten Modi, der den Informationstransfer nach der sogenannten
„funktionalen Adressierungsart“ bereit stellt. Für die obligatorische OBDII Diagnose erfolgen
Abfragen aktuell an die funktionale Adresse 6A (für ISO 9141) oder 33 (für ISO 14230), egal
welcher Prozessor (Steuergerät) im Fahrzeug für diese Funktion zur Beantwortung der
Anfrage zuständig ist. Theoretisch können verschiedene Prozessoren auf eine einzelne
funktionale Abfrage antworten, jeder mit seinem Anteil an eigenen Daten.
Um Informationen über diese OBDII Erfordernisse hinaus zu bekommen, muß entweder die
funktionale oder die physikalische „Adresse“ des ECU bekannt sein. Jedes Steuergerät
antwortet auch auf seine physikalische Adresse. Die physikalische Adresse eines
Steuergerätes ist einmalig in einem Fahrzeug, mit ihr wird jedes Steuergerät identifiziert. Man
kann so spezielle Abfragen für ein bestimmtes Steuergerät durchführen. Zum Erhalt solcher
Abfragen müssen die Daten in den Kopf-Bytes geändert werden.
Nehmen wir z.B. an, daß Sie den für die Motorkühlung zuständigen Prozessor nach der
aktuellen Kühlmitteltemperatur abfragen wollen und Sie wissen nicht seine physikalische
Adresse. Nach Durchsicht des J2178 Standards stellen Sie fest, daß das Kühlmittel die
funktionale Adresse 48 hat. J2178 sagt Ihnen zudem, daß das Prioritäts-Byte für Ihren J1850
VPW Wagen A8 ist. Wenn man dies mit dem Wissen verbindet, daß der ELM327® keine InFrame Antworten unterstützt (er erlaubt nur die Nachrichtentypen 8 bis 15), und daß ein
Scantool normalerweise Adresse F1 besitzt, so kann entschieden werden, die drei Kopfbytes
auf A8 48 und F1 zusetzen. Dies geschieht mit dem Header Befehl SH, der dann so aussieht:
>AT SH A8 48 F1
OK
Diese drei so bestimmten Kopfbytes bleiben im Eingriff, bis sie durch einen weiteren AT SH
Befehl geändert werden, oder bis zu einem Reset oder bis zum Befehl AT D. Wenn der
Standard Auto Receive Modus beim Setzen der Kopfbytes aktiv ist, stellt der ELM327® die
Empfangsadresse entsprechend ein. Da das erste Byte bestimmt, daß es sich um eine
funktionale Adresse handelt, wird die Empfangsadresse bei ISO 9141 Systemen automatisch
auf die Funktionsadresse plus eins (49) gesetzt. Bei ISO 14230 Systemen wird die
physikalische Adresse des Senders (F1) als Empfangsadresse benutzt.
Nach dem Setzen der Kopfbytes (Header) muß nur noch die sekundäre ID für die
Kühlmitteltemperatur (10) am Prompt übergeben werden. Wenn die Anzeige der Kopfbytes
abgeschaltet ist, kann das Ergebnis so aussehen:
>10
10 2E
Die Antwort auf ID 10 ist in diesem Fall Byte 2E, die 10 wird als Echo auf die Abfrage
zurückgegeben.. Es kann sein, daß bei Abfragen niedriger Priorität nicht sofort eine Antwort
erscheint, was zu einem „NO DATA“ Resultat führt. In diesen Fällen können Sie den Wert
für die Zeitüberschreitung höher setzen, vielleicht sogar beginnend mit dem Maximum (mit
AT ST FF). Viele Fahrzeuge unterstützen diese zusätzliche Adressierungsmethode nicht.
Die Verwendung des im Standard J2190 beschriebenen, physikalischen Adressierungsmodus
ist meist ein identischer Prozeß und die andere Möglichkeit, Daten zu erhalten. Der
hauptsächliche Unterschied ist, daß die physikalische Adresse des Gerätes, das angesprochen
werden soll, bekannt ist (es ist immer das dritte Byte jeder zu diesem Gerät gesandten
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 45
________________________________________________________________
Nachricht) anstatt der funktionalen Adresse. Es wird dabei gezielt nur ein Steuergerät
abgefragt, während es bei der funktionalen Adressierung eine Gruppe sein kann. Ist die
physikalische Adresse nicht bekannt, kann eine Zeitlang der Bus mit eingeschalteten KopfBytes (AT H1) abgefragt werden und so viel über die Absende-Adresse (das dritte Byte im
Header) gelernt werden. Ist diese Adresse so bekannt, verwendet man sie im zweiten Byte der
Kopf-Bytes der Abfrage. Die physikalische Adressierung wird von Standards wie SAE J2190
zum Erhalt vieler Fahrzeug-Informationen benutzt. Viele dieser Details (wie PID Nummern
etc.) sind jedoch gut gehütetes Geheimnis der Hersteller, das sie nicht teilen möchten.
CarCode Müller gibt solche Informationen ebenfalls nicht weiter und verwendet sie allenfalls
in den kommerziellen Software-Programmen. Bei der physikalischen Adressierung ist noch
zu beachten, daß es Modi gibt, die das kontinuierliche Senden von Daten veranlassen und den
ELM327® ununterbrochen Antworten senden lassen, wenn der Zeitüberschreitungswert des
ELM327® höher als die Zeit zwischen den Antworten gesetzt ist. In diesen Fällen kann das
Senden eines einzelnen Zeichens wie beim Monitor All Modus den Datenstrom unterbrechen.
Fortgeschrittene Experimentierer sind sich bewußt, daß der ISO 14230 Standard festlegt, daß
das erste Kopfbyte immer die Länge des Datenfeldes beinhaltet. Der ELM327® berechnet
automatisch diese sechs Bits und fügt sie in jede Nachricht ein, egal was Sie in der KopfDefinition bestimmen. Er ändert jedoch nicht die zwei meist-signifikanten Bits des ersten
Kopfbytes. Ebenso wird mitunter nach dem zusätzlichen Längenbyte gemäß dem
ursprünglichen ISO 14230 Standard gefragt. Der ELM327® unterstützt nur die Anforderungen
der ISO 14230-4 mit drei Byte Header, die kein zusätzliches Längenbyte kennen.
Schließlich sei noch angemerkt, daß die bei der Bus Initialisierung verwendeten Kopfbytes
erhalten bleiben für die folgenden „Keep-Alive“ Nachrichten, egal welche Werte
anschließend mit dem AT SH Befehl gesetzt werden. Diese gleichen Kopfbytes sind auch
diejenigen, die für die „Starte Kommunikation“ Nachricht verwendet werden, die vom
ELM327® bei einer schnellen Initialisierung generiert werden. Diese Eigenschaft ist zum
Experimentieren mit den Kopfbytes nach einer Verbindung vorgesehen, kann aber zu
Irritationen führen, wenn erst versucht wird, die Kopfbytes zu ändern und dann der Bus
initialisiert werden soll. Die Initialisierung schlägt dann fehl. Solange Sie nicht mit Ihrem
Fahrzeug vertraut sind, wird empfohlen, erst einen einfachen Befehl (z.B. 01 00) zu senden
und dann zu versuchen, die Kopfbytes zu ändern.
Die Adressierung mit den CAN-Protokollen (ISO 15765-4) ist in manchen Dingen ähnlich.
Nehmen wir zuerst den 29 Bit Standard. Der ELM327® teilt die 29 Bits in ein CAN PrioritätsByte und 3 Kopf-Bytes ein, wie wir es kennen. Das folgende Bild zeigt, wie diese vom
ELM327® aufgeteilt und verwendet werden.
>AT CP vv
vv
>AT SH xx yy zz
x
x
y
y
zz
nur 5 Bits
Setzen eines 29 Bit CAN ID
vv xx yy zz
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 46
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Der CAN Standard bestimmt, daß das Prioritäts-Byte (vv im Diagramm) immer 1B ist. Die
Verwendung eines separaten Befehls zum Setzen dieser Prioritäts-Bits ist nur ein kleiner
Nachteil, da sie selten zu ändern sind. Das nächste Byte (xx) beschreibt den Nachrichtentyp
und wird für funktionale Adressierung auf hexadezimal DB gesetzt und für physikalische
Adressierung auf DA. Die nächsten zwei Bytes entsprechen den vorherigen Beschreibungen,
(yy) ist der Empfänger oder Ziel-Adresse und (zz) ist der Sender oder Quell-Adresse. Bei
funktionalen Diagnose-Abfragen ist der Empfänger immer 33 und der Sender ist F1.
Jenen die schon mit SAE J1939 gearbeitet haben, wird diese Kopf-Struktur bekannt sein.
J1939 ist ein Standard für Lastkraftwagen und Busse. Wir verwenden eine etwas
abgewandelte Terminologie, aber es gibt direkte Parallelen zwischen den in J1939
verwendeten Kopfbytes und der Byte-Gruppierung des ELM327®. Obwohl der ELM327®
nicht offiziell beansprucht, zu J1939 kompatibel zu sein, nehmen wir gerne Hinweise an, die
den ELM327® besser dafür verwendbar machen. Experimentierer seien darauf hingewiesen,
daß Auto-Formatierung (Zugabe von PCI Bytes) und das Senden von FlußkontrollNachrichten per Default beim ELM327® eingeschaltet ist. Sie werden zum Senden von J1939
Nachrichten beides abschalten müssen (AT CAF0 und AT CFC0).
Das letzte zu beschreibende Kopfbytes-Format wird in 11 Bit CAN Systemen verwendet. Es
wird ebenfalls Prioritäts/Adress-Struktur benutzt, aber verkürzt auf drei Nibbles anstatt drei
Bytes. Der ELM327® verwendet die gleichen Befehle zum Setzen dieser Werte wie den
anderen Headern, außer daß nur die 11 letzt-signifikanten Bits der Header-Bytes verwendet
werden und die anderen ignoriert werden. Es wird schnell lästig, sechs Digits einzugeben,
wenn nur drei erforderlich sind. Daher gibt es dazu eine eigene Kurz-Version des AT SH
Befehls, der nur drei hexadezimale Digits akzeptiert. Intern arbeitet er mit der Auffüllung von
zusätzlichen Nullen.
>AT SH xx yy zz
xx yy zz
11 Bit ID
Der 11 Bit CAN Standard macht typischerweise funktionale Abfragen (ID/Header = 7DF),
aber erhält physikalische Antworten (7En). Bei eingeschalteten Headern ist es einfach, die
Adressen der antwortenden Module kennenzulernen. Verwenden Sie dann diese Adressen,
wenn eine physikalische Adressierung gewünscht wird. Sind die Kopf-Bytes eingeschaltet,
könnten Sie z.B. nach einer 01 00 Abfrage folgende Antwort sehen:
>01 00
7E8 06 41 00 BE 3F B8 13 00
Die 7E8 zeigt, daß Steuergerät Nr. 1 antwortete. Um direkt zu diesem Steuergerät zu
sprechen, müssen Sie nur den Header auf den entsprechenden Wert setzen (es ist hier 7E0,
siehe ISO 15765-4 für weitere Informationen). Von da an können Sie direkt mit dem
Steuergerät unter Verwendung seiner physikalischen Adresse sprechen:
>AT SH 7E0
OK
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 47
________________________________________________________________
>01 05
7E8 03 41 05 46 00 00 00 00
Die Anzeige der Header macht natürlich auf die Dauer konfus, so daß Sie sie dann abschalten.
Diese Informationen sind nur als Startpunkt zu betrachten. Weitere Informationen können wir
nicht geben und verweisen bei ernsthaften Programmieraufgaben auf die einschlägigen
Normen.
Bus Überwachung
Einige Fahrzeuge nutzen den OBD Bus zur Informationsübertragung während des normalen
Fahrzeugbetriebs für einen vielfältigen Informationsaustausch zwischen den einzelnen
Steuergeräten (oder Knoten). Aus diesem Datenverkehr läßt sich viel lernen, wenn man zu
diesen Fahrzeugen verbinden kann und die Inhalte dieser Nachrichten entziffert. Andere
Fahrzeuge können vielleicht nicht initialisiert werden und senden stattdessen kontinuierlich
Informationen. Der einzige Weg diese Daten zu lesen ist, alles Gesendete zu überwachen und
die verwendbaren Daten herauszuziehen.
Um den OBD Bus zu untersuchen, muß der ELM327® in den „Monitor All“ Modus durch
Senden des Befehls AT MA mit einem Terminal-Programm versetzt werden. Nach Erhalt
dieses Befehls zeigt der IC kontinuierlich auf dem OBD Bus gesehene Informationen an
unabhängig von der Sende- oder Empfangsadresse. Beachten Sie, daß die periodische
„Wachhalte“-Nachricht in diesem Modus nicht gesendet wird, so daß der Bus sich in kurzer
Zeit „schlafen legen“ kann.
Der Monitor-Modus kann nur über das Senden eines einzelnen Zeichens über die RS232Verbindung zum ELM327® gestoppt werden oder durch Anlegen eines niedrigen Logikpegels
an den RTS Pin des IC. Ein beliebiges Zeichen (egal ob anzeigbar oder nicht) unterbricht den
IC und setzt ihn in den Befehls-Modus zurück, in dem er auf Eingaben wartet. Beachten Sie,
daß das gesendete Zeichen verworfen wird und keinen Effekt auf folgende Befehle hat. Die
Antwortzeit des ELM327® auf ein gesendetes Unterbrechungszeichen hängt von der
augenblicklichen Aktivität des ELM327® ab. Der IC beendet immer vorher den laufenden
Task (z.B. Ausgabe einer Zeile), bevor er wieder auf Eingänge wartet, so daß immer auf das
Prompt-Zeichen „>“ gewartet werden sollte, bevor weitere Befehle gesendet werden können.
Ein unerwartetes Ergebnis kann auftreten, wenn die Auto-Protokollsuche eingeschaltet ist und
der ELM327® den Bus überwachen soll, obwohl kein Datenverkehr auf dem Bus stattfindet.
In dem Fall kann der ELM327® unerwartet ein anderes Protokoll suchen. Beachten Sie auch,
daß die ISO 9141 und ISO 14230 Protokolle bei der Überwachung ähnlich aussehen, so daß
der ELM327 beim Suchen bei ISO 9141 stoppt, obwohl das Protokoll ISO 14230 ist. Ist die
automatische Suche ein, kann das korrigiert werden, jedoch erst bei der ersten OBD Abfrage.
Wenn die Kopfdaten (Header-Bytes) nicht angezeigt werden, AT MA also nur den Inhalt der
Nachrichten zeigt und nicht die Sende- und Empfangsadressen, muß vor Eingabe des AT MA
Befehls mit AT H1 die Anzeige von Kopfdaten eingeschaltet werden.
Wenn der „Monitor All“ Befehl zu viele Daten zeigt, was er sicherlich bei einem CAN
System tun wird, können Sie den angezeigten Daten-Umfang begrenzen. Wenn Sie z.B. nur
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 48
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Nachrichten des Steuergerätes mit der Adresse 10 sehen wollen, können Sie folgendes
eingeben:
>AT MT 10
Damit würden dann nur Nachrichten mit einer 10 im dritten Byte des Headers angezeigt.
Die Verwendung des Befehls bei 11 Bit CAN Systemen kann zunächst etwas verwirrend sein.
Erinnern Sie sich an die Art, in der der ELM327® alle Header Bytes speichert. Ein 11 Bit
CAN ID wird aktuell als die letzt-signifikanten 11 Bits in der 3 Byte Kopf-Speicherstelle
gespeichert. Er speichert 3 Bits in der Empfänger Adress-Stelle und die verbleibenden 8 Bits
an der Sender Adress-Stelle. In diesem Beispiel haben wir alle Nachrichten vom Sender 10
zur Anzeige angefragt, so daß alle 11 Bit CAN IDs, die mit 10 enden, angezeigt werden (z.B.
x10).
Ein anderer nützlicher Monitor-Befehl ist AT MR, der spezifische Adressen im mittleren Byte
des Headers sucht. Sie verwenden diesen Befehl zur Anzeige aller Daten, die an eine
bestimmte Adresse gesendet werden. Wenn Sie also Nachrichten, die z.B. an das Steuergerät
10 gesendet werden, sehen wollen, dann geben Sie ein:
>AT MR 10
Damit würden nur Nachrichten mit einer 10 im zweiten Byte des Headers angezeigt.
Die Verwendung dieses Befehls bei 11 Bit CAN Systemen braucht einige weitere
Erläuterungen. Es ist hilfreich, die hexadezimale Zahl „10“ zunächst als binäre Nummer
„0001 0000“ darzustellen. Das ist die Nummer, die der ELM327® intern gegen die
eingehenden zweiten Bytes der Nachrichten prüft. Außerdem werden alle 11 Bit CAN IDs im
Header-Speicher mit ihren Daten rechts-orientiert gespeichert. Der ELM327® berücksichtigt
das und verwendet nur 3 Bits vom zweiten Header-Byte und 8 Bits vom dritten Byte für alle
11 Bit CAN Nachrichten. Der Rest wird ignoriert.
In diesem Fall prüft der ELM327® ein Byte auf Übereinstimmung in der zweiten Position,
nimmt dazu aber nur die drei meist rechtsstehenden Bits, die alle Null sind (000). Alle
Nachrichten beginnend mit 0 als dem ersten Digit werden mit AT MR 10 aktuell angezeigt.
Sollen alle CAN Nachrichten beginnend mit 2 gesucht werden, muß der Befehl AT MR 02
genommen werden und bei 7xx z.B. der Befehl AT MR 07.
Bei den ELM327® Vorläuferchips ELM 320, ELM322 und ELM323 bestand die Möglichkeit,
daß OBD Nachrichten verloren gingen, wenn eine vorangegangene Nachricht auf der RS232
Verbindung wiederholt gesendet wurde. Das lag an der Tatsache, daß die alten ELM SingleTask Microprozessoren waren und deren Hardware keinen Puffer für OBD Daten im
Hintergrund besaß, während sie mit anderen Tasks beschäftigt waren. Beginnt eine OBD
Nachricht während des Sendens des IC zum RS232 Bus, konnten mehrere Bytes verloren
gehen und es wurde möglicherweise eine „<DATA ERROR“ Nachricht angezeigt.
Normalerweise stellen die ECUs Zehntel Millisekunden zwischen den Nachrichten zur
Verfügung und es gab daher selten ein Problem. Der neue ELM327® hat nun eine höhere
Baudrate und internen Puffer. Für den Fall, daß die sehr hohe Datenrate z.B. auf dem CANBus den ELM327® trotzdem noch überfordern kann und DATA ERRORs erscheinen, kann
die RS232 Datenmenge durch Abschalten von Zeilenschaltungen (LF – Linefeed) entlastet
werden.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 49
________________________________________________________________
CAN Nachrichten und Filterung
Die ELM327® Monitor-Befehle (AT MA, MR und MT) funktionieren gewöhnlich sehr gut
mit den langsameren Protokollen J1850, ISO 9141 und ISO 14230. Die CAN Systeme stehen
auf einem anderen Blatt, da sie in der Regel einen enormen Datenverkehr aufweisen. Der
relativ kleine Puffer von 256 Bytes, den der ELM327® zum Senden benutzt, kann schnell voll
sein, wenn Daten mit 500 kbps ankommen und mit 38,4 kbps abgehen.
Um den Umfang der vom ELM327® gesehenen Daten zu reduzieren, hat das interne CAN
Modul einen Filter, das zum Passieren nur von Nachrichten mit bestimmten ID Bits genutzt
werden kann. Ein Wertebereich genannt Maske kann übergeben werden, der aussagt, welche
Bits relevant sind.
Nehmen wir als Beispiel eine Applikation an, mit der 29 Bit CAN Diagnose Nachrichten
überwacht werden sollen, wie der ELM327® es tut. Definitionsgemäß werden diese
Nachrichten an Adresse F1 (ein Diagnosegerät) gesendet. Aus der ISO 15765-4 wissen wir,
daß der ID Teil der Antwort folgende Form haben muß:
18 DA F1 xx
wobei xx die Adresse des die Nachricht sendenden Moduls ist. Zur Anwendung des Filters
geben Sie irgendwas für den unbekannten Teil ein, Sie sehen gleich warum. Der Befehl zum
Setzen des CAN Filters ist AT CF…
>AT CF 18 DA F1 00
Wie soll der ELM327® die beiden letzten Nullen ignorieren? Das geschieht mit der Maske.
Die Maske besteht aus Bits, die dem ELM327® erzählen, welche Bits des Filters relevant
sind. Ist das Masken-Bit 1, dann ist dies Filter-Bit relevant und muß übereinstimmen. Ist es 0,
dann wird das Filter-Bit ignoriert. Alle Bits in der obigen Nachricht sind relevant außer den
letzten zwei Digits. Um die Maske für dieses Beispiel zu setzen, verwenden Sie den CAN
Masken-Befehl wie folgt:
>AT CM 1F FF FF 00
Wenn Sie möchten, konvertieren Sie hexadezimal zu binär, um zu sehen, was gemacht wurde.
Die 11 Bit CAN IDs werden in gleicher Weise verwendet. Zur Erinnerung: Sie werden intern
in den ganz rechten 11 Bits der Stelle gespeichert, die für 29 Bit CAN verwendet wird. Das
muß beim Zusammenstellen eines Filters oder einer Maske beachtet werden. Als Beispiel
nehmen wir an, daß alle Nachrichten mit 6 als dem ersten Digit der 11 Bit ID angezeigt
werden sollen. Wir müssen einen Filter für 6 erstellen:
>AT CF 00 00 06 00
Das 11 Bit ID ist in den letzten drei Stellen gespeichert, so daß die 6 erscheint wie gezeigt.
Jetzt machen wir dies Digit mit der folgenden Maske relevant:
>AT CM 00 00 0F 00
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 50
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Das System verwendet nur die 11 rechts-stehenden Bits in diesem Fall, so können wir faul
sein und wie gezeigt das F verwenden. Das erste Bit von F wird ignoriert und es wird
behandelt, als ob wir eine 7 eingegeben hätten.
Tatsächlich kann es nervig werden, wenn wir immer mit 11 Bit CAN Systemen umgehen
müssen. Der ELM327® bietet daher kürzere Versionen der CF und CM Befehle. Es muß nur
folgendes eingegeben werden:
>AT CF 600
und
>AT CM F00
für obiges Beispiel. Die Befehle arbeiten intern mit dem zusätzlichen Einfügen von 00 für Sie.
Wie bei den vollen acht Digit Versionen werden nur die 11 letzt-signifikanten (rechts
stehenden) Digits benutzt, so daß Sie sich nicht um das erste Bit kümmern müssen.
Mit etwas Übung sind diese Befehle leicht zu beherrschen. Beginnen Sie mit der Eingabe von
Filter- und Masken-Werten und verwenden Sie dann einen Befehl wie AT MA, um das
Resultat zu sehen. Der ELM327® weiß, daß Sie Filterung versuchen und verbindet die Effekte
mit beiden Befehlen (er tut es für MR und für MT gleichermaßen). Die MA, MR und MT
Befehle haben zudem bei Anwendung den Vorteil, daß der ELM327® ruhig bleibt und keine
Erkennungs- oder Fehler-Signale sendet, so daß der Bus während dessen nicht behelligt wird.
Beachten Sie, daß bei gesetztem Filter dieser für alle CAN Nachrichten verwendet wird. So
können Standard OBD Abfragen mit NO DATA beantwortet werden. Haben Sie Probleme,
setzen Sie alles auf die Default Werte zurück.
CAN Nachrichten Formate
Der ISO 15765-4 Standard definiert verschiedene Nachrichten-Typen, die in
Diagnosesystemen vorkommen können. Zur Zeit werden hauptsächlich folgende vier Typen
benutzt:
SF – der einzelne Frame
FF – der erste Frame (in einer mehrfach Frame Nachricht)
CF – der fortlaufende Frame
FC – der Flußkontroll Frame
Die Einzel-Frame Nachricht hat Platz für bis zu 7 Datenbytes und das sogenannte PCI
(Protocol Control Information) Byte. Das PCI Byte ist immer das erste Byte von allen und
enthält die Anzahl der folgenden Datenbytes. Wenn die CAN Auto-Formatierungs-Option
angeschaltet ist (CAF1), dann erzeugt der ELM327® dieses Byte für Sie beim Senden und
entfernt es beim Empfangen. Sind jedoch die Kopf-Bytes eingeschaltet, sehen Sie es immer.
Ist Auto-Formatierung ausgeschaltet (mit CAF0), wird erwartet, daß Sie alle zu sendenden
Datenbytes vorgeben. Das sind für Diagnosesysteme das PCI Byte und die Datenbytes. Der
ELM327 fügt jedoch für Sie extra Füllbytes (Wert 00) ein, um sicherzustellen, daß acht
Datenbytes gesendet werden (da dieser Parameter in dieser Version des ELM327® nicht
einstellbar ist). Sie müssen dafür nicht die (Allow Long) AT AL Option verwenden, da der IC
dies für Sie überschreibt.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 51
________________________________________________________________
Eine Erste Frame Nachricht besagt, daß eine mehrfach Frame Nachricht am Senden ist und
sagt dem Empfänger, wie viele Datenbytes zu erwarten sind. Die Längen-Beschreibung ist
limitiert auf 12 Bits und so können maximal 4095 Bytes mit dieser Methode gesendet werden.
Fortlaufende Frame Nachrichten werden nach der Ersten Frame Nachricht gesendet, um die
restlichen Daten zu übertragen. Jede Fortlaufende Frame Nachricht enthält ein einzelnes HexDigit „Sequenz Nummer“, das beim Zusammenfügen der Daten hilft. Es wird erwartet, daß
bei einer verstümmelten oder nochmals gesendeten Nachricht die Reihenfolge einiger Pakete
nicht mehr stimmt. Dies aber nicht mehr als bei 16 Paketen. Wie vorher schon gezeigt, ist die
Fahrgestellnummer (VIN) ein typisches Beispiel einer Mehrfach-Frame Antwort:
>0902
014
0: 49 02 01 31 44 34
1: 47 50 30 30 52 35 35
2: 42 31 32 33 34 35 36
In diesem Beispiel ist die Zeile beginnend mit 0: die Erste Frame Nachricht. Die Länge (014)
wird aktuell vom ELM327® aus der Nachricht extrahiert und in einer separaten Zeile wie
gezeigt ausgegeben. Nach der Ersten Frame Zeile folgen zwei Fortlaufende Frames (1: und
2:). Um mehr Details über das genaue Formatieren kennenzulernen, können Sie die Abfrage
einmal wie oben und einmal mit Kopf-Bytes ein (AT H1) machen. Das wird die PCI Bytes
zeigen, die aktuell mit diesen Komponenten der gesamten Nachricht gesendet werden.
Der Flußkontroll Frame interessiert Sie nomalerweise nicht. Wenn eine Erste Frame
Nachricht als Teil einer Antwort gesendet wird, muß der ELM327® dem Absender einige
technische Dinge mitteilen wie die Länge der Verzögerung zwischen Fortlaufenden Frames
usw. Diese sind im ISO 15765-4 Standard definiert und nicht vom Anwender veränderbar.
Das Einzige, was man machen kann, ist, das Senden von Flußkontroll Nachrichten gänzlich
zu unterbinden (AT CFC0). Das kann beim Experimentieren mit verschiedenen CAN
Systemen erforderlich sein.
Wird beim Monitoring ein Flußkontroll Frame erhalten, so wird dieser Zeile ein „FC:“ bei der
Anzeige vorangestellt. Das hilft bei der Dekodierung der Information.
Es gibt einen letzten Nachrichten-Typ, über den manchmal berichtet wird, der aber nicht von
den Diagnose Standards unterstützt wird. Der Bosch CAN Standard erlaubt die Übertragung
von Daten-Abfragen ohne das Senden irgendwelcher Daten in der Abfrage Nachricht. Zur
Sicherstellung, daß die Nachricht als solche erkannt wird, setzt der Sender ein bestimmtes
Flag in dieser Nachricht, das RTR Bit, das von jedem Empfänger gesehen wird. Der
ELM327® beachtet dieses Flag oder Null Datenbytes und kann melden, daß ein RTR
gefunden wurde. Dies wird mit den RTR Zeichen anzeigt an der Stelle, an der normalerweise
Daten erscheinen. Dieses aber nur, wenn Auto-Formatierung aus ist oder Header ein ist. Wird
ein CAN System mit einer falsch gewählten Baudrate überwacht, kann RTS gezeigt werden.
Beachten Sie, daß das CAN System aufgrund mehrerer Fehler-Erkennungsmethoden sehr
robust ist Während der normalen Datenübertragung sieht man daher kaum irgendwelche
Fehler. Beim Bus Monitoring können jedoch Fehler gesehen werden, insbesondere bei falsch
gesetzter Baudrate. Treten Fehler auf, gibt der ELM327® alle Bytes (egal wie CAF usw.
gesetzt sind) gefolgt von der Meldung <RX ERROR aus.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 52
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Änderung Fluß-Kontroll Nachrichten
ISO 15765-4 (CAN) stellt nur 8 Datenbytes je Datenpaket zur Verfügung. Es gibt natürlich
viele Fälle, in denen Daten mit mehr als 8 Bytes gesendet werden müssen und CAN
berücksichtigt das, in dem die Daten in Segmente zerlegt werden und vom Empfänger wieder
zusammengefügt werden.
Um eine mehrzeilige Nachricht zu senden, sendet der Transmitter in einem CAN System eine
‚Erste Frame’ Nachricht und wartet dann auf Antwort vom Empfänger. Diese Antwort, ‚FlußKontroll’ Nachricht genannt, enthält Informationen über das Zeitverhalten der Nachricht usw.
und muß gesendet werden, bevor der Transmitter mehr Daten senden kann. Der Antwort-Typ
ist für ISO 15765-4 genau definiert und ändert sich nie. Der ELM327® sendet diese ISO
15765-4 Fluß-Kontroll Nachricht automatisch für Sie, solange die CAN Fluß-Kontroll Option
aktiviert ist (CFC1), was der Werkseinstellung entspricht.
Mehrere Anwender baten um mehr Flexibilität für die Daten in der Fluß-Kontroll Nachricht
und mit Version 1.1 haben wir dem Rechnung getragen. Um die vom ELM327® gesendeten
Fluß-Kontroll Nachrichten zu ändern, müssen Sie die Fluß-Kontroll ‚Modes’ ändern.
Der Default Fluß-Kontroll Modus hat die Nummer ‚0’.Beim Experimentieren kann jederzeit
auf die automatischen Fluß-Kontroll Antworten (für ISO 15765-4) zurückgeschaltet werden
mit folgendem Befehl:
>AT PC SM 0
OK
Damit werden die Antworten sofort auf ihre Grundeinstellung zurückgesetzt.
Mode 1 ist für die komplette Kontrolle über die Fluß-Kontroll Nachrichten vorgesehen. Zur
Verwendung definieren Sie den CAN ID (Header, Kopf) und die Datenbytes, die als Antwort
auf eine Erste Frame Nachricht gesendet werden sollen. Wird versucht, diesen Mode vor der
Definition der dieser Werte zu setzen, erhält man einen Fehler:
>AT FC SM 1
?
Erst müssen Header und Daten gesetzt werden:
>AT FC SH 7E8
OK
>AT FC SD 00 11 22
OK
Dann kann der Mode gesetzt werden:
>AT FC SM 1
OK
Von da an wird jede erhaltene Erste Frame Nachricht mit Ihrer eigenen Nachricht
beantwortet.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 53
________________________________________________________________
Der letzte zur Zeit unterstützte Mode gestattet dem Anwender das Setzen der zu sendenden
Datenbytes aber nicht der ID Bits. Die ID Bits (Header Bytes) im Mode 2 werden auf die von
der Erste Frame Nachricht erhaltenen Werte gesetzt ohne jegliche Änderung. Zur
Verwendung von Mode 2 werden erst die Datenbytes definiert und dann der Mode aktiviert:
>AT FC SD 00 11 22
OK
>AT FC SM 2
OK
Für die meisten Anwender wird es kein Bedürfnis geben, diese Fluß-Kontroll Nachrichten zu
verändern, da die Grundwerte mit dem Standard CAN OBD arbeiten. Nur für den Fall des
Experimentierens sind diese speziellen AT Befehle gedacht.
FC
Mode
0
1
ELM327
liefert
ID Bits
Datenbytes
-
Anwender
liefert
-
ID Bits
Datenbytes
2
ID Bits
Datenbytes
Fluß-Kontroll Mode Nummern
Programmierbare Parameter
Der ELM327® enthält mehrere programmierbare Speicherstellen, die die Daten selbst bei
Abschalten der Versorgungsspannung behalten. Bei jedem Einschalten des IC werden diese
Speicherstellen gelesen und als Grundeinstellungen verwendet für zum Beispiel Art der
Anzeige der Header (Kopfbytes) oder wie oft Weck-Nachrichten gesendet werden.
Die Einstellungen oder Parameter können vom Anwender jederzeit mit einfachen Befehlen
geändert werden. Die Programmierbaren Parameter Befehle werden genau wie die anderen
AT Befehle benutzt, jedoch benötigt jeder zwei Schritte, um aktiv zu werden. Damit ist etwas
Sicherheit gegen zufällige ungewollte Eingaben gegeben.
Die Tabelle enthält die aktuell unterstützten Programmierbaren Parameter dieser Version des
ELM327®. Als Beispiel zur Verwendung der Programmierbaren Parameter nehmen wir die
erste Zeile (Anzeige der Kopfbytes, Header). Bei laufendem ELM327® und Verwendung von
AT H1 zum Einschalten der Header möchten Sie auf die Grundeinstellung zurückschalten.
Dazu verändern Sie einfach den Wert von PP 01:
>AT PP 01 SV 00
OK
Dies hat den mit PP 01 verbundenen Wert geändert, aber noch nicht aktiviert. Dazu wird
eingegeben:
>AT PP 01 ON
OK
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 54
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Kennen Sie den aktuellen Status der Programmierbaren Parameter nicht, dann können Sie
einfach den PPS Befehl zum Anzeigen aller Parameter verwenden. Für obiges Beispiel kann
folgendes angezeigt werden:
>AT PPS
00:FF F
04:FF F
08:FF F
0C:FF F
10:FF F
14:FF F
18:FF F
1C:FF F
20:FF F
24:FF F
28:FF F
1C:FF F
01:00 N
05:FF F
09:FF F
0D:FF F
11:FF F
15:FF F
19:FF F
1D:FF F
21:FF F
25:FF F
29:FF F
2D:FF F
02:FF F
06:FF F
0A:FF F
0E:FF F
12:FF F
16:FF F
1A:FF F
1E:FF F
22:FF F
26:FF F
2A:FF F
2E:FF F
03:FF F
07:FF F
0B:FF F
0F:FF F
13:FF F
17:FF F
1B:FF F
1F:FF F
23:FF F
27:FF F
2B:FF F
2F:FF F
Man sieht, daß PP 01 nun den Wert 00 zeigt und aktiviert ist (eiN). Da der Typ ‚D’ ist, wird
es nicht aktiviert, bis der AT D Befehl gegeben wurde oder der ELM327 einen Reset erhalten
hat.
Ein letztes Beispiel zeigt, wie man das CAN Filter Byte ändern kann. Einige Systeme
verwenden ‚AA’ als Wert für ungenutzte CAN Bytes, während der ELM327® ‚00’ als
Grundwert verwendet. Um das Verhalten des ELM327® zu ändern, ändert man einfach PP 26:
>AT PP 26 SV AA
OK
>AT PP 26 ON
OK
Wiederum ist PP 26 vom Typ ‚D’, so daß die Änderung oben erst mit dem AT D Befehl oder
dem Reset des ELM327® aktiviert wird.
Ein Vorsichtshinweis beim Experimentieren: Die meiste ELM-Systeme Software erwartet ein
bestimmtes Antwortverhalten des ELM327® und Sie können die Software ‚abschießen’, wenn
das geändert wird. Wenn zum Beispiel der CAN Datenlängen Code mit PP 29 aktiviert wird,
erwartet die meiste Software, daß die ELM327® Header kein einzelnes Digit dort haben, wo
der DLC Code angezeigt wird. Daher wird es Probleme mit kommerzieller Software geben,
wenn DLC eingeschaltet ist. Ein anderes Beispiel ist das Ändern des Wagenrücklauf Zeichens
(CR). Das ist das einzige vom ELM327® erkannte Zeichen, das nach Übergabe des Befehls
eine Aktion auslöst. Wird es geändert, hat die Software mit Sicherheit Probleme und
schlimmer noch: Wenn der dafür gesetzte Wert vergessen wurde, kann es den IC unbrauchbar
machen. Experimentieren Sie daher mit allergrößter Vorsicht mit diesem Wert.
Die Programmierbaren Parameter bieten die Möglichkeit, den ELM327® an eigene
Applikationen anzupassen. Sie bieten allerdings auch die Möglichkeit, eklatante Fehler zu
machen. Befassen Sie sich vorher ausführlich mit jeder Änderung, die Sie machen wollen und
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 55
________________________________________________________________
seien Sie sich sicher, sie verstanden zu haben. Haben Sie sich ‚verrannt’, vergessen Sie nicht
den folgenden Befehl, der alles ausschaltet:
>AT PP FF OFF
Ab ELM327® Version 1.2 steht auch ein Hardware-Reset zur Verfügung (siehe dazu unter PP
in den AT Befehlen oben).
Hier eine Liste der aktuell implementierten Programmierbaren Parameter:
Nummer
Beschreibung
00
AT MA ausführen nach Kaltstart oder Reset
01
Anzeige Kopfbytes (Header, AT H1 Einstellung)
02
Erlaube lange Nachrichten (AT AL Einstellung)
03
NO DATA (AT ST) Zeit (Einstellung = Wert x 4,096
msek)
Setzt den AT Grundwert (adaptives Timing)
04
06
07
09
0A
0C
0D
10
11
13
OBD Quell Adresse (Source, Tester), nicht bei J1939
Protokollen
Letztes Protokoll bei automatischer Suche
Zeichen Echo (AT E1 Einstellung)
Zeilenvorschub Zeichen (LF, LineFeed)
RS232 Baudraten Divisor, wenn Pin 6 = 1 (Rate in kbps =
4000/Wert)
Um z.B. 500 kbps zu erhalten, verwende 4000/500 = 08
Hier einige typische Baudraten und deren zugehöriger
Divisor:
Baudrate
(kbps)
PP 0C Wert
hexadezimal
(dezimal)
19,200
D0 (208)
38,400
68 (104)
57,600
45 (69)
115,200
23 (35)
230,400
11 (17)
500,000
08 (8)
Der PP 0C Wert darf dem ELM327® nur als hexadezimal
Wert übergeben werden. Die gezeigten dezimalen Werte
dienen nur zum Verständnis.
Wagenrücklauf Zeichen (CR, Carriage Return)
J1850 Spannungs-Wartezeit (Einstellung = Wert x 4,096
msek)
J1850 Unterbrechungs-Signal Monitor (liefert BUS
ERROR wenn Unterbrechungs-Signal Grenzdauer
überschritten)
Autom. Suchzeit-Dauer zwischen Protokoll 1 und 2
(Einstellung = Wert x 4,096 msek)
Wert
Default
Typ
00 = Ein
FF = Aus
00 = Ein
FF = Aus
00 = Ein
FF = Aus
00 bis FF
FF
(Aus)
FF
(Aus)
FF
(Aus)
32
(205 msek)
00
(Ein)
F1
R
00 = Ein
FF = Aus
00 bis FF
D
D
D
I
R
01 bis 0C
00 = Ein
FF = Aus
00 bis FF
08 bis FF
09
00
(Ein)
0A
68
(38,400)
D
R
00 bis FF
00 bis FF
0D
00
(53 msek)
00
(Ein)
R
I
00 = Ein
FF = Aus
00 bis FF
32
(205 msek)
R
P
D
I
(siehe
Hinweis
3)
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 56
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
16
ISO Baudrate (AT IB Einstellung)
17
ISO Wachhalte-Nachrichten Rate (AT SW Einstellung,
Einstellung = Wert x 20,48 msek)
Autom. Suchzeit-Dauer zwischen Protokoll 4 und 5
(Einstellung = Wert x 4,096 msek)
18
24
CAN autom. Formatierung (AT CAF1 Einstellung)
25
CAN autom. Fluß-Kontrolle (AT CFC1 Einstellung)
26
29
CAN Filterbyte
CAN Datenlängen-Code (DLC) anzeigen bei Anzeige
Kopfbytes (Header)
2B
2C
2D
2E
2F
Protokoll A (SAE J1939) CAN Baudraten Divisor.
Der ELM327® setzt die durch diesen Wert bestimmte CAN
Baudrate (Rate in kbps = 500/Wert). Beispiel: Setzen
dieses PP auf 19 (das ist dezimal 25) erhält eine Baudrate
von 500/25 = 20 kbps.
Protokoll B (USER1) CAN Protokoll Optionen.
Jedes Bit in dieser Byte-Kontrollfunktion hat folgende
Bedeutung:
b7: Transmit ID Länge, 0 = 29 Bit ID, 1 = 11 Bit ID
b6: Daten Länge, 0 = feste 8 Bytes, 1 = variabele DLC
b5: Receive ID Länge, 0 = wie bei b7 gesetzt, 1 = beide 11
Bit und 29 Bit
b4: reserviert für zukünftige Erweiterungen, bei 0 lassen
b3: reserviert für zukünftige Erweiterungen, bei 0 lassen
b2, b1 und b0 bestimmen die Daten Format Optionen wie
folgt:
b2 b1 b0 Daten Format
0 0 0 kein
0 0 1 ISO 15765-4
0 1 0 SAE J1939
andere Kombinationen reserviert für die Zukunft.
Beachten Sie, daß b7 das Most-Significant-Bit (msb) und
b0 das Lower-Significant-Bit (lsb) ist. Der Default-Wert
80 kann z.B. als Binärwert 11100000 gezeigt werden, so
daß 11 Bit ID, variable DLC etc. gemeint sind.
Protokoll B (USER1) Baudraten Divisor. Siehe
Beschreibung unter PP 2B.
Protokoll C (USER2) CAN Protokoll Optionen. Siehe
Beschreibung unter PP 2C.
Protokoll C (USER2) Baudraten Divisor. Siehe
Beschreibung unter PP 2B.
00 = 96
FF = 10
00 bis FF
00 bis FF
00 = Ein
FF = Aus
00 = Ein
FF = Aus
00 bis FF
00 = Ein
FF = Aus
01 bis 40
00 bis FF
FF
(10,4 K)
92
(2,99 sek)
00
(keine
Dauer)
00
(Ein)
00
(Ein)
00
FF
(Aus)
R
D
I
D
D
D
D
(siehe
Hinweis
3)
02
(250 kbps)
R
E0
R
(11100000)
01 bis 40
00 bis FF
04
(125 kbps)
80
R
R
(10000000)
01 bis 40
0A
(50 kbps)
R
Hinweise:
1. Die System „Default“ Werte werden mit dem AT PPS Befehl nicht angezeigt. Alle
System „Default“ Werte sind intern gespeichert und für den Anwender nicht sichtbar.
2. Der „Typ“ bestimmt, wann ein Programmierbarer Parameter aktiv ist. Bei „I“ ist er
das sofort, bei „R“ wird er nur aktiv, wenn ein Reset erfolgte (ATZ, AT WS) oder
nach Versorgungsspannung aus/ein. Der „D“ Typ wird nach Wiederherstellung der
Default-Werte (mit AT D, AT Z, AT WS oder Spannung aus/ein) aktiv und „P“ nur
nach Versorgungsspannung aus/ein oder AT Z.
3. Diese Änderungen betreffen nur die letzte Version des IC.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 57
________________________________________________________________
Fehlermeldungen
Gibt es Hardware- oder Datenprobleme, kann der ELM327® mit folgenden kurzen
Nachrichten antworten. Einige Meldungen werden bei der automatischen Protokollsuche
unterdrückt und sind nur sichtbar, wenn nicht im Auto-Mode. Hier ist eine kurze
Beschreibung jeder Meldung:
BUFFER FULL
Der ELM327® enthält einen internen 256 Byte RS232 Übertragungspuffer, so daß OBD
Nachrichten schnell erhalten, gespeichert und zum Computer oder PDA mit einer konstanten
Rate gesendet werden. Gelegentlich (besonders bei CAN Systemen) füllt sich der Puffer
schneller, als er geleert wird. Er wird eventuell voll und es können keine Daten mehr
gespeichert werden, sie sind verloren.
Wird eine BUFFER FULL Meldung erhalten und 9600 Baud werden verwendet, sollte auf
38400 Baud gewechselt werden. Erscheint dann immer noch eine BUFFER FULL Meldung,
sollte die Filter Option (MR, MT, CF und CM AT-Befehle) verwendet werden.
BUS BUSY
Der ELM327® versucht, einen Mode Befehl zu senden oder den Bus zu initialisieren, aber er
erkennt zuviel Aktivität, um eine Nachricht einzufügen. Es kann sein, daß der Bus tatsächlich
sehr beschäftigt ist, aber oft ist es auf Verdrahtungsprobleme zurückzuführen, die einen
permanent aktiven Eingang an OBDIn erzeugen. Tritt dies bei Ihren ersten Versuchen mit
dem ELM327® auf, prüfen Sie die Spannungspegel am OBD Eingang, es ist wahrscheinlich
ein Verdrahtungsproblem.
BUS ERROR
Es gab ein allgemeines Problem. Dies liegt meistens an der Erkennung eines ungültigen
Signals (ein langer Impuls etc.) oder an einem Verdrahtungsfehler. Beachten Sie, daß einige
Fahrzeuge während des Startprozesses lange Impulse generieren können und daher diese
Meldung bei einer normalen Initialisierung erscheinen kann, wenn Monitor Alles (zeige alles
an, AT MA) eingeschaltet ist.
CAN ERROR
Das CAN System hat Schwierigkeiten beim Initialisieren, Senden oder Empfangen. Oft liegt
es einfach an einer nicht bestehenden Verbindung zu einem CAN System, wenn versucht
wird, eine Nachricht zu senden. Aber es kann auch sein, daß das System auf ein falsches
Protokoll gesetzt wurde oder die Datenrate nicht übereinstimmt. Wie bei BUS ERROR kann
ein CAN ERROR auch bei Verdrahtungsproblemen auftauchen.. Wird ein Selbstbau
ELM327® Interface zum ersten Mal verwendet, prüfen Sie bitte dann den CAN Schaltteil.
FB ERROR
Bedeutet, daß ein Rückführungs-Fehler („FeedBack“, FB) auftrat. Wenn die K-Linie zuerst
angesprochen wird, erfolgt eine Prüfung, ob das Signal zu OBDIn zurückgeführt wird. Wenn
das nicht geschieht, wird diese Meldung erzeugt. Überprüfen Sie die Verdrahtung eines
Selbstbau-Interfaces bevor Sie weitermachen mit den ersten Versuchen Ihres SelbstbauInterfaces.
DATA ERROR
Es gab eine Antwort vom Fahrzeug, aber die Information war nicht korrekt oder konnte nicht
bearbeitet werden. Im Fall der Bus-Initialisierung bedeutet das, daß die Formatierungs-Bytes
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 58
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
nicht den Erwartungen entsprachen und Initialisierung nicht stattfand. Im Normalbetrieb
bedeutet das, daß die Antwort für eine richtige Nachricht zu wenig Bytes enthielt, was
auftreten kann, wenn das Signal während des Transports unterbrochen wurde.
<DATA ERROR
Das Resultat der Fehler-Prüfsumme entsprach nicht den Erwartungen, was auf einen
Datenfehler in der Zuleitung deutet (der ELM327® zeigt weiterhin, was er erhalten hat).
Möglicherweise traten Rauschstörungen auf oder es gab ein Schaltkreis-Problem. Versuchen
Sie, den Befehl erneut zu senden.
NO DATA
Der IC wartete die mit dem Befehl AT ST gesetzte Zeit ab und es gab daraufhin keine
Antwort vom Fahrzeug. Es kann sein, daß das Fahrzeug keine Daten anbieten kann, da keine
Informationen gespeichert sind, daß der abgefragte Mode nicht unterstützt wird oder daß es
auf einen höher priorisierten Ausgang wartet und in der gesetzten Zeit nicht antworten kann.
Bei einem CAN System kann der Filter so gesetzt sein, daß Daten ignoriert werden.
Versuchen Sie mit AT ST die Zeitspanne zu justieren, um sicher zu sein, daß Sie ausreichend
Antwortzeit bewilligt haben. Bei CAN Systemen stellen Sie die Default Werte des Filters
wieder her.
<RX ERROR
Beim Empfang von CAN Daten wurde ein Fehler bemerkt. Dies erscheint üblicherweise nur
beim Monitoring des CAN Bus und beim Setzen einer falschen Baudrate. Versuchen Sie ein
anderes Protokoll.
UNABLE TO CONNECT
Der ELM327® hat alle verfügbaren Protokolle durchprobiert und kann kein kompatibeles
finden. Das kann auftreten, weil Ihr Fahrzeug ein nicht unterstütztes Protokoll verwendet oder
einfach, weil die Zündung nicht eingeschaltet war. Prüfen sie alle Verbindungen und die
Zündung und versuchen Sie es nochmals.
?
Das ist die Standard Antwort für einen auf dem RS232-Bus mißverstandenen Befehl.
Üblicherweise handelt es sich meist um einen Tippfehler.
Applikation
Bausatz
Der SAE Standard J1962 bestimmt, daß alle OBD-2 kompatibelen Fahrzeuge einen Standard
Stecker in der Nähe des Fahrersitzes haben müssen, dessen Form und Kontaktbelegung dem
Bild entspricht. Die Schaltung, die hier beschrieben wird, dient zum Anschluß an diesen
Stecker ohne jegliche Modifizierungen am Fahrzeug.
Bild OBD2/EOBD-Stecker
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 59
________________________________________________________________
Das mitgelieferte OBD/DB9-Kabel des ElmCan® Bausatzes oder des Fertiggerätes besitzt den
erforderlichen männlichen J1962 Stecker zum Anschluß an die entsprechende FahrzeugSteckerbuchse und einen DB9-Stecker zum Anschluß an das Interface. Die für die genormten
Protokolle erforderlichen Leitungen (OBD-Pin 2, 4, 5, 6, 7, 10, 14, 15 und 16) sind damit
verbunden.
Die Schaltung auf dem folgenden Bild zeigt, wie der ELM327® typischerweise benutzt wird.
Die Schaltspannung kommt vom Fahrzeug über die OBD Pins 16 und 5 und wird nach einer
Schutzdiode und geringer Filterung dem 5 Volt Regler zugeführt. Es wurde berichtet, daß
einige Fahrzeuge keinen Pin 5 haben. In dem Fall kann Pin 4 + 5 verbunden werden. Der
Ausgang dieses Regulators speist mehrere Punkte in der Schaltung und eine LED zur
visuellen Kontrolle auf Vorhandensein einer Spannung. Die Spannung benutzt der ELM327®
außerdem zur kalibrierbaren Anzeige der Fahrzeug-Batteriespannung. Wegen des bei CANProtokollen möglichen höheren Strombedarfs wird statt des alternativ einsetzbaren 78L05 im
TO-92 Gehäuse der µA7805 im TO-220 Gehäuse geliefert, der für höhere Ströme ausgelegt
ist. Für beide Typen sind jedoch Montagemöglichkeiten auf der Platine des Bausatzes
vorhanden. Im Fertiggerät ist grundsätzlich die verstärkte Ausführung verwendet worden.
Beachten Sie die Anschlüsse des µA7805 TO-220, die am Ende dieser Unterlagen unter
Schaltzeichen gezeigt sind.
In der oberen linken Ecke der Schaltung ist der CAN Schaltungsteil gezeigt, der für den
Bausatz einen Microchip MCP2551 verwendet. Einen vergleichbaren Chip verwendet das
Fertiggerät. Diese Transceiver-Chips garantieren eine optimale Datenintegrität auf dem CAN
Bus.
Die Verbindungen zum Fahrzeug (OBD Pin 2 und 10) übertragen die J1850-Protokolle PWM
und VPW, die Verbindungen (OBD Pin 6 und 14) die CAN-Protokolle. Die verbleibenden
zwei Verbindungen zum Fahrzeug (OBD Pin 7 und 15) sind für die zwei Datenlinien, die in
den Standards ISO 9141 und ISO 14230 beschrieben sind. Zur Erfüllung der Normen
kontrolliert der ELM327® beide Linien durch die gezeigten NPN Transistoren, deren PullupWiderstand an deren Kollektoren liegt. Der 510 Ohm Wert für diese Widerstände ist in den
Normen spezifiziert, ein größerer Wert würde nur die Schwellzeit erhöhen und die Schaltung
inoperabel machen. Ein kleinerer Wert könnte die Schaltung zerstören, daher sollte man
möglichst nahe bei 510 Ohm bleiben. Obwohl viele Fahrzeuge mit den ISO-Protokollen 9141
und 14230 die L-Linie nicht mehr brauchen, ist sie hier vorhanden. Sie diente bei älteren
Fahrzeugen nur zur Initialisierung, die Daten werden über die K-Linie übertragen. Sie gehen
zu Pin 12 des IC, nachdem sie durch den Spannungsteiler R20/R21 reduziert wurden.
Der Schaltungsteil für die beiden J1850 Protokolle PWM und VPW verwendet den
einstellbaren Spannungsregler 317L, um die für PWM erforderlichen 8 Volt bzw. für VPW
erforderlichen 5 Volt bereitzustellen, was über die Widerstände von Pin 3 des IC geschaltet
wird. Die beiden Ausgänge benutzen die Treiber der Q1/Q2-Kombination für den Plus-Bus
und Q3 für den Minus-Bus.
Die Spannungs-Meßschaltung für den ATRV-Befehl besteht aus dem an Pin 2 des IC in der
Schaltung gezeigten Teils. Die beiden Widerstände teilen einfach die Spannung auf einen für
den ELM327® unschädlichen Level und die Kondensatoren filtern Rauschen heraus. Im
Werkszustand erwartet der ELM327® das hier verwendete Widerstands-Teilungsverhältnis.
Bei anderen Spannungsbereichen könnten die Widerstände entsprechend geändert werden und
müssen dann mit ATCV kalibriert werden. Der ELM327® kann jedoch nicht mehr als 99,9
Volt anzeigen.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 60
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Ein sehr einfaches RS232-Interface ist an Pin 17 und 18 des ELM327® angeschlossen. Die
erfolgten Änderungen am ELM327® bewirken, daß problemlos auch ein serieller Treiber-IC
wie z.B. MAX232 oder ein USB-Konverter angeschlossen werden könnten. Dies ist beim
Fertiggerät der Fall. Die RS232 Anschlüsse sind für einen 9-poligen seriellen Stecker gezeigt.
Beim 9-poligen Stecker werden Anschlüsse 2 (RxD), 5 (SG) und 3 (TxD) verwendet.
RS232-Daten vom Computer sind im Gegensatz zu der üblichen Schaltung der alten ELM
über den inventierenden Transistor an Pin 18 des IC angeschlossen, da der Eingang des
ELM327® entsprechend geändert wurde..Der Widerstand 4,7 Kilo-Ohm gestattet
Spannungsschwankungen im Ausmaß der Versorgungspegels bei gleichzeitigem Schutz des
ELM327®.
Das Senden von RS232-Daten geschieht über den gezeigten PNP Transistor, angeschlossen
an Pin 17. Dieser Transistor erlaubt das Pendeln der Ausgangsspannung zwischen +5 Volt
und der negativen Spannung gespeichert am 0,1 µF Kondensator, der von der TxD-Linie des
Computers geladen wird. Obwohl eine einfache Verbindung, ist es für diese Anwendung sehr
effektiv. Beachten Sie, daß Pin 5, 6 und 7 über Jumper an VDD angeschlossen sind, so daß
- die Memory-Option eingeschaltet ist,
- die Baudrate auf 38400 Baud eingestellt ist und
- bei jeder Sendung eines Wagenrücklauf-Zeichens (CR) defaultmäßig ein
Zeilenschaltungszeichen (LF) gesendet wird.
Siehe dazu auch weiter unten zur Information über die Jumper.
Die vier LEDs an Pin 25 bis 28 dienen zur Visualisierung der Schaltkreis-Aktivitäten. Alle
LED besitzen getrennte Vorwiderstände für die jeweiligen Tx und Rx LEDs für RS232 und
OBD. Sie sind nicht notwendig, aber eine willkommene Hilfe beim Experimentieren.
Der zwischen Pin 9 und 10 geschaltete Quarz ist schließlich ein üblicher 4,0 MHz Quarz. Die
27 pF Quarz-Ladekondensatoren sind hier nur als typisch gezeigt und können andere Werte je
nach Spezifikation des Quarzes haben. Die Quarz-Frequenz ist kritisch und darf nicht
geändert werden.
Damit ist die Schaltung vollständig beschrieben.
Prüfen Sie vor dem Zusammenbau die Vollständigkeit der Teile. Identifizieren Sie die
Widerstände anhand der Farbringe:
100 Ω - braun/schwarz/braun
240 Ω - rot/gelb/braun
470 Ω - gelb/violett/braun
510 Ω - grün/braun/braun
2,2 kΩ - rot/rot/rot
4,7 kΩ - gelb/violett/rot
10 kΩ - braun/schwarz/orange
22 kΩ - rot/rot/orange
47 kΩ - gelb/violett/orange
100 kΩ - braun/schwarz/gelb
Der letzte Ring kodiert die Toleranz des Widerstandes in %. Sie können die Widerstände
natürlich auch mit einem Multimeter (Ohm-Messung) bestimmen.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 61
________________________________________________________________
Beachten Sie die Polung der Dioden und LED, siehe Hinweise unten unter Schaltzeichen.
Verwechseln Sie nicht die DB9-Printstecker. Der weibliche Stecker ist für die RS232-Seite,
der männliche für die OBD-Seite.
Die drei Jumper (J4 bis 6) für M, B und L müssen unbedingt wie unten gezeigt gesteckt sein:
Die Jumper-Drähte J1 bis J3 werden aus abgekniffenen, überstehenden Drähten der
Widerstände oder ähnlichem entsprechend dem Aufdruck der Platine gesetzt und verlötet.
ELM327
M
B
L
Bild Jumper-Grundstellung
Die Schaltung soll nicht ohne gesteckte Jumper betrieben werden. Die Stellung entspricht den
AT-Befehlen M0/M1 (Grundstellung M1), IB10/IB96 (Grundstellung ist IB10) und L0/L1
(Grundstellung ist L1). Bei gewünschter Einstellung M0, IB96 oder L0 ist jeweils eine
Drahtbrücke anstelle der Jumperleisten einzulöten, wie beispielsweise für M unten gezeigt:
ELM327
M
B
L
Bild Jumperstellung für besondere Anwendungen
ACHTUNG: In Platinen-Revision A wurden diese Jumper geändert. Es werden dabei 3 x 3
Stiftleisten eingelötet und die Jumper-Grundstellung bleibt jedoch wie beim obersten Bild
„Jumper-Grundstellung“ gezeigt. Für besondere Anwendungen wird hingegen keine
Drahtbrücke gesetzt, sondern die Jumper wie unten gezeigt umgesetzt.
ELM327
M
B
L
Bild Platinen-Rev. A, Jumperstellung für besondere Anwendungen
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 62
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Nach dem Einsetzen des IC ELM327® zum Abschluß des Aufbaues testen Sie die Schaltung
durch Anlegen einer 9 Volt Spannung von einer 9V-Blockbatterie mit Plus an OBD-Pin 16
und Minus an OBD-Pin 5. Beim Einschalten der Spannung sollten die LED L1 bis L4 der
Reihe nach kurz aufblinken und die LED L5 Dauerlicht zeigen. Dies sollte nun auch beim
Senden des Befehls ATZ mit einem Terminal-Programm wie z.B. Hyperterminal erfolgen,
wenn auch das serielle Kabel mit einem Computer verbunden wurde und das TerminalProgramm auf 8N1, 38400 Baud, keine Flußkontrolle konfiguriert wurde. Die Schaltung ist
nun einsatzbereit.
Fertiggeräte ElmCan®
Die Fertiggeräte sind in SMD-Technik aufgebaut und können daher eine wesentlich kleinere
Platine verwenden. Die Schaltung ist größtenteils identisch, d.h., es findet ebenfalls ein
verstärkter Spannungskonstanter Verwendung und es sind ebenfalls Jumper zur Einstellung
bei besonderen Anwendungen vorhanden, die jedoch aus Platzgründen als Lötpunkte
ausgeführt sind. Der im Bausatz mit Transistoren aufgebaute RS232-Teil besteht im
Fertiggerät aus einem MAX232 IC. Es werden die gleichen Anschlußkabel verwendet wie
beim Bausatz.
Bild Platine ElmCan-SER Fertiggerät
Bild Platine ElmCan-USB Fertiggerät
Für die USB Versionen des ElmCan® Interfaces sind zum Betrieb mitgelieferte USB Treiber
erforderlich, deren Installation hier im Anhang erklärt ist. Die ElmCan®-I USB Version
arbeitet wie die serielle Version mit einer Baudrate von 38.400 kbps, die ElmCan®-II USB
Version arbeitet mit bis zu 500.000 kbps.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 63
________________________________________________________________
Die Installation der ebenfalls erhältlichen ElmCan® Bluetooth Version ist auch im Anhang
hier geschildert.
Jumper
Sollen die Jumper umkonfiguriert werden, muß das Gehäuse geöffnet werden. An jeder
Längsseite des Gehäuses befinden sich je zwei Schlitze im Bereich der Gehäude-Trennfuge.
In diese Schlitze wird die Klinge eines passenden Schraubenziehers eingeführt und der
Schraubenzieher leicht gedreht, so daß das Gehäuse aufspringt. Wenden Sie bitte dazu keine
Gewalt an und entfernen Sie die Gehäusehälften dann vorsichtig voneinander, um die
durchgesteckten LED nicht zu beschädigen.
Jumper J4
Der 16-polige OBD2-Fahrzeugstecker am Fahrzeug führt an Pin 4 Fahrzeug-Masse und an
Pin 5 Signal-Masse. Laut OBD2-Normen sollte keine Spannungsdifferenz zwischen
Fahrzeug-Masse und Signal-Masse auftreten. Der einzuführende Diagnosestecker soll gemäß
Normen außerdem längere Pins für 4 + 5 aufweisen, so daß beim Einstecken eines
Diagnosegerätes zuerst Masse verbunden wird. (Manche Anwender bemängeln den Stecker
wegen der beiden hervorstehenden Pins, das ist aber so gewollt.) Erfahrungsgemäß können
einzelne Fahrzeuge Probleme bereiten, wenn nur die nach den Normen eigentlich
ausreichende Signal-Masse mit dem Diagnosegerät verbunden ist. Ist das der Fall, kann mit
Jumper 4 durch Setzen eines Lötpunktes zur Überbrückung Pin 4 und Pin 5 verbunden
werden.
Bild Platinenausschnitt Jumper 4
Überprüfen Sie anschließend die Kabelverbindung anhand der folgenden Skizze (DB9 Pin 1 +
2)..
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 64
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Jumper L, B, M
Diese Jumper sind im Auslieferungszustand geschaltet wie in der Jumper-Grundeinstellung
beim Bausatz gezeigt . Wird für besondere Anwendungen eine Änderung gewünscht, müssen
die im Bild unten gezeigten Leiterbahnen aufgetrennt werden und entsprechende Lötpunkte
zur Überbrückung gesetzt werden.
Hier Leiterbahn auftrennen
und Lötpunkte zur Überbrückung setzen.
ACHTUNG: Zur Vermeidung von Kurzschlüssen in der Schaltung überprüfen Sie die
Änderung anhand des Schaltplanes unten z.B. mit einem Multimeter, bevor Sie die Schaltung
mit Spannung beaufschlagen.
Zum Öffnen des ElmCan® Gehäuses führen Sie die Klinge eines passenden Schraubenziehers
nacheinander in jede der zwei Schlitze an jeder Seite ein und drehen den Schraubenzieher
leicht, bis die Gehäuseverriegelung aufspringt (siehe Bild unten).
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 65
________________________________________________________________
Bild Bestückung Bausatz
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 66
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Bild Schaltplan Bausatz
Anhang
Stückliste Bausatz
Bezeichnung
U1
U2
U3
U4
Q1, Q3, Q5, Q6, Q7, Q9
Q2, Q4, Q8
D1
Anzahl
1
1
1
1
6
3
1
Bauteil
ELM327®
MCP2551
78L05
LM317L
NPN Transistor 2N3904 o.ä.
PNP Transistor 2N3906 o.ä.
Diode 1N4001
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 67
________________________________________________________________
D2, D3, D4, D5
L1, L3
L2, L4
L5
R32, R33
R5
R1, R2, R3, R4, R27, R28, R29, R30
R17, R19
R16, R18
R6, R7, R14, R15, R23, R26, R31
R8, R9, R11, R13, R22, R24, R25,
R35
R10, R21
R20, R34
R12
C3, C4
C1, C2, C5, C6, C7
C8, C9
X1
Platine ElmCan
IC-Sockel 28
DB9M
DB9F
OBD2-Kabel
RS232-Kabel
Jumper-Stifte
Jumper
Schutztasche
CD-ROM
4
2
2
1
2
1
8
2
2
7
8
Diode 1N4148
LED 3mm rot
LED 3mm gelb
LED 3mm grün
Widerstand 100 Ω
Widerstand 240 Ω
Widerstand 470 Ω
Widerstand 510 Ω
Widerstand 2,2 kΩ
Widerstand 4,7 kΩ
Widerstand 10 kΩ
2
2
1
2
5
2
1
1
1
1
1
1
1
9
3
1
1
Widerstand 22 kΩ
Widerstand 47 kΩ
Widerstand 100 kΩ
Kondensator 27 pF
Kondensator 0,1 mF 50V
Kondensator 560 pF
Quartz 4,00 MHz
Platine
IC-Sockel für ELM327®
DB9 Printstecker männlich
DB9 Printstecker weiblich
OBD/DB9-Kabel
DB9M/DB9F-Kabel
Jumper-Stifte 3 x 3
Jumper
Tasche
CD-ROM
alle Widerstände ¼ Watt.
ACHTUNG:
Die Bausätze wurden von Menschen zusammengestellt, Fehler können daher vorkommen.
Prüfen Sie bitte vor dem Zusammenbau alle Teile auf Vollständigkeit.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 68
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Schaltzeichen
Transistoren
Bild: 2N-Typen
Bild: BC-Typen
Bedruckung der ElmScan- und ElmTest-Platinen zeigt 2N-Typen. Bei Verwendung von BCTypen müssen diese um 180° gedreht eingesetzt werden, da Emitter und Kollektor vertauscht
sind.
NPN-Transistor:
PNP-Transistor:
µA7805 TO-220:
Diode, LED
Bedruckung der ElmCan-Platine zeigt für Dioden und LED das Schaltsymbol, ein (+)Zeichen oder ein (A) bzw. ein (K). Kathode ist bei Dioden ein Ring, bei LED das kurze Bein.
Bild: Fertiger Bausatz (hier ohne IC-Sockel)
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 69
________________________________________________________________
Bezugsquellen/Lieferanten
CarCode Müller
Schulze-Delitzsch-Str. 7
30938 Burgwedel
Tel. 05139/896834
Fax 05139/896835
[email protected]
www.obd-2.de
CarCode eShop
www.CarCode-eShop.de
www.obd-2.de/eShop/index.php
Konformität
Alle CarCode Müller Produkte erfüllen die gesetzlichen Bestimmungen nach CE und RoHS.
Entsorgungshinweis
Alle CarCode Müller Produkte entsprechen den §§ 4, 5 und 7 des Elektro- und
Elektronikgerätegesetzes vom 16.03.2005. Die Entsorgung des Interfaces über den normalen
Hausmüll ist nicht zulässig. Der Vertrieb oder CarCode Müller, Schulze-Delitzsch-Str. 7, DE30938 Burgwedel nehmen die Interfaces zur Behandlung gemäß § 11 oder § 12 Elektro- und
Elektronikgerätegesetz kostenlos zurück.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 70
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Anhang für ElmCan®-USB Treiber-Installation
Für die USB-Version des ElmCan® muß vor Verwendung der entsprechende auf der CD
mitgelieferte USB-Treiber auf dem Computer installiert sein. Ein USB-Stack (USBUnterstützung des Betriebssystems) ist erst ab Windows-98 verfügbar. Voraussetzung ist also
Windows-98 und höher. Treiber für 64-Bit sind auf Anfrage verfügbar. Treiber für WinCE
und Linux/Unix befinden sich ebenfalls auf der CD. Treiber für andere Betriebssysteme
fragen Sie bitte bei CarCode Müller an. Aktuelle Treiber werden auf der ElmCan® UpdateSeite veröffentlich, für die der Anwender eine Zugangsberechtigung erhalten hat.
Den folgenden Text können Sie bis zum Punkt „Treiber-Konfiguration“ überspringen, wenn
Sie unsere neue Treiberinstallationsmethode für Windows2000, XP und höher verwenden, die
wir als Datei EC-USB.zip bzw. EC-USB.exe ab 22. März 2006 zur Verfügung stellen. Neue
Versionen der ScanMasterELM-OEM Software werden diese Installationsmethode bereits
integrieren. Damit haben wir eine wesentliche Vereinfachung der Treiberinstallation erreichen
können, da nun die Treiber ohne angeschlossenes ElmCan-USB vorinstalliert werden und
dann beim Anschluß des ElmCan-USB sofort zur Verfügung stehen, ohne daß der
langwierige Vorgang des Windows Hardware-Assistenten ablaufen muß.
Wie bei Windows sonst üblich, startet beim Einstecken unbekannter Hardware der Plug-andPlay Hardware-Wizard (-Assistent). Das anzuschließende Gerät muß dazu betriebsbereit
(eingeschaltet) sein, wie Sie es beim Anschluß z.B. eines neuen Druckers oder ähnlichem
kennen. So geschieht es auch beim erstmaligen Anschluß des ElmCan®-USB. Das ElmCan®USB ist betriebsbereit, wenn die Power-LED leuchtet, das Interface also Betriebsspannung
über den OBD2-Stecker des Fahrzeugs bekommt. ElmCan®-II USB erfolgt die
Spannungsversorgung des USB-Teils hingegen über das USB Kabel vom angeschlossenen
Computer, so daß zur Installation über den Wizard keine andere Stromquelle erforderlich ist.
Alternativ können Sie das ElmCan®-USB dazu auch mit einer anderen 12VGleichstromquelle versorgen, wenn kein Fahrzeug verfügbar ist. Tun Sie das bitte nur im
Ausnahmefall, da keine Garantie beim Anlegen einer Spannung an einen falschen Kontakt
des ElmCan®-USB übernommen werden kann. Idealerweise verwenden Sie dazu das Netzteil
ZUB-NT von CarCode Müller, ansonsten muß Plus-12V= an Kontakt 16 am OBD2-Stecker
des OBD2-Kabels liegen und Minus-12V= an Kontakt 5 liegen. Achtung: Die
Kontaktnummerierung des OBD-Steckers ist bei jeweiligem Blick auf die Kontakte
spiegelverkehrt zur OBD-Buchse.
Blick auf die Kontakte des OBD2-Steckers (OBD2-Kabel)
Startet der Wizard nicht automatisch nach einer Wartezeit, wurde bereits früher schon ein
USB-Seriell-Treiber auf Ihrem Computer installiert. Deinstallieren Sie diesen bitte vorher
unter Einstellungen/Software (siehe auch weiter unten Deinstallieren).
Gehen Sie nicht auf die automatische Suchfunktion im Wizard, sondern klicken Sie manuelle
Suche an und geben Sie das Verzeichnis USB der eingelegten CD als Suchort an. Je nach
Ihrem Betriebssystem können Sie auch das entsprechende Unterverzeichnis 98-ME für
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 71
________________________________________________________________
Windows98 oder WindowsME anwählen oder W2K-XP für Windows2000 oder WindowsXP.
Der Hardware-Wizard installiert nun automatisch den richtigen Treiber.
Treiber-Konfiguration
Überprüfen Sie anschließend die erfolgreiche Installation im Geräte-Manager.
Öffnen Sie im Geräte-Manager Anschlüsse (COM und LPT) und klicken Sie mit der rechten
Maustaste auf USB Serial Port zum Öffnen des Kontextmenüs Eigenschaften wie oben. Es
erscheint das folgende Fenster, in dem die dort gezeigten Einstellungen zu verwenden sind,
wenn Sie den ELM327 ® Chip im Standard-Modus betreiben. Bei Verwendung älterer ELMSoftware muß eventuell 9600 Baud (Bps, Bits per second) eingestellt werden.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 72
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Zur Feststellung und – falls erforderlich – zur Änderung der COM-Port Nummer klicken Sie
auf den Advanced Button. Es erscheint das Fenster wie unten. Lassen Sie die anderen
Einstellungen bei ihren Grund- oder Werkseinstellungen.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 73
________________________________________________________________
Mit dem Button Defaults kann erforderlichenfalls wieder auf die Werkseinstellungen
zurückgesetzt werden.
Zur Überprüfung der Versionsnummern der installierten Treiber können Sie die Lasche
Treiber im Eigenschaftenfenster anwählen. Es wird das Bild auf der folgenden Seite gezeigt.
Zur Untersuchung der USB-Umgebung Ihres Computers können Sie auch das Programm
„usbview.exe“ verwenden, das sich im USB-Verzeichnis Ihrer CD befindet.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 74
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Mit dem Button Treiberdetails können Sie sich weitere Informationen über die einzelnen
Dateien des verwendeten USB-Treibers anzeigen lassen. Das kann erforderlich werden, wenn
Sie den Support bei Problemen konsultieren möchten. Markieren Sie dazu die jeweilige Datei
zur Anzeige der Versionsinformation.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 75
________________________________________________________________
Zum Deinstallieren des Treibers verwenden Sie das Windows-Startmenü  Einstellungen 
Software und wählen den FTDI-Treiber:
Klick auf Button Ändern/Entfernen deinstalliert den Treiber von Ihrem System. Der USBAnschlußstecker muß dazu entfernt werden. Diese Meldung fordert Sie dazu auf:
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 76
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Anhang für ElmCan®-Bluetooth
Einführung
Die Bluetooth Drahtlos Technologie ist eine Funktechnologie für kurze Reichweiten. Mit der
Bluetooth Drahtlos Technologie können Signale über kurze Strecken zwischen Telefonen,
Computern und anderen Geräten übertragen werden und damit die Kommunikation und
Synchronisation von Geräten vereinfachen. Es ist ein globaler Standard, der
– Leitungen und Kabel zwischen stationären und mobilen Geräten ersetzt,
– Daten- und Sprachkommunikation vereinfacht,
– die Möglichkeit von ad hoc Netzwerken bietet und eine ultimative Synchronisierung aller
persönlichen Geräte gestattet.
Die Bluetooth Drahtlos Technologie umfaßt Hardware, Software und interoperative
Anforderungen. Neben der Befreiung von Kabeln stellt die Bluetooth Drahtlos Technologie
eine universelle Brücke zu existierenden Daten-Netzwerken, ein peripheres Interface und die
Möglichkeit zur Bildung kleiner privater ad hoc Gruppen von verbundenen Geräten abseits
von festen Netzwerk-Infrastrukturen zur Verfügung. Bluetooth Funk verwendet eine schnelle
Erkennungsmethode und Frequenzwechsel Schema, um die Verbindung auch in gestörten
Funkumgebungen robust zu machen. Der Standard umfaßt auch stärkere weiter reichende
Geräte zur Verwendung in drahtlosen Netzen.
Ein Bluetooth Gerät, das die „Master“ Rolle spielt, kann mit bis zu 7 Geräten kommunizieren,
die die „Slave“ Rolle spielen. Es können zu jeder Zeit Daten zwischen einem Master und
einem Slave übertragen werden, aber der Master schaltet schnell von Slave zu Slave in einer
Round-Robin Art. Diese Gruppen von bis zu 8 Geräten (1 Master und 7 Slaves) werden
Piconet genannt.
Jedes Gerät kann eine Abfrage zur Verbindungssuche mit anderen Geräten machen und jedes
Gerät kann so konfiguriert werden, daß es auf solche Anfragen antwortet.
Gerätepaare können eine sichere Verbindung aufnehmen, indem sie einen gemeinsamen vom
Anwender eingegebenen Schlüssel lernen. Ein Gerät, das nur mit einem sicheren Gerät
kommunizieren möchte, kann die Erkennung der Identität des anderen Gerätes verschlüsseln.
Sichere Geräte können die über Funk versendeten Daten verschlüsseln, so daß sie nicht
abgehört werden können.
Das Protokoll arbeitet im lizenzfreien ISM Band bei 2,45 GHz. Um Interferenzen mit anderen
Protokollen im 2,45 GHz Band zu vermeiden, teilt das Bluetooth Protokoll das Band in 79
Kanäle und wechselt die Kanäle bis zu 1600-mal pro Sekunde. Die Versionen 1.1 und 1.2
erreichen Datenraten von 723,1 kbits/s.
Bluetooth unterscheidet sich von Wi-Fi, als daß letzteres eine höhere Datenrate und größere
Distanzen abdeckt, aber teuerere Hardware und höheren Strombedarf benötigt. Sie verwenden
den gleichen Frequenzbereich, aber arbeiten mit unterschiedlichem Multiplexing Schemen.
Während Bluetooth ein Kabelersatz für einen weiten Anwendungsbereich ist, ist Wi-Fi nur
ein Ersatz für Local Area Network (LAN) Zugang. Grob gesagt ist Bluetooth drahtloses USB
und Wi-Fi ist drahtloses Ethernet.
Die folgenden Seiten beschreiben die Bluetooth Verbindung zwischen dem OBD-2 Interface
ElmCan®-BT und einem Computer, Laptop, Pocket-PC (PDA) oder Smartphone mit entweder
eingebautem Bluetooth oder nachgerüstetem Bluetooth-Dongle.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 77
________________________________________________________________
BluePort
Das BluePort ist ein Klasse 1 Bluetooth Funk Modem mit 2,4 GHz RF Keramik Chip
Antenne und einem High Power Transceiver (100m/330ft). Das Modul ist Bluetooth Version
1.1 kompatibel und wird direkt mit dem ElmCan® verbunden. Das ElmCan® wird damit zum
ElmCan®-BT. Die aktuelle Reichweite kann aufgrund der Umgebungsbedingungen variieren.
Die Spannungsversorgung erfolgt über das ElmCan® Interface. Das Modul ist daher erst
betriebsbereit, wenn auch das ElmCan® über den Anschluß am Fahrzeug-Diagnosestecker mit
Spannung versorgt wird. Maximale Stromaufnahme ist 40 Milliampere und 1 Milliampere bei
Standby Betrieb. Soll das BluePort für andere Zwecke verwendet werden, kann es an ein
externes Netzteil für 5V= angeschlossen werden (Mittelpunkt +, außen -).
Das BluePort hat zwei Status-LED. Die grüne LED zeigt den BluePort Gerätestatus an, die
gelbe LED den Status den Sende- und Empfangszustand. Die Tabelle zeigt die Zustände der
grünen LED:
BluePort Geräte Status
Blinkrate grüne LED
Konfigurierung
Schnell, 10-mal pro Sekunde
Bootup, Remote Konfigurierung
2-mal pro Sekunde
Suchmodus/Leerlauf
1-mal pro Sekunde
Verbunden
Dauerlicht
Die gelbe LED zeigt den physikalischen Status der TX und RX Datenleitung mit gestreckter
Pulsweite zur besseren Visualisierung. Die gelbe LED blinkt, wenn Daten über die Kontakte
2 und 3 gesendet oder empfangen werden.
Das BluePort ist für den Betrieb mit dem ElmCan® und der OBD-2 Diagnoseanwendung auf
PC, Laptop, PDA oder Smartphone konfiguriert. Es verwendet hierzu das sog. Bluetooth
Serial Port Profile (SPP) und erzeugt einen virtuellen COM Port auf dem Client. Da das
BluePort für einen weiten Anwendungsbereich sowohl durch DIP-Schalter als auch durch
Hayes AT-Befehle konfiguriert werden kann, muß die Konfiguration des Lieferzustandes
unbedingt beibehalten werden, um einen ordnungsgemäßen Betrieb mit dem ElmCan®
Interface zu gewährleisten, das damit zum ElmCan®-BT geworden ist.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 78
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Die DIP-Schalter am Boden des BluePort müssen folgende Stellung haben:
Die Werkseinstellungen können mit DIP-Schalter 1 wie folgt wieder hergestellt werden:
– DIP-Schalter 1 auf ON stellen
– Spannungsversorgung einschalten (LED an) und
– DIP-Schalter zweimal von ON nach OFF schalten.
Darüber hinaus müssen die internen Jumper im BluePort wie folgt stehen:
Soll das BluePort für andere Anwendungen konfiguriert werden, beachten Sie bitte die
separate Dokumentation des BluePort, die nicht nur die weitere Erklärung der DIP-Schalter
und Jumper umfaßt, sondern auch die Möglichkeit zur Konfiguration der Firmware über ein
ASCII-Terminalprogramm wie HyperTerminal bei Bluetooth-Verbindung oder serieller
Verbindung zum BluePort. Es stehen hierzu über 20 verschiedene Konfigurationsbefehle zur
Verfügung.
Bluetooth Installation
Egal ob Sie Bluetooth mit einem PC/Laptop oder PDA bzw. Smartphone mit Windows-CE
oder Windows-Mobile verwenden wollen, zur Installation muß immer das ElmCan®-BT mit
dem BluePort betriebsbereit sein. Das bedeutet, am ElmCan® Interface leuchtet dauerhaft die
Power-LED und am BluePort blinkt die Power-LED im Bereitschaftstakt (siehe Tabelle
oben). Dazu verbinden Sie das OBD-2 Kabel mit dem Diagnosestecker des Fahrzeugs und
dem ElmCan®. Das BluePort ist an der anderen Seite des ElmCan® angesteckt. Bei den
meisten Fahrzeugen muß dazu die Zündung nicht eingeschaltet sein. Der FahrzeugCopyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 79
________________________________________________________________
Diagnosestecker führt auch bei ausgeschalteter Zündung die erforderliche
Versorgungsspannung.
Steht Ihnen zur Installation kein OBD2-Fahrzeug zur Verfügung, ist es für einen versierten
Techniker auch möglich, mit einer 9V-Blockbatterie die Versorgungsspannung über Pin 16
(+) und Pin 5 (-) des OBD2-Steckers am OBD2-Kabel zuzuführen, um die Installation von
Bluetooth durchzuführen.
Auf dem Computer, Laptop, PDA oder Smartphone muß eine Bluetooth-Software, der sog.
Bluetooth-Stack, vorhanden sein. Das ist bei Geräten mit eingebauter Bluetooth-Hardware
immer der Fall. Bei Computern/Laptops ohne Bluetooth wird dies meist einfach mit einem
sog. Bluetooth-Dongle, der in eine freie USB-Buchse gesteckt wird, nachgerüstet. Die
Bluetooth Hardware des Computers muß die gleiche Reichweite (Class 1) haben, wie das
BluePort des ElmCan®-BT, um die volle mögliche Reichweite des BluePort ausnutzen zu
können. Die Bluetooth Software auf dem Computer muß das Serial Port Profile (SPP)
unterstützen können. Anschließend wird die mitgelieferte Bluetooth Software installiert oder
sie war bei Computern mit Windows-XP und Service-Pack 2 und höher schon vorhanden.
Computer-Software installieren
Überspringen Sie diesen Part, wenn der Computer bereits Bluetooth installiert hat.
Am Beispiel der WIDCOMM Bluetooth Software zeigen wir die Installation:
Nach dem Start der Setup-Datei beginnt die Installationsroutine. Klicken Sie Next für
weitermachen.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 80
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Lesen und akzeptieren Sie die Lizenzbedingungen. Klicken Sie Next für weitermachen.
Die Software wird in dem vorgeschlagenen Ordner installiert. Klicken Sie Next für
weitermachen.
Die Installation beginnt. Klicken Sie Install für weitermachen.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 81
________________________________________________________________
Während der Installation erscheint eine Notiz über die Treiber Signatur.
Klicken Sie auf OK für weitermachen. Die Installation wird dann fortgesetzt.
Ist der Bluetooth USB-Dongle nicht bereits in den USB-Port gesteckt, erscheint diese
Warnung. Stecken Sie den Dongle in eine beliebige USB Buchse und klicken Sie dann OK.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 82
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Die Installation ist nun beendet. Klicken Sie Finish.
Der Computer muß jetzt neu gestartet werden, damit die Änderungen wirksam werden.
Bluetooth Konfiguration
Bevor Sie Bluetooth auf dem Computer verwenden können, müssen einige
Erstkonfigurationen gemacht werden. Doppelklicken Sie dazu auf das neue Bluetooth Symbol
auf dem Desktop.
Das Konfigurations-Dialogfenster erscheint.
Klicken Sie Next zum weitermachen.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 83
________________________________________________________________
Geben Sie Ihrem Computer einen Namen, wählen Sie den Computer-Typ und klicken Sie
Next zum weitermachen.
Zum Konfigurieren der Bluetooth Dienste klicken Sie Next.
Wählen Sie die Dienste, die Sie benötigen. Für das BluePort wird nur der Bluetooth Serial
Port benötigt. Nur dieser Dienst wird hier beschrieben. Bei Bedarf lesen Sie für die anderen
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 84
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Dienste in der Software-Dokumentation nach. Klicken Sie Next zum weitermachen. Der
gewählte Dienst wird installiert.
Anschließend erscheint wieder der Konfigurations-Assistent. Klicken Sie Skip (überspringen)
zum weitermachen.
Glückwunsch, die Installation ist beendet. Klicken Sie Finish zum Beenden des
Installationsprogramms.
Wird mit dem Bluetooth-Dongle eine andere Software mitgeliefert z.B. von Toshiba, dann
läuft die Installation der Bluetooth Software ähnlich ab.
Konfiguration des BluePort (ElmCan-BT)
Überspringen Sie diesen Schritt, wenn Sie Windows-XP mit Service-Pack 2 oder höher
haben. Siehe dazu Konfiguration des BluePort (ElmCan-BT) mit Windows Bluetooth Stack
weiter unten.
Bei diesem Beispiel wurde der Toshiba Bluetooth Stack verwendet. Bei einem anderen
Bluetooth Stack ist der Ablauf ähnlich.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 85
________________________________________________________________
Starten Sie Bluetooth-Einstellungen von dem neuen Symbol Bluetooth-Umgebung auf dem
Desktop oder von dem Symbol rechts auf der Startleiste.
Klicken Sie auf Neue Verbindung.
Der Assistent zum Einrichten einer neuen Bluetooth Verbindung erscheint. Klicken Sie
Weiter.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 86
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Die in Reichweite befindlichen Bluetooth Geräte werden gesucht. Zur Erkennung müssen
diese Geräte betriebsbreit, also eingeschaltet (mit Spannung versorgt) sein.
In diesem Beispiel wurden 3 Geräte gefunden. Markieren Sie das ElmCan®-BT und klicken
Sie Weiter.
Das ElmCan®-BT ist so konfiguriert, daß von einigen Bluetooth Stacks der Schlüssel selbst
erkannt werden kann. Wird zur Eingabe des Schlüssels aufgefordert, dann geben Sie 1234 ein.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 87
________________________________________________________________
Die Konfiguration ist abgeschlossen, dem ElmCan®-BT wurde in diesem Beispiel der COMPort 40 zugewiesen. Die COM-Port Nummern reichen bis zu 64. Die zugewiesene COM-Port
Nummer muß später in der OBD-2 Software eingestellt werden, wenn diese Software den
COM-Port nicht selbsttätig findet. Klicken Sie Weiter.
Klicken Sie Weiter. Mit Fertig stellen ist der Vorgang abgeschlossen.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 88
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
In den Bluetooth-Einstellungen erscheint nun das ElmCan®-BT. Sie können die Ansicht
ändern:
Mit rechter Maustaste auf den Eintrag können Sie mit dem ElmCan®-BT verbinden oder
trennen.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 89
________________________________________________________________
Mit Details oder dem Menüpunkt Einstellungen für ... sehen Sie die Informationen unten:
Konfiguration des BluePort (ElmCan®-BT) mit Windows Bluetooth Stack
Windows-XP mit Service-Pack 2 und höher enthält bereits einen Bluetooth Stack. Das
ElmCan®-BT muß betriebsbereit sein, damit die Konfiguration vorgenommen werden kann.
Gehen Sie zu Start --> Einstellungen --> Systemsteuerung --> Netzwerk- und
Internetverbindungen und wählen Sie Bluetooth-Geräte.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 90
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Das Bluetooth-Geräte Fenster erscheint. Drücken Sie Hinzufügen.
Der Assistent startet. Drücken Sie Weiter.
Bluetooth-Geräte in Reichweite werden gesucht.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 91
________________________________________________________________
Alle gefundenen Bluetooth-Geräte in Reichweite werden angezeigt.
ElmCan®-BT markieren und Weiter drücken.
Schlüssel 1234 eingeben und Weiter drücken.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 92
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
ElmCan®-BT wird installiert.
ElmCan-BT ist installiert und kann über COM3 verwendet werden, drücken Sie Fertig stellen.
Im Bluetooth-Geräte Fenster erscheint das ElmCan®-BT nun als betriebsbereit.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 93
________________________________________________________________
Ist das ElmCan®-BT im Bluetooth-Geräte Fenster markiert, können seine Eigenschaften
angesehen werden:
Der serielle Anschluß (SPP = Serial Port Profile) ist bei diesem Beispiel als COM5 verfügbar.
Die COM-Port Nummer kann bei Ihnen anders sein. Maximal sind Com-Port Nummern bis
64 möglich. Die COM-Port Nummer muß in der verwendeten OBD-2 Software eingestellt
sein. Dies geschieht bei manchen OBD-2 Programmen automatisch, bei anderen muß es von
Hand eingestellt werden. Je nach verwendetem Bluetooth Stack kann die vom ElmCan®-BT
zugewiesene COM-Port Nummer von Hand geändert werden.
Haben Sie Probleme mit Ihrer OBD-2 Software, können Sie ebenso wie bei den ElmCan®Seriell oder ElmCan®-USB Interfaces mit Hyperterminal eine ASCII Terminalverbindung
zum ElmCan®-BT aufbauen und die Verbindungen Computer – Interface bzw. Interface –
Fahrzeug testen. Siehe oben in der ElmCan® Hardware-Dokumentation über TerminalBefehle (AT-Befehle bzw. hexadezimale OBD-2 Befehle). Hyperterminal muß die COMEinstellungen 8N1, keine Flußkontrolle, 38.400 Baud haben.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 94
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Installation für Pocket-PC (PDA) und Smartphones
(Windows-CE bzw. Windows-Mobile)
Prüfen Sie, ob Ihr Gerät über Bluetooth verfügt und SPP unterstützt. Weiterhin ist eine mit
ActiveSync auf dem mobilen Gerät aufgespielte OBD-2 Software für ElmCan® erforderlich.
Bluetooth muß auf dem mobilen Gerät aktiviert sein und das ElmCan®-BT ist betriebsbereit.
Starten Sie dann den Bluetooth Manager. Hier zunächst für PDA, Windows-CE:
Tippen Sie Neu, um das
ElmCan®-BT zu installieren.
Die Installation beginnt:
1.
2.
3.
Aktivieren Sie Bluetooth Gerät durchsuchen, markieren Sie das gefundene ElmCan®-BT,
tippen Sie Weiter und warten Sie auf den gefundenen Dienst.
4.
5.
6.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 95
________________________________________________________________
Markieren Sie den gefundenen Dienst (SPP = Serial Port Profile), markieren Sie
Verschlüsselte Verbindung verwenden und tippen Sie Weiter und dann Fertig.
7.
8.
9.
®
Das ElmCan -BT erscheint nun im Bluetooth Manager. Doppel-Tippen oder langer
Tippdruck zum Aufruf des Kontextmenüs und dort Verbinden wählen verbindet das
ElmCan®-BT (Bild 9 mit Details).
10.
11.
12.
Zwei grüne Pfeile zeigen ein verbundenes ElmCan®-BT an. Das Kontextmenü Status und
Lasche Aktive Verbindungen zeigen weitere Informationen.
13.
14.
15.
Bei nicht verbundenem ElmCan®-BT können über das Kontextmenü die Eigenschaften
abgerufen werden (Bild 13.). Zum Entfernen gehen Sie zum Menü Extras / Gekoppelte
Geräte, markieren das ElmCan®-BT und tippen Entfernen.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 96
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Im Folgenden wird die Installation auf einem Smartphone mit Windows-Mobile gezeigt:
Gehen Sie auf Start --> Einstellungen --> Verbindungen und starten Sie Bluetooth.
1.
2.
3.
Bluetooth ist eingeschaltet, bei Lasche Geräte tippen Sie auf Neue Partnerschaft. Bluetooth
Geräte in Reichweite werden gesucht...
4.
5.
6.
Hier wurden 2 Bluetooth Geräte gefunden. Markieren Sie ElmCan®-BT, tippen Sie auf Weiter
und geben Sie im folgenden Screen den Schlüssel 1234 für das ElmCan®-BT ein. Tippen Sie
dann auf Weiter.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
CarCode Müller
ElmCan® ELM327®
Seite 97
________________________________________________________________
7.
8.
9.
Wählen Sie Serieller Anschluß und tippen Sie Fertig. Das ElmCan®-BT ist nun in der
Geräteliste. Tippen Sie Lasche COM-Anschlüsse und dort auf Neuer ausgehender Anschluß.
10.
11.
12.
In dem darauf folgenden Screen wählen Sie eine freie COM-Port Nummer (hier im Beispiel
COM2) und aktivieren Sie Sichere Verbindung. Tippen Sie Fertig. Unter der Lasche
Sicherheit können Sie die Einstellung verifizieren. Die Konfiguration des ElmCan®-BT ist
damit beendet. Beachten Sie, daß in der OBD-2 Software für PPC der entsprechende COMPort einzustellen ist, wie er in der Konfiguration oben festgelegt wurde.
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Seite 98
CarCode Müller
ElmCan® ELM327®
________________________________________________________________
Inhaltsverzeichnis
Einführung ELM Chips und ELM327
Leistungsbeschreibung ELM327
Pin-Beschreibung ELM327
Elektrische Charakteristika
Übersicht
Kommunikation mit dem ELM327
AT-Befehle
Übersicht ELM327 AT-Befehle
Batterie-Spannung lesen
Bus Initialisierung
Wachhalte-Nachrichten
OBD-Befehle
Mit dem Fahrzeug „sprechen“
Mehrzeilige Antworten
Interpretation von Fehlercodes
Löschen von Fehlercodes
Schnell-Anleitung zum Auslesen von Fehlercodes
Protokoll Auswahl
OBD Nachrichten Formate
IC Zurücksetzen
Fortgeschrittene Datenabfrage, Setzen der Kopfbytes
Bus Überwachung
CAN Nachrichten und Filterung
CAN Nachrichten Formate
Änderung Fluß-Kontroll Nachrichten
Programmierbare Parameter
Fehlermeldungen
Applikation Bausatz ElmCan
Applikation Fertiggeräte ElmCan
Jumper J4
Jumper L,B,M
Schaltplan
Stückliste Bausatz
Schaltzeichen
Bezugsquellen
Konformität
Entsorgungshinweis
Anhang USB-Treiber Installation
Anhang ElmCan Bluetooth Installation
1
2
3
6
7
7
9
24
25
26
29
29
31
33
36
37
38
39
41
42
43
47
49
50
52
53
57
58
62
63
64
66
66
68
63
69
69
70
76
Copyright 2007 by CarCode Müller, alle Rechte vorbehalten.
Herunterladen