пояснительная записка (1231539), страница 5
Текст из файла (страница 5)
Эти данные образуют группу. Они считываются компьютером из того же регистра через DD2 с помощью команды READ_DATA#. Шести битовое управляющее слово записывается в DD3 через регистр с адресом BASE + 2 при помощи команды WRITE_CONTROL#. Биты с 0 по 3 подаются на выход разъема и образуют группу управления. Некоторые биты инвертируются микросхемами с открытыми коллекторами на выходе (DD6 и DD7). Все выходные линии подключены к питанию +5 В через резисторы 4,7 кОм. Состояние этих линий считывается через регистр с адресом BASE + 2 через DD4 посредством команды READ_CONTROL#. Четвертый бит управляющего байта разрешает прерывание, а пятый бит открывает или закрывает выход DD1. Состояние пяти контактов разъема порта (группа состояния) компьютер считывает через DD4 с помощью команды READ_STATUS# через регистр с адресом BASE + 1. Входы линии подключены к питанию +5 В через резисторы 4,7 кОм, один вход инвертируется.
В первых конструкциях IBM PC (International Business Machines Personal Computer – международная бизнес машина персональный компьютер) контакт «выход разрешен» DD1 соединялся с «землей» для постоянного открывания выходов, сто и делало SPP однонаправленным. Начиная с IBM PS/2 (Personal System – персональная система), этот контакт соединили с пятым битом регистра управления DD3, и порт стал двунаправленным. Следует отметить, что многие параллельные порты, поставляемые со встроенными картами ввода/вывода, двунаправленные. Для любого контакта следует избегать короткого замыкания и/или соединения с шиной питания.
На листе 3 графического материала представлена логическая структура SPP. Контактами порта образованно три группы: данных, управления и состояния.
На внешние устройства данные от PC на внешние устройства посылаются по восьмибитой, так называемой, группе данных, которая ассоциируется с байтом в адресном пространстве ввода/вывода процессоров х86 (Intel 80x86), имеющей базовый адрес: BASE.
Контроль внешнего устройства осуществляется группой управления, имеющей четыре выходные линии, три из которых инвертированы (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#;
-
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 и портов, поддерживающих стандарт IEEE 1284). Установка этого бита в единичное состояние переводит DR в режим ввода. При чтении регистра CR, состояние бита не определено;
-
CR.4 - IRQE (ackIntEn) - разрешение прерывания. Единичное значение разрешает прерывание по спаду сигнала на линии Ack# - сигнал подтверждения приема и запроса следующего байта;
-
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-портами и большинством принтеров.
Временная диаграмма передачи данных по протоколу Centronics представлена на листе 3 графического материала.
Начинается передача данных с проверки готовности принтера - состояния линии Busy, низкий уровень этого сигнала информирует о готовности принтера к приему байта данных. Байт данных выставляется на шину данных и затем формируется Strobe#, длительность которого превышает длительность переходных процессов в линиях данных интерфейса, и он может быть завершён до изменения сигнала Busy. Подтверждением приема байта является низкий уровень сигнала Ack#, который вырабатывается после приема данных по заднему фронту строба через неопределенное время. Так же сигнал Ack# является запросом на передачу следующего байта данных и задействуется для формирования прерывания от принтера. Если прерывания не используются, то обмен данными осуществляется по сигналам Strobe# и Busy, а состояние принтера – по оставшимся.
Сигналом Init# производится инициализация принтера, при этом он очищает весь свой буфер данных, а сигнал SelectIn# позволяет логически отключать принтер от интерфейса.
С точки зрения программной реализации для вывода байта по интерфейсу Centronics с указанием требуемого количества шинных операций процессора потребуется выполнить следующие действия:
1. Вывод байта в регистр данных (1 цикл IOWR#);
2. Ввод из регистра состояния и проверка готовности устройства (сигнал Busy). Этот шаг зацикливается до получения готовности или до срабатывания программного тайм-аута (минимум 1 цикл IORD#);
3. По получению готовности выводом в регистр управления устанавливается строб данных, а следующим выводом строб снимается. Обычно, чтобы переключить только один бит (строб), регистр управления предварительно считывается, что к двум циклам IOWR# добавляет еще один цикл IORD#. Видно, что для вывода одного байта требуется 4-5 операций ввода-вывода с регистрами порта (это если готовность обнаружена по первому чтению регистра состояния).
Параллельный порт не позволяет организовать высокоскоростной обмен данными, выполнение команд обращения к регистрам порта переводит процессор в циклы ожидания примерно на одну микросекунду, что при полной загрузке процессора позволяет достичь скорости передачи данных лишь 100 - 150 Кбайт/с.
Для организации ввода информации в SPP–порт можно использовать следующий метод. Если в порт данных записать байт с единицами во всех разрядах и на выходные линии интерфейса через микросхемы с выходом типа «открытый коллектор» подать кокой-либо код, то его можно будет считать простой операцией чтения с порта, но передатчик должен выдерживать такие нагрузки на выходные цепи, и для этого часто используется согласующие резисторы, сопротивлением до 50 Ом.
2.5.4 Конфигурирование LPT-портов
Конфигурирование параллельного порта осуществляется в два этапа: предварительное (Setup) и оперативное переключение режимов работы, причём оперативное переключение возможно только в пределах режимов, определённых при конфигурировании. Этим обеспечивается блокировка ложных переключений, связанных с нарушениями нормальной работы программ.
Параметры, подлежащие конфигурированию:
-
Базовый адрес - при инициализации BIOS присваивает LPT-портам базовые адреса 3BCh, 378h или 278h, и логические имена LPT1, LPT2, LPT3, причём адрес 3BCh обычно присваивается портам, расположенным на платах расширения, а на системной плате обычно присваивается адрес 378h и может переключаться на 278h.
-
Используемая линия запроса прерывания: для LPT1 - IRQ7, для LPT2 - IRQ5. Обычно прерывания принтера не используются, но для скоростных режимов работа по прерыванию может снизить нагрузку на процессор, повысив тем самым производительность системы.
-
Использование канала DMA для режимов ЕСР и Fast Centronics - разрешение и номер канала DMA.
Режимы работы порта:
-
SPP однонаправленный стандартный режим;
-
PS/2, или bi-directional - как и SPP, только с возможностью реверса канала данных, установкой CR.5=1;
-
Fast Centronics - аппаратное формирование протокола Centronics с возможностью использования DMA;
-
ЕРР - в зависимости от использования регистров порт работает в режиме SPP или ЕРР;
-
ЕСР - по умолчанию включается в режим SPP или PS/2, может переводиться в любой режим ЕСР, но перевод в ЕРР не гарантируется;
-
ЕСР+ЕРР - то же, что и ЕСР, но возможен перевод в ЕРР.
2.6 Макетная плата LPT-КР580ВВ55А
Для практического изучения режимов работы и методов взаимодействия с микросхемой КР580ВВ55А было создана специальная макетная плата, принципиальную и монтажную схемы которой можно увидеть на листе 3 графического материала. Там же расположены фотографии реализованной платы. Необходимость создания возникла из-за неудобства использования беспечного макетного поля.
Управляющие входы A0, A1, WR, RD соединены с регистром контроля LPT-порта, линия Data – с линией Data, то есть два параллельных интерфейса легко были сопряжены между собой. Так как стандартный LPT-порт не имеет линии питания, оно было получено с внешнего источника (телефонного блока питания) посредством штыревого разъёма XP1. Оставшиеся линии управления и порты ввода\вывода разведены на две колодки XS1 и XS2. На XS1 выведена PA, PB0..PB3, SR и GND; на XS2 – GND, CS, PB4..PB7, PC.
Печатная плата была разработана в среде программных инструментов OrCAD.
OrCAD - пакет компьютерных программ, предназначенный для автоматизации проектирования электроники. Используется в основном для создания электронных версий печатных плат для производства печатных плат, а также для производства электронных схем и их моделирования.
Описание работы и методы проектирования печатных плат подробно описана в учебном пособии «Проектирование микропроцессорных систем» [5]. В результате получилась печатная плата, имеющая два слоя.
Изготавливалась печатная плата лабораторных условиях. Сначала вырезаем фольгированный текстолит по размеру бедующей платы (можно немного больше), затем зачищаем и обезжириваем её поверхность. Переносим шаблон печатной платы на глянцевую бумагу с помощью лазерного принтера, и затем с этой бумаги, посредством утюжения, переносим его на фольгированный текстолит.
Ненужные участки меди (оставшиеся незакрашенными) необходимо растворить в специальном растворе. Был использовал раствор хлорного железа (есть и другие способы).
После растворения незакрашенных участков платы смывается слой тонера растворителем и сверлятся отверстия для вставляемых элементов.
Во избежание окисления медных дорожек их необходимо залудить. При изготовлении этой платы лужение производилось с помощью припоя (есть и другие способы).
Так как плата двусторонняя, эти процедуры проводились для каждой стороны, причём при травлении одной стороны, другая была заклеена клейкой бумагой.
Последним этапом изготовления печатной платы был монтаж деталей и очистка поверхности платы от канифоли.