Пролог

Как известно, не существует LapTop компьютеров с интерфейсом CAN. Зато во всех настольных компьютерах и LapTop(ах) есть USB. В связи с этим для отладки оборудования с CAN нужны всяческие переходники USB-CAN.

В этом тексте я написал про достаточно хороший переходник с USB на CAN, который не раз выручал меня при отладке прошивок с CAN-трансивером. Называется изделие USBCAN-II C. Вот он перед вами.

Немного Теории про интерфейс CAN

CAN -это двух проводной дифференциальный последовательный полудуплексный интерфейс для передачи бинарных данных между электронными платами PCB. В качестве кабеля чаще всего применяют одну витую пару проводов: CAN_L, CAN_H.

Шина CAN на минимальной битовой скорости 10 кбит/с может достигать аж 5ти км. На максимальной битовой скорости 1 Мбит/с - 40 метров. На одну шину можно пристегнуть максимум 127 абонентов.

Главное преимущество интерфейса CAN - это разрешение коллизий без потери битовой скорости. Если два узла начнут передавать пакеты, то продолжит передачу то устройство у которого меньше ID.

CAN определяет аж два уровня модели OSI-7 (стек сетевых протоколов): физический и канальный. То есть CAN определяет также и бинарную структуру пакета в кабеле. В пакете CAN фигурируют такие переменные как ID пакета, 8байт данных, длина пакета, 15 битная контрольная сумма, биты подтверждения ACK, начало и конец пакета.

https://docs.google.com/spreadsheets/d/1-Lat8LepEZsLL8gNMegPnwGosyWMC_SJLOWZmXdxzMY/edit#gid=0бинарная структура CAN Classic пакета

А это структура CAN пакета с расширенным идентификатором (29 bit)

https://docs.google.com/spreadsheets/d/1-Lat8LepEZsLL8gNMegPnwGosyWMC_SJLOWZmXdxzMY/edit#gid=1011799821структура CAN пакета с расширенным идентификатором

На уровне приложения обычно делают такие протоколы как J1939, CanOpen, UDS и прочие.

CAN интерфейс реализован аппаратно во многих микроконтроллерах как цифровая электрическая цепь внутри SoC. Это микроконтроллеры от STm, YunTu, FlagChip, NXP, Artery и проч. Однако есть и отдельные ASIC переходники с SPI на CAN.

Что надо из документации?

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

Название документа

Количество страниц

Версия

USBCAN-II C USB-CAN Converter user's manual

26

V4.1

User Guide for Drivers Setup

6

--

ECANTools CAN debugging software User Manual

33

V5.67

Что надо из оборудования?

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

Название

Количество

1

USBCAN-II C

1

2

Кабель USB-A на USB-B (кабель от принтера)

1

3

Перемычки вилка-гнездо

5+

4

перемычки вилка гнездо

4+

5

отвертка с плоским шлицем шириной 3мм

1

Что надо из ПО?

Как и с любым высокотехнологичным продуктом, помимо железа нужен еще и софт.

Название утилиты

Версия

1

ECAN Tools

5.9.23

2

USB Драйвер

--

3

операционная система Windows 10

--

Аппаратная часть

Внешне изделие выглядит так. С обратной стороны написано USBCAN-II C V502, указан серийный номер и наклейка с QR кодом. Всё сделано очень эргономично. Есть надписи с распиновкой, указано напряжение электропитания.

Можно представить этот переходник вот таким условным обозначением. Устройство получает питание от USB.

Внутри находится электронная плата на основе микроконтроллера LPC1765FBD100(32-bit ARM Cortex-M3; up to 512kB flash and 64kB SRAM with Ethernet, USB 2.0 Host/Device/OTG, CAN). Заметна гальваническая развязка, кварц 12MHz.

Программная часть

Тут надо сразу отметить, что в 2021 софт для переходника и доки лежали на google диске. В 2025 драйвер оттуда исчез.

Однако архив сохранился у меня на LapTop-е и я пришлю если кому-то это понадобится. Тем не менее устройство по прежнему продается на Aliexpress.

Установка USB драйвера

Как только вы соедините CAN трансивер и LapTop PC, Windows увидит неизвестное устройство USB-CANI-V503.

Надо установить драйвер. Запускаем установщик DriverSetup64.exe и следуем инструкциям.

После установки операционная система Windows 10 увидит его как GC-Tech USBCAN Device.

В свойствах драйвера это выглядит так


Клиентское ПО (ECan Tools)

Как водится, у каждого электронного прибора должно быть и ПО. Без программного обеспечения любой элентронный прибор - руда цветмета. В случае переходника USBCAN-II C эта утилита называется Ecantools.

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

Надо выбрать USBCAN-V5, нажать open, и OK

Появляется таблица принятых и отправленных пакетов.

Отдельная таблица для второго порта CAN.

Версия программы

Что можно сделать с переходником USB-CAN

1--Можно заниматься реверс инжинирингом трафика CAN шины автомобиля. Пытаться находить в трафике какие-то осмысленные сигналы в ответ на внешние стимулы. Например нажатие педели газа или тормоза, поворот руля и т. п. Потом продавать эти данные в конторы каршерингов и таксопарки.

2--Можно отлаживать бортовое оборудование по CAN. Можно повелевать электронными платами внутри агрегатов: обновлять прошивки, вычитывать диагностику, прописывать конфиги.

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

Итоги

Удалось научиться пользоваться USB-CAN переходником USBCAN-II C. Удалось отправлять и принимать пакеты. Это открывает дорогу для полноценной отладки всяческих CAN совместимых устройств. Этому устройству USBCAN-II C не хватает лишь интерфейса командной строки, чтобы можно было инициировать отправку и прием CAN пакетов через COM порт.

Существуют и другие переходники с USB на CAN, однако USBCAN-II C отличается низкой ценой и высочайшим качеством исполнения, индустриальный дизайн, эргономика, удобный и интуитивно понятный клиентский софт.

Проблема еще и в том, что даже если организация разработала очередной свой собственный внутри компанейский примитивный бескорпусный переходник с USB-CAN, то, как правило, на работе происходит тотальна и убийственная нехватка этих внутри компанейских самодельных переходников с USB на CAN. Вот и приходится инженерам и программистам самостоятельно искать альтернативные переходники с USB на CAN и весь совместимый софт для них. С этой задачей прекрасно справляется гаджет USBCAN-II C.

Каким переходником для отладки CAN пользуетесь вы? Напишите в комментариях.

Ссылки


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


  1. JunglBell
    23.08.2025 13:18

    " На одну шину можно пристегнуть максимум 127 абонентов. " а как же 240 устройств в пожарной системе ?


    1. aabzel Автор
      23.08.2025 13:18

      Вы проверяли? Работает? 240 CAN устройств на одной шине? Какая там была битовая скорость?


      1. x89377
        23.08.2025 13:18

        10 000 bps


    1. aabzel Автор
      23.08.2025 13:18

      " На одну шину можно пристегнуть максимум 127 абонентов. " а как же 240 устройств в пожарной системе ?

      https://en.wikipedia.org/wiki/CAN_bus

      Пожарники точно CAN применяют?


      1. gregg666
        23.08.2025 13:18

        Всесоюзно любимая система болид работает на RS485 2W (а протокол свой)


        1. aabzel Автор
          23.08.2025 13:18

          В случае RS485 может быть и 240 нод.


    1. BoriskovKB
      23.08.2025 13:18

      Где вы видели пожарные системы с CAN ? Используют решения с физикой RS-485 для коммутации блоков, например протокол Орион. Извещатели пожарные точные чаще всего подключаются вообще к шлейфу сигнализации, это просто 2 провода который ИПТ замыкает через сопротивление в случае сигнализации.


      1. JunglBell
        23.08.2025 13:18

        Вы видимо плохо знакомы с пожарными системами. CAN шина активно используется в пожарной системе rubetek , уже несколько лет. ЖК построенные ПИКом обороудованны ей.


  1. skleptik
    23.08.2025 13:18

    https://www.rustore.ru/catalog/app/ru.skleptik.canjab


    1. skleptik
      23.08.2025 13:18

      Народ! это ссылка на мое приложение для работы с can адаптером canfd от weact studio!
      Я буду развивать его если оно будет востребовано, статистику я мониторю.
      Можно писать о пожеланиях на почту.


      1. aabzel Автор
        23.08.2025 13:18

        Можно писать о пожеланиях

        Здорово. Добавьте поддержку ISO-TP.
        https://habr.com/ru/articles/798489/


      1. NutsUnderline
        23.08.2025 13:18

        canfd от weact studio!

        weactstudio традиционно взяла софт с открытыми исходниками допилила и выложила только бинарники зашифрованные. Советую делать акцент на поддержку протокола slcan (он же LAWICEL он же VScom) который используют много кто


  1. KostyLy
    23.08.2025 13:18

    У МАРАФОН есть поинтереснее девайс - CAN-bus-USBnp, к нему прилагается куча ПО, в том числе и библиотека на Си. Это если конечно если вам адаптер CAN нужен для дела, а не поиграться)


    1. aabzel Автор
      23.08.2025 13:18

      Дак, сейчас PC API у всех есть. Вот и для USBCAN-II C есть SDK для управления из-под Windows.


    1. lelik363
      23.08.2025 13:18

      Но стоит несколько дороже.


    1. aabzel Автор
      23.08.2025 13:18

      У МАРАФОН есть поинтереснее девайс - CAN-bus-USBnp

      Дороговато. Всё то же может USBCAN-II C только в 6 раз дешевле.
      При этом CAN-bus-USBnp выглядит, как "привет из 199x".

      https://tdatm.ru/catalog/zagruzhennye_pozitsii/ne_nakhoditsya_v_gruppe/dvukhkanalnyy_konverter_interfeysov_can_bus_usbnp.html?ysclid=mepobp7pwe676747028

      При этом документация на CAN-bus-USBnp оставляет желать лучшего. Спецификация - кот наплакал.


    1. aabzel Автор
      23.08.2025 13:18

      Самые лучшие переходники с USB-CAN, что я видел были у компании Vector. Там все супер. Поддержка CAN-FD, металлический корпус, резиновые уплотнители, FPGA внутри.

      База данных CAN пакетов.


    1. NutsUnderline
      23.08.2025 13:18

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


  1. dbanzay
    23.08.2025 13:18

    Как он дружит с j1939 ?


    1. aabzel Автор
      23.08.2025 13:18

      Нет. j1939  - это же протокол прикладного уровня, А устройство работает на физическом и канальном уровнях.


  1. Z55
    23.08.2025 13:18

    Для этих целей, собрал себе плату на STM32 и накодил прошивку, чтобы она работала с CanHacker. Не хватало


    1. aabzel Автор
      23.08.2025 13:18

      Проблема еще и в том, что даже если организация разработала очередной свой собственный внутри компанейский бескорпусный переходник с USB-CAN, то, как правило, на работе происходит тотальна и убийственная нехватка этих внутри компанейских самодельных переходников с USB на CAN. Вот и приходится инженерам и программистам самостоятельно искать альтернативные переходники с USB на CAN и весь совместимый софт для них. С этой задачей прекрасно справляется гаджет USBCAN-II C.


  1. kizup
    23.08.2025 13:18

    Советую попробовать CANHacker, отличное устройство для работы с шиной. Устройство модульное, самая базовая версия поддерживает работу с двумя шинами, можно докупить LIN адаптер, есть устройства для CAN-FD.


    1. aabzel Автор
      23.08.2025 13:18

      Какую именно модель CANHacker вы предлагаете? CH-P?
      https://canhacker.ru/проекты/ch-p/


      1. kizup
        23.08.2025 13:18

  1. ki11j0y
    23.08.2025 13:18

    Можно делать анализ и разбирать с помощью телематики, GalileoSky и Navtelecom из того чем пользовался.


    1. NutsUnderline
      23.08.2025 13:18

      так оно и стоит. и главное зачем, когда здесь без лишних посредников