Разработка софта для elm327

Разработка софта для elm327

Ниже описывается, как использовать AT команды ELM327, чтобы получать информацию от Вашего автомобиля. Мы начинаем с обсуждения того как общаться с чипом при помощи компьютера, а затем объясним, как изменить параметры используя AT команды и, наконец, мы покажем, как использовать ELM327 для получения кодов ошибок (и сбросить их).
Использование ELM327 не такая сложная задача, как кажется на первый взгляд. Многим пользователям никогда не придется использовать 'AT' команды, настраивать тайм-ауты, или изменять заголовки. Для большинства, все, что требуется, это компьютер или смарт-устройство с терминальной программой (например HyperTerminal или ZTerm) и немного знаний о командах ОБД, которые мы предоставит в следующих разделах…

Взаимодействие с ELM327

ELM327 общаеться с компьютером через последовательный порт RS232. Хотя современные компьютеры как правило, не имеют последовательного порта, есть несколько способов создать виртуальный последовательный порт. Наиболее распространенными устройствами являются USB в RS232 адаптеры, но есть некоторые другие, такие как PC карты, сетевые устройства, или Bluetooth  адаптеры.
Независимо от того, как вы подключитесь к ELM327, вам нужен способ отправлять и получать данные. Самый простой способ заключается в использовании одной из многих терминальных программ (HyperTerminal, ZTerm и т.д.), что позволяет вводить символы непосредственно с клавиатуры.
Для использования программы терминала, то вам нужно настроить несколько параметров. Во-первых, убедитесь, что ваше программное обеспечение использует правильный COM-порт и что Вы выбрали правильную скорость передачи данных — это будет либо 9600 бод (если контакт 6 = 0 В при запуске), или 38400 бод (если PP 0С не изменилась). Если вы выберете неправильный COM-порт, вы не сможете отправлять или получать данные. Если вы выберете неправильную скорость передачи данных, информация что вы отправляете и получаете будет искажена и нечитаема вами или ELM327. Не забудьте также установить соединение на 8 бит данных, без четности, 1 стоп-бит, и установить его на  правильный режим «конец строки». Все ответы, полученные от ELM327 заканчиваются одним символом возврата каретки и, возможно, символом перевода строки (в зависимости от настроек).
Правильно подключенный и запитанный, ELM327 будет активизировать четыре светодиодных выходов в последовательности (в качестве проверки светодиодов), а затем отправит сообщение:
ELM327 v1.4b
>
В дополнение к определению версии чипа, эта строка является хорошим способом, чтобы подтвердить, что подключение к компьютеру и настройки программного обеспечения терминала правильны (впрочем, на данный момент нет связи с автомобилем, поэтому состояние этого соединения до сих пор неизвестно).
Символ '>'  на второй строке это символ запроса в ELM327. Он означает, что устройство находится в состоянии ожидания, готово к приему символов на порт RS232. Если вы не видите строки идентификации, вы можете попробовать сбросить чип командой AT Z (сброс). Просто введите буквы A T и Z (Пробелы не являются обязательными), а затем нажмите клавиши ввода:
> AT Z
Это должно привести к тому, что светодиоды снова начнут мигать, и появится строка идентификации. Если вы видите странные символы, проверьте скорость — вы скорее всего установили ее неправильно.
Символы отправленные с компьютера могут быть либо предназначенны для внутреннего использования ELM327, либо для преобразования и использования на транспортном средстве. ELM327 может быстро определить, где полученные символы должны быть направлены на мониторинг содержания сообщения. Команды, которые предназначенной для внутреннего пользования ELM327 будут начинаться с символа 'К', в то время как OBD команды для транспортного средства содержат только ASCII-коды для шестнадцатеричных цифр (от 0 до 9 и от A до F).
Будь то команды AT-типа для внутреннего использования или шестнадцатеричная строка для шины OBD, все сообщения для ELM327 должны заканчиваться символом возврата каретки (шестнадцатеричный '0D'), прежде чем они будут выполнены. Единственное исключение, когда неполная строка передается и возврат каретки не появляется. В этом случае внутренний таймер автоматически отменит неполное сообщение примерно через 20 секунд, а ELM327 будет выдаст один знак вопроса ('?'), чтобы показать, что команда была не распознана (и не выполнена).
Сообщения, которые не понимает ELM327 (Синтаксические ошибки) всегда должны быть обозначены одним вопросительным знаком. К ним относятся неполное сообщение, неправильные AT-команды, или недействительные шестнадцатеричные цифры, но не индикация было ли сообщение понято автомобилем. Имейте в виду, что ELM327 является интерпретатором протокола, он не проверяет команды OBD - jy только гарантирует, что шестнадцатеричные цифры были получены, объединены в байты, затем посланы на OBD порт, и он не знает, если сообщение, отправленное в транспортное средство было с ошибкой.
При обработке OBD команд, ELM327 будет постоянно следить за любым активным входом RTS, или полученным символом RS232. Любой из них прервет чип, быстро возвращая управление пользователю, в то время как возможно прерывание любой инициации, и т.д., что было в процессе. После генерации сигнала для прерывания ELM327, программное обеспечение должно всегда ждать либо символа запроса ('>' или шестнадцатеричный 3E), или низкого уровня на выходе Busy перед началом отправки следующей команды.
Наконец, следует отметить, что ELM327 не учитывает регистр, поэтому «АТZ» «atz», и «АtZ» абсолютно одинаковые для ELM327. Все команды могут быть введены так, как вам удобнее. ELM327 также игнорирует символы пробелов и все управляющие символы (табуляция и т.д.), так что они могут быть вставлены в любом месте, если это улучшает читаемость.
Еще одна особенность ELM327 является возможность повторить любую команду (AT или OBD), когда только один символ возврата каретки получен. Если вы отправили команду (например, 01 0C для получения оборотов в минуту), Вам не нужно повторно отправлять всю команду чтобы отправить ее в машину — просто отправьте символ возврата каретки и ELM327 будет повторять команду для вас. Буфер памяти запоминает только одну команду — нет возможности в текущем чипе ELM327 обеспечить хранение большего количества.

Продолжение статьи 

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.