Настройка Ethernet - CAN-FD
Программное обеспечение можно найти на GitHub https://github.com/VBCores/ethernet-can.
Далее инструкция по настройке платы Ethernet - CAN-FD. Как правило, первые два шага мы сделали уже за вас и их можно опустить.
1. Подготовка платы (Hardware)
На обратной стороне платы необходимо пропаять перемычки (jumper pads) для CAN-FD. В CAN-шине обязательно должны быть установлены резисторы по 120 Ом на первом и последнем устройстве (терминация). Без них связь работать не будет. Плата Ethernet - CAN-FD в типичном подключении выступает как крайнее устройство шины.
2. Прошивка (Firmware)
На плате необходимо прошить два микроконтроллера: STM32H7 и STM32G4. Для этого используйте STM32CubeProgrammer и подключитесь к плате через ST-Link. Скачайте прошивки из раздела Releases репозитория на GitHub.
Для микроконтроллера G4 дополнительно установите параметр Option Byte NSWBoot0 в значение 0 (снимите флажок в разделе OB → Option Bytes).
3. Настройка SD-карты на плате Ethernet - CAN-FD
- Отформатируйте SD-карту в формате FAT16.
- В корневой директории SD-карты создайте файл
ethernet.ini. Его содержимое можно взять отсюда: https://github.com/VBCores/ethernet-can/blob/master/extra/SD-card/ethernet.ini
В файле указываются два IP-адреса: адрес компьютера-хоста (например, Raspberry Pi — запомните его, он понадобится дальше) и адрес самой платы Ethernet - CAN-FD. Важно понимать, что они будут обмениваться данными напрямую, без участия роутера.
Рекомендуется использовать адреса вида 10.0.0.*, где * — любое число на ваш выбор. В целом можно использовать любой диапазон, но желательно, чтобы он не совпадал с диапазоном адресов, которые выдает роутер (например, 192.168.1.*).
4. Настройка сети хоста
Ethernet - CAN-FD — это IP-устройство, работающее по протоколу UDP. Оно считывает статический IP-адрес устройства с SD-карты (ethernet.ini) и отправляет данные на статический IP-адрес хоста. Для корректной работы необходимо выполнить три условия:
- ПК и устройство Ethernet - CAN-FD должны находиться в одной сети, поэтому их нужно соединить напрямую Ethernet-кабелем
- устройство Ethernet - CAN-FD должно иметь уникальный IP-адрес (он был задан на предыдущем шаге)
- IP-адрес хоста не должен меняться — речь идет не о DHCP-адресе от роутера, а о статическом адресе, который мы сейчас назначим вручную
Теперь настроим сеть на ПК.
-
После подключения Ethernet - CAN-FD к ПК по Ethernet-кабелю выполните команду
ip linkи найдите имя Ethernet-интерфейса (чаще всего этоeth0):
-
В папке
/etc/netplanсоздайте файл10-ethernet-can.yaml:
cd /etc/netplan/
sudo nano 10-ethernet-can.yaml
- Вставьте в файл:
network:
version: 2
ethernets:
INTERFACE_NAME:
dhcp4: false
optional: false
addresses:
- 10.0.0.1/24
Вместо INTERFACE_NAME укажите имя своего интерфейса (например, eth0). Если на предыдущем шаге вы использовали диапазон 10.0.0.*, то ничего менять не нужно. Если использовали другой диапазон (например, 10.2.2.*), то здесь следует указать соответствующий адрес (например, 10.2.2.1/24).
В итоге файл должен выглядеть примерно так, как показано на скриншоте:
- Примените настройки:
sudo netplan try
sudo netplan apply
Если появятся предупреждения (warning) — их можно игнорировать.
-
Перезагрузите ПК и заново подключите плату Ethernet - CAN-FD по кабелю.
-
После перезагрузки выполните команду (подставив имя интерфейса) и убедитесь, что адрес назначен:
ip addr show INTERFACE_NAME

Обратите внимание, что по умолчанию в линуксе интерфейс будет находиться в состоянии UP и иметь адрес, только если ethernetcan физически подключен кабелем, поэтому, если все вышеперечисленное проделать, не соединив ПК с Ethernet - CAN-FD кабелем, то на этом пункте ничего не покажется.
- Далее выполните
ping 10.0.0.2(IP вашей платы Ethernet - CAN-FD). Устройство должно ответить.
5. Установка ПО на компьютер
После настройки сети необходимо установить дополнительное программное обеспечение:
cd ~
sudo apt update
sudo apt install -y build-essential cmake libboost-program-options-dev python3 python3-systemd can-utils iproute2 kmod
Затем скачайте репозиторий вместе с подмодулями и соберите проект:
git clone --recurse-submodules https://github.com/VBCores/ethernet-can
cd ethernet-can
cmake -S . -B build
cmake --build build
sudo cmake --install build
После установки должны появиться следующие файлы:
/opt/voltbro/ethernet-can/bin/ethernet-can/opt/voltbro/ethernet-can/bin/start_ethernet_can.py/opt/voltbro/ethernet-can/systemd/ethernet-can.service
6. Настройка конфигурации (.ini)
Создадим и настроим конфигурационный файл .ini:
cd /opt/voltbro/ethernet-can/
sudo nano config_ethernet.ini
Вставьте в файл следующий шаблон:
# Received VCAN frames can be sent immediately upon arrival or collected in batches and sent periodically.
# Immediate transmission increases load on Eth-CAN board.
[DATA_ACQUIZITION]
Period = 10000000 # ns. For immediate transmission set to zero.
[NETWORK_PARAMS]
Host_IP_address = 10.0.0.1
Device_IP_address = 10.0.0.2
# To enable board's FDCAN peripherals, set corresponding network interface to each bus you want to use
[HOST_INTERFACE_MAP]
bus0 = vcan1.0
bus1 = vcan1.1
bus2 = vcan1.2
bus3 = vcan1.3
bus4 = vcan1.4
bus5 = vcan1.5
# To enable FDCAN BRS mode set both the nominal and data rates. To enable classic CAN mode set data rate to zero.
# Some nominal/data combinations may not work.
[FDCAN_PARAMS]
Nominal_baud = 1000 # kbit/s. Values: 125, 250, 500, 1000.
Data_baud = 8000 # kbit/s. Values: 1000, 2000, 4000, 8000.
Сохраните файл и сначала запустите start_ethernet_can.py вручную:
sudo /opt/voltbro/ethernet-can/bin/start_ethernet_can.py
Обратите внимание: каждый файл .ini описывает одну плату Ethernet - CAN-FD. Скрипт start_ethernet_can.py сканирует все файлы *.ini, проверяет их, создает необходимые интерфейсы VCAN и запускает единый процесс хоста с параметрами для всех найденных плат.
Проверим работу. Подключите к Ethernet - CAN-FD любое CAN-устройство (например, микроконтроллерный модуль VBCores VB32G4), загрузите на него простую прошивку, отправляющую данные по CAN (можно использовать пример: https://github.com/VBCores/VBCoreG4_examples/tree/main/examples/can/can_fd).
На ПК откройте второй терминал и прослушайте CAN-шину с помощью команды candump vcan1.N, где N — номер канала (см. маркировку на плате Ethernet - CAN-FD). Если данные появляются — всё работает. После этого можно настроить автозапуск.
7. Автозапуск
Выполните:
sudo install -m 0644 /opt/voltbro/ethernet-can/systemd/ethernet-can.service /etc/systemd/system/ethernet-can.service
sudo systemctl daemon-reload
sudo systemctl enable --now ethernet-can.service
Проверить статус сервиса можно командами:
systemctl status ethernet-can.service
journalctl -u ethernet-can.service -f
Вы должны увидеть примерно следующее:

Дополнительно проверьте, что сообщения приходят:
candump vcanX.Y
где X.Y — это имя CAN-интерфейса, указанного в конфигурационном файле ([HOST_INTERFACE_MAP]), например vcan1.0.