Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
IPU_GOS_OK.doc
Скачиваний:
61
Добавлен:
12.03.2015
Размер:
2.27 Mб
Скачать

11. Драйвер принтер (программа int 17h). Операции, используемые при выводе данных на принтер.

Сервисы BIOS Int 17 h: обеспечивают инициализацию, вывод байта данных и оп­рос состояния принтера, подключенного к LPT-порту. При вызове функция зада­ется в регистре АН, номер LPT-порта — в регистре DX.

АН = ООН — вывод байта из регистра AL по протоколу Centronics (без аппарат­ных прерываний). Данные помещаются в выходной регистр, и, дождавшись готовности принтера (снятия сигнала Busy), формируется строб.

АН = Olh — инициализация интерфейса и принтера (установка исходных уров­ней управляющих сигналов, формирование импульса lnit#, запрет аппаратных прерываний и переключение на вывод двунаправленного интерфейса).

АН = 02h — опрос состояния принтера (чтение регистра состояния порта).

При возврате регистр АН содержит байт состояния, который собирается из бит регистра состояния SR [7:3] и программно формируемого флага тайм-аута. Биты 6 и 3 относительно байта, считанного из регистра состояния, инвертированы. Назна­чение бит байта состояния:

бит 7 — не занято (сигнал Busy); нулевое значение означает, что принтер занят (буфер полон или состояние Off-Line, или ошибка);

бит 6 — подтверждение (сигнал Ack#); единичное значение означает, что прин­тер подключен;

бит 5 — конец бумаги (сигнал PaperEnd);

бит 4 — принтер готов (сигнал Select); нулевое значение означает, что принтер в состоянии Off-Line;

бит 3 — ошибка принтера (сигнал Error*); единичное значение соответствует ошибке;

биты 2:1=00 (не используются);

бит 0 — флаг тайм-аута, устанавливается при неудачной попытке вывода сим­вола, если сигнал Busy не снимается в течение времени, определенного для дан­ного порта в ячейках тайм-аута (в BIOS Data Area); в этом случае согласно протоколу Centronics строб данных не вырабатывается.

Перехват прерывания Int 17h является удобным способом внедрения собствен­ных драйверов принтера. Потребность в них может возникать при подключении к порту принтера с интерфейсом ИPNP или необходимости перекодировки симво­лов. Если разрабатываемый драйвер предназначен не только для перекодировки, но и изменения протокола (через Int 17h можно организовать вывод через LPT-порт по протоколу ИPNP и даже через СОМ-порт), следует внимательно отнес­тись к битам возвращаемого байта состояния. При их неправильном формирова­нии попытки вывода на печать могут приводить к ошибочным сообщениям.

12. Физическая реализация интерфейса Centronics. Назначение линий интерфейса. Временная диаграмма передачи данных по интерфейсу. Пояснить по диаграмме процесс передачи данных.

Внешний, радиальный, параллельный интерфейс Centronics обеспечивает подключение печатающих и других устройств с параллельной передачей информации. В одном направлении (от ПК) одновременно передается 1 байт данных. Радиальное подключение осуществляется посредством кабеля.

Интерфейс Centronics был разработан специально для подключения печатающих устройств и лишь впоследствии принят в качестве стандарта для передачи внешней параллельной информации между устройствами. Поэтому назначение сигналов и линий интерфейса ориентировано именно на работу с печатающими устройствами.

Все сигналы интерфейса Centronics имеют стандартные ТТЛ - уровни. Максимальная длина соединительного кабеля по стандарту – 1,8 м. По назначению сигналы на контактах разъема интерфейса можно разделить на 4 группы:

- информационные сигналы;

- сигналы управления передачей данных;

- сигналы состояния периферийного устройства;

- заземление и питание.

Стандартом предусматривается, что информационные сигналы и сигналы управления передачей данных формирует и выдает системное устройство (источник), а сигналы состояния – периферийное устройство (приемник).

Рассмотрим назначение сигналов интерфейса Centronics.

Информационные сигналы:

D0-D7 – 8-разрядные данные.

Сигналы управления передачей данных:

#STROBE – сигнал стробирования данных. Сигнал #STROBE низкого уровня сообщает приемнику, что данные источником выставлены, и их можно принимать.

#INIT – сигнал инициализации (сброса) периферийного устройства. Низкий уровень сигнала служит для установки регистров приемника в начальное состояние.

# SLCT IN – выбор. Сигнал сообщает приемнику, что он выбран и для него последует передача данных.

#AUTO FD – сигнал автоматического перевода строки. По этому сигналу печатающее устройство перемещает бумагу для печати на следующей строке.

Сигналы состояния периферийного устройства:

BUSY – сигнал занятости периферийного устройства. Сигнал BUSY высокого уровня говорит о том, приемник не может принимать данные. Приемник может быть занят в следующих случаях:

а) во время ввода данных;

б) во время печати;

в) в состоянии «ошибки»;

г) в автономном режиме и др.

Подача низкого уровня сигнала BUSY означает, что приемник может принимать данные.

#ACK – сигнал подтверждения принятия данных. Высокий уровень сигнала #ACK говорит о том, что приемник готов к приему данных. переход сигнала в ноль сообщает, что приемник принял предыдущие данные, но не готов принять новые.

SLCT – сигнал готовности приемника. Высокий уровень сигнала говорит о том, что приемник выбран и готов к приему данных.

#ERROR – сигнал ошибки приемника. Логический ноль означает ошибку в приемнике и требует прекращения передачи.

PE – сигнал конца бумаги. По этому сигналу источник прекращает передачу данных и переходит в состояние ожидания.

Обычно используются те или иные сигналы, в зависимости от назначения приемника. Для того чтобы обеспечить функционирование интерфейса, достаточно использовать только 8 бит данных (D0-D7), сигнал стробирования данных #STROBE, сигнал подтверждения #ACK и сигнал занятости приемника BUSY, либо сигнал готовности приемника SLCT.

Временные диаграммы сигналов при передаче информации по внешнему интерфейсу Centronics приведены на рис. Интервалы Т1-Т7 определяются применяемыми в передатчике и приемнике типами микропроцессорных элементов. Приемник готов принять данные, когда (BUSY = 0) & (#ACK = 1). Только в этом случае передатчик, выставив данные D0-D7, выдает сигнал стробирования данных #STROBE.

. Временные диаграммы цикла передачи данных по интерфейсу Centronics

Передача данных начинается с проверки готовности принтера — состояния линии Busy. Строб данных может быть коротким — доли микросекунды, и порт заканчивает его формирование, не обращая внимания на сигнал Busy. Во время строба данные должны быть действительными. Подтверждением приема байта (симво­ла) является сигнал Ack#, который вырабатывается после приема строба через не­определенное время (за это время принтер может выполнять какую-либо длитель­ную операцию, например прогон бумаги). Импульс Ack# является запросом принтера на прием следующего байта, его задействуют для формирования сигна­ла прерывания от порта принтера. Если прерывания не используются, то сигнал Ack# игнорируется и весь обмен управляется парой сигналов Strobe* и Busy. Свое состояние принтер может сообщить порту по линиям Select, Error*, PaperEnd — по ним можно определить, включен ли принтер, исправен ли он и есть ли бумага. Формированием импульса на линии lnit# принтер можно проинициализировать (при этом он очистит и весь свой буфер данных). Режимом автоматического пере­вода строки, как правило, не пользуются, и сигнал AutoLF* имеет высокий уровень. Сигнал Selectln* позволяет логически отключать принтер от интерфейса.

По назначению линии сигналы на контактах разъема интерфейса можно разделить на 4 группы:

  1. информационные сигналы D0-D7 данные;

  2. сигналы управления передачей данных;

  3. сигналы состояния периферийного устройства;

  4. заземление и питание.

Параллельный интерфейс Centronics ориентирован на передачу потока байт дан­ных к принтеру и прием сигналов состояния принтера. Этот интерфейс поддер­живается всеми LPT-портами компьютеров. Понятие «Centronics» относится как к набору сигналов и протоколу взаимодействия, так и к 36-контактному разъему на принтерах. Назна­чение сигналов интерфейса приведено в табл. 8.3, а временные диаграммы обмена с принтером показаны на рис. 8.5.

Стандартом предусматривается, что информационные сигналы и сигналы управления передачей данных формирует и выдает системное устройство (источник), а сигналы состояния – периферийное устройство (приемник). Рассмотрим назначение сигналов интерфейса Centronics.

Таблица 8.3. Сигналы интерфейса Centronics

Максимальная длина соединительного кабеля по стандарту — 1,8 м. Максимальная скорость обмена — 100 Кбайт/с.

Формирование и прием сигналов интерфейса Centronics производится путем записи и чтения выделенных для него портов ввода/вывода. В компьютере может использоваться три порта Centronics, обозначаемых LPT1 (базовый адрес 378), LPT2 (базовый адрес 278) и LPT3 (базовый адрес 3BC).

При сопряжении с компьютером через параллельный порт LPT какого-нибудь другого устройства (не принтера) назначение сигналов и порядок обмена могут быть другими. При разработке нестандартных внешних устройств, сопрягаемых с компьютером через Centronics, можно самостоятельно выбирать как назначение сигналов, так и протокол обмена.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]