Назначение LPT-порта и его регистров
Блок-схема контроллера интерфейса приведена на рис. 2.9. Структура контроллера представляет собой типичную регистровую структуру. Центральный процессор ПК может адресоваться к трем регистрам контроллера:регистру данных; регистру управления; регистру состояния ПУ. Адреса этих регистров для ПК имеют стандартные значения: 378h, 379h и 37Ah - для LPT1; 278h, 279h и 27Ah - для LPT2; 3ВСh, 3ВDh и 3ВEh - для LPT3.
Centronics. Код, выводимый на интерфейс, фиксируется в регистре чтения данных, и его можно прочитать для контроля передаваемых данных. Первые адреса называются базовыми адресами портов. Область данных BIOS содержит базовые адреса для каждого контроллера. Базовый адрес для LPT1 находится в ячейке 0040:0008, для LPT2 – 0040:000А, для LPT3 – 0040:000С. При инициализации ПК базовому адресу присваивается значение 0, когда соответствующий порт не установлен.
Управление передачей информации по интерфейсу организуется в соответствии с временными диаграммами работы интерфейса Centronics, приведенными на рис. 2.8. Чере регистр данных CPU посылает код данных в параллельном формате в ПУ по линиям D0-D7 интерфейса.
Рис. 2.9. Структура контроллера интерфейса Centronics
Регистр состояния ПУ содержит информацию о ПУ. Значения битов этого регистра приведены на рис. 2.10. CPU при передаче данных в ПУ опрашивает регистр состояния ПУ, чтобы определить момент, когда ПУ готово к приему, и можно посылать данные. Этот момент определяется соотношением сигналов BUSY (занято) и #ACK (подтверждение). Регистр состояния сообщает также, что произошла ошибка в работе ПУ или что ПУ не готово из-за отсутствия бумаги (при работе с принтером).
Через регистр управления в ПУ передаются сигналы инициализации ПУ (#INIT), управления выводом данных (#STROBE), т другие сигналы управления. Семантика битов этого регистра приведена на рис. 2.11. Установкой бита В4 в единичное состояние CPU переводит контроллер интерфейса в режим передачи данных по прерыванию. В этом режиме, когда ПУ готово к приему очередного кода данных, контроллер интерфейса посылает запрос на прерывание. Однако передача данных в ПУ в режиме прерывания практически не используется.
Формат регистра состояния LPT-порта
· Бит В7 – инверсное отображение сигнала BUSY на линии интерфейса.
· Бит В6 – отображение сигнала на линии #ACK.
· Бит В5 – отображение сигнала на линии PE.
· Бит В4 - отображение сигнала на линии SELECT.
· Бит В3 - отображение сигнала на линии #ERROR.
· Биты В2-В0 не используются.
Назначение битов регистра управления LPT – порта:
· биты В7-В5 не используются;
· бит В4 – единичное значение разрешает прерывание по спаду сигнала на линии #ACK – сигнал запроса следующего байта;.
· бит В3 – “1” формирует низкий активный уровень сигнала #SLCT IN;
· бит В2 – “0” формирует низкий активный уровень сигнала #INIT;
· бит В1 – “1” формирует низкий активный уровень сигнала #AUTO FD;
бит В0 – “1” формирует низкий активный уровень сигнала #STROBE;
Рис. 2.11. Формат регистра управления