ELM327 ist ein textbasiertes Austauschprotokoll auf Basis von AT-Befehlen, das ursprünglich für den gleichnamigen OBD-Interpreter der Firma ELM Electronics entwickelt wurde. Aufgrund seiner Einfachheit hat es sich zum De-facto-Standard für die OBD-II-Diagnose entwickelt und wird von der überwiegenden Mehrheit der Diagnoseanwendungen und -bibliotheken unterstützt.
Der ScanDoc-Adapter implementiert ELM327 v2.3 mit einem erweiterten Befehlssatz, der die Unterstützung von DoIP (Diagnostics over IP) für die Ethernet-Diagnose moderner Fahrzeuge umfasst.
Der Datenaustausch erfolgt über eine serielle Schnittstelle (WLAN, BLE oder USB). Befehle werden als ASCII-Text gesendet und mit einem Wagenrücklaufzeichen (CR, 0x0D) abgeschlossen. Der Adapter antwortet mit dem Ergebnis, gefolgt vom Eingabeaufforderungszeichen
>.
Es gibt zwei Arten von Befehlen:
AT).BMW-Fahrzeuge verwenden die erweiterte CAN-Adressierung (CAN Extended Addressing), bei der das erste Datenbyte des CAN-Rahmens die Adresse des Ziel-Steuergeräts enthält. Nachfolgend ein reales Beispiel einer Diagnosesitzung.
// --- Initialisierung des Adapters --- >ATZ // Vollständiger Reset des Adapters ELM327 v2.3 >ATE0 // Echo deaktivieren OK >ATS0 // Leerzeichen in den Antworten deaktivieren OK >ATH1 // Header in den Antworten aktivieren OK >ATL0 // Zeilenvorschub deaktivieren OK >ATAL // Lange Nachrichten zulassen (>7 Byte) OK >ATAT0 // Adaptive Zeitsteuerung deaktivieren OK >ATSTff // Maximaler Timeout (FF × 4 ms ≈ 1 s) OK // --- Konfiguration des CAN-Protokolls für BMW --- >ATPBC101 // Protokoll B: C1 = 11-Bit-ID + ISO 15765, 01 = 500 kBaud OK >ATSPB // Protokoll B wählen (USER1 CAN) OK >ATBI // Initialisierung überspringen (BMW nutzt keine Standard-OBD-Initiierung) OK >ATSH6F1 // CAN-ID für das Senden = 0x6F1 (Adresse des BMW-Testers) OK // --- Flow Control und erweiterte Adressierung --- >ATFCSH6F1 // Flow-Control-Header = 0x6F1 OK >ATFCSD4030FF32 // FC-Daten: 40=Adresse des Steuergeräts, 30=CTS, FF=ohne Limit, 32=50 ms OK >ATFCSM1 // FC-Modus = 1 (vollständig benutzerdefiniert) OK >ATCRA640 // Antworten mit CAN-ID = 0x640 empfangen OK >ATCEA40 // Erweiterte CAN-Adresse = 0x40 (Adresse des Steuergeräts) OK // --- Anfrage an das Steuergerät unter Adresse 0x40 — keine Antwort --- >1A80 // Service 0x1A (Read ECU Identification), Parameter 0x80 NO DATA >22F150 // UDS: Service 0x22 (ReadDataByIdentifier), DID=F150 NO DATA // --- Umschalten auf das Steuergerät unter Adresse 0x10 --- >ATFCSD1030FF32 // FC-Daten: Adresse des Steuergeräts = 0x10 OK >ATFCSM1 // FC-Modus = 1 OK >ATCRA610 // Antworten mit CAN-ID = 0x610 empfangen OK >ATCEA10 // Erweiterte CAN-Adresse = 0x10 OK // --- Erfolgreiche Antwort --- >22F150 // UDS: ReadDataByIdentifier, DID=F150 610F10662F1500F25F0 // 610=CAN-ID, F1=Tester, 06=Länge, 62=Antwort, F150=DID, 0F25F0=Daten
| Befehl | Beschreibung |
|---|---|
AT <CR> |
letzten Befehl wiederholen Das Senden eines einzelnen Wagenrücklaufzeichens veranlasst den ELM327, den zuletzt ausgeführten Befehl zu wiederholen. Dies wird üblicherweise verwendet, wenn Sie Aktualisierungen von Werten mit der höchstmöglichen Geschwindigkeit erhalten möchten — Sie können beispielsweise 01 0C senden, um die Motordrehzahl abzurufen, und anschließend jedes Mal nur das Wagenrücklaufzeichen senden, wenn Sie eine Aktualisierung benötigen. |
AT AL |
Lange Nachrichten zulassen Die OBDII-Standardprotokolle begrenzen die Anzahl der Datenbytes in einer Nachricht auf sieben, was üblicherweise auch der ELM327 tut (sowohl beim Senden als auch beim Empfangen). Ist AL gewählt, erlaubt der ELM327 das Senden langer Nachrichten (acht Datenbytes) und deren Empfang (in unbegrenzter Anzahl). Standardmäßig ist AL ausgeschaltet (und NL gewählt). Für das Senden von 8-Byte-CAN-Nachrichten benötigt der ELM327 keine Änderung von AL, Sie sollten jedoch beachten, dass bei der Bereitstellung von 8 CAN-Datenbytes mit aktivierter erweiterter CAN-Adressierung oder normaler ISO-15765-Formatierung Datenbytes verloren gehen können. Das liegt daran, dass eine CAN-Nachricht nur 8 Datenbytes übertragen kann; muss also eine erweiterte Adresse oder ein PCI-Byte hinzugefügt werden, können weniger Datenbytes gesendet werden. |
AT AMC |
display Activity Monitor Count Der Aktivitätsmonitor verwendet einen Zähler, um zu bestimmen, wie aktiv die OBD-Eingänge des ELM327 sind. Jedes Mal, wenn Aktivität erkannt wird, wird dieser Zähler zurückgesetzt; gibt es keine Aktivität, wird der Zähler erhöht (alle 0,655 Sekunden). Dieser Zähler stellt die seit der letzten erkannten Aktivität verstrichene Zeit dar und kann nützlich sein, wenn Sie eine eigene Logik auf Basis der OBD-Aktivität schreiben. Der Zähler erhöht sich nicht über FF hinaus (die interne Logik stoppt ihn an dieser Stelle) und bleibt während des Monitorings auf 00. |
AT AMT hh |
Act-Mon-Timeout auf hh setzen Der ELM327 kann in einen Energiesparmodus („Schlaf") übergehen, wenn über einen bestimmten Zeitraum keine OBD-Aktivität erkannt wird. Die Feinabstimmung dieses Zeitraums erfolgt entweder über Bit 4 von PP 0F oder über den Wert AMT hh. Ist der Wert AMT hh ungleich null, so beträgt die Zeit bis zum Auslösen des Alarmsignals (hh+1) × 0,65536 Sekunden. Wird der Wert auf 00 gesetzt, sind alle Energiespar-Ausgänge des Aktivitätsmonitors blockiert (siehe Abbildung 6 auf Seite 68). Weitere Informationen zum Aktivitätsmonitor finden Sie im Abschnitt „Energieverwaltung". |
AT AT0, AT1 und AT2 |
Adaptive Zeitsteuerung Beim Empfang einer Antwort vom Fahrzeug wartet der ELM327 traditionell für die durch den Parameter AT ST hh festgelegte Zeit auf eine Antwort. Um sicherzustellen, dass der Chip mit einem breiten Spektrum von Fahrzeugen funktioniert, wurde der Standardwert konservativ (langsam) festgelegt. Trotz der Möglichkeit der Feinabstimmung verfügten viele Anwender weder über die Ausrüstung noch über die Erfahrung, um den besten Wert zu bestimmen. Die Funktion Adaptive Timing setzt den Timeout-Wert automatisch entsprechend der tatsächlichen Reaktionszeit Ihres Fahrzeugs. Bei sich ändernden Bedingungen, etwa der Buslast usw., durchläuft der Algorithmus eine Lernphase und nimmt eine entsprechende Anpassung vor. Beachten Sie, dass er stets Ihren Wert AT ST hh als Maximum verwendet und niemals einen längeren wählt. Es gibt drei Einstellungen für die adaptive Zeitsteuerung, die verwendet werden können. Standardmäßig ist die Option Adaptive Timing 1 (AT1) aktiviert, und dies ist die empfohlene Einstellung. AT0 dient zum Deaktivieren der adaptiven Zeitsteuerung (sodass der Timeout immer gleich der mit AT ST festgelegten Zeit ist), und AT2 ist eine aggressivere Version von AT1 (der Effekt ist bei sehr langsamen Verbindungen deutlicher spürbar — bei schnelleren OBD-Systemen bemerken Sie möglicherweise keinen großen Unterschied). Das Protokoll J1939 unterstützt keine adaptive Zeitsteuerung — es verwendet feste Timeouts, die durch den Standard festgelegt sind. |
AT BD |
OBD-Puffer-Dump ausführen Alle vom ELM327 gesendeten und empfangenen Nachrichten werden vorübergehend in einem Satz von zwölf Speicherzellen gespeichert, dem sogenannten OBD-Puffer. Manchmal ist es hilfreich, den Inhalt dieses Puffers anzusehen, etwa um die Ursache einer fehlgeschlagenen Initiierung herauszufinden, die Header-Bytes der letzten Nachricht zu sehen oder einfach zum Erlernen der Struktur von OBD-Nachrichten. Jederzeit können Sie verlangen, den Inhalt dieses Puffers „auszugeben" (d. h. auszudrucken) — wenn Sie das tun, sendet der ELM327 ein Längenbyte (das die Länge der Nachricht im Puffer angibt), gefolgt vom Inhalt aller zwölf Stellen des OBD-Puffers. Hier zum Beispiel ein „Dump": >AT BD 05 C1 33 F1 3E 23 C4 00 00 10 F8 00 00 Die 05 ist das Längenbyte — sie sagt uns, dass nur die ersten 5 Bytes gültig sind (also C1 33 F1 3E und 23). Die übrigen Bytes stammen höchstwahrscheinlich aus dem vorherigen Vorgang. Das Längenbyte gibt stets die tatsächliche Anzahl der empfangenen Bytes an, unabhängig davon, ob sie in den OBD-Puffer gepasst haben oder nicht. Dies kann beim Betrachten langer Datenströme nützlich sein (mit AT AL), da es die tatsächliche Anzahl der empfangenen Bytes darstellt, mod 256. Beachten Sie, dass im Puffer nur die ersten zwölf empfangenen Bytes gespeichert werden. |
AT BI |
Initialisierungssequenz überspringen Dieser Befehl sollte mit Vorsicht verwendet werden. Er erlaubt es, das OBD-Protokoll aktiv zu schalten, ohne dass eine Initialisierung oder ein Handshake erforderlich ist. Der Initialisierungsvorgang wird üblicherweise zur Prüfung der Gültigkeit des Protokolls verwendet, und ohne ihn können die Ergebnisse schwer vorhersehbar sein. Er sollte nicht für die alltägliche OBD-Anwendung verwendet werden und wurde nur zur Erstellung von Steuergeräte-Simulatoren und Lehrdemonstratoren bereitgestellt. |
AT BRD hh |
try Baud Rate Divisor hh Dieser Befehl dient dazu, den RS232-Baudratenteiler unter Computersteuerung auf den in hh angegebenen Hexadezimalwert zu ändern. Er ist nicht für gelegentliche Experimente gedacht — wenn Sie die Baudrate aus einem Terminalprogramm heraus ändern möchten, sollten Sie PP 0C verwenden. Da einige Schnittstellenschaltungen nicht bei hohen Baudraten arbeiten können, verwendet der Befehl BRD eine Folge von Sende- und Empfangsvorgängen zum Testen der Schnittstelle, wobei jeder Fehler zur Rückkehr zur vorherigen Baudrate führt. Dies erlaubt es, mehrere Baudraten zu testen und eine zuverlässige für die Kommunikation auszuwählen. Der gesamte Vorgang ist im Abschnitt „Verwendung höherer RS232-Baudraten" auf Seite 53 ausführlich beschrieben. Im Erfolgsfall ist die tatsächliche Baudrate (in kbit/s) gleich 4000 geteilt durch den Teiler (hh). Der Wert 00 ist ungültig und wird vom Befehl BRD nicht akzeptiert. |
AT BRT hh |
Baudraten-Timeout auf hh setzen Dieser Befehl erlaubt es, den für das Baudraten-Handshake (d. h. AT BRD) verwendeten Timeout zu ändern. Die Zeitverzögerung beträgt hh × 5,0 ms, wobei hh ein Hexadezimalwert ist. Standardmäßig ist für diese Einstellung der Wert 0F festgelegt, was 75 ms ergibt. Beachten Sie, dass der Wert 00 nicht 0 ms ergibt — er liefert die maximale Zeit von 256 × 5,0 ms bzw. 1,28 Sekunden. |
AT D |
alles auf Standard setzen Dieser Befehl dient dazu, die Standard- (bzw. Werks-)Parameter einzustellen, wie beim ersten Einschalten der Stromversorgung. Das zuletzt gespeicherte Protokoll wird aus dem Speicher abgerufen und wird zur aktuellen Einstellung (wobei möglicherweise andere aktive Protokolle geschlossen werden). Alle vom Benutzer vorgenommenen Einstellungen für benutzerdefinierte Header, Filter oder Masken werden auf die Standardwerte zurückgesetzt, und auch alle Timer-Einstellungen werden auf die Standardwerte zurückgesetzt. |
AT D0 und D1 |
DLC-Anzeige aus oder ein Der CAN-Standard (ISO 15765-4) für OBD verlangt, dass alle Nachrichten aus 8 Datenbytes bestehen, weshalb die Anzeige der Anzahl der Datenbytes (DLC) in der Regel nicht sehr nützlich ist. Beim Experimentieren mit anderen Protokollen kann es jedoch hilfreich sein, die Datenlänge sehen zu können. Die Befehle D0 und D1 steuern die Anzeige der DLC-Ziffer (um diese Ziffer zu sehen, müssen die Header aktiviert sein). Bei der Anzeige erscheint die einstellige DLC-Ziffer zwischen den ID-Bytes (Header) und den Datenbytes. Die Standardeinstellung wird durch PP 29 bestimmt. |
AT DM1 |
Monitor für DM1s Das Protokoll SAE J1939 überträgt Fehlercodes periodisch als Nachrichten vom Typ Diagnostic Mode 1 (DM1). Dieser Befehl konfiguriert den ELM327 für das fortlaufende Monitoring dieser Art von Nachrichten und folgt dabei den mehrsegmentigen Transportprotokollen, falls erforderlich. Beachten Sie, dass sich ein ähnliches Ergebnis durch eine Kombination aus Masken und Filtern erzielen lässt, diese aber keine mehrzeiligen Nachrichten erkennen können. Der Befehl DM1 fügt die für mehrzeilige Nachrichten erforderliche zusätzliche Logik hinzu. Dieser Befehl ist nur dann verfügbar, wenn für die J1939-Formatierung ein CAN-Protokoll (A, B oder C) gewählt wurde. Beim Versuch, ihn unter anderen Bedingungen auszuführen, wird ein Fehler zurückgegeben. |
AT DP |
Aktuelles Protokoll beschreiben Der ELM327 erkennt das OBD-Protokoll des Fahrzeugs automatisch, meldet es jedoch in der Regel nicht. Der Befehl DP ist eine bequeme Möglichkeit zu erfahren, auf welches Protokoll der Chip derzeit eingestellt ist (auch wenn er noch nicht mit einem Fahrzeug verbunden ist). Ist ein Protokoll gewählt und außerdem die automatische Option aktiviert, zeigt AT DP das Wort 'AUTO' vor der Protokollbeschreibung an. Beachten Sie, dass in der Beschreibung die tatsächlichen Protokollnamen angegeben werden, nicht die Nummern, die von den Befehlen zur Protokolleinstellung verwendet werden. |
AT DPN |
"Protokoll nach Nummer beschreiben" Dieser Befehl ähnelt dem Befehl DP, gibt jedoch eine Zahl zurück, die das aktuelle Protokoll bezeichnet. Ist außerdem die automatische Suche aktiviert, so wird der Zahl der Buchstabe 'A' vorangestellt. Es handelt sich um dieselbe Nummer, die in den Befehlen „Protokoll setzen" und „Protokoll testen" verwendet wird. |
AT E0 und E1 |
"Echo" aus oder ein Diese Befehle steuern, ob über den RS232-Port empfangene Zeichen als Echo (erneut) an den Hauptcomputer übertragen werden. Das Echo der Zeichen kann zur Bestätigung dienen, dass die an den ELM327 gesendeten Zeichen korrekt empfangen wurden. Standardmäßig ist E1 eingestellt (Echo eingeschaltet). |
AT FE |
Forget Events Es gibt bestimmte Ereignisse, die das Verhalten des ELM327 von diesem Zeitpunkt an verändern können. Eines davon ist das Auftreten eines fatalen CAN-Fehlers (ERR94), der die nachfolgende Suche nach CAN-Protokollen blockiert, wenn Bit 5 von PP 2A gleich '1' ist. Normalerweise wirkt sich ein solches Ereignis auf alle Suchvorgänge bis zum nächsten Aus- und Einschalten der Stromversorgung aus, es kann jedoch programmgesteuert mit dem Befehl AT FE „vergessen" werden. Ein weiteres Beispiel ist das Ereignis 'LV RESET', das die Suche nach CAN-Protokollen verhindert, wenn Bit 4 von PP 2A gleich '1' ist. Auch dieses Ereignis kann mit dem Befehl AT FE vergessen werden. |
AT H0 und H1 |
"Header" aus oder ein Diese Befehle steuern, ob zusätzliche (Header-)Informationsbytes in den Antworten vom Fahrzeug angezeigt werden oder nicht. In der Regel werden sie vom ELM327 nicht angezeigt, können aber von Interesse sein (insbesondere wenn Sie mehrere Antworten erhalten haben und feststellen möchten, von welchen Modulen sie stammen). Das Aktivieren der Header (mit AT H1) zeigt tatsächlich nicht nur die Header-Bytes — Sie sehen die vollständig übertragene Nachricht, einschließlich der Prüfziffern und PCI-Bytes sowie möglicherweise des CAN-Datenlängencodes (DLC), falls dieser mit PP 29 oder AT D1 aktiviert wurde. Die aktuelle Version dieses Chips zeigt weder den CAN-CRC-Code an noch die speziellen J1850-IFR-Bytes (die einige Protokolle zur Bestätigung des Nachrichtenempfangs verwenden). |
AT I |
Sich vorstellen Dieser Befehl veranlasst den Chip, sich selbst zu identifizieren, indem er die Produktidentifikationszeichenfolge ausgibt (derzeit 'ELM327 v2.3'). Software kann ihn verwenden, um festzustellen, mit welchem integrierten Schaltkreis sie genau spricht, ohne den Chip neu starten zu müssen. |
AT IA |
Ist das Protokoll aktiv? Dieser Befehl erlaubt es zu erfahren, ob der ELM327 das aktuelle Protokoll für aktiv hält oder nicht. Als Antwort auf die Anfrage gibt er Y oder N zurück, also „Ja" oder „Nein". Damit der ELM327 auf bestimmte Befehle antwortet, ist ein „aktives" Protokoll erforderlich. Ein Protokoll gilt als aktiv, wenn es korrekte Antworten auf eine Standardanfrage oder ein Byte-Handshake erhalten hat oder wenn der Benutzer diesen Vorgang mit dem Befehl AT BI übersprungen hat. Beachten Sie, dass der ELM327 ein Protokoll zunächst als aktiv markiert, es danach jedoch nicht weiter überwacht und daher nicht weiß, ob das Steuergerät zu einem bestimmten Zeitpunkt in der Zukunft aufgehört hat, auf Anfragen zu antworten (d. h. ob das Protokoll nicht mehr aktiv ist). Ihre Software muss möglicherweise periodisch eine Standardanfrage senden (vorzugsweise 01 00), um festzustellen, ob das Steuergerät tatsächlich noch aktiv ist. |
AT IB10 |
ISO-Baudrate auf 10400 setzen Dieser Befehl setzt die Baudrate von ISO 9141-2 und ISO 14230-4 (Protokolle 3, 4 und 5) auf den Standardwert 10400 zurück. Beachten Sie, dass der Befehl IB10 jederzeit verwendet werden kann (d. h. „im laufenden Betrieb"). |
AT IB12 |
ISO-Baudrate auf 12500 setzen Dieser Befehl dient dazu, die für die Protokolle ISO 9141-2 und ISO 14230-4 (Nummern 3, 4 und 5) verwendete Baudrate auf 12500 Baud zu ändern. Beachten Sie, dass der Befehl IB12 jederzeit verwendet werden kann (d. h. „im laufenden Betrieb"). |
AT IB15 |
ISO-Baudrate auf 15625 Baud setzen Dieser Befehl dient dazu, die für die Protokolle ISO 9141-2 und ISO 14230-4 (Nummern 3, 4 und 5) verwendete Baudrate auf 15625 Baud zu ändern. Beachten Sie, dass der Befehl IB15 jederzeit verwendet werden kann (d. h. „im laufenden Betrieb"). |
AT IB48 |
ISO-Baudrate auf 4800 Baud setzen Dieser Befehl dient dazu, die für die Protokolle ISO 9141-2 und ISO 14230-4 (Nummern 3, 4 und 5) verwendete Baudrate auf 4800 Baud zu ändern. Beachten Sie, dass der Befehl IB48 jederzeit verwendet werden kann (d. h. „im laufenden Betrieb"). |
AT IB96 |
ISO-Baudrate auf 9600 Baud setzen Dieser Befehl dient dazu, die für die Protokolle ISO 9141-2 und ISO 14230-4 (Nummern 3, 4 und 5) verwendete Baudrate auf 9600 Baud zu ändern. Beachten Sie, dass der Befehl IB96 jederzeit verwendet werden kann (d. h. „im laufenden Betrieb"). |
AT IFR0, IFR1 und IFR2 |
IFR-Steuerung — kein Monitoring Das Protokoll SAE J1850 erlaubt es, nach jeder Nachricht ein In-Frame-Response-Byte (IFR) zu senden, üblicherweise zur Bestätigung des korrekten Empfangs dieser Nachricht. Der ELM327 erzeugt und sendet dieses Byte automatisch für Sie, sofern Sie kein Monitoring durchführen (standardmäßig schweigt der ELM327 während des Monitorings stets). Sie können dieses Verhalten mit dem Befehl IFR aufheben. Der Befehl IFR0 deaktiviert das Senden aller IFR, unabhängig davon, welche Nachricht es verlangt. Der Befehl IFR2 wirkt umgekehrt — als Antwort auf eine Nachricht wird stets ein IFR-Byte gesendet, selbst wenn sie Fehler enthält. Die Einstellung IFR1 bewirkt, dass ein IFR gesendet wird, wenn die Nachricht korrekt empfangen wurde und wenn der Wert des Bits 'K' im ersten Header-Byte (sowohl bei PWM als auch bei VPW) dies erlaubt. Standardmäßig wird die Einstellung IFR1 verwendet. |
AT IFR4, IFR5 und IFR6 |
IFR-Steuerung — jederzeit Obwohl die originalen ELM327-Chips beim Monitoring niemals ein IFR gesendet haben, gibt es einige Monitoring-Situationen, in denen Sie ein IFR senden möchten. Die Befehle IFR4, IFR5 und IFR6 erlauben es, das Senden von IFR jederzeit zu steuern, unabhängig davon, ob ein Monitoring läuft oder nicht. Sie ahmen die Befehle IFR0, IFR1 und IFR2 nach — die Einstellung IFR4 bewirkt, dass ein IFR niemals gesendet wird, IFR5 sendet ein IFR, wenn keine Fehler vorliegen und das Bit 'K' es erlaubt, und die Einstellung IFR6 bewirkt, dass ein IFR stets erzeugt wird (auch wenn ein Fehler vorliegt). |
AT IFR H und IFR S |
IFR aus Header oder Quelle Der im J1850-In-Frame-Response-Byte (IFR) gesendete Wert stimmt üblicherweise mit dem Wert überein, der im Quelladressbyte (d. h. dem Tester) gesendet wurde, das im Header der Anfrage stand. Es gibt jedoch Fälle, in denen es wünschenswert ist, einen anderen Wert zu verwenden, und dieser Befehlssatz erlaubt dies. Wenn Sie AT IFR S senden, verwendet der ELM327 den als Quelladresse definierten Wert (üblicherweise F1, der jedoch mit PP 06 oder AT TA geändert werden kann), selbst wenn im Header-Byte ein anderer Wert gesendet wurde. Dies ist normalerweise nicht erforderlich, und es ist Vorsicht geboten. AT IFR H stellt das Senden der IFR-Bytes auf die im Header angegebenen Werte zurück und ist die Standardeinstellung. |
AT IGN |
IgnMon-Eingangspegel lesen Dieser Befehl liest den Signalpegel an Pin 15. Es wird angenommen, dass der Logikpegel mit der Zündspannung verknüpft ist; liegt also am Eingang ein hoher Pegel an, lautet die Antwort 'ON', bei niedrigem Pegel 'OFF'. Diese Funktion ist besonders nützlich, wenn Sie Energieverwaltungsfunktionen mit Ihrer eigenen Software ausführen möchten. Deaktivieren Sie die automatische Low-Power-Reaktion auf einen niedrigen Pegel an diesem Pin (indem Sie Bit 2 von PP 0E auf 0 setzen), so arbeitet Pin 15 als RTS-Eingang. Ein niedriger Pegel an diesem Eingang schaltet die Stromversorgung nicht aus, bricht aber jede laufende OBD-Aktivität ab. Sie müssen lediglich die Nachricht 'STOPPED' erkennen, die beim Abbruch der ELM327-Aktivität gesendet wird, und anschließend den Pegel an Pin 15 mit AT IGN prüfen. Stellt sich heraus, dass er ausgeschaltet ist, können Sie selbst ein geordnetes Herunterfahren durchführen. |
AT IIA hh |
ISO-Startadresse auf hh setzen Die Standards ISO 9141-2 und ISO 14230-4 besagen, dass beim Beginn einer Sitzung mit einem Steuergerät die Initialisierungssequenz an eine bestimmte Adresse ($33) gerichtet werden muss. Wenn Sie experimentieren möchten, indem Sie die langsame Fünf-Baud-Sequenz an eine andere Adresse richten, lässt sich dies mit diesem Befehl tun. Möchten Sie beispielsweise, dass die Initiierung mit dem Steuergerät unter Adresse $7A erfolgt, senden Sie einfach: >AT IIA 7A, und der ELM327 verwendet diese Adresse bei der Ansprache (Protokolle 3 oder 4). Der vollständige Acht-Bit-Wert wird so verwendet, wie er angegeben wird — es werden keinerlei Änderungen daran vorgenommen (d. h. es werden keine Paritätsbits o. Ä. hinzugefügt). Beachten Sie, dass die Einstellung dieses Werts keinen Einfluss auf die in den Header-Bytes verwendeten Adresswerte hat. Beim Zurücksetzen auf die Standardwerte oder beim Reset des ELM327 wird die ISO-Startadresse auf den Wert $33 zurückgesetzt. |
AT L0 und L1 |
Zeilenvorschub aus oder ein Diese Option steuert das Senden von Zeilenvorschubzeichen nach jedem Wagenrücklaufzeichen. Bei AT L1 wird nach jedem Wagenrücklaufzeichen ein Zeilenvorschub erzeugt, bei AT L0 ist er deaktiviert. Üblicherweise ziehen es Benutzer vor, diese Option bei der Arbeit mit einem Terminalprogramm zu aktivieren und bei Verwendung einer benutzerdefinierten Schnittstelle zu deaktivieren (überflüssige Zeichen verlangsamen den Austausch nur). Die Standardeinstellung wird durch den Spannungspegel an Pin 7 beim Einschalten der Stromversorgung (oder beim Reset) bestimmt. Ist der Pegel hoch, ist der Zeilenvorschub aktiviert, andernfalls deaktiviert. |
AT LP |
in den Energiesparmodus wechseln Dieser Befehl veranlasst den ELM327, alles außer den „Grunddiensten" abzuschalten, um den Energieverbrauch auf ein Minimum zu reduzieren. Der ELM327 antwortet mit „OK" (ohne Wagenrücklauf) und ändert nach einer Sekunde den Zustand des PwrCtrl-Ausgangs (Pin 16) und wechselt in den Energiesparmodus (Standby). Der Chip kann durch ein Zeichen am RS232-Eingang, durch eine steigende Flanke am IgnMon-Eingang (Pin 15) sowie durch die üblichen Reset-Methoden (Aus-/Einschalten der Stromversorgung, niedriger Pegel an Pin 1 oder Spannungsabfall) in den Normalbetrieb zurückversetzt werden. Einzelheiten finden Sie im Abschnitt „Energieverwaltung" (S. 67). |
AT M0 und M1 |
Speicher aus oder ein Der ELM327 verfügt über einen internen nichtflüchtigen Speicher, der das zuletzt verwendete Protokoll auch nach dem Ausschalten der Stromversorgung behalten kann. Dies ist praktisch, wenn der Chip häufig für ein einziges Protokoll verwendet wird — es ist beim nächsten Einschalten das erste. Um die Speicherfunktion zu aktivieren, muss der Befehl AT M1 verwendet oder Pin 5 auf hohen Logikpegel gelegt werden. Ist die Speicherfunktion aktiviert, wird bei jedem Erkennen eines gültigen OBD-Protokolls dieses gespeichert und zum neuen Standard. Ist die Speicherfunktion deaktiviert, werden gefundene Protokolle nicht gespeichert, und der ELM327 startet stets mit dem zuletzt gespeicherten Protokoll. Wird der ELM327 in einer Umgebung mit häufig wechselnden Protokollen verwendet, ist es besser, den Speicher zu deaktivieren und AT SP 0 auszuführen. Verbinden Sie sich hingegen mit einem einzigen Fahrzeug, ist das Speichern seines Protokolls als Standard am sinnvollsten. Die Standardeinstellung wird durch den Spannungspegel an Pin 5 beim Einschalten der Stromversorgung (oder beim Reset) bestimmt. Hoher Pegel (VDD) — Speicher aktiviert, niedriger — deaktiviert. |
AT NL |
Nachrichten normaler Länge Dieser Befehl stellt den ELM327 darauf ein, die normale Anzahl von Datenbytes zu senden, wie es die OBD-Standards vorsehen. Er dient dazu, die im Modus Allow Long (AT AL) vorgenommenen Änderungen aufzuheben. Beachten Sie, dass der ELM327 keine Änderung von AL benötigt, um den Empfang längerer Nachrichten für KWP-Protokolle zuzulassen. Sie können für den IC einfach den standardmäßig eingestellten Wert NL belassen, und alle empfangenen Bytes werden angezeigt. |
AT R0 und R1 |
Antworten aus oder ein Diese Befehle steuern den automatischen Empfang (und die Anzeige) der vom Fahrzeug zurückgegebenen Nachrichten durch den ELM327. Sind die Antworten ausgeschaltet, so wartet der Chip nach dem Senden einer Anfrage nicht auf eine Antwort vom Fahrzeug, sondern kehrt sofort zum Warten auf den nächsten RS232-Befehl zurück (der ELM327 gibt nichts aus, um den erfolgreichen Versand zu melden, Sie sehen jedoch eine Meldung, wenn er nicht erfolgreich war). R0 kann nützlich sein, um Befehle „blind" zu senden, wenn der Chip in netzwerkbasierten, nicht OBD-bezogenen Anwendungen oder bei der Simulation eines Steuergeräts zu Schulungszwecken verwendet wird. Es wird jedoch nicht empfohlen, diese Option für die normale OBD-Kommunikation zu verwenden, da das Fahrzeug in Schwierigkeiten geraten kann, wenn es eine Bestätigung erwartet und keine erhält. Die Einstellung R0 hebt stets jede „Antwortzahl-Ziffer" auf, die bei einer OBD-Anfrage bereitgestellt wird. Standardmäßig wird der Wert R1 bzw. „Antworten ein" verwendet. |
AT RD |
Daten aus dem Benutzerspeicher lesen Der mit dem Befehl SD gespeicherte Bytewert wird mit diesem Befehl abgerufen. Es gibt nur eine Speicherzelle, daher ist keine Adresse erforderlich. |
AT RV |
Read the input Voltage Dies löst eine Messung der Spannung aus, die an Pin 2 anliegt, und deren Umwandlung in eine dezimale Spannung. Standardmäßig wird angenommen, dass der Eingang über einen Spannungsteiler mit einem Verhältnis von 1:5,7 mit der zu messenden Spannung verbunden ist (z. B. in Reihe geschaltete Widerstände von 47 kΩ und 10 kΩ, wobei der 10-kΩ-Widerstand von Pin 2 nach Vss geschaltet ist), und dass die Versorgung des ELM327 nominal 5 V beträgt. Damit lässt sich eine Eingangsspannung von bis zu etwa 28 V messen (die Spannung an Pin 2 darf Vdd nicht überschreiten), mit einer unkalibrierten Genauigkeit von in der Regel etwa 2 %. Informationen zur Kalibrierung finden Sie im Abschnitt „Batteriespannung lesen". |
AT S0 und S1 |
Leerzeichenausgabe aus oder ein Diese Befehle steuern, ob Leerzeichen in die Antworten des Steuergeräts eingefügt werden. Der ELM327 gibt die Antworten des Steuergeräts üblicherweise als Folge von durch Leerzeichen getrennten Hex-Zeichen aus (zur besseren Lesbarkeit), Nachrichten lassen sich jedoch deutlich schneller übertragen, wenn jedes dritte Byte (das Leerzeichen) entfernt wird. Auch wenn dies die Nachricht für den Menschen weniger lesbar macht, kann es die Datenverarbeitung durch den Computer erheblich beschleunigen. Standardmäßig sind Leerzeichen eingeschaltet (S1), und es werden Leerzeichen in jede Antwort eingefügt. |
AT SD hh |
Datenbyte hh speichern Der ELM327 kann ein einzelnes Informationsbyte in einem speziellen nichtflüchtigen Speicher ablegen, der seinen Inhalt auch beim Ausschalten der Stromversorgung behält. Geben Sie einfach das zu speichernde Byte an und rufen Sie es anschließend mit dem Befehl Read Data (AT RD) ab. Diese Zelle eignet sich ideal zum Speichern von Benutzereinstellungen, Geräte-IDs, zum Zählen der Anzahl von Durchläufen oder für andere Informationen. |
AT WS |
Warmer Neustart Ähnelt dem Befehl AT Z, jedoch ohne LED-Test beim Einschalten. Anwender finden dies möglicherweise als bequeme Möglichkeit, schnell „neu zu beginnen", ohne die zusätzliche Verzögerung von AT Z. Bei Verwendung variabler RS232-Baudraten (Befehle AT BRD) wird empfohlen, den Chip mit diesem Befehl statt mit AT Z zurückzusetzen, da AT WS die RS232-Baudrate nicht zurücksetzt. |
AT Z |
vollständiger Reset Dieser Befehl veranlasst den Chip, einen vollständigen Reset durchzuführen, so als ob die Stromversorgung aus- und wieder eingeschaltet worden wäre. Alle Einstellungen werden auf die Standardwerte zurückgesetzt, und der Chip geht in den Zustand des Wartens auf Zeichen am RS232-Bus über. Beachten Sie, dass die mit dem Befehl AT BRD eingestellte Baudrate verloren geht und der ELM327 zur Standard-Baudrateneinstellung zurückkehrt. |
AT @1 |
Gerätebeschreibung anzeigen Dieser Befehl zeigt die Gerätebeschreibungszeichenfolge an. Der Standardtext lautet „OBDII to RS232 Interpreter". |
AT @3 cccccccccccc |
Geräte-ID speichern Dieser Befehl dient dazu, den Geräte-Identifikationscode einzustellen. Es müssen genau 12 Zeichen gesendet werden; nach dem Schreiben in den Speicher können sie nicht mehr geändert werden (der Befehl @3 kann nur einmal verwendet werden). Die Zeichen müssen druckbar sein (ASCII-Codes von 0x21 bis 0x5F einschließlich). Wenn Sie Software zum Schreiben von IDs entwickeln, könnte Sie der Chip ELM328 interessieren, der das mehrfache Schreiben mit dem Befehl @3 erlaubt (aber keine OBD-Nachrichten senden kann). |
| Befehl | Beschreibung |
|---|---|
AT PC |
"Protokoll schließen" Es gibt Fälle, in denen ein Protokoll gestoppt (deaktiviert) werden muss. Möglicherweise verwenden Sie nicht die automatische Protokollsuche, sondern möchten Protokolle manuell aktivieren und deaktivieren. Möglicherweise möchten Sie das Senden von Leerlaufnachrichten (Wakeup) beenden, oder Sie haben einen anderen Grund. Der Befehl PC dient in solchen Fällen dazu, ein Protokoll zwangsweise zu schließen. |
AT SP h |
Protokoll h setzen Dieser Befehl stellt den ELM327 für den Betrieb mit dem in „h" angegebenen Protokoll ein und speichert es als neuen Standard. Das Protokoll wird unabhängig von der Einstellung AT M0/M1 gespeichert. Der ELM327 unterstützt 12 verschiedene Protokolle (zwei davon können benutzerdefiniert werden): 0 — Automatisch, 1 — SAE J1850 PWM (41,6 kBaud), 2 — SAE J1850 VPW (10,4 kBaud), 3 — ISO 9141-2 (5 Baud, 10,4 kBaud), 4 — ISO 14230-4 KWP (5 Baud, 10,4 kBaud), 5 — ISO 14230-4 KWP (schnelle Init., 10,4 kBaud), 6 — ISO 15765-4 CAN (11 Bit, 500 kBaud), 7 — ISO 15765-4 CAN (29 Bit, 500 kBaud), 8 — ISO 15765-4 CAN (11 Bit, 250 kBaud), 9 — ISO 15765-4 CAN (29 Bit, 250 kBaud), A — SAE J1939 CAN (29 Bit, 250* kBaud), B — USER1 CAN (11* Bit, 125* kBaud), C — USER2 CAN (11* Bit, 50* kBaud). (* — vom Benutzer einstellbar) Protokoll 0 teilt dem ELM327 mit, dass das Protokoll des Fahrzeugs unbekannt ist und eine Suche durchgeführt werden muss. Der Befehl AT SP 0 setzt das Protokoll auf 0, schreibt aber nicht in das EEPROM (zur Beschleunigung). Ist ein konkretes Protokoll gewählt (z. B. AT SP 3), wird es zum Standard und ist das einzige verwendete. |
AT SP 00 |
gespeichertes Protokoll löschen Zur Beschleunigung der Protokollerkennung setzt der Befehl SP 0 den automatischen Modus, führt jedoch keine (zeitaufwendige) Schreiboperation in das EEPROM aus. Dies verringert den Verschleiß des EEPROM. Manchmal ist es jedoch erforderlich, den Wert 0 in das gespeicherte Protokoll zu schreiben — dafür ist der Befehl SP 00 vorgesehen. |
AT SP Ah |
Protokoll h mit Autosuche setzen Diese Variante des Befehls SP erlaubt es, das Start- (Standard-)Protokoll zu wählen und dabei die Möglichkeit der automatischen Suche nach einem gültigen Protokoll bei fehlgeschlagener Verbindung zu erhalten. Verwendet Ihr Fahrzeug beispielsweise ISO 9141-2, Sie möchten den ELM327 aber gelegentlich mit anderen Fahrzeugen verwenden, können Sie AT SP A3 nutzen — zuerst kommt Protokoll 3, doch bei Misserfolg wird eine Autosuche durchgeführt. Vergessen Sie nicht, die Speicherfunktion zu deaktivieren, da sonst jedes neu erkannte Protokoll zum Standard wird. SP Ah speichert die Protokollinformation, selbst wenn der Speicher deaktiviert ist (aber SP A0 und SP 0A schreiben nicht in das EEPROM). Der Buchstabe „A" kann vor oder nach h stehen, sodass AT SP A3 und AT SP 3A gleichwertig sind. |
AT SS |
Standard-Suchsequenz verwenden Der Standard SAE J1978 definiert die Reihenfolge der Protokollsuche, die Diagnosegeräte verwenden müssen. Sie folgt der ELM327-Protokollnummerierung. Zur Beschleunigung der Suche folgt der ELM327 dieser Reihenfolge in der Regel nicht, tut es aber, wenn Sie den Befehl AT SS geben. |
AT TP h |
Protokoll h testen Dieser Befehl ist identisch mit SP, mit dem Unterschied, dass das gewählte Protokoll nicht sofort im internen EEPROM-Speicher gespeichert wird, also die Standardeinstellung nicht ändert. Beachten Sie: Ist die Speicherfunktion aktiviert (AT M1) und das neue Protokoll erwies sich als gültig, wird es als neuer Standard im Speicher gespeichert. |
AT TP Ah |
Protokoll h mit Autosuche testen Dieser Befehl ähnelt AT TP, doch wenn sich das gewählte Protokoll nicht initialisieren lässt, durchläuft der ELM327 automatisch die übrigen Protokolle und versucht, sich mit einem von ihnen zu verbinden. |
| Befehl | Beschreibung |
|---|---|
AT C0 und C1 |
CAN-Sendebestätigung aus oder ein Der ELM327 hat nach dem Senden einer CAN-Nachricht stets gewartet, um sich zu vergewissern, dass die Datenübertragung korrekt verlaufen ist. Geschah dies nicht, wurde die Meldung 'CAN ERROR' zurückgegeben. In der Firmware v2.3 können Sie diese Bestätigung deaktivieren und so möglicherweise etwas schneller in den Anfragezustand zurückkehren. Dies kann beim Senden einer einzelnen Nachricht Zeit sparen (etwa 230 µs bei 500 kbit/s), allerdings gibt es dann keine Rückmeldung bei fehlerhaftem Versand. Wir empfehlen, diesen Parameter stets auf dem Standardwert zu belassen (C1 — Bestätigung ein). |
AT CAF0 und CAF1 |
CAN-Autoformatierung aus oder ein Diese Befehle legen fest, ob der ELM327 Sie beim Formatieren der gesendeten und empfangenen CAN-Daten unterstützt. Bei aktivierter automatischer CAN-Formatierung (CAF1) werden die Formatierungsbytes (PCI) beim Senden automatisch erzeugt und beim Empfang entfernt. Das bedeutet, dass Sie wie gewohnt OBD-Anfragen senden können (01 00 usw.), ohne sich um die zusätzlichen Bytes kümmern zu müssen, die CAN-Diagnosesysteme verlangen. Außerdem werden bei aktivierter Formatierung alle überflüssigen (ungenutzten) im Rahmen empfangenen Datenbytes entfernt, und Nachrichten mit ungültigen PCI-Bytes werden ignoriert. (Beim Monitoring werden hingegen alle Nachrichten mit ungültigen PCI-Bytes angezeigt, und daneben erscheint die Meldung ' |
AT CEA |
erweiterte CAN-Adresse deaktivieren Der Befehl CEA dient dazu, die mit dem Befehl CEA hh eingestellten speziellen Funktionen zu deaktivieren. Er stellt außerdem die mit dem Befehl AT CER hh eingestellte Adresse auf den Standardwert zurück. |
AT CEA hh |
erweiterte CAN-Adresse auf hh setzen Einige (nicht OBD-)CAN-Protokolle erweitern die Adressierungsfelder, indem sie das erste der acht Datenbytes als Zieladresse (Empfänger) verwenden. Dieser Befehl erlaubt es dem ELM327, mit solchen Protokollen zu interagieren. Das Senden des Befehls CEA hh veranlasst den ELM327, den Wert hh als erstes Datenbyte in alle von Ihnen gesendeten CAN-Nachrichten einzufügen. Er fügt außerdem einen weiteren Schritt zur Filterung der empfangenen Nachrichten hinzu und lässt nur diejenigen durch, die die Testeradresse in der Position des ersten Bytes aufweisen (zusätzlich zu der Anforderung, dass die ID-Bits den durch AT CF und CM, FT oder CRA festgelegten Mustern entsprechen). Der Befehl AT CEA hh kann jederzeit gesendet werden, und die Änderungen treten sofort in Kraft, was eine Änderung der Adresse „im laufenden Betrieb" erlaubt. Ausführlicher wird die erweiterte Adressierung im Abschnitt „Verwendung erweiterter CAN-Adressen" auf Seite 64 behandelt. Der CEA-Betriebsmodus ist standardmäßig ausgeschaltet und wird durch das Senden des Befehls CEA mit einer Zieladresse aktiviert. Nach dem Aktivieren kann er durch Senden des Befehls AT CEA (ohne Adresse) oder durch Wiederherstellen der Standardeinstellungen des Chips mit AT D, AT Z usw. ausgeschaltet werden. Beachten Sie, dass die CEA-Einstellung keine Wirkung hat, wenn die J1939-Formatierung aktiviert ist. |
AT CER hh |
erweiterte CAN-Rx-Adresse auf hh setzen Standardmäßig empfängt der ELM327 Antworten auf Anfragen mit erweiterter CAN-Adressierung, die die „Testeradresse" in der Position des ersten Datenbytes enthalten. Der Befehl CER erlaubt die Wahl einer anderen Empfangsadresse. Die mit diesem Befehl eingestellten Werte werden mit dem Befehl AT CEA auf den Standardwert zurückgesetzt. |
AT CF hhh |
CAN-ID-Filter auf hhh setzen Der CAN-Filter arbeitet in Verbindung mit der CAN-Maske, um zu bestimmen, welche Informationen vom Empfänger angenommen werden. Beim Empfang jeder Nachricht werden die eingehenden CAN-ID-Bits mit den Bits des CAN-Filters verglichen (wenn das Maskenbit gleich '1 ' ist). Stimmen alle entsprechenden Bits überein, wird die Nachricht angenommen und vom ELM327 verarbeitet, andernfalls wird sie verworfen. Diese Drei-Bit-Version des Befehls CAN Filter vereinfacht das Einstellen von Filtern in CAN-Systemen mit 11-Bit-Identifikator etwas. Es werden nur die äußersten rechten 11 Bit der bereitgestellten Halbbytes verwendet, und das höchstwertige Bit wird ignoriert. Tatsächlich werden die Daten jedoch als vier Bytes gespeichert, und dieser Befehl fügt führende Nullen für die übrigen Bytes hinzu. Weitere Informationen finden Sie beim Befehl bzw. den Befehlen CM. Beachten Sie, dass die Antworten nicht vorhersehbar sind, wenn Sie die Befehle CRA, CF oder CM mit dem Protokoll SAE J1939 verwenden und gleichzeitig den Befehl MP oder den Befehl DM1 nutzen. Tatsächlich empfehlen wir nicht, die Befehle CRA, CM oder CF im Protokoll J1939 zu irgendeinem Zeitpunkt zu verwenden. Wenn Sie eine zusätzliche Filterung für das Protokoll J1939 benötigen, ziehen Sie die Verwendung des Befehls FT in Betracht. |
AT CF hh hh hh hh |
CAN-ID-Filter auf hhhhhhh setzen Dieser Befehl erlaubt es, alle vier Bytes (tatsächlich 29 Bit) des CAN-Filters auf einmal einzustellen. Die drei höchstwertigen Bits werden stets ignoriert und können einen beliebigen Wert annehmen. Dieser Befehl kann auch zur Eingabe von 11-Bit-ID-Filtern verwendet werden, da sie an denselben Stellen im Gerät gespeichert werden (die Eingabe AT CF 00 00 0h hh ist genau dieselbe wie die Eingabe des kürzeren Befehls AT CF hhh). Beachten Sie, dass die Antworten nicht vorhersehbar sind, wenn Sie die Befehle CRA, CF oder CM mit dem Protokoll SAE J1939 verwenden und gleichzeitig den Befehl MP oder den Befehl DM1 nutzen. Tatsächlich empfehlen wir nicht, die Befehle CRA, CM oder CF im Protokoll J1939 zu irgendeinem Zeitpunkt zu verwenden. Wenn Sie eine zusätzliche Filterung im Protokoll J1939 benötigen, ziehen Sie die Verwendung des Befehls FT in Betracht. |
AT CFC0 und CFC1 |
CAN-Flow-Control aus oder ein Das Protokoll ISO 15765-4 CAN erwartet, dass als Antwort auf eine „First Frame"-Nachricht stets eine „Flow Control"-Nachricht gesendet wird, und der ELM327 sendet sie automatisch ohne Eingreifen des Benutzers. Beim Experimentieren mit einem nicht OBD-bezogenen System kann es erforderlich sein, diese automatische Antwort zu deaktivieren — dafür ist der Befehl AT CFC0 vorgesehen. Ab Firmware v2.0 aktivieren/deaktivieren diese Befehle auch das Senden von J1939-TP.CM_CTS-Nachrichten als Antwort auf TP.CM_RTS-Anfragen. Beim Monitoring (AT MA, MR oder MT) werden Flow-Control-Nachrichten niemals gesendet, unabhängig von der CFC-Einstellung. Die Standardeinstellung ist CFC1 (Flow Control ein). |
AT CM hhh |
CAN-ID-Maske auf hhh setzen In einem CAN-System kann gleichzeitig eine große Anzahl von Nachrichten übertragen werden. Um die Anzahl der vom ELM327 betrachteten Nachrichten einzuschränken, ist ein System zur Filterung der benötigten aus allen übrigen erforderlich. Hierfür wird ein Filter verwendet, der in Verbindung mit einer Maske arbeitet. Die Maske ist eine Gruppe von Bits, die dem ELM327 zeigt, welche Bits im Filter relevant sind und welche ignoriert werden können. Die Bedingung 'must match ' wird durch Setzen des Maskenbits auf '1 ' signalisiert, und 'don 't care' wird durch Setzen des Bits auf '0' signalisiert. Diese Drei-Bit-Variante des Befehls CM dient zum Festlegen von Maskenwerten für 11-Bit-Identifikationssysteme (das höchstwertige Bit wird stets ignoriert). Beachten Sie, dass für 29-Bit- und 11-Bit-Masken ein gemeinsamer Speicherplatz verwendet wird, sodass eine 11-Bit-Maske mit dem folgenden Befehl (CM hh hh hh hh) zugewiesen werden kann, wenn Sie zusätzlich tippen möchten. Die Werte sind rechtsbündig, sodass Sie fünf führende Nullen angeben müssen, gefolgt von drei Maskenbytes. Beachten Sie, dass die Antworten nicht vorhersehbar sind, wenn Sie die Befehle CRA, CF oder CM mit dem Protokoll SAE J1939 verwenden und gleichzeitig den Befehl MP oder den Befehl DM1 nutzen. Tatsächlich empfehlen wir nicht, die Befehle CRA, CM oder CF im Protokoll J1939 zu irgendeinem Zeitpunkt zu verwenden. Wenn Sie eine zusätzliche Filterung für das Protokoll J1939 benötigen, ziehen Sie die Verwendung des Befehls FT in Betracht. |
AT CM hh hh hh hh |
CAN-ID-Maske auf hhhhhhhhh setzen Dieser Befehl dient dazu, Maskenwerte für 29-Bit-Identifikationssysteme zuzuweisen. Siehe die Erläuterung zum Befehl CM hhh, da er praktisch identisch ist, abgesehen von der Länge. Beachten Sie, dass die drei höchstwertigen Bits, die Sie in der ersten Ziffer angeben, ignoriert werden. Beachten Sie die Warnung, dass er nicht mit dem Protokoll J1939 verwendet werden darf. Beachten Sie, dass die Antworten nicht vorhersehbar sind, wenn Sie die Befehle CRA, CF oder CM mit dem Protokoll SAE J1939 verwenden und gleichzeitig den Befehl MP oder den Befehl DM1 nutzen. Tatsächlich empfehlen wir nicht, die Befehle CRA, CM oder CF im Protokoll J1939 zu irgendeinem Zeitpunkt zu verwenden. Wenn Sie eine zusätzliche Filterung für das Protokoll J1939 benötigen, ziehen Sie die Verwendung des Befehls FT in Betracht. |
AT CP hh |
CAN-Prioritätsbits auf hh setzen Dieser Befehl bietet eine Möglichkeit, die fünf höchstwertigen Bits des 29-Bit-CAN-Identifikators zuzuweisen, der zum Senden von Nachrichten verwendet wird (die übrigen 24 Bit können mit dem Befehl AT SH eingestellt werden). Viele Systeme verwenden diese Bits, um Nachrichten einen Prioritätswert zuzuweisen und das Protokoll der Nachricht zu bestimmen. Alle über die fünf erforderlichen hinaus bereitgestellten Bits werden ignoriert und vom ELM327 nicht gespeichert (er verwendet nur die fünf niederwertigen Bits dieses Bytes). Standardmäßig wird für den Wert CP hh der Hexadezimalwert 18 verwendet, der jederzeit mit dem Befehl AT D wiederhergestellt werden kann. |
AT CRA |
Reset CAN Rx Addr Der Befehl AT CRA dient dazu, die CAN-Empfangsfilter auf die Standardwerte zurückzusetzen. Beachten Sie, dass er keine Argumente (d. h. keine Daten) hat. |
AT CRA hhh |
CAN Rx Addr auf hhh setzen Das Einstellen von CAN-Masken und -Filtern kann manchmal kompliziert sein; wenn Sie also Informationen nur von einer einzigen Adresse (d. h. von einer einzigen CAN-ID) empfangen möchten, kann dieser Befehl sehr nützlich sein. Möchten Sie beispielsweise nur Informationen von der Adresse 7E8 sehen, senden Sie einfach AT CRA 7E8, und der ELM327 nimmt die erforderliche Anpassung von Maske und Filter vor. Möchten Sie den Empfang eines Wertebereichs zulassen, können Sie den Buchstaben X verwenden, um die Bedingung „beliebig" zu kennzeichnen. Das heißt, AT CRA 7EX lässt alle Identifikatoren durch, die mit 7E beginnen (7E0, 7E1 usw.). Für einen spezifischeren ID-Bereich kann die Zuweisung von Maske und Filter erforderlich sein. Um die mit dem Befehl CRA vorgenommenen Änderungen aufzuheben, senden Sie einfach AT CRA oder AT AR. Beachten Sie, dass die Antworten nicht vorhersehbar sind, wenn Sie die Befehle CRA, CF oder CM mit dem Protokoll SAE J1939 verwenden und gleichzeitig den Befehl MP oder den Befehl DM1 nutzen. Tatsächlich empfehlen wir nicht, die Befehle CRA, CM oder CF zu irgendeinem Zeitpunkt zu verwenden, wenn das Protokoll J1939 genutzt wird. Wenn Sie eine zusätzliche Filterung für das Protokoll J1939 benötigen, ziehen Sie die Verwendung des Befehls FT in Betracht. |
AT CRA hhhhhhhh |
CAN Rx Addr auf hhhhhhhh setzen Dieser Befehl ist mit dem vorherigen identisch, mit dem Unterschied, dass er mit 29-Bit-CAN-Identifikatoren verwendet wird. Das Senden von AT CRA oder AT AR hebt ebenfalls alle mit diesem Befehl vorgenommenen Änderungen auf. Beachten Sie, dass die Antworten nicht vorhersehbar sind, wenn Sie die Befehle CRA, CF oder CM mit dem Protokoll SAE J1939 verwenden und gleichzeitig den Befehl MP oder den Befehl DM1 nutzen. Tatsächlich empfehlen wir nicht, die Befehle CRA, CM oder CF im Protokoll J1939 zu irgendeinem Zeitpunkt zu verwenden. Wenn Sie eine zusätzliche Filterung für das Protokoll J1939 benötigen, ziehen Sie die Verwendung des Befehls FT in Betracht. |
AT CS |
CAN-Statuszähler anzeigen Das CAN-Protokoll erfordert das Führen einer Statistik über die Anzahl der erkannten Sende- und Empfangsfehler. Bei einer erheblichen Anzahl von Fehlern (aufgrund eines Hardware- oder Softwareproblems) schaltet sich das Gerät ab, um andere Daten auf dem Bus nicht zu beeinträchtigen. Der Befehl AT CS erlaubt es, die Anzahl der Sende- (Tx) und Empfangsfehler (Rx) im Hexadezimalformat zu sehen. Muss der Sender abgeschaltet werden (Zählerstand >FF), sehen Sie 'OFF' anstelle eines konkreten Zählerstands. Ab Firmware v2.2 zeigt die CS-Antwort auch die aktuelle Signalfrequenz auf dem CAN an. Eine typische Antwort könnte folgendermaßen aussehen: ``` >AT CS |
AT CSM0 und CSM1 |
Stilles CAN-Monitoring aus oder ein Der ELM327 wurde so konzipiert, dass er beim Monitoring des CAN-Busses absolut still ist. Dadurch kann er genau das melden, was er sieht, ohne die Informationen in irgendeiner Weise zu färben. Manchmal (bei Prüfstandstests oder beim Anschluss an einen dedizierten CAN-Port) kann es erforderlich sein, dass der ELM327 nicht still arbeitet (d. h. ACK-Bits usw. erzeugt), und genau dafür ist der Befehl CSM vorgesehen. CSM1 aktiviert ihn, CSM0 deaktiviert ihn, und der Standardwert wird durch PP 21 bestimmt. Seien Sie vorsichtig beim Experimentieren damit. Wenn Sie die falsche Baudrate wählen und dann den CAN-Bus mit ausgeschaltetem stillem Monitoring beobachten, stören Sie den Datenfluss. Lassen Sie das stille Monitoring stets aktiviert, bis Sie sich vergewissert haben, dass Sie die richtige Baudrate gewählt haben. |
AT CTM1 |
Timer-Multiplikator auf 1 setzen Dieser Befehl bewirkt, dass alle mit AT ST eingestellten Timeouts mit dem Faktor 1 multipliziert werden. Beachten Sie, dass dies derzeit nur die CAN-Protokolle (6 bis C) betrifft. Standardmäßig wird der Wert CTM1 verwendet. CTM5 [ Timer-Multiplikator auf 5 setzen ] Dieser Befehl bewirkt, dass alle mit AT ST eingestellten Timeouts mit dem Faktor 5 multipliziert werden. Beachten Sie, dass dies derzeit nur die CAN-Protokolle (6 bis C) betrifft. Ursprünglich wurde dieser Befehl (als JTM5) hinzugefügt, um beim Empfang einiger J1939-Nachrichten zu helfen. Seither haben wir mehrere Anfragen erhalten, ihn auf alle CAN-Modi wirken zu lassen, und deshalb haben wir den JTM5-Code geändert und die neuen Befehle CTM1/CTM5 hinzugefügt. Bei Verwendung von CTM5 weisen wir darauf hin, dass der Adaptive-Timing-Code Änderungen der Einstellungen nicht nachverfolgt, weshalb wir raten, ihn zu deaktivieren (mit AT AT0). Standardmäßig ist dieser Multiplikator ausgeschaltet. |
AT FC SD |
1–5 Bytes Mit diesem Befehl lassen sich die Datenbytes festlegen, die in einer CAN-Flow-Control-Nachricht gesendet werden. Es können ein bis fünf Datenbytes angegeben werden, wobei die übrigen Datenbytes in der Nachricht automatisch auf das CAN-Standard-Füllbyte gesetzt werden, falls das Protokoll dies erfordert. Die mit diesem Befehl übertragenen Daten werden nur dann verwendet, wenn der Flow-Control-Modus 1 oder 2 aktiviert ist. |
AT FC SH hhh |
Flow-Control-Header setzen Mit diesem Befehl lassen sich die Header-Bytes (oder korrekter „CAN-ID") festlegen, die für CAN-Flow-Control-Nachrichten verwendet werden. Es werden nur die äußersten rechten 11 Bit verwendet — das höchstwertige Bit wird stets entfernt. Dieser Befehl betrifft nur den Flow-Control-Modus 1. |
AT FC SH hhhhhhhh |
Flow-Control-Header setzen Dieser Befehl dient dazu, den Header (oder die „CAN-Bits") für Flow-Control-Antworten mit 29-Bit-CAN-ID-Systemen festzulegen. Da 8 Halbbytes 32 Bit definieren, werden nur die äußersten rechten 29 Bit verwendet — die obersten drei Bit werden stets entfernt. Dieser Befehl betrifft nur den Flow-Control-Modus 1. |
AT FC SM h |
Flow-Control-Modus auf h setzen Dieser Befehl legt fest, wie der ELM327 auf First-Frame-Nachrichten reagiert, wenn die automatischen Flow-Control-Antworten aktiviert sind. Der einstellige Wert kann entweder '0' (Standard) für vollständig automatische Antworten, '1' für vollständig benutzerdefinierte Antworten oder '2' für benutzerdefinierte Datenbytes in der Antwort sein. Beachten Sie, dass die FC-Modi 1 und 2 nur dann aktiviert werden können, wenn Sie die erforderlichen Datenbytes und möglicherweise die ID definiert haben. Andernfalls erhalten Sie einen Fehler. Weitere Informationen und Beispiele finden Sie im Abschnitt Ändern von Flow-Control-Nachrichten (S. 62). |
AT FT |
Filter nach Sender aus Wurde ein Filter eingestellt, um die empfangenen Nachrichten einzuschränken, lässt er sich mit dem Befehl AT FT deaktivieren. |
AT FT hh |
Filter nach Sender = hh Dieser Befehl bietet eine zusätzliche Filterebene für die empfangenen Nachrichten. Eine Nachricht wird angenommen, wenn der mit dem Befehl hh übertragene Wert mit dem Wert des dritten Bytes des standardmäßigen Drei-Byte-Headers oder mit den niederwertigen acht Bit des CAN-Identifikators übereinstimmt. Dies ist eine Ergänzung zu jeder anderen Filterung, die durch andere Befehle bereitgestellt wird. Weitere Informationen finden Sie im Abschnitt „Filterung nach Sender". |
AT PB xx yy |
Parameter von Protokoll B setzen Dieser Befehl erlaubt es, die Parameter von Protokoll B (USER1) und die Baudrate zu ändern, ohne die entsprechenden programmierbaren Parameter (PP 2C und PP 2D) ändern zu müssen. Dadurch lässt sich das Protokoll während eines Tests leichter wechseln. Um diese Funktion zu nutzen, setzen Sie einfach xx auf den Wert für PP 2C und yy auf den Wert für PP 2D und führen den Befehl aus. Bei der nächsten Initialisierung des Protokolls werden diese Werte verwendet. Um beispielsweise Protokoll B für die Verwendung mit 500 kbit/s J1939 zu konfigurieren, führen Sie einfach den Befehl aus: >AT PB 42 01. Nehmen wir als weiteres Beispiel an, Sie möchten ein System überwachen, das 11-Bit-CAN bei 33,3 kbit/s verwendet. Ist keine spezielle Formatierung erforderlich, bedeutet dies den Wert 11000000 bzw. C0 hex für PP 2C und 15 dezimal bzw. 0F hexadezimal für PP 2D. Senden Sie diese Werte einfach mit dem Befehl an den ELM327: >AT PB C0 0F, und starten Sie dann das Monitoring mit dem Befehl: >AT MA. Wenn Sie Fehler CAN ERROR sehen und feststellen, dass Sie eine Baudrate von 83,3 kbit/s benötigt hätten, schließen Sie das Protokoll und senden die neuen Werte: >AT PC OK >AT PB C0 06 OK >AT MA. Die auf diese Weise übertragenen Werte beeinflussen nicht die in den programmierbaren Parametern 2C und 2D gespeicherten und gehen beim Neustart des ELM327 verloren. Wenn Sie möchten, dass Ihre Einstellungen über mehrere Stromzyklen hinweg erhalten bleiben, können Sie sie in den programmierbaren Parametern für die CAN-Protokolle USER1 oder USER2 speichern. |
AT RTR |
RTR-Nachricht senden Dieser Befehl bewirkt das Senden einer speziellen CAN-Nachricht vom Typ 'Remote Frame'. Diese Art von Nachricht enthält keine Datenbytes und hat das Bit Remote Transmission Request (RTR) gesetzt. Header und Filter bleiben so, wie sie zuvor eingestellt wurden (d. h. der ELM327 macht keinerlei Annahmen darüber, welches Format die Antwort haben könnte), sodass eine Anpassung von Maske und Filter erforderlich sein kann. Dieser Befehl muss mit einem aktiven CAN-Protokoll verwendet werden (das Nachrichten sendet und empfängt), da er keine Protokollsuche auslösen kann. Beachten Sie, dass die Einstellung CAF1 üblicherweise die Anzeige aller RTR ausschließt; wenn Sie also Nachrichten überwachen und RTR sehen möchten, müssen Sie die Formatierung deaktivieren oder die Header aktivieren. Der ELM327 behandelt RTR wie jede andere Nachricht und erwartet eine Antwort vom Fahrzeug (sofern nicht AT R0 gewählt ist). |
AT SH xyz |
Header auf 00 0x yz setzen Die Eingabe von 11-Bit-CAN-IDs (Headern) erfordert üblicherweise das Hinzufügen führender Nullen (z. B. AT SH 00 07 DF), doch dieser Befehl vereinfacht dies. Der Befehl AT SH xyz nimmt ein dreistelliges Argument entgegen, übernimmt daraus nur die rechten 11 Bit, fügt führende Nullen hinzu und speichert das Ergebnis. Beispielsweise ist AT SH 7DF ein gültiger Befehl, der für die Arbeit mit 11-Bit-CAN-Systemen praktisch ist. Tatsächlich wird der Header als 00 07 DF gespeichert. |
AT SH xx yy zz |
Header auf xx yy zz setzen Dieser Befehl erlaubt es dem Benutzer, die Werte der drei Header-Bytes einer Nachricht manuell zu steuern. Üblicherweise werden diese Bytes automatisch zugewiesen, doch es gibt Fälle, in denen es wünschenswert ist, sie zu ändern (insbesondere beim Experimentieren mit physischer Adressierung). Es wird empfohlen, die Header nach der Aktivierung des Protokolls einzustellen, damit Wakeup-Nachrichten usw. die Standardwerte verwenden. Die Header-Bytes werden durch Hexadezimalziffern angegeben: xx — erstes Byte (Priorität/Typ), yy — zweites (Empfänger), zz — drittes (Sender). Sie gelten bis zur nächsten Einstellung oder bis zur Wiederherstellung der Standardwerte mit den Befehlen D, WS oder Z. Dieser Befehl dient dazu, alle Header-Bytes zuzuweisen — J1850, ISO 9141, ISO 14230 oder CAN. CAN-Systeme verwenden diese drei Bytes, um die Bits 0–23 der ID (für 29-Bit-ID) oder nur die rechten 11 Bit für die 11-Bit-CAN-ID zu füllen. Die zusätzlichen 5 Bit für das 29-Bit-System werden mit dem Befehl AT CP eingestellt. |
AT SH ww xx yy zz |
Header auf ww xx yy zz setzen Die Vier-Byte-Version des Befehls AT SH erlaubt es, die vollständige 29-Bit-CAN-ID mit einer einzigen Anweisung einzustellen. Dies entspricht der gleichzeitigen Verwendung von AT CP (für die fünf höchstwertigen Bit) und der Drei-Byte-Version von AT SH (für die übrigen drei Bytes). |
AT ST hh |
Timeout auf hh setzen Nach dem Senden einer Anfrage wartet der ELM327 für die festgelegte Zeit auf eine Antwort, woraufhin er melden kann, dass vom Fahrzeug „NO DATA" empfangen wurde. Dieselbe Timer-Einstellung kann auch nach dem Empfang einer Antwort verwendet werden, in Erwartung, ob noch eine weitere eintrifft (dies hängt jedoch von den AT-Einstellungen ab). Der Befehl AT ST erlaubt die Feinabstimmung dieses Timers in Schritten von 4 ms (bzw. 20 ms, wenn im CAN-Protokoll CTM5 gewählt ist). Ist die Funktion Adaptive Timing aktiviert, legt die Zeit AT ST die maximale Zeit fest, die zugelassen werden soll, selbst wenn der adaptive Algorithmus feststellt, dass dieser Wert größer sein sollte. In den meisten Fällen ist es besser, die Zeit AT ST auf dem Standardwert zu belassen und den Adaptive-Timing-Algorithmus bestimmen zu lassen, was als Timeout verwendet wird. Standardmäßig ist der ST-Timer auf 32 eingestellt (was eine Zeit von etwa 200 ms ergibt), doch diese Standardeinstellung lässt sich durch Ändern des Werts von PP 03 feinabstimmen. Beachten Sie, dass der Wert 00 nicht zu einer Zeit von 0 ms führt — er setzt den Timer auf den Standardwert zurück. Außerdem wird während der Protokollsuche eine intern festgelegte Mindestzeit verwendet — mit AT ST lässt sich eine größere Zeit wählen, aber keine kleinere. |
AT V0 und V1 |
Variable Datenlänge aus oder ein Viele CAN-Protokolle (z. B. ISO 15765-4) erwarten das Senden von acht Datenbytes. Die Befehle V0 und V1 erlauben es, dieses Verhalten (für jedes beliebige CAN-Protokoll) zu überschreiben. Die Wahl von V1 veranlasst das aktuelle CAN-Protokoll, Nachrichten variabler Länge zu senden, ähnlich wie Bit 6 in PP 2C und PP 2E für die Protokolle B und C. Der Wert V0 (Standard) deaktiviert das erzwungene Senden von Nachrichten variabler Länge, und das Format kehrt zu den Protokolleinstellungen zurück. |
| Befehl | Beschreibung |
|---|---|
AT FI |
schnelle Initiierung ausführen In einer der Versionen des Keyword-Protokolls wird zum Beginn des Datenaustauschs eine sogenannte „Fast-Init"-Sequenz verwendet. Üblicherweise wird diese Sequenz ausgeführt, wenn die erste Nachricht gesendet werden soll, und unmittelbar danach wird die Nachricht gesendet. Manche Steuergeräte benötigen jedoch mehr Zeit zwischen diesen beiden Aktionen, und das Vorhandensein eines separaten Initiierungsbefehls erlaubt die Steuerung dieser Zeit. Senden Sie einfach AT FI, warten Sie kurz und senden Sie dann die Nachricht. Möglicherweise müssen Sie experimentieren, um die richtige Verzögerung zu erhalten. Ein weiterer Anwendungsfall für diesen Befehl kann das Ausführen einer schnellen Initiierung über ein Protokoll vom Typ ISO 9141 (d. h. 3 — CARB-Format) sein. Führen Sie einfach die folgenden Schritte aus, um eine schnelle Initiierung zu erzeugen, und wechseln Sie dann zu Protokoll 3: AT SP 5 AT FI AT SP 3 AT BI. Danach können Sie mit dem Steuergerät kommunizieren. Beachten Sie, dass das Schließen des Protokolls (d. h. AT PC) im obigen Code nicht erforderlich ist, da der ELM327 dies beim Wechseln der Protokolle automatisch ausführt. Für die Verwendung des Befehls AT FI muss Protokoll 5 gewählt sein, andernfalls tritt ein Fehler auf. |
AT KW |
Schlüsselwörter anzeigen Bei der Initialisierung der Protokolle ISO 9141-2 und ISO 14230-4 werden zwei spezielle Bytes (Schlüsselwörter) an den ELM327 übertragen (deren Werte dienen dazu festzustellen, ob der ELM327 die jeweilige Protokollvariante unterstützen kann). Wenn Sie den Wert dieser Bytes erfahren möchten, senden Sie einfach den Befehl AT KW. |
AT KW0 und KW1 |
Schlüsselwortprüfung aus oder ein Der ELM327 sucht nach bestimmten Bytes (sogenannten Schlüsselwörtern), die ihm vom Steuergerät während der Initiierung über ISO 9141-2 und ISO 14230-4 gesendet werden müssen. Werden die Bytes nicht gefunden, gilt die Initiierung als fehlgeschlagen (und Sie sehen möglicherweise die Meldung 'UNABLE TO CONNECT' oder eventuell 'BUS INIT: ...ERROR'). Dies kann geschehen, wenn Sie versuchen, sich mit einem nicht OBD-kompatiblen oder vielleicht einem alten Steuergerät zu verbinden. Wenn Sie mit nicht standardkonformen Systemen experimentieren möchten, müssen Sie den ELM327 möglicherweise anweisen, die Initiierungssequenz auszuführen, aber den Inhalt der empfangenen Schlüsselwort-Bytes zu ignorieren. Senden Sie dazu einfach den Befehl Key Words off: >AT KW0 Nach dem Deaktivieren der Schlüsselwortprüfung verlangt der ELM327 weiterhin zwei Schlüsselwort-Bytes in der Antwort, betrachtet jedoch nicht die tatsächlichen Bytewerte. Er sendet außerdem eine Bestätigung an das Steuergerät und wartet auf dessen endgültige Antwort (stoppt aber nicht und meldet keinen Fehler, falls keine empfangen wird). Dies kann es Ihnen ermöglichen, in einer ansonsten „unmöglichen" Situation eine Verbindung herzustellen. Das normale Verhalten kann mit AT KW1 wiederhergestellt werden, was die Standardeinstellung ist. |
AT SI |
langsame Initiierung ausführen Die Protokolle 3 und 4 verwenden eine sogenannte 5-Baud- (oder langsame) Initiierungssequenz zum Beginn des Datenaustauschs. Üblicherweise wird die Sequenz beim Senden der ersten Nachricht ausgeführt, woraufhin die Nachricht sofort gesendet wird. Manche Steuergeräte benötigen jedoch mehr Zeit zwischen diesen Aktionen, und das Vorhandensein eines separaten Initiierungsbefehls erlaubt die Steuerung dieser Verzögerung. Senden Sie einfach AT SI, warten Sie kurz und senden Sie dann die Nachricht. Möglicherweise müssen Sie mit dem Verzögerungswert experimentieren. Für die Verwendung des Befehls AT SI muss Protokoll 3 oder 4 gewählt sein, andernfalls tritt ein Fehler auf. |
AT SW hh |
Wakeup-Intervall auf hh setzen Nach dem Verbindungsaufbau erfordern einige Protokolle alle paar Sekunden einen periodischen Datenaustausch, damit das Steuergerät den Kommunikationskanal offen hält. Treffen keine Nachrichten ein, geht das Steuergerät davon aus, dass Sie die Arbeit beendet haben, und schließt den Kanal. Der ELM327 erzeugt automatisch periodische Nachrichten zur Aufrechterhaltung der Verbindung. Antworten auf diese Nachrichten werden ignoriert. (Derzeit unterstützen nur die Protokolle 3, 4 und 5 diese Nachrichten — für CAN ist nichts vorgesehen.) Das Intervall zwischen Wakeup-Nachrichten wird in Schritten von 20 ms mit dem Befehl AT SW hh eingestellt (hh — Hex-Wert von 00 bis FF). Die maximale Verzögerung beträgt etwa 5 Sekunden bei FF. Standardmäßig (92) — nominale Verzögerung von 3 Sekunden. Der Wert 00 stoppt die periodischen Nachrichten. Nach AT SW 00 lassen sie sich nur durch Schließen und erneutes Initialisieren des Protokolls wiederherstellen. |
AT WM |
1–6 Bytes Dieser Befehl erlaubt es, die Einstellungen der Wakeup-Nachrichten (manchmal auch „periodische Leerlaufnachrichten" genannt) zu überschreiben. Geben Sie einfach die zu sendende Nachricht an (üblicherweise drei Header-Bytes und ein bis drei Datenbytes), und der ELM327 fügt eine Prüfsumme hinzu und sendet sie gemäß der Einstellung AT SW. Die Standardwerte sind: 68 6A F1 01 00 für ISO 9141 und C1 33 F1 3E für KWP. |
| Befehl | Beschreibung |
|---|---|
AT JE |
ELM-Datenformat für J1939 aktivieren Der Standard J1939 verlangt, dass PGN-Anfragen mit umgekehrter Bytereihenfolge gegenüber der standardmäßigen Reihenfolge „von links nach rechts" gesendet werden. Beispielsweise werden für die Anfrage der Motortemperatur (PGN 00FEEE) die Datenbytes tatsächlich in umgekehrter Reihenfolge gesendet (EE FE 00), und der ELM327 erwartet üblicherweise, dass Sie die Daten genau in dieser Reihenfolge bereitstellen. Beim Experimentieren kann die ständige Notwendigkeit, Bytes umzukehren, verwirren, weshalb das ELM-Format definiert wurde, das die Umkehrung für Sie übernimmt. Ist das J1939-ELM-Format (JE) aktiviert, Protokoll J1939 gewählt, und Sie stellen drei Datenbytes bereit, so ändert der ELM327 deren Reihenfolge vor dem Senden an das Steuergerät. Für die Anfrage der Motortemperatur senden Sie 00 FE EE (und nicht EE FE 00). Das Format JE ist standardmäßig aktiviert. |
AT JHF0 und JHF1 |
J1939-Header-Formatierung aus oder ein Bei der Ausgabe von Antworten formatiert der ELM327 üblicherweise die J1939-ID-Bits (Header) so, dass die Prioritätsbits isoliert, alle PGN-Informationen gruppiert und das Quelladressbyte abgetrennt werden. Wenn Sie es vorziehen, die ID-Informationen als vier separate Bytes zu sehen (wie es die meisten J1939-Programme tun), deaktivieren Sie einfach die Formatierung mit dem Befehl JHF0. Der Befehl CAF0 hat denselben Effekt (und überschreibt die JHF-Einstellung), beeinflusst aber auch andere Formatierungen. Die Standardeinstellung ist JHF1. |
AT JS |
SAE-Datenformat für J1939 aktivieren Der Befehl AT JS deaktiviert die automatische Byte-Umkehrung, die der Befehl JE ausführt. Wenn Sie Datenbytes ohne jegliche Änderung der Bytereihenfolge an ein J1939-Fahrzeug senden möchten (d. h. in der in den SAE-Dokumenten angegebenen Reihenfolge), wählen Sie das Format JS. Beim Senden einer Anfrage der Motortemperatur (PGN 00FEEE) mit dem Format JS müssen Sie die Bytes beispielsweise als EE FE 00 übertragen (dies ist auch als Little-Endian-Bytereihenfolge bekannt). Das Format JS ist standardmäßig ausgeschaltet. |
AT JTM1 |
J1939-Timer-Multiplikator auf 1 setzen Dieser Befehl setzt den Multiplikator der AT-ST-Zeit für das Protokoll SAE J1939 auf x1. Ab Firmware v2.1 ruft dieser Befehl einfach CTM1 auf. |
AT JTM5 |
J1939-Timer-Multiplikator auf 5 setzen Dieser Befehl setzt den Multiplikator der AT-ST-Zeit für das Protokoll SAE J1939 auf x5. Ab Firmware v2.1 ruft dieser Befehl einfach CTM5 auf. |
AT MP hhhh |
PGN hhhh überwachen Die Befehle AT MA, MR und MT sind sehr nützlich für das Monitoring eines bestimmten Bytes im Header einer typischen OBD-Nachricht. Für das Protokoll SAE J1939 ist jedoch häufig das Monitoring von mehrbyteigen Parameter-Gruppennummern (PGN) erforderlich, die sich sowohl im Header als auch in den Datenbytes befinden können. Der Befehl MP ist ein spezieller Befehl nur für J1939, der dazu dient, Antworten auf die Anfrage eines bestimmten PGN zu verfolgen. Beachten Sie, dass dieser Befehl es nicht erlaubt, die ersten beiden Stellen des PGN festzulegen — sie werden stets als 00 angenommen. Beispielsweise hat das PGN DM2 den Wert 00FECB (siehe SAE J1939-73). Um DM2 zu überwachen, senden Sie AT MP FECB. Dieser Befehl ist nur verfügbar, wenn ein CAN-Protokoll (A, B oder C) mit SAE-J1939-Formatierung gewählt ist. Unter anderen Bedingungen wird ein Fehler zurückgegeben. |
AT MP hhhh n |
PGN überwachen, n Nachrichten empfangen Dieser Befehl ähnelt dem vorherigen, fügt aber die Möglichkeit hinzu, die Anzahl der Nachrichten festzulegen, die empfangen werden sollen, bevor der ELM327 das Monitoring automatisch beendet und das Eingabeaufforderungszeichen ausgibt. Der Wert „n" ist eine einzelne Hexadezimalziffer. |
AT MP hhhhhh |
PGN hhhhhh überwachen Dieser Befehl ähnelt MP hhhh, erweitert aber die Anzahl der bereitgestellten Bytes um eines und bietet so die vollständige Kontrolle über die Definition des PGN (er macht nicht die Annahme, dass das Data-Page-Bit 0 ist, wie der Befehl MP hhhh). Dies erlaubt die Nutzung zukünftiger Erweiterungen, falls zusätzliche PGN mit gesetztem Data-Page-Bit definiert werden. Beachten Sie, dass im zusätzlichen Byte nur das Data-Page-Bit von Bedeutung ist — die übrigen Bits werden ignoriert. |
AT MP hhhhhh n |
PGN überwachen, n Nachrichten empfangen Dieser Befehl ähnelt dem vorherigen, fügt aber die Möglichkeit hinzu, die Anzahl der Nachrichten festzulegen, die empfangen werden sollen, bevor der ELM327 das Monitoring automatisch beendet und das Eingabeaufforderungszeichen ausgibt. Der Wert „n" ist eine einzelne Hexadezimalziffer. |
| Befehl | Beschreibung |
|---|---|
AT MA |
Alle Nachrichten überwachen Dieser Befehl versetzt den ELM327 in den Bus-Monitoring-Modus, in dem er fortlaufend alle Nachrichten überwacht (und anzeigt), die er auf dem OBD-Bus sieht. Dies ist ein stiller Monitor, der keine In-Frame-Antworten für J1850-Systeme, keine Bestätigungen für CAN-Systeme (sofern Sie den stillen Modus nicht mit CSM0 deaktivieren) und keine Wakeup-Nachrichten („Keep-Alive") für die Protokolle ISO 9141 und ISO 14230 sendet. Das Monitoring wird fortgesetzt, bis Sie es durch Aktivität am RS232-Eingang oder am RTS-Pin stoppen. Um das Monitoring zu stoppen, senden Sie einfach ein beliebiges einzelnes Zeichen an den ELM327 und warten dann auf die Antwort in Form des Eingabeaufforderungszeichens ('>') oder eines niedrigen Pegels am Busy-Pin. (Das Setzen des RTS-Eingangs auf niedrigen Pegel unterbricht das Gerät ebenfalls.) Das Warten auf die Eingabeaufforderung ist erforderlich, da die Antwortzeit davon abhängt, was der Chip im Moment der Unterbrechung getan hat. Befand er sich beispielsweise mitten in der Ausgabe einer Zeile, beendet er diese zunächst und gibt dann 'STOPPED' aus, woraufhin er in den Befehlszustand zurückkehrt und das Eingabeaufforderungszeichen sendet. Hätte er lediglich auf Eingaben gewartet, würde er deutlich schneller zurückkehren. Beachten Sie, dass das Zeichen, das das Monitoring stoppt, stets verworfen wird und keine Auswirkung auf nachfolgende Befehle hat. Wird dieser Befehl mit CAN-Protokollen verwendet und wurden zuvor ein CAN-Filter und/oder eine CAN-Maske eingestellt (mit CF, CM oder CRA), so hängt der Befehl MA von diesen Einstellungen ab. Wurde beispielsweise für die Empfangsadresse zuvor der Wert CRA 4B0 eingestellt, so kann der Befehl MA nur Nachrichten mit der ID 4B0 „sehen". Dies ist möglicherweise nicht ganz das, was benötigt wird — vielleicht sollten zunächst die Masken und Filter zurückgesetzt werden (mit AT AR oder AT CRA). Alle Monitoring-Befehle (MA, MR und MT) arbeiten, indem sie das aktuelle Protokoll schließen (AT PC wird ausgeführt), bevor sie den Chip für das Monitoring von Daten konfigurieren. Wird der nächste OBD-Befehl übertragen, wird das Protokoll erneut initialisiert, was Sie möglicherweise an Meldungen erkennen. Außerdem kann die Meldung 'SEARCHING...' erscheinen, abhängig davon, welche Änderungen während des Monitorings vorgenommen wurden. |
AT MR hh |
Überwachung nach Empfängeradresse hh Dieser Befehl ähnelt AT MA, zeigt aber nur Nachrichten an, die an die Hexadezimaladresse hh gesendet wurden. Dies sind Nachrichten, bei denen der Wert hh im zweiten Byte des standardmäßigen Drei-Byte-OBD-Headers, in den Bits 8–15 der 29-Bit-CAN-ID oder in den Bits 8–10 der 11-Bit-CAN-ID steht. Das Monitoring wird durch ein beliebiges RS232-Zeichen unterbrochen, ebenso wie beim Befehl MA. Beachten Sie: Wird dieser Befehl mit CAN-Protokollen verwendet und wurden zuvor ein CAN-Filter/eine CAN-Maske eingestellt (mit den Befehlen CF, CM oder CRA), so überschreibt der Befehl MR nur die entsprechenden Bits — die übrigen bleiben unverändert. Möglicherweise sollten zunächst die Masken und Filter zurückgesetzt werden (AT AR). Wie AT MA beginnt auch dieser Befehl mit einem internen Schließen des Protokolls. |
AT MT hh |
Überwachung nach Senderadresse hh Dieser Befehl ähnelt AT MA, zeigt aber nur Nachrichten an, die von einem Sender mit der Hexadezimaladresse hh gesendet wurden. Dies sind Nachrichten, bei denen dieser Wert im dritten Byte des standardmäßigen Drei-Byte-OBD-Headers oder in den Bits 0–7 der CAN-ID steht. Wie in den Modi MA und MR wird das Monitoring durch ein beliebiges RS232-Zeichen unterbrochen. Beachten Sie: Wurden zuvor ein CAN-Filter/eine CAN-Maske eingestellt, so überschreibt der Befehl MT nur die entsprechenden Bits. Möglicherweise sollten zunächst die Masken und Filter zurückgesetzt werden (AT AR). Wie AT MA beginnt auch dieser Befehl mit einem internen Schließen des Protokolls. |
| Befehl | Beschreibung |
|---|---|
AT AR |
Automatische Einstellung der Empfangsadresse Antworten vom Fahrzeug werden bestätigt und auf dem Display des ELM327 angezeigt, wenn die interne Empfangsadresse mit der Adresse übereinstimmt, an die die Nachricht gesendet wird. Im Auto-Receive-Modus wird der für die Empfangsadresse verwendete Wert anhand der aktuellen Header-Bytes gewählt und bei einer Änderung der Header-Bytes automatisch aktualisiert. Der für die Empfangsadresse verwendete Wert wird durch Parameter wie den Inhalt des ersten Header-Bytes bestimmt sowie dadurch, ob in der Nachricht physische Adressierung, funktionale Adressierung verwendet wird oder ob der Benutzer einen Wert mit den Befehlen SR oder RA festgelegt hat. Der Auto-Receive-Modus ist standardmäßig aktiviert und wird vom Protokoll J1939 nicht verwendet. |
AT RA hh |
Empfangsadresse auf hh setzen Je nach Anwendung möchten Benutzer möglicherweise die Adresse, auf die der ELM327 antwortet, manuell einstellen. Dieser Befehl deaktiviert den AR-Modus und veranlasst den Chip, nur Antworten anzunehmen, die an hh adressiert sind. Seien Sie mit dieser Einstellung vorsichtig — je nach Wert können Sie eine für ein anderes Modul bestimmte Nachricht annehmen (und mit einem IFR bestätigen). Zum Deaktivieren der RA-Filterung senden Sie AT AR. Dieser Befehl hat mit CAN nur eine begrenzte Anwendung, da er nur einen Teil der ID-Bits verfolgt — der Befehl CRA kann die bessere Wahl sein. Außerdem hat der Befehl keinen Einfluss auf J1939-Adressen. Der Befehl RA ist mit SR identisch und kann austauschbar verwendet werden. Die erweiterte CAN-Adressierung verwendet den mit dem Befehl AT TA eingestellten Wert. |
AT SR hh |
Empfangsadresse auf hh setzen Je nach Anwendung möchten Benutzer möglicherweise die Adresse, auf die der ELM327 antwortet, manuell einstellen. Dieser Befehl deaktiviert den AR-Modus und veranlasst den Chip, nur Antworten anzunehmen, die an hh adressiert sind. Seien Sie mit dieser Einstellung vorsichtig — je nach Wert können Sie eine für ein anderes Modul bestimmte Nachricht annehmen (und mit einem IFR bestätigen). Zum Deaktivieren der RA-Filterung senden Sie AT AR. Dieser Befehl hat mit CAN nur eine begrenzte Anwendung, da er nur einen Teil der ID-Bits verfolgt — der Befehl CRA kann die bessere Wahl sein. Außerdem hat der Befehl keinen Einfluss auf J1939-Adressen. Der Befehl RA ist mit SR identisch und kann austauschbar verwendet werden. Die erweiterte CAN-Adressierung verwendet den mit dem Befehl AT TA eingestellten Wert. |
AT TA hh |
Testeradresse auf hh setzen Dieser Befehl dient dazu, die aktuelle Adresse des Testers (Diagnosegeräts) zu ändern, die in Headern, periodischen Nachrichten, Filtern usw. verwendet wird. Der ELM327 verwendet üblicherweise den Wert aus PP 06, doch der Befehl TA erlaubt es, ihn vorübergehend zu überschreiben. AT TA wirkt auf alle Protokolle, einschließlich J1939, was praktisch ist, um die J1939-Adresse vom Standardwert F9 zu ändern. Obwohl der Befehl „im laufenden Betrieb" funktionieren kann, wird nicht empfohlen, die Adresse nach der Aktivierung des Protokolls zu ändern — die Ergebnisse können unvorhersehbar sein. |
| Befehl | Beschreibung |
|---|---|
AT PP hh OFF |
programmierbaren Parameter hh ausschalten (OFF) Dieser Befehl deaktiviert den programmierbaren Parameter mit der Nummer hh. Jeder mit dem Befehl PP hh SV zugewiesene Wert wird nicht mehr verwendet, und es gilt wieder die werkseitige Standardeinstellung. Der tatsächliche Zeitpunkt des Inkrafttretens des neuen Werts für diesen Parameter wird durch seinen Typ bestimmt. Weitere Informationen zu den Typen finden Sie im Abschnitt „Programmierbare Parameter" (S. 72). Beachten Sie, dass 'PP FF OFF' ein spezieller Befehl ist, der alle programmierbaren Parameter deaktiviert, so als ob Sie PP OFF für jeden möglichen Parameter eingegeben hätten. Es ist möglich, einige programmierbare Parameter so zu ändern, dass die Kommunikation mit dem ELM327 erschwert oder sogar unmöglich wird. Ist dies geschehen, gibt es ein Hardware-Mittel, um alle programmierbaren Parameter auf einmal zurückzusetzen. Schließen Sie eine Brücke vom gemeinsamen Schaltungsanschluss an Pin 28 an und halten Sie sie in dieser Position, während Sie die ELM327-Schaltung mit Spannung versorgen. Halten Sie sie in dieser Position, bis Sie sehen, dass die RS232-Empfangs-LED zu blinken beginnt (dies bedeutet, dass alle PP deaktiviert sind). Entfernen Sie an diesem Punkt die Brücke, damit der Chip einen normalen Start ausführen kann. Beachten Sie, dass das Zurücksetzen der PP recht schnell erfolgt — wenn Sie die Brücke länger als ein paar Sekunden angeschlossen halten und kein Blinken der RS232-Empfangs-LED sehen, entfernen Sie die Brücke und versuchen Sie es erneut, da möglicherweise ein Anschlussproblem vorliegt. |
AT PP hh ON |
programmierbaren Parameter hh einschalten Dieser Befehl aktiviert den programmierbaren Parameter mit der Nummer hh. Nach dem Aktivieren wird jeder mit dem Befehl PP hh SV zugewiesene Wert dort verwendet, wo zuvor der werkseitige Standardwert galt. (Alle programmierbaren Werte werden werkseitig auf Standardwerte gesetzt, sodass das Aktivieren eines programmierbaren Parameters vor dem Zuweisen eines Werts keine Probleme verursacht.) Der tatsächliche Zeitpunkt des Inkrafttretens des Werts dieses Parameters wird durch seinen Typ bestimmt. Weitere Informationen zu den Typen finden Sie im Abschnitt „Programmierbare Parameter" (S. 72). Beachten Sie, dass 'PP FF ON' ein spezieller Befehl ist, der alle programmierbaren Parameter gleichzeitig aktiviert. |
AT PP hh SV yy |
Progr. Parameter hh: Wert yy setzen Mit diesem Befehl wird einem programmierbaren Parameter ein Wert zugewiesen. Das System kann diesen neuen Wert erst verwenden, nachdem der programmierbare Parameter mit dem Befehl PP hh ON aktiviert wurde. |
AT PPS |
Zusammenfassung der programmierbaren Parameter Mit diesem Befehl wird der vollständige Satz der aktuellen programmierbaren Parameter angezeigt (auch die, die noch nicht implementiert sind). Jeder von ihnen wird in Form der PP-Nummer angezeigt, gefolgt von einem Doppelpunkt und dem ihm zugewiesenen Wert. Anschließend folgt ein einzelnes Zeichen — 'N' oder 'F' —, um anzuzeigen, dass der Parameter ein- (eingeschaltet) bzw. aus- (ausgeschaltet) ist. Eine ausführlichere Beschreibung finden Sie im Abschnitt „Programmierbare Parameter". |
| Befehl | Beschreibung |
|---|---|
AT CV dddd |
Spannung auf dd.dd Volt kalibrieren Die Spannungsanzeige, die der ELM327 bei der Anfrage AT RV anzeigt, kann mit diesem Befehl kalibriert werden. Das Argument ('dddd') muss stets als 4 Ziffern ohne Dezimalpunkt angegeben werden (es wird angenommen, dass die Dezimalstelle zwischen der zweiten und dritten Ziffer liegt). Um diese Funktion zu nutzen, verwenden Sie einfach ein präzises Messgerät, um die tatsächliche Eingangsspannung abzulesen, und verwenden Sie dann den Befehl CV, um den internen Kalibrierungs- (Skalierungs-)Faktor zu ändern. Zeigt der ELM327 beispielsweise eine Spannung von 12,2 V an, und Sie messen 11,99 V, senden Sie AT CV 1199, und der ELM327 wird auf diese Spannung kalibriert (tatsächlich liest er aufgrund der Rundung der Ziffern 12,0 V). Weitere Informationen dazu, wie man die Spannung abliest und die Kalibrierung durchführt, finden Sie auf S. 31. |
AT CV 0000 |
werkseitigen Kalibrierungswert wiederherstellen Wenn Sie mit dem Befehl CV dddd experimentieren, aber kein präzises Voltmeter als Referenz haben, können Sie bald in Schwierigkeiten geraten. In diesem Fall können Sie jederzeit AT CV 0000 senden, um die werkseitigen Kalibrierungswerte des ELM327 wiederherzustellen. |
The following pages provide a list of the currently available Programmable Parameters. The value shown in the ‘Type’ column indicates when any changes take effect. Possible values are: - I - the effect is Immediate, - D - takes effect after Defaults are restored (AT D, AT Z, AT WS, MCLR or power off/on) - R - takes effect after a Reset (AT Z, AT WS, MCLR or power off/on) - P - needs a Power off/on type reset (AT Z, MCLR, or power off/on)
Type: I — Immediate, D — after Defaults (AT D, AT Z, AT WS), R — after Reset (AT Z, AT WS), P — after Power off/on (AT Z)
| PP | Description | Values | Default | Type | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
00 |
AT MA nach dem Einschalten oder Reset ausführen | 00 = ON; FF = OFF | FF(OFF) |
R | ||||||||||||||
01 |
Header-Bytes ausgeben (Standardeinstellung von AT H) | 00 = ON; FF = OFF | FF(OFF) |
D | ||||||||||||||
02 |
Lange Nachrichten zulassen (Standardeinstellung von AT AL) | 00 = ON; FF = OFF | FF(OFF) |
D | ||||||||||||||
03 |
NO-DATA-Timeout-Zeit (Standardeinstellung von AT ST) | 00 to FF | 32(205 msec) |
D | ||||||||||||||
04 |
Standardmodus der adaptiven Zeitsteuerung (Einstellung von AT AT) | 00 to 02 | 01 |
D | ||||||||||||||
06 |
Standard-Testeradresse (Source Address) | 00 to FF | F1 |
R | ||||||||||||||
07 |
Letztes Protokoll, das bei der automatischen Suche versucht wird | 01 to 0C | 09 |
I | ||||||||||||||
09 |
Zeichen-Echo (Standardeinstellung von AT E) | 00 = ON; FF = OFF | 00 (ON) |
R | ||||||||||||||
0A |
Zeilenvorschubzeichen | 00 to 20 | 0A |
R | ||||||||||||||
0C |
RS232 baud rate divisor when pin 6 is high (logic 1) P baud rate (in kbps) = 4000 ÷ (PP 0C value) For example, 500 kbps requires a setting of 08 (since 4000/8 = 500) Here are some example baud rates, and the divisor to be used:
Notes: - 1. The PP 0C value must be provided as hex digits only. The decimal values (listed above in brackets) are only shown for your convenience. - 2. The ELM327 can only process continuous byte receives at rates of about 600 kbps maximum. If you need to connect at a higher rate, add a delay between the bytes to maintain an average rate of 600 kbps or less. - 3. A value of 00 provides a baud rate of 9600 bps. |
00 to FF | 68 (38,4) |
P | ||||||||||||||
0D |
Wagenrücklaufzeichen | 00 to 20 | 0D |
R | ||||||||||||||
0E |
Power Control options Each bit controls an option, as follows: b7: Master enable 0: off 1: on if 0, pins 15 and 16 perform as described for v1.0 to v1.3a (must be 1 to allow any Low Power functions) b6: Pin 16 full power level 0: low 1: high normal output level, is inverted when in low power mode b5: Auto LP control (0: disabled 1: enabled) allows low power mode if the RS232 activity stops b4: Auto LP timeout 0: 5 mins 1: 20 mins no RS232 activity timeout setting b3: Auto LP warning (0: disabled 1: enabled) if enabled, says ‘ACT ALERT’ 1 minute before RS232 timeout b2: Ignition control (0: disabled 1: enabled) allows low power mode if the IgnMon input goes low b1: Ignition delay 0: 1 sec 1: 5 sec delay after IgnMon (pin 15) returns to a high level, before normal operation resumes b0: reserved for future - leave set at 0 |
00 to FF | 9A |
R | ||||||||||||||
0F |
Activity Monitor options. Each bit controls an option, as follows: b7: monitor master control (0: disabled 1: enabled) must be 1 to allow b3 to b6 b6: allow wake from Low Power (0: no 1: yes) wakes on shift from no activity to activity b5: Auto LP control (0: disabled 1: enabled) allows low power mode if the OBD activity stops b4: Auto LP timeout 0: 30 secs 1: 150 secs no OBD activity timeout setting b3: Auto LP warning (0: disabled 1: enabled) if enabled, says ‘ACT ALERT’ on timeout b2: reserved for future - leave set at 1 b1: add exclamation mark (0: no 1: yes). if 1, sends ‘!’ before ACT ALERT and LP ALERT b0: LP LED (0: disabled 1: enabled). if 1, the OBD Tx LED flashes when in Low Power mode (one 16 msec flash repeated every 4 seconds) |
00 to FF | D5 |
D | ||||||||||||||
10 |
J1850-Spannungsstabilisierungszeit (ms) = (PP 10) × 4,096 | 00 to FF | 0D |
R | ||||||||||||||
11 |
Monitoring des J1850-Break-Signals (meldet BUS ERROR bei Überschreitung der Grenzwerte) | 00 = ON; FF = OFF | 00 (ON) |
D | ||||||||||||||
12 |
J1850 Volts (pin 3) output polarity normal = Low output for 5V, High output for 8V invert = High output for 5V, Low output for 8V |
00 = invert R; FF = normal | FF (normal) |
R | ||||||||||||||
13 |
Time delay added between protocols 1 & 2 during a search setting (in msec) = 150 + (PP 13 value) x 4.096 | 00 = ON; FF = OFF | 55 (498 msec) |
I | ||||||||||||||
14 |
ISO/KWP final stop bit width (provides P4 interbyte time) setting (in µsec) = 98 + (PP 14 value) x 64 | 00 to FF | 50 (5.2 msec) |
D | ||||||||||||||
15 |
ISO/KWP maximum inter-byte time (P1), and also used for the minimum inter-message time (P2). setting (in msec) = (PP 15 value) x 2.112 | 00 to FF | 0A |
D | ||||||||||||||
16 |
Default ISO/KWP baud rate (AT IB default setting) Note: 4800, 12500, and 15625 baud can not be set as defaults |
00 = 96;FF = 10 | FF(10.4K) |
R | ||||||||||||||
17 |
ISO/KWP wakeup message rate (AT SW default setting) setting (in msec) = (PP 17 value) x 20.48 | 00 to FF | 92(3.0 sec) |
D | ||||||||||||||
18 |
ISO/KWP delay before a fast init, if a slow init has taken place setting (in msec) = 1000 + (PP 18 value) x 20.48 | 00 to FF | 31(2.0 sec) |
I | ||||||||||||||
19 |
ISO/KWP delay before a slow init, if a fast init has taken place setting (in msec) = 1000 + (PP 19 value) x 20.48 If you are having trouble connecting, increasing this time to 5 seconds (C3) may help. | 00 to FF | 4F (2.6 sec) |
I | ||||||||||||||
1A |
Protocol 5 fast initiation active time (TiniL) setting (in msec) = (PP 1A value) x 2.5 | 00 to FF | 0A(25 msec) |
D | ||||||||||||||
1B |
Protocol 5 fast initiation passive time (TiniH) setting (in msec) = (PP 1B value) x 2.5 | 00 to FF | 0A(25 msec) |
D | ||||||||||||||
1C |
ISO/KWP outputs used for initiation (b7 to b2 are not used) b1: L line (pin 22) 0: disabled 1: enabled b0: K line (pin 21) 0: disabled 1: enabled If disabled, an output will remain low during protocol initiations |
00 to FF | 03 |
D | ||||||||||||||
1D |
ISO/KWP P3 time (delay before sending requests) Ave time (in msec) = (PP 1D value - 0.5) x 4.096 | 00 to FF | 0F |
D | ||||||||||||||
1E |
ISO/KWP K line minimum quiet time before an init can begin (W5) setting (in msec) = (PP 1E value) x 4.096 | 00 to FF | 4A(303 msec) |
D | ||||||||||||||
1F |
KWP byte count includes the checksum byte? | FF = NO;00 = YES | FF(NO) |
R | ||||||||||||||
20 |
ISO/KWP 5 baud initiation W1 timer start point The minimum time, measured from the beginning of the Address byte stop bit before the Sync byte may appear. T = (PP 20 value) x 1.984 msec Note that the standards define a range for this value from 260 msec to 500 msec. |
00 to FF | 5D(185 msec) |
R | ||||||||||||||
21 |
Standardeinstellung des stillen CAN-Monitorings (AT CSM) | FF = ON; 00 = OFF | FF(ON) |
R | ||||||||||||||
24 |
CAN-Autoformatierung (Standardeinstellung von AT CAF) | 00 = ON; FF = OFF | 00(ON) |
D | ||||||||||||||
25 |
Automatische CAN-Flow-Control (Standardeinstellung von AT CFC) | 00 = ON; FF = OFF | 00(ON) |
D | ||||||||||||||
26 |
CAN-Füllbyte (wird zum Auffüllen von CAN-Nachrichten auf 8 Byte verwendet) | 00 to FF | 00 |
D | ||||||||||||||
28 |
CAN Filter settings (controls CAN sends while searching) The bits of this byte control options, as follows: b7: 500 kbps match 0: ignored 1: required b6: 250 kbps match 0: ignored 1: required b5 to b1: reserved for future - leave set to 1 b0: send if bus is quiet 0: not allowed 1: allowed |
00 to FF | FF |
D | ||||||||||||||
29 |
CAN-Datenlänge (DLC) bei der Header-Ausgabe ausgeben (Standardeinstellung von AT D0/D1) | 00 = ON; FF = OFF | FF(OFF) |
D | ||||||||||||||
2A |
CAN Error Checking (applies to protocols 6 to C). Each bit of this byte controls an option, as follows: b7: ISO15765 Data Length 0: accept any 1: must be 8 bytes b6: ISO15765 PCI = 00 0: allowed 1: not allowed b5: Search after ERR94 0: normal 1: CAN is blocked b4: Search after LV RESET 0: normal 1: CAN is blocked b3: Wiring Test 0: bypass 1: perform Processing 7F xx 78’s: b2: enabled (CAN & KWP) 0: no 1: yes b1: valid Modes (xx values) 0: all 1: only 00 to 0F b0: valid CAN protocols 0: all 1: only ISO15765 |
00 to FF | 3C |
D | ||||||||||||||
2B |
Protocol A (SAE J1939) CAN baud rate divisor baud rate (in kbps) = 500 ÷ (PP 2B value). For example, setting this PP to 19 (ie. decimal 25) provides a baud rate of 500/25 = 20 kbps. | 01 to 40 | 02(250 Kbps) |
R | ||||||||||||||
2C |
Protocol B (USER1) CAN options. Each bit of this byte controls an option, as follows: b7: Transmit ID Length 0: 29 bit ID 1: 11 bit ID b6: Data Length 0: fixed 8 byte 1: variable DLC b5: Receive ID Length 0: as set by b7 1: both 11 and 29 bit b4: baud rate multiplier 0: x1 1: x 8/7 (see note 3) b3: reserved for future - leave set at 0. b2, b1, and b0 determine the data formatting options: b2 b1 b0 Data Format 0 0 0 none 0 0 1 ISO 15765-4 0 1 0 SAE J1939 Other combinations are reserved for future updates – results will be unpredictable if you should select one of them. |
00 to FF | E0 |
R | ||||||||||||||
2D |
Protocol B (USER1) baud rate divisor baud rate (in kbps) = 500 ÷ (PP 2D value). For example, setting this PP to 0A (ie. decimal 10) provides a baud rate of 500/10 = 50 kbps. | 01 to 40 | 04(125 Kbps) |
R | ||||||||||||||
2E |
Protocol C (USER2) CAN options. Each bit of this byte controls an option, as follows: b7: Transmit ID Length 0: 29 bit ID 1: 11 bit ID b6: Data Length 0: fixed 8 byte 1: variable DLC b5: Receive ID Length 0: as set by b7 1: both 11 and 29 bit b4: baud rate multiplier 0: x1 1: x 8/7 (see note 3) b3: reserved for future - leave set at 0. b2, b1, and b0 determine the data formatting options: b2 b1 b0 Data Format 0 0 0 none 0 0 1 ISO 15765-4 0 1 0 SAE J1939 Other combinations are reserved for future updates – results will be unpredictable if you should select one of them. |
00 to FF | 80 |
R | ||||||||||||||
2F |
Protocol C (USER2) baud rate divisor. baud rate (in kbps) = 500 ÷ (PP 2B value) For example, setting this PP to 19 (ie. decimal 25) provides a baud rate of 500/25 = 20 kbps. | 01 to 40 | 0A(50 Kbps) |
R |
Der ScanDoc-Adapter erweitert das ELM327-Protokoll um die Unterstützung von DoIP (Diagnostics over Internet Protocol, ISO 13400). Dies erlaubt die Ethernet-Diagnose moderner Fahrzeuge über die gewohnte Schnittstelle der ELM327-AT-Befehle.
Ausführliche Beschreibung des DoIP-Protokolls (ISO 13400) →
Der ScanDoc-Adapter erweitert das ELM327-Protokoll um die Unterstützung von BMW HSFZ (High Speed Fahrzeug Zugang). Dies ist ein proprietäres BMW-Protokoll für die Ethernet-Diagnose, das eine 1-Byte-Adressierung und ein vereinfachtes Rahmenformat ohne Routing Activation verwendet.
Ausführliche Beschreibung des BMW-HSFZ-Protokolls →
Im normalen Modus (ohne AT-Präfix) werden Befehle direkt an das Fahrzeug gesendet. Die Befehle werden als Hexadezimal-Bytes geschrieben:
| Befehl | Beschreibung |
|---|---|
01 00 | Abfrage der unterstützten PID (Mode 01) |
01 0C | Auslesen der Motordrehzahl |
01 0D | Auslesen der Fahrzeuggeschwindigkeit |
03 | Auslesen der gespeicherten Fehlercodes (Mode 03) |
04 | Löschen der Fehlercodes (Mode 04) |
09 02 | Auslesen der VIN-Nummer (Mode 09) |