![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#41 |
Пользователь
Регистрация: 20.01.2014
Сообщений: 37
|
![]()
Дабы внести ещё кое какую ясность объясню то, чем я руководствовался при выяснении того, какие команды слать на запрещение/разрешение прохода.
Я порылся в ассемблерных исходниках(самописного драйвера по работе с проходной под DOS -исполняемый файл с расширением com) Так вот там я вычислил, что команды отдаются по адресу, которым адресуется регистр MCR(Modem Control Registr), что и логично(обращение в DOS к регистрам порта без проблем напрямую - это не винда, которая запрещает подобные трюки). Если запрет - то в этот регистр загоняется число 08h-если посмотреть описание MCR-то это значит DTR и RTS 0. Для запрещения прохода - в регистр осуществляется запись числа 0bh - DTR=1 и RTS=1. Прилагаю описание этого регистра. |
![]() |
![]() |
![]() |
#42 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
...оки. Раз вы обмен не используете, а дергать надо пины, попробовать драйвера прямого доступа к портам не хотите, в целях эксперимента? Giveio, Hwport, ioport, inpout?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
![]() |
![]() |
![]() |
#43 |
Пользователь
Регистрация: 20.01.2014
Сообщений: 37
|
![]()
Ну попробовать-то оно, конечно можно. Но вот честно, не знаю, что это может мне дать? Мне почему-то кажется, что основная проблема не в том, что моя прога слишком долго обращается к линиям порта посредством стандартного виндоузного драйвера. Где-то около 30 тактов напрямую будет, ну винда для этого пусть даже пару тысяч тактов съест - согласитесь для современного проца это ничто, это максимум микросекунды. Думаю, что основная задержка происходит из-за переключения контекста задач WindowsXP планировщиком. Т.е. приходят данные в порт, а в этот момент процессор работает с другим потоком, по истечению time slice работы с ним(этим потоком ) сохраняет в регистрах его контекст, загружает в регистры контекст того потока, из которого работает мой обработчик данных на приход в порт пакета(но не факт- может какой-нить ещё поток, нуждающийся в процессорных тактах загрузить). К этому времени 4 мс истекают, контроллер опрашивает линию DTR - а там старое значение. У меня такие мысли..
Последний раз редактировалось TELEPUZ; 22.01.2014 в 17:02. |
![]() |
![]() |
![]() |
#44 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
Вы между строк читаете? Вот Смит-Вессону не кажется, просто взял и сделал. Вам предлагается обращаться к порту, минуя драйвер винды.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
![]() |
![]() |
![]() |
#45 | |
Пользователь
Регистрация: 20.01.2014
Сообщений: 37
|
![]() Цитата:
![]() Последний раз редактировалось TELEPUZ; 22.01.2014 в 20:20. |
|
![]() |
![]() |
![]() |
#46 |
Пользователь
Регистрация: 20.01.2014
Сообщений: 37
|
![]()
А по поводу прямого обращения к регистрам порта минуя драйвер винды -попробую, когда уж совсем ничего не получится без этого. Что-то у меня такое чувство, что из-за какой-то мелочи косяк вылазит, но что-то я возможно упускаю из виду....
|
![]() |
![]() |
![]() |
#47 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
![]()
Если контроллер проходной собран на КР1816ВЕ35, то смею предположить, что контроллер порта RS-232, собран на микросхеме КР580ВВ51. Так ли это? Схемку можете скинуть?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
![]() |
![]() |
![]() |
#48 | |
Пользователь
Регистрация: 20.01.2014
Сообщений: 37
|
![]() Цитата:
http://files.mail.ru/DA83283BD8D04F13B222D962E1BAC20F. |
|
![]() |
![]() |
![]() |
#49 | |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]() Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|
![]() |
![]() |
![]() |
#50 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
![]()
В общих чертах. Сигнал с разъёма XS5-105 вход RS-232 (провод 20) поступает на транзистор VT4 и через инвертор, на вход условного перехода JTO/JNTO. Никакого запоминания сигналов не происходит (этот вход только проверяется программой и его уровни нигде не фиксируются). Скорее всего, проблема в несогласованности длительностей сигналов на передающей и приёмной стороне.
Почему воспринимается только второй сигнал? Фиг его знает, может в программе контроллера ошибка. В общем, я не увидел патологических ограничений на приём/передачу данных. Для более точных выводов, нужно дизасемблировать прошивку РФ5-й и смотреть, чё она там с этим портом делает. Цитата:
Как по мне, выкинул бы я этот котроллер к чертям и зделал всё через LPT-порт от ПК. Тем боллее, что там используются 5 входных и 5 выходных сигналов. Задачка на пару дней, не считая перепаек.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 23.01.2014 в 11:58. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программирование LPT-порта на DELPHI | Vova777 | Компьютерное железо | 5 | 05.02.2011 19:27 |
Программирование LPT-порта на DELPHI | Vova777 | Общие вопросы Delphi | 0 | 31.01.2011 17:37 |
Программирование последовательного порта | Funker | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 7 | 27.05.2010 02:20 |
программирование lpt порта | alexs2141 | Общие вопросы Delphi | 5 | 07.06.2008 17:10 |