В этом тексте я попробовал выполнить обзор преобразователя с USB на CAN. В Этот раз у меня на операционном столе особый экземпляр: адаптер с USB на CAN от компании Marathon. Полное название CAN-bus-USB Версии 4.0. Он же ГКМН.468351.017-03.

Наклейку с серийным номером можно было бы и на бок прилепить. Там она как-то гармоничнее вписывается и лучше видна на фото в изометрии.
Что надо из доков?
Название дока |
Ver |
Страниц |
Что там полезного? |
Руководство пользователя |
1.1 |
8 |
Содержит распиновку основного разъёма |
Библиотека CHAI 2.14.0 Руководство пользователя |
0.24 |
18 |
Ликбез по утилите canmon |
Библиотека CHAI 2.14.0 Руководство по разработке программного обеспечения |
0.28 |
53 |
Спецификация по написанию своих клиентских утилит для переходника |
CANwise 3.15 Руководство пользователя |
0.26 |
35 |
Методичка по работе с клиентской утилитой CANwise |
Аппаратная часть
PCB изделия выглядит так

Если демонтировать саркофаг и присмотреться к PCB, то можно кое-что сказать про BOM.
PartName |
pin |
purpose |
FTDI 2309-C DM61LC1 FT2232HL |
64 |
USB Hi-Speed |
LPC2366FBD100 |
100 |
Микроконтроллер |
SCM3725ASA |
8 |
Digital Isolator |
LD1117AS33TR |
4 |
Стабилизатор напряжения, + 3.3В, 1А |
M93C46-W |
8 |
Энергонезависимая память 128Байт |
SN55HVD251 |
8 |
CAN transceiver |
Распиновка основного девяти-пинового разъёма такая. Все два CAN интерфейса выведены на один разъём DB-9.

Так как порой приходится подключать перемычки прямо на пины, то удобнее ориентироваться не по таблице, а по дополненной реальности.

Вообще распиновку DB-9 можно было бы и выгравировать на корпусе прибора, или нанести наклейку с легендой хотя бы, ибо площади поверхности на бруске просто немерено.
В широкую клетку можно представить устройство на одной странице.

Программная часть
Что надо из ПО?
Название утилиты |
Назначение |
canwise-3.15-win64.exe |
Драйвер для WIN 64 бит |
CANMON |
Программа позволяющая отправлять и принимать пакеты CAN |
CANwise |
Универсальное приложение тестирования и конфигурирования сети CAN, с графическим пользовательским интерфейсом. |
Подготовка драйвера
Я подал питания и увидел, что засветился зеленый USB LED. LED посветил 7 секунд и погас. При первом подключении Win10 не видит известного устройства.

Ок, запускаю установщик драйверов.

По умолчанию драйвер устанавливается сюда C:\Program Files (x86)\CHAI-2.14.0\

После отработки утилиты chai-2.14.0-x64-win81-10.exe надо снова войти в диспетчер устройств и выполнить обновление драйвера из той папки в которую развернулся установщик (C:\Program Files (x86)\CHAI-2.14.0\).

Только так Win10 в самом деле признает новое устройство.

Корректно признанный драйвер будет отображаться в ОС с VID=0x0403 PID=0xE8E9.

После установки драйвера зеленый USB-LED будет светить уже непрерывно. Само собой следует прописать путь C:\Program Files (x86)\CHAI-2.14.0\x64 в переменную PATH.
Клиентское ПО
Основная утилита это CANwise. Надо ее установить.

C:\Program Files\CANwise-3.15\

Открываем утилиту по адресу C:\Program Files\CANwise-3.15\canwise.exe. Выбираем нулевой CAN.

Разворачивается GUI.

В меню HW settings -> Bit rate инициирую установку битовой скорости.

Нажимаю кнопку start. Из другого устройства отправил несколько пакетов. И пакеты в самом деле прибыли на Марафон.

Теперь попробую что-нибудь отправить. Нажимаю кнопку Transmit frames, формирую пакет, нажимаю Transmit. Пакеты в самом деле улетели и принялись на той стороне.

Достоинства
+) Заложена гальваническая изоляция
+) Российская разработка
+) Светодиоды нормальной яркости
+) Есть заземление, которое выходит на CAN кабель через разъём.
+) На PCB есть отверстия
+) В клиентском софте CANwise присутствует дозированная отправка точного количества пакетов.
Что можно улучшить
1--Требуется унизительная процедура регистрации на сайте производителя для скачивания руководства пользователя и клиентского ПО. Не припомню, чтобы у других вендоров CAN-переходников такое тоже было принято.
2--Высокая цена 22kRUR. Это очень дорогой переходник. За такие деньги хотелось бы увидеть алюминиевый корпус, USB-Type-C, больше LEDов. Хотелось бы получить устройство с 5ю или 6ю LEDами. Rx1, Tx1, Rx2, Tx2, Status и Error.
3--Было бы хорошо получить на PLD вилке UART, чтобы управлять устройством без клиентского приложения через CLI на UART. Или дать клиентам отдельную прошивку, которая запускает Serial USB shell для ручного управления прибором через TeraTerm.
4--Нет PLD вилок для подключения логического анализатора на CANx_RX.
5--Хотелось бы увидеть для программирования разъём Tag-Connect
6--Острые края на PCB. Можно оцарапаться.
7--Клиентская утилита CANwise не показывает временной интервал между пакетами с одинаковым ID. TimeStamp и вовсе измеряется в каких-то попугаях.

8--Клиентским утилитам недостает дизайна. На рабочем столе они отображаются без какого бы-то ни было логотипа.

9--После установки драйвера и перезагрузки Win10 так и не обнаружила новое устройство. Пришлось вручную указывать путь к драйверу и повторно инициировать установку драйвера. Только так устройство подхватилось.
10--Консольная версия canmon вообще не заработала. Вылетела с ошибкой при попытке настроить битовую скорость.

11--Чтобы переключить джамперы для терминирующих резюков 120 Om надо демонтировать крышку саркофага. Было бы неплохо вывести переключатели на улицу.
Итог
Удалось научиться пользоваться переходником с USB на CAN от Marathon: отправлять и принимать CAN пакеты в GUI клиенте.
В общем впечатление от прибора позитивные. Приятно узнавать, что и в России умеют делать такие высокотехнологичные приборы.
Словарь
Сокращение |
Пояснение |
CAN |
Controller Area Network |
USB |
Universal Serial Bus |
BOM |
Bill of Materials |
CHAI |
CAN Hardware Abstraction Interface |
FTDI |
Future Technology Devices International |
ОС |
Операционная система |
API |
application programming interface |
Ссылки
Вопросы
--Почему микроконтроллер LPC2366FBD100 и USB ASIC FTDI 2309-C FT2232HL соединены аж 16ю проводами? Это что за интерфейс такой их связывает вместе?
--Существует ли российский преобразователь USB-CAN и сопутствующее клиентское ПО, которое понимает *.DBC файлы и его софт способен разложить трафик на сигналы (таблицу параметров) в реальном времени? Плюс рисовать трейсы параметров, как в Segger J-Scope.
Комментарии (47)

asher111
05.03.2026 02:29Марафон выпускают линейку устройств с CANopen и CANwise предназначен работать с EDS-профилями для них, SDO и PDO обмен и прочее. На CANwise ставятся расширения функционала, но всё это работает только с их преобразователем. Вот для этого его и берут, использовать его как терминал и под запись трафика смысла нет, есть варианты и подешевле.

HardWrMan
05.03.2026 02:29--Почему микроконтроллер LPC2366FBD100 и USB ASIC FTDI 2309-C FT2232HL соединены аж 16ю проводами? Это что за интерфейс такой их связывает вместе?
Обычный параллельный интерфейс. Х8 скорости по сравнению с UART, скорее всего подключен к FSMC и таким образом обращение к FTDI это атомарная команда LD/ST.

aabzel Автор
05.03.2026 02:29Да. Видимо подключены по MPSSE/ Multipurpose UART/FIFO Controller


HardWrMan
05.03.2026 02:29Оно ещё и не чувствителен к настройкам COM порта в таком включении (всегда на максимальной скорости, практически на скорости USB конкретной реализации чипа) + можно управлять через либу D2xx, которая позволяет открывать устройство по серийнику (и пофигу, на каком логическом СОМ он определился) и работать с блоками данных а не побайтно, оптимизируя скорость на стороне ПК.

sergyk2
05.03.2026 02:29весь смысл подобных переходников только в привязанном к ним ПО, и то пока кетайцы клон не станут продавать в разы дешевле.

aabzel Автор
05.03.2026 02:29https://habr.com/ru/articles/944112/?ysclid=mmce5nabbl339655129
USB2CANFD_V1 вообще 600 руб стоит, но клиентское ПО СanGaroo - жуть, да и прошивка USB2CANFD_V1 зависает при отправке обильного трафика.


danil_12345
05.03.2026 02:29Можно вообще купить за 1500руб отладочную плату JZ-F407VET6 и портировать на нее open-source проект PCAN-Pro-X.
Вот репозитории на выбор
https://github.com/mkelehk/pcan_pro_x_g431https://github.com/moonglow/pcan_pro_x
https://github.com/eeshuibuxing/pcan_pro_x
Далее устанавливаете клиентский софт от Peak Systems, получаете бесплатный драйвер, бесплатную нормальную Windows клиентскую программу (PCAN-View).

NutsUnderline
05.03.2026 02:29сколь я помню качал все без регистрации когда то...
а вообще поскольку виртуальный порт - разбираем протокол и пишем свой софт. или используя библиотеки производителя.

azz2007
05.03.2026 02:2922 тысячи рублей %)))

aabzel Автор
05.03.2026 02:29Не самый дорогой вариант


HardWrMan
05.03.2026 02:29Это если из российских? Хотя у вас вот канхакера нет, а он 19500.

aabzel Автор
05.03.2026 02:29"Связь с компьютером: USB 2.0 Virtual COM Port, класс CDC"
Virtual COM Port позволяет подключаться к преобразователю одновременно из нескольких программ?
HardWrMan
05.03.2026 02:29Virtual COM Port позволяет подключаться к преобразователю одновременно из нескольких программ?
А зачем?

aabzel Автор
05.03.2026 02:29Для отладки.

HardWrMan
05.03.2026 02:29Я думаю, что ни один не позволяет. А зачем отлаживать? Или что отлаживать?

aabzel Автор
05.03.2026 02:29У pcan , например, можно открыть хоть 10 экземпляров клиентской программы. Одна будет с правами отправки, а права приема будут у всех.
Так можно отлаживать потерю пакетов в custom утилитах, которые работают с преобразователем.

HardWrMan
05.03.2026 02:29pcan работает через хуки? Потому что даже обычный железный СОМ порт при открытии в одной программе даже с SHARED атрибутом всё равно не позволял другим программам открывать его через create() потому что, видимо, всё равно требовалась запись, даже если её не использовать. Но в том же время всякие COM мониторы подключались к хукам и подслушивали трафик. Вероятно, множественные легальные подключения без танцев с бубном только у устройств работающих только на чтение, но я не проверял эту теорию.
Хотя, если pcan использует свой драйвер, то может там реализован и редиректор. Драйвер vCOM от ST это обычный системный \\.\СОМ, без изысков.

Zuy
А DBC файлы его софт понимает, чтобы трафик на сигналы разложить? А то сырые CAN сообщения это очень маленькая часть работы с CAN шиной.
aabzel Автор
Конечно же нет. В России мало кто вообще знает про формат dbc .
Сan матрицы тут и по сей день передают в Excel таблицах.
Да и потом, не все протоколы хорошо описываются dbc форматом.
Тот же uds как правило размазывает один параметр по множеству can пакетов.
VM1989
Автопроизводители прекрасно знают про dbc, canoe, pcan explorer, и всё прочее минимум с 2017 года. Не просто знают, а активно пользуются. Есть лицензии, софт. HIL стенды, валидация. Не нужно экспертно заявлять, что только вот бывший сотрудник arrival знает про dbc, а остальные в лесу живут дремучем
aabzel Автор
От чего бы Вам тогда не взять и написать тут на habr методичку про то, как работать с dbc файлами?
aabzel Автор
Я еще не встречал российского клиентского ПО для CAN адаптеров, которое умеет анализировать CAN-трафик согласно импортированному *.dbc файлу.
Ровно как и код-генераторов способных по *.dbc файлу написать Cи-функции разбора CAN пакетов.
Zuy
А почему так? В РФ на CAN новые системы не строят или какой-то другой подход используют? Там же куча данных передается, из сырого HEX же ничего не понять.
aabzel Автор
Ну вот взять хоть мой опыт в яндекс.драйве.
Там никто про .dbc файлы не слышал.
Вендоры легковых авто РФ свои .dbc файлы не выдают.
В результате разработчкики прошивки телематики MT-32K_LTE_V2 каршеринга просто делают реверс инжиниринг трафика CAN шины и заносят то, что поняли в Google таблицу.
https://docs.google.com/spreadsheets/d/1AGdPkWEUJpL-DqwfBiQXcp8iG4rBm2TTlbpR1-Ipi3c/edit?gid=0#gid=0
Потом в прошивку парсеры руками вписывают.
Zuy
И форматы стабильные чтоли там?
Я просто помню, что когда в Tesla работал, там формат сигналов в CAN сообщениях мог меняться между билдами практически как угодно. По сути каждый билд для машины мог иметь несовместимые DBC файлы. Вся инфраструктура была заточена на нахождение нужных DBC в артифактах, чтобы раскодировать трейсы.
aabzel Автор
Что такое трейсы? Красивое слово. Как будто из физики.
Zuy
Это по сути запись всех сообщений с CAN шины в файл. Потом через DBC файлы оно раскодируется в сигналы и можно смотреть на них как в многоканальном осциллографе. С любой машины их можно было запросить и в онлайне анализировать.
aabzel Автор
Вот это да! По меркам РФ фантастические технологии.
NutsUnderline
ммм как бы в рамках jtag термин с таким же почти смыслом.
вопрос выбора инструмента... с одной стороны kviser etc. у нас продавали и продают, значит кто то покупает и использует. с другой стороны можно и портянку hex анализировать (как сказали в фильме Матрица "а мне так удобней"). и с учетом тут сказанного это похоже мировая тенденция
aabzel Автор
Нет. По моим тогдашним наблюдениям в Рено Логан формат CAN сигналов менялся от года к году выпуска модели.
Работать приходилось по сути IT-медвежатником.
0xdefec8ed
Производители любых авто просто так никому свои dbc не выдают. Более того - существующие CAN протоколы передаются от разработчика одной системы автомобиля разработчику другой за колоссальные деньги.
То что Яндекс не смог или не захотел купить описание сообщений у производителя - это проблемы Яндекса, а не всея Руси.
aabzel Автор
Я считаю что причины три
1--Не хотят покупать дорогие преобразователи от Vector и Kvaser.
2--Действие эмбарго.
3--В местном программировании МК много ригидности. Культура разработки не на самом высоком уровне. Хорошие практики не приживаются.
NutsUnderline
Можно, а зачем? Колесо изобретать некогда, надо грузы тащить срочно-срочно. ГОСТа на эти дела нет, особенно на .dbc файлы. а парсить все это .dbc - то еще удовольствие, много когда , много отладки, много времени.
Конкретно эта штука сделана вполне в духе госпредприятий, не удивлюсь если ее начальное назначение было (весьма ) специфичным и довольно узким.
aabzel Автор
Формат dbc текстовый.
Парсится синтаксическим разбором CSV строчек.
NutsUnderline
но почему то никто не сделал, ну по крайней мере открытое. как и методичку по .dbc
aabzel Автор
Если, что-то это наш местный автовазовский мем.
aabzel Автор
Это верно подмечено. Согласен.
aabzel Автор
Есть ли pdf спецификация с описанием текстового формата *.dbc файлов?
Описанием синтаксиса и семантики. Чтобы можно было понять как читать интерпретировать *.dbc файлы глазами.
Zuy
Вот вроде норм описание: https://www.csselectronics.com/pages/can-dbc-file-database-intro
Я помню, что проблема была когда BigEndian использовался для некоторых сигналов.
aabzel Автор
Спасибо!
aabzel Автор
Чем-то напоминает XCP. Там тоже есть отдельные файлы *.A2L для метаданных про параметры.
HardWrMan
Я вот про DBC файлы только что от вас узнал. Зато давно знал про DAT файлы, которые имеют особый бинарный формат описания шин, блоков на шинах и кодировки каждого ID.
Например, вот такой
Есть ненулевая вероятность, что каждый концерн и/или производитель использует вообще свои пропиетарные форматы.
Zuy
В то время когда я в этой отрасли работал, мне казалось, что как Vector Group скажет работать тем и работают. Ну и PEAK-Systems еще, для тех груп кому бюджета не выдали.
И самописные скрипты конвертировать трейсы между PCAN-Explorer и CANape.
aabzel Автор
У меня коллега по яндексу до этого 5 лет в ФГУП НАМИ работал (головное предприятие российского автопрома, аналог европейского AVL).
Писал, что все те годы просил, чтобы ему преобразователь от Vector заказали. В итоге он его так и не увидел вживую. Ни разу.
NutsUnderline
по хорошему это называется обосновывать. в общем то требует подходов и талантов, в том числе не технических, ну и не всегда просто, а тут - наоборот получилось, что вроде даже и не нужно.