реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> AVR XMEGA SMP, одновременная работа нескольких МК
aquinas
сообщение Dec 17 2014, 17:06
Сообщение #1





Группа: Новичок
Сообщений: 1
Регистрация: 17-12-14
Пользователь №: 84 170



Доброго всем времени суток. Разрабатываю проект многоканального даталоггера.

Одновременная работа заключается в том, что каждый из энного количества МК принимает данные по UART от внешнего устройства в реальном времени и поочередно сбрасывает их на SD-карту в один и тот же файл, работать с картой памяти может только один МК одновременно, в это время остальные сохраняют данные в ОЗУ, как только один из контроллеров закончил записывать данные, следующим становится тот у которого данных больше.

Проект пока на стадии "мысли и бумаги", хочу спросить как лучше: все МК соеденить по SPI и карту памяти туда же посадить или же выделить для карты памяти отдельный МК, который будет обслуживать карту и опрашивать остальные МК по другой шине, например по TWI?

Микроконтроллеры будут ATXMega256 (из-за большого объема памяти, в которой будет храниться проприетарный протокол для обмена с внешними устройствами).

Сообщение отредактировал aquinas - Dec 17 2014, 17:07
Go to the top of the page
 
+Quote Post
RabidRabbit
сообщение Dec 18 2014, 07:00
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 397
Регистрация: 3-12-09
Из: Россия, Москва
Пользователь №: 54 040



Если МК <= 8, я бы взял для арбитража счётчик и дешифратор 3 на 8, выходы дешифратора завёл на входы INT МК, с каждого МК по одной ноге соединил в монтажное ИЛИ и подключил ко входу тактового сигнала счётчика. МК по прерыванию пишет (или не пишет, если нечего) на SD карту, после чего дёргает тактовый сигнал счётчика. Да, в таком случае SPI всех МК и SD карты соединены. По-моему вполне себе дубовое решение, освобождающее от конфликтов sm.gif И если количество МК не кратно степени 2, ещё нужна схема сброса счётчика, когда он досчитает до числа, равного количеству МК. По сегодняшней моде такого "арбитра" наверно можно спокойно запихать в мелкую CPLD.
Go to the top of the page
 
+Quote Post
alexeyv
сообщение Dec 18 2014, 14:00
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 298
Регистрация: 26-01-09
Из: Пермь
Пользователь №: 43 940



какая скорость потока данных по USART?
какое количество USART? на каждом по одному или один USART на всех?
какой характер потока данных по USART? постоянная скорость или тишина, а потом взрывной всплеск или что то еще?
какая скорость записи в SD-карту?
каким образом они будут писать в один и тот же файл? в смысле откуда общий указатель/дескриптор на место записи? или открывать/закрывать постоянно? нужна ли вообще файловая система? может проще писать каждому МК в свой файл?
Цитата
как только один из контроллеров закончил записывать данные, следующим становится тот у которого данных больше.

то есть порядок приема байтов по USART в файле на SD-карте нарушается?

что то устал задавать вопросы..........

Для одного USART в системе
Арбитр совсем не нужен. Все МК объединяются в кольцо. МК который наполнил свой буфер, передает сигнал (маркер) следующему МК
, который заполняет свою память и так далее по кольцу. С записью в SD-карту аналогично, при окончании записи подается сигнал следующему МК
В качестве маркера можно использовать выходной пин сцепленный с пином на прерывания на другом МК. Для предотвращения постоянного бегания по кольцу маркера записи в SD-карту когда нет данных для записи - условие наличия обоих маркеров в одном и том же МК.

алгоритм взят из стандарта TokenRing.

Для нескольких USART алгоритм можно модифицировать, но принцип тот же

Сообщение отредактировал alexeyv - Dec 18 2014, 14:10
Go to the top of the page
 
+Quote Post
jcxz
сообщение Dec 22 2014, 16:30
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(aquinas @ Dec 17 2014, 23:06) *
хочу спросить как лучше: все МК соеденить по SPI и карту памяти туда же посадить или же выделить для карты памяти отдельный МК, который будет обслуживать карту и опрашивать остальные МК по другой шине, например по TWI?

Выкинуть мелочёвку. Сделать на более взрослом МК с несколькими UART.
Go to the top of the page
 
+Quote Post
jhm
сообщение Jan 9 2015, 08:30
Сообщение #5





Группа: Участник
Сообщений: 10
Регистрация: 25-11-09
Пользователь №: 53 867



Поддерживаю. Лучше взять большой МК с нужным количеством UART
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 16:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.0139 секунд с 7
ELECTRONIX ©2004-2016