В автомобильных шинах распространены пробуждение по проводу, по сети и по конкретному сигналу, а LIN-шина реализует это через кадр сна и уровень пробуждения. В статье — механизмы пробуждения и засыпания LIN и их настройка в TSMaster.

Ключевые слова: LIN, сетевое управление, сон, пробуждение, WakeUp.

1. Сетевое управление

В протоколе LIN 2.1 сетевое управление — это управление сном и пробуждением сети. На рис. 1 показаны состояния связи подчинённого LIN-узла:

  • Инициализация — вход после сброса или пробуждения: узел выполняет необходимую инициализацию и переходит в рабочее состояние. Инициализация здесь — именно LIN-инициализация; сброс и пробуждение — разные виды инициализации; инициализация завершается за 100 мс.
  • Работа — в LIN-сети идут приём и передача сообщений.
  • Режим сна шины — на LIN-шине держится рецессивный уровень; на шине может появляться только уровень пробуждения.
Состояния подчинённого LIN-узла
Рис. 1. Состояния связи подчинённого LIN-узла

2. Пробуждение

В спящей LIN-сети любой узел (главный или подчинённый) может отправить уровень пробуждения и разбудить сеть. Уровень пробуждения длится 250 мкс — 5 мс. Остальные узлы должны детектировать импульс длительнее 150 мкс и за 100 мс подготовиться слушать LIN-шину — то есть в течение 100 мс от конца импульса быть готовыми к приёму заголовка от главного узла (рис. 2). Если уровень пробуждения послал подчинённый узел, он сразу готовится принимать заголовок кадра или передавать сообщение, а главный узел обязан в течение 100 мс отправить заголовок и начать обмен.

Приём сигнала пробуждения
Рис. 2. Приём сигнала пробуждения подчинённым узлом

Если после выдачи уровня пробуждения за 150–250 мс шина не приняла ни одного кадра, узел, отправивший уровень, должен послать новый сигнал пробуждения; всего сигнал может быть отправлен до трёх раз (рис. 3).

Блок сигналов пробуждения
Рис. 3. Один блок сигналов пробуждения

После трёх неудачных запросов пробуждения узел должен подождать не менее 1,5 с и только затем выдать четвёртый уровень пробуждения (рис. 4).

Длинный сигнал пробуждения
Рис. 4. Затянувшийся сигнал пробуждения

Для выполнения этих требований в TSMaster есть модуль настройки параметров сигнала пробуждения WakeUp (рис. 5).

Настройка WakeUp в TSMaster
Рис. 5. Настройка параметров сигнала пробуждения в TSMaster

Длина уровня пробуждения = 1 000 000 / Baudrate · (BitNum). Например, при скорости 19,2 кбод и BitNum = 5 длительность уровня — 260,4 мкс (рис. 6).

Осциллограмма уровня пробуждения
Рис. 6. Осциллограмма сигнала пробуждения

Если задать Trigger Times = 3 и интервал срабатывания 3 мс, TSMaster отправит несколько кадров пробуждения с интервалом 3 мс (рис. 7): сначала уровень пробуждения (260,4 мкс), через 3 мс — снова уровень, и так циклически три раза (рис. 8).

Настройка многократного пробуждения
Рис. 7. Настройка многократного пробуждения в TSMaster
Осциллограмма многократного пробуждения
Рис. 8. Осциллограмма многократного пробуждения

3. Засыпание

LIN-шина переходит в сон в двух случаях:

  • кадром сна служит диагностический кадр запроса главного узла 0x3C;
  • когда на LIN-шине 4–10 с нет переключений рецессивного и доминантного уровней, узлы засыпают автоматически. По LIN 2.1 сообщение сна должен выдавать главный узел; содержимое кадра показано на рис. 9.
Кадр сна LIN
Рис. 9. Содержимое кадра сна

В окне передачи LIN в TSMaster выберите узел и канал и нажмите кнопку «Goto Sleep» (рис. 10) — кадр сна можно наблюдать на осциллографе (рис. 11).

Кнопка Goto Sleep
Рис. 10. Отправка кадра сна кнопкой Goto Sleep
Осциллограмма кадра сна
Рис. 11. Осциллограмма кадра сна LIN