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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> И снова RS485, и снова проблемы, программное управление потоком
Andy Mozzhevilov
сообщение Feb 19 2007, 08:45
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Винда не предназначена для таких выкрутасов. Это вам не реал-тайм. Возможно, где-то на уровне драйверов и можно это реализовать, но на уровне пользовательской программы, увы и ах...
Если это не серийное изделие, покрутите эти задержки и добейтесь нужного результата.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
Axxel
сообщение Feb 19 2007, 08:59
Сообщение #17


Частый гость
**

Группа: Новичок
Сообщений: 140
Регистрация: 31-01-07
Из: Челябинск
Пользователь №: 24 896



>Если это не серийное изделие, покрутите эти задержки и добейтесь нужного результата.
Что же делать? wacko.gif

То есть получается что проще спаять переходник с автоматическим Flow controlем,
и не заморачиваться с RTS?
Вы например какие инструменты используете дабы избежать подобных проблем?

Устройство конечно же не серийное, изучаю для себя, но хотелось бы делать правильно.

Сообщение отредактировал Axxel - Feb 19 2007, 09:01


--------------------
Если боишься - не говори. если сказал - не бойся. ©
Go to the top of the page
 
+Quote Post
upc2
сообщение Feb 19 2007, 11:02
Сообщение #18


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



1.Попробуйте заменить драйвер СОМ-порта. Если при закороченных Rx и Tx ПС переключение RTS
сбивает посылку, то такой драйвер вообще не годится.
2. Вместо RTS стандарт допускает использование одновибраторов для переключения
прием/передача. ..www.bb-elec.com
..http://www.bb-elec.com/tech_articles/rs422_485_app_note/overview.asp#rs485
Go to the top of the page
 
+Quote Post
Axxel
сообщение Feb 19 2007, 11:10
Сообщение #19


Частый гость
**

Группа: Новичок
Сообщений: 140
Регистрация: 31-01-07
Из: Челябинск
Пользователь №: 24 896



> Вместо RTS стандарт допускает использование одновибраторов для переключения

Адаптер с автоматическим управлением потоком?
Т.е все-таки проблема управления RTS-ом имеет место под Windows?
Или проблема все-таки в ДНК? biggrin.gif
И где взять "правильный" драйвер?
Просто программу проверял на 2-х разных компах- одна ерунда.

При использовании автоматического управления потоком проблема должна отпасть?


--------------------
Если боишься - не говори. если сказал - не бойся. ©
Go to the top of the page
 
+Quote Post
upc2
сообщение Feb 19 2007, 11:36
Сообщение #20


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



О появлении сигнала RTS сигнализирует CTS. Дождитесь этого сигнала, а потом отпавляйте
данные в буфер.Вы наверно упустили контроль этого сигнала.
Go to the top of the page
 
+Quote Post
Axxel
сообщение Feb 19 2007, 11:41
Сообщение #21


Частый гость
**

Группа: Новичок
Сообщений: 140
Регистрация: 31-01-07
Из: Челябинск
Пользователь №: 24 896



Цитата(upc2 @ Feb 19 2007, 13:36) *
О появлении сигнала RTS сигнализирует CTS. Дождитесь этого сигнала, а потом отпавляйте
данные в буфер.Вы наверно упустили контроль этого сигнала.

То есть? blink.gif


--------------------
Если боишься - не говори. если сказал - не бойся. ©
Go to the top of the page
 
+Quote Post
upc2
сообщение Feb 19 2007, 11:51
Сообщение #22


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



Появление сигнала RTS занимает много времени . Данные начинают идти, а передача еще закрыта.
Теряется стартовый бит и сбиваются посылки.По схеме RTS и CTS соединены.По появлению CTS
можно начинать передачу.Ну в контроллере необходима задержка.
Go to the top of the page
 
+Quote Post
Axxel
сообщение Feb 19 2007, 11:57
Сообщение #23


Частый гость
**

Группа: Новичок
Сообщений: 140
Регистрация: 31-01-07
Из: Челябинск
Пользователь №: 24 896



Цитата(upc2 @ Feb 19 2007, 13:51) *
Появление сигнала RTS занимает много времени . Данные начинают идти, а передача еще закрыта.
Теряется стартовый бит и сбиваются посылки.По схеме RTS и CTS соединены.По появлению CTS
можно начинать передачу.Ну в контроллере необходима задержка.


Да, должен сказать что упустил этот момент, даже в том
плане, что не использовал CTS из-за отсутствия необходимого
пина в разъеме от мыши (часть адаптера). Но на данный момент вроде
все это пока решается задержкой перед отправкой пакета.
А по какому событию можно определить конец посылки?


--------------------
Если боишься - не говори. если сказал - не бойся. ©
Go to the top of the page
 
+Quote Post
upc2
сообщение Feb 19 2007, 12:02
Сообщение #24


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



Разные программы бывают. Если не влезать в регистры UART, то когда передающий буфер пуст.
Go to the top of the page
 
+Quote Post
Axxel
сообщение Feb 19 2007, 12:08
Сообщение #25


Частый гость
**

Группа: Новичок
Сообщений: 140
Регистрация: 31-01-07
Из: Челябинск
Пользователь №: 24 896



Цитата(upc2 @ Feb 19 2007, 14:02) *
Разные программы бывают. Если не влезать в регистры UART, то когда передающий буфер пуст.

Да, нашел такое событие, переделал малость программку, но задержку
в обработчике события 5 мс перед отключением оставил, если не делать-виснет.


--------------------
Если боишься - не говори. если сказал - не бойся. ©
Go to the top of the page
 
+Quote Post
cioma
сообщение Mar 8 2007, 13:37
Сообщение #26


Профессионал
*****

Группа: Свой
Сообщений: 1 226
Регистрация: 19-06-04
Из: Беларусь
Пользователь №: 65



Как уже говорил Andy Mozzhevilov, Винда для такого не предназначена.
У нас была такая же необходимость в переходнике 232-485. Железо сделали как у Вас (простое решение по-другому и не сделаешь). А потом началя секс с программерам и задержками сигнала RTS. Ну не позволяет винда детерминированно управлять RTS относительно потока данных. Ставили девайс на прогон с подключенным осциллом (с infinit отображением сигналов), так иногда выскакивали дикие задержки с установкой, снятием RTS. Между Вами и реальным UART - куча программных прослоек, управлять которыми во времени нет возможности. Выход из этого - ваять полноценный преобразователь например на микроконтроллере: вход - RS-232, выход - RS-485.
Go to the top of the page
 
+Quote Post
muravei
сообщение Mar 8 2007, 14:06
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(cioma @ Mar 8 2007, 13:37) *
Выход из этого - ваять полноценный преобразователь например на микроконтроллере: вход - RS-232, выход - RS-485.

Сделайте , по типу:
http://electronix.ru/forum/index.php?act=A...ost&id=9396
и не надо никаких микроконтроллеров.
Go to the top of the page
 
+Quote Post
wangan
сообщение Mar 8 2007, 14:20
Сообщение #28


Местный
***

Группа: Свой
Сообщений: 265
Регистрация: 30-11-05
Из: Омск
Пользователь №: 11 590



Мне кажется кривизна в самой программе, как насчет вместо паузы использовать ожидания события ключивое слово OVERLAPPED. Еслиб посылка бы работала по возврату при постоянной передачи винда бы висла колом.
Go to the top of the page
 
+Quote Post
Axxel
сообщение Mar 19 2007, 11:27
Сообщение #29


Частый гость
**

Группа: Новичок
Сообщений: 140
Регистрация: 31-01-07
Из: Челябинск
Пользователь №: 24 896



Сделал преобразователь с автоматическим управлением потоком, простенький.
Вроде все стало нормально работать, RTS больше не использую.
smile.gif Пока все ОК, но думаю что вернусь еще к этому делу.


--------------------
Если боишься - не говори. если сказал - не бойся. ©
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 06:04
Рейтинг@Mail.ru


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