Как известно, в широкой продаже не существует компьютеров с интерфейсов CAN. Зато во всех настольных компьютерах и LapTop(ах) есть USB. В связи с этим для отладки оборудования с CAN нужны всяческие переходники USB-CAN. Одним их таких является немецкий гаджет SYS TEC USB-CANmodul1
Немного Теории про интерфейс CAN
CAN -это двух проводной дифференциальный последовательный полудуплексный интерфейс для передачи бинарных данных между электронными платами PCB. В качестве кабеля чаще всего применяют одну экранированную витую пару проводов: CAN_L, CAN_H.
Электролиния CAN на минимальной битовой скорости 10 кбит/с может достигать аж 5ти км. На максимальной битовой скорости 1 Мбит/с — 40 метров.
Главное преимущество интерфейса CAN — это разрешение коллизий без потери битовой скорости. Если два узла начнут передавать пакеты, то проложит передачу то устройство у которого меньше ID.
CAN определяет два уровня модули OSI-7: физический и канальный. То есть CAN определяет также и бинарную структуру пакета в кабеле. В пакете CAN фигурируют такие переменные как ID пакета, 8байт данных, длина пакета, 15 битная контрольная сумма, биты подтверждения ACK.
На уровне приложения обычно делают J1939, CanOpen, UDS и прочие протоколы.
CAN интерфейс реализован аппаратно во многих микроконтроллерах как цифровая электрическая цепь внутри SoC. Это микроконтроллеры от STm, Artery и проч.
Я лично видел как интерфейс 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 |
Драйвер |
Если прямо из коробки его воткнуть в 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 шине. Показывает, как принятые извне CAN пакеты так и отправленные самим собой CAN пакеты. Можно анализировать сеанс связи. Вот этот вид можно назвать водопадом. Пакеты сыплются снизу вверх.
Однако, чтобы сэкономить площадь монитора, в программе CANinterpreter можно также просматривать статистику по ID пакетам
Скорее всего вы разрабатываете прошивку для электронной платы 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 networ. |
USB |
Universal Serial Bus |
P. |
personal computer |
MAC |
medium access control . |
SoC |
System on a chip |