Пролог
Как известно, не существует 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
1--Можно заниматься реверс инжинирингом трафика CAN шины автомобиля. Пытаться находить в трафике какие-то осмысленные сигналы в ответ на внешние стимулы. Например нажатие педели газа или тормоза, поворот руля и т. п. Потом продавать эти данные в конторы каршерингов и таксопарки.
2--Можно отлаживать бортовое оборудование по CAN. Можно повелевать электронными платами внутри агрегатов: обновлять прошивки, вычитывать диагностику, прописывать конфиги.
3--Можно сделать текстовый мессенджер по CAN.
Итоги
Удалось научиться пользоваться USB-CAN переходником USBCAN-II C. Удалось отправлять и принимать пакеты. Это открывает дорогу для полноценной отладки всяческих 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] |
|
LPC1765FBD100K, IC: ARM microcontroller; SRAM: 64kB; LQFP100 |
JunglBell
" На одну шину можно пристегнуть максимум 127 абонентов. " а как же 240 устройств в пожарной системе ?
aabzel Автор
Вы проверяли? Работает? 240 CAN устройств на одной шине? Какая там была битовая скорость?
x89377
10 000 bps
aabzel Автор
https://en.wikipedia.org/wiki/CAN_bus
Пожарники точно CAN применяют?
gregg666
Всесоюзно любимая система болид работает на RS485 2W (а протокол свой)
aabzel Автор
В случае RS485 может быть и 240 нод.