B ходе изучения архитектуры микроконтроллера RP2040 мной было разработано устройство для анализа протокола CAN. Инструкцией по самостоятельному изготовлению которого хочу поделится.
Устройство подключается к компьютеру через USB , вход устройства подключается к CAN шине, анализ которой производится.
Протокол передачи данных CAN широко используется в транспорте, промышленности и других отраслях, не буду вдаваться в подробности, раз вы оказались на этой странице моего сайта то прекрасно знаете где будете его применять.
CAN адаптер позволяет наблюдать какая информация передается по CAN шине, а также передавать CAN пакеты, поддерживаются скорости 125, 250 и 500 кбит/секунду.
Выгодной отличительной особенностью устройства является простота изготовления и низкая стоимость компонентов.
Для изготовления понадобится плата RP2040-Zero ценой около 3 долларов США.

И модуль приемопередатчика CAN шины WCMCU-230 ,на базе микросхемы SN65HVD230, цена около 2 долларов США.

Платы соединяются между собой 4 проводами согласно схеме.

Я дополнительно для жесткости закрепил модули на макетной плате и установил на нее быстросъемный разъем. Получилась вот такая конструкция размером со спичечный коробок.

Приобрести данные компоненты необходимые для изготовления можно в любом интернет магазине.
Для того чтобы скачать прошивку нажмите кнопку ниже:
Для того чтобы прошить плату программатор не требуется, для прошивки RP2040-Zero нужно нажимая и удерживая кнопку boot, подключить плату к компьютеру, устройство определится как USB накопитель, остается только закинуть туда файл скачанной прошивки с расширением uf2.

Для работы с устройством можно использовать любую программу для работы с последовательным портом , например : CoolTerm , putty , QCOM, MobaXterm и друге, в сети множество аналогов , я использую программу QCOM от Qectel, она удобна тем что можно заранее прописывать отправляемые команды.
В настройках программы нужно выбрать последовательный порт которым CAN адаптер определился на вашем компьютере. Установить скорость последовательного порта 115200.

Внимание, номер порта на вашем компьютере может быть другим !. Посмотреть его можно в диспетчере устройств.
Устройство передает и принимает команды в формате JSON, при приеме команды расположенный на плате светодиод вспыхивает красным, при передаче зеленым цветом.
Формат представления принятого по CAN пакета данных:
{
"command":2,
"can_id":"0x1ff",
"dlc":8,"
data":["0x01","0x02","0x03","0x04","0x05","0x06","0x07","0x08"]
}
Где:
command – тип выполненной команды ( при приеме сообщения равен 2)
dlc – длина байт
can_id – адрес пакета
data – данные.
Для передачи CAN пакета данных значение поля command должно быть равным 1, именно так устройство понимает что пакет нужно передавать. Передаваемая команда должна быть записана в одну строку и не содержать внутри фигурных скобок символов переноса строки.
После включения по умолчанию CAN адаптер работает на скорости 125 кбит секунду, для того чтобы установить скорость обмена в соответствии с вашими параметрами необходимо послать на устройство команду формата:
{"command":3 , "speed":500}
Параметр speed , это скорость обмена данными на шине CAN , может принимать значения 125, 250, 500 (кбит в секунду).