Перейти к содержанию

Последовательное соединение нескольких МК по uart

Возможно ли соединить несколько МК по uart(4-5штук)?
Т.е. каждый контроллер является и мастером и ведомым( относительно следующих МК)
Передаем например 1 байт следующий МК принимает добавляет свой байт и передает дальше и т.д.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(rtl_user @ Dec 5 2017, 21:07) <{POST_SNAPBACK}>
Возможно ли соединить несколько МК по uart(4-5штук)?
Т.е. каждый контроллер является и мастером и ведомым( относительно следующих МК)
Передаем например 1 байт следующий МК принимает добавляет свой байт и передает дальше и т.д.

Посмотрите, как реализован интерфейс LIN.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(rtl_user @ Dec 5 2017, 21:07) <{POST_SNAPBACK}>
Возможно ли соединить несколько МК по uart(4-5штук)?
Т.е. каждый контроллер является и мастером и ведомым( относительно следующих МК)
Передаем например 1 байт следующий МК принимает добавляет свой байт и передает дальше и т.д.

Возможно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(rtl_user @ Dec 5 2017, 23:12) <{POST_SNAPBACK}>
Не получается больше трех(

Для каждого МК это соединение точка-точка, так что дело не в UART. Проверяйте логику работы ПО. Что именно не получается?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(rtl_user @ Dec 5 2017, 21:07) <{POST_SNAPBACK}>
Возможно ли соединить несколько МК по uart(4-5штук)?....


да, можно.
ышо когда был Нортон альтернативной ориентации (в том веке) делали концентраторы типа соединения звезда энного кол-ва компов по последовательному порту
(по юарту ышо просче - выкидываются корпуса преобразователей уровней). Связь только двух компов, все остальные молчат - без переписывании софта связи(т.е. любой пойдёт).
Если с переписыванием - то там вооще красота, можно одновременно передавать и принимать со всех компов сразу...
масштабируется всё это хозяйство на раз - вместо одного компа включается точно такой-же концентратор и алё....

ответ прост.
подумайте над тем, как аппаратно сделать передачу на всех кроме себя sm.gif дальше дело техники.

удачи вам
(круглый)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(rtl_user @ Dec 5 2017, 22:12) <{POST_SNAPBACK}>
Не получается больше трех(

Так не получается?


Изменено пользователем LII

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(LII @ Dec 6 2017, 00:59) <{POST_SNAPBACK}>
Так не получается?



Получится. Добавьте еще одну линию от последнего TX к первому RX и получите классическую топологию кольцо. Дальше вопрос только назначить всем уникальные адреса (административно) и договориться о формате пакетов. Опробовано неоднократно.

Но, если честно, лучше не городить огород а взять RS485 и поверх него какой-нить ModBus. При любом раскладе реализация будет в том или ином виде ущербной. Но так хоть сколько-нить стандартной.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Alex A. Mihaylov @ Dec 6 2017, 04:55) <{POST_SNAPBACK}>
Получится. Добавьте еще одну линию от последнего TX к первому RX и получите классическую топологию кольцо. Дальше вопрос только назначить всем уникальные адреса (административно) и договориться о формате пакетов. Опробовано неоднократно.

Лишнего провода нет. Адреса тоже бы не хотелось применять, просто по номеру байта понимать какой какой контроллер отправил.
Вроде бы разобрались.


Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Да элементарно они вешаются на параллельный интерфейс (эдакий псевдо-485). Просто ногу Tx нужно настроить не в пушпульный режим, а в открытый сток. И повесить резистор подтягивающий на всю линию (потому как внутренняя подтяжка при большом количестве девайсов на линии будет жрать ток).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(rtl_user @ Dec 5 2017, 23:12) <{POST_SNAPBACK}>
Не получается больше трех(

Эт если соображать на троих.)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(Эдди @ Dec 6 2017, 06:26) <{POST_SNAPBACK}>
Да элементарно они вешаются на параллельный интерфейс (эдакий псевдо-485). Просто ногу Tx нужно настроить не в пушпульный режим, а в открытый сток. И повесить резистор подтягивающий на всю линию (потому как внутренняя подтяжка при большом количестве девайсов на линии будет жрать ток).

МК соединяются последовательно. Как на рисунке только без третьего провода. Т.е. есть мастер и он передает байт данных, принимает ведомый плюсует к полученным и передает уже два байта дальше и т.д. Скорость не важна.
На бумаге все красиво, не знаю как в железе и наверно придется ставить генератор вместо кварца

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(rtl_user @ Dec 6 2017, 08:45) <{POST_SNAPBACK}>
На бумаге все красиво, не знаю как в железе и наверно придется ставить генератор вместо кварца

В железе решается внятным протоколом. Генератор точно не поможет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(rtl_user @ Dec 6 2017, 08:45) <{POST_SNAPBACK}>
МК соединяются последовательно.

И в чем проблема? Это ж как адресуемые светодиоды получается. По USART1 данные принимаем, по USART2 передаем дальше, откусив первые N байт.
Только с большими длинами линий могут возникнуть косяки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(rtl_user @ Dec 6 2017, 07:45) <{POST_SNAPBACK}>
МК соединяются последовательно. Как на рисунке только без третьего провода.

Третий провод на рисунке - это общий, он нужен обязательно!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация