Обмен данными в параллельном кодеПрямой ввод/вывод данных. Как уже отмечалось, прямой ввод/вывод воз­можен только с внешними устройствами (ВУ), которые всегда готовы к обмену. Он является составной частью более сложных протоколов обмена.

Ввод данных в процессор из подсистемы ввода–вывода (ВВ) — это опера­ция чтения процессором отдельного порта пространства IOSEG. Операция ввода выполняется в следующей последовательности (рис. 3.3.1, а):

●     на шину ША адреса микропроцессор выставляет адрес требуемого ВУ;

●     на выходе дешифратора Дш формируется сигнал адреса буфера данных ¯АДБ;

●     на одну из линий шины управления выставляется строб чтения ¯Чт;

●     на выходе логического элемента ИЛИ–НЕ формируется сигнал чтения данных ЧтД, который открывает буфер данных БД и пропускает данные через шину данных ШД в микропроцессор.

рис. 3.3.1

В качестве примера приведем подпрограмму прямого ввода данных в ячейку памяти М, адрес ко­торой хранится в регистровой паре HL.

INPUT:          PUSHPSW               ;сохранение в стеке содержимого PSW

INport                       ;ввод данных в аккумулятор А из порта

MOV М, А                ;запись в память по адресу (HL) из А

POP PSW                  ;возврат из стека содержимого PSW

RET                           ;возврат из подпрограммы

где INPUT — метка, указывающая адрес первой ячейки подпрограммы; port — адрес порта; А — акку­мулятор; PSW — регистр слова состояния; (HL) — содержимое регистровой пары HL.

Вывод данных из процессора в подсистему ВВ — это операция записи данных процессором в отдельный порт пространства IOSEG. Операция вывода выполняется в следующей последовательности (рис. 3.3.1, б):

●     на шину адреса ША микропроцессор выставляет адрес регистра данных РД требуемого ВУ;

●     на выходе дешифратора Дш формируется сигнал адреса регистра данных ¯АРД;

●     на одну из линий шины управления выставляется строб записи ¯Зп;

●     на выходе логического элемента ИЛИ–НЕ формируется сигнал записи данных ЗпД, с помощью которого поступившие из микропроцессора данные записы­ваются в регистр данных РД.

В качестве примера приведем подпрограмму прямого вывода данных из ячейки памяти М с адре­сом, хранящимся в регистровой паре HL.

OUT:              PUSHPSW               ;запись в стек содержимого PSW

MOV А, М                ;считывание в А ячейки М с адресом в HL

OUTport                  ;вывод данных из аккумулятора А в порт

POP PSW                  ;возврат из стека содержимого PSW

RET                           ;возврат из подпрограммы

где OUT — метка, указывающая адрес первой ячейки подпрограммы; А — аккумулятор; PSW — ре­гистр слова состояния.

Обмен данными с программным квитированием. Особенности обмена дан­ными с программным квитированием рассмотрим на примере простейших уст­ройств (контроллеров) ввода и вывода.

рис. 3.3.2

Ввод данных. В состав устройства ввода данных входят (рис. 3.3.2, а):

●     буфер данных БД, при активизации которого сигналом чтения данных ЧтД = 1 происходит ввод данных в процессор;

●     буфер состояния БС, при активизации которого сигналом чтения состояния ЧтС = 1 в процессор вводится сигнал ГтВУ. При ГтВУ = 1 процессору разреше­но вводить данные;

●     триггер подтверждения ТПт, предназначен для формирования сигнала под­тверждения Пт о том, что данные микропроцессором введены;

●     дешифратор Дш и логические элементы (ЛЭ) 1, 2, 3 ИЛИ–НЕ, формирующие сигналы для управления БД, БС и ТПт.

табл. 3.3.1

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

Пусть на устройство ввода от внешнего устройства ВУ поступает сигнал готов­ности ГтВУ = 0. Тогда процессор будет работать в режиме периодического опроса буфера состояния БС. В этом режиме процессор выставляет адрес буфера со­стояния БС на ША и генерирует сигнал чтения ¯Чт = 0; с выхода элемента 2 посту­пает сигнал ЧтС буфера БС. После того, как ВУ выставит новые данные на ШВУ и сигнал ГтВУ = 1 (рис. 3.3.2, б), при первом же чтении буфера состояния БС сиг­налом ЧтС процессор узнает о возможности ввода данных и приступит к ее реа­лизации. Для этого на ША (вход дешифратора Дш) выставляется адрес регистра данных РД, а на вход элемента 1 подается сигнал чтения ¯Чт = 0. Сформирован­ный таким способом сигнал чтения данных ЧтД отпирает буфер данных БД и про­изводит ввод данных в процессор. Затем процессор с помощью Дш и ЛЭ 3 фор­мирует сигнал записи подтверждения ЗпПт = 1, который устанавливает на выходе триггера подтверждения ТПт сигнал подтверждения Пт = 1. Этот сигнал сообщает ВУ о том, что новые данные введены. Микропроцессор переходит в режим опро­са БС. После того как ВУ сбросит сигнал готовности (ГтВУ = 0), процессор после первого сигнала ЧтС = 1 при ГтВУ = 0 формирует сигнал ЗпПт = 1 и сбрасывает сиг­нал подтверждения (Пт = 0). Устройство ввода возвращается в исходное состояние.

табл. 3.3.2

Вывод данных. В состав устройства входят (рис. 3.3.2, в):

●     буфер состояния БС, при активизации которого сигналом чтения состояния ЧтС = 1 в процессор вводится сигнал подтверждения ПтВУ. При ПтВУ = 0 мик­ропроцессору разрешено выводить данные;

●     регистр данных РД, в который записываются выводимые процессором дан­ные (сигналом записи данных ЗпД = 1);

●     триггер готовности ТГт, предназначенный для формирования сигнала готов­ности Гт = 1 микропроцессора к выводу новых данных;

●     дешифратор Дш и ЛЭ ИЛИ–НЕ 1, 2, 3, формирующие сигналы для управления РД, БС и ТГт.

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

Пусть в исходном состоянии (рис. 3.3.2, г) сигнал подтверждения ПтВУ = 1 и процессор работает в режиме опроса буфера состояния БС. После установки ПтВУ = 0 профессор переходит в режим записи данных в РД устройства вывода. Для этого на ША устанавливается адрес регистра данных РД и продается сигнал записи Зп = 0. Затем с помощью сигнала ЗпГт = 1 на выходе триггера ТГт форми­руется сигнал готовности Гт = 1, информирующий ВУ о том, что данные занесены в РД. Микропроцессор переходит в режим опроса. После того, как ВУ примет но­вые данные и установит сигнал ПтВУ = 1, микропроцессор после первого же чте­ния состояния при ПтВУ = 1 сбросит сигнал готовности (Гт = 0). Устройство выво­да вернется в исходное состояние.

Обмен данными с аппаратным квитированием. Состав устройств. Для иллюстрации принципов программно–управляемого обмена с аппаратным квити­рованием рассмотрим схемы интерфейсных устройств (контроллеров) ввода (рис. 3.3.3, а) и вывода (рис. 3.3.3, б).

рис. 3.3.3

Устройства содержат:

●     регистры для хранения данных (РД);

●     буферы каналов данных (БД) и состояния (БС). Буферы представляют собой однонаправленные шинные формирователи с высокоомным состоянием. Через них осуществляется связь устройств с внешними шинами;

●     дешифраторы (Дш) для формирования сигналов обращения к буферам и ре­гистрам;

●     триггеры и логические элементы для формирования осведомительных и уп­равляющих сигналов.

Сведения об используемых в устройствах ввода и вывода сигналах приведены в табл. 3.3.3.

табл. 3.3.3

Ввод данных. При вводе информации (рис. 3.3.3, а, б) по стробу ввода СтрВв, поступившему из ВУ, данные записываются в РД. Сигнал чтения ЧтД = 0, поэтому триггер–защелка Т по срезу строба устанавливается в единичное состоя­ние, формируя флаг ФВв = 1 готовности к началу операции ввода. Микропроцес­сор производит опрос состояния устройства ввода. При этом:

●     на вход устройства по шине управления поступает сигнал Чт = 0, на вход де­шифратора Дш — адресный код буфера состояния БС, инициируя на входе ЛЭ ИЛИ–НЕ (1) нулевой сигнал;

●     сигналом чтения состояния ЧтС = 1, снимаемым с выхода ЛЭ ИЛИ–НЕ (1), от­крывается буфер состояния БС, и сигнал ФВв передается по ШД в процессор. В микропроцессоре происходит выделение сигнала флага (например, коман­дой ANI) и определение его значения (например, с помощью команды условного перехода JZ). Если ФВв = 1, то выполняется команда ввода данных из РД, в про­тивном случае производится повторный цикл опроса состояния, т. е. микропро­цессор переходит режим ожидания.

При ФВв = 1 микропроцессор выполняет команду ввода IN, адресуясь к регист­ру данных РД. При этом:

●     с выхода Дш поступает нулевой сигнал на один из входов ЛЭ ИЛИ–НЕ (2);

●     с шины управления поступает сигнал ¯Чт = 0 на другой вход ИЛИ–НЕ (2);

●     с выхода ЛЭ ИЛИ–НЕ (2) снимается сигнал чтения данных ЧтД = 1, активизи­руя БД для передачи информации в микропроцессор;

●     триггер Т по срезу сигнала ЧтД переводится в нулевое состояние и осуще­ствляет сброс флага ФВв = 0, информируя тем самым ВУ о вводе данных в микропроцессор. Внешнее устройство может приступить к загрузке РД сле­дующим байтом данных.

Вывод данных. При выводе информации (рис. 3.3.3, в, г), так же как и при вводе (командой IN по адресу буфера состояния), производится опрос состояния устройства вывода. Если сигнал флага готовности вывода ФВыв = 0, то цикл опро­са повторяется. Если же ФВыв = 1, то со стороны процессора (по команде OUT) поступает сигнал записи ¯Зп = 0. С его помощью формируется сигнал записи дан­ных ЗпД = 1, по которому информация с ШД заносится в регистр РД. Так как по­ступающий со стороны устройства вывода строб вывода СтрВыв = 0, то по срезу сигнала ЗпД триггер Т устанавливается в единичное состояние. На выходе ЛЭ ИЛИ–НЕ (3) формируется сигнал ФВыв = 0. Происходит сброс флага, запреща­ющий микропроцессору повторную запись данных до тех пор, пока со стороны ВУ не поступит строб вывода СтрВыв = 1 (рис. 3.3.3, г). Задний фронт этого сигнала восстановит состояние флажка (ФВыв = 1) и разрешит микропроцессору запись следующего байта данных.

рис. 3.3.4

Двунаправленный обмен. Рассмотрим вариант схемы устройства дву­направленного обмена с квитированием (рис. 3.3.4), в котором для фиксации стробов используются триггеры–защелки.

Порт содержит:

●     регистры вводимых РД1 и выводимых РД2 данных;

●     буферы данных БД1, БД2 и буфер состояния БС;

●     триггеры Т1, Т2 для установки и сброса флагов ввода ФВв и вывода ФВыв;

●     дешифратор Дш для выделения адресов;

●     набор логических элементов.

Ввод/вывод данных осуществляется в два этапа. На первом этапе данные от источника (ВУ/процессора) заносятся в регистры данных порта, на втором — переписываются в приемник (процессор/ВУ).

Индикаторами разрешения/запрещения обмена служат два флага, упакован­ные в слово состояния.

Флаг ввода при ФВв = 1 свидетельствует о том, что регистр РД1 загружен но­вой порцией данных и микропроцессор может приступить к их вводу. При ФВв = 1 для ВУ накладывается запрет на передачу данных.

Флаг вывода при ФВыв = 0 свидетельствует о том, что регистр РД2 загружен данными и они могут быть считаны ВУ. При ФВыв = 0 для микропроцессора на­кладывается запрет на передачу данных.

Обмен данными протекает в две стадии. В первой стадии проверяется готов­ность ВУ к обмену, во второй — происходит ввод или вывод данных.

Ввод данных при ФВв = 0 (для ВУ разрешена запись в РД1) протекает в такой последовательности:

●     микропроцессор командой IN опрашивает буфер состояния БС, выставив сигнал чтения ¯Чт = 0 и адрес буфера. Так как ФВв = 0, процессор переходит в режим ожидания или продолжает выполнять программу до генерирования очередного запроса;

●     по срезу строба СтрВв данные, поступившие из ВУ, заносятся в регистр РД1, а триггер Т1 и флаг готовности ФВв устанавливаются в единичное состояние, так как ЧтД = 0. Флаг в состоянии ФВв = 1 запрещает ВУ передачу данных и разрешает процессору приступить к вводу данных после фиксации значе­ния флага при очередном опросе;

●     данные из регистра РД1 с помощью сигнала ЧтД считываются в аккумулятор микропроцессора. Это цикл отличается от цикла опроса лишь тем, что вы­ставляется адрес регистра РД1 вместо БС. По завершении ввода по срезу ЧтД происходит сброс флага ФВв.

Вывод данных при Фвыв = 1 (для процессора разрешена запись в РД2) проте­кает в такой последовательности:

    микропроцессор командой IN опрашивает буфер состояния БС, выставив сигнал чтения ¯Чт = 0 и адрес буфера. Так как ФВыв = 1, процессор приступа­ет к загрузке регистра данных РД2;

●     на вход дешифратора подается адрес РД2, с помощью сигнала внешнего сигнала записи ¯Зп = 0 формируется внутренний сигнал записи ЗпД = 1 в РД2. По срезу этого сигнала устанавливается флаг ФВыв = 0, информирующий ВУ о том, что регистр РД2 заполнен;

●     внешнее устройство посылает в порт сигнал СтрВыв, который открывает бу­фер для передачи сигнала в ВУ. По срезу ЗпД флаг ФВыв переводится в ну­левое состояние, свидетельствующее об окончании операции вывода.

 

Проиллюстрируем реализацию рассмотренных принципов программного об­мена в параллельном коде на примере микросхемы КР580ВВ55.


Рекомендуйте эту статью другим!



прерываний в микропроцессорных
нояб 04, 2015 2811

Организация прерываний в микропроцессорных системах

Прерывание в микропроцессорах (interruption) — это событие, вызывающее прекращение…
нояб 17, 2012 9763

Режимы глухого заземления нейтрали в сетях низшего напряжения (0,4 кВ)

Полная реконструкция технологических установок промышленных предприятий, включающая…
Вихревые токи 1
авг 04, 2014 5935

Вихревые токи

В электрических устройствах, приборах, машинах металлические детали способны иногда…
Реклоузеры 4
авг 30, 2015 10482

Реклоузеры - применение, достоинства и недостатки, разновидности

Реклоузер - устройство автоматического управления и защиты воздушных ЛЭП на основе…
Элегазовые высоковольтные выключатели
дек 22, 2013 3140

Элегазовые высоковольтные выключатели

В элегазовых выключателях роль дугогасящей среды выполняет элегаз (гексафторид серы SF6).…