Quantex GmbH
DE RU EN EL
Ваш регион: Европа

Руководство по ELM327 для разработчиков

Что такое ELM327?

ELM327 — это текстовый протокол обмена, основанный на AT-командах, изначально разработанный для одноимённого OBD-интерпретатора компании ELM Electronics. Благодаря своей простоте он стал де-факто стандартом для OBD-II диагностики и поддерживается подавляющим большинством диагностических приложений и библиотек.

Адаптер ScanDoc реализует ELM327 v2.3 с расширенным набором команд, включающим поддержку DoIP (Diagnostics over IP) для Ethernet-диагностики современных автомобилей.

Принцип работы

Обмен данными происходит через последовательный интерфейс (WiFi, BLE или USB). Команды отправляются как ASCII-текст и завершаются символом возврата каретки (CR, 0x0D). Адаптер отвечает результатом, за которым следует символ приглашения >.

Есть два типа команд:


Пример обмена: BMW (расширенная адресация CAN)

Автомобили BMW используют расширенную адресацию CAN (CAN Extended Addressing), при которой первый байт данных CAN-кадра содержит адрес целевого ЭБУ. Ниже приведён реальный пример сессии диагностики.

// --- Инициализация адаптера ---

>ATZ                        // Полный сброс адаптера
ELM327 v2.1

>ATE0                       // Отключить эхо
OK
>ATS0                       // Отключить пробелы в ответах
OK
>ATH1                       // Включить заголовки в ответах
OK
>ATL0                       // Отключить перевод строки
OK
>ATAL                       // Разрешить длинные сообщения (>7 байт)
OK
>ATAT0                      // Отключить адаптивную синхронизацию
OK
>ATSTff                     // Максимальный таймаут (FF × 4 мс ≈ 1 с)
OK

// --- Настройка протокола CAN для BMW ---

>ATPBC101                   // Протокол B: C1 = 11-бит ID + ISO 15765, 01 = 500 кБод
OK
>ATSPB                      // Выбрать протокол B (USER1 CAN)
OK
>ATBI                       // Перепуск инициализации (BMW не использует стандартную OBD-инициацию)
OK
>ATSH6F1                    // CAN ID отправки = 0x6F1 (адрес тестера BMW)
OK

// --- Flow Control и расширенная адресация ---

>ATFCSH6F1                  // Заголовок Flow Control = 0x6F1
OK
>ATFCSD4030FF32             // FC данные: 40=адрес ЭБУ, 30=CTS, FF=без лимита, 32=50мс
OK
>ATFCSM1                    // Режим FC = 1 (полностью пользовательский)
OK
>ATCRA640                   // Принимать ответы с CAN ID = 0x640
OK
>ATCEA40                    // Расширенный адрес CAN = 0x40 (адрес ЭБУ)
OK

// --- Запрос к ЭБУ по адресу 0x40 — нет ответа ---

>1A80                       // Сервис 0x1A (Read ECU Identification), параметр 0x80
NO DATA
>22F150                     // UDS: сервис 0x22 (ReadDataByIdentifier), DID=F150
NO DATA

// --- Переключение на ЭБУ по адресу 0x10 ---

>ATFCSD1030FF32             // FC данные: адрес ЭБУ = 0x10
OK
>ATFCSM1                    // Режим FC = 1
OK
>ATCRA610                   // Принимать ответы с CAN ID = 0x610
OK
>ATCEA10                    // Расширенный адрес CAN = 0x10
OK

// --- Успешный ответ ---

>22F150                     // UDS: ReadDataByIdentifier, DID=F150
610F10662F1500F25F0         // 610=CAN ID, F1=тестер, 06=длина, 62=ответ, F150=DID, 0F25F0=данные

Содержание


Общие команды

Команда Описание
AT <CR> повторить последнюю команду
Отправка одного символа возврата каретки заставляет ELM327 повторить последнюю выполненную команду. Обычно это используется, когда вы хотите получать обновления значений с максимально возможной скоростью - например, вы можете отправить 01 0C для получения оборотов двигателя, а затем отправлять только символ возврата каретки каждый раз, когда вы хотите получить обновление.
AT AL Разрешить длинные сообщения
Стандартные протоколы OBDII ограничивают количество байтов данных в сообщении семью, что обычно делает и ELM327 (как для отправки, так и для приема). Если выбрано значение AL, ELM327 будет разрешать длинные отправлять (восемь байт данных) и принимать (неограниченное количество). По умолчанию AL выключен (и выбран NL). Для отправки 8-байтовых CAN-сообщений ELM327 не требует изменения AL, но вы должны знать, что если вы предоставите 8 байт данных CAN с включенной расширенной адресацией CAN или обычным форматированием ISO 15765, то байты данных могут быть потеряны. Это связано с тем, что CAN-сообщение способно передавать только 8 байт данных, поэтому, если необходимо добавить расширенный адрес или PCI-байт, может быть отправлено меньше байт данных.
AT AMC display Activity Monitor Count
Монитор активности использует счетчик для определения того, насколько активны входы OBD ELM327. Каждый раз, когда обнаруживается активность, этот счетчик сбрасывается, а если активности нет, счетчик увеличивается (каждые 0,655 секунды). Этот счетчик представляет собой время, прошедшее с момента последнего обнаружения активности, и может быть полезен при написании собственной логики, основанной на активности OBD. Счетчик не будет увеличиваться после FF (внутренняя логика останавливает его на этом), и остается на 00 во время мониторинга.
AT AMT hh установить таймаут Act Mon Timeout в hh
ELM327 способен переходить в режим пониженного энергопотребления ("сна"), если в течение определенного периода времени не будет обнаружена активность OBD. Подстройка этого периода осуществляется либо с помощью бита 4 PP 0F, либо с помощью значения AMT hh. Если значение AMT hh ненулевое, то время до выхода сигнала тревоги будет равно (hh+1) x 0,65536 секунды. Если значение установлено в 00, то все выходы низкого энергопотребления монитора активности блокируются (см. Рисунок 6 на стр. 68). Дополнительные сведения о мониторе активности см. в разделе "Управление питанием".
AT AT0, AT1 и AT2 Адаптивное управление временем
При получении ответа от автомобиля ELM327 традиционно ожидает ответа в течение времени, установленного параметром AT ST hh. Чтобы гарантировать, что микросхема будет работать с широким спектром автомобилей, значение по умолчанию было установлено консервативным (медленным). Несмотря на возможность подстройки, у многих людей не было оборудования или опыта для определения лучшего значения. Функция Adaptive Timing автоматически устанавливает значение тайм-аута в соответствии с фактическим временем реакции вашего автомобиля. При изменении условий, таких как загрузка автобусов и т. д., алгоритм проходит обучение и производит соответствующую подстройку. Обратите внимание, что он всегда использует ваше значение AT ST hh как максимальное и никогда не выберет более длинное. Существует три настройки адаптивной синхронизации, которые можно использовать. По умолчанию включен параметр Adaptive Timing option 1 (AT1), и это рекомендуемая настройка.
AT0 используется для отключения адаптивной синхронизации (таким образом, тайм-аут всегда равен времени, установленному AT ST), а AT2 является более агрессивной версией AT1 (эффект более заметен для очень медленных соединений - вы можете не заметить большой разницы с более быстрыми системами OBD). Протокол J1939 не поддерживает адаптивную синхронизацию - он использует фиксированные тайм-ауты, установленные стандартом.
AT BD выполнить дамп буфера OBD
Все сообщения, отправленные и полученные ELM327, временно хранятся в наборе из двенадцати ячеек памяти, называемых буфером OBD. Иногда бывает полезно просмотреть содержимое этого буфера, возможно, для того, чтобы узнать причину неудачной инициации, увидеть байты заголовка последнего сообщения или просто для обучения структуре OBD-сообщений. В любой момент вы можете попросить "выгрузить" содержимое этого буфера (т.е. распечатать) - когда вы это сделаете, ELM327 отправит байт длины (представляющий длину сообщения в буфере), за которым последует содержимое всех двенадцати мест буфера OBD. Например, вот один "дамп":

>AT BD 05 C1 33 F1 3E 23 C4 00 00 10 F8 00 00


Tон 05 является байтом длины - он говорит нам о достоверности только первых 5 байтов (то есть C1 33 F1 3E и 23). Остальные байты, скорее всего, остались после предыдущей операции. Байт длины всегда представляет фактическое количество полученных байтов, независимо от того, поместились они в буфер OBD или нет. Это может быть полезно при просмотре длинных потоков данных (с помощью AT AL), так как он представляет фактическое количество полученных байтов, mod 256. Обратите внимание, что в буфере сохраняются только первые двенадцать полученных байтов.
AT BI Перепуск последовательности инициализации
Эту команду следует использовать с осторожностью. Она позволяет сделать протокол OBD активным без необходимости инициализации или квитирования. Процесс инициализации обычно используется для проверки достоверности протокола, и без него результаты могут быть трудно предсказуемы. Он не должен использоваться для повседневного применения БДС и был предоставлен только для создания симуляторов ЭБУ и учебных демонстраторов.
AT BRD hh try Baud Rate Divisor hh
Эта команда используется для изменения делителя скорости передачи данных RS232 на шестнадцатеричное значение, указанное в hh, под управлением компьютера. Она не предназначена для случайных экспериментов - если вы хотите изменить скорость передачи данных из терминальной программы, вам следует использовать PP 0C. Поскольку некоторые интерфейсные цепи не могут работать на высоких скоростях передачи данных, команда BRD использует последовательность отправок и приемов для теста интерфейса, при этом любой сбой приводит к возврату к предыдущей скорости передачи данных. Это позволяет протестировать несколько скоростей передачи данных и выбрать надежную для связи. Весь процесс подробно описан в разделе "Использование более высоких скоростей передачи данных RS232" на странице 53. В случае успеха фактическая скорость передачи данных (в кбит/с) будет равна 4000, деленной на делитель (hh). Значение 00 не является достоверностью и не принимается командой BRD.
AT BRT hh установить тайм-аут скорости передачи данных на hh
Эта команда позволяет изменять тайм-аут, используемый для квитирования скорости передачи данных (т.е. AT BRD). Задержка времени равна hh x 5,0 мс, где hh - шестнадцатеричное значение. По умолчанию для этой настройки установлено значение 0F, обеспечивающее 75 мс. Обратите внимание, что значение 00 не дает 0 мс - оно обеспечивает максимальное время 256 x 5,0 мс, или 1,28 секунды.
AT D установить все по умолчанию
Эта команда используется для установки параметров по умолчанию (или заводских), как при первом включении питания. Последний сохраненный протокол будет извлечен из памяти и станет текущей настройкой (возможно закрывая другие активные протоколы). Любые настройки, сделанные пользователем для пользовательских заголовков, фильтров или масок, будут восстановлены до значений по умолчанию, а все настройки таймера также будут восстановлены по умолчанию.
AT D0 и D1 отображение DLC выключено или включено
Стандарт CAN (ISO 15765-4) OBD требует, чтобы все сообщения состояли из 8 байт данных, поэтому отображение количества байт данных (DLC) обычно не очень полезно. Однако при экспериментировании с другими протоколами может быть полезно иметь возможность видеть длину данных. Команды D0 и D1 управляют отображением цифры DLC (чтобы увидеть эту цифру, должны быть включены заголовки). При отображении одиночная цифра DLC появляется между байтами ID (заголовка) и байтами данных. Настройка по умолчанию определяется PP 29.
AT DM1 монитор для DM1s
Протокол SAE J1939 периодически передает коды неисправностей в виде сообщений Diagnostic Mode 1 (DM1). Эта команда настраивает ELM327 на постоянный мониторинг этого типа сообщений, следуя многосегментным транспортным протоколам, если это необходимо. Обратите внимание, что для получения аналогичного результата можно использовать комбинацию масок и фильтров, но они не позволят обнаружить многострочные сообщения. Команда DM1 добавляет дополнительную логику, необходимую для многострочных сообщений. Эта команда доступна только в том случае, если для форматирования J1939 был выбран протокол CAN (A, B или C). При попытке выполнить ее в любых других условиях возвращается ошибка.
AT DP Опишите текущий протокол
ELM327 автоматически определяет протокол OBD автомобиля, но обычно не сообщает о нем. Команда DP - это удобный способ узнать, на какой протокол настроена микросхема в данный момент (даже если она еще не подключена к автомобилю). Если выбран протокол и также выбрана автоматическая опция, AT DP покажет слово 'AUTO' перед описанием протокола. Обратите внимание, что в описании указаны реальные названия протоколов, а не номера, используемые командами настройки протоколов.
AT DPN "Описать протокол по номеру"
Эта команда аналогична команде DP, но возвращает число, обозначающее текущий протокол. Если также включена функция автоматического поиска, номеру будет предшествовать буква 'A'. Это тот же номер, который используется в командах "Установить протокол" и "Тест протокола".
AT E0 и E1 "Эхо" выключено или включено
Эти команды управляют тем, будут ли символы, полученные через порт RS232, передаваться эхом (повторно) на главный компьютер. Эхо символов может быть использовано для подтверждения того, что символы, отправленные на ELM327, были получены правильно. По умолчанию установлено значение E1 (или эхо включено).
AT FE Forget Events
Существуют определенные события, которые могут изменить реакцию ELM327 с этого момента. Одним из них является возникновение фатальной ошибки CAN (ERR94), которая блокирует последующий поиск по протоколам CAN, если бит 5 PP 2A равен '1'. Обычно такое событие влияет на все поиски до следующего выключения и включения питания, но его можно "забыть" программно, с помощью команды AT FE.
Другим примером является событие 'LV RESET', которое предотвращает поиск по протоколам CAN, если бит 4 PP 2A равен '1'. Это событие также может быть забыто с помощью команды AT FE.
AT H0 и H1 "Заголовки" выключены или включены
Эти команды управляют тем, отображать или нет дополнительные (заголовочные) байты информации в ответах от автомобиля. Обычно они не отображаются ELM327, но могут представлять интерес (особенно если вы получили несколько ответов и хотите определить, от каких модулей они были получены). Включение заголовков (с помощью AT H1) на самом деле показывает не только байты заголовка - вы увидите полное переданное сообщение, включая контрольные цифры и PCI-байты, а также, возможно, код длины данных CAN (DLC), если он был включен с помощью PP 29 или AT D1. Текущая версия этой микросхемы не отображает код CAN CRC, а также специальные байты J1850 IFR (которые некоторые протоколы используют для подтверждения получения сообщения).
AT Я Представьтесь
Эта команда заставляет чип идентифицировать себя, печатая строку идентификатора продукта (в настоящее время 'ELM327 v2.3'). Программное обеспечение может использовать ее для определения с какой именно интегральной цепью она разговаривает, без необходимости перезагрузки микросхемы.
AT IA Активен ли протокол?
Эта команда позволяет узнать, считает ли ELM327, что текущий протокол активен или нет. В ответ на запрос он ответит Y или N, то есть "Да" или "Нет".
Для того чтобы ELM327 отвечал на некоторые команды, требуется "активный" протокол. Протокол считается активным, если он получил правильные ответы на стандартный запрос или байтовое квитирование, или если пользователь осуществил перепуск этого процесса с помощью команды AT BI командой. Обратите внимание, что ELM327 отмечает протокол как активный изначально, но не отслеживает его после этого, и поэтому не знает, если ЭБУ перестал отвечать на запросы в какой-то момент в будущем (т.е. если протокол больше не активен). Вашему программному обеспечению может потребоваться периодически отправлять стандартный запрос (предпочтительно 01 00), чтобы определить, действительно ли ЭБУ все еще активен.
AT IB10 установить скорость передачи данных ISO на 10400
Эта команда восстанавливает скорость передачи данных ISO 9141-2 и ISO 14230-4 (протоколы 3, 4 и 5) до значения по умолчанию 10400. Обратите внимание, что команда IB10 может быть использована в любое время (т.е. "на лету").
AT IB12 установить скорость передачи данных ISO на 12500
Эта команда используется для изменения скорости передачи данных, используемой для протоколов ISO 9141-2 и ISO 14230-4 (номера 3, 4 и 5), на 12500 бод. Обратите внимание, что команда IB12 может быть использована в любое время (т. е. "на лету").
AT IB15 установить скорость передачи данных ISO на 15625 бод
Эта команда используется для изменения скорости передачи данных, используемой для протоколов ISO 9141-2 и ISO 14230-4 (номера 3, 4 и 5), на 15625 бод. Обратите внимание, что команда IB15 может быть использована в любое время (т.е. "на лету").
AT IB48 установить скорость передачи данных ISO на 4800 бод
Эта команда используется для изменения скорости передачи данных, используемой для протоколов ISO 9141-2 и ISO 14230-4 (номера 3, 4 и 5), на 4800 бод. Обратите внимание, что команда IB48 может быть использована в любое время (т.е. "на лету").
AT IB96 установить скорость передачи данных ISO на 9600 бод
Эта команда используется для изменения скорости передачи данных, используемой для протоколов ISO 9141-2 и ISO 14230-4 (номера 3, 4 и 5), на 9600 бод. Обратите внимание, что команда IB96 может быть использована в любое время (т.е. "на лету").
AT IFR0, IFR1 и IFR2 Управление IFR - не мониторинг
Протокол SAE J1850 позволяет отправлять байт In-Frame Response (IFR) после каждого сообщения, обычно для подтверждения правильности получения этого сообщения. ELM327 автоматически генерирует и отправляет этот байт за вас, если только вы не осуществляете мониторинг (по по умолчанию ELM327 всегда молчит во время мониторинга). Вы можете отменить это поведение с помощью команды IFR.
Команда IFR0 отключает отправку всех IFR, независимо от того, какое сообщение требуется. Команда IFR2 действует наоборот - в ответ на сообщение всегда будет отправляться байт IFR, даже если в нем есть ошибки. Настройка IFR1 приводит к отправке IFR, если сообщение было получено правильно, и если значение бита 'K' в первом байте заголовка (как для PWM, так и для VPW) позволяет это сделать. По умолчанию используется настройка IFR1.
AT IFR4, IFR5 и IFR6 Контроль IFR - в любое время
Хотя оригинальные микросхемы ELM327 никогда не посылали IFR при мониторинге, есть некоторые ситуации мониторинга, в которых вы можете захотеть послать IFR. Команды IFR4, IFR5 и IFR6 позволяют управлять отправкой IFR в любое время, независимо от того, ведется мониторинг или нет. нет. Они имитируют команды IFR0, IFR1 и IFR2 - установка IFR4 приводит к тому, что IFR никогда не отправляется, IFR5 отправляет IFR, если нет ошибок и бит 'K' разрешает это, а установка IFR6 заставляет IFR генерироваться всегда (даже если есть ошибка).
AT IFR H и IFR S IFR из заголовка или источника
Значение, отправляемое в байте ответа J1850 In-Frame Response (IFR), обычно совпадает со значением, отправленным в байте адреса источника (т.е. тестера), который был в заголовке запроса. Однако бывают случаи, когда желательно использовать другое значение, и данный набор команд позволяет это сделать. Если вы отправите AT IFR S, ELM327 будет использовать значение, определенное в качестве адреса источника (обычно F1, но его можно изменить с помощью PP 06 или AT TA), даже если в байте заголовка было отправлено другое значение. Это не то, что обычно требуется, и следует соблюдать осторожность. AT IFR H восстанавливает отправку байтов IFR до тех, что указаны в Заголовке, и является настройкой по умолчанию. настройкой по умолчанию.
AT IGN чтение уровня входного сигнала IgnMon
Эта команда считывает уровень сигнала на выводе 15. Предполагается, что логический уровень связан с напряжением зажигания, поэтому, если на входе высокий уровень, ответом будет будет 'ON', а при низком уровне - 'OFF'. Эта функция наиболее полезна, если вы хотите выполнять функции управления мощностью с помощью собственного программного обеспечения. Если отключить автоматическую реакцию Low Power на низкий уровень на этом выводе (установив бит 2 PP 0E в 0), то вывод 15 будет работать как вход RTS. Низкий уровень на этом входе не выключит питание, но прервет любую текущую активность OBD. Все, что вам нужно сделать, это обнаружить сообщение 'STOPPED', которое отправляется при прерывании работы ELM327, а затем проверить уровень на выводе 15 с помощью AT IGN. Если окажется, что он выключен, вы можете самостоятельно выполнить упорядоченное отключение.
AT IIA hh установите начальный адрес ISO на hh
Стандарты ISO 9141-2 и ISO 14230-4 гласят, что при начале сеанса работы с ЭБУ последовательность инициализации должна быть направлена на определенный адрес ($33). Если вы хотите поэкспериментировать, направив последовательность медленных пяти бод на другой адрес, это можно сделать это можно сделать с помощью данной команды. Например, если вы хотите, чтобы инициация выполнялась с ЭБУ по адресу $7A, просто отправьте: >AT IIA 7A и ELM327 будет использовать этот адрес при обращении к нему (протоколы 3 или 4). Полное восьмибитное значение используется в том виде, в котором оно задано - в него не вносятся никакие изменения (т.е. не добавляются биты четности и т.д.)
. Обратите внимание, что установка этого значения не влияет на значения адресов, используемых в байтах заголовка. При сбросе настроек по умолчанию или сбросе ELM327 начальный адрес ISO восстанавливается до значения $33.
AT L0 and L1 Перевод строки выкл или вкл
Эта опция управляет отправкой символов перевода строки после каждого символа возврата каретки. При AT L1 перевод строки будет генерироваться после каждого символа возврата каретки, а при AT L0 — отключён. Обычно пользователи предпочитают включать эту опцию при работе с терминальной программой и отключать при использовании пользовательского интерфейса (лишние символы только замедляют обмен). Настройка по умолчанию определяется уровнем напряжения на выводе 7 при включении питания (или сбросе). Если уровень высокий — перевод строки включён, иначе — выключен.
AT LP перейти в режим низкого энергопотребления
Эта команда заставляет ELM327 отключить все, кроме «основных сервисов», чтобы свести энергопотребление к минимуму. ELM327 ответит «OK» (без возврата каретки), а через секунду изменит состояние выхода PwrCtrl (вывод 16) и перейдёт в режим пониженного энергопотребления (ожидание). Микросхему можно вернуть в нормальный режим символом на входе RS232, нарастающим фронтом на входе IgnMon (вывод 15), а также обычными способами сброса (выключение/включение питания, низкий уровень на выводе 1 или провал питания). Подробности см. в разделе «Управление питанием» (стр. 67).
AT M0 and M1 Память выкл или вкл
ELM327 имеет внутреннюю энергонезависимую память, способную запоминать последний использованный протокол даже после выключения питания. Это удобно, если микросхема часто используется для одного протокола — он будет первым при следующем включении. Для включения функции памяти необходимо использовать команду AT M1 или подключить вывод 5 к высокому логическому уровню.
Когда функция памяти включена, каждый раз при обнаружении валидного протокола OBD он будет сохранён и станет новым умолчанием. Если функция памяти отключена, найденные протоколы не сохраняются, и ELM327 всегда запускается с последним сохранённым протоколом. Если ELM327 используется в среде с часто меняющимися протоколами, лучше отключить память и выполнить AT SP 0. Если же вы подключаетесь к одному автомобилю, сохранение его протокола как умолчания будет наиболее разумным.
Настройка по умолчанию определяется уровнем напряжения на выводе 5 при включении питания (или сбросе). Высокий уровень (VDD) — память включена, низкий — выключена.
AT NL Сообщения нормальной длины
Эта команда устанавливает ELM327 на отправку нормального количества байт данных, как это предусмотрено стандартами OBD. Она используется для отмены изменений, сделанных в режиме Allow Long (AT AL). Обратите внимание, что ELM327 не требует изменения AL, чтобы разрешить прием сообщений большей длины для протоколов KWP. Вы можете просто оставить для IC значение NL, установленное по умолчанию, и все принятые байты будут показаны.
AT R0 и R1 Ответы выключены или включены
Эти команды управляют автоматическим приемом (и отображением) ELM327 сообщений, возвращаемых автомобилем. Если ответы выключены, то после отправки запроса микросхема не будет ждать ответа от автомобиля, а сразу вернется к ожиданию следующей команды RS232 (ELM327 не будет печатать ничего, чтобы сказать, что отправка была успешной, но вы увидите сообщение, если она не была успешной). R0 может быть полезен для отправки команд вслепую при использовании микросхемы в сетевых приложениях, не связанных с OBD, или при имитации ЭБУ в процессе обучения. Однако не рекомендуется использовать эту опцию для обычных OBD-связей, так как автомобиль может испытывать трудности, если он ожидает подтверждения и не получает его. Настройка R0 всегда отменяет любую "цифру количества ответов", которая предоставляется при запросе OBD. По умолчанию используется значение R1, или "ответы включены".
AT RD Чтение данных из пользовательской памяти
Значение байта, сохранённое командой SD, извлекается этой командой. Имеется только одна ячейка памяти, поэтому адрес не требуется.
AT RV Read the input Voltage
Это инициирует считывание напряжения, которое присутствует на на выводе 2 и преобразование его в десятичное напряжение. По умолчанию предполагается, что вход подключен к измеряемому напряжению через делитель напряжения с соотношением 1:5,7 (например, последовательно соединенные резисторы 47KΩ и 10KΩ, причем 10KΩ подключен от вывода 2 к Vss), а питание ELM327 составляет номинальные 5 В. Это позволит измерять входное напряжение примерно до 28 В (напряжение на выводе 2 не должно превышать Vdd) с некалиброванной точностью, как правило, около 2 %. Информацию о калибровке см. в разделе "Считывание напряжения батареи". информацию о калибровке.
AT S0 and S1 Печать пробелов выкл или вкл
Эти команды управляют тем, вставляются ли символы пробела в ответы ЭБУ. ELM327 обычно выводит ответы ЭБУ как последовательность hex-символов, разделённых пробелами (для удобства чтения), но сообщения можно передавать значительно быстрее, если удалить каждый третий байт (пробел). Хотя это делает сообщение менее читаемым для человека, это может значительно ускорить обработку данных компьютером. По умолчанию пробелы включены (S1), и символы пробела вставляются в каждый ответ.
AT SD hh Сохранить байт данных hh
ELM327 может сохранить один байт информации в специальной энергонезависимой памяти, которая сохраняет свое содержимое даже при выключении питания. Просто укажите байт, который нужно сохранить, а затем извлеките его с помощью команды чтения данных (AT RD). Эта ячейка идеально подходит для хранения пользовательских настроек, идентификаторов устройств, подсчета количества повторений или другой информации.
AT WS Тёплый перезапуск
Аналогична команде AT Z, но без тестирования светодиодов при включении. Пользователи могут найти это удобным способом быстро «начать заново» без лишней задержки AT Z. При использовании переменных скоростей RS232 (команды AT BRD) рекомендуется сбрасывать микросхему этой командой, а не AT Z, так как AT WS не сбросит скорость RS232.
AT Z полный сброс
Эта команда заставляет микросхему выполнить полный сброс, как если бы питание было выключено и включено снова. Все настройки возвращаются к значениям по умолчанию, и микросхема переходит в состояние ожидания символов на шине RS232. Обратите внимание, что скорость, установленная командой AT BRD, будет потеряна, и ELM327 вернётся к настройке скорости по умолчанию.
AT @1 показать описание устройства
Эта команда отображает строку описания устройства. Текст по умолчанию — «OBDII to RS232 Interpreter».
AT @3 cccccccccccc сохранить идентификатор устройства
Эта команда используется для установки кода идентификатора устройства. Необходимо отправить ровно 12 символов; после записи в память их нельзя изменить (команду @3 можно использовать только один раз). Символы должны быть печатными (ASCII-коды от 0x21 до 0x5F включительно). Если вы разрабатываете ПО для записи идентификаторов, вас может заинтересовать микросхема ELM328, которая позволяет многократную запись командой @3 (но не может отправлять OBD-сообщения).

Команды выбора протокола

Команда Описание
AT PC "Закрытие протокола"
Бывают случаи, когда необходимо остановить (деактивировать) протокол. Возможно, вы не используете автоматический поиск протоколов, а хотите вручную активировать и деактивировать протоколы вручную. Возможно, вы хотите прекратить отправку сообщений о бездействии (пробуждении), или у вас есть другая причина. Команда PC используется в таких случаях чтобы принудительно закрыть протокол.
AT SP h Установить протокол h
Эта команда устанавливает ELM327 для работы с протоколом, указанным в «h», и сохраняет его как новое умолчание. Протокол будет сохранён независимо от настройки AT M0/M1.
ELM327 поддерживает 12 различных протоколов (два могут быть определены пользователем):
0 — Автоматический, 1 — SAE J1850 PWM (41,6 кБод), 2 — SAE J1850 VPW (10,4 кБод), 3 — ISO 9141-2 (5 бод, 10,4 кБод), 4 — ISO 14230-4 KWP (5 бод, 10,4 кБод), 5 — ISO 14230-4 KWP (быстрая иниц., 10,4 кБод), 6 — ISO 15765-4 CAN (11 бит, 500 кБод), 7 — ISO 15765-4 CAN (29 бит, 500 кБод), 8 — ISO 15765-4 CAN (11 бит, 250 кБод), 9 — ISO 15765-4 CAN (29 бит, 250 кБод), A — SAE J1939 CAN (29 бит, 250* кБод), B — USER1 CAN (11* бит, 125* кБод), C — USER2 CAN (11* бит, 50* кБод). (* — настраиваемые пользователем)
Протокол 0 указывает ELM327, что протокол автомобиля неизвестен и нужно выполнить поиск. Команда AT SP 0 устанавливает протокол в 0, но не выполняет запись в EEPROM (для ускорения). Если выбран конкретный протокол (например, AT SP 3), он станет умолчанием и будет единственным используемым.
AT SP 00 стереть сохранённый протокол
Для ускорения определения протокола команда SP 0 устанавливает автоматический режим, но не выполняет (затратную по времени) запись в EEPROM. Это уменьшает износ EEPROM. Однако иногда необходимо записать значение 0 в сохранённый протокол — для этого предназначена команда SP 00.
AT SP Ah Установить протокол h с автопоиском
Этот вариант команды SP позволяет выбрать стартовый (по умолчанию) протокол, сохраняя при этом возможность автоматического поиска валидного протокола при неудаче подключения. Например, если ваш автомобиль использует ISO 9141-2, но вы хотите иногда использовать ELM327 с другими автомобилями, можно использовать AT SP A3 — первым будет протокол 3, но при неудаче будет выполнен автопоиск. Не забудьте отключить функцию памяти, иначе каждый новый обнаруженный протокол станет умолчанием.
SP Ah сохраняет информацию о протоколе, даже если память отключена (но SP A0 и SP 0A не записывают в EEPROM). Буква «A» может стоять до или после h, так что AT SP A3 и AT SP 3A эквивалентны.
AT SS использовать стандартную последовательность поиска
Стандарт SAE J1978 определяет порядок поиска протоколов, который должны использовать диагностические приборы. Он следует нумерации протоколов ELM327. Для ускорения поиска ELM327 обычно не следует этому порядку, но будет следовать, если вы дадите команду AT SS.
AT TP h Тестировать протокол h
Эта команда идентична SP, за исключением того, что выбранный протокол не сохраняется сразу во внутренней памяти EEPROM, то есть не меняет настройку по умолчанию. Обратите внимание: если функция памяти включена (AT M1) и новый протокол оказался валидным, он будет сохранён в памяти как новое умолчание.
AT TP Ah Тестировать протокол h с автопоиском
Эта команда аналогична AT TP, но если выбранный протокол не удаётся инициализировать, ELM327 автоматически перебирает остальные протоколы, пытаясь подключиться к одному из них.

Команды CAN

Команда Описание
AT C0 и C1 Подтверждение выключения или включения посылки CAN
ELM327 всегда ждал после отправки CAN-сообщения, чтобы убедиться, что передача данных прошла правильно. Если этого не происходило, возвращалось сообщение 'CAN ERROR'. В прошивке v2.3 вы можете отключить это подтверждение и, возможно, вернуться в состояние запроса немного быстрее. Это может сэкономить время отправки одного сообщения (около 230 мксек для 500 кбит/с), но при этом не будет обратной связи при неправильной отправке. Мы рекомендуем всегда оставлять этот параметр в значении по умолчанию (C1 - Подтверждение включено).
AT CAF0 и CAF1 Автоформатирование CAN выключено или включено
Эти команды определяют, будет ли ELM327 помогать вам форматировать отправляемые и получаемые данные CAN. При включенном автоматическом форматировании CAN (CAF1) байты форматирования (PCI) будут автоматически генерироваться при отправке и удаляться при получении. Это означает, что вы можете продолжать отправлять запросы OBD (01 00 и т.д.) как обычно, не обращая внимания на дополнительные байты, которые требуют системы диагностики CAN. Кроме того, при включенном форматировании все лишние (неиспользуемые) байты данных, полученные в кадре, будут удалены, а сообщения с недопустимыми байтами PCI будут проигнорированы. (При мониторинге, однако, все сообщения с недопустимыми байтами PCI отображаются, а рядом с ними появляется сообщение '
AT CEA отключить расширенный адрес CAN
Команда CEA используется для отключения специальных функций, установленных с помощью команды CEA hh. Она также восстанавливает адрес, установленный командой AT CER hh, до значения по умолчанию.
AT CEA hh установить расширенный адрес CAN на hh
Некоторые (не OBD) протоколы CAN расширяют поля адресации, используя первый из восьми байтов данных в качестве адреса цели (приемника). Эта команда позволяет ELM327 взаимодействовать с такими протоколами. Отправка команды CEA hh заставляет ELM327 вставлять значение hh в качестве первого байта данных во все отправляемые вами CAN-сообщения. Она также добавляет еще один шаг фильтрации полученных сообщений, передавая только те, которые имеют адрес тестера в позиции первого байта (в дополнение к требованию, чтобы биты ID соответствовали шаблонам, установленным AT CF и CM, FT или CRA). Команда AT CEA hh может быть отправлена в любое время, и изменения вступают в силу немедленно, что позволяет изменять адрес "на лету". Более подробно расширенная адресация рассматривается в разделе "Использование расширенных адресов CAN" на странице 64. Режим работы CEA по умолчанию выключен и включается отправкой команды CEA с целевым адресом. После включения его можно выключить, отправив команду AT CEA (без адреса) или восстановив настройки микросхемы по умолчанию с помощью AT D, AT Z и т. д. Обратите внимание, что настройка CEA не влияет, если включено форматирование J1939.
AT CER hh установить адрес расширенного Rx CAN на hh
По умолчанию ELM327 получает ответы на запросы расширенной адресации CAN, которые содержат "адрес тестера" в позиции первого байта данных. Команда CER позволяет выбрать другой адрес приема адрес. Значения, установленные с помощью этой команды, сбрасываются на значение по умолчанию с помощью команды AT CEA.
AT CF hhh установите фильтр CAN ID на hhh
Фильтр CAN работает в сочетании с маской CAN для определения того, какая информация будет принята приемником. При приеме каждого сообщения входящие биты CAN ID сравниваются с битами CAN Filter (если бит маски равен '1'). Если все соответствующие биты совпадают, сообщение будет принято и обработано ELM327, в противном случае оно будет отброшено. Эта трехбитовая версия команды CAN Filter немного упрощает установку фильтров в системах CAN с 11-битовым идентификатором. Используются только самые правые 11 бит из предоставленных полубайтов, а старший бит игнорируется. Однако на самом деле данные хранятся как четыре байта, и эта команда добавляет ведущие нули для остальных байтов. Более подробную информацию см. в команде(ах) CM. Обратите внимание, что ответы не будут предсказуемыми, если использовать команды CRA, CF или CM с протоколом SAE J1939 при одновременном использовании команды MP или команды DM1. На самом деле, мы не рекомендуем использовать команды CRA, CM или CF в протоколе J1939 в любое время. Если вам нужна дополнительная фильтрация по протоколу J1939, рассмотрите возможность использования команды FT.
AT CF hh hh hh hh установить фильтр CAN ID на hhhhhhh
Эта команда позволяет установить сразу все четыре байта (фактически 29 бит) фильтра CAN. Три старших бита всегда будут игнорироваться, и им можно присвоить любое значение. Эту команду можно использовать и для ввода 11-битных ID-фильтров, поскольку они хранятся в тех же местах внутри устройства (ввод AT CF 00 00 0h hh точно такой же, как и ввод более короткой команды AT CF hhh). Обратите внимание, что ответы не будут предсказуемыми, если использовать команды CRA, CF или CM с протоколом SAE J1939 при одновременном использовании команды MP или команды DM1. На самом деле, мы не рекомендуем использовать команды CRA, CM или CF в протоколе J1939 в любое время. Если вам нужна дополнительная фильтрация в протоколе J1939, рассмотрите возможность использования команды FT.
AT CFC0 and CFC1 Управление потоком CAN выкл или вкл
Протокол ISO 15765-4 CAN ожидает, что сообщение «Flow Control» всегда будет отправлено в ответ на сообщение «First Frame», и ELM327 автоматически отправляет их без вмешательства пользователя. При экспериментах с не-OBD системой может потребоваться отключить этот автоматический ответ — для этого предназначена команда AT CFC0. Начиная с прошивки v2.0, эти команды также включают/отключают отправку сообщений J1939 TP.CM_CTS в ответ на запросы TP.CM_RTS. При мониторинге (AT MA, MR или MT) сообщения Flow Control никогда не отправляются, независимо от настройки CFC. Настройка по умолчанию — CFC1 (Flow Control включён).
AT CM hhh установите маску идентификатора CAN на hhh
В системе CAN может одновременно передаваться большое количество сообщений. Для того чтобы ограничить количество сообщений, просматриваемых ELM327, необходима система фильтрации нужных из всех остальных. Для этого используется фильтр, который работает в сочетании с маской. Маска - это группа битов, которые показывают ELM327, какие биты в фильтре являются релевантными, а какие можно игнорировать. Условие 'must match' сигнализируется установкой бита маски в '1', а 'don't care' сигнализируется установкой бита в '0'. Эта трехразрядная вариация команды CM используется для получения значений маски для 11-битных систем идентификации (старший бит всегда игнорируется). Обратите внимание, что для 29-битных и 11-битных масок используется общее место хранения, поэтому 11-битная маска может быть назначена следующей командой (CM hh hh hh hh), если вы хотите набрать лишнее. Значения имеют правое выравнивание, поэтому вам нужно будет указать пять ведущих нулей, за которыми следуют три байта маски. Обратите внимание, что ответы не будут предсказуемыми, если использовать команды CRA, CF или CM с протоколом SAE J1939 при одновременном использовании команды MP или команды DM1. На самом деле, мы не рекомендуем использовать команды CRA, CM или CF в протоколе J1939 в любое время. Если вам нужна дополнительная фильтрация по протоколу J1939, рассмотрите возможность использования команды FT.
AT CM hh hh hh hh установить маску CAN ID на hhhhhhhhh
Эта команда используется для назначения значений масок для 29-битных систем идентификации. См. обсуждение команды CM hhh, поскольку она практически идентична, за исключением длины. Обратите внимание, что три старших бита которые вы указываете в первой цифре, будут проигнорированы. Обратите внимание на предупреждение о том, что ее нельзя использовать с протоколом J1939. Обратите внимание, что ответы не будут предсказуемыми, если использовать команды CRA, CF или CM с протоколом SAE J1939 и одновременно использовать команду MP или команду DM1. На самом деле, мы не рекомендуем использовать команды CRA, CM или CF в протоколе J1939 в любое время. Если вам нужна дополнительная фильтрация по протоколу J1939, рассмотрите возможность использования команды FT.
AT CP hh установить биты приоритета CAN в hh
Эта команда предоставляет один из способов назначения пяти старших битов 29-битного идентификатора CAN, который будет использоваться для отправки сообщений (остальные 24 бита можно установить с помощью команды AT SH). Многие системы используют эти биты для присвоения сообщениям значения приоритета и определения протокола сообщения. Любые биты, предоставленные сверх пяти необходимых, игнорируются и не сохраняются ELM327 (он использует только пять младших битов этого байта). По умолчанию для значения CP hh используется шестнадцатеричное значение 18, которое можно восстановить в любое время командой AT D.
AT CRA сброс CAN Rx Addr
Команда AT CRA используется для восстановления фильтров приема CAN до значений по умолчанию. Обратите внимание, что она не имеет аргументов (т.е. никаких данных).
AT CRA hhh установить CAN Rx Addr в hhh
Настройка масок и фильтров CAN иногда может быть сложной, поэтому если вы хотите получать информацию только с одного адреса (т.е. с одного CAN ID), то эта команда может оказаться очень полезной. Например, если вы хотите видеть информацию только с адреса 7E8, просто отправьте AT CRA 7E8, и ELM327 выполнит необходимую подстройку маски и фильтра. Если вы хотите разрешить прием диапазона значений, вы можете использовать букву X для обозначения условия "все равно". То есть AT CRA 7EX позволит пропускать все идентификаторы, начинающиеся с 7E (7E0, 7E1 и т. д.). Для более конкретного диапазона идентификаторов может потребоваться назначение маски и фильтра. Чтобы отменить изменения, сделанные командой CRA, просто отправьте AT CRA или AT AR. Обратите внимание, что ответы не будут предсказуемыми, если использовать команды CRA, CF или CM с протоколом SAE J1939 при одновременном использовании команды MP или команды DM1. Фактически, мы не рекомендуем использовать команды CRA, CM или CF в любое время при использовании протокола J1939. Если вам нужна дополнительная фильтрация по протоколу J1939, рассмотрите возможность использования команды FT.
AT CRA hhhhhhhh установить CAN Rx Addr на hhhhhhhh
Эта команда идентична предыдущей, за исключением того, что она используется с 29-битными идентификаторами CAN. Отправка AT CRA или AT AR также отменит все изменения, сделанные этой командой. Обратите внимание, что ответы не будут предсказуемыми, если использовать команды CRA, CF или CM с протоколом SAE J1939 при одновременном использовании команды MP или команды DM1. На самом деле, мы не рекомендуем использовать команды CRA, CM или CF в протоколе J1939 в любое время. Если вам нужна дополнительная фильтрация по протоколу J1939, рассмотрите возможность использования команды FT.
AT CS показать счетчики состояния CAN
Протокол CAN требует ведения статистики по количеству обнаруженных ошибок передачи и приема. При значительном количестве ошибок (из-за аппаратной или программной проблемы) устройство отключается, чтобы не повлиять на другие данные на шине. Команда AT CS позволяет увидеть количество ошибок передатчика (Tx) и приемника (Rx) в шестнадцатеричном формате. Если передатчик должен быть выключен (счет >FF), вы увидите 'OFF', а не конкретный счет. Начиная с прошивки v2.2, ответ CS также будет показывать текущую частоту сигнала на CAN. Типичный ответ может выглядеть следующим образом:

``` >AT CS
AT CSM0 и CSM1 Выключение или включение бесшумного мониторинга CAN
ELM327 был разработан так, чтобы быть абсолютно бесшумным при мониторинге шины CAN. Благодаря этому он может сообщать именно то, что видит, никак не окрашивая информацию. Иногда (при стендовых тестах или подключении к выделенному CAN-порту) может потребоваться, чтобы ELM327 работал не бесшумно (т.е. генерировал биты ACK и т.д.), и именно для этого предназначена команда CSM. CSM1 включает ее, CSM0 выключает, а значение по умолчанию определяется PP 21. Будьте осторожны, экспериментируя с этим. Если вы выберете неправильную скорость передачи данных, а затем будете наблюдать за шиной CAN с выключенным тихим мониторингом, вы нарушите поток данных. Всегда держите бесшумный мониторинг включенным, пока не убедитесь, что выбрали правильную скорость передачи данных.
AT CTM1 установить множитель таймера на 1
Эта команда заставляет все тайм-ауты, установленные AT ST, умножаться на коэффициент 1. Обратите внимание, что в настоящее время это влияет только на протоколы CAN (от 6 до C). По умолчанию используется значение CTM1. CTM5 [ установить множитель таймера на 5 ] Эта команда заставляет все тайм-ауты, установленные AT ST, умножаться на коэффициент 5. Обратите внимание, что в настоящее время это влияет только на протоколы CAN (от 6 до C). Изначально эта команда была добавлена (как JTM5), чтобы помочь с получением некоторых сообщений J1939. С тех пор мы получили несколько запросов, чтобы позволить ей влиять на все режимы CAN, и поэтому мы изменили код JTM5 и добавили новые команды CTM1/CTM5. При использовании CTM5 мы предупреждаем, что код Adaptive Timing не отслеживает изменения в настройках, поэтому мы советуем отключить его (с помощью AT AT0). По умолчанию этот множитель выключен.
AT FC SD 1-5 байтов
С помощью этой команды можно определить байты данных, которые отправляются в сообщении управления потоком CAN. Можно указать от одного до пяти байтов данных, при этом остальные байты данных в сообщении автоматически устанавливаются в байт заполнителя CAN по умолчанию, если это требуется протоколом. Данные, передаваемые с помощью этой команды, используются только в том случае, если включены режимы управления потоком 1 или 2.
AT FC SH hhh Установить заголовок Flow Control
С помощью этой команды можно установить байты заголовка (или более правильно "CAN ID"), используемые для сообщений управления потоком CAN. Будут использованы только крайние правые 11 бит - старший бит всегда удаляется. Эта команда влияет только на режим управления потоком 1.
AT FC SH hhhhhhhh Установить заголовок Flow Control
Эта команда используется для установки заголовка (или 'CAN-битов для ответов Flow Control с 29-битными системами CAN ID. Поскольку 8 полубайтов определяют 32 бита, будут использованы только самые правые 29 битов - старшие три бита всегда удаляются. Эта команда влияет только на режим управления потоком 1.
AT FC SM h Установить режим Flow Control в h
Эта команда устанавливает, как ELM327 реагирует на сообщения First Frame, если включены автоматические ответы Flow Control. Однозначное значение может быть либо '0' (по умолчанию) для полностью автоматических ответов, '1' для полностью определенных пользователем ответов, либо '2' для определенных пользователем байтов данных в ответе. Обратите внимание, что режимы FC 1 и 2 могут быть включены только в том случае, если вы определили необходимые байты данных и, возможно, ID. В противном случае вы получите ошибку. Более подробную информацию и примеры можно найти в разделе Изменение сообщений управления потоком (стр. 62).
AT FT Фильтр по передатчику выкл
Если был установлен фильтр для ограничения получаемых сообщений, его можно отключить с помощью команды AT FT.
AT FT hh Фильтр по передатчику = hh
Эта команда обеспечивает дополнительный уровень фильтрации принимаемых сообщений. Сообщение будет принято, если значение, передаваемое командой hh, совпадает со значением третьего байта стандартного трехбайтового заголовка или с младшими восемью битами идентификатора CAN. Это дополнение к любой другой фильтрации, обеспечиваемой другими командами. Для получения дополнительной информации обратитесь к разделу "Фильтрация для передатчика".
AT PB xx yy установить параметры протокола B
Эта команда позволяет изменить параметры протокола B (USER1) и скорость передачи данных без необходимости изменять соответствующие программируемые параметры (PP 2C и PP 2D). Это позволяет легче менять протокол во время теста. Чтобы воспользоваться этой функцией, просто установите xx в значение для PP 2C, а yy - в значение для PP 2D, и выполните команду. При следующей инициализации протокола будут использоваться эти значения. Например, чтобы настроить протокол B для использования с 500 кбит/с J1939, просто выполните команду: >AT PB 42 01 В качестве другого примера предположим, что вы хотите контролировать систему, использующую 11-битный CAN на скорости 33,3 кбит/с. Если если не требуется никакого специального форматирования, это означает значение 11000000 или C0 hex для PP 2C, и 15 десятичное или 0F шестнадцатеричное для PP 2D. Просто отправьте эти значения в ELM327 с помощью команды: >AT PB C0 0F затем начните мониторинг с помощью команды: >AT MA Если вы видите ошибки CAN ERROR и понимаете, что вам нужна была скорость передачи 83,3 кбит/с, закройте протокол и отправьте новые значения: >AT PC OK >AT PB C0 06 OK >AT MA Значения, переданные таким образом, не влияют на те, которые хранятся в программируемых параметрах 2C и 2D и теряются при перезагрузке ELM327. Если вы хотите, чтобы ваши настройки сохранялись в течение нескольких циклов питания, то вы можете сохранить их в программируемых параметрах для CAN-протоколов USER1 или USER2.
AT RTR отправить сообщение RTR
Эта команда вызывает отправку специального CAN-сообщения 'Remote Frame'. Этот тип сообщения не содержит байтов данных и имеет установленный бит Remote Transmission Request (RTR). Заголовки и фильтры останутся такими, как были установлены ранее (т.е. ELM327 не делает никаких предположений о том, какой формат может иметь ответ), поэтому может потребоваться подстройка маски и фильтра. Эта команда должна использоваться с активным протоколом CAN (который отправляет и принимает сообщения), так как она не может инициировать поиск протокола. Обратите внимание, что настройка CAF1 обычно исключает отображение всех RTR, поэтому, если вы отслеживаете сообщения и хотите видеть RTR, вам придется отключить форматирование или включить заголовки.
ELM327 воспринимает RTR как любое другое сообщение и ожидает ответа от автомобиля (если не выбран AT R0).
AT SH xyz Установить заголовок в 00 0x yz
Ввод 11-битных CAN ID (заголовков) обычно требует добавления ведущих нулей (например, AT SH 00 07 DF), но эта команда упрощает это. Команда AT SH xyz принимает трёхзначный аргумент, берёт из него только правые 11 бит, добавляет ведущие нули и сохраняет результат. Например, AT SH 7DF — валидная команда, удобная для работы с 11-битными CAN-системами. Фактически заголовок сохраняется как 00 07 DF.
AT SH xx yy zz Установить заголовок в xx yy zz
Эта команда позволяет пользователю вручную управлять значениями трёх байтов заголовка сообщения. Обычно эти байты назначаются автоматически, но бывают случаи, когда желательно их изменить (особенно при экспериментах с физической адресацией).
Рекомендуется устанавливать заголовки после активации протокола, чтобы сообщения wakeup и т.д. использовали значения по умолчанию.
Байты заголовка задаются шестнадцатеричными цифрами: xx — первый байт (приоритет/тип), yy — второй (приёмник), zz — третий (передатчик). Они действуют до следующей установки или восстановления значений по умолчанию командами D, WS или Z.
Эта команда используется для назначения всех байтов заголовка — J1850, ISO 9141, ISO 14230 или CAN. Системы CAN используют эти три байта для заполнения битов 0–23 ID (для 29-бит ID) или только правые 11 бит для 11-бит CAN ID. Дополнительные 5 бит для 29-бит системы устанавливаются командой AT CP.
AT SH ww xx yy zz Установить заголовок в ww xx yy zz
Четырёхбайтовая версия команды AT SH позволяет установить полный 29-битный CAN ID одной инструкцией. Это эквивалент одновременного использования AT CP (для пяти старших бит) и трёхбайтовой версии AT SH (для остальных трёх байт).
AT ST hh Установить тайм-аут на hh
После отправки запроса ELM327 ожидает ответа в течение заданного времени, после чего может объявить, что от автомобиля не получено "НЕТ ДАННЫХ". Эта же настройка таймера может использоваться и после получения ответа, в ожидании, не придет ли еще какой-нибудь (но это зависит от настроек AT). Команда AT ST позволяет выполнить подстройку этого таймера с шагом 4 мс (или 20 мс, если в протоколе CAN выбран CTM5). Если включена функция Adaptive Timing, время AT ST устанавливает максимальное время, которое должно быть разрешено, даже если адаптивный алгоритм определяет, что это значение должно быть больше. В большинстве случаев лучше оставить время AT ST по умолчанию и позволить алгоритму адаптивной синхронизации определить, что использовать для тайм-аута. По умолчанию таймер ST установлен на 32 (что дает время около 200 мс), но эту настройку по умолчанию можно подстроить, изменив значение PP 03. Обратите внимание, что значение 00 не приведет к времени 0 мс - оно вернет таймер к значению по умолчанию. Кроме того, во время поиска по протоколу используется внутренне установленное минимальное время - с помощью AT ST можно выбрать большее время, но не меньшее.
AT V0 and V1 Переменная длина данных выкл или вкл
Многие протоколы CAN (например, ISO 15765-4) ожидают отправки восьми байт данных. Команды V0 и V1 позволяют переопределить это поведение (для любого CAN-протокола). Выбор V1 заставляет текущий CAN-протокол отправлять сообщения переменной длины, аналогично биту 6 в PP 2C и PP 2E для протоколов B и C. Значение V0 (по умолчанию) отключает принудительную отправку сообщений переменной длины, и формат возвращается к настройкам протокола.

Команды ISO (9141 / 14230)

Команда Описание
AT FI выполнить быструю инициацию
В одной из версий протокола Keyword для начала обмена данными используется так называемая последовательность "быстрой инициации". Обычно эта последовательность выполняется, когда нужно отправить первое сообщение, и сразу после этого отправляется сообщение. Однако некоторым ЭБУ может потребоваться больше времени между этими двумя действиями, и наличие отдельной команды инициации позволяет контролировать это время. Просто отправьте AT FI, подождите немного, а затем отправьте сообщение. Возможно, вам придется поэкспериментировать, чтобы получить нужное количество задержек.
Еще одним вариантом использования этой команды может быть выполнение быстрой инициации по протоколу типа ISO 9141 (т.е. 3 - формат CARB). Просто выполните следующие шаги для создания быстрой инициации, а затем переключитесь на протокол 3: AT SP 5 AT FI AT SP 3 AT BI После этого вы сможете общаться с блоком управленияECU.
Обратите внимание, что закрытие протокола (т.е. AT PC) в приведенном выше коде не требуется, поскольку ELM327 автоматически выполняет его при переключении протоколов. Для использования команды AT FI должен быть выбран протокол 5, иначе возникнет ошибка.
AT KW отобразить ключевые слова
При инициализации протоколов ISO 9141-2 и ISO 14230-4 в ELM327 передаются два специальных байта (ключевые слова) (их значения используются для определения того, может ли ELM327 поддерживать тот или иной вариант протокола). Если вы хотите узнать значение этих байтов, просто отправьте команду AT KW.
AT KW0 и KW1 Проверка ключевого слова выключена или включена
ELM327 ищет определенные байты (называемые ключевыми словами), которые должны быть отправлены ему ЭБУ во время инициации по ISO 9141-2 и ISO 14230-4. Если байты не найдены, считается, что инициация не удалась (и вы можете увидеть сообщение 'UNABLE TO CONNECT' или, возможно, 'BUS INIT: ...ERROR'). Это может произойти, если вы пытаетесь подключиться к ECU, не совместимому с OBD, или, возможно, к старому ECU. Если вы хотите поэкспериментировать с нестандартными системами, возможно, вам придется указать ELM327 на выполнение последовательности инициирования, но игнорировать содержимое полученных байтов ключевого слова. Для этого просто отправьте команду Key Words off:

>AT KW0


После отключения проверки ключевых слов ELM327 по-прежнему будет требовать два байта ключевых слов в ответе, но не будет смотреть на фактические значения байтов. Он также отправит подтверждение на ЭБУ и будет ждать окончательного ответа от него (но не остановится и не сообщит об ошибке, если таковой не будет получен). Это может позволить вам установить соединение в иной "невозможной" ситуации. Нормальное поведение может быть восстановлено с помощью AT KW1, который является настройкой по умолчанию.
AT SI выполнить медленную инициацию
Протоколы 3 и 4 используют так называемую 5-бодовую (или медленную) последовательность инициации для начала обмена данными. Обычно последовательность выполняется при отправке первого сообщения, после чего сообщение отправляется сразу. Однако некоторым ЭБУ может потребоваться больше времени между этими действиями, и наличие отдельной команды инициации позволяет контролировать эту задержку. Просто отправьте AT SI, подождите немного, затем отправьте сообщение. Возможно, потребуется поэкспериментировать с величиной задержки. Для использования команды AT SI должен быть выбран протокол 3 или 4, иначе возникнет ошибка.
AT SW hh Установить интервал Wakeup в hh
После установления соединения некоторые протоколы требуют периодического обмена данными каждые несколько секунд, чтобы ЭБУ поддерживал канал связи открытым. Если сообщения не приходят, ЭБУ считает, что вы закончили работу, и закрывает канал. ELM327 автоматически генерирует периодические сообщения для поддержания соединения. Ответы на эти сообщения игнорируются.
(В настоящее время только протоколы 3, 4 и 5 поддерживают эти сообщения — для CAN ничего не предусмотрено.)
Интервал между Wakeup-сообщениями настраивается с шагом 20 мс командой AT SW hh (hh — hex-значение от 00 до FF). Максимальная задержка ~5 секунд при FF. По умолчанию (92) — номинальная задержка 3 секунды.
Значение 00 останавливает периодические сообщения. После AT SW 00 их можно восстановить только закрытием и повторной инициализацией протокола.
AT WM 1–6 байт
Эта команда позволяет переопределить настройки Wakeup-сообщений (иногда называемых «периодическими сообщениями простоя»). Просто укажите сообщение для отправки (обычно три байта заголовка и один–три байта данных), и ELM327 добавит контрольную сумму и будет отправлять их в соответствии с настройкой AT SW. Значения по умолчанию: 68 6A F1 01 00 для ISO 9141 и C1 33 F1 3E для KWP.

Команды J1939

Команда Описание
AT JE включить формат данных ELM для J1939
Стандарт J1939 требует, чтобы запросы PGN отправлялись с обратным порядком байтов относительно стандартного порядка «слева направо». Например, для запроса температуры двигателя (PGN 00FEEE) байты данных фактически отправляются в обратном порядке (EE FE 00), и ELM327 обычно ожидает, что вы предоставите данные именно в таком порядке.
При экспериментах постоянная необходимость реверса байтов может сбивать с толку, поэтому определён формат ELM, который выполняет реверс за вас. Когда включён формат J1939 ELM (JE), выбран протокол J1939 и вы предоставляете три байта данных, ELM327 изменит их порядок перед отправкой в ЭБУ. Для запроса температуры двигателя вы отправляете 00 FE EE (а не EE FE 00). Формат JE включён по умолчанию.
AT JHF0 and JHF1 Форматирование заголовков J1939 выкл или вкл
При печати ответов ELM327 обычно форматирует биты J1939 ID (заголовка) таким образом, чтобы изолировать биты приоритета, сгруппировать всю информацию PGN и отделить байт адреса источника. Если вы предпочитаете видеть информацию ID как четыре отдельных байта (что делает большинство программ J1939), просто отключите форматирование командой JHF0. Команда CAF0 имеет тот же эффект (и переопределяет настройку JHF), но также влияет на другое форматирование. Настройка по умолчанию — JHF1.
AT JS включить формат данных SAE для J1939
Команда AT JS отключает автоматическую перестановку байтов, которую выполняет команда JE. Если вы хотите отправлять байты данных в автомобиль J1939 без какого-либо изменения порядка байтов (т.е. в порядке, указанном в документах SAE), выберите формат JS. Например, при отправке запроса температуры двигателя (PGN 00FEEE) с форматом JS необходимо передать байты как EE FE 00 (это также известно как порядок байтов little-endian). Формат JS по умолчанию выключен.
AT JTM1 установить множитель таймера J1939 на 1
Эта команда устанавливает множитель времени AT ST на x1 для протокола SAE J1939. Начиная с прошивки v2.1 эта команда просто вызывает CTM1.
AT JTM5 установить множитель таймера J1939 на 5
Эта команда устанавливает множитель времени AT ST на x5 для протокола SAE J1939. Начиная с прошивки v2.1 эта команда просто вызывает CTM5.
AT MP hhhh Мониторинг PGN hhhh
Команды AT MA, MR и MT очень полезны для мониторинга определённого байта в заголовке типичного OBD-сообщения. Однако для протокола SAE J1939 часто требуется мониторинг многобайтовых номеров групп параметров (PGN), которые могут находиться как в заголовке, так и в байтах данных. Команда MP — это специальная команда только для J1939, используемая для отслеживания ответов на запрос конкретного PGN.
Обратите внимание, что эта команда не позволяет задать первые два разряда PGN — они всегда предполагаются равными 00. Например, PGN DM2 имеет значение 00FECB (см. SAE J1939-73). Для мониторинга DM2 отправьте AT MP FECB.
Эта команда доступна только при выборе CAN-протокола (A, B или C) с форматированием SAE J1939. При других условиях возвращается ошибка.
AT MP hhhh n Мониторинг PGN, получить n сообщений
Эта команда аналогична предыдущей, но добавляет возможность задать количество сообщений, которое должно быть получено, прежде чем ELM327 автоматически прекратит мониторинг и выведет символ приглашения. Значение «n» — одна шестнадцатеричная цифра.
AT MP hhhhhh Мониторинг PGN hhhhhh
Эта команда аналогична MP hhhh, но расширяет количество предоставляемых байтов на один, обеспечивая полный контроль над определением PGN (не делает предположение, что бит Data Page равен 0, как команда MP hhhh). Это позволяет использовать будущие расширения, если будут определены дополнительные PGN с установленным битом Data Page. Обратите внимание, что в дополнительном байте значим только бит Data Page — остальные биты игнорируются.
AT MP hhhhhh n Мониторинг PGN, получить n сообщений
Эта команда аналогична предыдущей, но добавляет возможность задать количество сообщений, которое должно быть получено, прежде чем ELM327 автоматически прекратит мониторинг и выведет символ приглашения. Значение «n» — одна шестнадцатеричная цифра.

Команды мониторинга

Команда Описание
AT MA Мониторинг всех сообщений
Эта команда переводит ELM327 в режим мониторинга шины, в котором он непрерывно отслеживает (и отображает) все сообщения, которые видит на шине OBD. Это тихий монитор, не посылающий ответы в кадре для систем J1850, подтверждения для систем CAN (если вы не отключите тихий режим с помощью CSM0) или сообщения Wakeup ("keep-alive") для протоколов ISO 9141 и ISO 14230. Мониторинг будет продолжаться до тех пор, пока вы не остановите его активностью на входе RS232 или на выводе RTS. Чтобы остановить мониторинг, просто отправьте любой одиночный символ на ELM327, затем дождитесь ответа в виде символа запроса ('>') или низкого уровня на выводе Busy. (Установка входа RTS на низкий уровень также прервет работу устройства). Ожидание подсказки необходимо, так как время ответа зависит от того, что делала микросхема в момент прерывания. Если, например, она находилась в середине печати строки, то сначала завершит ее, а затем напечатает 'STOPPED', после чего вернется в командное состояние и пошлет символ подсказки. Если бы он просто ждал ввода, то вернулся бы гораздо быстрее. Обратите внимание, что символ, останавливающий мониторинг, всегда отбрасывается и не влияет на последующие команды.
Если эта команда используется с протоколами CAN, и если фильтр и/или маска CAN были установлены ранее (с помощью CF, CM или CRA), то команда MA будет зависеть от этих настроек. Например, если для адреса приема ранее было установлено значение CRA 4B0, то команда АКПП MA сможет "увидеть" только сообщения с идентификатором 4B0. Это может быть не совсем то, что нужно - возможно, сначала следует сбросить маски и фильтры (с помощью АКПП AR или АКПП CRA).
Все команды мониторинга (MA, MR и MT) работают, закрывая текущий протокол (выполняется АКПП), прежде чем сконфигурировать микросхему для мониторинга данных. Когда будет передана следующая команда OBD, протокол снова будет инициализирован, о чем вы можете увидеть сообщения. Кроме того, может появиться сообщение 'SEARCHING...', в зависимости от того, какие изменения были сделаны во время мониторинга.
AT MR hh Мониторинг по адресу получателя hh
Эта команда аналогична AT MA, но отображает только сообщения, отправленные на шестнадцатеричный адрес hh. Это сообщения, в которых значение hh находится во втором байте стандартного трёхбайтового OBD-заголовка, в битах 8–15 29-битного CAN ID или в битах 8–10 11-битного CAN ID. Мониторинг прерывается любым символом RS232, как и команда MA.
Обратите внимание: если эта команда используется с протоколами CAN и ранее были установлены фильтр/маска CAN (командами CF, CM или CRA), то команда MR перезапишет только соответствующие биты — остальные останутся без изменений. Возможно, следует сначала сбросить маски и фильтры (AT AR). Как и AT MA, эта команда начинается с внутреннего закрытия протокола.
AT MT hh Мониторинг по адресу отправителя hh
Эта команда аналогична AT MA, но отображает только сообщения, отправленные передатчиком с шестнадцатеричным адресом hh. Это сообщения, в которых данное значение находится в третьем байте стандартного трёхбайтового OBD-заголовка или в битах 0–7 CAN ID. Как и в режимах MA и MR, мониторинг прерывается любым символом RS232.
Обратите внимание: если ранее были установлены фильтр/маска CAN, то команда MT перезапишет только соответствующие биты. Возможно, следует сначала сбросить маски и фильтры (AT AR). Как и AT MA, эта команда начинается с внутреннего закрытия протокола.

Команды адресации

Команда Описание
AT AR Автоматическая установка адреса приема
Ответы от автомобиля будут подтверждены и отображены на дисплее ELM327, если внутренний адрес приема совпадает с адресом, на который отправляется сообщение. В режиме автоматического приема значение, используемое для адреса приема, будет выбрано на основе текущих байтов заголовка и будет автоматически обновляться при изменении байтов заголовка. Значение, используемое для адреса приема, определяется такими параметрами, как содержимое первого байта заголовка, а также тем, используется ли в сообщении физическая адресация, функциональная адресация или если пользователь задал значение alue с помощью команд SR или RA. Автоприем включен по умолчанию и не используется протоколом J1939.
AT RA hh установить адрес приёма в hh
В зависимости от приложения пользователи могут захотеть вручную установить адрес, на который будет отвечать ELM327. Эта команда отключает режим AR и заставляет микросхему принимать только ответы, адресованные на hh. Будьте осторожны с этой настройкой — в зависимости от значения вы можете принять (и подтвердить IFR) сообщение, предназначенное для другого модуля. Для отключения фильтрации RA отправьте AT AR. Эта команда имеет ограниченное применение с CAN, так как отслеживает только часть битов ID — команда CRA может быть лучшим выбором. Также команда не влияет на адреса J1939. Команда RA идентична SR и может использоваться взаимозаменяемо. Расширенная адресация CAN использует значение, установленное командой AT TA.
AT SR hh Установить адрес приёма в hh
В зависимости от приложения пользователи могут захотеть вручную установить адрес, на который будет отвечать ELM327. Эта команда отключает режим AR и заставляет микросхему принимать только ответы, адресованные на hh. Будьте осторожны с этой настройкой — в зависимости от значения вы можете принять (и подтвердить IFR) сообщение, предназначенное для другого модуля. Для отключения фильтрации RA отправьте AT AR. Эта команда имеет ограниченное применение с CAN, так как отслеживает только часть битов ID — команда CRA может быть лучшим выбором. Также команда не влияет на адреса J1939. Команда RA идентична SR и может использоваться взаимозаменяемо. Расширенная адресация CAN использует значение, установленное командой AT TA.
AT TA hh установить адрес тестера в hh
Эта команда используется для изменения текущего адреса тестера (диагностического прибора), который используется в заголовках, периодических сообщениях, фильтрах и т.д. ELM327 обычно использует значение из PP 06, но команда TA позволяет временно переопределить его. AT TA влияет на все протоколы, включая J1939, что удобно для изменения адреса J1939 с F9 по умолчанию. Хотя команда может работать «на лету», не рекомендуется менять адрес после активации протокола — результаты могут быть непредсказуемыми.

Программируемые параметры

Команда Описание
AT PP hh OFF выключить программируемый параметр hh OFF
Эта команда отключает программируемый параметр с номером hh. Любое значение, присвоенное с помощью команды PP hh SV, больше не будет использоваться, и снова будет действовать заводская настройка по умолчанию. Фактическое время вступления в силу нового значения для этого параметра определяется его типом. Более подробную информацию о типах см. в разделе "Программируемые параметры" (стр. 72). Обратите внимание, что 'PP FF OFF' - это специальная команда, которая отключает все программируемые параметры, как если бы вы ввели PP OFF для каждого возможного параметра. Можно изменить некоторые программируемые параметры таким образом, что связь с ELM будет затруднена или даже невозможна. невозможность связи с ELM327. Если это произошло, существует аппаратное средство сброса всех программируемых параметров сразу. Подключите перемычку от общего вывода цепи к выводу 28, удерживая ее в этом положении при подаче питания на цепь ELM327. Удерживайте ее в таком положении до тех пор, пока не увидите, что светодиод приема RS232 начинает мигать (это означает, что все ПП отключены). В этот момент снимите перемычку, чтобы позволить микросхеме выполнить нормальный запуск. Обратите внимание, что сброс ПП происходит довольно быстро - если вы держите перемычку включенной более нескольких секунд и не видите, что мигания индикатора приема RS232, снимите перемычку и попробуйте снова, так как может быть проблема с подключением.
AT PP hh ON включить программируемый параметр hh
Эта команда включает программируемый параметр с номером hh. После включения любое значение, присвоенное с помощью команды PP hh SV, будет использоваться там, где до этого было заводское значение по умолчанию. (Все программируемые значения устанавливаются по умолчанию на заводе, поэтому включение программируемого параметра до присвоения ему значения не вызовет проблем). Фактическое время вступления в силу значения этого параметра определяется его типом. Дополнительные сведения о типах см. в разделе "Программируемые параметры" (стр. 72). Обратите внимание, что 'PP FF ON' - это специальная команда, которая включает все программируемые параметры одновременно.
AT PP hh SV yy Прог. параметр hh: Установить значение yy
С помощью этой команды программируемому параметру присваивается значение. Система не сможет использовать это новое значение до тех пор, пока программируемый параметр не будет включен с помощью команды PP hh ON.
AT PPS Сводка программируемых параметров
С помощью этой команды отображается полный набор текущих программируемых параметров (даже даже те, которые еще не реализованы). Каждый из них отображается в виде номера PP, за которым следует двоеточие и значение, которое ему присвоено присвоенное ему. Затем следует одна цифра - 'N' или 'F', чтобы показать, что параметр включен (включен) или выключен (выключен), соответственно. Более подробное описание см. в разделе "Программируемые параметры".

Калибровка напряжения

Команда Описание
AT CV dddd Калибровка напряжения до dd.dd вольт
Показания напряжения, которые ELM327 показывает при запросе AT RV, могут быть откалиброваны с помощью этой команды. Аргумент ('dddd') всегда должен быть представлен в виде 4 цифр без десятичной точки (предполагается, что десятичный разряд находится между второй и третьей цифрами). Чтобы воспользоваться этой функцией, просто используйте точный измерительный прибор для считывания фактического входного напряжения, а затем используйте команду CV для изменения внутреннего калибровочного (масштабного) коэффициента. Например, если ELM327 показывает напряжение 12,2 В, а вы измеряете 11,99 В, отправьте AT CV 1199, и ELM327 откалибруется для этого напряжения (на самом деле он будет считать 12,0 В из-за округления цифр). Дополнительную информацию о том, как считывать напряжение и выполнять калибровку, см. на стр. 31.
AT CV 0000 восстановление заводского значения калибровки
Если вы экспериментируете с командой CV dddd, но не имеете точного вольтметра в качестве эталона, то вскоре у вас могут возникнуть проблемы. В этом случае вы всегда можете послать AT CV 0000 для восстановления заводских значений калибровки ELM327.

Programmable Parameters Summary

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 после включения или сброса 00 = ON; FF = OFF FF(OFF) R
01 Печать байтов заголовка (настройка AT H по умолчанию) 00 = ON; FF = OFF FF(OFF) D
02 Разрешить длинные сообщения (настройка AT AL по умолчанию) 00 = ON; FF = OFF FF(OFF) D
03 Время таймаута NO DATA (настройка AT ST по умолчанию) 00 to FF 32(205 msec) D
04 Режим адаптивной синхронизации по умолчанию (настройка AT AT) 00 to 02 01 D
06 Адрес тестера по умолчанию (Source Address) 00 to FF F1 R
07 Последний протокол для попытки при автоматическом поиске 01 to 0C 09 I
09 Эхо символов (настройка AT E по умолчанию) 00 = ON; FF = OFF 00 (ON) R
0A Символ перевода строки 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:
Baud Rate(kbps)PP 0C value (hex)
19.2D0
38.457.6
19.245
115.223
230.411
50008

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 Символ возврата каретки 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 (мс) = (PP 10) × 4,096 00 to FF 0D R
11 Мониторинг сигнала Break J1850 (сообщает BUS ERROR при превышении пределов) 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
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 Настройка бесшумного мониторинга CAN по умолчанию (AT CSM) FF = ON; 00 = OFF FF(ON) R
24 Автоформатирование CAN (настройка AT CAF по умолчанию) 00 = ON; FF = OFF 00(ON) D
25 Автоматическое управление потоком CAN (настройка AT CFC по умолчанию) 00 = ON; FF = OFF 00(ON) D
26 Байт-заполнитель CAN (используется для дополнения CAN-сообщений до 8 байт) 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 (DLC) при выводе заголовков (настройка 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

Расширение DoIP (ScanDoc)

Адаптер ScanDoc расширяет протокол ELM327 поддержкой DoIP (Diagnostics over Internet Protocol, ISO 13400). Это позволяет выполнять Ethernet-диагностику современных автомобилей через привычный интерфейс AT-команд ELM327.

Подробное описание протокола DoIP (ISO 13400) →


Примеры OBD-команд

В обычном режиме (без префикса AT) команды отправляются напрямую в автомобиль. Команды записываются шестнадцатеричными байтами:

Команда Описание
01 00Запрос поддерживаемых PID (Mode 01)
01 0CЧтение оборотов двигателя
01 0DЧтение скорости автомобиля
03Чтение сохранённых кодов ошибок (Mode 03)
04Стирание кодов ошибок (Mode 04)
09 02Чтение VIN-номера (Mode 09)