| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
Выбор интерфейса обмена между платами
15.06.2010, 10:56
|
|
|
Прохожий
Регистрация: 22.05.2007
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Выбор интерфеса обмена между платами.
Сообщение от raxp
|
LVDS 
вообще помехоустойчивость можно повысить использованием поверх интерфейса (неважно какого) протокола обмена с контролем ошибок.
|
Не только можно, но и обязательно, если речь идет не о мигалке для елки. И еще лучше - не только с обнаружением, но и исправлением ошибок - меньше будет повторных запросов.
|
|
|
|
18.06.2010, 17:42
|
|
|
Прописка
Регистрация: 31.08.2008
Сообщений: 117
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Выбор интерфейса обмена между платами
можно ли на интерфейс USART вешать несколько микроконтроллеров, которые "общаются" между собой при помощи адресации? При этом отсутствует "ведущий".
|
|
|
|
18.06.2010, 17:55
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 28.05.2010
Сообщений: 1,117
Сказал спасибо: 150
Сказали Спасибо 604 раз(а) в 310 сообщении(ях)
|
Re: Выбор интерфейса обмена между платами
... нет ...
|
|
|
|
18.06.2010, 17:56
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
|
Re: Выбор интерфейса обмена между платами
Сообщение от anton_1000
|
|
можно ли на интерфейс USART вешать несколько микроконтроллеров, которые "общаются" между собой при помощи адресации? При этом отсутствует "ведущий".
|
Ну очевидно что можно - RS485 примерно так и работает. Но там не принято делать мультимастер, арбитража аппаратного нет, а софтом разруливать сложно и много ресурсов сожрет. Берите I2C - для мультимастера идеальный вариант. Или CAN - если надо далеко, не быстро и надежно. Оба эти интерфейса рассчитаны на то, что мастер не один. А в СAN так и вообще понятие "мастер" отсутствует.
|
|
|
|
18.06.2010, 18:19
|
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,394
Сказал спасибо: 2,016
Сказали Спасибо 1,356 раз(а) в 591 сообщении(ях)
|
Re: Выбор интерфейса обмена между платами
Сообщение от anton_1000
|
|
можно ли на интерфейс USART вешать несколько микроконтроллеров, которые "общаются" между собой при помощи адресации? При этом отсутствует "ведущий".
|
Можно. В микроконтроллерных USART для этого есть даже специальная фишка - 9-ти битный режим. То есть, например, все по дефолту настроены на 8-ми битный, и допустим N1 хочет передать что-то N2. Тогда он шлет в общую магистраль запрос - "второй, сними трубку, я с тобой разговаривать буду". После этого они переключаются в 9-ти битный и ведут обмен, 9-й бит при этом нулевой - остальные МК не ловят - для них это ошибка стоп-бита - и не напрягаются. По окончании обмена - возврат в 8-ми битный.
Но тут еще надо предусмотреть что-то, что помешает двум одновременно выдать посылку "сними трубку". Например, второй может начать передачу через 1 "таймслот" после окончания обмена, третий через 2 и так далее. Но тут уж как кто придумает...
Я бы вообще не хитрил с 9-ти битным, а сделал бы протокол - в котором есть маркер, номер - кому и длина. И пусть принимают все, просто "чужая" посылка не будет обрабатываться. А по прерыванию приема обнуляется "таймслот".
__________________
[ жизнь приятна и красива, если выпить литр пива ]
|
|
|
|
18.06.2010, 19:20
|
|
|
Гражданин KAZUS.RUN
Регистрация: 30.05.2008
Адрес: Нижний Новгород
Сообщений: 901
Сказал спасибо: 90
Сказали Спасибо 1,274 раз(а) в 412 сообщении(ях)
|
Re: Выбор интерфейса обмена между платами
Я именно так использовал 9-битовый режим USART - для начала посылки - передачи адресной информации (и источника, и получателя), длины посылки. А для выявления коллизий и других ошибок связи на программном уровне все посылки защищены дополнительным байтом CRC. Таким образом ошибочные данные сразу выбраковываются.
|
|
|
|
18.06.2010, 21:09
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 28.05.2010
Сообщений: 1,117
Сказал спасибо: 150
Сказали Спасибо 604 раз(а) в 310 сообщении(ях)
|
Re: Выбор интерфейса обмена между платами
это вы имитируете протокол типа modbus, mlink и т.п., а физически нельзя, нужен арбитраж программный ...RS-485 тоже некорректно приводить, это разные интерфейсы, да можно посадить uart на adm485-ю и соединить в общую шину, никто не запрещает, но разруливать придется программно, то бишь дергать прием-передача + слушать шину.
|
|
|
|
18.06.2010, 21:52
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.12.2004
Сообщений: 3,168
Сказал спасибо: 11
Сказали Спасибо 691 раз(а) в 503 сообщении(ях)
|
Re: Выбор интерфейса обмена между платами
Сообщение от raxp
|
|
а физически нельзя, нужен арбитраж программный
|
Нужен, но это не означает, что физически нельзя. И пара деталек еще понадобится, типа диода и резистора. Будет что то типа LIN. И 9-ти битный режим тоже потребует какого то согласования - трансивер RS485 или опять же объединить RXD и TXD через какую нибудь развязку. И в любом варианте мультимастер означает отказ от дуплекса, т.е. передавать и принимать одновременно не получится.
|
|
|
|
19.06.2010, 00:52
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 08.01.2008
Сообщений: 1,140
Сказал спасибо: 379
Сказали Спасибо 429 раз(а) в 273 сообщении(ях)
|
Re: Выбор интерфейса обмена между платами
Если очень хочется, то можно на USART построить сеть между МК.
Применение маршрутизатора, в этом случае, я думаю не обосновано.
Конечно передача будет идти в полудуплексе (по одному сигнальному проводу). При этом, для недопущения возникновения коллизии, при передаче, можно выделить отдельный сигнальный провод (назову его SU). Перед передачей пакета данных МК устанавливает SU, что сигнализирует другим МК о запрете на передачу ими данных. После передачи пакета SU сбрасывается. Механизм недопущения коллизии состоит в том, что каждый контролер имеет свой, фиксированный программно, промежуток времени в который МК может начать передачу пакета данных. Синхронизация промежутков времени, производится относительно точки сброса сигнала SU.
Последний раз редактировалось E97; 19.06.2010 в 00:56.
|
|
|
|
19.06.2010, 10:04
|
|
|
Частый гость
Регистрация: 02.06.2010
Сообщений: 11
Сказал спасибо: 5
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Выбор интерфейса обмена между платами
В BM93xx от МК реализовано на I2C с контролем CRC. Кстати у них есть макетка BM9309 на которой один Pic18 и макетное поле. Так вот по умолчанию этот модуль настроен на общение с другими по I2C, но прошивка в Pic18 на этом модуле позволяет просто организовать и SPI и UART. Нужно только переключить векторы.
Так что можно попытать разные интерфейсы.
Кстати там реализована работа со смежными каналами. Master, Slave - всё настраивается.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:24.
|
|