Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > Архив
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

RS232/RS485

 Ответить Ответить Страница  123>
Автор
Сообщение
Evpator Смотреть выпадающим
Новичок
Новичок


Присоединился: 30 Октябрь 2003
Категория: Ukraine
Online Status: Offline
Публикации: 9
Свойства публикации Свойства публикации   Ответить, цитируя автора - Evpator Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: RS232/RS485
    Опубликовано: 31 Октябрь 2003 00:03

Добрый день

Я разрабатываю систему под QNX 6.2 .... и столкнулся с проблемой разворота линии RS485.

Вкратце о системе :

Есть обычный PC у которого есть RS232, есть контроллеры, которые

могут общаться по RS485 и есть преобразователь (RS232/RS485 (без поддержки авторазворота линии)). Преобразователь разворачивается

на передачу активным уровнем сигнала на линии RTS (RS232) .

Для правильной работы такой системы необходимо точно знать момент передачи и удерживать активным сигнал RTS в течении этого промежутка

времени. Ранее, в Линуксе я решил эту проблему, опрашивая бит TEMT

(вызов ioctl(portfd,TIOCSERGETLSR,@status))  в  регистре LSR UARTa в

течении передачи, пока он не установится в 1 (что говорит о том, что передача окончена)

Стандартный драйвер компорта в QNX не поддерживает команды TIOCSERGETLSR,

и не поддерживает ничего подобного (если я не ошибаюсь :) )

Вопрос : Как быть? В каком направлении копать :) ?

Как решить эту проблему при помощи аппаратной доработки я знаю,

но от меня требуют программное решение.....

Зарание спасибо.

 

Наверх
bessonov Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 07 Август 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 108
Свойства публикации Свойства публикации   Ответить, цитируя автора - bessonov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 31 Октябрь 2003 11:45
Первоначально опубликовано Evpator

Добрый день


Я разрабатываю систему под QNX 6.2 .... и столкнулся с проблемой разворота линии RS485.


Вкратце о системе :


Есть обычный PC у которого есть RS232, есть контроллеры, которые


могут общаться по RS485 и есть преобразователь (RS232/RS485 (без поддержки авторазворота линии)). Преобразователь разворачивается


на передачу активным уровнем сигнала на линии RTS (RS232) .


Для правильной работы такой системы необходимо точно знать момент передачи и удерживать активным сигнал RTS в течении этого промежутка


времени. Ранее, в Линуксе я решил эту проблему, опрашивая бит TEMT


(вызов ioctl(portfd,TIOCSERGETLSR,@status))  в  регистре LSR UARTa в


течении передачи, пока он не установится в 1 (что говорит о том, что передача окончена)


Стандартный драйвер компорта в QNX не поддерживает команды TIOCSERGETLSR,


и не поддерживает ничего подобного (если я не ошибаюсь :) )


Вопрос : Как быть? В каком направлении копать :) ?


Как решить эту проблему при помощи аппаратной доработки я знаю,


но от меня требуют программное решение.....


Зарание спасибо.


 



Вопросы по QNX обсуждаются здесь:
http://www.qnx.org.ru
С уважением,
Бессонов Ян.
Наверх
Olej Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 14 Октябрь 2003
Категория: Ukraine
Online Status: Offline
Публикации: 267
Свойства публикации Свойства публикации   Ответить, цитируя автора - Olej Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 31 Октябрь 2003 12:49
Первоначально опубликовано bessonov


Вопросы по QNX обсуждаются здесь:
http://www.qnx.org.ru


Это нужно бы спросить хозяев форума...
Вопрос несколько более общий, чем просто по QNX:
- как это сделать (как хорошо сделать) вообще;
- ... а потом - как это оформить в QNX;

Поэтому - вполне могло бы быть уместно и здесь. Тем более, что на http://www.qnx.org.ru именно сейчас "реконструкция" и некоторое ... неудобство в работе.
Наверх
KozlovKS Смотреть выпадающим
Prosoft.ru
Prosoft.ru


Присоединился: 21 Июнь 2003
Online Status: Offline
Публикации: 432
Свойства публикации Свойства публикации   Ответить, цитируя автора - KozlovKS Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 31 Октябрь 2003 12:54
А нельзя ли записывать значение прямо в соответствующий регистр управления порта RS-232? Неужели в QNX нет команды типа outportb()?
Наверх
bessonov Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 07 Август 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 108
Свойства публикации Свойства публикации   Ответить, цитируя автора - bessonov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 31 Октябрь 2003 13:16
Первоначально опубликовано KozlovKS

А нельзя ли записывать значение прямо в соответствующий регистр управления порта RS-232? Неужели в QNX нет команды типа outportb()?


наверно есть, но это уже не красивая реализация.
на http://www.qnx.com есть база знаний -- там можно смотреть.
С уважением,
Бессонов Ян.
Наверх
Olej Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 14 Октябрь 2003
Категория: Ukraine
Online Status: Offline
Публикации: 267
Свойства публикации Свойства публикации   Ответить, цитируя автора - Olej Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 31 Октябрь 2003 13:16
Первоначально опубликовано KozlovKS

А нельзя ли записывать значение прямо в соответствующий регистр управления порта RS-232? Неужели в QNX нет команды типа outportb()?


Есть, конечно, такая команда - а иначе как бы эта OS использовалась в системах "под крышкой чипа"?

Я думаю, что вопрос ставился несколько по другому: как это сделать так, чтоб это было наибольшим образом "в стиле" системы..., не разрушая логику системы драйверов системы и т.д. Т.е.:

- если работать с портом (адресом) напрямую, то тогда как гибко менять конфигурации: с /dev/ser1 на /dev/ser2 и т.д. ... а если в SETUP порт 3F8 приписан к /dev/ser2 и наоборот.

- если грубо писать в порт - то, очевидно, нужно предварительно "убить" драйвер сериального порта, который тоже может работать с этим аппаратным портом?

- хорошо, пишем в порт... но тогда всю функциональность драйвера /dev/ser дублировать нужно в своём коде: управление режимами, скорость, чётность... все, что стандартно в UNIX через termcap работает. А исходника стандартного драйвера - нет. Всё пишем сами. А нужна то всего такая малось: после записи в порт средствами стандартного драйвера - переключить линию...

P.S. у меня есть некоторые соображения на сей счёт ("... у меня тут совершенно случайно в кустах белый рояль...") - если сообщество сочтёт уместным обсуждать предмет здесь - изложу.
Наверх
bessonov Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 07 Август 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 108
Свойства публикации Свойства публикации   Ответить, цитируя автора - bessonov Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 31 Октябрь 2003 13:21
Первоначально опубликовано Olej

Первоначально опубликовано bessonov


Вопросы по QNX обсуждаются здесь:
http://www.qnx.org.ru


Это нужно бы спросить хозяев форума...
Вопрос несколько более общий, чем просто по QNX:
- как это сделать (как хорошо сделать) вообще;
- ... а потом - как это оформить в QNX;

Поэтому - вполне могло бы быть уместно и здесь. Тем более, что на http://www.qnx.org.ru именно сейчас "реконструкция" и некоторое ... неудобство в работе.


по хорошему:
если есть преобразователь, то не надо глумиться над драйвером QNX. Для таких изделий не требуется специального софта или хитроумных приёмов работы с ним.

А сайт http://www.qnx.org.ru работает совершенно нормально -- обсуждение идёт полным ходом.
С уважением,
Бессонов Ян.
Наверх
Olej Смотреть выпадающим
Действительный член
Действительный член


Присоединился: 14 Октябрь 2003
Категория: Ukraine
Online Status: Offline
Публикации: 267
Свойства публикации Свойства публикации   Ответить, цитируя автора - Olej Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 31 Октябрь 2003 14:28
Первоначально опубликовано bessonov


если есть преобразователь, то не надо глумиться над драйвером QNX. Для таких изделий не требуется специального софта или хитроумных приёмов работы с ним.


Почему же это не нужно?
Глумиться всегда нужно... :D :D
Можно, конечно, лупасить по 3F8 прямо из тела своего "цельного" программного кода...
Хорошо это?
Тогда лучше не использовать вообще никакую OS, а делать это из голого кода приложение, работающего автономно на оборудовании.
Наверх
Максим Ананских Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 14 Май 2003
Online Status: Offline
Публикации: 770
Свойства публикации Свойства публикации   Ответить, цитируя автора - Максим Ананских Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 31 Октябрь 2003 15:31

Я не совсем понял сути вопроса... Как же тогда стандартный драйвер работает с обычным модемом? Насколько я понимаю, при включенном аппаратном согласовании DTE должен выставить сигнал RTS на время передачи, на что DCE отвечает сигналом CTS. Для преобразователя достаточно соединить CTS с RTS...

Инженер-системотехник
+7 (916) 477 3925
Наверх
Evpator Смотреть выпадающим
Новичок
Новичок


Присоединился: 30 Октябрь 2003
Категория: Ukraine
Online Status: Offline
Публикации: 9
Свойства публикации Свойства публикации   Ответить, цитируя автора - Evpator Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 31 Октябрь 2003 16:02

Да вы правы .... хотелось - бы решить проблему в рамках существующих

возможностей драйвера. Мне всё-же кажется, что я либо чего-то недочитал, либо чего-то недопонял, не смотря на то, что покопался

уже достаточно много. Мне всё ещё неверится что драйвер компорта под

QNX не может помочь мне точно определить момент передачи данных.

Наверх
 Ответить Ответить Страница  123>

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz