Can bus usb 2 channel распиновка
Устройство, подключаемое к IBM РС совместимому компьютеру через USB интерфейс, предназначено для диагностики и настройки систем управления и сбора данных на основе сети CAN-bus. CAN-bus-USBnp интерфейс, подключенный к современному высокопроизводительному компьютеру, работающему под управлением ОС Windows, позволяет создавать эффективные программно-аппаратные решения для настройки и тестирования CAN-сетей. Устройство особенно удобно в мобильных приложениях совместно с портативными носимыми компьютерами и программой CANwise для тестирования CAN сетей в полевых и промышленных условиях, в том числе для диагностики автотранспортных средств. Устройство может применяться для тестирования и настройки оборудования, в котором используются протоколы верхнего уровня J1939 и CANopen при работе совместно с подгружаемыми модулями программы CANwise.
Устройство является альтернативой CAN контроллерам в формате PCMCI.
Основные характеристики устройства:
Руководство пользователя User Guide
Программное обеспечение:
- библиотека CHAI включает в себя унифицированный драйвер CAN-интерфейсов, текстовый CAN-монитор;
- универсальная программа тестирования и конфигурирования сети CAN с графическим пользовательским интерфейсом CANwise. В бесплатной базовой версии поставляется с подгружаемым модулем монитора CAN сети и рядом модулей для протоколов CANopen и J1939.
Поддерживаются следующие операционные системы: Windows XP/Vista/7/10
Интерфейс CAN-bus-USBnp поддерживает официальный Тест Соответствия CANopen (CANopen Conformance Test) международной организации CAN in Automation (CiA).
Cтоимость изделия: 18 000 руб. c учетом НДС
Заказать разработку и производство электронного устройства можно здесь - КОНТРАКТНОЕ ПРОИЗВОДСТВО "МАРАФОН"
Спроектировать и изготовить высококачественные печатные платы можно здесь - ПРОИЗВОДСТВО ПЕЧАТНЫХ ПЛАТ "МАРАФОН"
В первой статье «Хакаем CAN шину авто для голосового управления» я подключался непосредственно к CAN шине Comfort в двери своего авто и исследовал пролетающий траффик, это позволило определить команды управления стеклоподъемниками, центральным замком и др.
В этой статье я расскажу как собрать свою уникальную виртуальную или цифровую панель приборов и получить данные с любых датчиков в автомобилях группы VAG (Volkswagen, Audi, Seat, Skoda).
Мною был собран новый CAN сниффер и CAN шилд для Raspberry Pi на базе модуля MCP2515 TJA1050 Niren, полученные с их помощью данные я применил в разработке цифровой панели приборов с использованием 7″ дисплея для Raspberry Pi. Помимо простого отображения информации цифровая панель реагирует на кнопки подрулевого переключателя и другие события в машине.
В качестве фреймворка для рисования приборов отлично подошел Kivy для Python. Работает без Иксов и для вывода графики использует GL.
- CAN сниффер из Arduino Uno
- Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)
- Разработка панели приборов на основе Raspberry Pi и 7″ дисплея
- Софт панели приборов на Python и Kivy (UI framework)
- Видео работы цифровой панели приборов на базе Raspberry Pi
CAN сниффер из Arduino Uno
Чтобы послушать, что отправляет VCDS в CAN шину я собрал сниффер на макетке из Arduino и модуля MCP2515 TJA1050 Niren.
Схема подключения следующая:
CanHackerV2 позволяет смотреть пролетающий трафик, записывать и проигрывать команды с заданным интервалом, что очень сильно помогает в анализе данных.
Подслушиваем запросы с помощью диагностической системы VAG-COM (VCDS)
Программно-аппаратный сканер VCDS предназначен для диагностики электронных систем управления, устанавливаемых на автомобилях группы VAG. Доступ ко всем системам: двигатель, ACP, АБС, климат-контроль, кузовая электроника и т.п., считывание и стирание кодов неисправностей, вывод текущих параметров, активация, базовые установки, адаптация, кодирование и т.п.
Подключив сниффер к линиям CAN_L и CAN_H в диагностическом шнурке я смог увидеть какие запросы делает VCDS и что отвечает авто.
Особенность авто группы VAG в том, что OBD2 разъем подключен к CAN шине через шлюз и шлюз не пропускает весь гуляющий по сети трафик, т.е. подключившись в OBD2 разъем сниффером вы ничего не увидите. Чтобы получить данные в OBD2 разъёме нужно отправлять шлюзу специальные запросы. Эти запросы и ответы видно при прослушивании трафика от VCDS. Например вот так можно получить пробег.
В VCDS можно получить информацию почти с любого датчика в машине. Меня в первую очередь интересовала информация, которой вообще нет на моей приборке, это:
- температура масла
- какая именно дверь открыта
Разработка панели приборов на основе Raspberry Pi и 7″ дисплея
В качестве аппаратной части я выбрал Raspberry Pi. Была идея использовать Android планшет, но показалось, что на Raspberry Pi будет проще и быстрее. В итоге докупил официальный 7″ дисплей, и сделал CAN шилд из модуля TJA1050 Niren.
OBD2 штекер использовал от старого ELM327 адаптера.
Используются контакты: CAN_L, CAN_H, +12, GND.
Тесты в машине прошли успешно и теперь нужно было все собрать. Плату дисплея, Raspberry Pi и блок питания разместил на куске черного пластика, очень удачно подобрал пластмассовые втулки, с ними ничего не болтается и надежно закреплено.
Местом установки выбрал бардачок на торпедо, которым я не пользуюсь. По примеркам в него как раз помещается весь бутерброд.
Напильником довел лист черного пластика до размера крышки бардачка, к нему прикрепил бутерброд и дисплей. Для прототипа сойдет, а 3D модель с крышкой для дисплея и всеми нужными крепежами уже в разработке.
Софт панели приборов на Python и Kivy (UI framework)
Параллельно со сборкой самой панели приборов я вел разработку приложения для отображения информации с датчиков. В самом начале я не планировал какой либо дизайн.
Первая версия панели приборов
По мере разработки решил визуализировать данные более наглядно. Хотел гоночный дизайн, а получилось, что-то в стиле 80-х.
Вторая версия панели приборов
Продолжив поиски более современного дизайна я обратил внимание какие цифровые приборки делают автопроизводители и постарался сделать что-то похожее.
Третья версия панели приборов
Ранее, я никогда не разрабатывал графические приложения под Linux поэтому не знал с чего начать. Вариант на вебе простой в разработке, но слишком много лишних компонентов: иксы, браузер, nodejs, хотелось быстрой загрузки. Попробовав Qt PySide2 я понял, что это займет у меня много времени, т.к. мало опыта. Остановился на Kivy — графический фреймворк для Python, простой в понимании с полной библиотекой графических элементов и дающий возможность быстро создать мобильный интерфейс.
Kivy позволяет запускать приложение без Иксов, прямо из консоли, в качестве рендера используется OpenGL. Благодаря этому полная загрузка системы может происходить за 10 секунд.
Алгоритм работы следующий, используется 3 потока:
- В главном потоке работаем с графическими элементы (спидометр, тахометр, часы, температуры и др) на экране
- Во втором потоке каждые 5 мс делаем опрос следующего датчика
- В третьем потоке слушаем CAN шину, получив ответ парсим его и обновляем соответствующий графический элемент
Проект цифровой панель приборов открытый. Рад буду предложениям и комментариям!
Цель этой статьи — рассказать о моём опыте модификации автомобиля и экспериментах с шиной CAN.
Сначала я решил добавить фронтальную камеру в свой 2017 Chevrolet Cruze. Поскольку у автомобиля уже есть заводская камера заднего вида, то на высоком уровне нужно было выяснить две вещи:
- Способ передачи видео с фронтальной камеры, которую я добавлю.
- Способ отображения на экране картинки с камеры заднего вида в любое время.
Запуск на экране оказался более сложным, и после некоторого расследования я пришёл к выводу, что машина должна подавать сигнал от камеры заднего вида на экран через какую-то шину данных.
У Chevrolet две разные шины данных. Первая — это стандартная CAN, быстрая (500 Кбит/с) и надёжная, она используется для критических данных. Вторая — то, что GM называет LAN (GMLAN), более старая и медленная шина (33,3 Кбит/с), которая используется для данных, не связанных с безопасностью.
Мне нужен был способ прослушивать трафик по CAN, то есть снифер. Для этой цели невероятно полезно устройство PCAN.
Peak Can
Поскольку камера заднего вида менее важна для безопасности, чем другие компоненты, я предположил, что искомые данные, скорее всего, будут на шине GMLAN.
Самая простая точка доступа — разъём OBD2. Я подключил Peak Can к шине GMLAN, запустил программное обеспечение — и сразу началось прослушивание трафика.
Впрочем, я не планировал постоянно ездить с ноутбуком. Нужен был способ автоматизировать эти функции — и здесь пригодилась Arduino. Возможность напрямую получать питание 12V в сочетании с большим количеством ресурсов и поддержки в интернете сделала этот выбор очевидным.
В дополнение к Arduino для завершения проекта мне понадобилось два компонента: модуль CAN и модуль реле. По сути, Arduino — это мозг, запускающий и выполняющий код. Модуль CAN предоставляет возможность взаимодействовать с шиной данных, а реле обеспечивает питание фронтальной камеры, а также действует как видеомикшер между ней и камерой заднего вида.
Модуль mcp2515 (сверху), Arduino Uno (посередине), модуль реле (снизу)
После добавления и настройки соответствующих библиотек Arduino установил связь с автомобилем.
Прослушивание трафика через Arduino
Поскольку я уже знал, что могу запустить дисплей, то начал думать о том, КАК это сделать. Первоначальная идея состояла в том, чтобы установить на панели специальную кнопку мгновенного вызова, но я начал думать: «А что ЕЩЁ в сети можно использовать в качестве триггера?»
Распознавание однократного нажатия кнопки
Однако я не хотел, чтобы камера активировалась каждый раз, когда я отменяю круиз-контроль, поэтому я решил, что лучший подход — превратить её (по сути) в многофункциональную кнопку. Камера активируется только в том случае, если кнопка «дважды нажата».
После долгого уикенда изучения функции millis и отладки кода я успешно запрограммировал распознавание двойного нажатия.
Распознавание двойного нажатия
И когда я привязал его к своим командам для управления дисплеем, у меня собралась довольно крутая небольшая утилита.
Двойное нажатие + команды
Теперь у меня была возможность включать и выключать дисплей, но оставалась одна проблема — что насчёт камеры заднего вида? Мне нужно было, чтобы они с фронтальной камерой работали вместе, словно их так настроили на заводе.
На блок-схеме я изобразил, как я это представляю.
Я быстро понял, что для такой системы нужно в любой момент времени знать состояние трёх переменных:
- Модуль передней камеры: водитель включил или выключил его?
- Дисплей камеры: изображение на дисплее включено или выключено?
- Задний ход: автомобиль в реверсе или нет?
В конце концов, я добился успеха!
Активный мониторинг
Теперь я смог реализовать операционную логику, которая контролирует реле.
Управление через реле
На протяжении всего процесса я всё больше узнавал об Arduino и заметил, что версия Nano способна делать всё, что нужно, при этом у неё меньший размер и более низкая цена. Она идеально подходит для постоянной установки в автомобиль. Я разработал модель и распечатал на 3D-принтере корпус для размещения компонентов в качестве компактного блока для установки.
3D корпус
Наконец настал день, когда я увидел результаты. Хотя нужно ещё повозиться с таймингом, но было приятно видеть, что модуль корректно работает.
Включение/выключение режима парковки, включение/выключение фронтальной камеры, автоматическое переключение на камеру заднего вида и автоматическое переключение обратно
В целом, этот опыт меня многому научил и открыл глаза на возможности интеграции непосредственно с шиной CAN. Довольно удивительно, чего можно достичь соединением по двум проводам.
В будущем я планирую написать углублённый учебник о том, как добавить дополнительную функциональность к существующим кнопкам в вашем автомобиле, используя бесплатное программное обеспечение и компоненты.
Сегодня настало время рассказать, как сделать CANBUS с блек джеком и плюшками, своими руками.
Сразу предупреждаю уровень сложности ¬– уметь держать паяльник.
Итак вариант номер 1 с использованием Arduino nano
Вам понадобится
Arduino nano (Arduino mini) ali.onl/1HOI
CAN MCP2515 ali.onl/1HOK
DC-DC преобразователь ali.onl/1HOM
Резистор на 1кОм
Гребенка контактов с шагом 2 мм
Немного текстолита(в лучшем случае)
Если вы поменяли магнитолу и у вас есть Can Bus то скорее всего разъем к нему подходящий он имеет такую распиновку, по крайней мере у меня было так(вид со стороны монтажной части)
Соответственно ответный разъем должен иметь похожую распиновку. С учетом, что
CAR_TX -> RX и CAR_RX -> TX .
Схема особо комментариев не имеет.
Второй вариант схемы с использованием STM32F103 blue pill
Уровень сложности паяльник + USB.
Нам понадобится
STM32F103 Blue pill ali.onl/1HOO
Программатор ST-LINK ali.onl/1HOP
DC-DC преобразователь ali.onl/1HOM
CAN Трансивер ali.onl/1HOR
Резистор на 470 Ом
Гребенка контактов с шагом 2 мм
Немного текстолита(в лучшем случае)
Схема представлена на рисунке ниже.
Сам такую схему я не собирал расскажу далее почему.
По цене разницы особо нет, тут чуть дороже из-за необходимости купить программатор, но он штука полезная.
Как прошить STM32F103 через Arduino ide можно найти в интернете, единственную собранную Arduino ide со всем необходимым я приложу в архиве где-нибудь рядом. Программатор обязательно, есть способы прошить и без него, но USB и CANиспользуют одну шину памяти и не очень комфортно работают вместе.
Если посмотреть на схему то тут резистор уже 470 Ом, прошивка уже подправлена под это все.
Преимущества STM32F103 по сравнению с Arduino nano можно найти в интернете, повторятся особо не буду. По мимо высокой производительности которая в этом проекте особо не нужна, тут аппаратная поддержка CAN, 12bit АЦП что позволяет более точно отлавливать нажатие кнопок руля. В общем с заделом на будущее.
Прошивку так же выложу в архиве, с исходниками. Будет несколько версий. Работает выполняя все основные функция та которая в hex, но там есть лишние элементы, которые в принципе не мешают.
Так же в архиве будут Readme, по мере возможности буду добавлять версии, буду описывать что и как.
Последняя версия CAN BUS самая компактная.
Но и уровень сложности максимальный. Вам потребуется заказать плату, заказать компоненты, все это припаять, и запрограммировать, этакий конструктор.
На плате предусмотрен выход для цифрового потенциометра, для тех кто хочет подключить нечто экзотическое нежели китайский андроид, (в коде ничего этого не реализовано, мне самому не к чему). Во всем остальном эта схема повторяет вариант номер 2 (точнее наоборот вариант номер 2 родился из этой схемы) Прошивка соответственно та же самая. Единственно вместо первого стабилизатора на 5 вольт я бы установил DC-DC преобразователь из предыдущих схем, для этого предусмотрены контакты +5, GND, +12.
Не все элементы нужно впаивать на плату, например не все светодиоды вам нужны, не нужны некоторые резисторы перемычки, и некоторые диоды. Возможно если появятся вопросы, опишу их в README.
Если совсем кратко, то CAN адаптер предназначен для облегчения интеграции андроид магнитолы в автомобиль, он выделяет из шины MS CAN автомобиля цифровые сигналы и передает их в андроид-магнитолу. При отсутсвии CAN адаптера необходимо искать самостоятельно в штатной проводке нужные аналоговые сигналы.
Основные функции CAN адаптера это формирование четырех выходных сигналов:
— "Зажигание"(IGN) или "Аккумулятор"(ACC), уровнем 12 Вольт, для включения андроид-магнитолы
— "Подсветка"(ILLUM), уровнем 12 Вольт, для изменения подсветки в андроид-магнитоле
— "Парковочный тормоз"(PARK), уровнем GND, для информирования андроид-магнитолы о нахождении автомобиля в состоянии поездки/парковки.
— "Задняя передача"(REAR), уровнем 12 Вольт, для переключения андроид-магнитолы на камеру заднего вида и включения питания для камеры заднего вида.
Дополнительные функции CAN адаптера это отображение в андроид магнитоле состояний внутренних узлов автомобиля и управление некоторыми из них через информационную линию RX/TX(uart):
— отображение состояния парковочных датчиков
— отображение положения руля в виде динамической разметки при заднем ходе
— отображение состояния открытых дверей
— отображение состояния не пристегнутых пассажиров и водителя
— установка времени в автомобиле
— отображение режима климат контроля и управление им;
— трансляция нажатий кнопок на руле в андроид-магнитолу
— отображение уровня топлива
— доступ к трип-компьютеру
— управление штатным усилителем
Теперь подробнее о выходных сигналах формируемых CAN адаптером. Для любой андроид-магнитолы кроме питания, нужен как минимум еще один дополнительный сигнал — это сигнал "Зажигание"(IGN). Сигнал зажигания(IGN) необходим для андроид-магнитолы, чтобы магнитола включалась или выходила из спящего режима при запуске автомобиля и выключалась или засыпала при глушении автомобиля.
Сейчас наверное в большинстве андроид-магнитол есть спящий режим, с ним андроид-магнитола готова к работе уже через пару секунд после запуска автомобиля, иначе при каждом запуске автомобиля андроид в магнитоле будет загружаться несколько минут. Но у спящего режима магнитолы есть один минус — это потребление тока порядка 10-20мА в спящем режиме, и зимой или при малых пробегах это может быть критично.
Так например в моей андроид-магнитоле, купленной в 2019 году не было спящего режима, через несколько месяцев после покупки, производитель с обновлением прошивки в андроид-магнитоле добавил функцию спящего режима. Помня о потреблении магнитолы в спящем режиме, я на зиму отключаю спящий режим в магнитоле, а по приходу тепла снова включаю спящий режим, отключение/включение спящего режима в моей магнитоле занимает пару минут.
Необязательный сигнал "Подсветка"(ILLUM) используется для подсветки кнопок андроид-магнитолы или для уменьшения яркости экран магнитолы ночью и увеличения яркости экрана днем.
Необязательный сигнал "Задняя передача"(REAR) используется для переключения экрана магнитолы на камеру и подключения питания к камере заднего вида, в противном случае придется тянуть от задних фонарей, это во первых неудобно, а во вторых на некоторых машинах, с импульсным контролем сгоревшей лампочки, такое питание для камеры будет создавать помехи в картинке с камеры.
Необязательный сигнал "Парковочный тормоз"(PARK) используется для разграничения некоторой функциональности в движении и на парковке, например для запрета просмотра видео в движении.
Часть андроид магнитол для конкретных моделей автомобилей продается уже с CAN адаптером и со всей необходимой проводкой и разъемами, что конечно же очень удобно. Моя же андроид-магнитола продавалась без CAN адаптера, но этот недостаток компенсировался стоимостью магнитолы в 50$. Впрочем для своего автомобиля Freelander2, я не смог найти CAN адаптер ни пару лет назад ни сейчас. Но с помощью самодельного CAN адаптера я смог сделать отображение датчиков штатного парктроника на андроид магнитоле, об этом подробне в заметке о подключении штатных парктроников к андроид магнитоле. Благодаря этой заметке несколько человек смогли сделать отображение парктроников в своих автомобилях Freelander2, в том числе и в рестайловом Freelander2.
Прошла осень, зима, и затем весна, коллега периодически спрашивал, когда уже будем обновлять прошивку в адаптере, но времени все так же не было этим заниматься. Но по наступлению лета, за счет доставки обедов на работу, появилось свободное время, которое раньше тратилось на обеденные поездки, благодаря этому за несколько дней с помощью мультиметра плата адаптера была исследована и в результате нарисована схема адаптера OD-VOLVO-02.
В целом на схеме нет ничего лишнего, функционал схемы совпадает с общим описанием CAN адаптера, это 4 выходных сигнала(IGN, ILLUM, BRAKE, REAR) и последовательный порт(RX/TX) для информационной связи с андроид-магнитолой. Обозначения и номиналы элементов на схеме совпадают с надписями печатной плате. Для программирования микроконтроллера через интерфейс SWDIO/SWCLK на плате есть специальный внутренний разъем CON2. Для обновления прошивки можно использовать любой SWDIO/SWCLK программатор, я перепрошивал микроконтроллер на плате с помощью китайского ST-LinkV2 с али, и программы openocd.
Распиновка сигналов на внешнем разъеме CAN адаптера OD-VOLVO-02 точно совпала, с найденной в сети распиновкой других китайских CAN адаптеров на 16 выводов, поэтому можно предположить что различные китайские производители CAN адаптеров делаю физически совместимые адаптеры, что в дальнейшем потвердилось.
По готовой схеме устройства написать прошивку уже было только вопросом времени. Процесс написания прошивки был итеративным и чередовался с тестами на автомобиле во время обеденных перерывов. На урале это лето выдалось теплым и было приятно провести немного времени на улице с автомобилем — немного переключиться на другое занятие от основной работы.
Помимо устранения недостатков в оригинальной прошивке, коллега попросил добавить дополнительный функционал:
— задержку снятия питания с камеры, при переключении из R в D
— управление уровнем подсветки экрана андроид-магнитолы.
В последствии этот функционал был реализован и сделан настраиваемым.
Для удобства прошивки и отладки CAN адаптера на автомобиле была сделана проводка для подключения адаптера в разъем OBD2 автомобиля. Через OBD2 разъем CAN адаптер получает питание и доступ к шине MS CAN, линия RX/TX адаптера выведена на переходник usb2com. К переходнику usb2com уже можно подключить ноутбук или телефон с андроидом для контроля работы адаптера. Если необходимо было проверить функционал CAN адаптера, то адаптер подключался к магнитоле, если надо было прошить, наладить или настроить адаптер, то адаптер подключался к разъему OBD2 автомобиля.
На следующем скриншоте показан отладочный интерфейс CAN адаптера
Адаптер извлекает из шины MS CAN данные в режиме прослушки, не посылая никаких запросов в электронные блоки автомобиля, поэтому информацию которою он может извлечь из шины CAN зависит от автомобиля, так в Freelander2 в шине MS CAN не передается информация о положении руля и нажатия кнопок, а в шине MS CAN автомобиля XC90 не передается VIN код автомобиля.
На втором скриншоте виден шаблон(зеленый и бирюзовый цвета) заданный при записи: 3 быстрых изменения уровня подсветки, пауза, 3 быстрых изменения уровня подсветки, пауза, 3 медленных изменения уровня подсветки.
В прошивке эмулируются 4 различных протокола для взаимодействия с андроид-магнитолой:
— Raise VW(PQ)
— Raise VW(MQB)
— Oudi BMW(Nbt Evo
— HiWorld VW(MQB)
При выборе типа подключенного адаптера в андроид магнитоле предлагается список из десятка различных производителей адаптеров, на али чаще всего встречающиеся адаптеры от Raise и HiWorld. Наибольший функционал по отображению узлов автомобиля в андроид магнитоле у марки Volkswagen и адаптеров Raise и HiWorld, поэтому эти протоколы были выбраны для эмуляции.
Но китайцы это новые индусы, поддержка адаптеров в магнитоле у них местами кривая, да и не хочется ограничиваться тем функционалом что есть в магнитоле, поэтому в своем автомобиле я постепенно отключаю эмуляцию CAN адаптера в плате usb2most и делаю отрисовку нужных мне вещей через свое приложение.
Помимо вышесказанного коллега ездил на автомобиле, тестировал работу CAN адаптера и выявлял замечания по его работе, для решения этих замечаний мне нужно было время и сам адаптер, но также и коллеге нужен был адаптер, получалось так, что адаптер в одно и тоже время нужен был и мне и ему. Покупать такой же второй CAN адаптер VOLVO-OD-O2 смысла не было, но у меня был адаптер для марки VW, который я приобрел чуть позднее покупки своей магнитолы, ради удовлетворения любопытства, что у него внутри. Внутри у него оказался процессор с надписью PocketLink, тогда в 2019, я не смог перепрошить этот адаптер, т.к. до конца не понимал, что это за процессор, да сейчас надпись на чипе PocketLink не даст информации о том что находится внутри этого чипа.
Видимо потратив чуть больше времени чем ранее мне удалось понять, что что внутри находится процессор NUC131, и для него свободно доступен BSP на гитхабе. Далее опять же с помощью мультиметра была проанализирована плата и нарисована схема в KiCAD этого адаптера. Китайцы сэкономили на шелкографии поэтому обозначения на схеме сделаны произвольными, но номиналы совпадают. По схеме с помощью примеров из BSP была добавлена поддержка этой платы в прошивке. Прошивка стала поддерживать уже две платы и можно было спокойно меняться адаптером с коллегой при очередном обновлении тестовой прошивки.
Схема адаптера VW_NC03 немного попроще OD-VOLVO-02, но основной функционал тот же: 4-е выходных сигнала и последовательный порт.
В дальнейшем во время экспериментов плату из CAN адаптера VW_NC03 я окирпичил — больше не смог перепрошить, поэтому на али был заказан еще один адаптер VW_NC03, но внутри него уже оказалась плата VW_NCD01 датируемая 2021 годом, а плата VW_NC03 была с датой 2017 года. Анализ с помощью мультиметра показал, что эта плата по схемотехнике почти полностью совместима с VW_NC03, но процессор в ней уже другой. Отладка через openocd показала, что процессор внутри был явно Nuvoton, имел схожие с NUC131 идентификаторы, и как оказалось для него подходит прошивка для платы VW_NC03, поэтому отдельной схемы или прошивки я не стал для него создавать. Но формально можно сказать, что прошивка поддерживает 3 различных адаптера.
В целом китайские процессоры в китайских адаптерах оказались не хуже и не лучше тех же STM32, внутри у них такое же армовское ядро cortex-m как и в STM32, поэтому могу рекомендовать такие адаптеры для каких-либо автомобильных поделок. Самостоятельная сборка подобного устройства на рассыпных элементах или из нескольких платок получится не дешевле, а тут готовое устройство c 4 программируемыми выходами и в корпусе.
Кто захочет приобрести на али такие адаптеры, то адаптер VW_NC03 можно найти по словам canbus box volkswagen, и далее выбирать адаптер с надписью HW:VW-NC-003. О обычно у продавца можно приобрести либо только адаптер или комплект из адаптера с проводкой, стоимость адаптера начинается от 7$.
По словам "volvo xc90 canbus" или "OD VOLVO 02" на али можно найти CAN адаптер для Volvo также с проводкой или без.
А комплект проводки от XC90 подходит по разъемам для Freelander2, поэтому владельцы Freelander2 в комплектации с шиной MOST смогут использовать такую проводку при установке андроид-магнитол в своих автомобилях. С разъемами из этой проводки можно акуратно подключиться в штатную проводку Freelander2 "разъем в разъем", не разрушая штатную проводку. На сером разъеме есть AUX и сигнал для усилителя FM радио, который многие используют вместо сигнала IGN. На зеленом разъеме есть шина MS CAN для подключения CAN адаптера и сигнал с резистивного делителя кнопок руля.
Данные пользователя в виртуальной машине
Login:user
Password:user
Краткая подсказка по командам в линуксе:
mc — файловый менеджер
cd canbox — переход в каталог с исходниками canbox
git pull — получить обновления исходников canbox с гитхаба
make clean — очистить текущую сборку прошивки
make — собрать новую сборку прошивки
make flash_vw_nc03 — прошить прошивку в плату WV-NC-003
На скриншоте пример как выглядит процесс прошивки
По итогу достаточного длинного изложения:
1) Коллега работой адаптера доволен, но уже закидывает вопросики про чип двигателя )
2) Прошивка поддерживает 2(3) CAN адаптера.
3) Потребление адаптера OD-VOLVO-02 в спящем режиме 4мА(с штатной прошивкой 20мА)
4) Потребление адаптера VW_NC03 в спящем режиме 1мА(с штатной прошивкой 1мА)
5) Прошивка поддерживает 2(3) автомобиля(рестайловый Frelander2 — с точки зрения шины CAN это другой автомобиль)
6) Прошивка поддерживает 4 протокола для связи с андроид-магнитолой
Читайте также: