can-utils

Hardware & Industrial v2025.01 · 28.01.2025 >1 года

Стандартный набор CLI-утилит для Linux SocketCAN. Ключевые инструменты: cansniffer (анализ изменений), cangen (генерация фреймов), cansend (отправка), candump (дамп трафика), canplayer (воспроизведение), canbusload (нагрузка шины). Де-факто стандарт для CAN-анализа в Linux.

v2025.01
28.01.2025 current
Добавлен 13.07.2026 · Обновлён 13.07.2026 · Hardware & Industrial
Установка
sudo apt install can-utils
# Виртуальный CAN для тестирования
modprobe vcan && sudo ip link add dev vcan0 type vcan && sudo ip link set up vcan0
candump vcan0
переведено ИИ

Логотип SocketCAN

Утилиты и инструменты SocketCAN в пользовательском пространстве

Этот репозиторий содержит некоторые утилиты пользовательского пространства для подсистемы Linux CAN (также известной как SocketCAN):

Основные инструменты для отображения, записи, генерации и воспроизведения трафика CAN

  • candump : отображение, фильтрация и запись данных CAN в файлы
  • canplayer : воспроизведение файлов журнала CAN
  • cansend : отправка одного кадра
  • cangen : генерация (случайного) трафика CAN
  • cansequence : отправка и проверка последовательности кадров CAN с инкрементирующейся полезной нагрузкой
  • cansniffer : отображение различий в содержимом данных CAN

Доступ к CAN через IP-сокеты

  • canlogserver : ведение журнала кадров CAN и их предоставление
  • bcmserver : интерактивная конфигурация BCM (удаленная/локальная)
  • socketcand : использование RAW/BCM/ISO-TP сокетов через TCP/IP сокеты
  • cannelloni : туннель SocketCAN на основе UDP/SCTP

Конфигуция шлюза CAN в ядре

  • cangw : инструмент пользовательского пространства для конфигурации шлюза CAN через netlink

Измерение и тестирование шины CAN

  • canbusload : расчет и отображение загрузки шины CAN
  • can-calc-bit-timing : версия в пользовательском пространстве для расчета битрейта в ядре
  • canfdtest : программа дуплексного тестирования (часть для тестируемого устройства и часть для хоста)
  • canerrsim : симулятор сообщений об ошибках CAN

Инструменты ISO-TP ISO15765-2:2016 для Linux

  • isotpsend : отправка одного PDU ISO-TP
  • isotprecv : получение PDU ISO-TP
  • isotpsniffer : 'прослушивание' PDU ISO-TP
  • isotpdump : 'прослушивание' и интерпретация сообщений CAN (CAN_RAW)
  • isotpserver : IP-сервер для простого мостирования TCP/IP <-> ISO 15765-2 (ASCII HEX)
  • isotpperf : визуализация производительности протокола ISO15765-2
  • isotptun : создание двунаправленного IP-туннеля через ISO-TP на CAN

Инструменты J1939/ISOBus

  • j1939acd : демон заявления адреса
  • j1939cat : взятие файла и его отправка/получение по CAN
  • j1939spy : перехват сообщений J1939 с использованием SOC_J1939
  • j1939sr : отправка/получение из stdin или в stdout
  • testj1939 : отправка/получение тестового пакета

Перейдите по ссылке, чтобы увидеть примеры того, как можно использовать эти инструменты: Руководство по началу работы с can-j1939 в Linux

Инструменты файлового сервера ISOBus

  • isobusfs-cli : файловый клиент ISOBus
  • isobusfs-srv : файловый сервер ISOBus

Конвертеры файлов журнала

  • asc2log : конвертация журнала ASC в компактный журнал кадров CAN
  • log2asc : конвертация компактного журнала кадров CAN в журнал ASC
  • log2long : конвертация компактного представления кадров CAN в читаемый пользователем вид

Конфигурация последовательной линейной дисциплины (для драйвера slcan)

  • slcan_attach : инструмент пользовательского пространства для конфигурации интерфейса CAN на последовательной линии
  • slcand : демон для конфигурации интерфейса CAN на последовательной линии
  • slcanpty : создает pty для приложений, использующих ASCII-протокол slcan

Генератор проектов CMake

  • Размещайте папку сборки где угодно, передавая CMake путь. Относительный или абсолютный.
  • Несколько примеров с использованием папки сборки в корне дерева исходников:
  • Android : cmake -DCMAKE_TOOLCHAIN_FILE=~/Android/Sdk/ndk-bundle/build/cmake/android.toolchain.cmake -DANDROID_PLATFORM=android-21 -DANDROID_ABI=armeabi-v7a .. && make
  • Android Studio : скопируйте репозиторий в папку app вашего проекта, добавьте add_subdirectory(can-utils) в ваш файл CMakeLists.txt после cmake_minimum_required(). Генерация проекта соберет Debug/Release для всех поддерживаемых типов EABI. т.е. arm64-v8a, armeabi-v7a, x86, x86_64.
  • Raspberry Pi : cmake -DCMAKE_TOOLCHAIN_FILE=~/rpi/tools/build/cmake/rpi.toolchain.cmake .. && make
  • Linux : cmake -GNinja .. && ninja
  • Linux Eclipse Photon (Debug) : CC=clang cmake -G"Eclipse CDT4 - Unix Makefiles" ../can-utils/ -DCMAKE_BUILD_TYPE=Debug -DCMAKE_ECLIPSE_VERSION=4.8.0
  • Чтобы переопределить базовую директорию установки, используйте: CMAKE_INSTALL_PREFIX т.е. CC=clang cmake -DCMAKE_INSTALL_PREFIX=./out .. && make install

Дополнительная информация:

Комментарии
Войдите, чтобы оставить комментарий