Пролог
Как известно, не существует 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, начало и конец пакета.

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

На уровне приложения обычно делают такие протоколы как 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
Можно заниматься реверс инжинирингом трафика CAN шины автомобиля. Пытаться находить в трафике какие-то осмысленные сигналы в ответ на внешние стимулы. Например нажатие педели газа или тормоза, поворот руля и т. п. Потом продавать эти данные в конторы каршерингов и таксопарки.
Можно отлаживать бортовое оборудование по CAN. Можно повелевать электронными платами внутри агрегатов: обновлять прошивки, вычитывать диагностику, прописывать конфиги.
Можно сделать текстовый мессенджер по 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 пользуетесь вы? Напишите в комментариях.
Ссылки
Название | URL |
GCAN-PLC programming documenet | |
USBCAN-II C Functions | https://www.ecutool.com/products/usbcan-ii-c-can-bus-analyzer-usb-can-converter |
CAN bus | |
Обзор Переходника USB-CAN (SYS TEC USB-CANmodul1) | |
Industrial CAN-bus communication interface card | |
Обзор Протокола ISO-TP [ISO 15765-2] | |
https://docs.google.com/spreadsheets/d/1X25fF9UKQxbNZy49xOPuAorWi8ZBsr_LF1MqkwdYDfs/edit?gid=0#gid=0 | |
LPC1765FBD100K, IC: ARM microcontroller; SRAM: 64kB; LQFP100 |