Форум программистов, компьютерный форум, киберфорум
Электроника для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.90/83: Рейтинг темы: голосов - 83, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 66
1

Помогите выбрать физический протокол для линии данных

24.09.2013, 18:49. Показов 15148. Ответов 35
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть некий девайс А (назовем его "пульт"), который будет бродкастом передавать данные всем подключенным к нему девайсам Б (назовем их "испольнителями").
Динные логически представляют из себя два параллельных односторонних потока SPI, которые, однако, несложным программированием превращаются в один поток. Кроме того, в тот момент эти два потока могут бытьактивны в разные моменты времени, то есть, когда по одному идут данные, второй молчит.
Линия данных длиной от 1 до 50 м (с запасом и достаточно грубым приближением).
Возникает вопрос - как физически лучше осуществить передачу.
1)Просто отдельными проводами гнать в сыром виде.
2)На стороне "пульта" програмно преобразовать все в "сплошной поток", на стороне "исполнителя" вставить простой контроллер который будет преобразовывать все обратно в "два потока" и уже скармливать "исполнителю".
В случае 1 - как лучше осуществить коммутацию? Витая пара на каждый сигнал свитая с землей? Можно ли при этом как нибудь освободить один провод для подачи нитания "пульту", чтобы уместиться в обычный eternet кабель?
В случае 2 - опять же вопрос - как передавать данные? Простой туповатый SPI? RS-485? Может что-то еще?
Посоветуйте, плз, а то в схемотехнику я влез, в некотором роде, не по своей воле, хотя закон ОМа помню и ХХ прочитал.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.09.2013, 18:49
Ответы с готовыми решениями:

Какой протокол выбрать для связи датчиков и сервера на МК?
Хочу сделать небольшую автоматизацию на садовом участке. Мне нужно связать несколько устройств в...

Написать протокол передачи данных для MSP430
нужен RS232 протокол для микроконтроллера MSP430 с crc24 на С++

Протокол передачи данных для общения в реальном времени...
Добрый день, (возможно не в том разделе создал тему, не знаю к какому разделу ее отнести) ...

Какой выбрать протокол
Здравствуйте. Стоит следующая задача: Устройство подключается аудиокабелем к смартфону...

Выбрать подходящий интерфейс и протокол
Всем привет! Делаю вот сейчас курсовой проект, в будущем планируется развить все это дело до...

35
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
24.09.2013, 19:04 2
Описание не совсем понятное:
Цитата Сообщение от tsostyk
Есть некий девайс А (назовем его "пульт"), который будет бродкастом передавать данные всем подключенным к нему девайсам Б (назовем их "испольнителями").
Какая разница, один или несколько исполнителей будет? Похоже, никакой, тогда зачем запутывать описание словом "бродкаст" и множественным числом в слове "девайсы Б".

Цитата Сообщение от tsostyk
Динные логически представляют из себя два параллельных односторонних потока SPI, которые, однако, несложным программированием превращаются в один поток.
Чем принципиально отличается это от обычного SPI, в котором и есть одна линия "туда" и одна линия "обратно"?

Цитата Сообщение от tsostyk
Кроме того, в тот момент эти два потока могут бытьактивны в разные моменты времени, то есть, когда по одному идут данные, второй молчит.
"Могут быть" - это двусмысленно. Могут быть, а могут и не быть (т.е. возможна одновременная активность)?

Цитата Сообщение от tsostyk
Линия данных длиной от 1 до 50 м (с запасом и достаточно грубым приближением).
Возникает вопрос - как физически лучше осуществить передачу.
1)Просто отдельными проводами гнать в сыром виде.
На один метр - можно. На 50 метров - ни за что.
0
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
24.09.2013, 19:09 3
Модификация RS-232 под названием RS-485 - http://ru.wikipedia.org/wiki/RS-485.
0
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 798
24.09.2013, 19:11 4
SPI и 50 метров не очень сочетаются.
Судя по описанию нужно чота для мастер-слейв общения. Возьмите обычный RS422.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
24.09.2013, 19:26 5
Ещё интерфейс "токовая петля" справится с 50-тиметровым расстоянием. Токовую петлю можно и поверх SPI применить.
0
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 66
24.09.2013, 20:30 6
Цитата Сообщение от OtyxPM
Описание не совсем понятное:
Цитата Сообщение от tsostyk
Есть некий девайс А (назовем его "пульт"), который будет бродкастом передавать данные всем подключенным к нему девайсам Б (назовем их "испольнителями").
Какая разница, один или несколько исполнителей будет? Похоже, никакой, тогда зачем запутывать описание словом "бродкаст" и множественным числом в слове "девайсы Б".

Почему-же никакой? Бродкаст автоматически отсекает протоколы, которые требуют ACK от приемника.
Да и вообще задачу лучше формулировать полно, чтобы потом не оказалось что некоторые, незначительные на мой взгляд, детали категорически меняют решение.

Цитата Сообщение от OtyxPM
Цитата Сообщение от tsostyk
Динные логически представляют из себя два параллельных односторонних потока SPI, которые, однако, несложным программированием превращаются в один поток.
Чем принципиально отличается это от обычного SPI, в котором и есть одна линия "туда" и одна линия "обратно"?

Лишней линией, вообще-то говоря. Тут два клока и две линии данных, в обычном SPI - две линии данных и один клок. Разница невелика, но "если что" может оказаться существенной.

Цитата Сообщение от OtyxPM
tsostyk"]Кроме того, в тот момент эти два потока могут быть активны в разные моменты времени, то есть, когда по одному идут данные, второй молчит.
[/QUOTE]"Могут быть" - это двусмысленно. Могут быть, а могут и не быть (т.е. возможна одновременная активность)?

Сорри, неточно сформулировал. В один момент времени может быть активна только одна линия.

OtyxPM"]На один метр - можно. На 50 метров - ни за что.[/QUOTE]
Спасибо.
0
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
24.09.2013, 20:54 7
Цитата Сообщение от OtyxPM
На один метр - можно. На 50 метров - ни за что.
а нам в соседней теме рассказывали, что 50м легко и (почти) без ничего... :))) в тред приглашается "эксперт по длиным линиям на атмегах" :)))
0
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 801
24.09.2013, 20:59 8
витая пара и rs 422 или 485
0
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 66
25.09.2013, 12:58 9
Спасибо всем ответившим.
Тем не менее есть очередная пара вопросов.
Правильно ли я понимаю, что взяв драйвер типа SN65HVD179 (это первый попавшийся, они вроде практически у каждого производителя есть) я могу вставить их на выходе и на входе и с точки зрения МК использовать просто UART/SPI без дополнительных изысков?
Вообще, почитав описание RS422/485 я так и не справился осознать в чем существенная разница между ними кроме достаточно абстрактных слов
В отличие от RS-485, которая обеспечивает многоточечную структуру, EIA-422/V.11 не позволяет иметь несколько отправителей, но позволяет иметь несколько получателей.
Вроде и там и там на физическом уровне использеутся диференциальный сигнал вместо однофазного, более того, большинство драйверов судя по даташитам прямо позиционируются как "RS-422/485 line dryver". В чем отличие межде ними?
0
0 / 0 / 0
Регистрация: 21.08.2011
Сообщений: 1,057
25.09.2013, 13:25 10
Для большинства драйверов надо еще переключать их с приема на передачу. Топология типа "шина" с терминаторами. Проще всего написать протокол-обёртку, который будет ваши SPI-пакеты заворачивать в шинный пакет с заголовком адреса. Адрес 0 - бродкаст.
0
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 893
25.09.2013, 13:47 11
Цитата Сообщение от Ymk
Цитата Сообщение от OtyxPM
На один метр - можно. На 50 метров - ни за что.
а нам в соседней теме рассказывали, что 50м легко и (почти) без ничего... :))) в тред приглашается "эксперт по длиным линиям на атмегах" :)))
Я тут. Автор не озвучил требуемую скорость обмена.
0
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 66
25.09.2013, 14:02 12
Цитата Сообщение от инкер
Я тут. Автор не озвучил требуемую скорость обмена.
9600 бод, по предварительным прикидкам, должно хватить за глаза.
Пусть для надежности будет 19200.
0
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
25.09.2013, 14:09 13
Цитата Сообщение от tsostyk
Правильно ли я понимаю, что взяв драйвер типа SN65HVD179 (это первый попавшийся, они вроде практически у каждого производителя есть) я могу вставить их на выходе и на входе и с точки зрения МК использовать просто UART/SPI без дополнительных изысков?
UART да, а SPI пускать через такие драйвера ИМХО извращение.

Вообще, почитав описание RS422/485 я так и не справился осознать в чем существенная разница между ними кроме достаточно абстрактных слов
...
В чем отличие межде ними?
RS485 более требователен к железу чем RS422, поэтому для последнего отдельных драйверов уже наверное никто и не делает.
Отличия:
- передатчик RS422 не обязан иметь вход dryver_enable, который позволяет его отключить
- передатчик RS422 не обязан тянуть 2 концевых терминатора
- 1 unit нагрузки RS422 равен 3 unit`ам нагрузки RS485
0
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 798
25.09.2013, 14:17 14
- 1 unit нагрузки RS422 равен 3 unit`ам нагрузки RS485
Схуяли так? Откуда там неожиданно в три раза? Там же просто две разделенных RS485, одна на передачу, другая на прием.
0
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 893
25.09.2013, 15:01 15
Цитата Сообщение от tsostyk
Цитата Сообщение от инкер
Я тут. Автор не озвучил требуемую скорость обмена.
9600 бод, по предварительным прикидкам, должно хватить за глаза.
Пусть для надежности будет 19200.

В реализованом решении скорость условно на порядок меньше, около 1200 бод. БОльшая скорость не проверялась, так как эта обеспечивала четырехкратный запас для опроса 16-ти датчиков. То, что возможно работать на линию 70 метров без драйверов, с контроллера на контроллер без витых пар - это реально.
0
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
25.09.2013, 15:10 16
Цитата Сообщение от sohbtixhuk
- 1 unit нагрузки RS422 равен 3 unit`ам нагрузки RS485
Схуяли так? Откуда там неожиданно в три раза?
Ну стандарты принимали в разное время, сначала было оптимально одно, потом при принятии RS485 этот параметр улучшили.
С другой стороны какой это сейчас имеет смысл? Уже есть приёмники на 0.25 RS485 unit`а, их можно сотню на одну линию воткнуть.
0
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 66
25.09.2013, 21:25 17
Еще раз спасибо за ответы. Последний(надеюсь) вопрос, чтобы окончательно расставить все по своим местам.


http://**************************/download/file.php?id=16635&sid=f68a617e9e92323b5b4af531a1b88006

Правильно ли я понимаю, что в таком варианте подключения с точки зрения mostirа и всех слейвов они будут общаться через обычный UART? Нужно ли соединять земли? Нужны ли резисторы в качестве терминаторов на входах/выходах драйвера? Если да, как выбираьт номинал и мощность?
0
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
25.09.2013, 21:59 18
Цитата Сообщение от tsostyk
Правильно ли я понимаю, что в таком варианте подключения с точки зрения mostirа и всех слейвов они будут общаться через обычный UART?
Да
Цитата Сообщение от tsostyk
Нужно ли соединять земли?
Да
Цитата Сообщение от tsostyk
Нужны ли резисторы в качестве терминаторов на входах/выходах драйвера? Если да, как выбираьт номинал и мощность?
Да, но они нужны только на концах шины, поэтому при размещении на плате надо предусмотреть джампер для отключения. Номинал зависит от волнового сопротивления кабеля, по дефолту - 120Ом, для витой пары cat5 - 100Ом, мощность - 0.5Вт, можно больше.
0
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 66
26.09.2013, 08:50 19
Цитата Сообщение от яверт
Цитата Сообщение от tsostyk
Нужны ли резисторы в качестве терминаторов на входах/выходах драйвера? Если да, как выбираьт номинал и мощность?
Да, но они нужны только на концах шины, поэтому при размещении на плате надо предусмотреть джампер для отключения.
Что при этом входит в понятие "конец шины"?
На примере конкретной схемы - в каких точках схемы они нужны? Зависит ли это от места физического разветвления линии? Допустим в трех вариантах:
1)Разветвление на выходе из мастера.
2)Разветвление на входе в один из слейвов.
3)Разветвление в точке равноудаленной от всех трех контроллеров.
0
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
26.09.2013, 11:49 20
Цитата Сообщение от tsostyk
Что при этом входит в понятие "конец шины"?
Шина это кабель который последовательно (без разветвлений) проходит все устройства. Как нетрудно догадаться у неё может быть только два конца, вот на них и ставьте терминаторы.
http://lib.znate.ru/pars_docs/refs/234/ ... fd6d8f.jpg
0
26.09.2013, 11:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.09.2013, 11:49
Помогаю со студенческими работами здесь

Выбрать протокол взаимодействия с сервером
Всем привет! Мы - стартаперы. Пишем мобильное приложение, которое в том числе обменивается данными...

Помогите выбрать оборудование для Wi-Fi сети
Всем доброго времени суток. У меня такая петрушка. В общем имеются 2 локальных сети, в разных...

Помогите выбрать тему для диплома!
Суть проблемы: мне нужно придумать тему для диплома в сфере настройки маршрутизации вручную в ...

Помогите выбрать память для ноута
помогите, пжл, выбрать и купить оперативную память в ноут Леново, купила с 2гб - не работает вообще!

Помогите выбрать Сервер для домена
Добрый день! Помогите пожалуйста выбрать сервер для домена на 60 компов + в сервере будет...

Помогите выбрать лампы для усилителя.
Ребята-котята. У меня имееются следующие лампы: 6П14П 6К4П 6Ж1П 6Н2П СГ1П 6Н13С СГ15П2 6Н9С...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru