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

И не будет траблов с переключением. Вообще никаких проблем. :biggrin:

Угу. А наличие приемопередатчиков RS485 позволит, честно глядя в глаза заказчику, нагло заявить, что его требование выполнено. Поскольку заказчик, конечно, именно приемопередатчики имел ввиду, а не топологию сети. Он, поди, и слова такого не знает, "топология" ;)

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


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

Резисторы 510 ом обычно не нужны.

 

Не вводите в заблуждение.

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


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

И не будет траблов с переключением. Вообще никаких проблем. :biggrin:
Не будет траблов с переключением, но начнутся траблы с подключением. У ТС в корневом сообщении указано, что требуется подключать внешние устройства с интерфейсом RS485. Попробуйте объяснить заказчику почему, несмотря на использование трансиверов RS485, для подключения требуется четыре, а не два провода? И где взять еще два провода на подключаемом устройстве? А как только вы 4-х проводный RS485 попробуете превратить в 2-х проводный (плевое дело в общем-то, но...), то сразу возникнет исходный вопрос ТС: кто и как будет управлять переключением трансиверов с приема на передачу?

Не вводите в заблуждение.
Он прав. Обычно не требуется. Необходимость применения "растяжки линии" зависит от помехоустойчивости протокола связи.

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


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

Не вводите в заблуждение.

В каком смысле?

Есть разные производители трансиверов RS485. У них есть требования. В даташитах все написано, как надо. Мы говорим о разных трансиверах?

 

Попробуйте объяснить заказчику почему, несмотря на использование трансиверов RS485, для подключения требуется четыре, а не два провода?

Это все понятно. RS422 используют в основном только в сетях, где требуется скоростная передача в оба конца одновременно.

Но в некоторых случаях можно организовать и кольцевую схему подключения - т.е. не шина.

Но выглядеть будет как RS422 (вход, выход отдельно) а провод в линии будет один - если не ошибаюсь.

Зверь машина получится. :rolleyes:

 

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


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

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

Но выглядеть будет как RS422 (вход, выход отдельно) а провод в линии будет один - если не ошибаюсь.
Все равно к каждому устройству должно подходить две пары проводов. Если же готовое законченное устройство имеет только два контакта для подключения 2-х проводного RS485, то куда вы "присобачите" вторую пару, чтобы кольцо получилось?

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


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

RS422 предназначен для подключения точка-точка. RS485 - для "многоточечного" подключения к общей шине.

Все равно к каждому устройству должно подходить две пары проводов. Если же готовое законченное устройство имеет только два контакта для подключения 2-х проводного RS485, то куда вы "присобачите" вторую пару, чтобы кольцо получилось?

Дык, рядом с трансивером, на печатной плате, клеете на эпоксидку очеееень маленькую платку с еще одним трансивером. :biggrin:

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


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

У ТС в корневом сообщении указано, что требуется подключать внешние устройства с интерфейсом RS485. Попробуйте объяснить заказчику почему, несмотря на использование трансиверов RS485, для подключения требуется четыре, а не два провода?

 

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

 

Посему требование корневого сообщения будет выполнено буквально и в полном объеме, ежели топикстартер выбросит приемник и передатчик RS232, и вместо них поставит два приемопередатчика RS485, один из которых всегда работает в режиме приема, а второй - в режиме передачи. :disco:

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


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

Он прав. Обычно не требуется. Необходимость применения "растяжки линии" зависит от помехоустойчивости протокола связи.

И вы туда же! От вас не ожидал :) Распишите с карандашиком, что происходит с линией связи, когда она свободна. Перед моментом занятия. В момент занятия и все встанет на свои места. Обратите внимание на то, что будет на выходе приемника с линии во всех этих случаях. А если бы вы практически с эти каждый день сталкивались , то вы бы и возмутились бы сразу как я. Это в редких случаях , при определенных условиях без растяжки можно заставить обмен работать. В общем случае, и, тем более, в случае протоколов с сырыми байтами, без нее просто не будет работать.

 

Сименс вообще ее делает обязательной аж с двух сторон линии.

 

У нас просто каждый третий заказчик на этом попадается и все так удивлены.

 

Да и согласующие резисторы нужны даже на столе, с ними даже на короткой линии на нее не наводится много и приемник не занимается тем, что принимает сигналы с марса.

 

В каком смысле?

Есть разные производители трансиверов RS485. У них есть требования. В даташитах все написано, как надо. Мы говорим о разных трансиверах?

 

Все выше расписал.

 

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

 

 

Еще прикольнее будет, если выполнить требование об объединении земель драйверов, и выяснится, что витая пара обзаведется проводом C.

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


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

Это в редких случаях , при определенных условиях без растяжки можно заставить обмен работать.

 

Ув. rezident абсолютно прав. Если для того, чтобы обмен по RS485 работал в условиях помех, ему нужны растяжки, то это отстой, а не протокол. Широкая распространенность отстойных протоколов обмена никоим образом не является оправданием для их использования. :angry2:

 

Шину RS485 можно условно рассматривать как "проводной вариант пулудуплексного радиоканала". Распишите с карандашиком (с), в какое место можно вставить "растяжки" в радиоканале. :wacko:

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


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

Да причём тут помехи... Приходилось вот сталкиваться с МК, которые, поймав состояние "break" на RXD (т.е. 11 нулей подряд), улетают в бутлоадер. Невзирая ни на какие хитрости с протоколом. Так задумано производителем. Так что, если трансиверы не fail-safe (SN75176 etc.), растяжки в общем случае нужны.

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


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

Приходилось вот сталкиваться с МК, которые, поймав состояние "break" на RXD (т.е. 11 нулей подряд), улетают в бутлоадер. Невзирая ни на какие хитрости с протоколом.

Интересно, какие это процики так себя ведут? Полезно знать, чтобы нечаянно не вляпаться в такое.. э-э-э... чудо :(

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


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

Интересно, какие это процики так себя ведут? Полезно знать, чтобы нечаянно не наступить на такое гомно.

У европейских производмителей такие штуки бывают. Они самые умные. :rolleyes:

Только причем тут RS485 непонятно.

Если фирма дает рекомендации ставить растяжки - значит нужно. Одно время рекомендовали как вариант - многие.

Сейчас новые трансиверы идут все без растяжек и даже без внешних защитных диодов. Техпрогресс.

Единственно, только согласующие по волновому сопротивлению на концах линии никто не заменит - это уже физика.

 

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

Точно на сей счет не уверен - а то скажут, что опять ввожу кого то в заблуждение. :biggrin:

Про провода не говорят конкретно.

Но симплекс - это RS485, дуплекс - это RS422.

Но, если дуплекс (RS422) в кольце, то в этом случае и вы тоже правы, провод то будет один. :biggrin:

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

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


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

Давайте смотреть, может еще чего нароем.

 

Пусть у нас один мастер и один слейв.

Пусть у нас в слейве процессор умеет переключать напрявление драйвера.

 

Рассмотрим два варианта, которые могут быть на стороне мастера.

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

 

 

1) Рассмотрим , что происходит в первом случае. Пусть линии нагружены, растяжки (поляризации) нет. Между линиями напряжение 0. И у мастера и у слейва драйверы в режиме приема. Выход приемника соединяется с входом UARTа. Вот какой логический уровень поступает в этом случае на вход UART? У приемников гистерезис - они переключаются при разнице напряжений линий 200 или 50 милливольт (зависит от типа мокросхемы, по моему слушал еще про 20 мв, но не уверен). Значит, если предыддущая передача была корректной (она заканчивается стоп импульсом с логическим уровнем 1) и в момент освобождения линии драйвером в предыдущем обмене не было каккого-либо щелчка, есть шанс, что приемник не переключился в состояние логического 0. Есть вероятность, что на вход UART продолжает поступать логическая 1.

Дальше , мастер начинает передачу. Поскольку он всегда знает когда хочет начать (и кончить :) ), то заранее переводит свой драйвер в режим передачи. Поскольку, перед передачай байта, на выходе UART передатчика логическая 1, на линиях A B , при занятии линии мастером , напряжение повышается с 0 до уровня A>B. Приемник слейва гарантированно опознает это как логическая 1. Дальше мастер начинает передавать свой байт. Он начинается со старт импульса и так далее. Т е на стороне приемника на вход UART сначала поступает не очень понятно что, но вероятнее 1, потом,когда мастер занял линию, на короткое время 1 и пошел старт импульс. Теоретически UART справляется с опознанием начала байта и прием возможен нормальным.

 

 

2) Второй вариант. На линии разница напряжений 0. И у мастера и у слейва драйверы в режиме приема. Про уровни, которые поступают на входы UART уже написал выше. Мастер начинает передачу. Драйвер мастера об этом узнает только в момент начала старт импульса. При этом, он переводит драйвер в режим передачи. Но мы уже передаем старт импульс (лог 0) и наше начало передачи начинается с того, что напряжение между линиями A B было 0 и стало A<B. При этом шансы понять, что это был старт импульс, у UART слейва малы. Это зависит от того, что было на выходе приемника до начала передачи мастера.

 

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

 

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

Обмен может быть с применением символьных протоколов, а может с использованием сырых байт.

 

Вот в случае использования символьного протокола, если перед каждой посылкой передавать несколько (я использовал 4)фиктивных байт, например 0xff, то поражение первого байта при примеме слейвом и кутерьма еще с одним - двумя байтами не скажется на примеме самой посылки. При этом явления возникающие в начале передачи остаются незаметными.

 

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

 

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

 

Про растяжки в радиоканале разберитесь сами. :tongue:

 

 

Пы Сы это все кошатники замутили , вот народ и расслабился.

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


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

Пусть линии нагружены, растяжки (поляризации) нет.

Тут у вас непонятный момент. Что значит поляризации нет? Все провода линии "А" подключены к выводу "А" трансивера. По другому не рассматриваем.

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


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

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

 

Как один из вариантов "невозможного" :cranky: протокола, которому не нужны растяжки, навскидку:

 

==Приемник==

- Все, что поступает с линии, приемник складывает в буфер

- При переполнении приемного буфера он очищается без рассмотрения содержимого

- Если с линии не поступает данных в течении некоторого периода времени (например, в течении полутора или двух байт-интервалов), и буфер не пуст, то приемник лезет проверять свой буфер на валидность. Если буфер содержит невалидное сообщение (длина не соответствует объявленной или CRC не совпадает), то содержимое буфера выбрасывается, буфер очищается. Если содержимое буфера валидное, оно обрабатывается.

 

==Передатчик==

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

- Передатчик посылает все байты сообщения без пауз между ними

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

 

Модбасу уже лет 30, наверное, а вы до сих пор твердите, что "невозможно" :twak:

 

Если фирма дает рекомендации ставить растяжки - значит нужно. Одно время рекомендовали как вариант - многие.

 

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

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...