Пакеты поддержки модулей для ЗОСРВ «Нейтрино» > AArch64 (ARM64) > BSP для устройств на основе процессора Rockchip RK3568 > Описание компонентов > Список компонентов, входящих в состав ППМ > dev-can-rockchip



dev-can-rockchip

Драйвер CAN для контроллеров Rockchip RK3568/RK3588

Синтаксис:

dev-can-rockchip chip=name [can] [опции] [can [опции]]...

Где can это can0, can1 или can2

Опции:

chip=name
Название SoC. Возможные значения - rk3568, rk3588.
-A
Включить режим (autobus).
Контроллер автоматически выполняет восстановление из состояния bus_off,
если на шине обнаружено 128 последовательных рецессивных битов.
По умолчанию - отключен.
-b список
Автонастройка параметров работы контроллера.
Для опции -b переменная список определяет последовательность чисел, разделенных запятой.
По умолчанию - 125000, 87.5.
Вводимые параметры:
bitrate
целевой битрейт (в бит/c)
sample_point
целевая точка выборки (в процентах, возможно десятичное значение)
-c список
Ручная настройка параметров работы контроллера.
Для опции -c переменная список определяет последовательность чисел, разделенных запятой.
Вводимые параметры:
brp
предделитель частоты тактирования CAN-контроллера (1-64)
tseg1
первый временной сегмент битового периода (0-15)
tseg2
второй временной сегмент битового периода (0-7)
sjw
максимальная ширина коррекции синхронизации (0-3)
-f число
Настройка частоты тактирования устройства.
По умолчанию - 300.
Вводимые параметры:
clk
частота тактирования CAN-контроллера. Доступные значения (в МГц):
  • 50
  • 100
  • 300
-i список
Переопределить идентификаторы входящих сообщений.
Для опции -i переменная список определяет последовательность чисел, разделенных запятой.
По умолчанию - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0.
Вводимые параметры:
cid
шаблон ID, который определяет, какие сообщения устройство будет принимать
-L
Включить loopback режим.
По умолчанию - отключен.
-m список
Переопределить фильтры входящих сообщений.
Для опции -m переменная список определяет последовательность чисел, разделенных запятой.
По умолчанию - 0x0, 0x0, 0x0, 0x0, 0x0, 0x0.
Вводимые параметры:
cmask
маска, которая указывает, какие биты идентификатора должны быть проверены
Бит установленный в 0, игнорируется (замаскирован).
Бит, установленный в 1, проверяется на соответствие cid.
-M число
Переопределить количество сообщений почтового ящика каждого устройства.
По умолчанию – 1000.
-n число
Переопределить количество (максимум 6) входящих почтовых ящиков.
По умолчанию - 1.
-R
Включить режим (RXsTX) работы, при котором контроллер может принимать передаваемые данные.
-S
Включить тройную выборку битрейта.
По умолчанию - одиночная.
-t число
Переопределить идентификатор исходящего сообщения.
По умолчанию - 0x0.
-T число
Включить аппаратные временные метки CAN-кадров.
Переменная число задает предделитель для внутреннего счетчика, который тактируется от частоты контроллера.
По умолчанию - отключены.
-v
Включить расширенную запись отладочной информации в системный журнал.

Платформы:

ЗОСРВ «Нейтрино»

Целевые архитектуры:

aarch64

Описание:


Caution: Для запуска этого драйвера необходимо войти в систему под учетной записью root.


Caution: До запуска драйвера необходимо убедиться, что запущен менеджер ресурсов platform-control.

Драйвер шины CAN для контроллеров RK3568/RK3588.

После запуска драйвер dev-can-rockchip создает устройства.
По умолчанию – /dev/can0/rx0 и /dev/can0/tx1.


Caution: Для достижения требуемой скорости передачи сообщений необходимо обеспечить нулевую погрешность скорости путем корректировки параметра sample_point.


Caution: При возникновении аппаратных ошибок (получении прерываний overload_int) кадры не передаются. Контроллер сбрасывается.
При восстановлении цепи, будут переданы только вновь отправленные сообщения.


Note: Аппаратный фильтр контроллера включен на прием всех входящих сообщений. Дополнительные аппаратные фильтры не задействуются.
Драйвер работает с программными фильтрами по правилу: <received_can_id> & mask == can_id & mask.


Note: Физический CAN-кадр использует либо 11-битный (стандартный), либо 29-битный (расширенный) идентификатор. Для указания типа ID в 32-битной переменной применяются управляющие флаги:
Установите бит 31 (0x80000000), чтобы использовать расширенный ID (29 бит).
Установите бит 30 (0x40000000), чтобы отправить RTR-кадр (без данных).
Остальные младшие биты (0–28) содержат непосредственно значение ID.

Таблица проверенных корректных значений параметров для частоты 300 МГц

Bitrate (bps)
BRP
TSEG1
TSEG2
SJW
125000
59
14
3
1
250000
59
6
1
1
500000
29
6
1
1
500000
14
14
3
1
1000000
14
5
2
2

Функции драйвера:

Основные функции

Функция Поддержка
Режим Autobus
+
Режим Loopback
+
Ручная настройка параметров битрейта (TSEG1, TSEG2, SJW, BRP)
+
Аппаратная фильтрация по ID с маской для каждого приёмного ящика
+
Расширенная операция записи через CAN_DEVCTL_WRITE_CANMSG_EXT
+
Расширенная операция чтения через CAN_DEVCTL_READ_CANMSG_EXT
+
Дублирование принятых сообщений между приёмными почтовыми ящиками при пересечении фильтров
+
Установка идентификатора передаваемого кадра для конкретного mailbox’а через CAN_DEVCTL_SET_MID
+
Чтение текущего идентификатора mailbox’а через CAN_DEVCTL_GET_MID
+

Расширенные функции

Функция Поддержка
CAN FD
-
Аппаратный RX/TX FIFO
-
Режим Listen-Only
-
Передача/приём через DMA
-
Режим тройной выборки битрейта
+
Автоматический расчёт параметров битрейта по заданной скорости
+
Несколько независимых аппаратных mailbox’ов для передачи
-
Несколько независимых аппаратных mailbox’ов для приёма
+
Сброс CAN-контроллера через CAN_DEVCTL_RESET
+
Чтение регистров ошибок через CAN_DEVCTL_ERROR
-
Установка маски фильтра для конкретного приёмного mailbox’а через CAN_DEVCTL_SET_MFILTER
+
Чтение маски фильтра конкретного приёмного mailbox’а через CAN_DEVCTL_GET_MFILTER
+
Настройка локального приоритета отправки кадров через CAN_DEVCTL_SET_PRIO
-
Чтение локального приоритета отправки кадров через CAN_DEVCTL_GET_PRIO
-
Сброс счётчика временных меток через CAN_DEVCTL_SET_TIMESTAMP
-
Чтение текущего значения счётчика временных меток через CAN_DEVCTL_GET_TIMESTAMP
+
Вывод отладочной информации через CAN_DEVCTL_DEBUG_INFO на стандартный поток вывода или в лог
+

Примеры:

Запуск драйвера для двух контроллеров на Rockhip 3568.
Для нулевого контроллера включен режим autobus. Параметры, определяющие битрейт
будут расчитаны автоматически.
Также включена запись отладочной информации в системный журнал.
Для первого контроллера ручной ввод параметров, определяющих итоговую скорость передачи данных.

dev-can-rockchip chip=rk3568 can0 -A -b 250000,87 -v can1 -c 29,6,1,1

Классификация:

BSP для систем на базе процессоров Rockchip RK3568, RK3588, драйверы




Предыдущий раздел: перейти