Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: rs485 - скорость передачи
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
add
Прошу поделится опытом применения этого интерфейса. Собираю схему удаленного контроллера (комп-FT232r-"rs485"-50метров-"rs485"-контроллер)Особенно интересует максимально (реально) достижимые скорости передачи. (Сразу хочу отметить что datasheet смотрел, здесь http://www.rs485.com/pusbproducts.html был ), но поскольку никогда непробовал сам, есть некоторые сомнения.. :-( Скорость передачи необходима около 115000бод, реально ли качать такой поток метров на 50? Можно ли увеличить поток и на сколько (помехи,звон и тд)? заранее спасибо за любые советы и рекомендации. mellow.gif
=AK=
По стандарту RS485 допускается передавать 1 Мбит/сек на расстоянии до 100м, или 100 кбит/сек на расстоянии до 1 км. При этом линия должна быть, конечно, согласована с обоих концов.

Проблемы с RS485 есть, особенно с самопальными протоколами. Дело в том, что, поскольку это шина, то значительную часть времени она проводит в 3-м состоянии. При этом все приемники отлично ловят помехи, что вызывает ложный запуск UART-ов. Если не предусмотреть в протоколе преамбулу, когда передатчик, перед тем как начать пересылку, достаточно долго держит шину в пассивном состянии, чтобы UARTы про...чистились biggrin.gif , то будут глюки. Соответственно, протокол должен предусматривать жесткие тайм-ауты, и т.п.

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

Протокол канального уровня сведется либо к байт-стаффингу либо к MAC и там и там желательно применение CRC.. В зависимости от конкретной задачи задайте в поисковой системе http://www.inetfinder.ru/ запрос на поиск известных (применяемых) протоколов байт-стаффинга или MAC.
_LD
Цитата(Shamil_Yusupov @ Mar 7 2006, 14:32) *
Шина - витая пара
в экране (КСВ), согласована с обоих сторон резисторами по 120 Ом.
Прекрасно работает на скорости 1,5 МБит/сек.


Дополню своим опытом. Манчестер, 4 Мбит в сек, ADM3485E, все замечательно работает на ~5 метров по проводу, которым обычно бытовые приборы в сеть включаются smile.gif Соответственно, не витой, терминаторы с обеих сторон по 100 ом (от фонаря). На бОльшие расстояния применяем витуху 5-ой категории. Максимум, что проверяли - 15 метров на 4 Мбит.
Оно работает и на 8 Мбит, длину более 1 метра не проверял пока.

RS485 рулит smile.gif
Kovrov
была задача получать температуру помещения на расстоянии не менее 20 метров с датчика 1820
решение - в лоб ни привело к положит результату 1-wire bus просто ну совсем не хотел работать
была использована самопальная витая пара по 1,5 кв мм
причем в лабораторных условиях это работало. а в нашем метро ну ни как - помехи адские..
пришлось все это хозяйство бешеным темпом пересаживать на защищеный интерефейс - протокол
поэтому был выбран RS485 со скоростью 250кб/с в полудуплекном режиме.
в качестве проводов использовалась обычная оффисный 4х жильный кабель - все прошло на ура!!
после подобные устройства были в эксплуатации и с расстояниями 470 метров правда скорость 0,1мб- все ок

Кстати большинство шоу техники - тоже работают на интерфейсе 485 правда кабель с экраном
но на практике я встречал суммарные длины реально до 1000 метров - причем люди не парились даже с терминаторами - ибо не ведали что это такое... :-)
defunct
Цитата(Kovrov @ Mar 8 2006, 16:57) *
Кстати большинство шоу техники - тоже работают на интерфейсе 485 правда кабель с экраном
но на практике я встречал суммарные длины реально до 1000 метров - причем люди не парились даже с терминаторами - ибо не ведали что это такое... :-)

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

у нас мужики соединили ~30 устройств (суммарная дальность 5м) на входе каждого повесили 120 ом, потом долго разбирались почему вся эта гирлянда не работает wink.gif трансиверы не сгорели, зато понимания прибавилось ;>
arttab
чем длинее провода тем критичнее требования к проводам. особенно к погонной емкости.
=AK=
Цитата(arttab @ Mar 9 2006, 11:55) *
чем длинее провода тем критичнее требования к проводам. особенно к погонной емкости.

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


А в чем выражаються эти глюки?
GSK
На самодельных устройствах появляется лишний ведущий бит. А на промышленных связь то появляеться то пропадает.
add
Пасибо за ответы! К сожелению они (ответы) добавили еще больше сметения и сомнения по поводу применения rs485 :-(
задавая вопрос я несовсем точно описал систему...а именно: прередача ведется на растояние ~50м а далее через каждые 2 м стоят приемники 15шт. (контроллеры управления ) . Итого линия получается 78м (суть дела это не меняет 50 или 78 :-) требо тока прально линию согласовать) Передача ведется в одну сторону!
=AK= Вы меня обнадежели! есть несколько вопросов: 1."Если шина не нужна, а нужно просто гнать данные из одной точки в другую, то лучше работать в режиме RS422" - да шина не нужна..но по сравнительному описанию на gaw есть упоминание что максимум приемников 10?! :-( 2.если взять 485 и определить однозначно кто передатчик а кто приемник будут ли вопросы с "..часть времени она проводит в 3-м состоянии.."?
GSK а Вы к сожалению меня просто добили.. :-) "RS485 используем давно в промышленной автоматизации. Соростями больше 54700 пользоваться перестали, т.к. достали глюки. По моему это придел для этих линий. Если требуеться стабильность работы ставим скорость 38400. Самая дальняя связь - 800 м."
wacko.gif ?!
GSK
Мне очень жаль, что я тебя расстроил. Но мне кажеться не все потерено. Советую оптимизировать трафик. Зачем такие большие скорости на 16 устрйств? И еще (извини) но хочу заострить внимание, а то часто в этом путаница при подсчете трафика биты в секунду и байты в секунду.
Кстати, у нас в одном месте стоят термопреобразователи 28 шт. линия 120 м. скорость 19200 - все чудесно работает. Ведуший - PC.
add
"Мне очень жаль, что я тебя расстроил. " - smile.gif
"Зачем такие большие скорости на 16 устрйств?" - вот так получилось..надо..
" часто в этом путаница при подсчете трафика биты в секунду и байты в секунду"- я написал в бодах..
уточняю 115кбод =115000бод~115кбит(+start, stop)
"Кстати, у нас в одном месте стоят термопреобразователи 28 шт. линия 120 м. скорость 19200 - все чудесно работает. " - встречный вопрос: а зачем Вам такая скорость (19200)?
defunct
Цитата(add @ Mar 9 2006, 09:33) *
К сожелению они (ответы) добавили еще больше сметения и сомнения по поводу применения rs485 :-(
задавая вопрос я несовсем точно описал систему...а именно: прередача ведется на растояние ~50м а далее через каждые 2 м стоят приемники 15шт. (контроллеры управления ) . Итого линия получается 78м (суть дела это не меняет 50 или 78 :-) требо тока прально линию согласовать) Передача ведется в одну сторону!

На 78м без проблем будет работать на 115200, для повышения надежности на крайней точке (последний приемник) поставьте в параллель линии сопротивление 100~500om.
Kovrov
да все будет ок!! не переживай!!!
главное делай перед началом пакета преамбулы (см где то выше)
и можешь поставить как драйвер не адм485 а например SN75176 - они помощней будут!!!
и терминатор на самый край кабеля 120ом!!
ну а кабель используй например проэль микрофонный
(я понимаю за такие советы могут ногами запинать) но 95% всей шоу техники работают на этом кабеле
(2 жилы + экран) и ничего причем скорость 250 кбит. а помеховые условия ужас ;-) ...


Цитата(GSK @ Mar 9 2006, 10:12) *
На самодельных устройствах появляется лишний ведущий бит. А на промышленных связь то появляеться то пропадает.

а поподробнее что за лишний бит
и что значит появляется- пропадает?
или так от вольного - "работает - не работает"? cheers.gif
GSK
Осылаешь в линию 55 а приемник принимает D5!

Переодически.
defunct
Цитата(GSK @ Mar 9 2006, 14:59) *
Осылаешь в линию 55 а приемник принимает D5!

Переодически.

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

Переодически.

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


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

Дык.. коль уж пошла такая петрушка, если цепляться и к питанию и к земле, то придется еще и полную гальваноразвязку ставить. А это уже дорого. Вероятно потому и не применяется такая схема на практике..
beer_warrior
Цитата
Дык.. коль уж пошла такая петрушка, если цепляться и к питанию и к земле, то придется еще и полную гальваноразвязку ставить. А это уже дорого. Вероятно потому и не применяется такая схема на практике..

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



Я другое думал, и надумал вот что. Основные проблемы заключаются в наличии помех на линии при напряжении в ней около 0 (когда все на прием). Решал проблему сл. образом (в прис. файле), причем диоды ставил прямо вместо перемычки, включающей 100 ом терминатора (заодно и платы девайсов не надо было переразводить).

Нажмите для просмотра прикрепленного файла

В результате в идле-режиме на линии всегда есть 0.5-0.6 вольта, что заметно больше наводимых помех, в результате - без случайных ловлей старта. А при нормальной работе (при передаче), диоды не мешают (особо) терминированию линии.

К сожалению, изменять протокол обмена было нельзя, так бы конечно добавил защитных байтов...
Igor26
Цитата(defunct @ Mar 11 2006, 07:06) *
Цитата(beer_warrior @ Mar 10 2006, 22:11) *

С каждой сигнальной линии на питание и землю по диоду Шоттки (нормально закрытые ессно).
Утверждаеться, что по качеству лучше, чем резисторы смещения и Rt.
По нынешним временам сдвоенный Шоттки в SOT32 стоит совершенншие копейки, однако я не встречал практического использования этой схемы.

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

Что значит не применяется? MAX1480 применяется у нас чуть ли не с 98-го года. Конечно стоит она около 15$.
Я, в своё время, сделал преобразователь MAX487<->FT232BM и оказалось, что система была очень чувствительна ко всяким, даже не очень сильным помехам. Неустойчивость проявлялась в том, что в случае помехи, преобразователь "отваливался" со связи. Реанимировалось это перезапуском программы со стороны ПК, или переинициализацией порта в РС-программе. Недостатки своей аппаратуры нехотелось перекладывать на плечи ПиСи-шного программиста и поэтому MAX487 я заменил на MAX1480. Она с полной гальванической развязкой, но и заметно дороже, да и тонкости применения у нее выявились за годы эксплуатации. Но результат применения MAX140 превзошел все ожидания. Косяки появлялись где угодно, но только не в преобразователе интерфейсов.
По поводу защищенности линий RS485. 1111493779.gif Ели Ваши линии уходят на улицу, то, рано или поздно Вы столкнётесь с проблемой грозозащиты. НЕ ЭКОНОМТЕ на варисторах и прочих газонаполненных разрядниках!!! Поверьте, проблема очень больная.
Может, конечно, OFF, но хотелось предупредить Коллег о граблях, на которые уже наступали.
defunct
Цитата(Igor26 @ Mar 11 2006, 22:13) *
Цитата(defunct @ Mar 11 2006, 07:06) *

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

Что значит не применяется? MAX1480 применяется у нас чуть ли не с 98-го года. Конечно стоит она около 15$.

Я оговорился, извиняюсь, конечно гальваноразвязка применяется там где требуется, не смотря на дополнительные немалые затраты...
Rash
Делаю по такой схеме и горя не знаю. И защита от перенапряжения (супрессоры P6KE12CA), защита по току (самовостанавливающие предохранители MF R017), подтяжка 10кОм, ну а термиатор 120 Ом надо делать внешним

Делаю по такой схеме и горя не знаю. И защита от перенапряжения (супрессоры P6KE12CA), защита по току (самовостанавливающие предохранители MF R017), подтяжка 10кОм, ну а термиатор 120 Ом надо делать внешним
Нажмите для просмотра прикрепленного файла
okela
Мдя...По-моему тема трохи не в тему (хе-хе..каламбур получился).
Причём сдесь AVR вообще не понятно..
Эти вопросы достаточно обсуждались в разделе "Интерфейсы".
GrayCat
Цитата(Rash @ Mar 16 2006, 09:56) *
Делаю по такой схеме и горя не знаю. И защита от перенапряжения (супрессоры P6KE12CA), защита по току (самовостанавливающие предохранители MF R017), подтяжка 10кОм, ну а термиатор 120 Ом надо делать внешним

А 2 нанофарады емкости супрессоров не болтаются под ногами? Причем, на каждой точке?

Мы так делаем:Нажмите для просмотра прикрепленного файла
Работает...
alekseykoj
Впринципе можно передать и на скорости 115000, если "соблюсти" все требования для передачи посылок (Контрольная сумма, заголовок, повтор передачи при ошибке и т.д.) но реальная скорость все равно будет меньше, но это все зависит от многих причин (длина кабеля, где проходит и т.д.)
add
Цитата(alekseykoj @ Mar 17 2006, 17:24) *
Впринципе можно передать и на скорости 115000, если "соблюсти" все требования для передачи посылок (Контрольная сумма, заголовок, повтор передачи при ошибке и т.д.) но реальная скорость все равно будет меньше, но это все зависит от многих причин (длина кабеля, где проходит и т.д.)


sad.gif alekseykoj надеюсь ваше заявление обоснованно (и не просто предположение) и если Вас незатруднит то поясните его пожалуйста. (с учетом предыдущих постов). Спасибо.
_artem_
Вообше то хорошо бы так для эксперимента на тех линиях где работает с помехами проверить кабель TDR рефлектометром без и с терминаторами.

Для тех кто сюда не заглядывал :
http://www.maxim-ic.com/appnotes10.cfm/ac_pk/14#30
Alexey K
Есть вопрос к тем кто применял MAX1490 (MAX1480). Хочу применить эту микросхему для RS-422 . Проблема в том что управлять ей будет Spartan 3 или напрямую в ARM.
И там и там уровни 3.3 вольта. Сначала хотел поставить логику с открытым коллектором(1333ли8) для управления светодиодом развязки передатчика . А выход приемника тоже через 1333 ли8 но запитать коллектор от 3.3в.

Но на плате есть свободные буфера IDT74lvch16244 и не могу понять хватит ли ей выходных 3.1 в для закрытия диода. Ток буфера 24ма так что должно хватить для включения.
smk
Автору - смело используйте как RS485 так и RS422. Терминаторы и перекос в линии обязательны. На 15 устройств раздадите легко, только смотрите в даташите на нагрузочную способность используемой микросхемы.
Alexey K
Спасибо, но вопрос в принципе был в другом будет ли эта микросхема нормально работать с таким буффером. А передача будет точка точка.
Leks
Цитата(Alexey K @ Oct 19 2011, 16:26) *
Спасибо, но вопрос в принципе был в другом будет ли эта микросхема нормально работать с таким буффером. А передача будет точка точка.

IMHO, лучше взять ADM2682E. Она и с питанием в 3,3 вольта дружит, и развязка трансформаторная а не оптронная, и корпус меньше. И дешевле
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.