Для настройки функций модуля существует два режима программирования:
- основной режим — используется для ввода четырехзначного номера автомобиля и программирования функций модуля при начальной установке.
- дополнительный режим — используется для программирования функций модуля, а также для просмотра номера автомобиля, когда номер уже записан в охранный комплекс.
- Основной режим программирования
- Вход в основной режим программирования
- Выбор номера автомобиля
- Последовательность программирования
- Пример программирования модуля в основном режиме
- Дополнительный режим программирования
- Хакаем CAN шину авто. Мобильное приложение вместо панели приборов
- Программный сниффер VCDS
- Протокол UDS
- VW Transport Protocol 2.0
- Диагностический адаптер ELM327
- Мобильное приложение VAG Virtual Cockpit
- 🔥 Видео
Видео:MCP2515, контроллер CAN шины с интерфейсом SPIСкачать
Основной режим программирования
Программирование параметров осуществляется с помощью сервисной кнопки в соответствии со схемой, отображающей меню программирования.
Видео:лекция 403 CAN шина- введениеСкачать
Вход в основной режим программирования
Для входа в режим программирования выполните следующие действия:
Отключите питание охранного комплекса.
Нажмите и удерживайте сервисную кнопку, подайте питание на комплекс. Последуют 5 звуковых сигналов, во время которых продолжайте удерживать сервисную кнопку.
После прекращения звуковых сигналов отпустите сервисную кнопку. Последуют 4 коротких звуковых сигнала, подтверждающих переход системы в режим программирования.
Видео:13 Программирование по шине CANСкачать
Выбор номера автомобиля
Все автомобили, поддерживаемые модулем, зарегистрированы в библиотеке протоколов под уникальными 4-значными номерами. Эти номера Вы можете посмотреть на сайте can.starline.ru. После установки необходимо записать в память охранного комплекса номер, соответствующий вашему автомобилю.
Для записи уникального 4-значного номера выполните следующие действия:
Войдите в режим программирования и однократным нажатием на сервисную кнопку выберите первый раздел меню программирования. Один звуковой сигнал подтвердит выбор первого раздела меню.
Нажмите сервисную кнопку число раз, соответствующее первой цифре номера автомобиля. Система подтвердит ввод значения серией звуковых сигналов, количество которых будет соответствовать первой цифре номера автомобиля.
Аналогично введите остальные цифры номера автомобиля, дожидаясь звукового подтверждения охранного комплекса после ввода каждой цифры.
Если сервисная кнопка будет нажата более 9 раз, система выдаст 4 коротких звуковых сигнала и вернется в основное меню программирования.
Через 2 секунды после подтверждения ввода последней цифры номера автомобиля, система выдаст одну из серий звуковых сигналов:
- 2 коротких сигнала — номер введен правильно и записан в память охранного комплекса;
- 4 коротких сигнала — произошла ошибка, введенный номер сохранен не будет.
После завершения ввода номера автомобиля (независимо от результата) будет осуществлен переход в основное меню программирования.
Если при вводе очередной цифры номера сервисная кнопка не будет нажата в течение 5 секунд, то произойдет переход в основное меню программирования. Комплекс оповестит об этом 4 короткими звуковыми сигналами. При изменении номера автомобиля значения параметров, установленные ранее в процессе программирования модуля, сохраняются.
Видео:Поиск уровня топлива в CAN шине Toyota Camry 2017Скачать
Последовательность программирования
Для того, чтобы реализовать необходимые функции через цифровые шины автомобиля выполните программирование модуля:
Выберите необходимый раздел основного меню программирования, нажав сервисную кнопку число раз, соответствующее номеру раздела меню. Выбор будет подтвержден серий звуковых сигналов.
Затем аналогичным способом выберите необходимый параметр.
Если сервисная кнопка будет нажата число раз, превышающее количество пунктов меню программирования, то система выдаст 4 коротких звуковых сигнала и останется в основном меню программирования. Если в течении 10 секунд после входа в режим программирования не будет выбран ни один из параметров, система выдаст 4 длинных звуковых сигнала оповещения и вернется в штатный режим работы.
Для определения текущего состояния выбранного параметра дождитесь выдачи звуковых сигналов, количество которых будет соответствовать значению параметра. При необходимости можно перейти к изменению состояния параметра сразу же после его выбора, не дожидаясь сигналов оповещения о текущем состоянии.
Нажмите сервисную кнопку число раз, соответствующее значению требуемого состояния параметра. Через 2 секунды после окончания установки прозвучит серия звуковых сигналов, количество которых будет соответствовать состоянию параметра (1 звуковой сигнал — включен, 2 звуковых сигнала — отключен). Еще через 2 секунды последуют 2 коротких звуковых сигнала, означающих, что состояние параметра было успешно изменено и осуществлен переход в меню выбранного пункта.
Если сервисная кнопка будет нажата более 3 раз или если в течение 5 секунд после входа в подпункт меню значение параметра не будет установлено, то система выдаст 4 коротких звуковых сигнала и вернется в меню выбранного пункта.
Для перехода к программированию следующего параметра повторите действия, изложенные в пп.2. 4, с выбором пункта меню и изменением его состояния.
Видео:Arduino CAN Sender ( Ардуино отправка пакетов в КАН шину)Скачать
Пример программирования модуля в основном режиме
Задача: требуется провести согласование модуля с шиной автомобиля Lada Granta 2011 года выпуска и запретить передачу сигналов «стояночный тормоз» и «зажигание» из цифровых шин автомобиля.
Последовательность программирования:
- Войдите в режим программирования:
• отключите питание охранного комплекса;
• нажмите сервисную кнопку и, удерживая ее, подайте питание на охранный комплекс;
• отпустите сервисную кнопку после прекращения сигналов сирены;
• убедитесь в выдаче 4 длинных звуковых сигналов. - Осуществите ввод номера автомобиля в память охранного комплекса:
• нажмите сервисную кнопку коротко один раз — раздастся один звуковой сигнал, извещающий о готовности к вводу номера;
• введите номер автомобиля 7111 (см. справочную таблицу на сайте can.starline.ru):
• нажмите сервисную кнопку 7 раз — убедитесь в выдаче 7 звуковых сигналов;
• нажмите сервисную кнопку 1 раз — убедитесь в выдаче 1 звукового сигнала;
• нажмите сервисную кнопку 1 раз — убедитесь в выдаче 1 звукового сигнала;
• нажмите сервисную кнопку 1 раз — убедитесь в выдаче 1 звукового сигнала;
• проконтролируйте выдачу 2 коротких звуковых сигналов, свидетельствующих об успешной записи номера в память охранного комплекса, после подтверждения ввода последней цифры номера. - Отключите сигналы «стояночный тормоз/паркинг» и «зажигание»:
• выберите раздел «Статусные функции» меню программирования — нажмите сервисную кнопку 2 раза подряд и убедитесь в выдаче 2 звуковых сигналов;
• выберите параметр «Стояночный тормоз/паркинг» — нажмите сервисную кнопку 2 раза подряд и убедитесь в выдаче 2 звуковых сигналов;
• дождитесь звукового сигнала оповещения о текущем состоянии параметра (1 сигнал — стояночный тормоз, 2 сигнала — паркинг, 3 — отключен);
• отключите сигнал «стояночный тормоз/паркинг», нажав сервисную кнопку 3 раза и убедитесь в выдаче 3 звуковых сигналов подтверждения;
• проконтролируйте выдачу 2 коротких звуковых сигналов, свидетельствующих об успешном изменении состояния функции;
• выберите параметр «Зажигание» меню программирования — нажмите сервисную кнопку 4 раза подряд и убедитесь в выдаче 4 звуковых сигналов;
• дождитесь звукового сигнала оповещения о текущем состоянии параметра (1 сигнал — включен, 2 сигнала — отключен);
• отключите сигнал «зажигание», нажав сервисную кнопку 2 раза и убедившись в выдаче 2 звуковых сигналов подтверждения;
• проконтролируйте выдачу 2 коротких звуковых сигналов, свидетельствующих об успешном изменении состояния функции;
• дождитесь выдачи двух серий 4 звуковых сигналов оповещения о выходе из режима программирования.
Читайте также: Виктория никитина шин год рождения
Видео:Подробно про CAN шинуСкачать
Дополнительный режим программирования
Используйте дополнительный режим программирования для изменения установленных параметров, когда номер автомобиля уже записан в память охранного комплекса.
Вход в дополнительный режим программирования:
При выключенном зажигании нажмите сервисную кнопку 15 раз.
Включите зажигание не позднее, чем через 5 секунд после последнего нажатия сервисной кнопки.
Дождитесь 4 длинных звуковых сигналов сирены, извещающих о переходе системы в режим программирования.
Дальнейшие действия по выбору и изменению функций (кроме выбора автомобиля) выполняются аналогично основному режиму программирования. При выборе первого пункта возможен только просмотр номера автомобиля с помощью звуковых сигналов сирены, каждой цифре номера соответствует такое же количество сигналов.
Выход из программирования осуществляется автоматически через 10 секунд после последнего сигнала сирены.
Видео:CAN шина👏 Как это работаетСкачать
Хакаем CAN шину авто. Мобильное приложение вместо панели приборов
Я продолжаю изучать CAN шину авто. В предыдущих статьях я голосом открывал окна в машине и собирал виртуальную панель приборов на RPi. Теперь я разрабатываю мобильное приложение VAG Virtual Cockpit, которое должно полностью заменить приборную панель любой модели VW/Audi/Skoda/Seat. Работает оно так: телефон подключается к ELM327 адаптеру по Wi-Fi или Bluetooth и отправляет диагностические запросы в CAN шину, в ответ получает информацию о датчиках.
По ходу разработки мобильного приложения пришлось узнать, что разные электронные блоки управления (двигателя, трансмиссии, приборной панели и др.) подключенные к CAN шине могут использовать разные протоколы для диагностики, а именно UDS и KWP2000 в обертке из VW Transport Protocol 2.0.
Программный сниффер VCDS
Чтобы узнать по какому протоколу общаются электронные блоки я использовал специальную версию VCDS с программным сниффером в комплекте. В этот раз никаких железных снифферов на Arduino или RPi не пришлось изобретать. С помощью CAN-Sniffer можно подсмотреть общение между VCDS и автомобилем, чтобы затем телефон мог прикинуться диагностической утилитой и отправлять те же самые запросы.
Я собрал некоторую статистику по использованию диагностических протоколов на разных моделях автомобилей:
VW/Skoda/Seat (2006-2012) — приборная панель UDS. Двигатель и трансмиссия VW TP 2.0
Audi (2006-2012) — приборная панель VW TP 2.0. Двигатель UDS. Трансмиссия VW TP 2.0
VW/Skoda/Seat/Audi (2012-2021) — везде UDS
Видео:Как управлять автомобилем через CAN-шину?Скачать
Протокол UDS
Unified Diagnostic Services (UDS) — это диагностический протокол, используемый в электронных блоках управления (ЭБУ) автомобильной электроники. Протокол описан в стандарте ISO 14229-1 и является производным от стандарта ISO 14230-3 (KWP2000) и ныне устаревшего стандарта ISO 15765-3 (Diagnostic Communication over Controller Area Network (DoCAN)). Более подробно в википедии.
Читайте также: Ушк шины в уфе
Диагностические данные от двигателя по протоколу UDS (Skoda Octavia A7)
В моей машине (Skoda Octavia A5) приборка использует UDS протокол, это дало мне легкий старт разработки, т.к. данные были в простом формате Single Frame SF (фрейм, вся информация которого умещается в один CAN пакет) и большинство значений легко поддавались расшифровке. Volkswagen не дает документацию на формат значений, поэтому формулу расшифровки для каждого датчика приходилось подбирать методом логического мышления. Про UDS протокол очень хорошо и с подробным разбором фреймов написано на canhacker.ru.
Разбор UDS пакета в формате Single Frame
Пример запроса и ответа температуры моторного масла:
Запрос температуры моторного масла:
7E0 — Адрес назначения (ЭБУ двигателя)
Байт 0 (0x03) — Размер данных (3 байта)
Байт 1 (0x22) — SID идентификатор сервиса (запрос текущих параметров)
Байт 2, 3 (0x11 0xBD) — PID идентификатор параметра (температура моторного масла)
Байт 4, 5, 6, 7 (0x55) — Заполнитель до 8 байт
Ответ температуры моторного масла:
7E8 — Адрес источника (Диагностический прибор)
Байт 0 (0x05) — Размер данных (5 байт)
Байт 1 (0x62) — Положительный ответ, такой SID существует. 0x22 + 0x40 = 0x62. (0x7F) — отрицательный ответ
Байт 2, 3 (0x11 0xBD) — PID идентификатор параметра (температура моторного масла)
Байт 4, 5 (0x0B 0x74) — значение температуры моторного масла (20.1 °C формулу пока что не смог подобрать)
Байт 6, 7 (0x55) — Заполнитель до 8 байт
Первая версия мобильного приложения VAG Virtual Cockpit умела подключаться только к приборной панели по UDS.
VAG Virtual Cockpit — экран с данными от приборной панели по протоколу UDS
Видео:Универсальная плата CAN шиныСкачать
VW Transport Protocol 2.0
Volkswagen Transport Protocol 2.0 используется в качестве транспортного уровня, а данные передаются в формате KWP2000. Keyword Protocol 2000 — это протокол для бортовой диагностики автомобиля стандартизированный как ISO 14230. Прикладной уровень описан в стандарте ISO 14230-3. Более подробно в википедии.
Т.к. KWP2000 использует сообщения переменной длины, а CAN шина позволяет передавать сообщения не больше 8 байт, то VW TP 2.0 разбивает длинное сообщение KWP2000 на части при отправке по CAN шине и собирает заново при получении.
Диагностические данные от двигателя по протоколу KWP2000 (Skoda Octavia A5)
ЭБУ двигателя моей машины использует протокол VW TP 2.0, поэтому мне пришлось изучить его. Видимо Volkswagen разрабатывала транспортный протокол не только для работы по надежной CAN шине, но и для менее надежных линий связи, иначе нет объяснения для чего требуется такая избыточная проверка целостности данных. Главным источником информации по VW TP 2.0 является сайт https://jazdw.net/tp20.
Разбор протокола VW TP 2.0 на примере подключения к первой группе двигателя:
Настраиваем канал с двигателем. Байт 0: 0x01 — двигатель, 0x02 — трансмиссия. Байт 5,4: 0x300 — адрес источника
Получили положительный ответ. Байт 5,4: 0x740 — к двигателю обращаемся по этому адресу
Настраиваем ЭБУ на отправку сразу 16 пакетов и выставляем временные параметры
Получили положительный ответ
Отправляем команду KWP2000 startDiagnosticSession. Байт 0: 0x10 = 0b0001 — последняя строка данных + 0x0 счетчик отправляемых пакетов 0 (0x0 — 0xF)
Получили положительный ответ. Байт 0: 0x10 — cчетчик принимаемых пакетов 0
Мы отправили первый ACK, что получили ответ
Делаем запрос. Байт 0: 0x11 — счетчик отправляемых пакетов 1. Байт 3: 0x21 — запрос параметров. Байт 4: 0x01 — из группы 1
300 22 00 1A 61 01 01 C8 13
Байт 0: 0x22 — 0b0010 (не последняя строка данных) + 0x02 (cчетчик принимаемых пакетов 2). Байт 1,2: 0x00 0x1A длина 26 байт. Байт 3,4: 0x61 0x01 — положительный ответ на команду запроса параметров 0x21+0x40=0x61 из 0x1 группы. Байт 5: 0х01 — Запрос RPM (соответсвует протоколу KW1281). Байт 6,7: (0xC8 * 0x13)/5 = 760 RPM (формула соответствует протоколу KW1281)
300 23 05 0A 99 14 32 86 10
Байт 1: 0x05 — запрос ОЖ. Байт 2,3: (0x0A * 0x99)/26 = 57.0 C. Байт 4: 0x14 = запрос лямбда контроль %. Байт 5,6: 0x32*0x86; Байт 7: 0х10 — двоичная настройка
300 24 FF BE 25 00 00 25 00
Читайте также: Мерседес 126 кузов размер шин
0x25 0x00 x00 — Заполнитель, до 8 параметров
300 15 00 25 00 00 25 00 00
Байт 0: 0x15 — 0b0001 (последняя строка данных) + 0x5 (счетчик принимаемых пакетов 5)
Отправляем ACK. Прибывляем к нашему предыдущему ACK количество полученных пакетов 0xB1 + 0x4 = 0xB5
Запрос KeepAlive, что мы еще на связи
ЭБУ в ответ тоже разрывает связь
Во второй версии мобильного приложения VAG Virtual Cockpit появилась возможность диагностировать двигатель и трансмиссию по протоколу VW TP 2.0.
VAG Virtual Cockpit — экран с данными от двигателя по протоколу VW TP 2.0
Видео:Видеоинструкция по настройке CAN шины сигнализации с помощью приложение StarLine Master с телефона.Скачать
Диагностический адаптер ELM327
Для меня некоторое время было вопросом, как получить данные из CAN шины и передать на телефон. Можно было бы разработать собственный шлюз с Wi-Fi или Bluetooth, как это делают производители сигнализаций, например Starline. Но изучив документацию на популярный автомобильный сканер ELM327 понял, что его можно настроить с помощью AT команд на доступ к CAN шине.
Копия диагностического сканера ELM327 Не все ELM327 одинаково полезны
Оригинальный ELM327 от компании elmelectronics стоит порядка 50$, в России я таких не встречал в продаже. У нас продаются только китайские копии/подделки, разного качества и цены 10-30$. Бывают полноценные копии, которые поддерживают все протоколы, а бывают и те которые умеют отвечать только на несколько команд, остальные игнорируют, такие адаптеры не имеют доступ к CAN шине. Я например пользуюсь копией Viecar BLE 4.0, который поддерживает 100% всех функций оригинала.
Для работы с протоколом UDS через ELM327 нужно указать адреса назначения, источника и разрешить длинные 8 байтные сообщения, по умолчанию пропускается максимум 7 байт.
Последовательность ELM327 AT команд для работы с UDS по CAN шине:
Для работы с протоколом KWP2000 через ELM327 нужно только указать адреса назначения и источника.
Последовательность ELM327 AT команд для работы с VW TP 2.0 по CAN шине:
Видео:#10. Как отправлять сообщения и команды в CAN-шину для управления автомобилем?Скачать
Мобильное приложение VAG Virtual Cockpit
Для разработки мобильного приложения подключаемого к автомобилю требовалось:
Сниффером собрать трафик от диагностической утилиты VCDS
Изучить работу протоколов UDS, VW TP 2.0, KWP2000
Настроить диагностический сканер ELM327 на работу с UDS и VW TP 2.0
Изучить новый для меня язык программирования Swift
Мобильное приложение VAG Virtual Cockpit для iOS
В итоге получилось приложение, которое сочетает в себе функции отображения точных данных панели приборов и диагностика основных параметров двигателя и трансмиссии.
Пару слов про точность данных. Штатная панель приборов не точно показывает скорость — завышает показания на 5-10 км/ч, стрелка охлаждающей жидкости всегда на 90 °C, хотя реальная температура может быть 80 — 110 °C, стрелка уровня топлива до середины идет медленно, хотя топлива уже меньше половины и при нуле на самом деле топливо еще есть в баке. Производитель это делает для удобства и безопасности водителя.
На данный момент приложение показывает следующие параметры:
Приборная панель
Трансмиссия (температура)
1) Какая дверь открыта
2) Скорость
3) Обороты
4) Температура масла
5) Температура ОЖ
6) Топливо в баке в л.
7) Запас хода в км.
8) Средний расход
9) Время в машине
10) Пробег
11) Температура за бортом
1) Обороты
2) Массовый расход воздуха
3) Температура забора воздуха
4) Температура выхлопа (рассчитанная)
5) Критический уровень масла
6) Уровень масла
7) Наддув турбины (реальный)
8) Наддув турбины (ожидаемый)
9) Пропуски зажигания в цилиндрах
10) Углы откатов зажигания в цилиндрах
1) ATF AISIN (G93)
2) DSG6 (G93)
3) Блок управления DSG6 (G510)
4) Масло диска сцепления DSG6 (G509)
5) Мехатроник DSG7 (G510)
6) Процессор DSG7
7) Диск сцепления DSG7
Я стремлюсь чтобы приложение поддерживало как можно больше моделей автомобилей. Пока что поддерживаются производители: Volkswagen, Skoda, Seat, Audi. На разных комплектациях могут отображаться не все параметры, но это поправимо.
Сейчас я провожу тестирование версии 3.0. Приложение доступно только на iOS, после релиза 3.0 перейду к разработке версии для Android.
Если интересно потестировать и есть желание принять участие в проекте, то установить приложение можно по ссылке. Также я веду бортжурнал на drive2.ru, где делюсь полезной информацией и новостями о VAG Virtual Cockpit.
- Свежие записи
- Нужно ли менять пружины при замене амортизаторов
- Скрипят амортизаторы на машине что делать
- Из чего состоит стойка амортизатора передняя
- Чем стянуть пружину амортизатора без стяжек
- Для чего нужны амортизаторы в автомобиле
🔥 Видео
Блокировка can-шины в фаре Toyota/Lexus. Шок для опытных установщиков. Зачем думать и читать схемыСкачать
STM32 CAN шина. Часть 1. Настройка и странности HALСкачать
CAN-шина, простой поиск данных в кан шине автомобиля. Как расшифровать и найти данные в кан шине?Скачать
CAN Hacker своими руками пример чтения кан шины с помощью ARDUINO MCP2515Скачать
Передача данных через CAN шину #MCP2515 #ARDUINO #DS18B20 #GALILEOSKY7 #EASYLOGIC #ПРОГРАММИРОВАНИЕСкачать
Arduino CAN Monitor (простейший монитор шины CAN)Скачать
Как проверить CAN шину Используем симулятор ElectudeСкачать
STM32 CAN шина. Часть 2. Фильтрация и демонстрация работыСкачать
Шина CAN. Часть 1. Разбираемся как работает CAN bus, разберем кадр данных до "костей".Скачать