Смекни!
smekni.com

Программатор микроконтроллеров и микросхем памяти (стр. 2 из 21)

Первую модификацию LPT-порта называют SPP (Standard Parallel Port). Он является однонаправленным портом, через который программно реализуется протокол обмена Centronics. Сигналы порта

выводятся на разъем DB-25S (розетка), установленный непосредственно на плате адаптера (или системной плате) или соединяемый с ней плоским шлейфом. Название и назначение сигналов разъема порта (таблица 1) соответствуют интерфейсу Centronics.

Сам адаптер параллельного интерфейса представляет собой набор регистров, расположенных в пространстве ввода/вывода. Регистры порта адресуются относительно базового адреса порта, стандартными значениями которого являются 3BCh, 378h и 278h. Порт может использовать линию запроса аппаратного прерывания, обычно IRQ7 или IRQ5. Порт имеет внешнюю 8-битную шину данных, 5-битную шину сигналов состояния и 4-битную шину управляющих сигналов,

BIOS поддерживает до четырех (иногда до трех) LPT-портов (LPT1-LPT4) своим сервисом-прерыванием INT 17h, обеспечивающим через них связь с принтером по интерфейсу Centronics. Этим сервисом BIOS осуществляет вывод символа (по опросу готовности, не используя аппаратных прерываний), инициализацию интерфейса и принтера, а также опрос состояния принтера.

Стандартный порт имеет три 8-битных регистра, расположенных по соседним адресам в пространстве ввода/вывода, начиная с базового адреса порта (BASE). Базовым адресом LPT-порта как правило бывает 378h.

Если в порт записать байт с единицами во всех разрядах, а на выходные

линии интерфейса через микросхемы с выходом типа "открытый коллектор" подать какой-либо код (или соединить ключами какие-то линии со схемной землей), то этот код может быть считан из того же регистра данных.

Таблица 1. Назначение сигналов.

Сигнал Направление Контакт Номер провода в кабеле Назначение
Strobe# выход 1 1 Строб данных.
Data [0:7] выход 2 - 9 3, 5, 7, 9, 11, 13,15, 17 Линии данных. Data 0 (контакт 2) – младший бит
Ack# вход 10 19 Acknowledge – сигнал подтверждения приема байта, запрос на прием следующего. Может использоваться для формирования запроса прерывания.
Busy вход 11 21 Занято. Прием данных возможен только при низком уровне сигнала
PaperEnd выход 12 23 Высокий уровень сигнализирует о конце бумаги.
Select выход 13 25 Сигнал о включении принтера.
AutoLF# вход 14 2 Автоматический перевод строки. При низком уровне сигнала, принтер, получив символ CR (Carriage Return – возврат каретки) автоматически выполняет и функцию LF (Line Feed – перевод строки)
Error# вход 15 4 Ошибка: конец бумаги, Off-Line (принтер не в связи с РС) или внутренняя ошибка принтера.
Init# выход 16 6 Инициализация – сброс принтера в режим параметров умолчания, возврат головки к началу строки.
Slct In# выход 17 8 Выборка принтера (низким уровнем сигнала). При высоком уровне сигнала принтер не воспринимает остальных сигналов интерфейса.
GND - 18-25 10, 12, 14, 16, 18, 20, 22, 24, 26 Общий провод интерфейса.

Таким образом, на многих старых моделях адаптеров можно реализовать порт ввода дискретных сигналов, однако выходным цепям передатчика информации придется "бороться" с выходным током логической единицы выходных буферов адаптера. Схемотехника ТТЛ такие решения не запрещает, но если внешнее устройство выполнено на микросхемах КМОП, их мощности может не хватить для "победы" в этом шинном конфликте.

На некоторых адаптерах портов выходной буфер отключается перемычкой на плате. Тогда порт превращается в обыкновенный порт ввода.

Status Контроллер порта имеет три 8-битовых регистра:

1) DR (Data Register) – 8-битовый регистр вывода данных, содержимое которого выводится на линии Data [0:7] разъема, но тот же регистр позволяет и принимать данные с линий Data [0:7]: если в регистр DR записать все единицы, а на контакты 2-9 разъема LPT-порта подать какой-либо код, то регистр DR запомнит этот код без всякого строба. Адрес регистра = базовому;

2) SR (Status Register) – 5-битовый регистр ввода состояния принтера, принимает сигналы Select, PaperEnd, Ack и Busy соответственно. Адрес регистра = базовому +1;

3) CR (Control Register) – 4-битовый регистр управления, вырабатывает сигналы Strobe#, Auto LF#, Init#, и Slct In#, соответственно. Подобно регистру данных позволяет и прием данных с разъема интерфейса

Стандартный порт асимметричен - при наличии 12 линий, нормально работающих на вывод, на ввод работают только 5 линий состояния.

Недостатки стандартного порта частично устраняли новые модификации LPT-порта, появившиеся в компьютерах PS/2.

Начиная с ПЭВМ модели PS/2 порты стали иметь возможность в режиме двунаправленного порта 1 (Type 1 parallel port). Такой порт кроме стандартного режима может работать в режиме ввода или двунаправленном режиме. Протокол обмена формируется программно, а для указания направления передачи в регистр управления порта введен специальный бит CR.5:0 - буфер данных работает на вывод, 1 - на ввод. Этот порт не следует путать с EPP. Главной особенностью этого порта является то, что теперь стало возможным считывать информацию с линий регистра данных LPT-порта. Для этого достаточно лишь установить в единицу бит 5 регистра состояния LPT-порта.

Теперь регистр данных LPT-порта может, как считывать, так и записывать информацию, производя полноценный обмен данными.

Из ранее изложенного следует отметить так же наличие в регистре управления LPT-порта четырёх линий, которые могут работать на вывод информации. Это сигналы: Strobe, Select, AutoLF, Init, из которых первые три инверсные. Эти сигналы можно будет использовать в качестве сигналов управления для разрабатываемого устройства связи, которые будут сопровождать передачу данных.

В настоящее время имеется большое количество и других модификаций LPT-порта поддерживающих более функциональные режимы передачи данных, такие как EPP, ECP. Но ознакомившись с ними, я пришёл к выводу, что они менее чем ранее рассмотренные режимы, подходят для реализации интерфейса с разрабатываемым контроллером сигнализации. По этой причине в своём проекте я их не рассматриваю.

На структурной схеме, представленной на чертеже АКВТ.230101.ДП00.14Э1, показан программатор, подключённый в компьютеру и разбитый на блоки.

Формирователь сигналов IBM представляет собой шинный формирователь, который пропускает сигналы с шины данных IBM (выходные сигналы регистра данных последовательного порта) на внутреннюю шину программатора, когда сигнал XA имеет нулевое значение. По положительному фронту сигнала XA в регистре управляющих сигналов запоминаются управляющие сигналы, которые поступают по той же шине IBM. Четыре управляющих сигнала (RD, WR, XA и OUT_HI) являются выходными сигналами регистра управления последовательного порта.

Информация для прожигания ячейки ПЗУ (адрес и данные), поступающая с шины данных IBM, запоминается в регистре адреса и регистре данных. Распределение информации по регистрам осуществляется путем программирования соответствующих управляющих сигналов.

Сигналы с выходов регистра адреса и регистра данных подаются непосредственно на микросхему ПЗУ. Кроме того, на нее поступают от одного до четырех сигналов с управляемых блоков питания. Напряжения на выходах этих блоков питания задаются информацией, записываемой в соответствующие регистры. Эта информация поступает с IBM точно так же, как данные для прожигания ячейки ПЗУ (через шинный формирователь IBM), а управляющие сигналы обеспечивают запись этой информации в соответствующие регистры.

Для чтения информации из ячейки ПЗУ сначала из IBM поступает адрес ячейки, который запоминается в регистре адреса, а затем управляющие сигналы открывают формирователь сигналов данных ПЗУ, пропуская информацию с шины данных ПЗУ на внутреннюю шину программатора. Сигнал MODE_OUT при открытом формирователе сигналов данных ПЗУ должен иметь единичное значение, отключающее формирователь сигналов IBM от внутренней шины программатора.

Чтение байта данных с внутренней шины программатора в IBM осуществляется через коммутатор в 2 этапа (по 4 бита), т.к. у последовательного порта IBM только 5 входных сигналов (входы регистра состояния). Подключение к выходу коммутатора старшего полубайта осуществляется при единичном значении сигнала OUT_HI, а при нулевом значении этого сигнала на выход коммутатора проходят сигналы младшего полубайта.

Формирователь сигналов адреса предназначен для считывания с ПЗУ младшего байта адреса. Это требуется для микросхем ПЗУ с общей 16-разрядной шиной для адреса и данных (например, КМ1801РР1). Шина адреса и данных этих микросхем является мультиплексированной (т.е. по ней сначала передается адрес, затем данные) и двунаправленной (при чтении из микросхемы данные передаются в обратную сторону). Для таких микросхем шина адреса/данных подключается к сигналам A0...A7, D0...D7 программатора, которые тоже являются двунаправленными.

Формирователь сигнала KROSS предназначен для идентификации кросс-платы. Сигнал KROSS, поступающий на формирователь с кросс-платы, скоммутирован на каждой кросс-плате с одним из разрядов адреса и поэтому повторяет значение этого разряда. Записывая в регистр адреса адрес с нулевым битом в определенном разряде, программа проверяет, соответствует ли подключенная кросс-плата микросхеме ПЗУ, выбранной пользователем.


3 ОБОСНОВАНИЕ СХЕМЫ ЭЛЕКТРИЧЕСКОЙ ПРИНЦИПИАЛЬНОЙ