CAN/en: различия между версиями

Материал из Wiren Board
(Новая страница: «==== Using standard linux tools (automatically) ==== The '''Network Interfaces''' section of the web interface is a wrapper around the <code>/etc/network/interfaces</code> file, so CAN configuration can be done using the debian network management service. For this you need: # Add to <code>/etc/network/interfaces</code> an entry like this: #:<syntaxhighlight lang="bash"> allow-hotplug can0 iface can0 can static bitrate 125000 </syntaxhighlight> # Switch RS-48...»)
(Новая страница: «==== Using standard linux tools (manually) ====»)
Строка 27: Строка 27:
We will get a result similar to setting through the web-interface.
We will get a result similar to setting through the web-interface.


==== Стандартными средствами linux (вручную) ====
==== Using standard linux tools (manually) ====


После переключения порта в режим CAN, нужно выполнить:
After switching the port to CAN mode, you need to do:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
ip link set can0 up type can bitrate 125000
ip link set can0 up type can bitrate 125000

Версия 22:59, 3 октября 2022

Другие языки:

The work takes place through a standard Linux subsystem - SocketCAN. CAN ports are similar to network interfaces can0 or can1, depending on the controller model. For CAN to work on controllers up to version 6.7.x, you need a terminator jumper on the port. Starting from version 6.7.x, the terminator is controlled by software and turns on automatically.

Setting

Configuring the can interface. Allow-hotplug allows the interface to rise automatically
Setting the RS485-2 port to CAN mode and enabling the can driver in linux

Via web interface

To configure via the web interface, you need to update the wb-mqtt-confed package to version 1.2.3+

Actions take place in the Configs section of the web-interface:

  1. On the Network Interfaces tab, add a new interface can0 (see screenshot). Click the Save button.
  2. Switch the RS-485/CAN port to CAN mode: on the Hardware Modules Configuration tab, select the settings RS485-2/CAN interface config, select in the Module type «CAN interface» and click the Save button.

The CAN interface will rise by itself when:

  • system boot - service wb-hwconf-manager is responsible for this,
  • change the RS-485/2 port mode to «CAN».

Using standard linux tools (automatically)

The Network Interfaces section of the web interface is a wrapper around the /etc/network/interfaces file, so CAN configuration can be done using the debian network management service. For this you need:

  1. Add to /etc/network/interfaces an entry like this:
    allow-hotplug can0
    iface can0 can static
    bitrate 125000
    
  2. Switch RS-485-2 port to CAN mode

We will get a result similar to setting through the web-interface.

Using standard linux tools (manually)

After switching the port to CAN mode, you need to do:

ip link set can0 up type can bitrate 125000

Работа с CAN

Утилиты cansend и candump есть в стандартном наборе ПО контроллера. Если по каким-то причинам их нет, можно поставить пакет can-utils:

apt update && apt install can-utils

Примеры команд:

  • Отправка четырех байт c адресом 123:
    cansend can0 123#DEADBEEF
    
  • Показывать входящие пакеты:
    candump can0
    
  • Показать статистику:
    cat /proc/net/can/stats
    


Обратите внимание, что в случае проблем на шине (нет терминатора, нет принимающего устройства, короткое замыкание), контроллер может прекратить работу. Для того чтобы начать работу вновь, выполните:

ifconfig can0 down && ip link set can0 up type can bitrate 125000

Больше информации смотрите в вики проекта «AmadeuS», статья «CAN bus Linux driver».