Кан хакер своими руками

Кан хакер своими руками

Данный проект предназначен для изготовления простого устройства для мониторинга шины CAN. Я выбрал микропроцессор NUC140LC1CN 32K Cortex-M0 по одной главной причине – он имеет периферийные блоки USB и CAN.

Характеристики проекта

  • Простота разработки
  • Совместимость с протоколом LAWICEL CANUSB
  • Мониторинговое устройство отображается как USB FTDI устройство
  • Поддержка 11-битных CAN 2.0A и 29-битных CAN 2.0B кадров
  • Наличие внутреннего буфера сообщений FIFO CAN
  • Питание от USB порта
  • Загрузчик, хранимый в памяти USB запоминающего устройства, для обновлений микропрограммы
  • Микропрограмма, которая доступна для загрузки

Схемное решение

Для разрешения периферийному блоку NUC140 CAN соединяться с шиной CAN необходимо наличие приемопередатчика CAN. Для этой цели наиболее пригодна микросхема TJA1051T от компании NXP. Блок NUC140 может работать от источника питания напряжением 5В. Поэтому нет необходимости для применения дополнительного стабилизатора напряжение на 3.3В. Это позволяет значительно упростить задачу реализации интерфейса шины CAN. В схеме предусмотрено три светодиодных индикатора состояния:

  • D1 – индикатор состояния USB соединения с хостом
  • D2 отображает активность шины CAN
  • D3 отображает ошибки интерфейса CAN

NUC140 не имеет встроенного загрузчика и единственным способом его запрограммировать — использовать интерфейс ARM Serial Wire Debug (SWD) (J2 коннектор) и программатор Nuvoton ICP. Ну и естественно, если загрузчик уже заранее запрограммирован, то его можно активировать. Для этой цели необходимо использовать джампер JP1. Использование джампера JP1 перед подачей питания на интерфейс приведет к запуску загрузчика.

Загрузчик

Флэш-память NUC140LC1 разделена на две секции. Одна из них предназначена для выполнения кода пользовательской программы (APROM) размером 32K, а другая для загрузчика (LDROM). Размер LDROM только 4K, что делает проблематичным создание полностью функционального USB загрузчика. Я использовал загрузчик, размещенный на запоминающемся устройстве (MSD), предоставленный Nuvoton. Установка джампера JP1 запускает выполнение загрузчика. В результате съемный диск будет отображаться в файловой системе хоста размером 32 кБ. Просто скопируйте и вставьте или перетащите и опустите обновление микропрограммы CAN-USB на диск загрузчика. Отсоедините USB кабель, снимите джампер и подсоедините кабель снова. Теперь должна выполняться обновленная микропрограмма.

Программирование интерфейса CAN-USB и NuTiny-SDK-140

Для программирования процессора NUC140 потребуется программатор Nu-Link от Nuvoton и программное приложение Nuvoton ICP. Но вместо него я решил использовать демонстрационную плату NUC140 (NuTiny-SDK-140), доступную от Digi-Key. Она имеет две части, часть с микросхемой NUC140 и собственно программатор Nu-Link. Плата равномерно перфорирована, что позволяет отсоединить часть Nu-Link. На самом деле вы может изготовить данное устройство исключительно на демонстрационной плате NuTiny-SDK-140, добавив только дополнительную микросхему приемопередатчика CAN.

При подсоединении Nu-Link процесс программирования NUC140 становится несложным. Ключевым вопросом является выбор загрузки из LDROM вместо APROM (в Config настройках) для обеспечения функционирования USB загрузчика.

Программное обеспечение

Интерфейс CAN-USB совместим с протоколом LAWICEL CANUSB и будет работать с приложениями, предназначенными для данного протокола. Я протестировал два приложения с интерфейсом CAN-USB:

Читайте также:  Какая нормальная температура диода гп

CANHacker V2.00.02

Это бесплатное приложение CANHacker. Я не смог найти руководство пользователя для этого приложения. Однако оно достаточно простое и интуитивное при использовании.

Анализатор CAN шины CAN-Hacker 3.0 25.06.2019 14:38

Бортовая электроника современного автомобиля поражает разнообразием исполнительных и управляющих устройств, различными датчиками и контроллерами. Для взаимодействия между ними требуется устойчивая коммуникационная сеть. На данный момент существует такой сетевой интерфейс и называется он — CAN (Controller Area Network).

CAN – шина оснащает подключением любые устройства, которые могут одновременно принимать и передавать цифровую информацию. Например, с помощью CAN пакетов осуществляется складывание зеркал, зажигание фар, контроль стеклоподъемников и т.д. Увидеть, что творится в CAN шине автомобиля нам поможет специальный адаптер и программа, которых в природе существует много. Но, что если я скажу вам, что существует универсальный USB адаптер, который может расширить возможности – как аппаратного так и программного функционала CAN шины?

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

С помощью CANHaker вы сможете:

  1. Проанализировать работу CAN и LIN шин авто и спец.техники
  2. Отображение Can – посылок, принятых в Can шине
  3. Включать «на столе» блоки управления и агрегаты автомобиля контролируемые по CAN и LIN шинам (например блоки кнопок, приборные панели и т.д.)
  4. Эмулировать работу измерителей и блоков управления напрямую в машине
  5. Программировать блоки управления машин

Все данные функции адаптера CAN Haker, за его совсем небольшую цену, окажут бесценную помощь во время ремонтных работ, а также при установке и разработке вспомогательного охранного, навигационного оборудования для различной мобильной техники.

Функционал основной версии КЭН-Хакер 3.0 может быть сильно расширен используя дополнительные опции и программы. Список опций постоянно растет, за новостями следите на сайте www.eobd.ru

Дополнительные опции:

  1. LIN-K (ЛИН-К) анализатор шины LIN.
  2. K это дополнительная опция для CAN-USB интерфейса CAN Hacker 3.0

Теперь весь перечень функций КАН-Хакера Бомбер интегрирован в программное обеспечение CAN анализатор.

Бывают случаи когда нужно срочно выяснить какой пакет в КАН шине за какую функцию отвечает, если протокол обмена не стандартизирован то сделать это очень проблематично и длительно по времени. Или не имея автомобиля будет сложно узнать какой пакет отвечает за определение скорости, а какой за угол поворота стрелки тахометра. Утилита канхакер Bomber, позволит изучить CAN шину методом спуфинга т.е. программа просто посылает пакеты с заданными нами байтами данных в заданном диапазоне ID.

  1. Дополнительная опция KIA-Coder для работы с автомобилями KIA-Hyundai
Читайте также:  Изменение параметров страницы возможно

С помощью КИА-Кодер можно осуществить вариантное кодирование EOL на машинах КИА и Хендай, перекодировать память панели приборов через базовый диагностический разъем OBD2. Различное программирование дает активировать и де-активировать разные опции автомобиля, такие как: Давление внутри шин TPMS, адаптивный свет и другие.

4. Дополнительная опция для работы с автомобилями Nissan Leaf Leaf-Coder

  1. -Hacker Leaf-Coder бесплатная и простая программа для кодирования панелей приборов Ниссан Лиф и Teana через разъем OBD2.

С помощью Лиф Кодер можно в полной мере читать и писать EEPROM панели приборов через разъем и исправлять одометр без съема панели.

Теперь разберем преимущества Канхакер 3.0 перед другими адаптерами.

Преимущества CAN-Hacker 3.0:

  1. Два канала СAN(КЭН). Возможность проброса пакетов из канала в канал, работать в режиме СAN(КЭН) шлюза / CAN гейтвея при помощи специальной прошивки идущей в комплекте
  2. Подключаемые терминаторы 120 Ом
  3. Функция работы с LIN шиной. (доп. опция)
  4. On-line (онлайн) обновление
  5. Функция автоматического перебора (поиска) ID программой CAN Hacker -Bomber
  6. Миниатюрный корпус
  7. Питание от USB
  8. Сохранение пакетов сообщений в формате текста на жестком диске для ПК.
  9. Запись логов сообщений в реальном времени
  10. Анализ и просмотр логов

CANHacker 3.0 (КЭН Хакер 3.0) может работать как со старым ПО CANHaker (кан хакер) 2.002 так и с новым анализатором CAN.

Прочитал замечательную статью на Хабре, habrahabr.ru/post/256493/:

и решил на её основе, использовать уже готовый имеющийся модуль 2CAN (описанный мной в предыдущей статье) совместно с написанной и довольно распространенной уже программой CANHacker. Удивительным образом, в статье автора, и имеющимся у меня модулем 2CAN совпадают по назначению все выводы микроконтроллера, разница только в частоте кварцевого генератора. Получается, вносить изменения в плату модуля мне не придётся. Установил программный продукт STM32Cube MX с необходимыми компонентами, и немного изменил настройки и код в проекте, любезно предоставленные автором статьи:

1. Меняем параметры системы тактирования:

2. Добавляем дополнительный вывод для контроля системы тактирования RCC_MCO -> PA8:

3. Далее генерируем код и затем автоматически запускаем компиляцию в KEIL, при этом возникает ошибка компиляции, имеющийся у меня KEIL не понимает две строчки на ассемблере, но так как мы не собираемся спать во время работы, закоментируем их:

4. Далее добавим команду, которая задает режим микросхемы трансивера CAN (PB7 -> «1»):

5. Припаиваем к модулю 2CAN выводы для подключения к шине CAN, и выводы для программирования по SWD, питание же платы осуществляется через разъем USB:

6. Припаиваем резистор ( 560 Ом, но не критично ) для правильной работы USB:

7. Программируем:

Соответствие выводов платы и модуля такое:

8. Проверяем как наш модуль определяется компьютером, и зададим более удобный для работы номер COM порта для модуля:

Читайте также:  Браузер для windows server 2003

9. Запускаем программу, настраиваем на заданный COM порт, и подключаемся к работающей CAN шине какого либо устройства (драйвера от STM были уже установлены), результат есть:

Подключаться к шине автомобиля решил с помощью имеющегося диагностического адаптера ELM327 (удобный корпус, легко устанавливать и вынимать), просто припаяв провода к его разъему от 2CAN модуля:

Три провода, CANH (pin 6), CANL (pin 14) и «земля» (pin 4 & 5):

Вот к примеру показания с «Дастера» 1.6, там CAN шиной объединены только блок управления двигателем, блок ABS и блок 4WD, подключаемся:

И видим такие данные:

Записываем их в лог-файл. Импортируем в excel, проводим переупорядочивание и фильтрацию. И в результате можно увидеть следующие данные с can шины автомобиля: обороты двигателя, положение педалей газа, тормоза и сцепления, скорость каждого колеса в отдельности, работу кондиционера и т.д (некоторые значения пока для меня тайна). Полученные данные свел в таблицу, если что то надо исправить или дополнить, подсказывайте.

Некоторые данные нуждаются в простой обработке, где-то поделить, где-то рассчитать по формуле. Но все просто и без заморочек.
Или к примеру, Outlander III, подключаемся к CAN шине салона автомобиля, за приборным щитком.

Смотрим данные на экране компьютера, и что меняется при нажатии на кнопку открыть и закрыть автомобиль. И пары нажатий на соответствующие кнопки, хватает узнать какие команды надо подать, чтобы открыть или закрыть автомобиль. Эти коды кратковременно появляются в строчке, обведенные красным овалом. Повторяем эти команды в окне для передачи и:

Открыть автомобиль:

Закрыть автомобиль:

Что было добавлено в исходный код (в файле usb_cdc_if.c), выбор скорости:

и несколько подобных процедур для задания скорости (в файле main.c, для примера укажу пару):

Про контрольные светодиоды думаю вопрос не актуальный.

Как то так, суеты на пол дня :). Конечно есть некоторые шероховатости в работе программы, но это уже не ко мне (я надеюсь). Если есть вопросы, советы, и если кому надо помочь запрограммировать такой модуль — спрашивайте тут. Извиняюсь за огромные фотки 🙂

Надеюсь, что никого не обидел написанием этой статьи…

С уважением, Астанин Сергей. ICQ 164487932.

(к сожалению, ветка форума с первоначального сайта с познавательной перепиской вся пропала, что смог восстанавливаю, ссылки на проект если кому надо добавлю)

P.S. Немного еще исправил код в проекте, можно менять скорость обмена, и обмениваться используя стандартные заголовки. Разобрался с программой CANHacker, можно улучшать и модернизировать проект по необходимости, все просто.

Связь вполне устойчивая с другими блоками автомобиля, можно использовать (проверено на Volvo, Renault и Mitsubishi).

Ссылка на основную публикацию
Калибровка монитора macbook pro
Сервисный центр MacPlus (ремонт Apple) раскрывает секреты калибровки дисплея iMac и Macbook Вы замечали, что одни и те же изображения...
Какие разделы нужны для ubuntu
Разделы в Ubuntu и Windows: в чем отличия? Разметка диска, или по-другому — создание разделов, всегда вызывала у начинающих пользователей...
Какие роутеры подходят для билайн домашнего интернета
Хочу купить вай-фай роутер (провайдер Билайн) , что бы можно было вай фай раздавать на ноут и др устройства плюсь...
Калькулятор градусов и минут сложение и вычитание
Калькулятор, поддерживающий основные арифметические действия над выражениями с градусами. Создан по запросу пользователя. Этот калькулятор выполняет арифметические действия над градусами....
Adblock detector