Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2014, 14:40   #41
TELEPUZ
Пользователь
 
Регистрация: 20.01.2014
Сообщений: 37
По умолчанию

Дабы внести ещё кое какую ясность объясню то, чем я руководствовался при выяснении того, какие команды слать на запрещение/разрешение прохода.
Я порылся в ассемблерных исходниках(самописного драйвера по работе с проходной под DOS -исполняемый файл с расширением com) Так вот там я вычислил, что команды отдаются по адресу, которым адресуется регистр MCR(Modem Control Registr), что и логично(обращение в DOS к регистрам порта без проблем напрямую - это не винда, которая запрещает подобные трюки). Если запрет - то в этот регистр загоняется число 08h-если посмотреть описание MCR-то это значит DTR и RTS 0. Для запрещения прохода - в регистр осуществляется запись числа 0bh - DTR=1 и RTS=1. Прилагаю описание этого регистра.
Изображения
Тип файла: jpg mcr.jpg (119.1 Кб, 140 просмотров)
TELEPUZ вне форума Ответить с цитированием
Старый 22.01.2014, 15:09   #42
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...оки. Раз вы обмен не используете, а дергать надо пины, попробовать драйвера прямого доступа к портам не хотите, в целях эксперимента? Giveio, Hwport, ioport, inpout?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 22.01.2014, 15:39   #43
TELEPUZ
Пользователь
 
Регистрация: 20.01.2014
Сообщений: 37
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
...оки. Раз вы обмен не используете, а дергать надо пины, попробовать драйвера прямого доступа к портам не хотите, в целях эксперимента? Giveio, Hwport, ioport, inpout?
Ну попробовать-то оно, конечно можно. Но вот честно, не знаю, что это может мне дать? Мне почему-то кажется, что основная проблема не в том, что моя прога слишком долго обращается к линиям порта посредством стандартного виндоузного драйвера. Где-то около 30 тактов напрямую будет, ну винда для этого пусть даже пару тысяч тактов съест - согласитесь для современного проца это ничто, это максимум микросекунды. Думаю, что основная задержка происходит из-за переключения контекста задач WindowsXP планировщиком. Т.е. приходят данные в порт, а в этот момент процессор работает с другим потоком, по истечению time slice работы с ним(этим потоком ) сохраняет в регистрах его контекст, загружает в регистры контекст того потока, из которого работает мой обработчик данных на приход в порт пакета(но не факт- может какой-нить ещё поток, нуждающийся в процессорных тактах загрузить). К этому времени 4 мс истекают, контроллер опрашивает линию DTR - а там старое значение. У меня такие мысли..

Последний раз редактировалось TELEPUZ; 22.01.2014 в 17:02.
TELEPUZ вне форума Ответить с цитированием
Старый 22.01.2014, 19:34   #44
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Вы между строк читаете? Вот Смит-Вессону не кажется, просто взял и сделал. Вам предлагается обращаться к порту, минуя драйвер винды.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 22.01.2014, 20:08   #45
TELEPUZ
Пользователь
 
Регистрация: 20.01.2014
Сообщений: 37
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
Вы между строк читаете? Вот Смит-Вессону не кажется, просто взял и сделал. Вам предлагается обращаться к порту, минуя драйвер винды.
Если вы по поводу того, что 4 мс - это время, за которое ПК обрабатывает информацию. Причём ПК -этот якобы идёт в комплекте, как предположил уважаемый Смит-Вессон. то вот что скажу - в комплекте к проходной ПК никакого не было, а эти 4 мс - это руководство для разработчика-указание на то, что программа на ПК ОБЯЗАНА дать ответ не позднее 4 мс. И мои опыты с проходной это подтверждают. Я вот думаю - а не может ли моя прога запаздывать с ответом из-за того, что я её запускаю из отладчика Visual Studio?

Последний раз редактировалось TELEPUZ; 22.01.2014 в 20:20.
TELEPUZ вне форума Ответить с цитированием
Старый 22.01.2014, 20:11   #46
TELEPUZ
Пользователь
 
Регистрация: 20.01.2014
Сообщений: 37
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
Вы между строк читаете? Вот Смит-Вессону не кажется, просто взял и сделал. Вам предлагается обращаться к порту, минуя драйвер винды.
А по поводу прямого обращения к регистрам порта минуя драйвер винды -попробую, когда уж совсем ничего не получится без этого. Что-то у меня такое чувство, что из-за какой-то мелочи косяк вылазит, но что-то я возможно упускаю из виду....
TELEPUZ вне форума Ответить с цитированием
Старый 22.01.2014, 20:53   #47
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Если контроллер проходной собран на КР1816ВЕ35, то смею предположить, что контроллер порта RS-232, собран на микросхеме КР580ВВ51. Так ли это? Схемку можете скинуть?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 23.01.2014, 10:49   #48
TELEPUZ
Пользователь
 
Регистрация: 20.01.2014
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Если контроллер проходной собран на КР1816ВЕ35, то смею предположить, что контроллер порта RS-232, собран на микросхеме КР580ВВ51. Так ли это? Схемку можете скинуть?
Да, конечно прикрепляю описание всех микросхем на схеме и саму схему. Качество изображение плохое - старые бумажки((. В лучшем разрешение выложил на файло-обменник:
http://files.mail.ru/DA83283BD8D04F13B222D962E1BAC20F.
Изображения
Тип файла: jpg HWScan00130.jpg (114.5 Кб, 143 просмотров)
Тип файла: jpg HWScan00129.jpg (123.1 Кб, 147 просмотров)
TELEPUZ вне форума Ответить с цитированием
Старый 23.01.2014, 11:15   #49
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
а не может ли моя прога запаздывать с ответом из-за того, что я её запускаю из отладчика Visual Studio?
может, а если вы еще и не нативно общаетесь с портом, а используя прокладки NET, то тем более.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 23.01.2014, 11:46   #50
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

В общих чертах. Сигнал с разъёма XS5-105 вход RS-232 (провод 20) поступает на транзистор VT4 и через инвертор, на вход условного перехода JTO/JNTO. Никакого запоминания сигналов не происходит (этот вход только проверяется программой и его уровни нигде не фиксируются). Скорее всего, проблема в несогласованности длительностей сигналов на передающей и приёмной стороне.
Почему воспринимается только второй сигнал? Фиг его знает, может в программе контроллера ошибка.
В общем, я не увидел патологических ограничений на приём/передачу данных.
Для более точных выводов, нужно дизасемблировать прошивку РФ5-й и смотреть, чё она там с этим портом делает.
Цитата:
Сообщение от raxp Посмотреть сообщение
может, а если вы еще и не нативно общаетесь с портом, а используя прокладки NET, то тем более.
Ничего подобного. Скорее всего, его программа опережает события. Или длительность сигнала настолько мала, что цикл опроса, просто его не вылавливает с первого раза.

Как по мне, выкинул бы я этот котроллер к чертям и зделал всё через LPT-порт от ПК. Тем боллее, что там используются 5 входных и 5 выходных сигналов. Задачка на пару дней, не считая перепаек.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 23.01.2014 в 11:58.
Smitt&Wesson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование 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