KasperskyOS Community Edition 1.3

Пример can2can

Пример использования драйвера CAN.

Пример демонстрирует использование драйвера CAN для пересылки сообщения между двумя CAN-интерфейсами.

В отличие от примера can_loopback, где используется только один CAN-интерфейс и нет необходимости в дополнительном оборудовании, этот пример требует наличия двух трансиверов подключенных к линиям CAN_H и CAN_L. Описание способов подключения трансиверов ко встроенным CAN-контроллерам находится в директории примера.

Пример отправляет CAN-пакет между интерфейсами can0 и can1. В примере используются настройки классического CAN, что подразумевает ограничение скорости передачи в 1 МБ/с.

При настройке скорости передачи, необходимо использовать только следующие константы:

  • CAN_BR_1MBS
  • CAN_BR_800KBS
  • CAN_BR_500KBS
  • CAN_BR_250KBS
  • CAN_BR_125KBS
  • CAN_BR_62_5KBS

Драйвер CAN не накладывает ограничений на направление отправки сообщений. В примере происходит отправка сообщения из can0 в can1, но при использовании функции CanTransmitFrame, можно выполнить отправку и в обратном направлении.

Тестовый CAN-пакет содержит идентификатор пакета, длину поля данных и сами данные. Описание полей содержатся в структуре CanFrame. Для классического CAN, длина поля данных ограничена 8 байтами.

Файлы примера

Код примера и скрипты для сборки находятся по следующему пути:

/opt/KasperskyOS-Community-Edition-<version>/examples/can2can

Сборка и запуск примера

Этот пример предназначен только для запуска на Radxa ROCK 3A.

При сборке и запуске этого примера на QEMU возникает ошибка. Это ожидаемое поведение, поскольку драйвера CAN для QEMU нет.

См. "Сборка и запуск примеров".