1 (08-05-2020 13:11:10 отредактировано CarambaMSK)

Тема: 2 slave устройства на LIN1

Здравствуйте,
На LIN шине есть 2 SLAVE устройства, работающие по одинаковому алгоритму, но с разными исходными условиями.
Второе ID (C1) никогда не попадает в регистр установки LIN ID (то же самое для регистров D0-D3). Не могу найти решение, кроме как использовать две линии LIN 1 ID / LIN 2 ID.

Помогите решить задачу.

Диаграмму прикрепил.

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

Иконка вложения подача ремня 5.cfd 7.43 кб, скачивался 16 раз, последний раз 2020-05-08 

2

Re: 2 slave устройства на LIN1

Диаграмма не прикрепилась.

3

Re: 2 slave устройства на LIN1

прикрепил

4

Re: 2 slave устройства на LIN1

Задача решается с использованием одного контроллера с задействованным одним интерфейсом LIN.
Решение аналогично отправке нескольких сообщений в CAN (пример №4).
Нужно уточнить, как проходит обмен данными по LIN. Наверняка, мастер периодически (но наверное нет смысла делать это на каждом цикле выполнения диаграммы, лучше установить периодичность 20-50мс), по очереди отправляет сообщения с одним и с другим ID. При этом данные для сообщений формируются на основании информации полученной из CAN.

5 (08-05-2020 14:58:05 отредактировано CarambaMSK)

Re: 2 slave устройства на LIN1

Данные формируются не из CAN. Из CAN формируются условия по которым нужно отправлять ту или иную команду для LIN Slave. Всего по 2 команды для каждого Slave, но в момент времени для каждого Slave могут быть разные команды.
Отправка данных происходит однократно (два одинаковых сообщения через 100мс) после этого прекращается, до изменения условий (либо принудительной повторной отправки по кнопке *вход1/0*)

6

Re: 2 slave устройства на LIN1

Если я правильно понял задачу, то вариант алгоритма отправки LIN сообщений может быть таким (см.вложение). Наверняка в нем не учтены некоторые особенности работы системы, но исходя из предоставленных данных должно работать корректно (проверьте работу алгоритма в симуляторе).

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

Иконка вложения c72duo_belt_ctrl.cfd 2.92 кб, скачивался 18 раз, последний раз 2020-05-08 

7 (22-05-2020 09:22:34 отредактировано CarambaMSK)

Re: 2 slave устройства на LIN1

предложенная схема не работает в моем случае, т.к. в регистры установки для каждого LIN ID попадает только одно значение D0-D3, а оно должно меняться в зависимости от условий.

набросал блок схему алгоритма (в файле), может так будет проще чем словесное описание..
значения D0-D3 для LIN ID 1 и для LIN ID 2 - одинаковые.

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

Иконка вложения Презентация2.jpg 41.89 кб, скачивался 2 раз, последний раз 2020-05-08 

8

Re: 2 slave устройства на LIN1

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

Если я правильно понял задачу, то вариант алгоритма отправки LIN сообщений может быть таким (см.вложение). Наверняка в нем не учтены некоторые особенности работы системы, но исходя из предоставленных данных должно работать корректно (проверьте работу алгоритма в симуляторе).

предложенная схема не работает в моем случае, т.к. в ней, в регистры установки для каждого LIN ID, попадает только одно значение D0-D3, а оно должно меняться в зависимости от условий.

набросал блок схему алгоритма (пост выше), может так будет проще чем словесное описание..
значения D0-D3 для LIN ID 1 и для LIN ID 2 - одинаковые.

Можете предложить решение?

9

Re: 2 slave устройства на LIN1

CarambaMSK пишет:

...Можете предложить решение?

Задача решается на основе приведенного ранее примера, с добавлением необходимых условий.
Блок-схема, к сожалению, понимания не добавляет, т.к. об отправке каких-либо сообщений в случае если условие CAN1 или условие CAN2 не выполняются речи выше не было и принцип их отправки неясен. Словесное описание, дополняющее схему, никогда не бывает лишним.

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

Иконка вложения c72duo_belt_ctrl_1.cfd 4.42 кб, скачивался 18 раз, последний раз 2020-05-22