Сетка по USART

Все о микроконтроллерах: AVR, PIC, STM8, STM32, Arduino, Altera, Xilinx, все что угодно. Этот раздел для всего что клацает байтиками.
Аватара пользователя
stm32
Сообщения: 101

Сообщение stm32 » 12 июл 2013, 22:34

Подскажите получится ли организоваться сетку между 4 МК по УСАРТу? расскажите пожалуйста в подробностях каким образом, и если можно ссылочки)
Допустим у меня есть 4 МК.
1. Мастер получает информацию с ПК и раздаёт задание остальным трём, независимо каждому.
И они ему обратно пересылают информацию снятую с датчиков и о проделанной работе.
С интерфейсами не работал.

Аватара пользователя
alex34
Сообщения: 301
Откуда: Волгоград

Сообщение alex34 » 13 июл 2013, 06:21

Получится, почему нет, я такое делал. У мастера должно быть 2 усарта. Один - в сторону ПК, второй - в сторону контроллеров. Для контроллеров я применял 485 шину. Протокол обмена - мы заново изобрели MODBUS. Так что бери его )

Аватара пользователя
N1X
Сообщения: 321
Откуда: Беларусь, Гомель

Сообщение N1X » 13 июл 2013, 09:07

Ну возможно что ничего изобретать и не придется, если подойдет то, что уже изобретено:
RM0041 писал(а):23.3.6 Multiprocessor communication
There is a possibility of performing multiprocessor communication with the USART (several
USARTs connected in a network). For instance one of the USARTs can be the master, its
TX output is connected to the RX input of the other USART. The others are slaves, their
respective TX outputs are logically ANDed together and connected to the RX input of the
master.

Аватара пользователя
stm32
Сообщения: 101

Сообщение stm32 » 13 июл 2013, 11:58

Да я конечно в оффициальной док-ии почитаю про УСАРТ, но думаю для первого раза мне врятли что будет понятно... Может есть какие то примеры?

Keroronsk
Сообщения: 21

Сообщение Keroronsk » 15 июл 2013, 06:19

Самый простой вариант-на USART вешается драйвер RS485, типа ADM485. Каждой ноде назначается некий логический адрес, скажем 1-мастер, 2, 3, 4-слэйвы. Мастер пуляет в "сеть" запросы вида "префикс" (чтоб различить начало передачи) "адрес" и "данные". Например: RX 03 DIE CRLF. Все слэйвы получают это сообщение, проверяют адрес, и если адрес совпал с их собственным, выполняют команду, и опционально шлют мастеру подтверждение. Если слэйвы находятся рядом (на одной плате), то можно и без RS485, соеденить RX мастера с TX слэйвов. Но при такой конфигурации (один мастер, много слэйвов), мастер должен сам постоянно опрашивать слэйвов. Если же нужно, чтоб слэйвы сами могли в произвольный момент что-то передать мастеру (мульти-мастер сеть), то сложность возрастает на порядок (нужно обнаруживать коллизии, управлять приоритетами и т.п.), и нужно смотреть в сторону CAN или SAE J1708/J1587.
Как то так...

Вернуться в «Микроконтроллеры и ПЛИС»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей