Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Работа с параллельным портом на низком уровне




Работа с параллельным портом на низком уровне выполняется путем прямого обращения к адаптеру порта и применяется при решении широкого круга задач по обмену информацией с нестандартными устройствами, при разработке драйверов устройств и др. Это позволяет реализовать любой протокол обмена с устройством и использовать линии порта по своему усмотрению.

Адаптер параллельного порта представляет набор регистров, расположенных в адресном пространстве устройств ввода-вывода. Количество регистров зависит от типа порта, однако три из них стандартны и присутствуют всегда – регистр данных, регистр состояния и регистр управления.

Адреса регистров отсчитываются от базового адреса, стандартные значения которого могут быть равны 3BCh, 378h, 278h. Принтерные порты могут вырабатывать запросы на прерывание LPT1 – IRQ7, INT 0Fh; LPT2 – IRQ5, INT 0Dh.

При начальной загрузке BIOS пытается обнаружить параллельный порт, однако делает не совсем корректным образом. По возможным базовым адресам портов передается тестовый байт. Затем производится чтение по тому же адресу, и если прочитанный байт совпал с записанным, то считается, что по данному адресу найден LPT порт. Информацию о портах LPT1÷LPT3 можно получить, прочитав переменные BIOS (табл. 97).

 

Табл. 97. Переменные BIOS для LPT портов.

Имя порта Адрес в BIOS Тип переменной Описание
  LPT1 0040:0008h Слово Базовый адрес порта LPT1. Если 0, порт LPT1 не найден.
0040:0078h Байт Константа, задающая тайм-аут.
  LPT2 0040:000Ah Слово -//-
0040:0079h Байт -//-
  LPT3 0040:000Ch Слово -//-
0040:007Ah Байт -//-
  LPT4 0040:000Eh Слово -//-
0040:007Bh Байт -//-

 

 

Стандартный порт LPT имеет три байтовых регистра, расположенных по соседним адресам, начиная с базового адреса (табл. 98). Тип операции закодирован следующим образом: W – запись, R – чтение, W/R – чтение/запись.

 

 

Табл. 98. Регистры стандартного LPT порта.

Адрес Название W-R
Base+0 Data Register – регистр данных (DR). W-R
Base+1 Status register – регистр состояния (SR). R
Base+2 Control Register – регистр управления (CR). W-R

 

 

Регистр данных. Записанные в регистр данные выводятся на выходные линии интерфейса D0-D7. Результат чтения регистра зависит от схемотехники адаптера, и соответствуют либо записанным ранее данным, либо сигналам на линиях D0-D7. При стандартном включении справедлив первый вариант – читаемые данные равны ранее записанным.

Регистр состояния. Регистр представляет порт ввода, на который заведены сигналы от внешнего устройства. Допускается только чтение. Назначение битов регистра состояния приведены в табл. 99.

 

 

Табл. 99. Биты регистра состояния.

Бит Название Назначение
  BUSY Инверсное отображение состояния линии Busy. При низком уровне на линии – бит равен «1» (ПУ готово к приему очередного байта).
  ACK Отображение состояния линии ACK: «0» – подтверждение приема, "1" – обычное состояние.
  PE Отображение состояния линии Paper End: «0» – норма, «1» – в ПУ нет бумаги.
  SLCT OUT Отображение состояния линии Select: «0» – ПУ не выбрано, «1» – ПУ выбрано.
  Error инв. Отображение состояния линии Error: «0» – ошибка ПУ, «1» – обычное состояние.
  PIRQ Флаг прерывания по ACK (только PS/2). Обнуляется, если ACK вызвал аппаратное прерывание. «1» – после сброса или после чтения регистра состояния.
1-0 Резерв, установлены в 0.

Регистр управления. Регистр управления представляет порт вывода, допускающий операции чтения и записи. Биты 0,1,3 инвертируются, т.е. «1» в битах регистра управления соответствует «0» на соответствующих линиях порта. Назначение каждого бита регистра управления приведены в табл. 100.

 

 

Табл. 100. Биты регистра управления.

Бит Название Назначение
7-6 Резерв, установлены в 0.
  Direction Бит управления направлением порта PS/2. "1" – режим ввода, "0" – режим вывода.
  AckIntEn Бит управления генерацией прерывания по ACK. "1" – разрешить прерывание по спаду ACK.
  SLCT IN Управление линией SLCT IN. "1" – работа принтера разрешена.
  INIT Управление линией INIT. "1" – обычное состояние, "0" – аппаратный сброс ПУ
  Auto LF Управление линией Auto LF. "1" – включить режим "Auto LF", "0" – обычное сост.
  Strobe Управление линией Strobe. "1" – стробирование данных, "0" – обычное сост.

 

 

Обычно редко приходится работать с принтером на уровне портов ввода-вывода, т.к. для этого существуют функции BIOS и MS-DOS. Однако приведенная информация может пригодиться для разработки драйвера для подключения к принтерному порту какого-либо нестандартного устройства.




Поделиться с друзьями:


Дата добавления: 2014-11-16; Просмотров: 483; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.