translator, wb_editors
4544
правки
(Новая страница: «Configuring the interface») |
Matveevrj (обсуждение | вклад) (Новая страница: «For more information see the «AmadeuS» wiki article «[http://www.armadeus.com/wiki/index.php?title=CAN_bus_Linux_driver CAN bus Linux driver]».») Метки: правка с мобильного устройства правка из мобильной версии |
||
(не показано 17 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
<languages/> | <languages/>The work takes place through a standard Linux subsystem - SocketCAN. CAN ports are similar to network interfaces <code>can0</code> or <code>can1</code>, 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 == | |||
[[Image:Can iface.png|300px|thumb|right|Configuring the can interface. Allow-hotplug allows the interface to rise automatically]] | |||
[[Image:Can enable.png|300px|thumb|right|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 <code>wb-mqtt-confed</code> package to version 1.2.3+ | |||
Switch the RS-485/CAN port to CAN mode: | Actions take place in the '''Configs''' section of the web-interface: | ||
# On the '''Network Interfaces''' tab, add a new interface <code>can0</code> (see screenshot). Click the '''Save''' button. | |||
# Switch the <code>RS-485/CAN</code> 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 <code>wb-hwconf-manager</code> 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 <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-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: | |||
<syntaxhighlight lang="bash"> | |||
ip link set can0 up type can bitrate 125000 | ip link set can0 up type can bitrate 125000 | ||
</ | </syntaxhighlight> | ||
== Working with CAN == | |||
The <code>cansend</code> and <code>candump</code> utilities are included in the controller's standard software package. If for some reason they are not there, you can install the <code>can-utils</code> package: | |||
<syntaxhighlight lang="bash"> | |||
apt update && apt install can-utils | |||
</syntaxhighlight> | |||
< | Command examples: | ||
* Sending four bytes with address 123: | |||
*:<syntaxhighlight lang="bash"> | |||
cansend can0 123#DEADBEEF | cansend can0 123#DEADBEEF | ||
</ | </syntaxhighlight> | ||
< | * Show incoming packets: | ||
*:<syntaxhighlight lang="bash"> | |||
candump can0 | candump can0 | ||
</ | </syntaxhighlight> | ||
< | * Show statistics: | ||
*:<syntaxhighlight lang="bash"> | |||
cat /proc/net/can/stats | cat /proc/net/can/stats | ||
</ | </syntaxhighlight> | ||
Please note that in case of problems on the bus (no terminator, no receiving device, short circuit), the controller may stop working. | |||
To start working again, run: | |||
<syntaxhighlight lang="bash"> | |||
< | |||
ifconfig can0 down && ip link set can0 up type can bitrate 125000 | ifconfig can0 down && ip link set can0 up type can bitrate 125000 | ||
</ | </syntaxhighlight> | ||
For more information see the «AmadeuS» wiki article «[http://www.armadeus.com/wiki/index.php?title=CAN_bus_Linux_driver CAN bus Linux driver]». |