реклама на сайте
подробности

 
 
> RS232 тюнер
Sir Jon
сообщение Apr 4 2006, 10:52
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 45
Регистрация: 28-10-05
Из: Челябинск
Пользователь №: 10 198



Возникла такая задача: на ходу определять скорость приемо-передачи rs232....ну скажем до 115200 бод.
Может кто сталкивался с такой задачей и знает как ее решить наиболее просто и красиво? Хочу отметить, что вариант использования простенького MC, видимо отпадает из-за требуемых внутренних высоких частот и как следствие высокой стоимости.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение Apr 5 2006, 13:12
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Определить условие для переключения драйвера RS485 на передачу не хитро (отловил перепад 1->0 на входе и переключай), а вот как узнать сколько времени удерживать драйвер RS485 в состоянии вывода? Для посимвольной передачи - чем быстрее тем лучше. А для RTU-ной пакетной передачи желательно не менее 3,5 символов удерживать. Чтобы помехи при переключении линии не попали в пакет.
Потому я и просил обосновать необходимость автоматическоого переключения передачи при том, что неизвестен заранее алгоритм переключения и тип протокола связи.
Go to the top of the page
 
+Quote Post
Sir Jon
сообщение Apr 5 2006, 15:15
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 45
Регистрация: 28-10-05
Из: Челябинск
Пользователь №: 10 198



Цитата(rezident @ Apr 5 2006, 16:12) *
Для посимвольной передачи - чем быстрее тем лучше. А для RTU-ной пакетной передачи желательно не менее 3,5 символов удерживать. Чтобы помехи при переключении линии не попали в пакет.
Потому я и просил обосновать необходимость автоматическоого переключения передачи при том, что неизвестен заранее алгоритм переключения и тип протокола связи.


В том и интерес, что адаптер заранее не знает, что и как Вы собираетесь передавать. Можно лишь наложить некие ограничения на формат передаваемых данных. Но мы удалились от проблемы...
Сопоставляя цену адаптера (50$) и базу используемых компонентов - потихоньку начинаю склояться к мысли, что задача решена все таки аналогово и возможно очень просто.

Подумаем еще?

Цитата(Abo @ Apr 5 2006, 17:13) *
Текущая скорость выбиралась состоянием ног DTR и RTS.


Прошу прощения за тугодумство, но это как? Логически - и четыре доступные скорости или как-то еще?
Go to the top of the page
 
+Quote Post
rezident
сообщение Apr 5 2006, 20:22
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Sir Jon @ Apr 5 2006, 21:15) *
В том и интерес, что адаптер заранее не знает, что и как Вы собираетесь передавать. Можно лишь наложить некие ограничения на формат передаваемых данных.

Угу. Вот уже началось. Ограничения. smile.gif
Цитата(Sir Jon @ Apr 5 2006, 21:15) *
Сопоставляя цену адаптера (50$) и базу используемых компонентов - потихоньку начинаю склояться к мысли, что задача решена все таки аналогово и возможно очень просто.

Ну еще вариант. Складывайте в ОЗУ битовую последовательность с временами интервалов между переходами 1->0 и 0->1. Затем анализируйте минимальный интервал времени в этой последовательности и делайте вывод о скорости передачи. Глубину выборки не подскажу. Это опять же зависит от формата используемого протокола и диапазона поддерживаемых конвертором скоростей передачи.
Кстати, напомню еще об одном нюансе RS485. Для качественной связи посредством RS485 нужно не только определенное время удерживать драйвер RS485 в состоянии передачи, но еще и задерживать битовую последовательность в самом начале после переключения драйвера с приема на передачу. Потому что переключение драйвера может привести к переходному процессу в линии, который воспримется приемником как ошибочно принятый символ или первый символ будет принят неверно. Частично эта проблема решается введением "растяжки" линии (к линии A pull-up резистор, а к линии B pull-down), но это не панацея. Введение задержки на передачу битового потока это более корректное решение. Тут опять же вопрос возникает, а на сколько задерживать битовый поток? Очевидно, что для того же RTU-ного протокола не менее 3,5 символа. Для посимвольной передачи, достаточно 1,2-1,5 символа. А когда протокол заранее не известен? rolleyes.gif

Итого имеем, что автомат конвертора RS233-RS485 должен выполнять как минимум три функции.
1. задерживать битовый поток при передаче от RS232 в линию RS485
2. удерживать линию RS485 в состоянии передачи после окончания битового потока на его выходе
3. определять скорость передачи и/или частоту битового потока (для реализации первых двух функций)

P.S. еще забыл функцию блокирования локального "эха"
Go to the top of the page
 
+Quote Post
Sir Jon
сообщение Apr 6 2006, 03:44
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 45
Регистрация: 28-10-05
Из: Челябинск
Пользователь №: 10 198



Цитата(rezident @ Apr 5 2006, 23:22) *
3. определять скорость передачи и/или частоту битового потока (для реализации первых двух функций)


Отлично. Я так понимаю склоняемся к варианту, что тюнер - дешевый МС.
Я рассуждал так.
1. Берем дешевенький MC - например PIC12f629 с внутренним тактовым генератором 4MHz
2. Для того, чтобы вычислять длительность - нужен таймер.
3. У пика приращение таймера 1/4*Fosc = 1MHz
4. Берем критичную максимальную (но не самую) скорость обмена 115200.
5. Отсюда, для замера длительности и на все про все нам отведено максимум 1000000/115200 = 8 инструкций
6. Напрашивается вывод - это не реально. Нужен MC с частотой как минимум в 10 раз выше. А это уже другая ценовая категория.

P.S Я все-таки подцеплю виртуальник к I-7520 и проверю как он нормирует длительность в разных режимах.

Думаем дальше?
Go to the top of the page
 
+Quote Post
rezident
сообщение Apr 6 2006, 12:10
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Sir Jon @ Apr 6 2006, 09:44) *
Думаем дальше?

Думайте. smile.gif У нас и такие как есть (с SMD-switch для выбора скорости) продаются cheers.gif
P.S. ИМХО конверторы USB<->RS485 с гальваноразвязкой сейчас более актуальны.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Sir Jon   RS232 тюнер   Apr 4 2006, 10:52
- - ipc   Задача очень странная потому как rs232 не шинный и...   Apr 4 2006, 10:58
- - rezident   Скорость передачи обычно определяют путем измерени...   Apr 4 2006, 11:43
- - Sir Jon   Наверное я не очень полно описал задачу. Прошу про...   Apr 4 2006, 11:58
- - rezident   В нашем конверторе RS232-RS485, например, с помощь...   Apr 4 2006, 23:17
- - Sir Jon   Сделать обычный rs232 -> rs485 задача тривиальн...   Apr 5 2006, 03:24
|- - ipc   Цитата(Sir Jon @ Apr 5 2006, 07:24) Сдела...   Apr 5 2006, 04:56
|- - plan   А может имеет смысл сделать преобразователь usb-rs...   Apr 5 2006, 05:03
|- - ipc   Цитата(plan @ Apr 5 2006, 09:03) А может ...   Apr 5 2006, 05:21
||- - plan   Цитата(ipc @ Apr 5 2006, 09:21) Если дело...   Apr 5 2006, 06:00
||- - ipc   Цитата(plan @ Apr 5 2006, 10:00) Цитата(i...   Apr 5 2006, 06:07
|- - Sir Jon   Цитата(plan @ Apr 5 2006, 08:03) А может ...   Apr 5 2006, 06:21
|- - plan   Цитата(Sir Jon @ Apr 5 2006, 10:21) Если ...   Apr 5 2006, 06:34
- - Abo   А у нас сделали просто - поставили перезапускаемый...   Apr 5 2006, 14:13
- - GrayCat   Смотрели мы ICP-какой-то там с "автоопределен...   Apr 6 2006, 12:27
- - rezident   GrayCat, ну дык я "это" и называю ...   Apr 6 2006, 15:48
- - Sir Jon   Итак, ясность наступила. После прощупывания I-7520...   Apr 7 2006, 09:02
- - Sir Jon   Небольшое пояснение к осцилограммам. Верхний сигна...   Apr 9 2006, 16:54


Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 15:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.0134 секунд с 7
ELECTRONIX ©2004-2016