В этом тексте я попробовал выполнить обзор преобразователя с 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

Ссылки

Название

URL

CAN-bus-USB

http://can.marathon.ru/page/devices/canbus-usb?ysclid=mmatuvn5ud445109582

Переходники USB-CAN

https://docs.google.com/spreadsheets/d/1X25fF9UKQxbNZy49xOPuAorWi8ZBsr_LF1MqkwdYDfs/edit?gid=0#gid=0

CANwise

http://can.marathon.ru/page/prog/canwise

Быстрый старт контроллера шаговых двигателей SMSD–4.2CAN в режиме драйвера

https://habr.com/ru/articles/931862/?ysclid=mmayuvtiai757239125

Аналитика по устройству

https://docs.google.com/spreadsheets/d/1aWBr7aWqngy4nlkp_bYMKVQ9eUQXdobv-viSTJBO-QI/edit?gid=0#gid=0

Сайт производителя

http://can.marathon.ru

CAN-шина (Теория)

https://habr.com/ru/articles/939978/

Обзор Переходника USB-CAN (SYS TEC USB-CANmodul1)

https://habr.com/ru/articles/794310/?ysclid=mmce53rod4282964715

Обзор USB-CAN переходника USB2CANFD_V1

https://habr.com/ru/articles/944112/?ysclid=mmce5nabbl339655129

Обзор USB-CAN переходника USBCAN-II C

https://habr.com/ru/articles/794831/?ysclid=mmce5xgyxb810910974

Переходник с USB на CAN из Отладочной Платы JZ-F407VET6

https://habr.com/ru/articles/988688/?ysclid=mmce65v0do562642942

CAN шина на Audio-Jack (или новая жизнь Audio-Jack)

https://habr.com/ru/articles/955398/?ysclid=mmce6emqck360655425

Утилита CANcat (или CAN-Мессенджер)

https://habr.com/ru/articles/948770/

ЛикБез по CAN-FD

https://habr.com/ru/articles/793966/

Чтение данных в CAN и использование DBC файлов

https://www.drive2.ru/l/561149229326664552/

CAN DBC File Explained - A Simple Intro

https://www.csselectronics.com/pages/can-dbc-file-database-intro

Вопросы
--Почему микроконтроллер LPC2366FBD100 и USB ASIC FTDI 2309-C FT2232HL соединены аж 16ю проводами? Это что за интерфейс такой их связывает вместе?

--Существует ли российский преобразователь USB-CAN и сопутствующее клиентское ПО, которое понимает  *.DBC файлы и его софт способен разложить трафик на сигналы (таблицу параметров) в реальном времени? Плюс рисовать трейсы параметров, как в Segger J-Scope.

Комментарии (47)


  1. Zuy
    05.03.2026 02:29

    А DBC файлы его софт понимает, чтобы трафик на сигналы разложить? А то сырые CAN сообщения это очень маленькая часть работы с CAN шиной.


    1. aabzel Автор
      05.03.2026 02:29

      Конечно же нет. В России мало кто вообще знает про формат dbc .

      Сan матрицы тут и по сей день передают в Excel таблицах.

      Да и потом, не все протоколы хорошо описываются dbc форматом.

      Тот же uds как правило размазывает один параметр по множеству can пакетов.


      1. VM1989
        05.03.2026 02:29

        Автопроизводители прекрасно знают про dbc, canoe, pcan explorer, и всё прочее минимум с 2017 года. Не просто знают, а активно пользуются. Есть лицензии, софт. HIL стенды, валидация. Не нужно экспертно заявлять, что только вот бывший сотрудник arrival знает про dbc, а остальные в лесу живут дремучем


        1. aabzel Автор
          05.03.2026 02:29

          От чего бы Вам тогда не взять и написать тут на habr методичку про то, как работать с dbc файлами?


    1. aabzel Автор
      05.03.2026 02:29

      Я еще не встречал российского клиентского ПО для CAN адаптеров, которое умеет анализировать CAN-трафик согласно импортированному *.dbc файлу.

      Ровно как и код-генераторов способных по *.dbc файлу написать Cи-функции разбора CAN пакетов.


      1. Zuy
        05.03.2026 02:29

        А почему так? В РФ на CAN новые системы не строят или какой-то другой подход используют? Там же куча данных передается, из сырого HEX же ничего не понять.


        1. aabzel Автор
          05.03.2026 02:29

          Ну вот взять хоть мой опыт в яндекс.драйве.
          Там никто про .dbc файлы не слышал.
          Вендоры легковых авто РФ свои .dbc файлы не выдают.
          В результате разработчкики прошивки телематики MT-32K_LTE_V2 каршеринга просто делают реверс инжиниринг трафика CAN шины и заносят то, что поняли в Google таблицу.
          https://docs.google.com/spreadsheets/d/1AGdPkWEUJpL-DqwfBiQXcp8iG4rBm2TTlbpR1-Ipi3c/edit?gid=0#gid=0
          Потом в прошивку парсеры руками вписывают.


          1. Zuy
            05.03.2026 02:29

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


            1. aabzel Автор
              05.03.2026 02:29

              Что такое трейсы? Красивое слово. Как будто из физики.


              1. Zuy
                05.03.2026 02:29

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


                1. aabzel Автор
                  05.03.2026 02:29

                  Вот это да! По меркам РФ фантастические технологии.


                  1. NutsUnderline
                    05.03.2026 02:29

                    Что такое трейсы? Красивое слово. Как будто из физики.

                    ммм как бы в рамках jtag термин с таким же почти смыслом.

                    Вот это да! По меркам РФ фантастические технологии.

                    вопрос выбора инструмента... с одной стороны kviser etc. у нас продавали и продают, значит кто то покупает и использует. с другой стороны можно и портянку hex анализировать (как сказали в фильме Матрица "а мне так удобней"). и с учетом тут сказанного это похоже мировая тенденция


            1. aabzel Автор
              05.03.2026 02:29

              И форматы стабильные чтоли там?

              Нет. По моим тогдашним наблюдениям в Рено Логан формат CAN сигналов менялся от года к году выпуска модели.

              Работать приходилось по сути IT-медвежатником.


          1. 0xdefec8ed
            05.03.2026 02:29

            Производители любых авто просто так никому свои dbc не выдают. Более того - существующие CAN протоколы передаются от разработчика одной системы автомобиля разработчику другой за колоссальные деньги.
            То что Яндекс не смог или не захотел купить описание сообщений у производителя - это проблемы Яндекса, а не всея Руси.


        1. aabzel Автор
          05.03.2026 02:29

          А почему так?

          Я считаю что причины три
          1--Не хотят покупать дорогие преобразователи от Vector и Kvaser.
          2--Действие эмбарго.
          3--В местном программировании МК много ригидности. Культура разработки не на самом высоком уровне. Хорошие практики не приживаются.


        1. NutsUnderline
          05.03.2026 02:29

          А почему так? В РФ на CAN новые системы не строят

          Можно, а зачем? Колесо изобретать некогда, надо грузы тащить срочно-срочно. ГОСТа на эти дела нет, особенно на .dbc файлы. а парсить все это .dbc - то еще удовольствие, много когда , много отладки, много времени.

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


          1. aabzel Автор
            05.03.2026 02:29

             а парсить все это .dbc - то еще удовольствие, много когда , много отладки, много времени.

            Формат dbc текстовый.

            BO_ 2583654654 IoStatusInputVoltage7: 8 Device
             SG_ VoltageStatus_25 : 0|16@1+ (0.001,0) [0|64.255] "V"  Host
             SG_ VoltageStatus_26 : 16|16@1+ (0.001,0) [0|64.255] "V"  Host
             SG_ VoltageStatus_27 : 32|16@1+ (0.001,0) [0|64.255] "V"  Host
             SG_ VoltageStatus_28 : 48|16@1+ (0.001,0) [0|64.255] "V"  Host
            
            BO_ 2583654910 IoStatusInputVoltage8: 8 Device
             SG_ VoltageStatus_29 : 0|16@1+ (0.001,0) [0|64.255] "V"  Host
             SG_ VoltageStatus_30 : 16|16@1+ (0.001,0) [0|64.255] "V"  Host
             SG_ VoltageStatus_31 : 32|16@1+ (0.001,0) [0|64.255] "V"  Host
             SG_ VoltageStatus_32 : 48|16@1+ (0.001,0) [0|64.255] "V"  Host

            Парсится синтаксическим разбором CSV строчек.


            1. NutsUnderline
              05.03.2026 02:29

              но почему то никто не сделал, ну по крайней мере открытое. как и методичку по .dbc


          1. aabzel Автор
            05.03.2026 02:29

            Можно, а зачем?

            Если, что-то это наш местный автовазовский мем.


    1. aabzel Автор
      05.03.2026 02:29

       А то сырые CAN сообщения это очень маленькая часть работы с CAN шиной.

      Это верно подмечено. Согласен.


    1. aabzel Автор
      05.03.2026 02:29

      А DBC файлы 

      Есть ли pdf спецификация с описанием текстового формата *.dbc файлов?
      Описанием синтаксиса и семантики. Чтобы можно было понять как читать интерпретировать *.dbc файлы глазами.


      1. Zuy
        05.03.2026 02:29

        Вот вроде норм описание: https://www.csselectronics.com/pages/can-dbc-file-database-intro

        Я помню, что проблема была когда BigEndian использовался для некоторых сигналов.


        1. aabzel Автор
          05.03.2026 02:29

          Спасибо!


        1. aabzel Автор
          05.03.2026 02:29

          Чем-то напоминает XCP. Там тоже есть отдельные файлы *.A2L для метаданных про параметры.


    1. HardWrMan
      05.03.2026 02:29

      Я вот про DBC файлы только что от вас узнал. Зато давно знал про DAT файлы, которые имеют особый бинарный формат описания шин, блоков на шинах и кодировки каждого ID.

      Например, вот такой

      Есть ненулевая вероятность, что каждый концерн и/или производитель использует вообще свои пропиетарные форматы.


      1. Zuy
        05.03.2026 02:29

        В то время когда я в этой отрасли работал, мне казалось, что как Vector Group скажет работать тем и работают. Ну и PEAK-Systems еще, для тех груп кому бюджета не выдали.
        И самописные скрипты конвертировать трейсы между PCAN-Explorer и CANape.


        1. aabzel Автор
          05.03.2026 02:29

          У меня коллега по яндексу до этого 5 лет в ФГУП НАМИ работал (головное предприятие российского автопрома, аналог европейского AVL).
          Писал, что все те годы просил, чтобы ему преобразователь от Vector заказали. В итоге он его так и не увидел вживую. Ни разу.


          1. NutsUnderline
            05.03.2026 02:29

            просил

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


  1. asher111
    05.03.2026 02:29

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


  1. HardWrMan
    05.03.2026 02:29

    --Почему микроконтроллер LPC2366FBD100 и USB ASIC FTDI 2309-C FT2232HL соединены аж 16ю проводами? Это что за интерфейс такой их связывает вместе?

    Обычный параллельный интерфейс. Х8 скорости по сравнению с UART, скорее всего подключен к FSMC и таким образом обращение к FTDI это атомарная команда LD/ST.


    1. aabzel Автор
      05.03.2026 02:29

      Да. Видимо подключены по MPSSE/ Multipurpose UART/FIFO Controller


      1. HardWrMan
        05.03.2026 02:29

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


  1. sergyk2
    05.03.2026 02:29

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


    1. aabzel Автор
      05.03.2026 02:29

      https://habr.com/ru/articles/944112/?ysclid=mmce5nabbl339655129

      USB2CANFD_V1 вообще 600 руб стоит, но клиентское ПО СanGaroo - жуть, да и прошивка USB2CANFD_V1 зависает при отправке обильного трафика.


    1. danil_12345
      05.03.2026 02:29

      Можно вообще купить за 1500руб отладочную плату JZ-F407VET6 и портировать на нее open-source проект PCAN-Pro-X.

      Вот репозитории на выбор
      https://github.com/mkelehk/pcan_pro_x_g431

      https://github.com/moonglow/pcan_pro_x

      https://github.com/eeshuibuxing/pcan_pro_x

      Далее устанавливаете клиентский софт от Peak Systems, получаете бесплатный драйвер, бесплатную нормальную Windows клиентскую программу (PCAN-View).


      1. NutsUnderline
        05.03.2026 02:29

        минутка саморекламы :) https://habr.com/ru/posts/931834/


  1. NutsUnderline
    05.03.2026 02:29

    сколь я помню качал все без регистрации когда то...

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


  1. azz2007
    05.03.2026 02:29

    22 тысячи рублей %)))


    1. aabzel Автор
      05.03.2026 02:29

      Не самый дорогой вариант


      1. HardWrMan
        05.03.2026 02:29

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


        1. aabzel Автор
          05.03.2026 02:29

          "Связь с компьютером: USB 2.0  Virtual COM Port, класс CDC"

          Virtual COM Port позволяет подключаться к преобразователю одновременно из нескольких программ?

          https://canhacker.ru/product/can-hacker-ch-p-fdl2/


          1. HardWrMan
            05.03.2026 02:29

            Virtual COM Port позволяет подключаться к преобразователю одновременно из нескольких программ?

            А зачем?


            1. aabzel Автор
              05.03.2026 02:29

              Для отладки.


              1. HardWrMan
                05.03.2026 02:29

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


                1. aabzel Автор
                  05.03.2026 02:29

                  У pcan , например, можно открыть хоть 10 экземпляров клиентской программы. Одна будет с правами отправки, а права приема будут у всех.

                  Так можно отлаживать потерю пакетов в custom утилитах, которые работают с преобразователем.


                  1. HardWrMan
                    05.03.2026 02:29

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

                    Хотя, если pcan использует свой драйвер, то может там реализован и редиректор. Драйвер vCOM от ST это обычный системный \\.\СОМ, без изысков.


        1. aabzel Автор
          05.03.2026 02:29

          Добавил в реестр