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

Ввод данных в процессор из подсистемы ввода–вывода (ВВ) — это опера­ция чтения процессором отдельного порта пространства 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.


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



Особенности нового ГОСТа по качеству электроэнергии
июнь 16, 2014 4347

Особенности нового ГОСТа по качеству электроэнергии

С начала 2013 года вступил в действие обновлённый стандарт качества ГОСТ Р 54149, в…
рис. 1.141
окт 17, 2016 736

Влияние различных факторов на выходное напряжение операционного усилителя

При практическом использовании операционного усилителя необходимо учитывать, что…
dif1
апр 03, 2017 1914

Дифференциальная защита, диф реле, принцип работы, применение

Дифференциальная защита - одна из самых быстродействующих. Для нее не требуется выдержки…
Последовательный обмен
нояб 11, 2015 1611

Способы и методы последовательного обмена

Принципы обмена. Последовательный обмен (ввод–вывод данных), когда байт данных передается…