|
Нужна свежая идея... |
|
|
|
Jul 24 2006, 09:37
|

Участник

Группа: Новичок
Сообщений: 47
Регистрация: 3-07-06
Из: Россия, Краснодар
Пользователь №: 18 530

|
Есть преобразователь RS232->RS485. Желание отказаться от использования линий RTS и CTS для выбора прием/передача привели к необходимости использовать МК, а именно AT89C4051. Все бы ничего, но вот скорости передачи могут быть из числа: 9600, 38400, 115200. Проблема состоит в необходимости определения этой скорости, ибо от этого зависит время удержания управляющего сигнала прием/передача. Собственные размышления приводят к сложным конструкциям с мутным результатом Может кто сталкивался с подобным или просто есть мысли, буду рад помощи.
|
|
|
|
|
 |
Ответов
|
Aug 9 2006, 08:59
|
Местный
  
Группа: Свой
Сообщений: 278
Регистрация: 18-01-05
Из: Санкт-Петербург
Пользователь №: 2 031

|
Цитата Все, зарубили идею, а ведь почти получилось Для переключения использовать МК - распоряжение начальства. Теперь все с начала... Ну начальство можно и убедить или в крайнем случае слегка обмануть  Просто если делать на МК необходимо будет и протокол несколько переписать. Перед началом обмена передавать несколько синхронизирующих байт по которым ваш МК определит скорость с которой будет вестись передача. Или добавить в протокол команды для МК, которые будут передаваться всегда на фиксированной скорости, и в них указывать скорость с которой будет вестись передача. На сотнях метрах и больших скоростях я схему без контроллера не пробовал, но на 30метрах 1мегабит с растяжками по 690Ом будет работать 100% в условиях помех(у меня сейчас под 100 реле без искрогасящих цепочек и электродвигатель на 3кВт). Я смотрел сигналы до 485 и после линии и 485 задержки конечно есть но всего порядка нескольких процентов. Реализовать эту схему гораздо проще и быстрее. Неужели ваше начальство не может вам лишние два часа выделить, чтобы вы во всём до конца разобрались? Если у вас просаживатеся один из сигналов попробуйте отсоединить свои 485приёмопередатчики от линии и посмотреть будет ли просаживаться сигнал на каждом из них. Если всё ок значит надо прозвонить линию, если нет, искать в соотв. 485приёмопередатчике. Кстати если сигнал просаживается хоть МК ставьте хоть ещё один PC всё равно будет криво работать! Проверить работоспособность всей линии в целом можно следующим образом: сигнал до передающего 485 должен совпадать с сигналом после принимающего rs485.
|
|
|
|
|
Aug 9 2006, 11:35
|

Участник

Группа: Новичок
Сообщений: 47
Регистрация: 3-07-06
Из: Россия, Краснодар
Пользователь №: 18 530

|
Цитата(_Sam_ @ Aug 9 2006, 12:59)  Цитата Все, зарубили идею, а ведь почти получилось Для переключения использовать МК - распоряжение начальства. Теперь все с начала... Ну начальство можно и убедить или в крайнем случае слегка обмануть  Просто если делать на МК необходимо будет и протокол несколько переписать. Перед началом обмена передавать несколько синхронизирующих байт по которым ваш МК определит скорость с которой будет вестись передача. Или добавить в протокол команды для МК, которые будут передаваться всегда на фиксированной скорости, и в них указывать скорость с которой будет вестись передача. На сотнях метрах и больших скоростях я схему без контроллера не пробовал, но на 30метрах 1мегабит с растяжками по 690Ом будет работать 100% в условиях помех(у меня сейчас под 100 реле без искрогасящих цепочек и электродвигатель на 3кВт). Я смотрел сигналы до 485 и после линии и 485 задержки конечно есть но всего порядка нескольких процентов. Реализовать эту схему гораздо проще и быстрее. Неужели ваше начальство не может вам лишние два часа выделить, чтобы вы во всём до конца разобрались? Если у вас просаживатеся один из сигналов попробуйте отсоединить свои 485приёмопередатчики от линии и посмотреть будет ли просаживаться сигнал на каждом из них. Если всё ок значит надо прозвонить линию, если нет, искать в соотв. 485приёмопередатчике. Кстати если сигнал просаживается хоть МК ставьте хоть ещё один PC всё равно будет криво работать! Проверить работоспособность всей линии в целом можно следующим образом: сигнал до передающего 485 должен совпадать с сигналом после принимающего rs485. Работать должно на расстоянии до 1024 м., для того чтобы использовать схему без МК, потребуются длительные испытания ее работоспособности. Да, МК - это конечно не самое простое решение, но все же в данном случает другого ничего не остается, так что придется выкручиваться. Идеи есть, но вот только на выбранном ранее МК реализовать их не получится, что не может не огорчать. Причиной этому, как показала практика, оказалось время реакции на внешние прерывания, которое оказалось больше периода сигнала на скорости 115200, в рез-те чего "съедалось" нало слова. На 9600 все работало устойчиво, а на 38400 - с переменным успехом. Это что касается идеи, когда сигнал на передачу устанавливается с началом фрейма и удерживается на время его прохождения. Если говорить о варианте использования МК в качестве буффера, т.е. принимая передаваемые данные и "выплевывая" их затем в линию, используя 3-й режим UART, со скоростью, задаваемой таймером, то тут опять же облом, т.к. обеспечить скорость 115200 при частоте кварца 24 МГц при помощи Т1 просто невозможно. Для таких скоростей надо использовать Т2, который в 4051 просто отсутсвует, поэтому пришлось переходить на 8252.
|
|
|
|
Сообщений в этой теме
_VoRoN_ Нужна свежая идея... Jul 24 2006, 09:37 Deka Перед началом передачи отправлять маркер (все 1) п... Jul 24 2006, 09:43 Kovrov Цитата(Deka @ Jul 24 2006, 13:43) Перед н... Jul 24 2006, 15:54 &-rey Цитата(_VoRoN_ @ Jul 24 2006, 12:37) Есть... Jul 24 2006, 09:43 Igor26 А почему не использовать преобразователь USB<--... Jul 24 2006, 09:46 _VoRoN_ К сожалению возможности резервировать байт или пос... Jul 24 2006, 10:06 SasaVitebsk Цитата(_VoRoN_ @ Jul 24 2006, 13:06) К со... Jul 24 2006, 22:18  DuMaH Вообще, можно и без микроконтроллера, если допуска... Jul 24 2006, 23:15  Леонид Иванович Цитата(SasaVitebsk @ Jul 25 2006, 01:18) ... Jul 25 2006, 10:31 vesago Интересно - схемка с сайта rs485.com позволяет это... Jul 24 2006, 10:23 _Bill Цитата(_VoRoN_ @ Jul 24 2006, 12:37) Есть... Jul 24 2006, 10:42 _VoRoN_ Цитата(_Bill @ Jul 24 2006, 14:42) Цитата... Jul 24 2006, 10:57 Dog Pawlowa Цитата(_VoRoN_ @ Jul 24 2006, 12:37) ... ... Jul 24 2006, 13:41 _VoRoN_ Цитата(Dog Pawlowa @ Jul 24 2006, 17:41) ... Jul 24 2006, 20:54  rezident Цитата(_VoRoN_ @ Jul 25 2006, 02:54) Цита... Jul 24 2006, 22:03 _VoRoN_ Элементная база основана на том, что есть на склад... Jul 25 2006, 20:33 upc2 ???<<Применение сигнала RTS для данной цели,... Jul 26 2006, 05:16 _VoRoN_ Цитата(upc2 @ Jul 26 2006, 09:16) ???... Jul 26 2006, 21:05  Леонид Иванович Тема преобразователей RS485 <-> RS232 с авто... Jul 27 2006, 06:48  rezident Цитата(_VoRoN_ @ Jul 27 2006, 03:05) Уже ... Jul 27 2006, 10:47 _Sam_ Может это поможет.
Только чтобы этот преобразовате... Jul 27 2006, 09:48 Сергей Борщ Цитата(_Sam_ @ Jul 27 2006, 12:48) Может ... Jul 27 2006, 14:49  _VoRoN_ В качестве драйвера RS485 использую MAX487. На вых... Jul 28 2006, 07:23   Сергей Борщ Цитата(_VoRoN_ @ Jul 28 2006, 10:23) В ка... Jul 28 2006, 07:35    _VoRoN_ Цитата(Сергей Борщ @ Jul 28 2006, 11:35) ... Jul 28 2006, 09:47     rezident Цитата(_VoRoN_ @ Jul 28 2006, 15:47) Дело... Jul 28 2006, 10:16      _VoRoN_ Цитата(rezident @ Jul 28 2006, 14:16) Цит... Jul 28 2006, 10:26 _Sam_ ЦитатаЕсли же пауза перед ответом в слейвах не реа... Jul 27 2006, 11:21 rezident Цитата(_Sam_ @ Jul 27 2006, 17:21) Вы нав... Jul 27 2006, 13:24 _Sam_ ЦитатаК тому же вопрошающему нужен гальваноразвяза... Jul 27 2006, 15:12 rezident Цитата(_Sam_ @ Jul 27 2006, 21:12) у меня... Jul 27 2006, 15:46 _VoRoN_ Ооо! Ребята! Спасибо огромное за помощь... Jul 27 2006, 21:10 SasaVitebsk Как приятно получить чёткие ответы (и множество) н... Jul 27 2006, 21:11 Old1 Цитата(SasaVitebsk @ Jul 28 2006, 00:11) ... Jul 28 2006, 07:18 Laptop Цитата(SasaVitebsk @ Jul 28 2006, 01:11) ... Jul 28 2006, 22:00 Леонид Иванович Цитата(SasaVitebsk @ Jul 28 2006, 00:11) ... Aug 7 2006, 08:26 _VoRoN_ Все, зарубили идею, а ведь почти получилось Для ... Jul 28 2006, 20:43 zltigo Цитата(_VoRoN_ @ Jul 28 2006, 23:43) Для ... Jul 28 2006, 20:53 defunct ЦитатаПрименение AVR не является возможным. Исполь... Jul 28 2006, 22:35 _VoRoN_ Цитата(defunct @ Jul 29 2006, 02:35) Цита... Aug 3 2006, 12:02 _artem_ Я недавно экспериментировал с этим - получал вроде... Aug 7 2006, 12:24 Леонид Иванович Цитата(_artem_ @ Aug 7 2006, 15:24) Если ... Aug 7 2006, 19:28  _artem_ Цитата(Леонид Иванович @ Aug 7 2006, 22:2... Aug 9 2006, 09:29   Леонид Иванович Цитата(_artem_ @ Aug 9 2006, 12:29) (надо... Aug 9 2006, 10:22    _artem_ Цитата(Леонид Иванович @ Aug 9 2006, 13:2... Aug 10 2006, 09:05     Леонид Иванович Цитата(_artem_ @ Aug 10 2006, 12:05) А Вы... Aug 11 2006, 06:58 goodwin Сам правда не пробовал, но в FTDI чипах USB-COM ес... Aug 7 2006, 19:53 Леонид Иванович Цитата(goodwin @ Aug 7 2006, 22:53) Сам п... Aug 8 2006, 20:45 _VoRoN_ Если кто знает, посоветуйте пожалуйста толковый ко... Aug 7 2006, 20:38 otrog Цитата(_VoRoN_ @ Aug 8 2006, 00:38) Если ... Aug 8 2006, 04:41 _artem_ А можете ли Вы попробовать держать RX 485 драйвера... Aug 11 2006, 08:51
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|