«В электронике все — это либо АЦП либо ЦАП: аудио кодеки, датчики, тот же 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 |
Ссылки
Название |
URL |
WeActStudio.USB2CANFDV1 |
|
https://docs.google.com/spreadsheets/d/1X25fF9UKQxbNZy49xOPuAorWi8ZBsr_LF1MqkwdYDfs/edit?gid=0#gid=0 |
|
USB2CANFD Converter |
https://www.chipdip.ru/product/usb2canfd-converter-adapter-usb-canfd-can2.0-weact-studio-9001923010 |
zephyr/boards/weact /usb2canfdv1 |
https://github.com/zephyrproject-rtos/zephyr/tree/main/boards/weact/usb2canfdv1 |
Почему Нам Нужен UART-Shell? (или Добавьте в Прошивку Гласность) |
|
SLCAN Protocol Implementation |
https://deepwiki.com/normaldotcom/canable2-fw/2-slcan-protocol-implementation |
CanJab |
|
USB2CANFDV1 |
https://docs.zephyrproject.org/latest/boards/weact/usb2canfdv1/doc/index.html |
SavvyCAN |
|
CAN-шина (Теория) |
|
ЛикБез по CAN-FD |
|
Обзор Переходника USB-CAN (SYS TEC USB-CANmodul1) |
|
Обзор USB-CAN переходника USBCAN-II C |
|
Обзор Протокола ISO-TP [ISO 15765-2] |
Вопросы
Где можно скачать *.pdf файл с полной схемотехникой CAN‑трансивера USB2CANFD V1?
Существует ли какая бесплатная клиентская Windows CAN утилита, которая посылает и принимает по ISO‑TP огромные массивы сырых данных (бинарные файлы)? Утилита, которая оперирует не на канальном уровне, а на транспортном. Что‑нибудь типа аналога культовой tool‑ы NetCat, только не для Ethernet протокола, а для CAN пакетов.
Комментарии (7)
ECRV
08.09.2025 12:47А софт для анализа шин такой слабый и колхозный, или он такой только для canfd?
Собственно, получаем следующее размышление, какой была бы идеальная софтина для usb2can на ваш взгляд, или какой софт является отличным примером?
NutsUnderline
08.09.2025 12:47есть весьма навороченный busmuster он умеет протокол slcan но вроде не умеет canfd
Исходники открыты
andrei_zhukouski
А 8Мбит скорость поддерживает?
aabzel Автор
Не должен. Чип установленной физики SIT1051A поддерживает только 5MBit/s