Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.53/40: Рейтинг темы: голосов - 40, средняя оценка - 4.53
Ortyom
0 / 0 / 0
Регистрация: 09.07.2015
Сообщений: 51
1

Мультизадачность

12.07.2015, 16:15. Просмотров 7340. Ответов 13
Метки нет (Все метки)

Добрый день, уважаемые форумчане.

Занимаюсь реализацией очередного проекта "Умный дом" в образовательных целях.

Ситуация следующая:
1. приёмник 433 (просто управление с пинов)
2. приёмник 2,4 (SPI)
3. Bluetooth (UART)
модели принципиального значения не имеют, обычные, дешевые, китайские.

Собственно вопрос в том как это всё вместе соединить (концепция), чтобы микроконтроллер мог принимать информацию из различных каналов. т.е. предположим сигнал приходит одновременно и с 1 и со 2 и с 3 устройства. Первым в голову пришло выделить для каждого свой микроконтроллер, чтобы они принимали инфу, обрабатывали и передавали уже управляющему контроллеру результаты. Но это как то жирно. Присматриваюсь в сторону FriiRTOS, но что то не уверен что она решит эту проблему.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2015, 16:15
Ответы с готовыми решениями:

Продемонстрировать мультизадачность, т.е. переключение задач в защищенном режиме
У меня задание - продемонстрировать мультизадачность, т.е. переключение задач в защищенном режиме,...


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

Или воспользуйтесь поиском по форуму:
13
dimyurk1978
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,047
12.07.2015, 17:09 2
РТОС и диспетчеры не обязательно нужны. Датчики опрашивать только последовательно. Другое дело если они сами как попало сигнал могут отправлять. Исходим из того, что с разных интерфейсов приходят данные с датчиков. Поэтому периферия должна быть настроена на прием данных. В обработчиках прерываний кольцевой буфер, выставляем флажки. В основном цикле проверяем флажки. Работаем с буфером. Но сама концепция не верна. По идее, должен какой- то общий интерфейс, датчики пассивны. Опрос датчиков только по команде МК.
0
Mykisoft
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 903
12.07.2015, 17:22 3
Для этого давно придумали прерывания...
И любимый предыдущим оратором конечный автомат...
0
stt
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 9
12.07.2015, 17:25 4
Цитата Сообщение от Ortyom
предположим сигнал приходит одновременно и с 1 и со 2 и с 3 устройства
Что это конкретно за устройства? По какому интерфейсу они общаются с МК? Вообще- то понятие "одновременно" на тех частотах, на которых работает МК, понятие весьма условное (если только вы не работаете с ними по однопроводному интерфейсу). Если же события наступают часто - поднимите тактовую частоту и выставляйте флаги, соответствующие событиям. 8Мгц хватает на работу с SPI I2C, RS232, обработку датчиков плюс вывод на дисплей и еще некоторые плюшки. Концепцию dymyurk1978 описал.
0
12.07.2015, 17:25
omtomtubo
0 / 0 / 0
Регистрация: 23.03.2012
Сообщений: 1,017
12.07.2015, 17:34 5
Если уж действительно сигналы приходят одовременно и недопустимо пропустить ни одного события, можно небольшую cpld для интерфейсов и буфера, связь с мк по параллельному порту.
0
Ymk
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,233
12.07.2015, 18:50 6
Цитата Сообщение от dymyurk1978
Но сама концепция не верна. По идее, должен какой- то общий интерфейс, датчики пассивны. Опрос датчиков только по команде МК.
ага ага, датчикам некуда больше энергию тратить, пусть висят и слушают запрос от МК.

первое, что ТС надо понять - как ему пришедшие данные обрабатывать. скорее всего, их достаточно будет обрабатывать последовательно, поэтому нужна одна очередь. а кто уже будет в нее всё складывать - дело десятое (можно ртос применить с уже готовыми очередями, можно прерывания и городить механизмы синхронизации). важна концепция, а флаги или не флаги - деталь реализации.
0
Ortyom
0 / 0 / 0
Регистрация: 09.07.2015
Сообщений: 51
12.07.2015, 21:12 7
Всем спасибо за ответы, есть над чем задуматься.

Обычный китайский передатчик и приёмник 433:
http://www.ebay.com/itm/5pcs-433Mhz-RF- ... 3a98ee0481
постоянно выдаёт данные из за шума, которые соответственно должны обрабатываться, чтобы не пропустить нужное сообщение.

Обычный китайский приёмо-передатчик nrf24l01, в этот момент может слать другую информацию.
http://www.ebay.com/itm/2Pcs-Wireless-T ... 33915806b7

Блютус пока оставим в стороне.
Опрос датчиков только по команде МК действительно не вариант, особенно если датчики от батареек работают (думал попробовать чтобы приём шёл только определённое время, например четверть секунды вместо целой, но интуиция подсказывает что устройства должны быть в этом случае гораздо более качественные).
Попробую последовательно всё приходящее обрабатывать на 8Мгц. Потом поделюсь тем что получилось.
0
dimyurk1978
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,047
12.07.2015, 23:07 8
Цитата Сообщение от Ymk
ага ага, датчикам некуда больше энергию тратить, пусть висят и слушают запрос от МК.
ТС не уточнил, что батареечное питание датчиков. Хорошо, пусть так. Представим ситуацию, нескольким датчикам вздумалось одновременно передать данные по радиоканалу. Как разруливать собираетесь? Какой вывод напрашивается?
0
itysiy
0 / 0 / 0
Регистрация: 18.01.2012
Сообщений: 1,418
12.07.2015, 23:46 9
Цитата Сообщение от dymyurk1978
Цитата Сообщение от Ymk
ага ага, датчикам некуда больше энергию тратить, пусть висят и слушают запрос от МК.
ТС не уточнил, что батареечное питание датчиков. Хорошо, пусть так. Представим ситуацию, нескольким датчикам вздумалось одновременно передать данные по радиоканалу. Как разруливать собираетесь? Какой вывод напрашивается?
Nrf и блютус имеют встренные аппаратные подтверждения доставки. Для 433 сделать самопальный ack.
0
YTYOUT
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
12.07.2015, 23:51 10
NRF - это вообще прерывание по сути. Он сам себя может обрабатывать , если настроен на сенсоре на передачу. А уж его данные это дело десятое.
0
Ymk
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,233
13.07.2015, 05:44 11
у нрф есть фифо, так что нет проблемы вообще (без разницы, юзается ли авто-ack), 433 на прерываниях декодить (ну или уарт, или что там), а в протокол заложить контрольную сумму. обратная передача точно так же.
0
Ortyom
0 / 0 / 0
Регистрация: 09.07.2015
Сообщений: 51
13.07.2015, 09:34 12
Цитата Сообщение от dymyurk1978
Цитата Сообщение от Ymk
ага ага, датчикам некуда больше энергию тратить, пусть висят и слушают запрос от МК.
ТС не уточнил, что батареечное питание датчиков. Хорошо, пусть так. Представим ситуацию, нескольким датчикам вздумалось одновременно передать данные по радиоканалу. Как разруливать собираетесь? Какой вывод напрашивается?
Самодельный ack должен подойти, датчик не получив подтверждения доставки, шлёт сообщение вновь, рано или поздно должно дойти) По крайней мере если скважность достаточно низкая. Думаю что то типа этого сделать:
[инициализация][адрес получателя][адрес отправителя][информация][контрольная сумма]
0
YTYOUT
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 1,946
13.07.2015, 11:25 13
http://forum.hobbysomponents.com/viewto ... =39&t=1324
А я вот таких купил
Бесплатная доставка 5 шт./лот ESP8266
за 700р 5 шт
http://tim4div.com/2015/03/esp8266-wifi ... ogramming/
0
Ortyom
0 / 0 / 0
Регистрация: 09.07.2015
Сообщений: 51
13.07.2015, 13:10 14
[QUOTE="YTYOUT"]http://forum.hobbysomponents.com/viewtopys.php?f=39&t=1324
А я вот таких купил [QUOTE="Цитата:[/QUOTE][QUOTE]Бесплатная доставка 5 шт./лот ESP8266[/QUOTE] за 700р 5 шт
[URL="http://tim4div.com/2015/03/esp8266-wifi-direct-programming/"]http://tim4div.com/2015/03/esp8266-wifi ... ogramming/[/URL]
433 у меня такие же) ESP8266 заказал недели две назад, но пока ещё не пришли.
0
13.07.2015, 13:10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.