Проверка LPT порта ПК
Диагностика LPT порта на WinXP /Win7.
При возникновении проблем с подключением контроллеров для управления приводами с ЧПУ через LPT порт, необходимо произвести диагностику всех пинов порта. В зависимости от того, какая операционная система установлена на ПК – выбираем программу:
Для Windows XP — программа XPlpt (работает без установки);
Для Windows 7 — программа Wndlpt (требует установку).
Приготовьте мультиметр и установите режим измерения напряжения до 20 В. Также потребуется два отрезка провода с зачищенными от изоляции концами (подойдут проводники от витой пары).
В системном блоке ПК оставляем подключенным LPT кабель и перезагружаем ПК. После перезагрузки запускаем программу для проверки LPT порта. Ниже приведена распиновка LPT по сигналам для контроллеров систем с ЧПУ.
Будем проверять пины с 1 по 17 (это будут плюсовые контакты). Минусовые контакты с 18 по 25 (соединены между собой).
Для XP, в программе xplpt нажимая кнопочки с 1 по 17, соответствующие пинам порта, проверяем появление питания на контактах LPT кабеля. Когда в программе напротив пина установлено значение 0, то питание на данном пине должно быть в пределах +0…+1 вольт. При установке значения 1 – на контакте соответствующего пина должно появиться напряжение в пределах +3…+ 5 вольт. Если этого не происходит, то проверьте, правильно ли выставлен порт в программе. В данном примере это порт $3BC. Учтите, что пины 10, 11, 12, 13, 15 всегда находятся под напряжением + 3…+ 5 вольт.
Для Windows 7 в программе winlpt перейдите во вкладку «сигналы» и поочередно устанавливая галочки у каждого пина проверяем наличие напряжения +3…+5 вольт на контактах LPT кабеля, как по инструкции выше для Windows XP.
knigechka
Сайт содержит тексты редких методических пособий, лабораторных и контрольных работ. Вообщем, то что трудно найти в сети но очень нужно для подготовки к экзаменам, в частности на заочной форме обучения.
Настройка и диагностика LPT-портов
Конфигурирование LPT-портов
Управление параллельным портом разделяется на два этапа — предварительное конфигурирование (Setup) аппаратных средств порта и текущее (оперативное) переключение режимов работы прикладным или системным ПО. Оперативное переключение возможно только в пределах режимов, разрешенных при конфигурировании. Этим обеспечивается возможность согласования аппаратуры с ПО и блокирования ложных переключений, вызванных некорректными действиями программы.
Конфигурирование LPT-порта зависит от его исполнения. Порт, расположенный на плате расширения (мультикарте), устанавливаемой в слот ISA или ISA+VLB, конфигурируется джамперами на самой плате. Порт на системной плате конфигурируется через BIOS Setup.
Ниже перечислены параметры, подлежащие конфигурированию.
♦ Базовый адрес — 3BCh, 378h или 278h. При инициализации BIOS проверяет наличие портов по адресам именно в этом порядке и, соответственно, присваивает обнаруженным портам логические имена LPT1, L PT2, L РТЗ. Адрес ЗВСЬ имеет адаптер порта, расположенный на плате MDA или HGC. Большинство портов по умолчанию конфигурируется на адрес 378h и может переключаться на 278h.
♦ Используемая линия запроса прерывания: для L РТ — IRQ7, для LPT2 — IRQ5. Традиционно прерывания от принтера не задействуются, и этот дефицитный ресурс можно сэкономить. Однако при использовании скоростных режимов ЕСР (или Fast Centronics) работа через прерывания может заметно повысить производительность и снизить загрузку процессора.
♦ Использование канала DMA для режимов ЕСР и Fast Centronics — разрешение и номер канала DMA.
♦ Режимы работы порта:
• SPP — порт работает только в стандартном однонаправленном программно- управляемом режиме;
• PS/2, он же Bi—Directional — отличается от SPP возможностью реверса канала (установкой CR. 5=1);
• Fast Centronics — аппаратное формирование протокола Centronics с использованием FIFO-буфера и, возможно, DMA;
• ЕРР — в зависимости от использования регистров порт работает в режиме SPP или ЕРР;
• ЕСР— по умолчанию включается в режим SPP или PS/2, записью в ECR
может переводиться в любой режим ЕСР, но перевод в ЕРР записью в ECR кода 100 не гарантируется;
• ЕСР+ЕРР — то же, что и ЕСР, но запись в ECR кода режима 100 переводит порт в ЕРР.
Выбор режима ЕРР, ЕСР или Fast Centronics сам по себе не приводит к повышению быстродействия обмена с подключенными ПУ, а только дает возможность драйверу и ПУ установить оптимальный режим в пределах их «разумения». Большинство современных драйверов и приложений пытаются использовать эффективные режимы, поэтому «подрезать им крылья» установкой простых режимов без веских на то оснований не стоит.
Принтеры и сканеры могут пожелать режима ЕСР. Windows (3.x, Эх и NT) имеет системные драйверы для этого режима. В среде DOS печать через ЕСР поддерживается только специальным загружаемым драйвером.
Сетевые адаптеры, внешние диски и CD—ROM, подключаемые к параллельному порту, могут использовать режим ЕРР. Для этого режима специальный драйвер пока еще не применяется; поддержка ЕРР включается в драйвер самого подключаемого устройства.
Неисправности и тестирование параллельных портов
Тестирование параллельных портов разумно начинать с проверки их наличия в системе. Список адресов установленных портов появляется в таблице, выводимой BIOS на экран перед загрузкой ОС. Список можно посмотреть и с помощью тестовых программ или прямо в BIOS Data Area с помощью отладчика.
Если BIOS обнаруживает меньше портов, чем установлено физически, скорее всего, двум портам присвоен один и тот же адрес. При этом работоспособность ни одного из конфликтующих портов не гарантируется: они будут одновременно выводить сигналы, но при чтении регистра состояния конфликт на шине, скорее всего, приведет к искажению данных. Программное тестирование порта без диагностической заглушки (Loop Back) не покажет ошибок, поскольку при этом читаются данные выходных регистров, а они у всех конфликтующих (по отдельности исправных портов) совпадут. Именно такое тестирование производит BIOS при проверке на наличие портов. Разбираться с такой ситуацией следует, последовательно устанавливая порты и наблюдая за адресами, появляющимися в списке.
Если физически установлен только один порт, a BIOS его не обнаруживает, то либо порт отключен при конфигурировании, либо он вышел из строя (скорее всего из-за нарушений правил подключения). Если вам везет, неисправность устраняется «передергиванием» платы в слоте — там иногда возникают проблемы с контактами.
Наблюдаются и такие «чудеса» — при «теплой» перезагрузке DOS после Windows 95 порт не виден (и приложения не могут печатать из MS-DOS). Однако после повторной перезагрузки DOS порт оказывается на месте. С этим явлением легче смириться, чем бороться.
Тестирование портов с помощью диагностических программ позволяет проверить выходные регистры, а при использовании специальных заглушек — и входные линии. Поскольку количество выходных линий порта (12) и входных (5) различно, то полная проверка порта с помощью пассивной заглушки принципиально невозможна. Разные программы тестирования требуют применения разных заглушек (рис. 1.8).
Рис. 1.8. Схема заглушки для тестирования LPT-порта: а — для Norton Diagnostics б -для Checklt,
Большинство неприятностей при работе с LPT-портами доставляют разъемы и кабели. Для проверки порта, кабеля и принтера можно воспользоваться специальными тестами из популярных диагностических программ (Checklt, PCCheckи т. п.). Можно попытаться просто вывести на принтер какой-либо символьный файл.
♦ Если вывод файла с точки зрения DOS проходит (копирование файла на
устройство с именем LPTn или PRN совершается быстро и успешно), а принтер (исправный) не напечатал ни одного символа — скорее всего, это обрыв (не контакт в разъеме) цепи Strobe*.
♦ Если принтер находится в состоянии On Line, а появляется сообщение о его неготовности, причину следует искать в линии Busy.
♦ Если принтер, подключенный к порту, в стандартном режиме (SPP) печатает нормально, а при переходе в режим ЕСР начинаются сбои, следует проверить кабель — соответствует ли он требованиям IEEE 1284 (см. выше). Дешевые кабели с неперевитыми проводами нормально работают на скоростях 50-100 Кбайт/с, но при скорости 1-2 Мбайт/с, обеспечиваемой ЕСР, имеют полное право не работать, особенно при длине более 2 м.
♦ Если при установке драйвера PnP-принтера появилось сообщение о необхо
димости применения «двунаправленного кабеля», проверьте наличие связи
контакта 17 разъема DB-25 с контактом 36 разъема Centronics. Хотя эта связь изначально предусматривалась, в ряде кабелей она отсутствует.
♦ Если принтер искажает информацию при печати, возможен обрыв (или замы
кание) линий данных. В этом случае удобно воспользоваться файлом, содер
жащим последовательность кодов всех печатных символов. Если файл печата
ется с повтором некоторых символов или их групп, по периодичности повтора
можно легко вычислить оборванный провод данных интерфейса. Этот же файл
удобно использовать для проверки аппаратной русификации принтера.
Аппаратные прерывания от LPT-порта используются не всегда. Даже DOS-программа фоновой печати PRINT работает с портом по опросу состояния, а ее обслуживающий процесс запускается по прерыванию от таймера. Поэтому неисправности, связанные с цепью прерывания от порта, проявляются не часто. Однако по-настоящему многозадачные ОС (например, NetWare) стараются работать с портом по прерываниям. Протестировать линию прерывания можно, только подключив к порту ПУ или заглушку. Если к порту с неисправным каналом прерывания подключить адаптер локальной сети, то он, возможно, будет работать, но с очень низкой скоростью: на любой запрос ответ будет приходить с задержкой в десятки секунд — принятый из адаптера пакет будет приниматься не по прерыванию (сразу по приходу), а по внешнему тайм-ауту.
Литература:
ГукМ. Г93 Аппаратные интерфейсы ПК. Энциклопедия. — СПб.: Питер, 2002. — 528 с.: ил.
Работа с LPT-портом в Win NT/2000/XP
LPT-порт (Line PrinTer) — порт параллельного интерфейса, который изначально создавался для подключения принтера. BIOS обеспечивает поддержку LPT-порта, необходимую для организации вывода по интерфейсу Centronics. Адресное пространство порта занимает диапазон &H378-&H37F
LPT-порт имеет 12 выходных и 5 входных линий. Такое довольно большое количество линий делает возможным подключение к порту несложной аппаратуры, возможно даже не имеющей своего микроконтроллера. Поэтому этот порт, несмотря на исчезновение принтеров с LPT-интерфейсом, активно используется для подключения простых программаторов микросхем памяти, JTAG-интерфейсов для перепрошивки (замены программного обеспечения) спутниковых рессиверов, DVD-плееров и другой электронной техники. Популярен LPT-порт и у моддеров, поскольку позволяет подключить к компьютеру LCD-дисплеи без изготовления сложных плат-интерфейсов.
Windows 2000/XP не позволяет приложениям обращаться к портам ввода-вывода напрямую. Для этого нужно использовать драйвер, работающий в KERNEL-mode (в режиме ядра операционной системы).
Ограничение доступа к портам ввода-вывода для обычных прикладных программ (работающих в пользовательском режиме) позволяет сделать операционную систему более стабильной. Хотя с другой стороны никто не мешает программисту написать драйвер, обращающийся к портам.
Интересно, что для процессора Intel x86 можно написать драйвер, использующий один из двух принципиально разных подходов. Первый вариант — драйвер сам обращается к портам, а прикладная программа только указывает драйверу, что делать. Этот вариант в общем случае является стандартным и предпочтительным.
Для решения проблемы существуют четыре популярных варианта драйверов, позволяющих прикладной программе обращаться к портам ввода-вывода: драйвер DLPortIO, драйвер UserPort, драйвер GiveIO.sis, драйвер Port95nt.
Все четыре варианта практически равноценны.
Драйвер DLPortIO
DLportIO — драйвер доступа к портам из пакета DriverLINX от Scientific Software Tools, Inc. (http://www.sstnet.com) в сокращённом виде (без описания и лишней документации). Для нормальной работы программ обслуживания LCD-индикаторов можно порекомендовать именно этот вариант драйвера.
Собственно драйвер состоит из двух составляющих:
• DLPortIO.dll — Win32 DLL, обеспечивающая аппаратные функции ввода/вывода и
• DLPortIO.sys — драйвер для WinNT, работающий в режиме ядра ОС (не требуется для Win95/98)
В установочном пакете драйвера, помимо этих двух компонентов, есть ещё файл Install.exe, перемещающий два вышеназванных в папку драйверов Windows и регистрирующий их в системе.
Больше писать про этот драйвер и нечего. Настройка не требуется. Скачали, установили, пользуемся. Не забываем заглянуть в конец статьи и почитать о дополнительных мерах обеспечения работоспособности LPT-порта.
Установка элементарная — запускаем файл Install.exe, устанавливаем. По окончанию установки заглядываем в папку C:\Windows\System32\drivers и проверяем наличие двух файлов драйвера (DLPortIO.sys и DLPortIO.dll). Если видим, что эти файлы так и не скопировались, берем их из установочного пакета и копируем вручную. Не переживайте, с компьютером ничего плохого не случится. Перегружаем компьютер и работаем с LPT-портом.
Если вдруг, в результате манипуляций с оборудованием, вы получите от драйвера сообщение такого плана: «dlportio.sys device driver not loaded. Port I/O will have no effect», не стоит паниковать. Исправляется эта проблема так:
• Запускаем regedit.
• Заходим в реестре в ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ .
• В папке dlportio изменяем значение параметра Start на 1.
• Перезагружаем компьютер.
Драйвер UserPort
Драйвер UserPort открывает доступ к портам в Win NT/2000/XP для программ. Этим вариантом драйвера LPT-порта чаще всего пользуются «технари», работающие с программаторами и JTAG’ами, поскольку драйвер имеет хоть какие-то конфигурирующие настройки. Для работы программ обслуживания LCD-индикаторов его так же можно использовать.
В архиве драйвера имеются три файла:
• UserPort.sys — драйвер для WinNT, работающий в режиме ядра ОС,
• UserPort.exe — программа для настройки драйвера и
• UserPort.pdf — файл описания.
Установка UserPort:
• 1. Распакуйте архив в отдельную папку.
• 2. Скопируйте файл UserPort.sys в C:\Windows\System32\drivers
Настройка UserPort:
• Запустите UserPort.exe.
• Перед нами появится панель с 2-мя окошками.
Левое окошко относится к работе программы в ДОС окне, правое на полном экране. По умолчанию в них прописаны номера портов LPT — все их можно удалить с помощью кнопки «Remove». В оба окна нужно вписать нужные номера портов, которые планируется использовать.
Для использования с драйвера с большинством программаторов, JTAG’ов и программ обслуживания дисплеев, добавьте в левую колонку следующие параметры:
378, 379 и 37A для LPT1
278, 279 и 27A для LPT2 (Если в BIOS’е переназначен адрес LPT-порта).
Поясню, что означают цифры. 0x378 — это адрес порта.
• Адрес 0x378 называется базовым и служит для записи и чтения данных в порт и из порта, по шине данных D0-D7.
• Адрес 0x379 (базовый+1) предназначен для чтения битов состояния из устройства, подключеного к LPT-порту.
• Адрес 0x37A (базовый+2) служит для записи битов управления устройства, подключенного к LPT-порту.
Добавляем так:
0x378-0x378
0x37A-0x37A
Добавлять адреса порта в список нужно через окно ввода и с помощью кнопки «Add». Адрес 0x379 чаще всего не нужен и его можно не вписывать, поскольку он предназначен для чтения битов состояния из устройства, подключеного к LPT-порту, а большинство устройств (программаторы, JTAG’и и LCD-индикаторы тем более) сигналы состояния не формируют. При желании можно наоборот вписать весь диапазон адресов, отведённых системой под LPT-порт 0x378-0x37F.
Заходим в Панель Управления , Система , выбираем закладку Оборудование , Диспетчер устройств , заходим в Порты (COM и LPT) и смотрим свойства LPT порта, по которому вы хотите установить соединение. В Свойствах открываем закладку Ресурсы и смотрим значение параметра Диапазон ввода/вывода (I/O) . (Обычно в Windows XP оно равно 378 — 37F)
После формирования списка адресов, нужно нажать кнопку «Start», драйвер будет запущен и появится сообщение:
Затем нажать кнопку «Update», при этом драйвер будет зарегистрирован в системе, затем «Exit». Разумеется, кнопку «Stop», пока мы пользуемся драйвером, нажимать не нужно.
Если при нажатии кнопки «Update» система уходит в перезагрузку, нужно пробовать запускать регистрацию драйвера в системе с правами администратора или попытаться временно отключить файрволл или антивирус, которые могут блокировать вмешательство в системные процессы. Если что-то не получилось, читайте UserPort.pdf
Для проверки, появился ли доступ к портам, можно запустить программу «lpt-test.exe».
После старта программы появится окно со следующим содержанием:
LPT-TEST v1.03 1995-2003 Copyright (C) С.Б.Алеманов. Москва «БИНАР». Во время тестирования к портам не должно быть подключено периферийных устройств. Dx — рег. данных (out), Ux — рег. управления (out), Sx — рег. статуса (inp). Тестируется порт LPT1 (Адрес 378h) Отсутствует порт LPT2 Отсутствует порт LPT3 Отсутствие сообщения «Тестируется порт LPT (Адрес XXXh)» и последующих за ним строк говорит о том, что драйвер не работает. Эта программа просто посылает в регистр данных Dx и регистр управления Ux порта LPT различные числа, а потом их же считывает. Регистр статуса Sx порта LPT только считывается. На экран выводится номер и адрес тестируемого порта LPT. Если порт исправный, то для регистров Dx и Ux не должно выдаваться никаких сообщений.
|