wb_editors
556
правок
N.kulikov (обсуждение | вклад) |
Vdromanov (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
<languages/> | <languages/> | ||
<translate> | <translate> | ||
<!--T:1--> | <!--T:1--> | ||
Порты CAN доступны в системе как сетевые интерфейсы can0 или can1, в зависимости от модели контроллера. | Работа происходит через стандартную подсистему Linux SocketCAN. Порты CAN доступны в системе как сетевые интерфейсы can0 или can1, в зависимости от модели контроллера. Для работы CAN на контроллерах до версии 6.7.x нужен джампер терминатора на порту. Начиная с версий 6.7.x, терминатор управляется программно и включается автоматически. | ||
<!--T: | == Настройка ==<!--T:3--> | ||
<gallery widths=400px heights=400px mode="packed"> | |||
Image:Can iface.png|Настройка can-интерфейса. Allow-hotplug позволяет интерфейсу подниматься автоматически. | |||
Image:Can enable.png|Перевод порта RS485-2 в режим CAN и включение драйвера can в linux. | |||
</gallery> | |||
<!--T: | ==== Через web-интерфейс ====<!--T:4--> | ||
Действия происходят в разделе Configs web-интерфейса: | |||
Переключите порт RS-485/CAN в режим CAN: На вкладке Hardware Modules Configuration выберите настройки RS485-2/CAN interface config, выберите Module type '''CAN interface''' и нажмите кнопку Save. | # На вкладке Network Interfaces добавьте новый интерфейс can0 (см. скриншот). Нажмите кнопку Save. | ||
# Переключите порт RS-485/CAN в режим CAN: На вкладке Hardware Modules Configuration выберите настройки RS485-2/CAN interface config, выберите Module type '''CAN interface''' и нажмите кнопку Save. | |||
<!--T:5--> | <!--T:5--> | ||
CAN-интерфейс будет подниматься сам при: | |||
* Загрузке системы (сервис wb-hwconf-manager). | |||
* Выставлении порта RS-485/2 в режим CAN. | |||
==== Стандартными средствами linux (автоматически) ====<!--T:6--> | |||
Раздел Network Interfaces web-интерфейса - это обёртка вокруг файла /etc/network/interfaces => настройку CAN можно произвести с помощью службы управления сетями debian. Для этого нужно: | |||
# Добавить в /etc/network/interfaces запись вида:<syntaxhighlight lang="bash"> | |||
allow-hotplug can0 | |||
iface can0 can static | |||
bitrate 125000 | |||
</syntaxhighlight> | |||
# Переключить порт RS-485-2 в режим CAN | |||
Получим результат, аналогичный настройке через web-интерфейс. | |||
==== Стандартными средствами linux (вручную) ====<!--T:7--> | |||
После переключения порта в режим CAN, нужно выполнить: | |||
<pre> | <pre> | ||
ip link set can0 up type can bitrate 125000 | ip link set can0 up type can bitrate 125000 | ||
</pre> | </pre> | ||
== Работа с CAN ==<!--T:8--> | |||
<!--T:2--> | |||
Утилиты cansend и candump присутствуют в стандартном наборе ПО контроллера. Если по каким-то причинам их нет, можно поставить пакет can-utils: | |||
<pre> | |||
apt update; apt install can-utils | |||
</pre> | |||
<!--T: | <!--T:9--> | ||
отправка 4 байтов c адресом 123: | отправка 4 байтов c адресом 123: | ||
<!--T: | <!--T:10--> | ||
<pre> | <pre> | ||
cansend can0 123#DEADBEEF | cansend can0 123#DEADBEEF | ||
</pre> | </pre> | ||
<!--T: | <!--T:11--> | ||
показывать входящие пакеты: | показывать входящие пакеты: | ||
<!--T: | <!--T:12--> | ||
<pre> | <pre> | ||
candump can0 | candump can0 | ||
</pre> | </pre> | ||
<!--T: | <!--T:13--> | ||
показать статистику: | показать статистику: | ||
<!--T: | <!--T:14--> | ||
<pre> | <pre> | ||
cat /proc/net/can/stats | cat /proc/net/can/stats | ||
Строка 48: | Строка 74: | ||
<!--T: | <!--T:15--> | ||
Обратите внимание, что в случае проблем на шине (нет терминатора, нет принимающего устройства, короткое замыкание), контроллер может прекратить работу. | Обратите внимание, что в случае проблем на шине (нет терминатора, нет принимающего устройства, короткое замыкание), контроллер может прекратить работу. | ||
Для того, чтобы начать работу вновь, выполните | Для того, чтобы начать работу вновь, выполните | ||
<!--T: | <!--T:16--> | ||
<pre> | <pre> | ||
ifconfig can0 down && ip link set can0 up type can bitrate 125000 | ifconfig can0 down && ip link set can0 up type can bitrate 125000 | ||
Строка 58: | Строка 84: | ||
<!--T: | <!--T:17--> | ||
Больше информации смотрите в [http://www.armadeus.com/wiki/index.php?title=CAN_bus_Linux_driver статье]. | Больше информации смотрите в [http://www.armadeus.com/wiki/index.php?title=CAN_bus_Linux_driver статье]. | ||
</translate> | </translate> |