какая скорость потока данных по USART?
какое количество USART? на каждом по одному или один USART на всех?
какой характер потока данных по USART? постоянная скорость или тишина, а потом взрывной всплеск или что то еще?
какая скорость записи в SD-карту?
каким образом они будут писать в один и тот же файл? в смысле откуда общий указатель/дескриптор на место записи? или открывать/закрывать постоянно? нужна ли вообще файловая система? может проще писать каждому МК в свой файл?
Цитата
как только один из контроллеров закончил записывать данные, следующим становится тот у которого данных больше.
то есть порядок приема байтов по USART в файле на SD-карте нарушается?
что то устал задавать вопросы..........
Для одного USART в системе
Арбитр совсем не нужен. Все МК объединяются в кольцо. МК который наполнил свой буфер, передает сигнал (маркер) следующему МК
, который заполняет свою память и так далее по кольцу. С записью в SD-карту аналогично, при окончании записи подается сигнал следующему МК
В качестве маркера можно использовать выходной пин сцепленный с пином на прерывания на другом МК. Для предотвращения постоянного бегания по кольцу маркера записи в SD-карту когда нет данных для записи - условие наличия обоих маркеров в одном и том же МК.
алгоритм взят из стандарта TokenRing.
Для нескольких USART алгоритм можно модифицировать, но принцип тот же
Сообщение отредактировал alexeyv - Dec 18 2014, 14:10