Ручное задание скорости взаимодействия с шиной LIN (FLAG_CONFIG_BUS_SPEED_M 0x02) deprecated¶
Для ручного задания скорости канала устройства используется структура:
typedef struct {
uint16_t Prescaler;
uint16_t tqSeg1;
uint16_t tqSeg2;
uint16_t SyncJW;
} __attribute__((packed)) BusCustomBaudRate;
typedef struct {
CommandHeader header;
BusCustomBaudRate speed;
} __attribute__((packed)) ChannelConfigureCustomSpeed;
ПРи задании пользовательской скорости учитывается значение поля Prescaler, в который и передаётся значение требуемой скорости. Остальные поля должны быть равны 0.
Запрос
Поле | Значение |
header.command | 0x11 |
header.sequence | порядковый номер запроса |
header.flags | FLAG_CHANNEL_x + FLAG_CONFIG_BUS_SPEED_M |
header.dSize | 0x08 |
speed.Prescaler | 2 байта |
speed.tqSeg1 | 2 байта |
speed.tqSeg2 | 2 байта |
speed.SyncJW | 2 байта |
Ответ
Если запрос успешно обработан и значения полей структуры в поле speed заданы из диапазона допустимых величин.
Поле | Значение |
command | 0x91 |
sequence | порядковый номер запроса |
flags | 0x00 |
dSize | 0x00 |
Если запрос не обработан.
Поле | Значение |
command | 0xFF |
sequence | порядковый номер запроса |
flags | 0x00 |
dSize | 0x00 |
Пример
Настройка LIN канала 1 на скорость 19200бит.
⇒ 11 xx 22 08 00 4B 00 00 00 00 00 00
⇐ 91 xx 00 00