Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
16.12.2008, 15:37
|
#11
|
Частый гость
Регистрация: 27.09.2007
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
делали мы преобразователи 485 - оптоволокно, по сути получается тот же повторитель, только посредине вставлено 100 км волокна
приходилось подключать ооочень разные системы не зная их протоколов.
так вот, под разные железяки работали разные подходы.
а) есть LTC1482 с выходом Carrier detect. дальше ставишь RS триггер чтобы запомнил кто первый начал передавать.
б) если известна скорость передачи, ставишь RS триггер, который просто запоминает с какой стороны раньше пришел "0" и одновибратор на примерно длительность байта, который сбросит его после пакета.
в) если устроит, можно использовать т.н. "китайский" вариант (кстати он реализован во всех китайских "усилителях 485" и конверторах 232/485 - их много на рынке, см. ipc2u.ru например) - передатчики все включаются как CAN, то есть передают только "0", а "1" передают как hi-Z. для чего достаточно данные завести на DE а на вход данных у MAX485 подать "0". тогда конфликт не страшен и определять направление передачи не очень нужно. но все равно нужно поставить RSтриггер чтобы у тебя одновременно в ретрансляторе был включен только один драйвер, чтобы сам себя не защелкнул.
г) если просто надо передать на 2 км - не заморачивайся, возьми кабель 1 квадрат и будет работать на 10 км на скорости 9600.
классическая картинка ограничения расстояния от скорости обрезана на 4000 футов только потому что на омическом сопротивлении кабеля 24AWG упадет слишком много, сигнала не хватит. возьми толще кабель, и наклонный участок продолжится. детали см. AN1057 на сайте National -
http://www.national.com/an/AN/AN-1057.pdf
|
|
|
|
16.12.2008, 16:05
|
#12
|
Прописка
Регистрация: 21.04.2007
Сообщений: 171
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 3 сообщении(ях)
|
согласен с alexey23.
Если известна скорость передачи можно использовать 2 обычных микросхемы драйвера RS-485.
Более подробно:
1) при включении устройства оба драйвера 1 и 2 (входы-выходы) находятся в режиме приема
2) при приёме "0" одним драйвером второй переходит в режим передачи и удерживается в этом режиме не менее времени, необходимого для передачи байта, затем снова переходит в режим приёма - "0" на выходе 1 драйвера разряжает через диод конденсатор, выход конденсатора управляет направлением передачи второго драйвера. Одновременно выходной сигнал 1 драйвера проходит на вход 2 драйвера (верно и противоположное). Кондесатор, после исчезновения "0" на выходе 1 драйвера заряжается через резистор (время заряда - не менее, чем время передачи байта) до состояния логической "1" на выходе 1 драйвера.
Схема заркальная, как 1 драйвер управляет 2 так и наоборот.
3) реализуется это на 2 драйверах RS-485 и микросхеме логического инвертора (4 вентиля , по входу - триггер Шмиддта)
4) временной промежуток между окончанием передачи одного устройства и началом передачи второго устнавливается более, чем время перезаряда конденсатора, т.е. более 1 байта - это уже делается программно
|
|
|
|
16.12.2008, 21:36
|
#13
|
Частый гость
Регистрация: 06.04.2008
Сообщений: 34
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
суть в том что в период экономического кризиса мало что стали покупать
это крайний вариант если самому паять прийдеться на свою зарплату
а так везде стоят Siemens repiter-ы скорость сети в массе 1,5 мбит/сек Profibus длина не более 100 метров но без репитеров не пашет на полной скорости снижение скорости передачи приводит к замедлению обрабатываемой информации по скорости приводов (их там много)и цикл обработки длиться более секунды что не допутсимо
Сам что то про тригеры не подумал для фиксации направления, да и длинна пакета не думаю что стандартная идет.
|
|
|
|
16.12.2008, 22:24
|
#14
|
Частый гость
Регистрация: 27.09.2007
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
да, кстати, про LTC1482 надо учесть, что 485 довольно часто применяют т.н. fail-safe, у которого при всех выключенных драйверах на шине резисторные растяжки фиксируют состояние "1". если не ошибаюсь, в Profibus это тоже как опциональный вариант заложено в стандарт.
в таком случае LTC1482 всегда выдает carrier detect, а потому вариант не работает.
но зато тогда работает вариант "китайский", раз уж "1" форсируется при выключенных драйверах, то передается только "0", тогда можно не ставить одновибратор на время передачи байта, выключать передачу сразу после завершения бита "0". ну или с маленькой задержкой - на четверть бита - чтобы ускорить переход в "1". на высоких скоростях это существенно. тогда независимо от протокола все будет работать.
но с "китайским" CAN-подобным вариантом свои геморрои:
1) встречались один раз приборы, которые тоже контролировали освобождение шины по нуля напряжения, если им формировать "1" растяжкой резисторами, они блокировали передачу.
2) встречались приборы, которые называются RS485, а на самом деле там манчестер-кодированный сигнал с трансформаторной развязкой, просто уровни сигнала совпадают с 485, потому так и пишут в мануале. Те тоже плохо работают, у них трансформаторы при длинной "1" уходят в насыщение и пока выйдут, первые несколько битов в пакете искажаются.
так что у нас в результате 6 битов задавали режим передачи - 4 бита длительность задержки отключения, 1 бит - передавать ли "1", 1 бит - по нулю или по CarrierDetect обнаруживать начало передачи.
в таком виде устроило пока все системы которые встречались. там правда весь алгоритм лежал внутри Xilinx'а, потому можно было его постепенно улучшать .
Посмотрите, в состоянии покоя (между пакетами) на шине 0 вольт или нет, и работают ли контроллеры, если туда подать через 1 ком на провод "А" 0в а на "В" +5в. если работают или даже сами могут это подавать, то можно задержку поставить очень маленькую после передачи "0", и не задумываться о том, какая пауза между пакетами в имеющихся контроллерах.
|
|
|
|
17.12.2008, 03:56
|
#15
|
Прописка
Регистрация: 21.04.2007
Сообщений: 171
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 3 сообщении(ях)
|
насколько я понял в LTC1482 сигнал Carrier Detect просто повторяет выходной сигнал приемника. Вывод Carrier Detect двунаправленный, предназначен также для управления приёмником и он с открытым коллектором.
Кроме этого не заметил отличий от обычного выхода приёмника (по выходной логике).
|
|
|
|
17.12.2008, 07:51
|
#16
|
Частый гость
Регистрация: 01.09.2006
Сообщений: 44
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
"Болид" давно выпускает "С-2000 ПИ". Девайс юзается в их "Орионе". Реально добивались связи до 3 км по витухе. Правда, насношались с согласовкой особенно на спиде 9600. Люче поставить вместо резистора постоянного потенциометр до 1 кОм и -кручу -верчу - связь наладить хочу. Очень хорошо держит статику и грозу. Цена в розницу примерно 100 зелёных. И блок питания 12 вольт нужен. Если на улице, да ещё в Заполярье - подумай о термобоксе - для этих целей мы думали использовать термркожух для видеокамер - там и блочок на 400 мА, и резистор - камин, и класс защиты IP65. Успехов!!!
|
|
|
|
17.12.2008, 13:12
|
#17
|
Частый гость
Регистрация: 20.04.2008
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 1 сообщении
|
user_ushastyj нельзя ли поподробней об организации такой линии передачи данных на двух внешних дуал-апных модемах, так чтобы начинающий мог понять.
Спасибо.
|
|
|
|
17.12.2008, 15:29
|
#18
|
Частый гость
Регистрация: 27.09.2007
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
LTC1482 - внимательнее читайте даташит - CarrierDetect активен когда на входе есть перепад больше чем 200 мВ.
неважно, "1" или "0", то есть неважно перекос между двумя проводами в какую сторону.
неактивен (я не помню активен у него высокий или низкий) если на входе ничего нет (то есть если передатчик в 3-м состоянии).
К сожалению, когда идут данные, он может кратковременно становиться неактивным на фронтах, пока сигнал переходит через 0 вольт, так что некоторая внешняя задержка отключения не повредит.
|
|
|
|
17.12.2008, 15:37
|
#19
|
Прописка
Регистрация: 09.08.2006
Адрес: Днепр
Сообщений: 59
Сказал спасибо: 21
Сказали Спасибо 34 раз(а) в 14 сообщении(ях)
|
Делается довольно просто повторитель - драйвер (напр ST485) находится в режиме приема - выводы RE и DE соединены между собой, с подтягивающим резистором и стоком полевика.Исток - общий, туда же подключен вход DI. На затвор полевику подается сигнал с вывода RO второго драйвера, таким образом при приеме активного сигнала ключ закрывается и переводит драйвер в режим передачи "0". аналогична ситуация и при передаче с другой стороны. Итого получается два драйвера, два полевика и резисторы подтяжек. Схема работоспособна на любых разумных скоростях обмена - линия то полудуплексная
|
|
|
|
17.12.2008, 16:00
|
#20
|
Частый гость
Регистрация: 27.09.2007
Сообщений: 5
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
2 nocturnus:
это работает только если линии имеют растяжки резисторами - в таком режиме передаются только "0", а "1" передается как "Hi-Z".
это я и называл "китайский" вариант.
на высоких скоростях могут быть проблемы из-за несимметрии передачи фронтов - фактически на линию подключается типа открытого коллектора - в одну сторону тянет мощным ключом, а в другую резисторами.
потому надо
а) смотреть, будет ли техника (Симатики или что там) работать при наличии сигнала "1" на линии между пакетами.
б) добавить небольшие емкости, чтобы DE отключался через 10-100 наносекунд после передачи бита, чтобы он успел своим мощным выходом перезарядить линию. возможно, хватит емкости затвора полевика - смотреть надо.
в) всяко экспериментировать, подбирать номиналы резисторов растяжки.
но в целом, да, такой вариант наиболее универсален.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
RS 485
|
otest |
Автоматика и аппаратура связи |
3 |
30.06.2009 14:40 |
Повторитель на ОУ
|
tripsin |
Электроника - это просто |
3 |
02.12.2008 10:34 |
Импульсный задатчик по RS-485
|
delta777 |
Производственное оборудование |
2 |
02.09.2008 08:53 |
Повторитель на транзисторе
|
electronic-v |
Электроника - это просто |
64 |
31.05.2008 07:13 |
RS 485
|
dosikus |
Микроконтроллеры, АЦП, память и т.д |
0 |
17.08.2006 20:55 |
Часовой пояс GMT +4, время: 19:11.
|
|