AutoPro, С-Петербург Россия, 1999-2017
Яндекс.Метрика
Статей всего: 129, Обновление от: 18.10.2015 |

Диагностический прибор для сетей GMLAN под OS Android.
01.07.2014 (показов - 8936 )

В связи с неожиданно образовавшимся свободным временем попытаюсь обобщить накопленный мной опыт работы по разработке диагностического оборудования для автомобилей имеющих в основе бортовую сеть GMLAN. Целью этого блога ставится :

  • Приведение собственных знаний с некую систему. Не зря ведь говорят : Если хочешь разобраться в вопросе, то попытайся рассказать об этом другим. Вот и попробуем это сделать.
  • Поиск людей , которые работают в этом направлении как энтузиасты и сами пытаются что либо делать в этом направлении . В компании единомышленников работать веселее и продуктивнее . А если найдутся люди, которые в чем то поправят мои измышления и вступят в конструктивную дискуссию, то я буду только рад этому.
  • А так же поиск организаций, которые могли бы быть заинтересованы в моей работе в этой области и предоставить работу с достойной оплатой или другие варианты сотрудничества. Поэтому данный блог можно рассматривать как своеобразное резюме для потенциального работодателя.
  • Итак с чего начал чуть более года назад и каково состояние проекта на сегодняшний день.

    На входе

  • несколько устаревшие знания и навыки по созданию систем управления на основе встроенных в объект управления микропроцессоров. Увы элементная база I8080 и языки типа PL/M и ассемблер остались в далеком прошлом.
  • знание основ построения систем реального времени так же нашли применение в проекте
  • работа с базами данных и язык SQL неожиданно оказались востребованными в работе
  • опыт работы электриком- диагностом с автомобилями GM
  • На выходе. Разработана основа диагностического сканера , базирующегося на ОС Android и работающая с бортовыми сетями автомобилей GMLAN (Opel, Vauxhall, Chevrolet ). На начальном этапе работы использовался адаптер ELM327, но потом при поддержке Vic был сделан собственный адаптер на базе чипа Atmel. Основные функции адаптера - это сопряжение и коммутация шин (HS-CAN, MSCAN или LS-CAN) автомобиля с каналом Bluetooth и фильтрация пакетов для разгрузки основной программы обработки. Программа написана для OS Android v 2.2.3 и выше и выполняет следующие функции:

  • установление связи по каналу BT со смартфоном или планшетом.
  • режим работы терминала, для непосредственного общения с блоками автомобиля
  • режим выполнения скрипов (наборов команд) из внешнего файла
  • запись логов (протоколов) работы во внешний файл с метками времени и CANid.
  • режим снифера с программно устанавливаемыми фильтрами.
  • автоидентификация автомобиля , на основе считанной информации по VIN коду
  • считывание всех основных диагностических идентификаторов из блоков автомобиля
  • чтение , расшифровка и сброс кодов ошибок (DTC коды)
  • просмотр основных данных блоков в режиме "Live Data"
  • реализованы отдельные функции режимов программирования блоков
  • программа может работать на двух языках, русском и английском
  • В итоге имеем вполне добротную заготовку для реализации проекта диагностического сканера. В следующих частях этого блога я покажу как можно работать с бортовой сетью GMLAN на примере автомобилей OPEL .

    1. Предыстория GMLAN и теоретические основы.

    Перед тем как приступить к делу, позволю себе немного позанудствовать о теории. Как только появился микропроцессор в системе управления двигателями в автомобилях, стал логичным вопрос о сборе и анализе данных , которые обрабатывал процессор, в целях отладки и диагностики Работы мотора. В самом начале, применительно к GM, это был так называемый порт ALDL Assembly Line Diagnostic Link . Это была однопроводная шина, которая для работы использовала ШИМ (широтно импульсную модуляцию). В конце 1990-х годов GM начал использовать Class-2, которая затем имел ветку развитая в J1850. Однако скорость работы шины не могла удовлетворить растущие потребности в обмене данных. Помимо скорости так же было необходимо обеспечить надежное межблочное взаимодействие всех электронных узлов бортовой сети автомобиля. Для этих целей очень хорошо подходил стандарт CAN 2.0 на промышленные сети от Bosch, который был творчески переработан ISO (International Organization for Standardization) для автомобильных целей . Вот на основе этих достижений GM и разработал свой стандарт бортовых автомобильных сетей GMLAN.

    2. GMLAN и классическая семиуровневая модель ISO/OSI .

    GMLAN можно отнести к протоколам высокого уровня (HLP - Higher Layer Protocols). Из названия следует что верхние уровни модели описываются протоколами стандарта GMLAN, но базируется на CAN стандарте и его развитии на сетевом уровне ISO 15765-2 .

    - Уровень Соответствие в бортовой сети
    7 Уровень представления (presentation) GM-LAN
    6 Прикладной (application)
    5 Сеансовый (session)
    4 Транспортный (transport)
    3 Сетевой (network) ISO 15765-2 (UUST, USDT)
    2 Канальный (data link) ISO 11898 (CAN)
    1 Физический (physical) DW-CAN GMW 3122, SW-CAN GMW 3089

    1. Физический уровень - это разъемы, провода, трансмиттеры. Разъем подключения (DLC) регламентируется документом SAE 1962. Физическая среда может быть двухпроводной витой парой (GMW 3122) или однопроводной (GMW 3089)

    2. Канальный уровень - это фактически расширение спецификации CAN для взаимодействия с физической средой и организация управления доступом к среде, арбитраж на шине, обнаружение ошибок передачи данных. Этот уровень условно соответствует документу ISO 11898.

    3-4 Сетевой уровень, транспортный уровень - Надстройкой затрагивающей указанные уровни является стандарт ISO 15765-2 , который вводит понятия типов кадров и сегментированной USDT (Unacknowledged Segmented Data Transfer) и несегментированной UUDT (Unacknowledged Unsegemented Data Transfer) передачи данных.

    5-7 Верхние уровни модели базируются на внутреннем стандарте GM-LAN, который и определяет межблочное взаимодействие узлов и протоколы работы диагностического оборудования.

    3. Адаптеры для начального подключения к GM-LAN.

    Перед тем как что то разрабатывать самостоятельно, было бы неплохо по-изучать предмет с помощью подручных средств.

    Как мы выяснили, типовая шина представляет собой витую пару , которая на концах сбалансирована сопротивлениями и к ней параллельно подключаются узлы . Таких шин в составе GM-LAN несколько и они связаны между собой узлами - шлюзами, которые позволяют передавать часть информации из одной шины в другую.

    К нашей радости все шины GM-LAN в автомобиле Opel Astra-H выведены на диагностический разъем и нам не придется что либо разбирать в машине что бы добраться до них.

    Скорость передачи данных по шинам :
    HS-CAN (Hi Speed) 500 кб
    MS-CAN (Middle Speed) 92,5 кб
    LS-CAN (Low Speed) 33 кб

    DLC - разъем
  • Pin 1 LS-CAN GMLAN communications terminal
  • Pin 3 MS-CAN GMLAN serial bus (+)
  • Pin 4 Scan tool power ground terminal
  • Pin 5 Common signal ground terminal
  • Pin 6 HS-CAN GMLAN serial data bus (+)
  • Pin 7 Keyword communications terminal
  • Pin 11 MS-CAN GMLAN serial bus (-)
  • Pin 14 HS-CAN GMLAN serial data bus (-)
  • Pin 16 Scan tool power, battery positive voltage terminal (12v)
  • Теперь куда подключаться мы знаем, осталось выяснить чем. Очень бы хотелось оперативно пощупать работу с CAN и с минимальными финансовыми потерями. Для начала выберем два устройства , которые относительно доступны и не очень дороги и самое главное есть у меня под руками. . Одно будет работать под Window, другое , для разнообразия под Android. Это будут CANNY7 с USB и ELM327 c BT интерфейсом. Конечно можно использовать и другие варианты, но у меня были именно такие.

    ELM327.
    Популярный адаптер ELM 327 выпускается …. ну кем он только не выпускается… всеми кому не лень, так что с приобретением такого устройства проблем нет. Это малогабаритное устройство , построенное на Microchip pic 18f248 и имеющее встроенное ПО , реализующее несколько диагностических протоколов , в том числе и ISO 15765 . Разработчик устройства www.elmelectronics.com . Существуют варианты как и USB так и с Bluetooth каналом.

    CANNY7
    Программируемый логический контроллер CANNY7 является многофункциональным устройством , которое в частности способно выполнять функции сниффера (анализатора) CAN шины. Реализация CAN 2.0B совместимая с ISO-11898 позволяет нам заглянуть в шину по USB каналу. Контроллер разработан фирмой www.canny.ru и ориентирован на автомобильные задачи. Единственный недостаток по сравнению с ELM - это отсутствие штатного переходника на DLC коннектор . Пришлось спаять дополнительный кабель и разместить в корпусе разъема дополнительный коммутатор для подключения шин.


    30.10.2014 16:20:34
    K0Tik --> Вот ежели бы Вы сделали опком под андроид, это было бы круто

    01.11.2014 12:30:22
    Autopro --> Технических проблем для повторения функционала  нет. Процедуры и алгоритмы для большинства режимов работы GMLAN мной опробованы и работают под Android. Проблема скорее в огромной базе данных для работы с конкретными блоками. Набрать такую базу данных это огромная работа и ее решение возможно, но только при наличии финансирования и доступа к образцам новых автомобилей в различных комплектациях . На голом энтузиазме такую работу не поднять. 

    23.09.2016 12:29:42
    chevelev1982 --> Хотелось бы скачать Вашу программу. Можете выслать ссылку???

    26.09.2016 00:10:35
    Autopro --> Программа будет работать только с моим адаптером. Без него она бесполезна.

    26.09.2016 10:56:28
    chevelev1982 --> Какова цена вашего адаптера? 

    27.09.2016 00:48:59
    Autopro --> Надо признать , что я пока не планировал продавать эти адаптеры.  Небольшая партия была сделана для нужд разработки программ работы с CAN шиной .  На сегодняшний день адаптер и программа это скорее инструмент для исследования протоколов автомобильных бортовых сетей , чем диагностический прибор.  Если вам нужен CAN и K-Line сниффер  на базе STM32 c управляемым коммутатором  шин под Android, то есть тема для разговора, Если вам нужна только диагностика,  то  тут сделано не так много. 

    10.10.2016 10:30:12
    chevelev1982 --> Диагностика на данный момент меня мало интересует, а вот снифер...........

    Комментарии без регистрации запрещены. Зарегистрируйтесь.