Параллельный интерфейс

Введение.

Стандартные интерфейсы IBM компьютера Сentronics и RS232B.

Лабораторная работа №1.

Приложения.

Цель работы:

1. Ознакомиться с со стандартными интерфейсами IBM компьютера Сentronics и RS232B.

2. Создать программу на языке Паскаль, управляющую учебным стендом и принтером по стандарту Centronics.

Присоединение внешних устройств к компьютеру типа IBM возможно:

§ через стандартные параллельный или последовательный (серийный) интерфейсы (порты),

§ через адаптер, непосредственно подсоединенный к системной шине ЭМВ через разъем (слот) на материнской плате.

В этой лабораторной работе рассматриваются стандартные интерфейсы IBM компьютера.

Параллельные интерфейсы отличаются высокой скоростью обмена, но коротким кабелем и низкой помехозащищенностью. Через параллельный интерфейс, имеющий 25-штырько-вый разъем, к компьютеру обычно подсоединен принтер. Этот стандарт называется Centronics, а его отечественный аналог - ИРПР-М. Ниже приведено распределение сигналов по контактам в IBM-комьютере.

Контакт Сигнал Направление сигнала
  strob Строб ист -> пр
  date 1 Данные ист -> пр
... …… Данные ист -> пр
... …… Данные ист -> пр
  date8 Данные ист -> пр
  acknlg Подтверждение пр -> ист
  busy Занят пр -> ист
  pe конец бумаги пр -> ист
  select out готовность приемника пр -> ист
  auto feed авт. перевод бумаги ист-> пр
  error Ошибка пр -> ист
  init Сброс ист ->пр
  select in Выбор ист ->пр
19-25 ground Земля  

Здесь подчеркнутыми показаны инвертированные сигналы (напр. error), т.е. сигнал активен, когда на линии низкое напряжение (логический "ноль"). Уровни напряжения сигнала соответствуют стандарту ТТЛ-схем: логическая "1" = 2.4-5.25 В, логический "0" = 0-0.5 В.

Процесс установления связи двух устройств в стандарте Centronics происходит примерно так.

1. Компьютер (источник) проверяет нет ли сигнала busy наконтакте 11, выставляет данные на контактах 2-9 и подает сигнал strob на контакт 1.

2. Принтер (приемник) по появлению сигнала строб выставляет сигнал busy. После обработки информации он снимает busy и подтверждает прием данных сигналом acknlg.

Эпюры напряжений при работе интерфейса Centronics.

Остальные сигналы менее значимы и могут не использоваться. В случае конца бумаги (pe) или ошибки (error) принтер все равно поднимет сигнал на линии busy. Инициализация принтера может быть произведена не только управляющим сигналом init, но и программно.

За один раз передается сразу 8-бит информации (байт), что позволяет передать один из 255 символов таблицы ASCII, которая обычно "прошита" в ПЗУ принтера.

При автоматизации физического эксперимента параллельный интерфейс может использоваться для ввода/вывода цифровой информации по 12 линиям от компьютера (данные: 8 бит + управление: 4 бита) и по 4 линиям к компьютеру (состояние 4 бита). Каждая выходная линия, при соответствующем согласовании, может быть использована для управления состоянием аппаратуры типа "включено-выключено": за­пуск генератора, опускание пера, открытие шторки и т.д.

 
 

Простейший цифро-аналоговый преобразователь (ЦАП), показанный на рис.1, может использоваться для вывода аналоговой информации, например на самописец, осциллограф, динамик и др. Входные линии параллельного порта можно использовать для ввода состояния клавиш, наличия высокого/низкого уровня сигнала и т.д. в ваших приборах. Например, можно программно легко реализовать простейший счетчик импульсов или частотомер. Если использовать генератор, у которого частота импульсов зависит от емкости (или сопротивления), то можно на его базе изготовить R или C измеритель.

Рис. 1 Простейший ЦАП на основе регистра (параллельного порта).

Обратите внимание на тот факт, что некоторые линии управления и состояние - инвертированы.

Для программирования данного интерфейса служат три регистра по 8 бит каждый с шестнадцатеричным адресами (в адресном пространстве внешних устройств) для первого параллельного интерфейса: 378h - данные, 379h - состояние, 37Ah - управление. Т.е. параллельный порт занимает в адресном пространстве три байта.

Ниже приведено назначение битов регистров.

Состояние (379) Управление (37A)
  Busy (1- занят) 7-5 не используется
  Acknlg (0- подтверждение приема)   Irq (0-прерывание запрещено)
  Pe (1- нет бумаги)   slct in (0-отмена выбора)
  Slct out (1- выбран)   Init (0- инициализация)
  Error (0- ошибка)   auto feed (автоперевод строки)
2-0 не используется   strob (1- вывод байта)

В системе MS-DOS устройствам параллельных портов ввода-вывода присваивается логические имена LPT1 (PRN), LPT2 и т.д. Работу с ними обеспечивает прерывание BIOS (basic input/output system) int 17h, которое имеет 3 функции:

0 - символ вывода на печать, 1 - инициализация порта, 2- получение слова состояния. При этом номер функции заносится в регистр процессора AH, код передаваемого символа в AL, а номер порта (0-2) в DX. После вызова прерывания int 17 в AX окажется слово состояния. В Турбо Паскале в библиотеке DOS есть тип Registers и процедура Intr(n,registers), которые могут использоваться для работы с параллельным портом например так:

function StatPrint: byte; {возвращает слово состояние}

var Reg: Registers;

begin

Reg.Ah:=2; Reg.Dx:=0; Intr($17, Reg);

end;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: