Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как адресуются устройства в RS-485, Адресация устройств в RS-485 
V
    Опции темы
DimonSDA
Дата 13.5.2009, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 28.4.2009

Репутация: нет
Всего: нет



Здравствуйте, меня интересуют следущие вопросы:

1) Каким образом происходит адресация устройств в RS-485 - аппаратно (посредством джамперов) или программно ?
Если адресация происходит программно, то каким образом назначается адрес устройству - он уже зашит в его прошивку или его нужно    туда как-то передать (типа как в USB) ?

2) Каково максимальное рабочее расстояние у этого интерфейса ? Практически везде встречаю что 1200 м, но также есть сведения что реально работает на 15 км. Реально ли 15км?

3) Может ли RS485 работать на скорости 19200 при расстоянии 1200 метров?

4) Может ли устройство работать на скорости 19600 или такой скорости вообще не существует? Насколько я понимаю скорости поддерживаемые RS485 такие-же как у RS-232. Или я неправ?

5) Существует ли спецификация интерфейса RS485 в виде pdf, я перерыл уже все, но так и не смог найти целостного документа, лишь разрозненные html где приводится весьма скудная информация.

PM MAIL   Вверх
UniBomb
Дата 13.5.2009, 20:15 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 2
Всего: 97



1. Этот вопрос происходит из-за путанице в голове понятий "интерфейс" и "протокол". Устройства, которые общаются цифровыми сигналами (не аналоговыми) адресуются так, как указано в спецификации на протокол. Например в протоколе ModBus первым передаваемым байтом идёт адрес устройства, которое должно ответить. Устройство должно принять всю посылку и в случае, если адрес в команде совпадает с его номером ответить ведущему. Т.е. правильный ответ - программно.

2. 1200 метров - это гарантированная длина кабеля, при котором будет устойчивый обмен данными. Работать будет и на больших линиях, но она должны при этом быть максимально качественной, т.е. правлильно согласовать шину, использовать кабель с наименьшим затуханием сигнала, ну и что бы на линию действовало как можно меньше наводок. И при этом всё стоит помнить, что чем выше скорость - тем короче должна быть линия связи.

3. Теоретически да. Но стоит помнить про предыдущий пункт.

4. Скорости 19600 среди "стандартных" нет. Тут следовало бы рассказать про тактирование и предделители, но неохота. Скажу одно - можно подобрать практически любую скорость обмена, но идеально точно это не всегда получится. А в некоторых случаях, когда нет доступа к предделителям, то вообще можно выбрать только стандартную скорость.

5. Не встречал, да в общем то и не нужно. Вот что по твоему спецификация на интерфейс? Спецификация должна только указать номиналы логических "1" и "0", сопротивлений между линиями, какие согласующие резисторы брать и т.д. По большому счёту в принципе этого знать не нужно, т.к. все существующие микросхемы как модулей UART, так и интефейсопреобразующих микросхем отвечают всем параметрам. А так в принципе кратко, но очень ёмко и понятно про интерфейс написано тута.

Добавлено через 56 секунд
И кстате тема не имеет никакого отношения к разделу "C/C++: Общие вопросы"...


--------------------
PM MAIL ICQ Skype   Вверх
DimonSDA
Дата 13.5.2009, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 28.4.2009

Репутация: нет
Всего: нет



Цитата

1. Этот вопрос происходит из-за путанице в голове понятий "интерфейс" и "протокол". Устройства, которые общаются цифровыми сигналами (не аналоговыми) адресуются так, как указано в спецификации на протокол. Например в протоколе ModBus первым передаваемым байтом идёт адрес устройства, которое должно ответить. Устройство должно принять всю посылку и в случае, если адрес в команде совпадает с его номером ответить ведущему. Т.е. правильный ответ - программно.


А каким образом устройство узнает, что адрес указанный в принятом пакете соответствует именно ему?

PS: 
Цитата

И кстате тема не имеет никакого отношения к разделу "C/C++: Общие вопросы"...


Извините за это, но я предпологал, что если речь пойдет о программном конфигурировании устройства (назначение адреса), то будет некорректно постить в другой ветке. А программу для работы с моим устройством я буду писать именно на С++.

Это сообщение отредактировал(а) DimonSDA - 13.5.2009, 20:52
PM MAIL   Вверх
UniBomb
Дата 13.5.2009, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
***
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 1754
Регистрация: 24.10.2006
Где: Санкт-Петербург

Репутация: 2
Всего: 97



Цитата(DimonSDA @  13.5.2009,  20:44 Найти цитируемый пост)
А каким образом устройство узнает, что адрес указанный в принятом пакете соответствует именно ему?

Логично было бы завести переменную, в которой и хранить адрес этого самого устройства. И при получении данных сравнивать адрес в команде с этой переменной. А как изменять эту переменную - это уже другой вопрос. Тут всё зависит от того, что разработчики придумают. Можно джамперами, пожно ещё как. Например я для этих целей высосал из пальца свой "технический" протокол, с помощью которого я могу конфигурировать приборы как захочу. По спецификаии этого протокола прибор всегда откликается на нулевой адрес и на адрес, который хранится в той переменной. 


Цитата(DimonSDA @  13.5.2009,  20:44 Найти цитируемый пост)
но я предпологал

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

Это сообщение отредактировал(а) UniBomb - 13.5.2009, 22:18


--------------------
PM MAIL ICQ Skype   Вверх
xvr
Дата 14.5.2009, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



UniBomb все подробно расписал, хочу только уточнить -
RS485 задает как будет передаваться сигнал по проводам (напряжения, последовательность передачи битов), он НИКАКИМ боком не задает ЧТО это все будет обозначать для устройств на линии RS485

Что у вас за устройства?

PM MAIL   Вверх
DimonSDA
Дата 14.5.2009, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 28.4.2009

Репутация: нет
Всего: нет



Цитата

Что у вас за устройства?


Это устройства спец. назначения, изготавливаются сторонним разработчиком, а я этими устройствами управляю с компа. Про адресацию в технических условиях ничего не говорится. Также нет никаких джамперов. Цепляются к компу через мультипортовую плату. Устройства служат для сбора информации от разных источников.

Получается что любой пакет отправленный хостом будет принят всеми устройствами подключенными к шине, но для того-чтобы устройство, которому адресован этот пакет, распознало что адресовано именно оно, это устройство должно знать свой собственный адрес, для того, чтобы сравнить его с адресом, извлеченным из пакета. Так вот и непонятно откуда берется адрес внутри устройства.

Тут есть три варианта: либо адрес жестко прошит в устройство (в моем случае неизвестен), либо этот адрес выставляется какими-нибудь джамперами (в моем случае их нет), либо задается программно.

Тоесть остается програмно.

Похоже разработчик просто забыл указать адреса устройств.

Это сообщение отредактировал(а) DimonSDA - 14.5.2009, 18:23
PM MAIL   Вверх
xvr
Дата 14.5.2009, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(DimonSDA @ 14.5.2009,  18:09)
Цитата

Что у вас за устройства?


Это устройства спец. назначения, изготавливаются сторонним разработчиком, а я этими устройствами управляю с компа. Про адресацию в технических условиях ничего не говорится. Также нет никаких джамперов. Цепляются к компу через мультипортовую плату. Устройства служат для сбора информации от разных источников.

Тогда вам нужно трясти с разработчиков описание протокола обмена (или хотя бы название, если используется стандартный)
Одного названия RS485 совершенно недостаточно

PM MAIL   Вверх
DimonSDA
Дата 14.5.2009, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 28.4.2009

Репутация: нет
Всего: нет



Цитата

Тогда вам нужно трясти с разработчиков описание протокола обмена (или хотя бы название, если используется стандартный)


Да этим и займусь, ведь все-таки за эти устройства деньги платим, а не даром получаем... Пусть уж потрудятся.

Спасибо огромное всем откликнувшимся за помощь.

Это сообщение отредактировал(а) DimonSDA - 14.5.2009, 21:41
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0914 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.