Поддержка CAN FD для Virtual CAN (vcan) на SocketCAN
Я уже давно пользуюсь SocketCAN и особенно Virtual CAN vcan. Однако до сих пор я никогда не использовал CAN FD (Flexible Datarate).
Ну, я попробовал это сегодня утром, используя can-utils:
cansend vcan0 123##122
Тем не менее, я получил ответ "CAN интерфейс не поддерживает CAN FD". Интерфейс vcan был создан с использованием следующих команд терминала:
ip link add dev vcan0 type vcan
ip link set up vcan0
Кто-нибудь знает, поддерживает ли Vcan CAN FD? Если да, как мне настроить интерфейс vcan, поддерживающий CAN FD?
Конфигурация системы: Ubuntu 14.04.1 на VirtualBox.
Заранее спасибо, мав
2 ответа
Мой коллега нашел решение:
ip link add dev vcan0 type vcan
ip link set vcan0 mtu 72
Опция "mtu 72" устанавливает правильный максимальный размер передачи для CAN FD. После этого vcan принимает сообщения CAN FD.
MAW
Отличная находка, MAW!
Это работает как шарм. Вот что я сделал, следуя твоему совету. Пожалуйста, обратите внимание, что команды являются общими и что есть подготовка среды, в которую я НЕ хочу входить!
Чтобы установить каркас socketCAN под ядро Linux (я использую 4.17.2), пожалуйста, от имени пользователя root:
lsmod | grep can
modprobe can
modprobe can_raw
modprobe can-bcm
modprobe can-dev
modprobe can-gw
modprobe vcan
lsmod | grep can
Чтобы установить каркас socketCAN-Fd, необходимо сделать следующее (также как пользователь root):
ip link add dev vcan0 type vcan
ip link set vcan0 mtu 72
ip link set dev vcan0 up
ifconfig
Пакет can-utils необходим для тестирования каркаса socketCAN-Fd. Также необходимо следующее: https://github.com/mguentner/cannelloni
И все работает как швейцарские часы!:-)
На стороне xmit: cangen -f vcan0 -v vcan0
2C3 ## 0.25.5A.FF.1E.DC.BD.CB.42.25.5A.FF.1E.DC.BD.CB.42.25.5A.FF.1E.DC.BD.CB.42.25.5A.FF.1E.DC.BD.CB.42.25.5A.FF.1E.DC.BD.CB.42.25.5A.FF.1E.DC.BD.CB.42.25.5A.FF.1E.DC.BD.CB.42.25.5A.FF.1E.DC.BD.CB.42
На принимающей стороне: Candump Vcan0
vcan0 2C3 [64] 25 5A FF 1E DC BD CB 42 25 5A FF 1E DC BD CB 42 25 5A FF 1E DC BD CB 42 25 5A FF 1E DC BD CB 42 25 5A FF 1E DC BD CB 42 25 5A FF 1E DC BD CB 42 25 5A FF 1E DC BD CB 42 25 5A FF 1E DC BD CB 42
Отлично! Спасибо вам большое!
никто