RS232/RS485 |
Ответить | Страница 123> |
Автор | ||
Новичок Присоединился: 30 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 9 |
Опубликовано: 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, и не поддерживает ничего подобного (если я не ошибаюсь :) ) Вопрос : Как быть? В каком направлении копать :) ? Как решить эту проблему при помощи аппаратной доработки я знаю, но от меня требуют программное решение..... Зарание спасибо.
|
||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 07 Август 2003 Категория: Russian Federation Online Status: Offline Публикации: 108 |
||
Вопросы по QNX обсуждаются здесь: http://www.qnx.org.ru |
||
С уважением,
Бессонов Ян. |
||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
||
Это нужно бы спросить хозяев форума... Вопрос несколько более общий, чем просто по QNX: - как это сделать (как хорошо сделать) вообще; - ... а потом - как это оформить в QNX; Поэтому - вполне могло бы быть уместно и здесь. Тем более, что на http://www.qnx.org.ru именно сейчас "реконструкция" и некоторое ... неудобство в работе. |
||
Prosoft.ru Присоединился: 21 Июнь 2003 Online Status: Offline Публикации: 432 |
||
А нельзя ли записывать значение прямо в соответствующий регистр управления порта RS-232? Неужели в QNX нет команды типа outportb()?
|
||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 07 Август 2003 Категория: Russian Federation Online Status: Offline Публикации: 108 |
||
наверно есть, но это уже не красивая реализация. на http://www.qnx.com есть база знаний -- там можно смотреть. |
||
С уважением,
Бессонов Ян. |
||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
||
Есть, конечно, такая команда - а иначе как бы эта OS использовалась в системах "под крышкой чипа"? Я думаю, что вопрос ставился несколько по другому: как это сделать так, чтоб это было наибольшим образом "в стиле" системы..., не разрушая логику системы драйверов системы и т.д. Т.е.: - если работать с портом (адресом) напрямую, то тогда как гибко менять конфигурации: с /dev/ser1 на /dev/ser2 и т.д. ... а если в SETUP порт 3F8 приписан к /dev/ser2 и наоборот. - если грубо писать в порт - то, очевидно, нужно предварительно "убить" драйвер сериального порта, который тоже может работать с этим аппаратным портом? - хорошо, пишем в порт... но тогда всю функциональность драйвера /dev/ser дублировать нужно в своём коде: управление режимами, скорость, чётность... все, что стандартно в UNIX через termcap работает. А исходника стандартного драйвера - нет. Всё пишем сами. А нужна то всего такая малось: после записи в порт средствами стандартного драйвера - переключить линию... P.S. у меня есть некоторые соображения на сей счёт ("... у меня тут совершенно случайно в кустах белый рояль...") - если сообщество сочтёт уместным обсуждать предмет здесь - изложу. |
||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 07 Август 2003 Категория: Russian Federation Online Status: Offline Публикации: 108 |
||
по хорошему: если есть преобразователь, то не надо глумиться над драйвером QNX. Для таких изделий не требуется специального софта или хитроумных приёмов работы с ним. А сайт http://www.qnx.org.ru работает совершенно нормально -- обсуждение идёт полным ходом. |
||
С уважением,
Бессонов Ян. |
||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
||
Почему же это не нужно? Глумиться всегда нужно... :D :D Можно, конечно, лупасить по 3F8 прямо из тела своего "цельного" программного кода... Хорошо это? Тогда лучше не использовать вообще никакую OS, а делать это из голого кода приложение, работающего автономно на оборудовании. |
||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 14 Май 2003 Online Status: Offline Публикации: 770 |
||
Я не совсем понял сути вопроса... Как же тогда стандартный драйвер работает с обычным модемом? Насколько я понимаю, при включенном аппаратном согласовании DTE должен выставить сигнал RTS на время передачи, на что DCE отвечает сигналом CTS. Для преобразователя достаточно соединить CTS с RTS... |
||
Инженер-системотехник
+7 (916) 477 3925 |
||
Новичок Присоединился: 30 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 9 |
||
Да вы правы .... хотелось - бы решить проблему в рамках существующих возможностей драйвера. Мне всё-же кажется, что я либо чего-то недочитал, либо чего-то недопонял, не смотря на то, что покопался уже достаточно много. Мне всё ещё неверится что драйвер компорта под QNX не может помочь мне точно определить момент передачи данных. |
||
Ответить | Страница 123> |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |