Как известно, в широкой продаже не существует компьютеров с интерфейсов CAN. Зато во всех настольных компьютерах и LapTop(ах) есть USB. В связи с этим для отладки оборудования с CAN нужны всяческие переходники USB-CAN. Одним их таких является немецкий гаджет SYS TEC USB-CANmodul1
Немного Теории про интерфейс 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 Classic пакета
А это структура CAN пакета с расширенным идентификатором (29 bit)

структура CAN пакета с расширенным идентификатором
На уровне приложения обычно делают такие протоколы как J1939, CanOpen, UDS и прочие.
CAN интерфейс реализован аппаратно во многих микроконтроллерах как цифровая электрическая цепь внутри SoC. Это микроконтроллеры от STm, Artery и проч. Однако есть и отдельные ASIC переходники с SPI на CAN.
Я лично видел как интерфейс CAN используют в автомобилях, RFID считывателях для шахтёров, грузовозах, автобусах, в нано спутниках CubeSat(ах) и космических зондах.
Аппаратная часть
Существует переходник USB-CAN. Называется SYS TEC USB-CANmodul1. Это изделие немецкой компании SYS TEC electronic. Вот так он выглядит в натуре.

Изделие достаточно дорогое около 39597 RUR. Вот распиновка основного CAN разъёма.

Распиновка разъёма DB-9 вилка на фото:

Если проанализировать спеку, то можно понять, что внутри черного пластмассового саркофага должна быть примерно вот такая электронная начинка:

Когда ничего не передается, то на проводах CAN-L CAN-Н напряжение 2.1....2.24V. В итоге разность напряжений равна нулю.
Что надо из документации?
№ | Название документа | Версия | Количество страниц |
1 | USB-CANmodul | 2.06 | 147 |
Что надо из оборудования?
№ | Оборудование | Назначение |
1 | SYS TEC USB-CANmodul1 | Переходник USB-CAN |
2 | Кабель USB-USB micro | Кабель чтобы соединить PC и переходник USB-CAN |
Что надо из ПО?
№ | Название программы | Назначение |
1 | CANinterpreter Lite for USB-CANmodul | Обозреватель CAN пакетов |
2 | SO-387_V6.08r1.exe | Драйвер |
3 | Tera Term | Для подключение к UART-CLI на MCU |
Если прямо из коробки его воткнуть в NetTop PC, то операционная система Windows 10 его не признает.

В связи с этим надо добыть права администратора и установить драйвер и утилиту CANinterpreter от вендора. Без этого софтвера переходник SYS TEC USB-CANmodul1 можно разве что сдать на металлолом.
По умолчанию CANinterpreter устанавливается вот сюда
C:\Program Files (x86)\SYSTEC-electronic\CANinterpreter
C:\Program Files (x86)\SYSTEC-electronic\USB-CANmodul Utility Disk
Когда драйвер установится в диспетчере устройств переходник будет отображаться вот так

Перед непосредственной работой с переходником USB-CAN его следует проинициализировать. Инициализация заключается в том, чтобы выбрать экземпляр и назначить ему битовую скорость.

Утилита CANinterpreter сканирует сырой трафик CAN шине. Показывает, как принятые c улицы CAN пакеты так и отправленные самим собой CAN пакеты. Можно анализировать сеанс связи. CAN пакеты сыплются сверху вниз. Этот вид можно назвать водопадом.

Однако, чтобы сэкономить площадь монитора, в программе CANinterpreter можно также просматривать гистограмму по ID пакетов

Скорее всего Вы разрабатываете прошивку для электронной платы PCB с CANом и микроконтроллером. Чтобы поймать CAN пакеты на стороне MCU Вам пригодится такая технология как UART-CLI.
Плюс в том что в UART-CLI можно прямо руками попросить микроконтроллер испустить какой-то специфический CAN пакет. Вот так.

Ещё на стороне микроконтроллера в UART-CLI отчётливо видно, как прибывают CAN пакеты от утилиты CANinterpreter.

Также видно как микроконтроллер отправляет пакеты c ID: 0x7FF в CAN шину

Вот CAN пакеты c ID: 0x7FF принимает утилита CANinterpreter на host PC.

CAN шина работает.
Когда в CAN шине пробегает пакет зелёный LED (traffic) мигает 2 раза. Если отключить от переходника CAN шину, то красный LED (state) будет мигать с частотой 1Hz.
Идеи проектов с переходником USB-CAN
1--Можно заниматься реверс инжинирингом трафика CAN шины автомобиля. Пытаться находить в трафике какие-то осмысленные сигналы в ответ на внешние стимулы. Например нажатие педели газа или тормоза, поворот руля и т. п. Потом продавать эти данные в конторы каршерингов и таксопарки.
2--Можно отлаживать бортовое оборудование по CAN. Можно повелевать электронными платами внутри агрегатов: обновлять прошивки, вычитывать диагностику, прописывать конфиги.
3--Можно сделать текстовый мессенджер.
Итоги
Научились пользоваться устройством SYS TEC USB-CANmodul1 и софтом для него.
Словарь
акроним | расшифровка |
CAN | controller area network |
USB | Universal Serial Bus |
PC | personal computer |
MAC | medium access control |
SoC | System on a chip |