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

Участник

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

|
Есть преобразователь RS232->RS485. Желание отказаться от использования линий RTS и CTS для выбора прием/передача привели к необходимости использовать МК, а именно AT89C4051. Все бы ничего, но вот скорости передачи могут быть из числа: 9600, 38400, 115200. Проблема состоит в необходимости определения этой скорости, ибо от этого зависит время удержания управляющего сигнала прием/передача. Собственные размышления приводят к сложным конструкциям с мутным результатом Может кто сталкивался с подобным или просто есть мысли, буду рад помощи.
|
|
|
|
|
 |
Ответов
|
Jul 24 2006, 10:06
|

Участник

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

|
К сожалению возможности резервировать байт или посылать маркер нет, т.к. передаваемые данные давно определены и внесение изменений в их состав невозможно (взаимодействуют 2-е железяки). В этом-то и загвоздка... Кстати, забыл сказать, используется протокол ModBus. Цитата(Igor26 @ Jul 24 2006, 13:46)  А почему не использовать преобразователь USB<-->RS-485 и не париться? Задача стоит именно модернизировать существующее устройство, а не создавать новое. Т.е. RS-232<->RS-485, с автоматическим определением направления и скорости передачи.
|
|
|
|
|
Jul 24 2006, 22:18
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(_VoRoN_ @ Jul 24 2006, 13:06)  К сожалению возможности резервировать байт или посылать маркер нет, т.к. передаваемые данные давно определены и внесение изменений в их состав невозможно (взаимодействуют 2-е железяки). В этом-то и загвоздка... Кстати, забыл сказать, используется протокол ModBus. Цитата(Igor26 @ Jul 24 2006, 13:46)  А почему не использовать преобразователь USB<-->RS-485 и не париться?
Задача стоит именно модернизировать существующее устройство, а не создавать новое. Т.е. RS-232<->RS-485, с автоматическим определением направления и скорости передачи. Задача "автобод" реализована во всех модемах и обсуждалась неоднократно в том числе на данном форуме. Я реализовывал, и по моим подсчётам необходимо примерно 7 мипсов для скорости 115к. Для получения достоверной информации. (т.е. рекомендую поставить 2313 для данной цели) Сам протокол MODBUS явно предназначен для rs485, так как в начале посылки указывает свою длину, что позволяет при перехвате посылки высчитать время для переключения. Существуют также различные схемы для автоматического перехода по таймеру. (Типа если не пришла "1" хх мс, то переключить.) А вот ещё идея на вскидку. Можно сделать задержку. (Для этого вовсе не требуется вообще распознавать данные. Что пришло, - то ушло) Т.е. принимать все данные и передавать их с задержкой. Если за время задержки данные не пришли, то можно на передающей переключить. Ещё один момент. Применение сигнала RTS для данной цели, по моему, фактически стандарт. Чем Вас данное решение не устраивает?
|
|
|
|
|
Jul 24 2006, 23:15
|
Частый гость
 
Группа: Участник
Сообщений: 89
Регистрация: 14-07-06
Пользователь №: 18 822

|
Вообще, можно и без микроконтроллера, если допускается достаточно большой таймаут на линии: RC-цепочка с Rout 232-го + триггер Шмитта выходом на DE приемопередатчика 485. Запускается от старт-бита. Сам не пробовал, но видел тех кто видел тех кто пробовал  Видимо пост. времени надо выбирать в 1.5 - 2 раза больше длительности передачи байта на самой низкой скорости. Если все же с МК, то вот http://focus.ti.com/lit/an/slaa215/slaa215.pdf. Рекомендую, может поможет чем-нибудь.
|
|
|
|
Сообщений в этой теме
_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  Леонид Иванович Цитата(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 _Sam_ ЦитатаВсе, зарубили идею, а ведь почти получилось ... Aug 9 2006, 08:59 _VoRoN_ Цитата(_Sam_ @ Aug 9 2006, 12:59) Цитата ... Aug 9 2006, 11:35 _artem_ А можете ли Вы попробовать держать RX 485 драйвера... Aug 11 2006, 08:51
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|