0 / 0 / 0
Регистрация: 06.02.2011
Сообщений: 50
1

Синхронизация контроллеров между собой

17.04.2011, 12:19. Показов 5184. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно синхронизовать несколько контроллеров AVR подключенных через мосты USB (например FTDI и именно USB) к компьютеру. Если буду передавать на каждый девайс FTDI-AVR синхронизирующий пакет данных, то будет большое время рассогласования у первого и последнего девайсов. Есть ли какой способ сделать что-то вроде мультикаста...отправить пакет данных и чтобы он пришел сразу всем? Или посоветуйте пожалуйста реализацию... (Не хочется пускать между железяками провод для синхронизации)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.04.2011, 12:19
Ответы с готовыми решениями:

Синхронизация двух STM32 между собой по UART
Как можно синхронизировать 2 микроконтроллера между собой по UART? Один STM32F407VGT (master),...

Синхронизация между собой контролеров RGB ленты
Реально ли реализовать следующее. Допустим есть 4 отрезка ленты по 1-2 метра, у каждого из них свой...

Синхронизация двух контроллеров.
Здравствуйте. Возникла необходимость синхронизировать два контроллера с точностью до такта, для...

Подключение двух контроллеров.Нужны ли резисторы между ними?
Всем привет. Надо периодически слать байт из первого мк во второй. Нужны ли ограничивающие...

6
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
17.04.2011, 13:36 2
усб раз в 1 мс шлет маркер "Start Of Frame (SOF)", его по идее видят все железки. осталось найти такую, которая этот маркер наружу выдает в виде сигнала. в контроллерах со встроенным усб есть соответствующее прерывание.
0
0 / 0 / 0
Регистрация: 06.02.2011
Сообщений: 50
17.04.2011, 14:22 3
Уточню. Железяки подключены через хабы на нескольких портах компьютера (в общем железяк много) и нужно чтобы их синхронизовал компьютер..
В идеале я вижу такой вариант: у меня мосты USB и к ним одновременно приходит пакет синхронизации. Контроллер его считывает и понимает что время настало..)
0
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
17.04.2011, 15:47 4
так будет точность в пределах 1 мс. если устраивает - просто передавайте определенный пакет в определенную конечную точку, КАЖДОМУ. а если на компе физически несколько усб-хостов (не хаб), то есть вероятность, что точно их не синхронизировать по усб (если надо точнее 1мс).
0
0 / 0 / 0
Регистрация: 06.02.2011
Сообщений: 50
17.04.2011, 17:36 5
Да, 1мс хватило бы. А нельзя ли поподробнее что вы имели ввиду?
P.S. Заранее благодарен)
0
0 / 0 / 0
Регистрация: 11.06.2010
Сообщений: 351
17.04.2011, 21:17 6
Можно сделать всем устройствам часы и синхронизировать их по очереди и даже через каналы связи с разными задержками. Назначить действие на определенный момент, а потом спросить каждого успел ли он. Зная все задержки можно предупредить устройства достаточно рано для того чтобы все успели.
0
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
18.04.2011, 11:55 7
Striss, есть пара вариантов (совсем не уверен, что FTDI тут прокатит).
1. передача типа bulk (в usb): делаете еще одну конечную точку и с компа передаете в нее пакет, когда нужно синхронизироваться. в остальное время просто ничего не шлете туда. цикл обмена в full speed usb - 1мс. т.е. в идеале вы получаете разрешающую способность в 1мс. однако, bulk не гарантирует реалтайм, из-за ошибок связи или еще по каким-то причинам, пакет может быть доставлен позже (в следующих 1мс-фреймах).
2. передача типа isochronous. вот она по своей сути обеспечивает реалтайм, она - самая приоритетная в усб. если скажете ей доставлять каждую 1мс пакеты - они и будут всегда приходить в 1 мс. данные вам не важны (видимо), важен факт приема пакета. хотя, как я уже говорил, достаточно отслеживать SOF-маркер, приходящий гарантированно каждую мс, все зависит от железа.

в любом случае, если это не SOF, то нужно что-то передавать с компа самому ДЛЯ ВСЕХ подключенных устройств.
0
18.04.2011, 11:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.04.2011, 11:55
Помогаю со студенческими работами здесь

Коммуникация нескольких МК между собой
День добрый У меня тут такая вот проблема, имеется у меня Arduino Mega 2560, и имеется у меня...

Как связать МК между собой?
Хочу связать 8 маленьких МК ATtiny2313 с одним большим ATmega16. Учитывая то, что знания у меня...

как соединить между собой два МК Attmega 16.
Здравствуйте форумчани. собрал эту маленькую схему, а как написать программу для обоих МК не знаю....

Связать несколько PSD в один, синхронизация *.psd между собой
К примеру: Имеется три PSD-файла: 1.psd (1000x200); 2.psd (1000x500); 3.psd (1000x300);...

Переставить между собой элементы массива между собой, кроме максимального
Переставить между собой элементы массива между собой, кроме максимального, программа в СИ

Создать рисунок, представляющий собой множество равных между собой квадратов
Создать рисунок в Windows Forms, представляющий собой множество равных между собой квадратов,...

Взаимодействие контроллеров домена при обрыве соединения между ними
Есть DC1 - основной контроллер домена (dc1.domain.com) и DC2 дополнительный контроллер домена...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru