Шина LIN. Сканирование «молчащих» блоков и датчиков

Для начала видео:

Как было описано в предыдущей статье, в структуре шины LIN есть Master узел и Slave  узлы.  Master опрашивает узлы Slave, а те ему отвечают.  В большинстве случаев если просто подать питание на Slave и посмотреть что происходит на его выходе шины LIN, то мы ничего не увидим, поскольку Slave ожидает запрос или пакет от Master узла.

Master узлом как правило является какой-либо блок управления: Блок управления двигателем, салоном, креслами и т. д.  А Slave узлы это различные цифровые датчики, приводы, блоки кнопок управления или джойстики.

Что же делать если стоит задача «оживить»  Slave в отрыве от мастера? Например во время проведения ремонта с целью выяснить исправность Slave узла и вообще шины LIN.

Для решения этой задачи удобно использовать LIN адаптер LIN-K  совместно с USB-CAN интерфейсом CAN-HackerПрограммное обеспечение нашего анализатора шины LIN позволяет автоматически искать запросы для Slave узлов сети LIN.

блок стеклоподъемников

Блок управления стеклоподъемниками автомобиля LADA. Slave узел на шине LIN

В качестве примера рассмотрим работу с блоком управления стеклоподъемниками от автомобиля LADA Granta.

Блок управления стеклоподъемнками является Slave узлом в LIN шине автомобиля LADA, а Master узлом является блок управления комфортом, который отправляет запросы на Slave узлы, а те в свою очередь отвечают ему о своем состоянии. В частности блок управления стеклоподъемниками отвечает статусом нажатия кнопок.

Блок комфорта автомобиля LADA. Master на шине LIN

Блок комфорта автомобиля LADA. Master на шине LIN

Если соединить эти блоки в сеть и параллельно подключить LIN анализатор LIN-K на скорости 9600  бод и будем нажимать кнопки на блоке стеклоподъемников, то мы увидим следующий обмен с пакетами имеющими ID=0x03

Pressed

Пакеты с данными: 00 00 00 C0 — говорят о том, что кнопки не нажаты,  если же нули меняются на другие числа, например 20 02 00 С0  говорят о нажатии кнопок.

Теперь представим, что мастер узла в лице блока комфорта у нас нет, а запустить Slave — блок стеклоподъемников нужно.  Для этого подадим питание на исследуемый блок и LIN адаптер и подключимся к выводу LIN.

Выберем в программе LIN-K виртуальный COM порт к которому подключен наш LIN адаптер, нажмем Connect. Затем установим скорость LIN 9600 бод и нажмем Open LIN.

interface config

В окне принятых сообщений ничего нет. Это следствие того, что Slave ждет запроса от Master -а.

Настроим LIN-K на передачу запросов в заданном диапазоне — функция Bombing

Bomber Config

В такой конфигурации LIN-K будет передавать запросы узлу Slave в диапазоне всех возможных ID на шине LIN от 0 до 0x3C. С каждым ID будет передаваться по 10 запросов.

В случае если Slave прореагирует на отправленный запрос мы увидим этот факт в окне приема:

Bombing2

Как видно из скриншота Slave прореагировал на посылаемый ему запрос с ID =03.

Следует обратить внимание на то, что в передаваемых LIN анализатором ID автоматически рассчитываются биты защиты и значение ID отличается от значения в счетчике, например по счетчику ID=0x02 а передаваемое значение с битами защиты будет равно =0x42

Далее мы можем убрать флаг Bombing и установить значение ID для Master запроса = 03 и мы будем получать ответы от «ожившего» блока кнопок