Сетка по USART

Все о микроконтроллерах: AVR, PIC, STM8, STM32, Arduino, Altera, Xilinx, все что угодно. Этот раздел для всего что клацает байтиками.
Post Reply
User avatar
stm32
Posts: 101
Joined: 13 May 2013, 07:11

Сетка по USART

Post by stm32 »

Подскажите получится ли организоваться сетку между 4 МК по УСАРТу? расскажите пожалуйста в подробностях каким образом, и если можно ссылочки)
Допустим у меня есть 4 МК.
1. Мастер получает информацию с ПК и раздаёт задание остальным трём, независимо каждому.
И они ему обратно пересылают информацию снятую с датчиков и о проделанной работе.
С интерфейсами не работал.
User avatar
alex34
Posts: 301
Joined: 19 Sep 2011, 09:45
Location: Волгоград

Re: Сетка по USART

Post by alex34 »

Получится, почему нет, я такое делал. У мастера должно быть 2 усарта. Один - в сторону ПК, второй - в сторону контроллеров. Для контроллеров я применял 485 шину. Протокол обмена - мы заново изобрели MODBUS. Так что бери его )
User avatar
N1X
Posts: 321
Joined: 20 Sep 2011, 20:11
Location: Беларусь, Гомель

Re: Сетка по USART

Post by N1X »

Ну возможно что ничего изобретать и не придется, если подойдет то, что уже изобретено:
RM0041 wrote: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.
User avatar
stm32
Posts: 101
Joined: 13 May 2013, 07:11

Re: Сетка по USART

Post by stm32 »

Да я конечно в оффициальной док-ии почитаю про УСАРТ, но думаю для первого раза мне врятли что будет понятно... Может есть какие то примеры?
Keroronsk
Posts: 21
Joined: 19 Feb 2013, 06:53

Re: Сетка по USART

Post by Keroronsk »

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