1

Тема: LIN ретранслятор

Здравствуйте. Никак не получается корректно врезаться в шину Lin
От устройства Master к Slave отправляются две строки нулевой длинны с адресами 009 и 00С
В ответ к мастеру уходит уже 2 байта с адреса 009 и 8 байт с адреса 00С
У меня получается так, что поочередно, через раз, то с 009, то с 00С уходит ноль байт.
В мониторе это выглядит как моргание строк. Если в диаграмме отключаю один из адресов, то второй уже возвращает ответ мастеру корректно.
Подскажите пожалуйста, где надо искать ошибку?

Вложений в сообщении

Иконка вложения lin1-lin2.cfd 15.12 кб, скачивался 26 раз, последний раз 2019-06-13 

2

Re: LIN ретранслятор

Если контроллер должен выступать в качестве нескольких Slave-узлов, т.е. отвечать на запросы MASTERa по нескольким ID, то для корректной работы устройства следует использовать режим MULTISLAVE.

3

Re: LIN ретранслятор

Вот его пока и не получается реализовать нормально.

4

Re: LIN ретранслятор

niko пишет:

Вот его пока и не получается реализовать нормально.

В приведенной в сообщении №1 диаграмме режим MULTISLAVE не использован.
Приведите диаграмму, использующую режим MULTISLAVE, с которой возникают трудности.

5

Re: LIN ретранслятор

Прикрепил другую диаграмму. В этом варианте не отправляются данные на запрос мастера. Не могу понять как правильно организовать отправку данных  в режиме multislave. Так, что бы с каждого адреса уходили те данные, которые отправляет подчиненное устройство.

Вложений в сообщении

Иконка вложения L1L2M.cfd 13.58 кб, скачивался 21 раз, последний раз 2019-06-13 

6

Re: LIN ретранслятор

Продолжаю разбираться дальше. Поэтапно. Если я подставляю статичные данные на отправку, то у меня режим multislave работает нормально. Практически. Иногда проскакивает отправка с адресов 009 и 00С без данных. Примерно один раз на 15 - 20. Эту диаграмму приложил. Соответственно я либо не правильно считываю данные, отправляемые подчиненным устройством, либо неправильно подставляю их на отправку Мастеру

Вложений в сообщении

Иконка вложения L1L2M_V2.cfd 12.12 кб, скачивался 23 раз, последний раз 2019-06-14 

7

Re: LIN ретранслятор

Вариант решения во вложении (сокращенный, для демонстарции).
Особенность LIN в том, что там очень строгие временные интервалы при запросе MASTERом данных от SLAVE. Данные должны быть готовы к передаче в момент поступления запроса, т.е. заранее.
В приложенной диаграмме контроллер сам, самостоятельно, с определенным интервалом опрашивает SLAVE и размещает полученные данные в слоты MULTISLAVE, подготавливая данные для забора MASTERом. Эти данные постоянно обновляются и MASTER, забирая их будет всегда получать самую последнюю информацию.

UPD: Заменил диаграмму на немного доработанную.

Вложений в сообщении

Иконка вложения L1L2M+.cfd 7 кб, скачивался 22 раз, последний раз 2019-06-14 

8

Re: LIN ретранслятор

Денис, спасибо за пример! Некоторые моменты не понятны. Буду разбираться.