Адаптер параллельного интерфейса представляет собой набор регистров, расположенных в пространстве ввода/вывода. Регистры порта адресуются относительно базового адреса порта, стандартными значениями которого являются 3BCh, 378h и 278h. Порт имеет внешнюю 8-битную шину данных, 5-битную шину сигналов состояния и 4-битную шину управляющих сигналов. BIOS поддерживает до четырех LPT-портов (LPT1-LPT4) своим сервисом – прерыванием INT 17h, обеспечивающим через них связь с принтерами по интерфейсу Centronics. Этим сервисом BIOS осуществляет вывод символа, инициализацию интерфейса и принтера, а также опрос состояния принтера.
Традиционный порт SPP (Standard Parallel Port) является однонаправленным портом, на базе которого программно реализуется протокол обмена Centronics. Порт обеспечивает возможность вырабатывания запроса аппаратного прерывания по импульсу на входе Аск#. Сигналы порта выводятся на разъем DB-25S (розетка), установленный непосредственно на плате адаптера (или системной плате) или соединяемый с ней плоским шлейфом.
Стандартный порт имеет три 8-битных регистра, расположенных по соседним адресам в пространстве ввода/вывода, начиная с базового адреса порта (BASE).
Data Register (DR) – регистр данных, адрес = BASE. Данные, записанные в этот порт, выводятся на выходные линии интерфейса (контакты разъема: 2 – 9). Данные, считанные из этого регистра, в зависимости от схемотехники адаптера соответствуют либо ранее записанным данным, либо сигналам на тех же линиях.
Status Register (SR) – регистр состояния, представляющий собой 5-битный порт ввода сигналов состояния принтера (биты SR.4-SR.7), адрес = BASE+1. Бит SR.7 инвертируется – низкому уровню сигнала соответствует единичное значение бита в регистре, и наоборот.
Назначение бит регистра состояния (в скобках даны номера контактов разъема):
SR.7 – Busy – инверсные отображения состояния линии Busy (11);
SR.6 – АСК (Acknowledge) – отображения состояния линии Аск# (10);
SR.5 – РЕ (Paper End) – отображения состояния линии Paper End (12);
SR.4 – Select – отображения состояния линии Select (13). Единичное значение соответствует сигналу о включении принтера;
SR.3–Error – отображения состояния линии Error (15);
SR.2 – PIRQ – флаг прерывания по сигналу Аск# (только для порта PS/2). Бит обнуляется, если сигнал Аск# вызвал аппаратное прерывание. Единичное значение устанавливается по аппаратному сбросу и после чтения регистра состояния.
SR[1-0] – зарезервированы.
Control Register (CR) – регистр управления, адрес = ВА5Е+2. Как и регистр данных, этот 4-битный порт вывода допускает запись и чтение (биты 0-3), но его выходной буфер обычно имеет тип открытый коллектор. Это позволяет более корректно использовать линии данного регистра как входные при программировании их в высокий уровень. Биты 0, 1, 3 инвертируются – единичному значению в регистре соответствует низкий уровень сигнала, и наоборот.
Назначение бит регистра управления: CR[7-6] – зарезервированы.
CR.5 – Direction – бит управления направлением передачи (только для портов PS/2). Запись единицы переводит порт данных в режим ввода.
CR.4 – ACKINTEN (Ack Interrupt Enable) – единичное значение разрешает прерывание по спаду сигнала на линии Ackff – сигнал запроса следующего байта.
CR.3 – Select In – единичное значение бита соответствует низкому уровню на выходе Selecting (17) – сигналу, разрешающему работу принтера по интерфейсу Centronics.
CR.2 – Init – нулевое значение бита соответствует низкому уровню на выходе Imt# (16) – сигнал аппаратного сброса принтера.
CR.1 – Auto LF – единичное значение бита соответствует низкому уровню на выходе Auto LF# (14) – сигналу на автоматический перевод строки (LF – Line Feed) по приему байта возврата каретки (CR – Carriage Return).
CR.0 –Strobe – единичное значение бита соответствует низкому уровню на выходе Strobeff (1) – сигналу стробирования выходных данных. Запрос аппаратного прерывания (обычно IRQ7 или IRQ5) вырабатывается по отрицательному перепаду сигнала на выводе 10 разъема интерфейса (Аск#) при установке CR.4 = 1. Прерывание вырабатывается, когда принтер подтверждает прием предыдущего байта.
Стандартный порт сильно асимметричен – при наличии 12 линий (и бит), нормально работающих на вывод, на ввод работает только 5 линий состояния. Если необходима симметричная двунаправленная связь, на всех стандартных портах работоспособен режим полубайтного обмена – Nibble Mode. В этом режиме, называемым также и Hewlett Packard Bitronics, одновременно передаются 4 бита данных, пятая линия используется для квитирования.
В процессе начального тестирования BIOS проверяет наличие параллельных портов по адресам 3BCh, 378h и 278h и помещает базовые адреса обнаруженных портов в ячейки BIOS DATA AREA 0:0408h, 040Ah, 040Сh, 040Еh. Эти ячейки хранят адреса портов с логическими именами LPT1-LPT4. В ячейки 0:0478h, 0479h, 047Аh, 047Вh заносятся константы, задающие выдержку тайм-аута для этих портов.
Поиск портов обычно ведется по базовому адресу. Если считанный байт совпал с записанным, считается, что найден LPT-порт, и его адрес помещают в ячейку BIOS DATA AREA. Адрес порта LPT4 BIOS самостоятельно установить не может, поскольку в списке стандартных адресов поиска имеются только три вышеуказанных.
Обнаруженные порты инициализируются – записью в регистр управления формируется и снимается сигнал Initff, после чего записывается значение 00h, соответствующее исходному состоянию сигналов интерфейса. Программное прерывание BIOS INT 17h обеспечивает следующие функции поддержки LPT-порта:
00h – вывод символа из регистра AL по протоколу Centronics. Данные помещаются в выходной регистр и после готовности принтера формируется строб.
01h – инициализация интерфейса и принтера.
02h – опрос состояния принтера.
При вызове INT 17h номер функции задается в регистре АН, номер порта – в регистре DX (0 – LPT1, 1 – LPT2...). При возврате после любой функции регистр АН содержит код состояния – биты регистра состояния SR[7:3] (биты 6 и 3 инвертированы) и флаг тайм-аута в бите 0. Флаг тайм-аута устанавливается при неудачной попытке вывода символа. Недостатки стандартного порта частично устраняют новые типы портов, появившихся в компьютерах семейства PS/2.
Двунаправленный порт (Type 1 parallel port) – интерфейс, введенный с PS/2. Такой порт кроме стандартного режима может работать в режиме ввода или двунаправленном. Протокол обмена формируется программно, а для указания направления передачи в регистр управления порта введен специальный бит: при CR.5=0 буфер данных работает на вывод, при CR.5=1 – на ввод.
Порт с прямым доступом к памяти (Туре 3 DMA parallel port) применялся в PS/2 моделей 57, 90, 95. Этот тип был введен для повышения пропускной способности и разгрузки процессора при выводе на принтер. Программе, работающей с данным портом, требовалось только задать блок данных в памяти, подлежащих выводу, и вывод по протоколу Centronics производился без участия процессора.
Программатор собран на двусторонней печатной плате размерами 140x140 мм. Можно собрать программатор и на макетной плате навесным монтажом. Учтите, что конденсаторы С4, С5 и кварцевый резонатор ZQ1 должны быть расположены как можно ближе к контактам 18, 19 панели XS2. Свободные входы микросхем DD1 (выводы 13–15), DD2 (вывод 8) и DD7 (выводы 15, 17) необходимо соединить с их общим выводом или выводом питания. Это повысит помехоустойчивость прибора.
Все цифровые микросхемы можно заменять их функциональными аналогами серий К555, КР1533 или импортными. Транзисторы VT1, VT2 – любые маломощные соответствующей структуры, желательно с минимальным падением напряжения на участке коллектор–эмиттер открытого транзистора.
Подстроечные резисторы R19, R21 – СПЗ-19А. Наборы резисторов DR1–DR3 – НР1-4-9М могут быть заменены на НР1-4-8М, на зарубежные серии 9А или на соответствующее число обычных малогабаритных резисторов указанных на схеме номиналов. Резисторы R1–R12 можно разместить внутри корпуса вилки Х2.
Панели XS1 и ХS2 должны выдерживать многократную установку и изъятие микросхем. Лучше всего применить ZIF-панели (с нулевым усилием установки), предназначенные для микросхем с расстоянием между рядами контактов 7,5 мм (XS1) и 15 мм (XS2). Годятся и универсальные панели, допускающие установку как "узких", так и "широких" микросхем.
Учитывая, что ZIF-панели в несколько раз дороже всех остальных деталей программатора, вместе взятых, на плате предусмотрены контактные площадки для установки обычных, желательно с цанговыми контактами. Применять самые дешевые панели с плоскими контактами нежелательно. После многочисленных замен микросхемы такие контакты теряют надежность.
1.5. Выбор серии интегральных микросхем.
Выбор серии ИС для селектора выбора программ будем производить по матрице параметров. Выделим 3 наиболее подходящие серии: К155, К531 и К555. Качество серий будем оценивать по следующим параметрам: время задержки, потребляемый ток, коэффициент разветвления, коэффициент помехоустойчивости, условия эксплуатации (диапазон температур, вибрации, многократные удары) и стоимости. Определим коэффициенты значимости параметров и сведем все данные в таблицу 3.
Таблица 3.
Серия
Тип логики
Параметры
tзад
Iпотр
Кразв.
Кпом
Условия эксплуатации
Стоимость
DT
Вибрации
Удары
К155
ТТЛ
30
60
10
0.3
80
10
20
1.2
К531
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10