CAN – полное название Controller Area Network, был разработан в далеких 80 х годах. Получил обширное применение среди электронной техники, и широко используется в автомобильной проводке в настоящее время. Система устроена так, что главный компьютер посылает сигналы на устройства исполнители для обмена данными.
Импульсы могут передаваться последовательно или параллельно, сразу по всем проводам. На практике, обычно применяется “последовательная шина”, её скорость составляет 1 Мбит в секунду и этого более достаточно. По витой паре приходит вся нужная информация об автомобиле, по шине можно управлять отдельными блоками. Правила по которым идет обмен данных – называются протоколом.
Протокол может посылать импульс на отдельный блок для запроса, или для всей сети сразу. Отправка протоколов идет в обоих направлениях. К примеру можно включить камеру заднего хода и получить ответ, работает она или нет. Значительно упрощается система диагностики электрической цепи авто.
TEYES CANBUS на Лада
Изначально, с момента выхода новой модели АвтоВаза, никто из производителей автоэлектроники не сделал для них каны. Первые провода с канбас для Vesta были разработаны компанией Teyes в 2020 году. На создание ушло пол года разработки и силы в содружестве с китайцами и русскими. Автомобиль был полностью просканирован, записаны все протоколы для нового канбуса. Вышло две версии – ver. 1.0; 1.1.
Как отследить что делает программа на компьютере.
Различие версий будет ниже в таблице.
Приложение Vesta Info
Это программа для отображения данных машины на экране магнитол. Детально смотрите, что происходит с вашим автомобилем. Очень красивый дизайн получился.
- Климатическая установка, вывод данных оригинальной климат-системы.
- Меню вождение. Здесь показания тахометра, спидометра, одометра (пробега), температуры двигателя, расход топлива. Данные коробки передач с АКПП.
- Работает со штатной камерой парковки, при повороте руля линии разметки динамически поворачиваются на мониторе. Угол поворота руля синхронизируется по кан.
Сравнение Канбус Веста 1.0 и 1.1
Кнопки на руле | поддерживает | поддерживает |
Динамическая разметка линий задней камеры | есть | есть |
Климат контроль | всплывающее окно | отдельный статический интерфейс |
Открытие дверей | есть | есть |
Приложение Vesta Info | нет | есть |
Внешние приборы освещения | нет | отдельный статический интерфейс |
Интерфейс вождения | нет | отдельный статический интерфейс |
Ошибки неисправности | нет | отображение кода ошибок |
Настройка CAN с обучением на магнитоле
После подключения Canbus, его нужно настроить. Необходимо подключить устройство к интернет и зайти в приложение Teyes. Последовательно загрузить 4 файла (см. картинку 2). Затем открыть менеджер файлов и установить скаченные файлы apk. Далее меню – устройство – настройка canbus – выбрать значения, как указано здесь.
Плюсы и минусы
Важно, при покупке магнитолы Teyes для Весты, в комплекте будет простой провод, без адаптера, вы можете использовать его. Поддержка оригинальных камеры и кнопок руля 100%+юсб и аух. Все будет работать. Минус таких проводов – никакой информации, типа закрытия дверей, динамики камеры, климат. У новых проводов больше плюсов, вся информация по машине будет на красивом экране.
По своему желанию докупите необходимый провод в нашем магазине.
Проводка питания для Lada Vesta Лада Веста Enjoy 2021+ (CANBUS Teyes 1.0)
Проводка питания для Lada Vesta Лада Веста 2015-2021 (CANBUS Teyes 1.0)
Проводка питания для Lada Vesta Лада Веста Enjoy 2021+ (CANBUS Teyes 1.1)
Проводка питания для Lada Vesta Лада Веста 2015-2021
Популярные статьи
Сравнение Teyes CC3 / CC2 Plus / X1 / TPRO2
Выбираем магнитолу. Посмотрите нашу таблицу сравнения, в ней самые актуальные характеристики.
30 ноября, 2022 г.
Teyes Voice Голосовое управление
Подробно о голосовом помощнике в магнитоле. Как активировать, показываем список команд и возможности Teyes Voice.
24 апреля, 2023 г.
Отзыв о магнитоле Teyes X1 4G
Реальные отзывы об автомагнитоле Teyes X1 4G от владельца. Рассказываем о характеристиках Teyes X1 4G на android
3 апреля, 2023 г.
5 Причин купить магнитолу Teyes CC2 Plus
Перейдите на Teyes CC2 Plus, мощную и универсальную систему, которая предлагает множество функций для улучшения вашего вождения.
30 марта, 2023 г.
Почему Android магнитолы Teyes пользуются популярностью?
Отчего постоянно растет популярность Android-магнитолы Teyes? Очевидны три составляющие успеха, которыми характеризуется бренд: преимущество OS Android; возможности, которыми обладает сама магнитола. Рассмотрим все эти достоинства по порядку.
1 февраля, 2023 г.
RCA кабель CC3/CC2/X1. Полный обзор.
Аудио кабели RCA являются неотъемлемой составляющей в подключении магнитол Teyes. Подробно разберем их применение и разновидности для Android магнитолы.
26 января, 2023 г.
- Доставка
- Способы оплаты
- Акции
- Возврат, обмен и гарантия
- Кредит
- Вопросы и ответы
- Установка магнитолы
Источник: tuningstore96.ru
Хакаем 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
Протокол UDS
Unified Diagnostic Services (UDS) — это диагностический протокол, используемый в электронных блоках управления (ЭБУ) автомобильной электроники. Протокол описан в стандарте ISO 14229-1 и является производным от стандарта ISO 14230-3 (KWP2000) и ныне устаревшего стандарта ISO 15765-3 (Diagnostic Communication over Controller Area Network (DoCAN)). Более подробно в википедии.
В моей машине (Skoda Octavia A5) приборка использует UDS протокол, это дало мне легкий старт разработки, т.к. данные были в простом формате Single Frame SF (фрейм, вся информация которого умещается в один CAN пакет) и большинство значений легко поддавались расшифровке. Volkswagen не дает документацию на формат значений, поэтому формулу расшифровки для каждого датчика приходилось подбирать методом логического мышления. Про UDS протокол очень хорошо и с подробным разбором фреймов написано на canhacker.ru.
Пример запроса и ответа температуры моторного масла:
7E0 0x03 0x22 0x11 0xBD 0x55 0x55 0x55 0x55 7E8 0x05 0x62 0x11 0xBD 0x0B 0x74 0x55 0x55
Запрос температуры моторного масла:
- 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.
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 шине и собирает заново при получении.
ЭБУ двигателя моей машины использует протокол VW TP 2.0, поэтому мне пришлось изучить его. Видимо Volkswagen разрабатывала транспортный протокол не только для работы по надежной CAN шине, но и для менее надежных линий связи, иначе нет объяснения для чего требуется такая избыточная проверка целостности данных. Главным источником информации по VW TP 2.0 является сайт https://jazdw.net/tp20.
Разбор протокола VW TP 2.0 на примере подключения к первой группе двигателя:
200 01 C0 00 10 00 03 01
Настраиваем канал с двигателем. Байт 0: 0x01 — двигатель, 0x02 — трансмиссия. Байт 5,4: 0x300 — адрес источника
201 00 D0 00 03 40 07 01
Получили положительный ответ. Байт 5,4: 0x740 — к двигателю обращаемся по этому адресу
740 A0 0F 8A FF 32 FF
Настраиваем ЭБУ на отправку сразу 16 пакетов и выставляем временные параметры
300 A1 0F 8A FF 4A FF
Получили положительный ответ
740 10 00 02 10 89
Отправляем команду KWP2000 startDiagnosticSession. Байт 0: 0x10 = 0b0001 — последняя строка данных + 0x0 счетчик отправляемых пакетов 0 (0x0 — 0xF)
Получили первый ACK
300 10 00 02 50 89
Получили положительный ответ. Байт 0: 0x10 — cчетчик принимаемых пакетов 0
Работа с CAN
Настройка скорости работы каналов CAN
Настройка скоростей каналов CAN осуществляется на вкладках Chanel 1: CAN и Chanel 2.
Доступны как предустановленные скорости так и возможность пользовательской настройки.
Выбор предустановленных скоростей осуществляется простым выбором нужной скорости из выпадающего списка Channel baudrate.
Пользовательская скорость задается выбором позиции Custom baudrate в выпадающем списке Channel baudrate
В появившемся поле ввода Custom baudrate необходимо ввести требуемое значение скорости канала CAN. После ввода скорости автоматически будет произведена попытка расчета делителя тактовой частоты CAN контроллера. Если делитель тактовой будет являться целым числом то введенное значение будет отображаться на белом фоне и после нажатия кнопки ОК, канал CAN будет работать на заданной скорости.
Если же введенное значение скорости не позволяет рассчитать целочисленный делитель, то введенное значение будет подсвечено красным цветом.
В этом случае необходимо установить флаг Low accuracy и CARBUS Analyzer настроит скорость канала CAN максимально близко к введенному значению. Для того чтобы узнать расчитанное приближенное значение необходимо нажать кнопку “?”
После настройки скоростей CAN нажимаем кнопку ОК, настройки будут переданы в интерфейс и меню Settings закроется.
После настройки CAN адаптера и CAN каналов в верхнем меню нажать Connect
Прием пакетов
Для работы с CAN фильтрами используйте вкладку в правой части CARBUS Analyzer. Если вы используете монитор с узким экраном, то для вызова окна настройки фильтров нажмите иконку в виде воронки в верхнем меню программы.
Для двухканальных CAN интерфейсов фильтры с 0 по 12 относятся к CAN каналу 1. Фильтры с 13 по 28 относятся к CAN каналу 2.
Для одноканальных интерфейсов (например CH-OBD.M02) все 28 CAN фильтров относятся к одному каналу CAN.
Соответствие фильтров и CAN каналов отражено в колонке CH таблицы фильтров.
Каждый фильтр и маска могут принимать либо 11 битное либо 29 битное значение. Выбирайте нужный тип исходя из того, какой тип ID Вы хотите добавить в таблицу.
Для настройки фильтра дважды щелкните по нему, что вызовет окно настройки выбранного фильтра.
Если Вы хотите использовать 29-битный – установите флаг 29 bit filter
Задав значение маски и кода фильтра установите флаг Enable Filter и нажмите Set. В таблице фильтров активный фильтр будет выделен установленным флагом напротив него.
Быстрое включениеотключение фильтра возможно при помощи ручной установкиснятия флага напротив фильтра.
Занести нужный ID в таблицу фильтров можно и из окна Receive Monitor или окна Stream.
Для этого необходимо кликнуть правой кнопкой мыши по интересующему ID и в появившемся контекстном меню кликнуть по Add message ID to filter
Принцип задания значений аппаратных фильтров
Принцип настройки CAN фильтров заключается в том, что биты маски указывают на то какие биты поступающего в фильтр ID необходимо учитывать, а значение кода фильтра (поле Filter) указывает на то чему эти указанные маской биты должны бить равны.
Пример:
ID = 7E0 HEX 111 1110 0000 BIN
Mask = 7FF HEX 111 1111 1111 BIN
В этом примере, мы говорим CAN контроллеру что необходимо учитывать все 11 бит принимаемого ID, и эти биты должны быть равны = 111 1110 0000 BIN или 7E0.
Таким образом фильтр будет настроен на прием только пакетов имеющих >
Если в этом примере в значении маски заменить последние четыре бита на нули, маска примет вид Mask = 7F0 HEX 111 1111 0000 BIN, то мы скажем CAN контроллеру, что нас не интересуют последние четыре бита (половина байта) принятого ID и приниматься будут все пакеты в диапазоне ID от 7E0 до 7EF.
Если задать значение маски и фильтра равным 00000000, то приниматься будут вообще все пакеты. Если хотя бы один фильтр CAN канала сконфигурирован таким образом, то остальные фильтры этого канала не будут иметь эффекта.
Пропускать только пакеты с ID =0x7E8
ID = 7E8 HEX 111 1110 1000 BIN
Mask = 7FF HEX 111 1111 1111 BIN
Пропускать все пакеты у ID которых девятый бит=1
(1xx, 3xx,5xx, 7xx, где xx—любое число от 0 до FF)
ID = 100 HEX
Mask = 100 HEX
Для 29-битных ID логика та же самая, при этом длина значения фильтра и маски становятся 29-битными.
Например:
Пропускать только пакеты имеющий 29-битный /> ID = 0x00000333
Mask = 1FFFFFFF
При этом важно понимать, что тип фильтра (11 или 29 бит) зависит не от величины значения фильтра или маски, а зависит от специального флага устанавливаемого CAN контроллером, поэтом ID могут быть:
0x00000333 – 29 бит
0x333 – 11 бит
ВАЖНО: Если все фильтры отключены, то первые фильтры каждого CAN канала настроены на пропускание всех входящих пакетов.
Работа с программным фильтром на диапазон ID
Для записи потока (Трейса) нажмите в верхнем меню Stream
В открывшимся окне вы сможете записывать поток CAN пакетов последовательно. Для начала записи необходимо нажать кнопку – красный круг. Для остановки кнопки – синий квадрат. (красный круг принимает вид синего квадрата после начала записи и наоборот)
Для сохранения и загрузки трейсов служат крайне праве кнопки в верхнем меню, они отмечены красным прямоугольником на фото выше. Для переключение в режим CAN монитора нажмите кнопку Monitor в верхнем меню.
Для воспроизведение сохраненного потока (трейса) нажмите верхнем меню кнопку Tracer
В открывшимся окне загрузите сохраненный файл потока (трейс) и выберите в списке Only for Channel канал данные которого будут использоваться в работе. Это необходимо для того в случае если поток писался одновременно с двух каналов.
Выберите в какой канал вы хотите передавать пакеты из сохраненного потока как на рисунке выше. При выборе опции To Monitor пакеты из трейса будут транслироваться в окно монитора и не будут передаваться в шину CAN физически.
Кнопками PlayStop, Step и Repeat, которые имеют соответствующие графические изображения в верхнем меню, Вы сможете управлять воспроизведением потока.
В правой части окна трейсера можно отмечать флажками ID пакетов которые вы хотите воспроизвести.
Щелчок правой кнопки мыши по этому окну позволяет выполнять групповые операции с таблицей идентификаторов.
Для управления скоростью воспроизведения трейса необходимо нажать иконку таймера задержек, как на изображении ниже, и выбрать необходимую задержку между пакетами.
Режим CAN шлюза
Режим CAN шлюза (CAN Gateway) доступен для двухканальный CAN интерфейсов. Настройки CAN шлюза находятся на вкладке настройки CAN фильтров.
Флаг Transmit CAN1=>CAN2 включает проброс пакетов из канала 1 в канал 2.
Флаг Transmit CAN2=>CAN1 включает проброс пакетов из канала 2 в канал 1.
CAN Bomber
CAN Bomber – это встроенный инструмент который позволяет передавать пакеты в CAN шину с перебором ID и данных. Для перехода в режим Bomber необходимо кликнуть по соответствующей вкладке в нижней части формы программы.
В полях ID from и To задается диапазон перебора ID. Для перебора 29 битных ID необходимо установить флаг 29 bit, находящийся чуть ниже под выпадающим списком Channel.
Режим работы Bomber задается в выпадающем списке Mode. Доступны следующие режимы:
– ID Counter – перебор ID c инкрементом +1
– ID List – перебор ID по списку
– Data counter – перебор байтов данных с фиксированным ID
– Data counter with shift – перебор данных с переносом влево.
Самый просто режим это ID Counter. В этом режиме осуществляется передача пакета с фиксированными данными и перебором ID в заданном диапазоне с инкрементом +1.
Более сложный режим – это ID List. В этом режиме передача пакета с фиксированными данными осуществляется с ID находящимися в таблице Unique ID List – это список ID для перебора. Добавить ID в таблицу можно вручную, из файла или скопировать все ID из окна Receive Monitor. Выбор способа добавления доступен если кликнуть правой кнопкой мыши по таблице Unique ID List
Для ручного добавления ID нажимаем Add ID. Для удаления – Delete ID
Для добавления ВСЕХ ID из окна принятых пакетов в выпадающем меню выбираем From receive monitor
Перебор начинается после нажатия кнопки Run. Перебор идет с периодом заданным в поле Period. С каждым ID передается количество пакетов заданное в поле Msg per step.
Для перебора данных выбирается режим Data counter или Data counter with shift.
В режиме Data counter осуществляется отправка пакета с фиксированным ID и с инкрементом отмеченных флагами байт данных. Инкремент осуществляется на величину указанную в строке Increment=>, индивидуально для каждого байта данных.
В режиме Data counter with shift осуществляется инкремент на заданное значение отмеченных байтов данных. При этом если более правый отмеченный байт переходит через FF, то инкрементируется на +1 отмеченный байт находящийся левее. Так можно перебрать все возможные комбинации байт данных в пакете.
В режиме Bomber присутствует возможность расчета контрольной суммы пакета – CRC. Контрольная сумма применяется на многих автомобилях, и в случае если она не верная, то передаваемые пакеты игнорируются. На автомобилях разных производителей алгоритмы расчета CRC могут отличаться. В Bomber доступно два алгоритма расчета: Toyota (универсальный) и ISO J1850. Режим CRC задается в меню левее Unique ID list.
В режиме Toyota CRC осуществляется сложение по модуля 2 всех отмеченных элементов пакета. А полученное значение вставляется в байт данных выбранный в выпадающем списке Insert CRC to.
В режиме ISO J1850 расчет осуществляется автоматически и полученное значение передается в восьмой байт данных передаваемого пакета.
ВНИМАНИЕ !
Пользуясь программным обеспечением CARBUS Analyzer пользователь безоговорочно принимает правила оказания технической поддержки.
Источник: canhacker.ru