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

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

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

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

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

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

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

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

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

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

Цитата Сообщение от tsostyk
Линия данных длиной от 1 до 50 м (с запасом и достаточно грубым приближением).
Возникает вопрос - как физически лучше осуществить передачу.
1)Просто отдельными проводами гнать в сыром виде.
На один метр - можно. На 50 метров - ни за что.
0
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
24.09.2013, 19:09
Модификация RS-232 под названием RS-485 - http://ru.wikipedia.org/wiki/RS-485.
0
0 / 0 / 0
Регистрация: 14.02.2010
Сообщений: 798
24.09.2013, 19:11
SPI и 50 метров не очень сочетаются.
Судя по описанию нужно чота для мастер-слейв общения. Возьмите обычный RS422.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
24.09.2013, 19:26
Ещё интерфейс "токовая петля" справится с 50-тиметровым расстоянием. Токовую петлю можно и поверх SPI применить.
0
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 66
24.09.2013, 20:30
Цитата Сообщение от 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
Цитата Сообщение от OtyxPM
На один метр - можно. На 50 метров - ни за что.
а нам в соседней теме рассказывали, что 50м легко и (почти) без ничего... :))) в тред приглашается "эксперт по длиным линиям на атмегах" :)))
0
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 801
24.09.2013, 20:59
витая пара и rs 422 или 485
0
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 66
25.09.2013, 12:58
Спасибо всем ответившим.
Тем не менее есть очередная пара вопросов.
Правильно ли я понимаю, что взяв драйвер типа 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
Для большинства драйверов надо еще переключать их с приема на передачу. Топология типа "шина" с терминаторами. Проще всего написать протокол-обёртку, который будет ваши SPI-пакеты заворачивать в шинный пакет с заголовком адреса. Адрес 0 - бродкаст.
0
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 892
25.09.2013, 13:47
Цитата Сообщение от Ymk
Цитата Сообщение от OtyxPM
На один метр - можно. На 50 метров - ни за что.
а нам в соседней теме рассказывали, что 50м легко и (почти) без ничего... :))) в тред приглашается "эксперт по длиным линиям на атмегах" :)))
Я тут. Автор не озвучил требуемую скорость обмена.
0
0 / 0 / 0
Регистрация: 23.04.2013
Сообщений: 66
25.09.2013, 14:02
Цитата Сообщение от инкер
Я тут. Автор не озвучил требуемую скорость обмена.
9600 бод, по предварительным прикидкам, должно хватить за глаза.
Пусть для надежности будет 19200.
0
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
25.09.2013, 14:09
Цитата Сообщение от 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
- 1 unit нагрузки RS422 равен 3 unit`ам нагрузки RS485
Схуяли так? Откуда там неожиданно в три раза? Там же просто две разделенных RS485, одна на передачу, другая на прием.
0
0 / 0 / 0
Регистрация: 28.10.2010
Сообщений: 892
25.09.2013, 15:01
Цитата Сообщение от tsostyk
Цитата Сообщение от инкер
Я тут. Автор не озвучил требуемую скорость обмена.
9600 бод, по предварительным прикидкам, должно хватить за глаза.
Пусть для надежности будет 19200.

В реализованом решении скорость условно на порядок меньше, около 1200 бод. БОльшая скорость не проверялась, так как эта обеспечивала четырехкратный запас для опроса 16-ти датчиков. То, что возможно работать на линию 70 метров без драйверов, с контроллера на контроллер без витых пар - это реально.
0
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
25.09.2013, 15:10
Цитата Сообщение от 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
Еще раз спасибо за ответы. Последний(надеюсь) вопрос, чтобы окончательно расставить все по своим местам.


http://**************************/download/file.php?id=16635&sid=f68a617e9e92323b5b 4af531a1b88006

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

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru