Пояснительная записка (1231534), страница 6
Текст из файла (страница 6)
Шестибитовое управляющее слово записывается в DD3 через регистр с адресом BASE + 2 при помощи команды WRITE_CONTROL#. Биты с 0 по 3подаются на выход разъема и образуют группу управления. Некоторые35биты инвертируются микросхемами с открытыми коллекторами на выходе (DD6 и DD7). Все выходные линии подключены к питанию +5 В черезрезисторы 4,7 кОм. Состояние этих линий считывается через регистр садресом BASE + 2 через DD4 посредством команды READ_CONTROL#.Четвертый бит управляющего байта разрешает прерывание, а пятый битоткрывает или закрывает выход DD1.
Состояние пяти контактов разъемапорта (группа состояния) компьютер считывает через DD4 с помощьюкоманды READ_STATUS# через регистр с адресом BASE + 1. Входы линии подключены к питанию +5 В через резисторы 4,7 кОм, один вход инвертируется.В первых конструкциях IBM PC (International Business MachinesPersonal Computer – международная бизнес машина персональный компьютер) контакт «выход разрешен» DD1 соединялся с «землей» для постоянного открывания выходов, сто и делало SPP однонаправленным.Начиная с IBM PS/2 (Personal System – персональная система), этот контакт соединили с пятым битом регистра управления DD3, и порт сталдвунаправленным. Следует отметить, что многие параллельные порты,поставляемые со встроенными картами ввода/вывода, двунаправленные.
Для любого контакта следует избегать короткого замыкания и/илисоединения с шиной питания.На листе 3 графического материала представлена логическаяструктура SPP. Контактами порта образованно три группы: данных,управления и состояния.На внешние устройства данные от PC на внешние устройства посылаются по восьмибитой, так называемой, группе данных, которая ассоциируется с байтом в адресном пространстве ввода/вывода процессоров х86 (Intel 80x86), имеющей базовый адрес: BASE.36Контроль внешнего устройства осуществляется группой управления, имеющей четыре выходные линии, три из которых инвертированы(Strobe#, Auto LF#, Select In# и Init).
Адрес группы управления: BASE + 2.Для получения текущего состояния внешнего устройства PC может использовать группу состояния, имеющую адрес: BASE + 1. Онавключает в себя пять линий (Error#, Select, РЕ, Аck# и Busy).2.5.2 Регистры SPP-порта.Для управления работой и определения состояния подключенныхк SPP-порту устройств, так же для программной реализации протоколапередачи данных SPP-порт имеет три восьмибитных регистра, расположенных в пространстве ввода-вывода по соседним адресам, начиная сбазового адреса порта BASE (3BCh, 378h или 278h).Data Register (DR) - регистр данных, адрес: BASE. Записанные вэтот регистр данные выводятся на контакты группы данных Data[7:0], асчитанные данные либо соответствуют выведенным, либо данным навходе порта, поступающим с внешнего устройства, в зависимости отнапраления передачи шины данных порта.Status Register (SR) - регистр состояния (только чтение), адрес:ВАSЕ+1.
Регистр отображает пяти бит состояния принтера и флаг прерывания.Назначение бит регистра состояния (в скобках даны альтернативные названия разрядов):-SR.7 - BUSY (nBusy) – инверсный, отображеает состояниялинии Busy, присутствие низкого логического уровня является разрешением на вывод очередного байта;-SR.6 - ACK (nAck) - отображение состояния линии Ack#;37-SR.5 - РЕ (РЕггог) - отображение состояния линии Paper End.При отсутствии бумаги в принтере устанавливается в единичное значение;-SR.4 - Select - отображение состояния линии Select. Сигналомо включении принтера является наличие высокого уровня в линии;-SR.3 - Error (nFault) - отображение состояния линии Error#.При любой ошибке принтера устанавливается в нулевое значение;-SR.2 - PIRQ - флаг прерывания по сигналу Ack#.
Бит обнуля-ется, если сигнал Ack# вызвал аппаратное прерывание. Единичное значение устанавливается по аппаратному сбросу и после чтения регистрасостояния;-SR [1, 0] - зарезервированы.Control Register (CR) - регистр управления, имеющий адрес=BASE+2, допускающий как запись, так и чтение.
Из восьми бит регистра на порт выведены только четыре (биты 0-3). Выходной буферобычно имеет тип «открытый коллектор». Это позволяет корректно использовать линии данного регистра как входные при программированииих в высокий уровень. Биты 0, 1, 3 инвертируются.Назначение бит регистра управления:-CR [7:6] – зарезервированы;-CR.5 - Dir (direction) – бит управления направлением переда-чи (только для портов PS/2 и портов, поддерживающих стандарт IEEE1284). Установка этого бита в единичное состояние переводит DR в режим ввода. При чтении регистра CR, состояние бита не определено;-CR.4 - IRQE (ackIntEn) - разрешение прерывания.
Единичноезначение разрешает прерывание по спаду сигнала на линии Ack# - сигнал подтверждения приема и запроса следующего байта;38-CR.3 - SELIN (Selectin) – сигнал разрешения работы принтерапо интерфейсу Centronics, выход Select In# инверсный;-CR.2 - INIT (ninit) - сигнал аппаратного сброса принтера Init#,не является инверсным, но активным является низкий логический уровень;-СR.1 - AUTO LF (autofd) - единичное значение бита соответ-ствует низкому уровню на выходе Auto LF# - сигналу на автоматическийперевод строки (LF - Line Feed) по приему байта возврата каретки (CR).Иногда называется AutoFD или AutoFDXT;-CR.0 - STRB (strobe) – строб выходных данных, Strobe#, явля-ется инверсным;Если СR.4=1, то по отрицательному перепаду Ack# происходитзапрос аппаратного прерывания IRQ7 или IRQ5, в зависимости от базового адреса. Защитой от ложных прерываний является соединение линии Ack# с +5 В через резистор.
Данное прерывание не обслуживается ине используется basic input/output system (BIOS - базовая система вводавывода).2.5.3 Интерфейс CentronicsПонятие Centronics относится как к протоколу обмена даннымимежду принтером и компьютером, так и к разъёмам, устанавливаемымна принтерах и ПК. Со стороны ПК установлен разъём под розетку DB25,а со стороны принтера – DB36. Распинока контактов приведённых вышерозеток представлена на листе 3 графического материала. ИнтерфейсCentronics ориентирован на передачу данных принтеру и получении информации о его состоянии.
Он поддерживается всеми LPT-портами ибольшинством принтеров.39Временная диаграмма передачи данных по протоколу Centronicsпредставлена на листе 3 графического материала.Начинается передача данных с проверки готовности принтера состояния линии Busy, низкий уровень этого сигнала информирует о готовности принтера к приему байта данных.
Байт данных выставляетсяна шину данных и затем формируется Strobe#, длительность которогопревышает длительность переходных процессов в линиях данных интерфейса, и он может быть завершён до изменения сигнала Busy. Подтверждением приема байта является низкий уровень сигнала Ack#, который вырабатывается после приема данных по заднему фронту стробачерез неопределенное время. Так же сигнал Ack# является запросом напередачу следующего байта данных и задействуется для формированияпрерывания от принтера. Если прерывания не используются, то обменданными осуществляется по сигналам Strobe# и Busy, а состояние принтера – по оставшимся.Сигналом Init# производится инициализация принтера, при этомон очищает весь свой буфер данных, а сигнал SelectIn# позволяет логически отключать принтер от интерфейса.С точки зрения программной реализации для вывода байта по интерфейсу Centronics с указанием требуемого количества шинных операций процессора потребуется выполнить следующие действия:1.Вывод байта в регистр данных (1 цикл IOWR#);2.Ввод из регистра состояния и проверка готовности устройства(сигнал Busy).
Этот шаг зацикливается до получения готовности или досрабатывания программного тайм-аута (минимум 1 цикл IORD#);3.По получению готовности выводом в регистр управленияустанавливается строб данных, а следующим выводом строб снимается.Обычно, чтобы переключить только один бит (строб), регистр управления предварительно считывается, что к двум циклам IOWR# добавляет40еще один цикл IORD#. Видно, что для вывода одного байта требуется 45 операций ввода-вывода с регистрами порта (это если готовность обнаружена по первому чтению регистра состояния).Параллельный порт не позволяет организовать высокоскоростнойобмен данными, выполнение команд обращения к регистрам порта переводит процессор в циклы ожидания примерно на одну микросекунду,что при полной загрузке процессора позволяет достичь скорости передачи данных лишь 100 - 150 Кбайт/с.Для организации ввода информации в SPP–порт можно использовать следующий метод.
Если в порт данных записать байт с единицамиво всех разрядах и на выходные линии интерфейса через микросхемы свыходом типа «открытый коллектор» подать кокой-либо код, то его можно будет считать простой операцией чтения с порта, но передатчик должен выдерживать такие нагрузки на выходные цепи, и для этого частоиспользуется согласующие резисторы, сопротивлением до 50 Ом.2.5.4 Конфигурирование LPT-портовКонфигурирование параллельного порта осуществляется в дваэтапа: предварительное (Setup) и оперативное переключение режимовработы, причём оперативное переключение возможно только в пределахрежимов, определённых при конфигурировании. Этим обеспечиваетсяблокировка ложных переключений, связанных с нарушениями нормальной работы программ.Параметры, подлежащие конфигурированию:-Базовый адрес - при инициализации BIOS присваивает LPT-портам базовые адреса 3BCh, 378h или 278h, и логические имена LPT1,LPT2, LPT3, причём адрес 3BCh обычно присваивается портам, распо-41ложенным на платах расширения, а на системной плате обычно присваивается адрес 378h и может переключаться на 278h.-Используемая линия запроса прерывания: для LPT1 - IRQ7,для LPT2 - IRQ5.