Страница 1 из 1
Обмен данными между МК
Добавлено: Чт май 30, 2013 22:17:22
Sashke
Здравствуйте, у меня такой вопрос. Надо организовать обмен данными между микроконтроллерами. Обязательно ли его делать через Usart если да, то почему? Если нет, но желательно, то в чем преимущества? Если нельзя, то я вообще ничего не понял( И что делать если надо объединить один МК с двумя и более...
Re: Обмен данными между МК
Добавлено: Чт май 30, 2013 22:56:38
petrenko
По порядку : необязательно, можно и по параллельному 8-и битному обмениваться, если Вам очень захочется.
Но, действительно, по последовательному как то поудобнее .
Преимущества ? Ну сами подумайте.. Или лучше для начала сделайте через параллельный, а потом через последовательный и ... почувствуйте разницу, а то как то ежели безпредметно, то много объяснять Вам придётся..
Если надо объединить несколько мк - удобно изпользовать "моноканал"- магистраль последовательной приёмо-передачи, разделяемую всеми мк ( с "вращающимся" приоритетом обычно делают )
И - учтите - "удобно" не самое быстрое из возможных решение. Та же побайтовая передача данных в 8 или в 10 раз быстрее побитовой будет.
Re: Обмен данными между МК
Добавлено: Чт май 30, 2013 23:30:20
El-Eng
Для небольшого расстояния (в пределах платы, а на малых и средних скоростях и по проводу ~1 м) можно использовать SPI.
USART хорош проработанностью, обилием готовых программ, относительной помехозащищенностью и хорошей поддержкой производителями периферийных микросхем.
Re: Обмен данными между МК
Добавлено: Пт май 31, 2013 00:42:07
kalobyte
Sashke писал(а):надо объединить один МК с двумя и более...
есть много способов
если использовать uart, то делается это на уровне протокола
каждый мк имеет свой адрес, но физически сигнал принимают все, а дальше софт уже вычисляет свой адрес и выполняет действие
для предотвращения передачи несколькими мк, в протокол вводится токен в виде одного бита
у кого токен - тот и передает
токен ходит по кругу и такая топология организации сети называется token ring
можно задействовать модули spi или i2c в режиме мастера и слева
для спи правда на каждое устройство нужен дополнительный вывод cs разрешения работы
для и2ц надо всего 2 провода, но протокол посложнее будет
Re: Обмен данными между МК
Добавлено: Пн июн 03, 2013 12:39:40
Sashke
Спасибо пошарил по инету на эти темы, почитал про USART SPI I2C если не сложно перечислите какие еще есть способы передачи и с какого лучше начать?
По поводу токен ринга: мне он ещё с первого курса не понравился, без обид, но я так понял при потере одного микроконтроллера накроется всё кольцо, скорость качество передачи страдает из за передачи не напрямую.
Хотелось бы что то на подобие звезды или
ячеистой
в которой при отказе одного компонента можно было продолжать работу
________________________________________
kalobyte писал(а):каждый мк имеет свой адрес, но физически сигнал принимают все, а дальше софт уже вычисляет свой адрес и выполняет действие

Так?
И если вы не против кину текст по usart. может кому то пригодится
Re: Обмен данными между МК
Добавлено: Пн июн 03, 2013 12:47:24
Леонид Иванович
Через UART соединять микроконтроллеры удобно, иногда даже есть аппаратная поддержка (MSC-51, AVR, про другие не знаю) - режим многопроцессорной связи (см. настройки UART). Если нужно соединить много процессоров, то можно воспользоваться буферами с тремя состояниями, например, 74HC125. Так делал, например, для связи 9 процессоров в одном блоке. Если расстояние большое, тогда лучше применить ADM485.