Контакты:
Skype - forwardbiznes
Mail.ru - SmittWesson
E-mail - company@list.ru
Рад нашей встрече.
Надеюсь Вам здесь понравится.

Электроника

Регулятор частоты VFD-F
VFD-F - опыт эксплуатации
Выключаем всё щелчком мыши
Расширитель LPT-порта
Частотомер
Вечная лампочка

Универсальный расширитель LPT - порта.

 

В недалёком прошлом, LPT-порт широко использовался для обмена данными между такими устройствами как принтер, сканер, графопостроитель. С появлением USB-шины, ситуация кардинально изменилась. USB-разъём имеет меньшие размеры и более высокую скорость передачи информации.

К недостаткам USB, с точки зрения самостоятельной разработки и изготовления устройств на его основе, является небольшие размеры микросхем (расстояние между выводами 0,3 - 0,5 мм) и их дороговизна. (розничная цена составляет $10 - $15).

В этом плане, LPT-порт имеет неоспоримые преимущества перед USB.

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

Но, присмотритесь к современным ПК. Если он и не выведен на заднюю панель в виде разъёма, то обязательно имеется коннектор для подключения шлейфа.

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

В связи с этим, можно предположить, что стандарт "Centronics" просуществует ещё не менее 10 - 15 лет. К тому же на руках у людей остаётся огромный парк старых компьютеров не имеющих USB, но ещё вполне работоспособных.

Структура LPT-порта.

Рассмотрим структуру параллельного порта LPT1. На рис. 1 приведена функциональная схема, а в таблице 1 - разводка его сигналов применительно к принтерам.

 

LPT-порт PC.

Рис.1

табл. 1

Наименование сигнала Источник сигнала Номер контакта соединителя Назначение сигнала
PC Принтер
/AUTOFEED PC 14 14

Низкий уровень сигнала обеспечивает перемещение бумаги на одну строку

INITIALIZE PRINTER PC 16 31

Низкий уровень сигнала обеспечивает установку принтера в исходное состояние и очистку его буферной памяти.

BUSY Принтер 11 11

Высокий уровень сигнала указывает PC, что принтер не может принимать данные.

/ERROR Принтер 15 32

Низкий уровень сигнала указывает PC, что принтер установлен в режим "OF LINE", нарушена его работоспособность, или отсутствует бумага.

SELECT INPUT PC 17 36

Низкий уровень сигнала разрешает работу принтера.

GND - 18-25 16, 19-30, 33

Схемная земля

/STROBE PC 1 1

Принтер должен принимать данные из PC.

DATA0 - DATA7 PC 2 - 9 2 - 9

Информационные разряды байта данных

/ASKNLG Принтер 10 10

Низкий уровень сигнала указывает PC, что принтер готов к приёму очередного байта.

PAPER END Принтер 12 12

Высокий уровень сигнала указывает PC на отсутствие бумаги в принтере.

SELECT Принтер 13 13

Высокий уровень сигнала указывает PC на готовность принтера к работе.

В адресном пространстве компьютера LPT1 обычно имеет стандартные адреса, устанавливаемые в BIOS:

- 378H - адрес записи или считывания 8 битов данных;

- 37AH - адрес для посылки управляющих сигналов из ПК;

- 379H - адрес для приёма сигналов от управляемого устройства.

Используя порт 378H, можно выставить 8-битовое значение на шину данных и тем самым подавать управляющие сигналы на внешнее устройство. Также порт 378H может использоваться для проверки только что записанного в него байта информации.

Биты порта 37AH можно использовать в качестве управляющих сигналов для подключенного к параллельному порту устройства, а биты порта 379H - в качестве приёмных сигналов, то есть чтобы анализировать отклик подключенного устройства.

 

LPT-порт поддерживает два вида протоколов - ECP/EPP и EPP. Нас будет интересовать только двунаправленный 8-и разрядный асинхронный режим EPP.

Рассмотрим сигналограммы работы порта в этом режиме на примере "универсального расширителя LPT порта", принципиальная схема которого показана на рис.2.

рис.2

Обмен данными происходит в следующем порядке: в момент записи адреса, в порт 378H, информация появляется на магистрали данных D0 - D7, после чего формируется сигнал стробирования адреса - /ADDRSTB (см. диагр.1).

 

 

диагр. 1

 

Аналогичным образом происходит обмен данными при чтении /записи в регистр данных, с тем отличием, что при записи  в порт внешнего устройства сигнал /WRITE принимает нулевое значение.

Длительность этих сигналов довольно мала и не превышает нескольких десятков наносекунд. Некоторые серии микросхем  (например 580 и 561) не обладают таким быстродействием. Для увеличения длительности сигналов поступающих от ПК служит вход /WAIT. При появлении на этом входе сигнала высокого уровня обмен данными затормаживается до момента появления на нём сигнала низкого уровня (см. диагр. 2). При этом данные и сигналы управления остаются на магистрали вплоть до момента его снятия (вне пунктира, показана длительность импульса сформированного без участия сигнала /WAIT).  

диагр. 2

 

Для этой цели служит мультивибратор собранный на элементах DD2.1, DD8.1.

Адрес записывается в регистр-защёлку DD3 и сохраняется в нём до тех пор пока не поступит следующий сигнал /ADDRSTB.

На внешнюю магистраль, адрес и данные поступают через шинный формирователь DD4.

Микросхемы некоторых серий, принимают сигналы записи и чт6ения, как два различных. Для этих целей, на элементах DD1.3, DD1.4 и DD9.1 собран /RD - /WR формирователь.

В принципе, для подключения дополнительных устройств к порту LPT, достаточно четырёх этих микросхем (элементы DD9.9 и DD9.2 заменяются высвободившимися элементами DD2.2, DD2.3).

Универсальность данного расширителя заключается в том, что он имеет синхронный приёмопередающий последовательный канал (СППК).

Этот канал можно использовать для обмена данными с неограниченным количеством источников и приёмников сигналов всего по пяти проводам.

Блоксхема такого устройства показана на рис. 2.

 

 

рис. 2

 

По положительному перепаду сигнала CLOCK, происходит перенос информации вдоль всей линейки сдвиговых регистров RGa, на один бит. При этом сигнал DATA - является входом линейки, а сигнал CHK - её выходом. По переднему фронту сигнала LOAD, происходит параллельный перенос информации из RGa в RGb, а так же запись входных уровней в RGa.

 

По положительному перепаду сигнала CLOCK, происходит перенос информации вдоль всей линейки сдвиговых регистров RGa, на один бит. При этом сигнал DATA - является входом линейки, а сигнал CHK - её выходом. По переднему фронту сигнала LOAD, происходит параллельный перенос информации из RGa в RGb, а так же запись входных уровней в RGa.

 

Принцип работы СППК.

Работает СППК следующим образом. Тактовые импульсы, с выхода 8 ИМС DD9.3, поступают на вход канала "0" ИМС DD6, запрограммированного в режиме делителя частоты. Каналы "1" и "2" запрограммированы в режиме формирования прерывания.

С выхода канала "0" (OUT0), тактовые импульсы поступают на вход канала "1" через инвертор DD8.3, а так же через элемент DD8.4 формируется сигнал CLOCK (см. диагр. 3).

 

 

диагр. 3

 

После того, как канал "1" отсчитает 8 импульсов, происходит формирование высокого уровня на выходе OUT1 (точка "в") и через мультиплексор DD11 сформируется сигнал прерывания /ACKNLG.

Обработчик прерывания производит считывание информации из регистра DD7 по адресу 0F8H посредством элементов DD2.3, DD8.6. В момент записи в регистр DD7 по адресу 0F8H происходит запись сигнала высокого уровня в триггер DD10.1. При этом, на выходе 6 формируется сигнал высокого уровня, который блокирует поступление тактовых импульсов на выход CLOCK, а так же увеличивает длительность сигнала /WAIT. В момент поступления положительного фронта тактового импульса (точка c), происходит синхронная запись информации в регистр  DD7, а так же сброс триггера DD10.1 в нулевое состояние через формирователь строба DD10.2. При этом регистр DD7 переходит в состояние сдвига информации.

В момент генерации сигнала прерывания происходит вычитание единицы из канала "2". Когда число в его регистрах станет равным нулю, будет сформирован сигнал LOAD.

Перед началом работы необходимо перевести программируемый таймер КР580ВН53 (DD6) в состояние "определённости". Дело в том, что при включении питания, каждый из каналов может установиться произвольное состояние, а  поскольку их работа взаимосвязана, такой "произвол" может привести к нежелательным последствиям.

При первичной инициализации необходимо произвести следующие действия:

- установить канал "0" в режим делителя частоты и записать в его регистры число 00H, 00H. Это даст гарантию того, что в ближайшие несколько миллисекунд не произойдёт перепад фронтов импульсов на его выходе.

Инициализируем:

- канал "1" в режиме генерирования сигнала прерывания с числом отсчётов = 8. Этот канал является  счётчиком бит в регистре DD7;

- канал "2" в режиме генерирования сигнала прерывания с числом отсчётов равным 1 байту. При этом сигнал OUT2 примет низкое значение и сформирует нулевой уровень сигнала LOAD.

Заносим в регистры "0"-го канала реальное значение коэффициента деления частоты (минимальное значение = 2).

С этого момента начинается последовательная загрузка регистра DD7 со входа CHK. В линейку сдвиговых регистров передаётся случайная последовательность установившаяся в нём при включении (точки A и B диагр. 3). Сигнал LOAD примет высокий уровень и произойдёт запись информации в соответствующие регистры и сформируется сигнал прерывания. На этом процесс инициализации можно считать законченным.

Обработчик прерывания считывает значение регистра DD7 и проверяет последовательность на начало и конец очереди. Если это первый байт - записывает в канал "2" число, соответствующее количеству передаваемых байтов и производит его запись по адресу 0F8H. Так продолжается до тех пор, пока не будут переданы все байты.

 

© Прохневский С. А.

SB-MONEY.RU - рейтинг сайтов электронной коммерции и заработка для вебмастеров
Рассылка 'Бизнес + наука = успех !'