Задержка обработки сигнала IDLE (FLAG_CONFIG_IDLE_DELAY 0x08) deprecated¶
Иногда случается, что при мониторинге взаимодействия Master и Slave устройства последнее отвечает с задержкой, большей чем предусматривает стандарт. Поэтому мы предусмотрели возможность установить задержку по обработке сигнала IDLE, возникающего на шине. Для настройки данного параметра используется структура:
enum LIN_IDLE_DELAY {
LIN_IDLE_DELAY_None = 0,
LIN_IDLE_DELAY_100us,
LIN_IDLE_DELAY_200us,
LIN_IDLE_DELAY_250us,
LIN_IDLE_DELAY_500us,
LIN_IDLE_DELAY_750us,
LIN_IDLE_DELAY_1000us,
LIN_IDLE_DELAY_1500us,
LIN_IDLE_DELAY_2000us
};
typedef struct {
CommandHeader header;
uint8_t delay;
} __attribute__((packed)) ChannelConfigureIdleDelay;
Здесь в поле delay заносится значение индекса задержки.
Запрос
Поле | Значение |
header.command | 0x11 |
header.sequence | порядковый номер запроса |
header.flags | FLAG_CHANNEL_x + FLAG_CONFIG_IDLE_DELAY |
header.dSize | 0x01 |
delay | значение из LIN_IDLE_DELAY |
Ответ
Если запрос успешно обработан и значение индекса задержки в поле delay задано из допустимого диапазона значений.
Поле | Значение |
command | 0x91 |
sequence | порядковый номер запроса |
flags | 0x00 |
dSize | 0x00 |
Если запрос не обработан.
Поле | Значение |
command | 0xFF |
sequence | порядковый номер запроса |
flags | 0x00 |
dSize | 0x00 |
Пример
Настройка задержки обработки IDLE в канале 3 на 1000 микросекунд.
⇒ 11 xx 68 01 06
⇐ 91 xx 00 00
Настройка канала 3 с заданием неверного индекса задержки обработки IDLE.
⇒ 11 xx 68 01 10
⇐ FF xx 00 00