РЕАЛИЗАЦИЯ ПАРАЛЛЕЛЬНОГО ИНТЕРФЕЙСА ПК
ПРАКТИЧЕСКАЯ РАБОТА №3. Технологии программирования параллельного интерфейса ЦЕЛЬ РАБОТЫ
Изучение параллельного интерфейса персонального компьютера (ПК) и технологий его программирования в средах Visual C# Express и LabVIEW. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ. Паралле́льный порт — тип интерфейса, разработанный для компьютеров (персональных и других) для подключения различных периферийных устройств. В вычислительной технике параллельный порт является физической реализацией принципа параллельного соединения. Он также известен как принтерный порт или порт Centronics. Стандарт IEEE 1284 определяет двунаправленный вариант порта, который позволяет одновременно передавать и принимать биты данных. Первый принтер с параллельным интерфейсом Centronics модели 101 был представлен в 1970 году. Интерфейс был разработан в Centronics Р. Говардом и П. Робинсон. Параллельный интерфейс Centronics быстро стал де-факто отраслевым стандартом. Производители в то время использовали различные разъёмы со стороны системного блока, поэтому существовало множество различных кабелей. Например, в ранних системах VAX использовался разъём DC-3, в NCR применялся 36-контактный плоский разъём, TexasInstruments использовала 25-контактный краевой разъём, а в DataGeneral использовался 50-контактный плоский разъём. Dataproducts представила весьма оригинальную реализацию параллельного интерфейса для своих принтеров. Она использовала разъём DC-37 со стороны хоста и 50-контактный разъём со стороны принтера: либо DD-50 (иногда его неправильно называют «DB50»), либо разъём М-50 в форме блока (его также называют винчестерным разъёмом). Параллельное соединение Dataproducts было доступно в двух вариантах: либо для коротких соединений (до 15 м), либо для длинных соединений (от 15 до 150 м). Интерфейс Dataproducts встречался во многих системах мэйнфреймов вплоть до 1990-х годов, многие производители принтеров предлагали его в качестве опции. IBM выпустила свой персональный компьютер в 1981 году и включила в него свой вариант интерфейса Centronics: только принтеры с логотипом IBM (ребрендинг от Epson) могли подключаться к IBM PC. IBM стандартизировала параллельный кабель с разъёмом DB25F на стороне ПК и разъём Centronics на стороне принтера. Производители вскоре реализовали принтеры, совместимые как со стандартным соединением Centronics, так и с соединением IBM. В 1987 году IBM реализовала первую версию двунаправленного интерфейса. HP в 1992 году на принтере LaserJet 4 представила свою версию двунаправленного интерфейса, известную как Bitronics. Интерфейсы Bitronics и Centronics были заменены на стандартный интерфейс IEEE 1284 в 1994 году. Внешний, радиальный, параллельный интерфейс Centronics обеспечивает подключение печатающих и других устройств с параллельной передачей информации. В одном направлении (от ПК) одновременно передается 1 байт данных. Радиальное подключение осуществляется посредством кабеля. Интерфейс Centronics был разработан специально для подключения печатающих устройств и лишь впоследствии принят в качестве стандарта для передачи внешней параллельной информации между устройствами. Поэтому назначение сигналов и линий интерфейса ориентировано именно на работу с печатающими устройствами. Все сигналы интерфейса Centronics имеют стандартные ТТЛ - уровни. Максимальная длина соединительного кабеля по стандарту – 1,8 м. По назначению сигналы на контактах разъема интерфейса можно разделить на 4 группы: - информационные сигналы; - сигналы управления передачей данных; - сигналы состояния периферийного устройства; - заземление и питание. Стандартом предусматривается, что информационные сигналы и сигналы управления передачей данных формирует и выдает системное устройство (источник), а сигналы состояния – периферийное устройство (приемник). Рассмотрим назначение сигналов интерфейса Centronics. Информационные сигналы: D0-D7 – 8-разрядные данные. Сигналы управления передачей данных: #STROBE – сигнал стробирования данных. Сигнал #STROBE низкого уровня сообщает приемнику, что данные источником выставлены, и их можно принимать. #INIT – сигнал инициализации (сброса) периферийного устройства. Низкий уровень сигнала служит для установки регистров приемника в начальное состояние. # SLCT IN – выбор. Сигнал сообщает приемнику, что он выбран и для него последует передача данных. #AUTO FD – сигнал автоматического перевода строки. По этому сигналу печатающее устройство перемещает бумагу для печати на следующей строке. Сигналы состояния периферийного устройства: BUSY – сигнал занятости периферийного устройства. Сигнал BUSY высокого уровня говорит о том, приемник не может принимать данные. Приемник может быть занят в следующих случаях: а) во время ввода данных; б) во время печати; в) в состоянии «ошибки»; г) в автономном режиме и др. Подача низкого уровня сигнала BUSY означает, что приемник может принимать данные. #ACK – сигнал подтверждения принятия данных. Высокий уровень сигнала #ACK говорит о том, что приемник готов к приему данных. переход сигнала в ноль сообщает, что приемник принял предыдущие данные, но не готов принять новые. SLCT – сигнал готовности приемника. Высокий уровень сигнала говорит о том, что приемник выбран и готов к приему данных. #ERROR – сигнал ошибки приемника. Логический ноль означает ошибку в приемнике и требует прекращения передачи. PE – сигнал конца бумаги. По этому сигналу источник прекращает передачу данных и переходит в состояние ожидания. Обычно используются те или иные сигналы, в зависимости от назначения приемника. Для того чтобы обеспечить функционирование интерфейса, достаточно использовать только 8 бит данных (D0-D7), сигнал стробирования данных #STROBE, сигнал подтверждения #ACK и сигнал занятости приемника BUSY, либо сигнал готовности приемника SLCT. Временные диаграммы сигналов при передаче информации по внешнему интерфейсу Centronics приведены на рис. Интервалы Т1-Т7 определяются применяемыми в передатчике и приемнике типами микропроцессорных элементов. Приемник готов принять данные, когда (BUSY = 0) & (#ACK = 1). Только в этом случае передатчик, выставив данные D0-D7, выдает сигнал стробирования данных #STROBE. . Временные диаграммы цикла передачи данных по интерфейсу Centronics Передача данных начинается с проверки готовности принтера — состояния линии Busy. Строб данных может быть коротким — доли микросекунды, и порт заканчивает его формирование, не обращая внимания на сигнал Busy. Во время строба данные должны быть действительными. Подтверждением приема байта (символа) является сигнал Ack#, который вырабатывается после приема строба через неопределенное время (за это время принтер может выполнять какую-либо длительную операцию, например прогон бумаги). Импульс Ack# является запросом принтера на прием следующего байта, его задействуют для формирования сигнала прерывания от порта принтера. Если прерывания не используются, то сигнал Ack# игнорируется и весь обмен управляется парой сигналов Strobe* и Busy. Свое состояние принтер может сообщить порту по линиям Select, Error*, PaperEnd — по ним можно определить, включен ли принтер, исправен ли он и есть ли бумага. Формированием импульса на линии lnit# принтер можно проинициализировать (при этом он очистит и весь свой буфер данных). Режимом автоматического перевода строки, как правило, не пользуются, и сигнал AutoLF* имеет высокий уровень. Сигнал Selectln* позволяет логически отключать принтер от интерфейса. По назначению линии сигналы на контактах разъема интерфейса можно разделить на 4 группы: информационные сигналы D0-D7 данные; сигналы управления передачей данных; сигналы состояния периферийного устройства; заземление и питание. Параллельный интерфейс Centronics ориентирован на передачу потока байт данных к принтеру и прием сигналов состояния принтера. Этот интерфейс поддерживается всеми LPT-портами компьютеров. Понятие «Centronics» относится как к набору сигналов и протоколу взаимодействия, так и к 36-контактному разъему на принтерах. Назначение сигналов интерфейса приведено в табл. 8.3, а временные диаграммы обмена с принтером показаны на рис. 8.5. Стандартом предусматривается, что информационные сигналы и сигналы управления передачей данных формирует и выдает системное устройство (источник), а сигналы состояния – периферийное устройство (приемник). Рассмотрим назначение сигналов интерфейса Centronics. Таблица 8.3. Сигналы интерфейса Centronics Максимальная длина соединительного кабеля по стандарту — 1,8 м. Максимальная скорость обмена — 100 Кбайт/с. Формирование и прием сигналов интерфейса Centronics производится путем записи и чтения выделенных для него портов ввода/вывода. В компьютере может использоваться три порта Centronics, обозначаемых LPT1 (базовый адрес 378), LPT2 (базовый адрес 278) и LPT3 (базовый адрес 3BC). При сопряжении с компьютером через параллельный порт LPT какого-нибудь другого устройства (не принтера) назначение сигналов и порядок обмена могут быть другими. При разработке нестандартных внешних устройств, сопрягаемых с компьютером через Centronics, можно самостоятельно выбирать как назначение сигналов, так и протокол обмена. РИС. Структурная схема. Основным назначением интерфейса Centronics (отечественный аналог — стандарт ИPПP-М) является подключение к компьютеру принтеров различных типов (из-за чего его называют принтерным портом). Поэтому распределение контактов разъема, назначение сигналов, программные средства управления интерфейсом ориентированы именно на такое применение. В то же время, с помощью данного интерфейса можно подключать к компьютеру и многие другие стандартные внешние устройства (например, сканеры, дисководы и т.д.), а также нестандартные внешние устройства.
РЕАЛИЗАЦИЯ ПАРАЛЛЕЛЬНОГО ИНТЕРФЕЙСА ПК В вычислительной технике контроллер внешнего параллельного интерфейса называется LPT-порт. LPT-порт имеет регистровую структуру. Процессор персонального компьютера может адресоваться к трем регистрам LPT-порта: регистр данных; регистр состояния; регистр управления. В ПЭВМ адреса регистров для LPT-портов имеют стандартные значения. Для порта LPT1 регистр данных имеет адрес 378h, регистр состояния – 379h, регистр управления – 37Ah. Для порта LPT2 регистр данных имеет адрес 278h, регистр состояния – 279h, регистр управления – 27Ah. Для порта LPT3 регистр данных имеет адрес 3BCh, регистр состояния – 3BDh, регистр управления – 3BEh. Регистр выходных данных - тот адрес порта, через который проходит каждый байт данных, посылаемый в порт. Регистр состояния сообщает различную информацию о входных линиях; процессор может постоянно опрашивать его, чтобы распознать момент, когда все в порядке и можно посылать данные. Регистр состояния сообщает также, что произошла ошибка (линия ERROR). Регистр управления инициализирует адаптер и управляет выводом данных. Он может также подготавливать параллельный порт для операций прерывания, с тем, чтобы устройство посылало прерывание к процессору, когда оно готово к приему очередной порции данных, оставляя процессор свободным для других дел. Обращение к регистрам порта LPT1 производится по следующим командам: 1. OUT (адрес регистра 378h) – запись кода символа в регистре данных для передачи; 2. IN (адрес регистра 378h) – чтение данных, выставленных на линии D7-D0 интерфейса; 3. IN (адрес регистра 379h) – чтение состояния ВУ; 4. OUT (адрес регистра 37Ah) – ввод команды управления в регистр управления; 5. IN (адрес регистра 37Ah) чтение информации, выставленных на линии управления интерфейса. Формат регистра состояния ВУ LPT-порта
Бит В7 – инверсное отображение сигнала BUSY на линии интерфейса. Бит В6 – отображение сигнала на линии ACK. Бит В5 – отображение сигнала на линии PE. Бит В4 - отображение сигнала на линии SELECT. Бит В3 - отображение сигнала на линии ERROR#. Биты В2-В0 не используются. Формат регистра управления LPT-порта Биты В7-В5 не используются. Бит В4 – единичное значение разрешает прерывание по спаду сигнала на линии ACK# - сигнал запроса следующего байта. Бит В3 – “1” формирует низкий активный уровень сигнала SELECT IN#. Бит В2 – “0” формирует низкий активный уровень сигнала INIT#. Бит В1 – “1” формирует низкий активный уровень сигнала AUTO FD#. Бит В0 – “1” формирует низкий активный уровень сигнала STROBE#. Через параллельный порт (LPT) протокол Centronics может быть реализован чисто программно, используя стандартный режим порта (SPP), достигая скорости передачи до 150 Кбайт/с при полной загрузке процессора. Благодаря «продвинутым» режимам порта протокол может быть реализован и аппаратно (FastCentronics), при этом скорость до 2 Мбайт/с достигается при меньшей загрузке процессора. Пример инициализации порта через BIOS. Функция 1 прерывания 17H BIOS инициализирует порт принтера и возвращает байт, дающий статус порта. Поместите в DX номер порта - число от 0 до 2 для LPT1 - LPT3, после чего вызовите прерывание. Байт статуса принтера возвращается в AH.
;---инициализация LPT1 MOV AH,1 ;функция инициализации принтера MOV DX,0 ;LPT1 INT 17H ;проводим инициализацию Регистр управления выводом каждого адаптера принтера имеет бит, который вызывает инициализацию адаптера. Этот регистр имеет адрес порта на 2 больше, чем базовый адрес адаптера. Напоминаем, что базовый адрес для LPT1 хранится в ячейке 0040:0008, для LPT2 - в 0040:000A и т.д. Имеют значение только младшие 5 битов регистра управления выводом. Бит 2 - бит инициализации принтера и обычно он устанавливается в 1. Для инициализации адаптера надо сбросить этот бит в 0 на тысячу тактов пустого цикла (3000 для AT или на 1/20 секунды, используя счетчик времени суток BIOS). В этот момент нужно, чтобы был установлен только бит 3 (принтер выбран). Поэтому пошлите в порт значение 12, сделайте задержку, а затем пошлите в порт обычное (без прерываний) неинициализонное значение, которое равно 8. В данном примере инициализируется LPT1: ;---инициализируем LPT1 MOV AX,1000 ;начало пустого цикла Реализация ввода данных с устройства осуществляется путем чтения битов состояния порта и позволяет зараз ввести 5 бит данных. Нижеприведенные значения возвращаются в регистр статуса по стандарту "Эпсон", которому обычно следует IBM: Значение Цепочка битов Интерпретация 223 11011111 принтер готов
ПРАКТИЧЕСКАЯ ЧАСТЬ Лабораторный стенд Лабораторный стенд представляет собой ПК и лабораторный макет, подключенный к порту LPT1 компьютера. Лабораторный макет питается от отдельного источника питания +5 В. Принципиальная электрическая схема лабораторного макета приведена на рис. Главным элементом схемы является регистр DD1 типа КР1533ИР22. При подаче на вход PE положительного импульса (сигнал Strobe#) данные с входов D0…D7 записываются в регистр и, поскольку вход разрешения выхода E0 подключен к общей шине, записанный байт сразу отображается с помощью светодиодов VD1…VD8. Светодиоды расположены на передней панели макета и доступны для наблюдения. Переключатели S1…S5 подают соответственно на линии Error, Select, PaperEnd (PE), Ack#, Busy[2] либо низкий уровень (замкнутое состояние ключа), либо высокий уровень (разомкнутое состояние). Переключатели расположены на передней панели макета, и доступны пользователю, который может задавать с их помощью любое пятиразрядное число для чтения в ПК. Рис. 1. Принципиальная электрическая схема лабораторного макета
Популярное: Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (576)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |