1 (31-01-2022 13:20:10 отредактировано pro-1)

Тема: Работа с LIN

Здравствуйте, начал изучение программирования контроллера. Пробую сделать два действия при работе с шиной LIN в slave
1. При запросе мастера ID 11, в ответ отправлять 3D 00 31 2C 33 0E 00 00
2. При получении данных от мастера по ID 3C и данные 00 FF FF FF FF FF FF FF переходить в спящий режим

У кого есть опыт, не могли бы посмотреть правильно ли я сделал диаграмму ?

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

Иконка вложения c72duo_lin_klr.cfd 3.19 кб, скачивался 163 раз, последний раз 2022-01-31 

2

Re: Работа с LIN

В целом подход верный, но есть небольшие ошибки.
В диаграмме не выполнено первичное заполнение буфера передачи SLAVE (rev.A: выполняется заполнение буфера передачи при появлении питания).
Для оценки команды мастера "всем спать" следует проверять содержание всего сообщения.

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

Иконка вложения c72duo_lin_klr_1.cfd 4.79 кб, скачивался 136 раз, последний раз 2022-01-31 

3

Re: Работа с LIN

На самом деле, управление режимом сна правильнее будет организовать так (см.вложение).

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

Иконка вложения c72duo_lin_klr_1a.cfd 5.19 кб, скачивался 158 раз, последний раз 2022-01-31 

4

Re: Работа с LIN

Денис, CANNY пишет:

На самом деле, управление режимом сна правильнее будет организовать так (см.вложение).

Денис, спасибо за помощь ! Буду экспериментировать с подключенной шиной, посмотрим что получится )

5

Re: Работа с LIN

Изменил в диаграмме, отправляемые сообщения по ID 11, значения D0-D3 заданы 16-ю значениями и изменяются поочередно в цикле после отправки предыдущего сообщения в шину. Сомнения возникли в правильности сброса счётчика и использования индекса в цикле. Нужно чтобы индекс менялся после каждой отправки и не дублировался, а также чтобы не  индекса 16 (чтобы в регистр не записался 0 после коммутатора и далее не был передан в шину). Не могли бы посмотреть, всё ли верно ? Руководствовался примером передачи сообщений №4.

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

Иконка вложения c72duo_lin_klr_04.cfd 7.89 кб, скачивался 130 раз, последний раз 2022-02-08 

6

Re: Работа с LIN

pro-1 пишет:

...Нужно чтобы индекс менялся после каждой отправки и не дублировался, а также чтобы не  индекса 16 (чтобы в регистр не записался 0 после коммутатора и далее не был передан в шину)...

В этой части все в принципе верно. Значения в буфер сообщения передачи Slave записываются только в момент записи ненулевого значения в регистр начала передачи LIN. После отправки сообщения с индексом 15 значение блока №21 "Счетчик" станет равным 16, но только на 1 проход диаграммы, т.к. он будет сброшен блоком №26 и на следующем цикле выполнения диаграммы для записи в буфер передачи LIN будут подготовлены данные, соответствующие значению индекса 0.

7 (13-04-2023 07:04:04 отредактировано pro-1)

Re: Работа с LIN

Здравствуйте, подскажите, в авто есть два штатных устройства по LIN, мастер и слэйв. Можно ли как-то подключится к этой шине с помощью Canny 7.2, чтобы слушать обмен по этой шине, без отсылки каких то данных, как бы в режиме "listen only" ? Интересуют данные по одному ID, на основе которых нужно принимать решения в диаграмме Canny.

8

Re: Работа с LIN

Это возможно. Подключите выбранный канал контроллера к шине и сконфигурируйте его как SLAVE с нужными параметрами.
Контроллер будет принимать все сообщения передаваемые по шине.
На этом принципе построен LIN-monitor (https://canny.ru/docs/canmon/).