Проект

Общее

Профиль

Задание скорости взаимодействия с шиной CAN (FLAG_CONFIG_BUS_SPEED 0x00) deprecated

Данная настройка помечена как устаревшая (deprecated).

Для настройки скорости канала устройства для работы с CAN шиной используется структура:

typedef struct {
    CommandHeader header;
    uint8_t speed;
} __attribute__((packed)) ChannelConfigureSpeed;

Здесь в поле speed заносится индекс скорости. На данный момент используется две таблицы скоростей.

Для устройств, которые могу работать с шиной CANFD, используется следующие индексы:

enum nominalCanBitrate {
    NOMINAL_BITRATE_10K = 0,
    NOMINAL_BITRATE_20K,
    NOMINAL_BITRATE_33_3K,
    NOMINAL_BITRATE_50K,
    NOMINAL_BITRATE_62_5K,
    NOMINAL_BITRATE_83_3K,
    NOMINAL_BITRATE_95_2K,
    NOMINAL_BITRATE_100K,
    NOMINAL_BITRATE_125K,
    NOMINAL_BITRATE_250K,
    NOMINAL_BITRATE_400K,
    NOMINAL_BITRATE_500K,
    NOMINAL_BITRATE_800K,
    NOMINAL_BITRATE_1000K,
};

Для взаимодействия с классической CAN шиной используются следующие индексы:
enum canBitrate {
    CAN_BITRATE_10K = 0,
    CAN_BITRATE_20K,
    CAN_BITRATE_33_3K,
    CAN_BITRATE_50K,
    CAN_BITRATE_62_5K,
    CAN_BITRATE_83_3K,
    CAN_BITRATE_95K,
    CAN_BITRATE_100K,
    CAN_BITRATE_125K,
    CAN_BITRATE_250K,
    CAN_BITRATE_400K,
    CAN_BITRATE_500K,
    CAN_BITRATE_800K,
    CAN_BITRATE_1000K
};

Запрос

Поле Значение
header.command 0x11
header.sequence порядковый номер запроса
header.flags FLAG_CHANNEL_x + FLAG_CONFIG_BUS_SPEED
header.dSize 0x01
speed значение из canBitrate или nominalCanBitrate, в зависимости от типа устройства

Ответ
Если запрос успешно обработан и значение индекса скорости в поле speed задано из допустимого диапазона значений.

Поле Значение
command 0x91
sequence порядковый номер запроса
flags 0x00
dSize 0x00

Если запрос не обработан.

Поле Значение
command 0xFF
sequence порядковый номер запроса
flags 0x00
dSize 0x00

Пример
Настройка CAN канала 2 на скорость 20Кбит.

⇒ 11 xx 40 01 01
⇐ 91 xx 00 00

Настройка CAN канала 2 с заданием неверного индекса скорости.

⇒ 11 xx 40 01 10
⇐ FF xx 00 00