В этом тексте я попробовал выполнить обзор преобразователя с USB на CAN. В Этот раз у меня на операционном столе особый экземпляр: адаптер с USB на CAN от компании Marathon. Полное название CAN-bus-USB Версии 4.0. Он же ГКМН.468351.017-03.

Наклейку с серийным номером можно было бы и на бок прилепить. Там она как-то гармоничнее вписывается и лучше видна на фото в изометрии.
Что надо из доков?
Название дока | Ver | Страниц | Что там полезного? |
Руководство пользователя | 1.1 | 8 | Содержит распиновку основного разъёма |
Библиотека CHAI 2.14.0 Руководство пользователя | 0.24 | 18 | Ликбез по утилите canmon |
Библиотека CHAI 2.14.0 Руководство по разработке программного обеспечения | 0.28 | 53 | Спецификация по написанию своих клиентских утилит для переходника |
CANwise 3.15 Руководство пользователя | 0.26 | 35 | Методичка по работе с клиентской утилитой CANwise |
Аппаратная часть
PCB изделия выглядит так

Если демонтировать саркофаг и присмотреться к PCB, то можно кое-что сказать про BOM.
PartName | pin | purpose |
FTDI 2309-C DM61LC1 FT2232HL | 64 | USB Hi-Speed |
LPC2366FBD100 | 100 | Микроконтроллер |
SCM3725ASA | 8 | Digital Isolator |
LD1117AS33TR | 4 | Стабилизатор напряжения, + 3.3В, 1А |
M93C46-W | 8 | Энергонезависимая память 128Байт |
SN55HVD251 | 8 | CAN transceiver |
Распиновка основного девяти-пинового разъёма такая. Все два CAN интерфейса выведены на один разъём DB-9.

Так как порой приходится подключать перемычки прямо на пины, то удобнее ориентироваться не по таблице, а по дополненной реальности.

Вообще распиновку DB-9 можно было бы и выгравировать на корпусе прибора, или нанести наклейку с легендой хотя бы, ибо площади поверхности на бруске просто немерено.
В широкую клетку можно представить устройство на одной странице.

Программная часть
Что надо из ПО?
Название утилиты | Назначение |
canwise-3.15-win64.exe | Драйвер для WIN 64 бит |
CANMON | Программа позволяющая отправлять и принимать пакеты CAN |
CANwise | Универсальное приложение тестирования и конфигурирования сети CAN, с графическим пользовательским интерфейсом. |
Подготовка драйвера
Я подал питания и увидел, что засветился зеленый USB LED. LED посветил 7 секунд и погас. При первом подключении Win10 не видит известного устройства.

Ок, запускаю установщик драйверов.

По умолчанию драйвер устанавливается сюда C:\Program Files (x86)\CHAI-2.14.0\

После отработки утилиты chai-2.14.0-x64-win81-10.exe надо снова войти в диспетчер устройств и выполнить обновление драйвера из той папки в которую развернулся установщик (C:\Program Files (x86)\CHAI-2.14.0\).

Только так Win10 в самом деле признает новое устройство.

Корректно признанный драйвер будет отображаться в ОС с VID=0x0403 PID=0xE8E9.

После установки драйвера зеленый USB-LED будет светить уже непрерывно. Само собой следует прописать путь C:\Program Files (x86)\CHAI-2.14.0\x64 в переменную PATH.
Клиентское ПО
Основная утилита это CANwise. Надо ее установить.

C:\Program Files\CANwise-3.15\

Открываем утилиту по адресу C:\Program Files\CANwise-3.15\canwise.exe. Выбираем нулевой CAN.

Разворачивается GUI.

В меню HW settings -> Bit rate инициирую установку битовой скорости.

Нажимаю кнопку start. Из другого устройства отправил несколько пакетов. И пакеты в самом деле прибыли на Марафон.

Теперь попробую что-нибудь отправить. Нажимаю кнопку Transmit frames, формирую пакет, нажимаю Transmit. Пакеты в самом деле улетели и принялись на той стороне.

Достоинства
+) Заложена гальваническая изоляция
+) Российская разработка
+) Светодиоды нормальной яркости
+) Есть заземление, которое выходит на CAN кабель через разъём.
+) На PCB есть отверстия
+) В клиентском софте CANwise присутствует дозированная отправка точного количества пакетов.
Что можно улучшить
1--Требуется унизительная процедура регистрации на сайте производителя для скачивания руководства пользователя и клиентского ПО. Не припомню, чтобы у других вендоров CAN-переходников такое тоже было принято.
2--Высокая цена 22kRUR. Это очень дорогой переходник. За такие деньги хотелось бы увидеть алюминиевый корпус, USB-Type-C, больше LEDов. Хотелось бы получить устройство с 5ю или 6ю LEDами. Rx1, Tx1, Rx2, Tx2, Status и Error.
3--Было бы хорошо получить на PLD вилке UART, чтобы управлять устройством без клиентского приложения через CLI на UART. Или дать клиентам отдельную прошивку, которая запускает Serial USB shell для ручного управления прибором через TeraTerm.
4--Нет PLD вилок для подключения логического анализатора на CANx_RX.
5--Хотелось бы увидеть для программирования разъём Tag-Connect
6--Острые края на PCB. Можно оцарапаться.
7--Клиентская утилита CANwise не показывает временной интервал между пакетами с одинаковым ID. TimeStamp и вовсе измеряется в каких-то попугаях.

8--Клиентским утилитам недостает дизайна. На рабочем столе они отображаются без какого бы-то ни было логотипа.

9--После установки драйвера и перезагрузки Win10 так и не обнаружила новое устройство. Пришлось вручную указывать путь к драйверу и повторно инициировать установку драйвера. Только так устройство подхватилось.
10--Консольная версия canmon вообще не заработала. Вылетела с ошибкой при попытке настроить битовую скорость.

11--Чтобы переключить джамперы для терминирующих резюков 120 Om надо демонтировать крышку саркофага. Было бы неплохо вывести переключатели на улицу.
Итог
Удалось научиться пользоваться переходником с USB на CAN от Marathon: отправлять и принимать CAN пакеты в GUI клиенте.
В общем впечатление от прибора позитивные. Приятно узнавать, что и в России умеют делать такие высокотехнологичные приборы.
Словарь
Сокращение | Пояснение |
CAN | Controller Area Network |
USB | Universal Serial Bus |
BOM | Bill of Materials |
CHAI | CAN Hardware Abstraction Interface |
FTDI | Future Technology Devices International |
ОС | Операционная система |
API | application programming interface |
Ссылки
Вопросы
--Почему микроконтроллер LPC2366FBD100 и USB ASIC FTDI 2309-C FT2232HL соединены аж 16ю проводами? Это что за интерфейс такой их связывает вместе?
--Существует ли российский преобразователь USB-CAN и сопутствующее клиентское ПО, которое понимает *.DBC файлы и его софт способен разложить трафик на сигналы (таблицу параметров) в реальном времени?
