«В электронике все — это либо АЦП либо ЦАП: аудио кодеки, датчики, тот же CAN адаптер можно рассматривать, как сдвоенный однобитный AЦП + ЦАП.»

В этом тексте я произвел обзор USB-CAN переходника USB2CANFD V1, который я купил себе на Aliexpress, чтобы поиграться. USB2CANFD V1 - относительно новое устройство (2024 год), которое вобрало в себя всё самые проверенные временем подходы к разработке программно-аппаратных решений. При этом устройство оказалось еще и весьма бюджетным вариантом для отладки CAN шины. Стоит всего 600 рублей! Вдумайтесь, CANFD за 600 руб! Такого рода переходники порой просто необходимы, так как в LapTop компьютерах не делают порта для CAN интерфейса.

В сущности любой аналоговый CAN-PHY ASIC можно рассматривать, как однобитный ADC + DAC с прикрепленным аппаратным конечным автоматом (CAN-MAC) для синтаксического разбора структуры CAN пакета внутри какого-нибудь микроконтроллера (в данном случае STM32G0B1CBT6).

Теорию CAN интерфейса можно почитать тут. По CAN-FD можно почитать тут. Там написано более чем достаточно. Здесь же поговорим о практических аспектах работы с данным гаджетом, про то с какой стороны следует подходить к работе на CAN-трансивере USB2CANFD V1.

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

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

Наименование

Количество

Назначение

Кабель USB-C

1

Для соединения переходника и компьютера

Переходник с USB-A(гнездо) на USB-C вилка

1

Чтобы подключиться к телефону

Плата USB2CANFD V1

1

сам переходник с USB на CAN

плоская отвертка

1

чтобы монтировать провода к клемнику

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

2

для подключения между PCB

Переходник основан на MCU STM32G0B1CBT6. Плата выглядит так.

Условно можно представить аппаратную часть вот такой блок-схемой. Устройство состоит из CAN front-end в виде SIT1051A (однобитный ADC+DAC) и CAN back-end в виде STM32G0B1CBT6 (MAC контроллер).

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

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

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

Версия

Пояснение

CanGaroo

0.2.4

Клиентская утилита для PC

Terminal

v1.9b

Терминал последовательного порта

SavvyCAN

any

Клиентская утилита для PC

PuTTY

any

Терминал последовательного порта

При подключении появляется COM8 порт. Битовая скорость 1152000 бит/c.

Протокол управления трансивером текстовый. Называется SLCAN. Можно в консоли в текстовом режиме управлять устройством. Примерно как в случае с AT-командами. После каждой команды надо отправлять 0x0d (\r). Так как тут виртуальный COM порт, то baud rate можно выбрать любой.

Точно так же можно управлять трансивером из-под PuTTY. Буквально голыми руками. Надо лишь в настройках Terminal поставить принудительный возврат каретки при нажатии ender и активировать локальное эхо.

После чего CAN-трансивером можно управлять прямо из командной строки.

Когда нам что-то присылают, то в терминале переходника мы обнаружим по одной строчке на принятый CAN пакет. Что-то вот такое.

Это несколько основных текстовых команд протокола SLCAN.

Запрос

Ответ

Пояснение

V

WeAct Studio V1.0.0.3_bb264e71

Reads the firmware version

M0

--

Set to normal mode (default)

O

--

Opens the CAN channel

S6

--

Set the nominal bit rate to 500k

E

CANable Error Register: 0

Read the failure state

t002133

--

Отправить CAN пакет ID:0x002 Размер:1байт 0x33

TIIIIIIIILDD...

?

Transfer data frame (extended ID) [ID, length, data]

bIIILDD...

?

Transmit CANFD standard frames (BRS enabled) [ID, length, data]

Если извне нам присылают пакет, то в последовательном порте он появится как текстовая строчка. Например, строка t0013444455 значат, что принят CAN пакет ID:0x1,Size:3,Data: 0x444455

Хорошо что есть текстовый протокол для управления устройствам. Текстовый протокол понимает и человек и программа.

Еще для взаимодействия с трансивером существуют GUI утилиты. Для взаимодействия с трансивером USB2CANFD V1 со стороны LapTop PC можно прибегнуть к GUI утилите под названием СanGaroo.

После запуска надо выбрать Measurement ->Start Measurement (F5).

Выбрать битовую скорость и нажать OK.

В клиентском ПО можно видеть принятые и отправленные пакеты.

При CAN отправке прошивка мигает синим LEDом. При приеме прошивка мигает зеленым LEDом.

Программа СanGaroo так устроена, что в окне Transmit View в каждый отдельный момент времени можно отправлять только одно CAN сообщение. Это не всегда удобно для отладки прошивок. Однако это легко обойти. Надо выбрать Windows->New->Transmit View ->Measurement ->Stop Measurement ->Start Measurement (F5) и сконфигурировать еще одно CAN сообщение для отправок.

SavvyCAN

Второй утилитой для работы с переходником USB2CANFD_V1 является SavvyCAN. Открываем Connection->Open connection Window ->Add New Device Connnection. Выбираем SLCAN Serial, COM порт и выставляем битовую скорость CAN

Появится вот такое окно

Затем можно переключится на основное окно и выбирать разнообразные метрики трафика: рассматривать те или иные ID.

Можно менять вид

Можно рассматривать даже отдельные биты внутри полей данных.

Отправить же пакет можно в окне Fuzzing (размытие). Производится это наклёвыванием курсором мышки нужных вам битов в CAN-матрице пакета.

Недостатки трансивера USB2CANFD_V1

--Нет доступа к схемотехнике. К слову, именно поэтому не ясно зачем нужна 8ми пиновая квадратная микросхема в верхнем слое.
--Нет корпуса. Хотя это и не надо, так как сверху и снизу присутствуют два защитных экрана из плексигласа.
--Официальная клиентская программа СanGaroo не показывает счетчик принятых CAN пакетов. Хотя эта функция присутствует у других клиентский утилит (например PCAN-View, SavvyCAN)

Достоинства трансивера USB2CANFD_V1

++Есть serial command line interface (CLI). Это значит, что вы можете писать свои собственные PC программы для управления трансивером USB2CANFD_V1. Достаточно всего лишь открыть COM порт и начать посылать и принимать пакеты.
++Благодаря приложению CanJab можно управлять трансивером USB2CANFD_V1 буквально с мобильного телефона.
++Есть поддержка CAN-FD.
++Дешево. Ну сами посчитайте... Где вы еще купите CAN-FD трансивер за 600 руб? Это же просто чудо!

++Миниатюрное исполнение. CAN-трансивер размером с USB-flash-ку. Помещается в спичечный коробок. Ничего не весит среди оборудования для командировок.
++Есть поддержка платы в Zephyr Project. Можно сварить для платы USB2CANFD_V1 свою custom made прошивку.

Итог

Удалось научиться пользоваться USB-CAN переходником USB2CANFD_V1. Удалось понять как отправлять и как принимать CAN пакеты.

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

Это открывает дорогу для полноценной отладки устройств с подключениями к CAN шине.

Словарь

Акроним

Расшифровка

CAN

Сontroller area network bus 

USB

Universal Serial Bus

MAC

Medium access control

PHY

Physical layer

MCU

microcontroller unit

CLI

Command-line interface

GUI

Graphical User Interface

PCB

Printed circuit board

CAN FD

Controller Area Network Flexible Data-Rate

Ссылки

Вопросы

  1. Где можно скачать *.pdf файл с полной схемотехникой CAN‑трансивера USB2CANFD V1?

  2. Существует ли какая бесплатная клиентская Windows CAN утилита, которая посылает и принимает по ISO‑TP огромные массивы сырых данных (бинарные файлы)? Утилита, которая оперирует не на канальном уровне, а на транспортном. Что‑нибудь типа аналога культовой tool‑ы NetCat, только не для Ethernet протокола, а для CAN пакетов.

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


  1. andrei_zhukouski
    08.09.2025 12:47

    А 8Мбит скорость поддерживает?


    1. aabzel Автор
      08.09.2025 12:47

      Не должен. Чип установленной физики SIT1051A поддерживает только 5MBit/s


  1. ECRV
    08.09.2025 12:47

    А софт для анализа шин такой слабый и колхозный, или он такой только для canfd?

    Собственно, получаем следующее размышление, какой была бы идеальная софтина для usb2can на ваш взгляд, или какой софт является отличным примером?


    1. aabzel Автор
      08.09.2025 12:47

      Самое лучшее и удобное, что я держал в руках для CAN отладки было у компании Vector Informatik GmbH.
      Но они наc забанили, поэтому выкручиваемся, как можем.


    1. NutsUnderline
      08.09.2025 12:47

      есть весьма навороченный busmuster он умеет протокол slcan но вроде не умеет canfd

      Исходники открыты


    1. imEngineer
      08.09.2025 12:47

      CanHacker


  1. NutsUnderline
    08.09.2025 12:47

    однобитный ADC + DAC

    помниться это когда то называли компаратор.