- Интерфейс Centronics
- Параллельные интерфейсы: centronics
- 2 Краткое описание исследуемого интерфейса.
- 19. Структурная схема параллельного программируемого интерфейса. Основные режимы работы. Программирование вывода по протоколу Centronix.
- 20. Организация ввода-вывода данных по запросам прерываний от схемы программируемого параллельного интерфейса.
- 36. Параллельный обмен данными с внешними устройствами в микроконтроллерных системах. Обмен с квитированием.
Интерфейс Centronics
Исторически параллельный интерфейс был введен в персональный компьютер для подключения принтера (аббревиатура LPTрасшифровывается как Line Printer, т.е. построчный принтер). Однако впоследствии он стал использоваться для подключения других периферийных устройств (ПУ) – сканеров, дисководов типа Zip и ряда других.
Стандарт на параллельный интерфейс IEEE 1284, принятый в 1994 году, регламентирует различные режимы обмена данными, физический и электрический интерфейсы. Следующие режимы обмена данными получили наибольшее распространение:
— Compatibility Mode – однонаправленный вывод по протоколу Centronics, который полностью соответствует стандартному порту SPP (Standard Parallel Port).
— ЕРР (Enhanced Parallel Port) Mode – двунаправленный обмен данными, при котором управляющие сигналы интерфейса генерируются аппаратно во время цикла обращения к порту (чтения или записи в порт). Режим эффективен при работе с устройствами внешней памяти, адаптерами локальных сетей.
— ЕСР (Extended Capability Port) Mode – двунаправленный обмен с возможностью аппаратного сжатия данных по методу RLE (Run Length Encoding), использования FIFO-буферов и режима прямого доступа в память DMA. Управляющие сигналы интерфейса генерируются аппаратно.
Базовая разновидность порта SPP позволяет передавать данные только в одном направлении – от ПК, однако позднее был разработан ряд стандартов двунаправленной передачи данных EPP и ECP. К главным недостаткам LPT порта следует отнести невысокую скорость (100÷150 Кб/сек) и необходимость привлечения ресурсов микропроцессора при передаче данных.
Стандартный LPT порт имеет 8-битную шину данных, 5-битную шину сигналов состояния и 4-х битную шину управляющих сигналов. Порт асимметричен – 12 линий работают на вывод и только 5 на ввод. Понятие интерфейса Centronics относится к набору сигналов, протоколу обмена и разъему, устанавливаемому в принтерах. Назначение сигналов и контакты разъема ПУ, на который они выведены, приведены в табл. 96.
Табл. 96. Сигналы интерфейса Centronics.
Сигнал | Т | Конт. | Напр. | Назначение |
Strobe | IN | Строб данных. Передаваемые данные фиксируются по низкому уровню сигнала. | ||
D0. D7 | 2-9 | IN | Линии данных (D0 — младший бит). | |
Ack | OUT | Acknowledge – сигнал подтверждения приема байта (запрос на прием следующего). Может использоваться для формирования прерывания. | ||
Busy | OUT | ПУ занято. Прием данных возможен только при низком уровне сигнала. | ||
PE | OUT | «1» сигнализирует о конце бумаги. | ||
Select | OUT | «1» сигнализирует о включении принтера. | ||
Auto LF | IN | Автоматический перевод строки Auto Feed Line. Если «0», то ПУ при получении символа CR (перевод каретки) выполняет функцию LF – перевод строки. | ||
Error | OUT | Ошибка ПУ (нет бумаги, нет тонера, внутренняя ошибка). | ||
Init | IN | Инициализация (переход к началу строки, сброс всех параметров на значения по умолчанию). | ||
Slct In | IN | Выбор принтера. При «1» ПУ не воспринимает сигналы интерфейса. | ||
GND | – | Общий провод. |
Столбец «T» определяет активный уровень сигнала: «1» – высокий активный уровень, «0» – низкий, столбец «Напр.» – направление передачи по отношению к принтеру: IN – вход, OUT – выход. Сигнал Auto LF практически не применяется, но его неправильное значение может приводить к ошибкам печати.
Обмен данными по интерфейсу Centronics можно описать с помощью временной диаграммы (рис. 46). Для передачи байта данных в ПУ вначале необходимо убедится, что уровень сигнала на линии BUSY равен 0, а уровень сигнала на линии ACK – единице. После этого следует установить код выводимого символа на линиях DATA.
Рис. 46. Временные диаграммы интерфейса Centronics.
Затем не ранее, чем через 0,5 мкс линию STROBE необходимо перевести в состояние логического нуля. При этом выводимый символ запишется во внутренний буфер ПУ. Сигнал STROBE необходимо удерживать в течение как минимум 0,5 мкс. После истечения интервала времени линию STROBE нужно вновь перевести в состояние логической единицы. После этого выходная линия принтера BUSY устанавливается в единицу, сигнализируя о том, что принтер занят обработкой полученного символа и временно не может принимать другие символы.
Когда ПУ полностью обработает выведенный байт данных, линия ACK перейдет в состояние 0. Приблизительно через 5 мкс. после этого линия BUSY также перейдет в состояние 0. Еще через 5 мкс линия ACK примет состояние 1. Теперь ПУ готово принять следующий байт данных.
Если в течение длительного времени (несколько секунд) источник не получает подтверждения ACK, то он принимает решение об ошибке «тайм-аут» устройства. Если после приема байта приемник не готов принимать данные, то он не снимает сигнал Busy. При программной реализации обмена желательно ограничить время ожидания снятия Busy (обычно 30÷45 сек), иначе возможно «зависание» программы.
Параллельные интерфейсы: centronics
Ознакомление с устройством параллельного интерфейса CENTRONICS, изучение физики его работы, разработка принципиальной схемы выполняющей функции интерфейса CENTRONICS и моделирование ее работы с помощью программы Electronics Workbench фирмы Interactive Image Technologies Ltd.
2 Краткое описание исследуемого интерфейса.
Понятие Centronics относится как к набору сигналов и протоколу взаимодействия, так и к 36-контактному разъему на принтерах. Традиционный порт SPP (Standard Parallel Port) является однонаправленным портом, через который программно реализуется протокол обмена Centronics. Порт вырабатывает аппаратное прерывание по импульсу на входе Ack#. Сигналы порта выводятся на разъем DB-25S (розетка), установленный непосредственно на плате адаптера (или системной плате) или соединяемый с ней плоским шлейфом.
Адаптер параллельного интерфейса представляет собой набор регистров, расположенных в пространстве ввода/вывода. Регистры порта адресуются относительно базового адреса порта, стандартными значениями которого являются 3BCh, 378h и 278h. Порт может использовать линию запроса аппаратного прерывания, обычно IRQ7 или IRQ5.Порт имеет внешнюю 8-битную шину данных, 5-битную шину сигналов состояния и 4-битную шину управляющих сигналов,
BIOS поддерживает до четырех LPT-портов (LPT1-LPT4) своим сервисом — прерыванием INT 17h, обеспечивающим через них связь с принтером по интерфейсу Centronics. Этим сервисом
BIOS осуществляет вывод символа (по опросу готовности, не используя аппаратных прерываний), инициализацию интерфейса и принтера, а также опрос состояния принтера.
Стандартный порт имеет три 8-битных регистра, расположенных по соседним адресам в пространстве ввода/вывода, начиная с базового адреса порта (BASE).
Data Register (DR) — регистр данных. Данные, записанные в этот порт, выводятся на выходные линии интерфейса.
Status Register (SR) — регистр состояния; представляет собой 5-битный порт ввода сигналов интерфейса, отображающих состояние принтера (Busy, Ack, Paper End, Select, Error).
Control Register (CR) — регистр управления. Предназначен для программного управления принтером путем активизации линий Select, Init, AutoLF, Strobe# , задания режима прерывания и направления передачи данных
Процедура вывода байта по интерфейсу Centronics включает следующие шаги (в скобках приведено требуемое количество шинных операций процессора):
— Вывод байта в регистр данных (1 цикл IOWR#).
— Ввод из регистра состояния и проверка готовности устройства (бит SR. 7 — сигнал Busy). Этот шаг зацикливается до получения готовности или до срабатывания программного тайм-аута (минимум 1 цикл IORD#).
— По получении готовности выводом в регистр управления устанавливается строб данных, а следующим выводом строб снимается (2 цикла IOWR#).
Стандартный порт асимметричен — при наличии 12 линий, нормально работающих на вывод, на ввод работают только 5 линий состояния. Если необходима симметричная двунаправленная связь, на всех стандартных портах работоспособен режим полубайтного обмена — Nibble Mode. В этом режиме одновременно передаются 4 бита данных, пятая линия используется для квитирования. Таким образом, каждый байт передается за два цикла, а каждый цикл требует по крайней мере 5 операций ввода/вывода.
19. Структурная схема параллельного программируемого интерфейса. Основные режимы работы. Программирование вывода по протоколу Centronix.
1) Определяем CW=10001хх1=88h, РА – вывод в режиме 0, КС4 – на ввод.
2) Для управления работой КС0 используем 2 тип управляющего слова.
\ _/ \устанавливаемое значение
Программная процедура:
20. Организация ввода-вывода данных по запросам прерываний от схемы программируемого параллельного интерфейса.
Вывод данных по прерыванию с использование режима 1 (асинхронный вывод)
1. Инициализация (в основной программе).
2. Определение указателей для массива символов, для длины сообщения и стека.
3. Настройка ППИ на режим работы 1 канала вывода CW=1010хххх.
4. Разрешение прерывания от ППИ из КА CW=00001101.
5. Программное включение STROB.
6. Разрешить работу системных прерываний в МП.
7. Выполнение основной программы.
2. Запрет внешних прерываний.
4. Чтение символа сообщения из памяти.
7. Увеличение указателя массива, уменьшение счетчика длины сообщения.
6. Проверка условия: конец сообщения. Если да, то шаг 7, если нет то шаг 8.
7. Запрет прерывания от ППИ.
8. Разрешение внешних прерываний в МП.
Асинхронный обмен данными через ППИ
Временная диаграмма для вывода
Временная диаграмма для ввода
36. Параллельный обмен данными с внешними устройствами в микроконтроллерных системах. Обмен с квитированием.
Обмен данными (2-10 упакованными числами) между МК51 и ВУ.
Передача байта
;инициализация указателей обмена и портов
clr P2.0; снятие сигнала ЗПр
Ввод потетрадно через Р13-0
clr P2.0; данные получены
ad – адрес ячейки внешнего сегмента данных.
Инициатор – МК || ВУ. 1 – Каждый раз запрос к к ВУ. Обмен после приема от ВУ сигнала подтверждения. МК: обмен, снимает запрос, ждет снятия сигнала ВУ, продолжает работу.
2 — МК ожидает сигнала запроса от ВУ, выставляет сигнал готовности к обмену, производит обмен, снимает сигнал готовности, ждет снятия запроса от ВУ, продолжает работу. Обмен управляющими сигналами между МК и ВУ осуществляется при каждой передаче.
Передача с квитированием — генерация приемником дополнительного сигнала, подтверждающего прием, –квитанции для передатчика (отсюда и слово — квитирование). Передатчик может выдать на шину следующий код, лишь получив «квитанцию» в приеме предыдущего.