Как подключить can шину к компьютеру

Hyundai Genesis Prada › Бортжурнал › Взлом кан-шины для чайников.

Всем привет!
Я очень часто получаю вопросы через ЛС о том, как подключиться к кан-шине автомобиля и как вытащить нужную информацию из нее. Сегодня я подробно расскажу о процессе взлома кан-шины. Будет много текста и картинок.

Сегодня я не буду отвелекаться на подробное изложение того — что из себя представляет кан-шина автомобиля. Кому интересно — читайте википедию, там все расписано. В двух словах — это высокоскоростная «сеть», по которой различные электронные устройства автомобиля обмениваются данными.
Для тех, кто не знает, зачем это нужно, пример — мой Genesis. В комплектации автомобиля была система с черно-белым экраном. Заменить ее на 2DIN-магнитолу нельзя, так как на экран выводятся параметры климат-контроля. Поэтому я сделал программу под Android, поставил в машину планшет вместо черно-белого экрана, и на него вывожу всю информацию со штатного экрана, но плюсом к этому имею камеру заднего вида и навигацию. То же самое я сделал для Genesis Coupe .

Вернемся к Кан-шине. Нас интересуют конкретные данные. Кому-то нужны обороты двигателя, кому-то сведения о парктрониках или информация о параметрах климат-контроля, кто-то ищет команды, отправляемые с кнопок руля. Причем не обязательно, что все данные будут находиться в одной кан-шине. В автомобиле шин может быть 2, 3 и более. Есть высокоскоростная шина, с которой работают основные силовые узлы автомобиля (двигатель, коробка и т.д.). Но есть и другие шины. По ним передаются данные о состоянии замков дверей, парктроников, климата и прочего.

Для начала нужно определиться, к какой шине нам нужно подключиться. Если нас интересует информация о климат-контроле, то нужно подключаться к кан-шине, идущей к блоку управления климатом. Первым делом нужно найти схему разъема нужного блока (распиновку). В ней обязательно должны быть следующие контакты — Can H (он же Can+ или Can High) и Can L (он же Can- или Can Low). Именно к ним мы будем подключаться для извлечения данных.

Итак, определились с местом подключения. Теперь давайте разберемся с тем, чем именно будем взламывать шину. Для этого уже есть готовые и недорогие решения. Начнем с железной составляющей. Нам понадобится обычный компьютер (ноутбук) под управлением Windows. Думаю с этим ни у кого проблем не возникнет.

Для считывания данных кан-шины и передачи их на компьютер нам понадобится микроконтроллер Arduino UNO (рекомендую приобрести китайский клон на всем известном сайте) и так называемый шилд для него — Can Bus Shield для Arduino Uno. Вот ссылки на комплектующие:
Can Bus Shield (есть более дешевые варианты, но нужно паять ножки самостоятельно. В последний раз шилд обошелся мне в 350р).
Arduino Uno R3 (китайский клон)

Шилд нужно вставить в плату ардуино вот так.

На самом шилде есть вот такая дорожка. Ее нужно перерезать, например канцелярским ножом, иначе никаких данных он не передаст.

На некоторых шилдах дорожки нет (точнее есть, но она не видна). Есть просто два контакта в том же месте. Нужно перерезать ножом место между ними (так как под слоем краски идет дорожка).
На самом шилде есть колодка для подключения проводов к кан-шине (на фото выше — зеленая). Две клеммы с обозначениями Can L и Can H. Теперь нам нужно взять кусок двухжильного кабеля (я предпочитаю витую пару), одну сторону подключить к колодкам шилда, а вторую — к проводам Can H и Can L соответствующих пинов разъема климат-контроля. Можно посадить на скрутки.

Таким образом можем считать, что со стороны железа подключение и настройку мы закончили. Теперь перейдем к программной части.

Для начала нам понадобится Ардуино IDE – программа для компиляции скетчей (программ микроконтроллера Ардуино) и заливки их в Arduino. Скачиваем программу и устанавливаем. Также, для работы с кан-шиной нам потребуется вот эта библиотека Can Bus для Ардуино.
После установки софта и драйверов, подключаем библиотеку кан бас в ардуино IDE. Для этого заходим в меню Эскиз->Include Library -> Add .ZIP Library… и выбираем скачанную библиотеку.
У нас почти все готово для того, чтобы приступить с сканированию Can Bus. Осталось установить вот эту программку — Can Tool. И скачать несколько модифицированный мною скетч . (программу Ардуино) для работы с Ардуино Uno и Can Bus Shield.

Подключаем наш Arduino к компьютеру и настраиваем Arduino IDE. Выбираем в меню Инструменты->Плата-> Arduino Uno. В этом же меню выбираем Порт, к которому подключен наш Ардуино. Обязательно запоминаем номер порта, он нам еще пригодится. Теперь открываем скачанный скетч canhacker.ino и загружаем скетч в Ардуино, нажав Ctrl+U.

Да, вот еще что. В скетче следует обратить внимание на строку функции void setup():
if(CAN_OK == CAN.begin(CAN_100KBPS))
В этой строке мы указываем скорость нашей кан-шины. Мультимедийная шина генезиса работает со скоростью 100кб/с. Именно ее я и задал в скетче canhacker.ino. Для других автомобилей скорость может отличаться, поэтому если после запуска программы Can Tool вы не увидите никаких сообщений, пробуйте менять этот параметр на, скажем 125, 200, 500… полный перечень можно найти в файле mcp_can.cpp библиотеки Can Bus Shield (ссылка выше).

Настраиваем Can Tool – выбираем Com-порт, к которому подключена наша Arduino Uno. Для этого идем в меню Tools->Com Settings и указываем порт, ранее выбранный в Arduino UNO.
Итак, проверяем, все ли готово: скетч canhacker.ino загружен в Ардуино. Шилд установлен на Ардуино. Программа Can Tool запущена, в ней выбран ком-порт нашего Ардуино. Ардуино подключен к компьютеру. Контакты Can H и Can L шилда подключены к соответствующим проводам интересующего нас блока в автомобиле. Зажигание включено (в зависимости от того, какие данные нас интересуют, может понадобиться завести двигатель).
Теперь в Can Tool нажимаем Tools -> Connect to COM.
В окне программы начнут появляться строки с сообщениями. Смысл следующий — при получении какого-либо сообщения с новым адресом, программа выводит это сообщение с адресом и значением в новой строке. Если мы получаем новое сообщение с адреса, с которого уже приходила информация, то в строка с этим адресом в программе «мигнёт», и вместо старого сообщения отобразится новое. При этом в этой же строке мы можем видеть счетчик сообщений, пришедших по этому адресу.
Сообщения приходят в виде: «ХХ, 0,1,2,3,4,5,6,7». Где ХХ — адрес сообщения (ID) в десятичной форме, а значения с 0 по 7 — само сообщение (также в десятичном виде).
Теперь о том, как найти интересующий нас адрес. Допустим мы подключились к блоку климата и хотим расшифровать данные касающиеся скорости обдува. Нам нужно увеличить скорость вращения вентилятора на одну позицию. Как только мы это сделаем, в Can Tool увидим, что прилетело новое сообщение (а возможно и не одно). Допустим мы получили сообщение . При этом блок климата показывает вторую скорость обдува. Увеличиваем скорость еще на один пункт. И видим новое сообщение — . Таким образом мы понимаем, что интересующая нас информация о скорости обдува содержится в сообщении с ID 1172 (или ID494 – в шестнадцатиричной форме) в 4м байте сообщения.
То же самое касается кнопок управления мультимедийными функциями на руле автомобиля. Многие из них являются резистивными, но на некоторых автомобилях (как на генезисе, например) также отправляют сообщения в кан-шину. Отловив эти сообщения, можно будет управлять магнитолой и без кнопок руля, например с планшета или телефона.
В дополнение — небольшое видео (не моё) с демонстрацией работы программы Can Tool.

Читайте также:  На шинах как моя машина ты гоняешь маша


Источник: www.drive2.ru

CAN – шина, CAN – интерфейс

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

Протокол CAN был разработан для автомобильной промышленности и впоследствии стал стандартом в области создания бортовых сетей автомобилей, железнодорожного транспорта и т.д. CAN позволяет создавать сети с развитыми средствами контроля ошибок, скоростью передачи до 1Мбит/с и пакетами содержащими не более восьми байтов данных.

Канальный и физический уровни CAN

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

Структура узла сети CAN

Рассматриваемый нами узел сети CAN состоит из микроконтроллера, CAN контроллера и приемопередатчика (рисунок 1). Чаще всего мы используем микроконтроллеры с встроенным CAN контроллером для упрощения схемы, но иногда используется автономный контроллер CAN с интерфейсом SPI (MCP2510). Далее приемопередатчик подключается к витой паре, на концах которой размещены согласующие резисторы (терминатор) с сопротивлением 120 Ом.


Рисунок 1 – Узел сети CAN

Для формирования логической единицы в витой паре, или свободной шине, на оба провода подается напряжение, равное половине разности напряжения между 0 или Vcc. Логическому нулю соответствует подача на провода линии дифференциального напряжения (рисунок 2).


Рисунок 2 – Логические уровни на CAN-шине

Шина CAN позволяет передавать данные со скоростью 1 Мбит/c при длине кабеля не более 40 м. В обучающей литературе написано, что при снижении скорости передачи до 10кбит/с можно добиться длины сети в 1.5км.

Пакет сообщения CAN

Формат сообщения CAN показан на рисунке 3.


Рисунок 3 – Пакет сообщения CAN

По факту пакет сообщения формируется CAN контроллером, а прикладное ПО только устанавливает идентификатор сообщения, длину сообщения и предоставляет байты данных, поэтому полностью рассматривать пакет не будем, а посмотрим на данные которые мы изменяем при работе с CAN шиной.

Идентификатор (11 – битный )

Или идентификатор (29 – битный)

от 0 до 8 байт данных в пакете

Идентификатор сообщения используется для идентификации данных, отправленных в этом пакете. Каждое отправленное сообщение принимается всеми узлами сети и в данном случае идентификатор позволяет понять конкретному устройству, необходимо ли обрабатывать данное сообщение. Максимальная длина сообщения 8 байт, но можно уменьшить это значение для сохранения пропускной способности шины CAN. Для примера ниже по тексту есть несколько скриншотов CAN сообщений из автомобильной сети.

Арбитраж на шине CAN

Если без подробностей, то первым по шине CAN всегда передается сообщение с наименьшим идентификатором.

Настройка скорости передачи данных по шине CAN

Скорость передачи данных по CAN шине настраивается за счет формирования квантов времени, а не как во многих других протоколах последовательной передачи данных за счет делителя скорости. В большинстве случаев используются скорости 10Кбит/c, 20Кбит/c, 50Кбит/c, 100Кбит/c, 125Кбит/c, 500Кбит/c, 800Кбит/c, 1MBaud и настройки для этих скоростей уже посчитаны. На рисунке 4 изображено окно выбора скорости в программе PcanView.


Рисунок 4 – Выбор скорости передачи данных в программе PcanView

Как мы видим при установке стандартной скорости настройки проставляются автоматически, но бывают случаи когда необходимо использовать другую скорость передачи данных. Например бортовой CAN автомобиля может работать со скоростью 83Кбит/c. В этом случае придется провести расчет настроек самостоятельно или поискать специализированный калькулятор скорости в интернете. Для самостоятельного расчета скорости необходимо понимать, что для передачи одного бита сообщения используется несколько квантов, а интервал передачи состоит из трех сегментов (рисунок 5).


Рисунок 5 – Время передачи одного бита

Первый сегмент всегда фиксирован и равняется одному кванту. Далее идет два сегмента Tseg1 и Tseg2 и количество квантов в каждом сегменте определяется пользователем и может быть равно от 8 до 25. Точка выборки находится между Tseg1 и Tseg2, т.е. в конце первого и в начале второго сегмента. Так же пользователь может определить ширину скачка синхронизации (Synchronization Jump Width — SJW) для подстройки битовой скорости принимающего устройства, который может быть в диапазоне 1 – 4 квантов времени.

Читайте также:  Какие шины ставить на ниву 2121

Теперь приведем формулу расчета скорости (Пример расчета скорости для CAN контроллера SJA1000):

BTR = Pclk/(BRP * (1 + Tseg1 + Tseg2))

BTR – скорость передачи данных,

Pclk – частота работы CAN контроллера,

BRP – значение предделителя частоты генератора скорости передачи

Tseg1 – первый сегмент

Tseg2 – Второй сегмент

Для проверки возьмем уже посчитанную скорость 125Кбит/c и попробуем получить настройки вручную. Pclk возьмем 16 МГц.

BRP = 16МГц /(125K * (1 + Tseg1 + Tseg2))

Затем подбираем интервал передачи бита находящийся в диапазоне от 8 до 25 квантов времени, так что бы получилось целое значение BRP. В нашем случае если взять (1 + Tseg1 + Tseg2) = 16, то BRP будет равен 30.

Далее нужно подобрать соотношение между Tseg1 и Tseg2, которое даст нам желаемое положение точки выборки (Sample Point – SP).

SP = ((1 + Tseg1 + Tseg2) * 70)/100

Подставляем значения и получаем 16 * 0.7 = 11.2, что соответствует соотношению Tseg1 = 10, Tseg2 = 5, т.е. 1 + 10 + 5 = 16. Далее смотрим если Tseg2 >= 5, то SJW = 4, если Tseg2
Рисунок 6 – Настройка CAN фильтра

Если все сделано правильно, то мы увидим сообщения от кресел (рисунок 7), а при нажатии кнопки наклона спинки на пульте управления мы увидим еще одно сообщение с адресом 1F4 идущее от пульта к креслу (рисунок 8).


Рисунок 7 – CAN сообщения от кресла с электроприводом

Рисунок 8 – CAN сообщения от кресла с электроприводом и сообщение от пульта управления к креслу

Теперь мы знаем какие должны быть адрес, длина и данные в CAN пакете для имитации нажатия кнопки изменения положения спинки. Во вкладке Transmit нажимаем NEW и в открывшемся окне создаем копию пакета 1F4, т.е. Length = 3, Data = 40 80 00. Period можно оставить 0 ms, тогда сообщения будут отправляться по факту нажатия кнопки пробел (рисунок 9).


Рисунок 9 – Создание CAN сообщения

На рисунке 10 отображено поле Transmit главного окна содержащее все отправляемые сообщения в CAN и информацию о них. При выделении сообщения и нажатии кнопки пробел произойдет отправка пакета в CAN сеть и кресло немного сдвинется в нужном направлении.


Рисунок 10 – Поле Transmit

Понятное дело, что добиться полноценного управления креслом в таком случае не получиться, т.к. мы не можем исключить из сети пакеты заводского пульта управления, но эта проблема вполне решаема.

Итог

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

Источник: www.embeddedsystem.ru

Подключение адаптера CAN-шины CANTEC к устройствам СИГНАЛ и СМАРТ

Прямое подключение к CAN-шине автомобиля стандарта J1939 (FMS) поддерживает только устройство ГЛОНАСС-мониторинга транспорта СИГНАЛ S-2551. Для подключения других моделей трекеров СИГНАЛ и СМАРТ к CAN-шинам автомобилей необходимо использовать адаптер CAN-шины CANTEC.
Адаптер CAN-шины CANTEC при подключении к оборудованию ГЛОНАСС-мониторинга транспорта СИГНАЛ и СМАРТ по интерфейсу RS-232 позволяет получать данные из CAN-шин автомобилей различных стандартов. Перечень поддерживаемых протоколов приведен на сайте производителя адаптера CAN-шины CANTEC.
Работу с данным адаптером поддерживают следующие модели устройств:
— СИГНАЛ S-2550/S-2551;
— СМАРТ S-2331/S-2332.
Подключение к CAN-шине при помощи адаптера CANTEC необходимо осуществлять при выключенном зажигании автомобиля.

Для подключения к устройству мониторинга транспорта допускается использовать только провод RS-232TX адаптера CANTEC и контакт RS-232RX трекера. Подключение к CAN-шине автомобиля и питанию остается обязательным.

Для подключения адаптера CANTEC к устройствам СИГНАЛ S-2550/S-2551 используется 6-контактный разъем Microfit-6. К контактам 3 и 6 разъема подключаются контакты адаптера RS-232RX и RS-232TX соответственно.

Для подключения адаптера CANTEC к устройствам СМАРТ S-2331/S-2332 используется 14-контактный разъем Microfit-14. К контактам 8 и 9 разъема подключаются контакты адаптера RS-232RX и RS-232TX соответственно.

Настройка устройства для работы с CAN-адаптером осуществляется при помощи программы NTC Configurator. Запустите ее и подключите Ваше устройство по USB к компьютеру или воспользуйтесь функцией удаленного конфигурирования. Откройте конфигурацию устройства.
Выберите стандарт «CANTEC» и задайте скорость обмена данными равной 9600 бит/с, нажав на кнопку «Настроить параметры по RS-232». Во вкладке «RS-232» должна стоять галочка «Подключить CANTEC».
Во вкладке «CAN-адаптер» производится настройка фиксаций событий, передаваемых по CAN-шине. Передаваемые данные могут быть в виде информации об изменении уровня топлива в баке, изменении значения веса автомобиля, изменении значения оборотов двигателя, нагрузки на двигатель, положении педали газа и тормоза, изменении скорости.

Примечание
Параметры нагрузки на двигатель, положения педали газа и тормоза, нагрузка по каждой из 5-ти осей, а также изменения скорости могут быть переданы только при использовании формата FLEX.

При изменении значения на указанный порог по сравнению с предыдущим производится фиксация данного события и осуществляется запись в «черный ящик» устройства с последующей возможностью ее передачи на телематический сервер. В соответствии с этим необходимо указать оптимальные значения порогов фиксации.

Помимо параметров, перечисленных в настройках, устройства СИГНАЛ и СМАРТ также принимают следующие:
— уровень топлива в баке;
— расход топлива;
— пробег;
— моточасы;
— температура двигателя (охлаждающей жидкости);
— скорость ТС;
— обороты двигателя;
— пробег до ТО;
— нагрузка на ось (до 5-ти осей).

Примечание
Данные параметры могут отправляться на телематический сервер только в формате FLEX (в формате F6 содержится меньшее количество параметров CAN-шины), однако, все они сохраняются в черном ящике устройства и доступны для просмотра при помощи NTC Configurator.

Передача данных по CAN-шине при помощи CANTEC может также осуществляться и во время соединения устройства с компьютером по USB и их можно посмотреть в окне текущей телеметрии во вкладке CAN.

По завершении настроек загрузите конфигурацию в устройство. При необходимости сохраните ее в файл. После перезагрузки устройства проверьте правильность внесенных изменений.
Для того, чтобы CANTEC передавал параметры из CAN-шины автомобиля, он должен быть настроен на выдачу данных в протоколе ТС204. Выдача данных должна происходить с частотой 1 раз в секунду.
Тип и марка транспортного средства определяется автоматически при подключении модуля к CAN-шине. Если какие-либо параметры не отображаются в окне телеметрии, значит, они не определяются модулем CANTEC в CAN-шине конкретного типа автомобиля (например, отсутствуют датчики нагрузки на ось). Протокол и периодичность выдачи строк настраиваются при помощи программатора/конфигуратора TECProg.

Читайте также:  Как хранить накаченные шины

Источник: old.navtelecom.ru

Настройка CAN-декодера на магнитоле Teyes Spro и CC2L/CC2.

Для полноценной интеграции магнитолы в автомобиль необходимо настроить декодер CAN-BUS шины на работу с конкретной моделью. Рассказываем, как зайти в соответствующие настройки. А так же здесь можно найти пароль от заводских настроек (они же — инженерное меню, скрытые настройки).

Для начала заходим в список установленных приложений путем нажатия круглой кнопки:

Выбираем пункт “Установки в автомобиле”:

Откроется приложение взаимодействия с системами автомобиля:

Если вы наблюдаете такую же картину, значит магнитола не настроена на взаимодействие с автомобилем. В этом приложении отображаются данные CAN-шины. Если в вашем автомобиле предусмотрено подключение к CAN-BUS (в случае Chevrolet Cobalt и Ravon R4да), то необходимо произвести соответствующие настройки.

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

Возвращаемся на главный экран и жмем в нижнем правом углу по шестеренке:

Откроются настройки магнитолы. Нас интересует вкладка “Заводские настройки”. Тапаем по ней:

Магнитолой будет предложено ввести пароль для доступа к заводским настройкам. Опасаться этого не стоит, никакого сброса не произойдет. Вводим 168 и жмём “Да”:

В списке заводских настроек прокручиваем до интересующего нас пункта “Выбор системы авто”:

Видим четыре столбца (китайцы как всегда жгут: в слове из трех букв четвертого столбца умудрились допустить ошибку 🙂): Марка CAN BUS, Система авто, Выбор системы авто, CUN BUS. В первом выбираем производителя своего CAN-декодера. Если не знаете, то посмотрите на его корпусе стикер. Во втором ищем производителя автомобиля, и в третьем, соответственно, модель.

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

На автомобилях, оборудованных мультирулем достаточно просто попробовать изменить громкость или переключить треки соответствующими кнопками. Магнитола должна будет отреагировать на эти действия.

В итоге можно снова зайти в приложение “Установки в автомобиле” и убедиться, что появились элементы управления конкретно для вашего автомобиля:

Среди них можно выделить уровень топлива в бензобаке (показания с ЭБУ ДУТ, особой точностью похвастаться не могут), температура охлаждающей жидкости ДВС, напряжение в бортовой сети, пристегнутые ремни, состояние концевика багажника, ручника, наличие стеклоомывающей жидкости. В некоторых автомобилях даже считываются числовые параметры, такие как обороты, скорость и пробег.

Источник: cobaltr4.ru

Преобразователь шины интерфейса CAN на USB

Данный проект предназначен для изготовления простого устройства для мониторинга шины 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. Я не смог найти руководство пользователя для этого приложения. Однако оно достаточно простое и интуитивное при использовании.

Источник: cxem.net