2016-12-14 2 views
0

У меня есть целевая плата, где есть интерфейс can, управляемый драйверами peak. На стороне хоста я установил can-utils. У меня есть кабель can, который обнаруживается как /dev/ttyUSBx, когда я плагин.Как связаться с банком с помощью slcan?

Целевая плата получает candata на 500000 бод

Так на хосте я выполнил,

sudo modprobe can 
sudo modprobe can-raw 
sudo modprobe slcan 

sudo slcand -o -s8 -t hw -S 500000 /dev/ttyUSBx 
sudo ip link set up slcan0 

тогда я послал candata от хоста с помощью:

cansend slcan0 600#ffffffffffffff 

я могу см. то же самое, используя candump slcan0 на хосте.

Но я ничего не получаю от цели.

Я попробовал то же самое с другой кабель, в котором я использовал (на хосте)

sudo modprobe can 
sudo ip link set can0 type can bitrate 500000 triple-sampling on 
sudo ifconfig can0 up 

тогда я был в состоянии послать МОЖЕТЕ сообщения. Если я попробую то же самое на предыдущем кабеле, он выдает ошибку, говорящую Cannot find device "can0".

Так как я могу отправить через интерфейс ?

+0

Вы можете разместить ссылку на свой кабель USB-to-CAN? – yegorich

ответ

1

Ваш бит битрейт неправильный. Для установки 500 кбит/с необходимо вызвать следующие команды:

sudo slcand -o -s6 -t hw -S 3000000 /dev/ttyUSBx 
sudo ip link set up slcan0 

-s6 средства CAN битрейтом 500 кбит/с, -s8 означает 1Мбит/с. -S используется для настройки последовательной скорости на USB-контроллер на USB-кабель. Полную таблицу битов бит CAN для slcan можно найти here.

Смежные вопросы