С Новым годом! Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/29: Рейтинг темы: голосов - 29, средняя оценка - 4.59
1 / 1 / 0
Регистрация: 09.02.2012
Сообщений: 693

Синхронизация задач FreeRTOS на разных контроллерах

22.09.2017, 18:38. Показов 5720. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Подскажите, как организовать синхронизацию (одинаковых) задач FriiRTOS на нескольких контроллерах через шину (например CAN)?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.09.2017, 18:38
Ответы с готовыми решениями:

freeRTOS, правильное создание задач?
Здравствуйте. Прошу наставления. Я создал новый проект в IAR для STM32F217 из демки freeRTOS-а для STM32F407. Как учат буквари, делаю...

Синхронизация задач
есть 2 независимые задачи. Обе должны получать доступ к модулю wifi. Каждая из задач при завершении выключает модуль, что может прервать...

Неправильная синхронизация задач
Здравствуйте! Есть такая задача: реализовать паралельное вычисление формулы: A = B * MC (где A, B - массивы, MC - матрица). Вычисление на...

10
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 382
22.09.2017, 19:06
В высокоприоритетном прерывании по приему из шины специально выделенного кода переводить требуемую задачу на повышенный относительно других приоритет. Затем, через какое-то время обязательно возвращать приоритет на прежний уровень. Но полной синхронности не будет, будет задержка, равная передаче-приему-обработке команды + кванты времени переключений задач. Уменьшить задержки позволит отдельная однобитная сигнальная линия и прерывание по EXTI. Но рассогласование все равно будет до 1 кванта времени.
Вообще, вы уверены, что вам нужна эта синхронность? Либо уверены ли, что вам нужна RТОS?
0
1 / 1 / 0
Регистрация: 19.09.2012
Сообщений: 924
23.09.2017, 09:30
Цитата Сообщение от __bt__
Подскажите, как организовать синхронизацию (одинаковых) задач FriiRTOS на нескольких контроллерах через шину (например CAN)?
Полагаю, стоит описать задачу более подробно, поскольку в общем виде это задача синхронизации состояния узлов распределенной сети, а это достаточно не простая задача.
0
1 / 1 / 0
Регистрация: 09.02.2012
Сообщений: 693
23.09.2017, 18:16
На нескольких датчиках подключенных между собой по шине CAN работает FriiRTOS. Динные каждые 10 мс отправляются в ту же шину. Задача синхронизации состоит в том, чтобы датчики одновременно отправляли данные или в буфер отправки одновременно клали значения полученные с сенсоров. Поэтому выход такой: задача ждёт семафора, который отдаётся после приёма спец. сообщения по CAN.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 382
23.09.2017, 19:35
Напротив, задача "синхронизации состояния узлов" - вполне примитивная задача. Посылается широковещательное сообщение типа "Взвооодд! Смммирррно! Равнение на знамя!". Синхронизация заложена уже в шине. Адресный I2C с включенным "общим вызовом" так же обладает возможностью синхронизации.

Топикстартеру:
Во-первых, на МК простых датчиков не следует ставить никаких ОС, они и без ОС хорошо работают, и даже более того, ОС лишняя там. Используйте обычные прерывания, DMA. Во-вторых, строго одновременно отправлять в одну шину ото всех датчиков все равно не получится, да еще и синхронизировать по этой же шине.
От собирающего устройства посылайте всем запрос типа "Хачю палучить инфу!" (remote frame, по терминологии CAN) и пусть все датчики сразу же по получению начинают изменять и передавать инфу. Механизм разрешения коллизий определяется самой шиной. А все сообщения являются широковещательными уже сразу в шине.
0
1 / 1 / 0
Регистрация: 19.09.2012
Сообщений: 924
23.09.2017, 20:50
Цитата Сообщение от BusMostir
Напротив, задача "синхронизации состояния узлов" - вполне примитивная задача.
В общем случае - нет. В условиях описанных топикстартером - да, вполне примитивная.

P.S. хотя да, о чем это я. врядли вы понимаете о чем идет речь "в общем виде".
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 382
23.09.2017, 22:05
В том то и фишка, что здесь "в общем виде" для случаев компьютерных сетей не обсуждается. Вы ж не эмбеддер, посему конкретных задач вы и не делали и с CAN-шиной не знакомы. И не надо тужиться, не по зубам вам этот каменный цветок, это не ваша область, так будьте добры, не мешайтесь с "общими случаями"
0
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
23.09.2017, 22:15
ivsy, тебя не удивляет , что все созданное тобой состоит из костылей?
Как бы здесь не кичились любители быдлокодинга с писюка, но все что они могут наваять -костыль на костыле...
0
1 / 1 / 0
Регистрация: 19.09.2012
Сообщений: 924
24.09.2017, 08:31
Цитата Сообщение от BusMostir
В том то и фишка
Что вам обязательно надо продемонстрировать илитность. Да, я в курсе.
0
1 / 1 / 0
Регистрация: 19.09.2012
Сообщений: 924
24.09.2017, 08:32
Цитата Сообщение от dosykus_2
ivsy, тебя не удивляет ,
Нет, ваши домыслы на мой счет меня совсем не удивляют.
0
0 / 0 / 0
Регистрация: 26.01.2009
Сообщений: 3
24.09.2017, 09:45
Цитата Сообщение от __bt__
На нескольких датчиках подключенных между собой по шине CAN работает FriiRTOS. Динные каждые 10 мс отправляются в ту же шину. Задача синхронизации состоит в том, чтобы датчики одновременно отправляли данные или в буфер отправки одновременно клали значения полученные с сенсоров.
В CANopen, к примеру, именно для этой задачи придумали SYNC. По приходу пакета все дружно считываем датчики (или отдаем семафоры ждущим задачам), потом не торопясь передаем значение. Можно, разумеется, тоже самое и поверх голого CAN реализовать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.09.2017, 09:45
Помогаю со студенческими работами здесь

Синхронизация таблиц из разных БД
ЭстЪ две БД. В одной таблица, так исторически сложилось, на пару-тройку полей больше. При помощи приблуды данные из длинной таблицы...

Синхронизация БД разных структур
Доброго времени суток. Пожскажите, пожалуйста, или поделитесь опытом, если у кого был такой. Задача: есть БД БД1, БД2 (одинаковой...

Синхронизация данных на разных листах
Доброго времени суток, друзья! Я новичок на данном ресурсе. Совсем мало знаю о макросах и о EXCEL. Рою интернет в поисках уже несколько...

Синхронизация ШИМ от разных устройств
Доброго времени суток, народ. В процессе учебной деятельности, возникла одна интересная задача. Суть в следующем: имеются 3...

Синхронизация полей из разных таблиц
Всем добрый день, Есть база поступления и выдачи оборудования на складе. В общем-то основные нужные мне функции я сделал, но есть одна...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru