Обмен данными между МК
- Сообщения: 5
- Зарегистрирован: Чт май 30, 2013 22:05:19
Здравствуйте, у меня такой вопрос. Надо организовать обмен данными между микроконтроллерами. Обязательно ли его делать через Usart если да, то почему? Если нет, но желательно, то в чем преимущества? Если нельзя, то я вообще ничего не понял( И что делать если надо объединить один МК с двумя и более...
- Реклама
По порядку : необязательно, можно и по параллельному 8-и битному обмениваться, если Вам очень захочется.
Но, действительно, по последовательному как то поудобнее .
Преимущества ? Ну сами подумайте.. Или лучше для начала сделайте через параллельный, а потом через последовательный и ... почувствуйте разницу, а то как то ежели безпредметно, то много объяснять Вам придётся..
Если надо объединить несколько мк - удобно изпользовать "моноканал"- магистраль последовательной приёмо-передачи, разделяемую всеми мк ( с "вращающимся" приоритетом обычно делают )
И - учтите - "удобно" не самое быстрое из возможных решение. Та же побайтовая передача данных в 8 или в 10 раз быстрее побитовой будет.
Но, действительно, по последовательному как то поудобнее .
Преимущества ? Ну сами подумайте.. Или лучше для начала сделайте через параллельный, а потом через последовательный и ... почувствуйте разницу, а то как то ежели безпредметно, то много объяснять Вам придётся..
Если надо объединить несколько мк - удобно изпользовать "моноканал"- магистраль последовательной приёмо-передачи, разделяемую всеми мк ( с "вращающимся" приоритетом обычно делают )
И - учтите - "удобно" не самое быстрое из возможных решение. Та же побайтовая передача данных в 8 или в 10 раз быстрее побитовой будет.
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
- Сообщения: 3782
- Зарегистрирован: Чт янв 26, 2012 14:44:34
Для небольшого расстояния (в пределах платы, а на малых и средних скоростях и по проводу ~1 м) можно использовать SPI.
USART хорош проработанностью, обилием готовых программ, относительной помехозащищенностью и хорошей поддержкой производителями периферийных микросхем.
USART хорош проработанностью, обилием готовых программ, относительной помехозащищенностью и хорошей поддержкой производителями периферийных микросхем.
Like the eyes of a cat in the black and blue...
- Сообщения: 13796
- Зарегистрирован: Чт сен 20, 2007 14:08:00
есть много способовSashke писал(а):надо объединить один МК с двумя и более...
если использовать uart, то делается это на уровне протокола
каждый мк имеет свой адрес, но физически сигнал принимают все, а дальше софт уже вычисляет свой адрес и выполняет действие
для предотвращения передачи несколькими мк, в протокол вводится токен в виде одного бита
у кого токен - тот и передает
токен ходит по кругу и такая топология организации сети называется token ring
можно задействовать модули spi или i2c в режиме мастера и слева
для спи правда на каждое устройство нужен дополнительный вывод cs разрешения работы
для и2ц надо всего 2 провода, но протокол посложнее будет
тематические ответы только в форуме, в приват не пишите
- Сообщения: 5
- Зарегистрирован: Чт май 30, 2013 22:05:19
Спасибо пошарил по инету на эти темы, почитал про USART SPI I2C если не сложно перечислите какие еще есть способы передачи и с какого лучше начать?
По поводу токен ринга: мне он ещё с первого курса не понравился, без обид, но я так понял при потере одного микроконтроллера накроется всё кольцо, скорость качество передачи страдает из за передачи не напрямую.
Хотелось бы что то на подобие звезды или ячеистой
в которой при отказе одного компонента можно было продолжать работу
________________________________________
Так?
И если вы не против кину текст по usart. может кому то пригодится
По поводу токен ринга: мне он ещё с первого курса не понравился, без обид, но я так понял при потере одного микроконтроллера накроется всё кольцо, скорость качество передачи страдает из за передачи не напрямую.
Хотелось бы что то на подобие звезды или ячеистой
в которой при отказе одного компонента можно было продолжать работу
________________________________________
kalobyte писал(а):каждый мк имеет свой адрес, но физически сигнал принимают все, а дальше софт уже вычисляет свой адрес и выполняет действие
Так?
И если вы не против кину текст по usart. может кому то пригодится
- Вложения
-
- 6_USART.doc
- (468 КБ) 4318 скачиваний
-
- notoken.jpg
- (55.95 КБ) 2737 скачиваний
-
- token.jpg
- (136.13 КБ) 733 скачивания
- Реклама
Через UART соединять микроконтроллеры удобно, иногда даже есть аппаратная поддержка (MSC-51, AVR, про другие не знаю) - режим многопроцессорной связи (см. настройки UART). Если нужно соединить много процессоров, то можно воспользоваться буферами с тремя состояниями, например, 74HC125. Так делал, например, для связи 9 процессоров в одном блоке. Если расстояние большое, тогда лучше применить ADM485.


