Полная версия этой страницы:
rs485 - скорость передачи
Прошу поделится опытом применения этого интерфейса. Собираю схему удаленного контроллера (комп-FT232r-"rs485"-50метров-"rs485"-контроллер)Особенно интересует максимально (реально) достижимые скорости передачи. (Сразу хочу отметить что datasheet смотрел, здесь
http://www.rs485.com/pusbproducts.html был ), но поскольку никогда непробовал сам, есть некоторые сомнения.. :-( Скорость передачи необходима около 115000бод, реально ли качать такой поток метров на 50? Можно ли увеличить поток и на сколько (помехи,звон и тд)? заранее спасибо за любые советы и рекомендации.
По стандарту RS485 допускается передавать 1 Мбит/сек на расстоянии до 100м, или 100 кбит/сек на расстоянии до 1 км. При этом линия должна быть, конечно, согласована с обоих концов.
Проблемы с RS485 есть, особенно с самопальными протоколами. Дело в том, что, поскольку это
шина, то значительную часть времени она проводит в 3-м состоянии. При этом все приемники отлично ловят помехи, что вызывает ложный запуск UART-ов. Если не предусмотреть в протоколе преамбулу, когда передатчик, перед тем как начать пересылку, достаточно долго держит шину в пассивном состянии, чтобы UARTы про...чистились

, то будут глюки. Соответственно, протокол должен предусматривать жесткие тайм-ауты, и т.п.
Если шина не нужна, а нужно просто гнать данные из одной точки в другую, то лучше работать в режиме RS422. При этом передатчик вообще никогда не переходит в 3-е состояние, и своим выходом эффективно гасит помехи. Линию при этом надо согласовывать только на приемном конце, и с протоколом никаких забот нет.
Полностью согласен с =AK=, если требуется интерфейс "точка-точка",
то RS-422 лучший выбор. У нас на 50 метров работает без
проблем (UART, 115200). Мы использовали MAX1490, обеспечивающий
гальваническую развязку.
По шине RS-485 у нас управляется группа устройств в пределах стойки,
т.е. растояния не более 5 метров, при этом используется протокол HDLC
поверх "Манчестера", приемо-передатчики ADM1485. Шина - витая пара
в экране (КСВ), согласована с обоих сторон резисторами по 120 Ом.
Прекрасно работает на скорости 1,5 МБит/сек.
SasaVitebsk
Mar 7 2006, 20:56
Хочу применить RS485 в одной разработке. Поток практически односторонний. Но мне надо им управлять. Поскольку аппаратного управления нет, то требуется програмное управление что-то типа xon/xoff. Не хочется самому придумывать протокол. Может кто подскажет ссылку на описание несложного в реализации протокола для реализации програмного управления потоком.
defunct
Mar 7 2006, 22:40
Цитата(SasaVitebsk @ Mar 7 2006, 22:56)

Хочу применить RS485 в одной разработке. Поток практически односторонний. Но мне надо им управлять. Поскольку аппаратного управления нет, то требуется програмное управление что-то типа xon/xoff. Не хочется самому придумывать протокол.
Протокол канального уровня сведется либо к байт-стаффингу либо к MAC и там и там желательно применение CRC.. В зависимости от конкретной задачи задайте в поисковой системе
http://www.inetfinder.ru/ запрос на поиск известных (применяемых) протоколов байт-стаффинга или MAC.
Цитата(Shamil_Yusupov @ Mar 7 2006, 14:32)

Шина - витая пара
в экране (КСВ), согласована с обоих сторон резисторами по 120 Ом.
Прекрасно работает на скорости 1,5 МБит/сек.
Дополню своим опытом. Манчестер, 4 Мбит в сек, ADM3485E, все замечательно работает на ~5 метров по проводу, которым обычно бытовые приборы в сеть включаются

Соответственно, не витой, терминаторы с обеих сторон по 100 ом (от фонаря). На бОльшие расстояния применяем витуху 5-ой категории. Максимум, что проверяли - 15 метров на 4 Мбит.
Оно работает и на 8 Мбит, длину более 1 метра не проверял пока.
RS485 рулит
была задача получать температуру помещения на расстоянии не менее 20 метров с датчика 1820
решение - в лоб ни привело к положит результату 1-wire bus просто ну совсем не хотел работать
была использована самопальная витая пара по 1,5 кв мм
причем в лабораторных условиях это работало. а в нашем метро ну ни как - помехи адские..
пришлось все это хозяйство бешеным темпом пересаживать на защищеный интерефейс - протокол
поэтому был выбран RS485 со скоростью 250кб/с в полудуплекном режиме.
в качестве проводов использовалась обычная оффисный 4х жильный кабель - все прошло на ура!!
после подобные устройства были в эксплуатации и с расстояниями 470 метров правда скорость 0,1мб- все ок
Кстати большинство шоу техники - тоже работают на интерфейсе 485 правда кабель с экраном
но на практике я встречал суммарные длины реально до 1000 метров - причем люди не парились даже с терминаторами - ибо не ведали что это такое... :-)
defunct
Mar 8 2006, 15:40
Цитата(Kovrov @ Mar 8 2006, 16:57)

Кстати большинство шоу техники - тоже работают на интерфейсе 485 правда кабель с экраном
но на практике я встречал суммарные длины реально до 1000 метров - причем люди не парились даже с терминаторами - ибо не ведали что это такое... :-)
Если подключать все по даташиту, например, на MAX485CPA, то и не нужно ведать что такое терминатор, надо просто ставить в параллель линии резистор Rt на каждом входе ;>
если я буду советовать ставить Rt на каждом входе 485 - меня точно побъют...
defunct
Mar 8 2006, 19:31
Цитата(Kovrov @ Mar 8 2006, 20:19)

если я буду советовать ставить Rt на каждом входе 485 - меня точно побъют...

у нас мужики соединили ~30 устройств (суммарная дальность 5м) на входе каждого повесили 120 ом, потом долго разбирались почему вся эта гирлянда не работает

трансиверы не сгорели, зато понимания прибавилось ;>
чем длинее провода тем критичнее требования к проводам. особенно к погонной емкости.
Цитата(arttab @ Mar 9 2006, 11:55)

чем длинее провода тем критичнее требования к проводам. особенно к погонной емкости.
Сама по себе погонная емкость интереса не представляет. Для длинной линии важно иметь
стабильное волновое сопротивление.
RS485 используем давно в промышленной автоматизации. Соростями больше 54700 пользоваться перестали, т.к. достали глюки. По моему это придел для этих линий. Если требуеться стабильность работы ставим скорость 38400. Самая дальняя связь - 800 м.
Советую вам почитать спецификацию Prоfi*Bus. Там в четвёртой главе много полезной информации по этому поводу, вот например что там пишут про скорости и длину кабеля.
Цитата(GSK @ Mar 9 2006, 08:10)

. Соростями больше 54700 пользоваться перестали, т.к. достали глюки.
А в чем выражаються эти глюки?
На самодельных устройствах появляется лишний ведущий бит. А на промышленных связь то появляеться то пропадает.
Пасибо за ответы! К сожелению они (ответы) добавили еще больше сметения и сомнения по поводу применения rs485 :-(
задавая вопрос я несовсем точно описал систему...а именно: прередача ведется на растояние ~50м а далее через каждые 2 м стоят приемники 15шт. (контроллеры управления ) . Итого линия получается 78м (суть дела это не меняет 50 или 78 :-) требо тока прально линию согласовать) Передача ведется в одну сторону!
=AK= Вы меня обнадежели! есть несколько вопросов: 1."Если шина не нужна, а нужно просто гнать данные из одной точки в другую, то лучше работать в режиме RS422" - да шина не нужна..но по сравнительному описанию на gaw есть упоминание что максимум приемников 10?! :-( 2.если взять 485 и определить однозначно кто передатчик а кто приемник будут ли вопросы с "..часть времени она проводит в 3-м состоянии.."?
GSK а Вы к сожалению меня просто добили.. :-) "RS485 используем давно в промышленной автоматизации. Соростями больше 54700 пользоваться перестали, т.к. достали глюки. По моему это придел для этих линий. Если требуеться стабильность работы ставим скорость 38400. Самая дальняя связь - 800 м."

?!
Мне очень жаль, что я тебя расстроил. Но мне кажеться не все потерено. Советую оптимизировать трафик. Зачем такие большие скорости на 16 устрйств? И еще (извини) но хочу заострить внимание, а то часто в этом путаница при подсчете трафика биты в секунду и байты в секунду.
Кстати, у нас в одном месте стоят термопреобразователи 28 шт. линия 120 м. скорость 19200 - все чудесно работает. Ведуший - PC.
"Мне очень жаль, что я тебя расстроил. " -
"Зачем такие большие скорости на 16 устрйств?" - вот так получилось..надо..
" часто в этом путаница при подсчете трафика биты в секунду и байты в секунду"- я написал в бодах..
уточняю 115кбод =115000бод~115кбит(+start, stop)
"Кстати, у нас в одном месте стоят термопреобразователи 28 шт. линия 120 м. скорость 19200 - все чудесно работает. " - встречный вопрос: а зачем Вам такая скорость (19200)?
defunct
Mar 9 2006, 10:30
Цитата(add @ Mar 9 2006, 09:33)

К сожелению они (ответы) добавили еще больше сметения и сомнения по поводу применения rs485 :-(
задавая вопрос я несовсем точно описал систему...а именно: прередача ведется на растояние ~50м а далее через каждые 2 м стоят приемники 15шт. (контроллеры управления ) . Итого линия получается 78м (суть дела это не меняет 50 или 78 :-) требо тока прально линию согласовать) Передача ведется в одну сторону!
На 78м без проблем будет работать на 115200, для повышения надежности на крайней точке (последний приемник) поставьте в параллель линии сопротивление 100~500om.
да все будет ок!! не переживай!!!
главное делай перед началом пакета преамбулы (см где то выше)
и можешь поставить как драйвер не адм485 а например SN75176 - они помощней будут!!!
и терминатор на самый край кабеля 120ом!!
ну а кабель используй например проэль микрофонный
(я понимаю за такие советы могут ногами запинать) но 95% всей шоу техники работают на этом кабеле
(2 жилы + экран) и ничего причем скорость 250 кбит. а помеховые условия ужас ;-) ...
Цитата(GSK @ Mar 9 2006, 10:12)

На самодельных устройствах появляется лишний ведущий бит. А на промышленных связь то появляеться то пропадает.
а поподробнее что за лишний бит
и что значит появляется- пропадает?
или так от вольного - "работает - не работает"?
Осылаешь в линию 55 а приемник принимает D5!
Переодически.
defunct
Mar 9 2006, 14:01
Цитата(GSK @ Mar 9 2006, 14:59)

Осылаешь в линию 55 а приемник принимает D5!
Переодически.
У нас периодически линия обрывается, так 485-й по одному проводу (на 115200) работает и практически ничего не теряет... Может у Вас среда уж очень "hostile" или не согласованы скорости приема и передачи, или с питанием чего-то не то?..
Цитата(GSK @ Mar 9 2006, 15:59)

Осылаешь в линию 55 а приемник принимает D5!
Переодически.
а терминаторы стоят?
beer_warrior
Mar 9 2006, 18:21
Господа, коль пошла такая петрушка,
никто не использует диодные терминаторы?
Я ставил их в старые разработки, но там условия были тепличные,
а сейчас надо сделать девайсы для очень жестких условий.
Цитата(beer_warrior @ Mar 9 2006, 20:21)

Господа, коль пошла такая петрушка,
никто не использует диодные терминаторы?
Я ставил их в старые разработки, но там условия были тепличные,
а сейчас надо сделать девайсы для очень жестких условий.
А по подробней плиз, а то нечто такое придумывал, может - велосипед?
beer_warrior
Mar 10 2006, 20:11
С каждой сигнальной линии на питание и землю по диоду Шоттки (нормально закрытые ессно).
Утверждаеться, что по качеству лучше, чем резисторы смещения и Rt.
По нынешним временам сдвоенный Шоттки в SOT32 стоит совершенншие копейки, однако я не встречал практического использования этой схемы.
А ведь по идее, кроме правильного формирования уровней, они дадут еще защиту от перенапруги (не слишком большой).
defunct
Mar 11 2006, 04:06
Цитата(beer_warrior @ Mar 10 2006, 22:11)

С каждой сигнальной линии на питание и землю по диоду Шоттки (нормально закрытые ессно).
Утверждаеться, что по качеству лучше, чем резисторы смещения и Rt.
По нынешним временам сдвоенный Шоттки в SOT32 стоит совершенншие копейки, однако я не встречал практического использования этой схемы.
Дык.. коль уж пошла такая петрушка, если цепляться и к питанию и к земле, то придется еще и полную гальваноразвязку ставить. А это уже дорого. Вероятно потому и не применяется такая схема на практике..
beer_warrior
Mar 11 2006, 11:19
Цитата
Дык.. коль уж пошла такая петрушка, если цепляться и к питанию и к земле, то придется еще и полную гальваноразвязку ставить. А это уже дорого. Вероятно потому и не применяется такая схема на практике..
Гальваноразвязка сама по себе, терминатор сам по себе.
Ведь все равно ставят резистуары, чтобы загнать линию в определенный
уровень.
Цитата(beer_warrior @ Mar 10 2006, 22:11)

С каждой сигнальной линии на питание и землю по диоду Шоттки (нормально закрытые ессно).
Утверждаеться, что по качеству лучше, чем резисторы смещения и Rt.
По нынешним временам сдвоенный Шоттки в SOT32 стоит совершенншие копейки, однако я не встречал практического использования этой схемы.
А ведь по идее, кроме правильного формирования уровней, они дадут еще защиту от перенапруги (не слишком большой).
Я другое думал, и надумал вот что. Основные проблемы заключаются в наличии помех на линии при напряжении в ней около 0 (когда все на прием). Решал проблему сл. образом (в прис. файле), причем диоды ставил прямо вместо перемычки, включающей 100 ом терминатора (заодно и платы девайсов не надо было переразводить).
Нажмите для просмотра прикрепленного файла В результате в идле-режиме на линии всегда есть 0.5-0.6 вольта, что заметно больше наводимых помех, в результате - без случайных ловлей старта. А при нормальной работе (при передаче), диоды не мешают (особо) терминированию линии.
К сожалению, изменять протокол обмена было нельзя, так бы конечно добавил защитных байтов...
Igor26
Mar 11 2006, 20:13
Цитата(defunct @ Mar 11 2006, 07:06)

Цитата(beer_warrior @ Mar 10 2006, 22:11)

С каждой сигнальной линии на питание и землю по диоду Шоттки (нормально закрытые ессно).
Утверждаеться, что по качеству лучше, чем резисторы смещения и Rt.
По нынешним временам сдвоенный Шоттки в SOT32 стоит совершенншие копейки, однако я не встречал практического использования этой схемы.
Дык.. коль уж пошла такая петрушка, если цепляться и к питанию и к земле, то придется еще и полную гальваноразвязку ставить. А это уже дорого. Вероятно потому и не применяется такая схема на практике..
Что значит не применяется? MAX1480 применяется у нас чуть ли не с 98-го года. Конечно стоит она около 15$.
Я, в своё время, сделал преобразователь MAX487<->FT232BM и оказалось, что система была очень чувствительна ко всяким, даже не очень сильным помехам. Неустойчивость проявлялась в том, что в случае помехи, преобразователь "отваливался" со связи. Реанимировалось это перезапуском программы со стороны ПК, или переинициализацией порта в РС-программе. Недостатки своей аппаратуры нехотелось перекладывать на плечи ПиСи-шного программиста и поэтому MAX487 я заменил на MAX1480. Она с полной гальванической развязкой, но и заметно дороже, да и тонкости применения у нее выявились за годы эксплуатации. Но результат применения MAX140 превзошел все ожидания. Косяки появлялись где угодно, но только не в преобразователе интерфейсов.
По поводу защищенности линий RS485.

Ели Ваши линии уходят на улицу, то, рано или поздно Вы столкнётесь с проблемой грозозащиты. НЕ ЭКОНОМТЕ на варисторах и прочих газонаполненных разрядниках!!! Поверьте, проблема очень больная.
Может, конечно, OFF, но хотелось предупредить Коллег о граблях, на которые уже наступали.
defunct
Mar 12 2006, 00:15
Цитата(Igor26 @ Mar 11 2006, 22:13)

Цитата(defunct @ Mar 11 2006, 07:06)

Дык.. коль уж пошла такая петрушка, если цепляться и к питанию и к земле, то придется еще и полную гальваноразвязку ставить. А это уже дорого. Вероятно потому и не применяется такая схема на практике..
Что значит не применяется? MAX1480 применяется у нас чуть ли не с 98-го года. Конечно стоит она около 15$.
Я оговорился, извиняюсь, конечно гальваноразвязка применяется там где требуется, не смотря на дополнительные немалые затраты...
Делаю по такой схеме и горя не знаю. И защита от перенапряжения (супрессоры P6KE12CA), защита по току (самовостанавливающие предохранители MF R017), подтяжка 10кОм, ну а термиатор 120 Ом надо делать внешним
Делаю по такой схеме и горя не знаю. И защита от перенапряжения (супрессоры P6KE12CA), защита по току (самовостанавливающие предохранители MF R017), подтяжка 10кОм, ну а термиатор 120 Ом надо делать внешним
Нажмите для просмотра прикрепленного файла
Мдя...По-моему тема трохи не в тему (хе-хе..каламбур получился).
Причём сдесь AVR вообще не понятно..
Эти вопросы достаточно обсуждались в разделе "Интерфейсы".
GrayCat
Mar 16 2006, 13:04
Цитата(Rash @ Mar 16 2006, 09:56)

Делаю по такой схеме и горя не знаю. И защита от перенапряжения (супрессоры P6KE12CA), защита по току (самовостанавливающие предохранители MF R017), подтяжка 10кОм, ну а термиатор 120 Ом надо делать внешним
А 2 нанофарады емкости супрессоров не болтаются под ногами? Причем, на
каждой точке?
Мы так делаем:
Нажмите для просмотра прикрепленного файлаРаботает...
alekseykoj
Mar 17 2006, 14:24
Впринципе можно передать и на скорости 115000, если "соблюсти" все требования для передачи посылок (Контрольная сумма, заголовок, повтор передачи при ошибке и т.д.) но реальная скорость все равно будет меньше, но это все зависит от многих причин (длина кабеля, где проходит и т.д.)
Цитата(alekseykoj @ Mar 17 2006, 17:24)

Впринципе можно передать и на скорости 115000, если "соблюсти" все требования для передачи посылок (Контрольная сумма, заголовок, повтор передачи при ошибке и т.д.) но реальная скорость все равно будет меньше, но это все зависит от многих причин (длина кабеля, где проходит и т.д.)

alekseykoj надеюсь ваше заявление обоснованно (и не просто предположение) и если Вас незатруднит то поясните его пожалуйста. (с учетом предыдущих постов). Спасибо.
_artem_
Mar 17 2006, 16:31
Вообше то хорошо бы так для эксперимента на тех линиях где работает с помехами проверить кабель TDR рефлектометром без и с терминаторами.
Для тех кто сюда не заглядывал :
http://www.maxim-ic.com/appnotes10.cfm/ac_pk/14#30
Alexey K
Oct 19 2011, 11:16
Есть вопрос к тем кто применял MAX1490 (MAX1480). Хочу применить эту микросхему для RS-422 . Проблема в том что управлять ей будет Spartan 3 или напрямую в ARM.
И там и там уровни 3.3 вольта. Сначала хотел поставить логику с открытым коллектором(1333ли8) для управления светодиодом развязки передатчика . А выход приемника тоже через 1333 ли8 но запитать коллектор от 3.3в.
Но на плате есть свободные буфера IDT74lvch16244 и не могу понять хватит ли ей выходных 3.1 в для закрытия диода. Ток буфера 24ма так что должно хватить для включения.
Автору - смело используйте как RS485 так и RS422. Терминаторы и перекос в линии обязательны. На 15 устройств раздадите легко, только смотрите в даташите на нагрузочную способность используемой микросхемы.
Alexey K
Oct 19 2011, 12:26
Спасибо, но вопрос в принципе был в другом будет ли эта микросхема нормально работать с таким буффером. А передача будет точка точка.
Цитата(Alexey K @ Oct 19 2011, 16:26)

Спасибо, но вопрос в принципе был в другом будет ли эта микросхема нормально работать с таким буффером. А передача будет точка точка.
IMHO, лучше взять ADM2682E. Она и с питанием в 3,3 вольта дружит, и развязка трансформаторная а не оптронная, и корпус меньше. И дешевле
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.