Главная Дока Микро-80 Радио-86РК ЮТ-88 Орион-128 Ссылки Новости Письмо

Описание компьютера Микро-80 Журнал РАДИО

МОДУЛЬ ПРОГРАММАТОРА ППЗУ

В этой статье мы рассмотрим принципиальную электрическую схему и управляющую программу модуля программатора для ППЗУ К573РФ1. Но предварительно познакомимся с работой программируемой периферийной БИС КР580ВВ55, которая входит в комплект микропроцессорных БИС серии К580. Именно эта БИС и является основным элементом программатора. Кроме того, ее можно использовать и во многих других радиолюбительских конструкциях с микропроцессорами.

Для упрощения подключения внешних устройств к шинам микро-ЭВМ применяют программируемые периферийные микропроцессорные БИС разных типов. Внешние устройства разделяют на универсальные, широко используемые в вычислительной технике (например, устройства ввода-вывода для различных носителей информации: перфолент, магнитных лент и дисков, алфавитно-цифровые печатающие устройства и др.), и специализированные, управляемые от микро-ЭВМ. Именно к ним и относится описываемый программатор.

С помощью программируемых периферийных БИС взаимодействие сигналов шин микро-ЭВМ и сигналов многих внешних устройств можно организовать программно, не разрабатывай для этого специальные схемы. Покажем что на примере использования одной из таких БИС микросхемы КР580ВВ55. Далее мы будем называть ее программируемым периферийным адаптером — ППА.

Внешние устройства подключают к линиям ввода или вывода ППА, образующим каналы А, В и С, по 8 линий в каждом. Канал С может быть разделен на младший и старший подканалы. Линии каналов связаны с соответствующими буферными регистрами ППА портами А, В и С.

Обмен информацией между микропроцессором и портами происходит по командам ввода или вывода программы по шине данных, к которой ППА подключен через двунаправленные линии D0D7. Эти линии находятся в высокоимпедансном состоянии при отсутствии сигнала ВМ и одного из сигналов ЧТ или ЗП. При выполнении команд ввода или вывода микропроцессор устанавливает на линиях А0 - А7 шины адресов номер порта. В результате его дешифрации вырабатываются сигналы ВМ, А0 и А1, определяющие, с каким из портов будет происходить обмен (см. табл.1). Направление обмена задают управляющие сигналы, поступающие с шины данных на входы ЗП или ЧТППА в зависимости от того, выполняется ли команда ввода/вывода.

Таблица1.

A1

А0

ВМ

Порт

0

0

0

А

0

1

0

В

1

0

0

С

1

1

0

РУС

 

ППА содержит также порт регистра управляющего слова РУС, куда для задания режимов работы каналов по команде вывода предварительно заносится управляющее слово. Формат этого слова представлен в табл. 2. Отметим, что считать информацию из порта РУС нельзя. Возможны три режима (0, 1 и 2) работы каналов ППА.

Режим 0 предусматривает обмен данными с внешними устройствами через каналы А, В и два подканала С без управляющих сигналов о готовности к работе и подтверждения обмена. Это означает, что данные, выводимые из микроЭВМ по командам вывода, фиксируются в соответствующих портах ППА и хранятся там до поступления очередных команд вывода, т. е. до записи в порты новых данных. По линиям каналов они непосредственно поступают во внешние устройства.

При вводе из внешних устройств данные не фиксируются в портах, а считываются непосредственно в аккумулятор микропроцессора из соответствующего порта при выполнении команды ввода. Поэтому изменение входных данных в интервалах времени между обращениями микропроцессора к портам никак не отражаются на работе микро-ЭВМ. Обычно режим 0 используют для ввода медленно меняющихся данных или каких-либо постоянных значений. При выводе в этом режиме на линиях каналов можно программно формировать сигналы, соответствующие заданным временным диаграммам. Иными словами, этот режим позволяет программно управлять разнообразными внешними устройствами.

В режиме 1 обменом данными между внешними устройствами и каналами А и В (или одним из них) управляют сигналы, передаваемые по линиям канала С. Работу ППА в этом режиме рассмотрим на примере совместной работы микро-ЭВМ с широко распространенным в вычислительной технике внешним устройством — алфавитно-цифровым дисплеем. Как правило, дисплей состоит из двух функционально независимых частей: клавиатуры и блока вывода данных на экран дисплея.

Обратимся к рис.1, на котором показана схема подключения этих блоков к ППА. В нашем примере порты А и В запрограммированы в режиме 1 соответственно на ввод данных с клавиатуры и их вывод из микропроцессора на экран дисплея. Здесь же приведены и временные диаграммы управляющих сигналов. После нажатия на клавишу на линиях канала А появляется код соответствующего знака, а на линии канала С—сигнал строб приемаСТПРА. По этому сигналу данные с входных линий переписываются в порт А, что подтверждается сигналом подтверждение приема ПДПРА, поступающим из ППА в дисплей. и сигнал СТПРА гасится. ППА при этом формирует сигнал запрос прерыванияЗППРА, свидетельствующий о том, что данные в порту А подготовлены для последующего их считывания микропроцессором по команде ввода. Ее выполнение вызывает появление сигнала ЧТ, фронт которого гасит сигнал ЗППРА, а спад — сигнал ПДПРА, после чего с клавиатуры дисплея можно вывести новый байт данных на линии канала А.

При выводе на экран дисплея какого-либо символа его код переписывается в порт В по команде вывода, вызывающей одновременно появление сигнала ЗП на входе ППА. По спаду этого сигнала формируется сигнал строб записи — СТЗПВ для дисплея. Этот же сигнал разрешает считывание данных с линий канала В и по нему же вырабатывается сигнал подтверждение записи — ПДЗПВ, спад которого сбрасывает сигнал СТЗПВ и вызывает в ППА возникновение сигнала запрос прерывания — ЗППРВ. Теперь микропроцессор может аписать в буфер ППА код очередного символа для его последующего вывода на экран.

В режиме 2 линии канала А приобретают свойство двунаправленностн и поэтому могут быть подключены к внешнему устройству, также использующему для ввода-вывода двунаправленные линии. Управляющие сигналы в режиме 2 такие же, как и в режиме 1. Переводом линий канала А в режимы ввода и вывода управляют поступающие от внешних устройств сигналы СТПРА и ПДЗПА соответственно. При их отсутствии линии канала А остаются в высокоимпедансном состоянии. Этот режим весьма специфичен, и его рассмотрение мы пока отложим.

В табл.3 показано назначение линий канала С при разных режимах работы каналов ППА. Свободные от управляющих сигналов линии канала С (в таблице они обозначены В/В) могут быть использованы как линии ввода или вывода данных. Для вывода данных По отдельным линиям канала С используют специальное управляющее слово, записываемое в порт РУС и служащее для индивидуальной установки в 1 или 0 любого разряда порта С (см. табл.4). В зависимости от кода, записанного в разрядах D1- D3, выбирается разряд порта С, значение которого (а следовательно, и сигнала на соответствующей линии) будет изменено при записи этого слова в порт РУС. Если необходимо изменить состояние нескольких линий порта С, то загружают последовательно несколько управляющих слов.

Управляющие сигналы, передаваемые по линиям канала С, фиксируются в соответствующих разрядах порта С (см. табл. 5). Байт. считанный микропроцессором из порта С, отражает текущее состояние ППА и может быть затем программно проанализирован. Одновременно могут быть считаны и данные, вводимые или выводимые по свободным линиям канала С.

Сигнал ЗППР, вырабатываемый ППА в режимах 1 и 2 при готовности внешних устройств к обмену данными с микро-ЭВМ, можно использовать двояко. Во-первых, наличие этих сигналов можно определить путем программного опроса. Для этого при выполнении основной программы микропроцессор периодически считывает и анализирует байт из порта С. Появление 1 в соответствующем разряде порта С (т. е. появление какого-либо из сигналов ЗППР) вызывает переход микропроцессора к выполнению программы обмена байтом с соответствующим внешним устройством. Во-вторых, сигналы ЗППР можно подать на контроллер прерываний микро-ЭВМ. В этом случае при их появлении микропроцессор прерывает выполнение основной программы и начинает выполнять программу обслуживания внешнего устройства. По окончании ее работы вновь продолжается выполнение основной программы до появления следующих сигналов ЗППР. Организация ввода-вывода с использованием системы прерываний позволяет микропроцессору более эффективно выполнять основную программу, “не отвлекаясь” на периодическую проверку готовности внешних устройств. Однако при этом схема микроЭВМ несколько усложнится из-за введения контроллера прерываний.

На практике обычно используют оба способа проверки готовности внешних устройств. Например, при выводе “по инициативе” микропроцессора на экран дисплея последовательности символов целесообразно использовать программный опрос готовности. Однако, если микропроцессор в это время производит какие-либо вычисления, а Вы, например, хотите иметь возможность прервать этот процесс в произвольный момент вводя с клавиатуры дисплея какой-либо знак, то целесообразно использовать ввод данных по прерыванию. Иначе микропроцессору потребуется наряду с вычислениями постоянно опрашивать готовность порта, связанного с клавиатурой, а это может значительно снизить скорость вычислений.

Для разрешения или запрещения формирования сигналов ЗППР в ППА необходимо устанавливать определенные разряды порта С (в табл. 5 они названы РЗПР) соответственно в 1 или 0. Это позволяет программным путем “разрешить” или “запретить” отдельным внешним устройствам работать с микропроцессором.

Адр.
Код
Метка

Мнем.

Операнд
КОММЕНТАРИИ

1000

ЗЕВ4

 

MVI

В4Н

НАСТРОЙКИ ПОРТОВ:

1002

D303

 

OUT

РУС

ПОРТ А - ВВОД В РЕЖИМЕ 1, ПОРТ В - ВЫВОД В РЕЖИМЕ 2,

1004

ЗЕ09

 

MVI

А, 09Н

УСТАНОВКИ БИТА 04 ПОРТА С ДЛЯ

1006

0303

 

OUT

РУС

РАЗРЕШЕНИА СИГНАЛА ЗППР А,

1008

ЗЕОЭ

 

MVI

А, 0AН

УСТАНОВКА БИТА 02 ПОРТА С ДЛЯ

100А

0303

 

OUT

РУС

РАЗРЕШЕНИЯ СИГНАЛА ЗППР В. ВВОД СИМВОЛА С КЛАВИАТУРЫ:

100C

DB02

ВВОД:

IN

ПОРТ-С

ПРОВЕРКА НАЛИЧИЯ СИМВОЛА С

100E

Е604

 

ANI

04Н

КЛАВИАТ.- ВВОД БИТА СОСТОЯН.,

1010

СА0С10

 

JZ

ВВОД

ВЫДЕЛЕНИЕ И АНАЛИЗ РАЗРЯДА 03 ДЛЯ ОБНАРУЖЕН. СИГНАЛА ЗППР А;

1013

DB02

 

IN

ПОРТ-A

ВВОД КОДА СИМВ. С КЛАВИАТУРЫ:

1015

4F

 

MOV

С,А

СОХРАН. КОД В РЕГИСТРЕ С. ВЫВОД СИМВОЛА НА ЭКРАН:

101A

DB02

ВЫВОД:

IN

ПОРТ-С

ПРОВЕРКА ГОТОВН. ДИСПЛЕЯ К

1018

E601

 

ANI

01Н

ВЫВОДУ СИМВОЛА НА ЭКРАН -

101A

CA1610

 

JZ

ВЫВОД

ВВОД БАИТА СОСТОЯНИЯ, ВЫДЕЛЕН. И АНАЛИЗ РАЗРАДА 00 ДЛА ОВНАРУЖЕНИА. СИГНАЛА ЗППР В;

101D

79

 

MOV

А,С

ВЕРНУТЬ КОД СИМВ. и РЕГИСТР А,

101E

D301

 

OUT

ПОРТ-В

ВЫВЕСТИ СИМВОЛ НА ЭКРАН.

1020

C30C10

 

JMP

ВВОД

 
   

ПОРТ-A:

EQU

00Н

ПРИСВОЕНИЕ НОМЕРОВ ПОРТАМ

   

ПОРТ-В:

EQU

01Н

В СООТВЕТСТВИИ С РИС.1

   

ППРТ-С:

EQU

02Н

(СИГНАЛЫ НА ШИНЕ АДРЕСОВ

   

РУС:

EQU

03H

ИНВЕРСНЫЕ).

Рис.2

На рис.2 представлена программа ввода данных с клавиатуры в аккумулятор микропроцессора и последующего их вывода на экран дисплея. В ней программно проверяется, была ли нажата клавиша на клавиатуре и готов ли дисплей к приему очередного байта. В данном случае последнюю проверку можно было бы и не выполнять, так как заведомо известно, что дисплей будет готов к отображению очередного знака на экране раньше, чем оператор успевает нажать клавишу. Однако в общем случае, например, при выводе данных, подготовленных в памяти (а это весьма быстрый процесс), такая проверка необходима.

При начальном запуске из микроЭВМ на соответствующий вход ППА должен быть подан сигнал СБР. По этому сигналу все порты ППА настраиваются на выполнение операций ввода в режиме 0 и обнуляются их разряды. Только после этого можно задавать нужные режимы работы. Обнуление необходимо также и при операциях смены режимов работы.

При конструировании различных устройств с ППА необходимо помнить, что нагрузочная способность его линий позволяет подключать к ним только по одному входу ТТЛ микросхем.

Перейдем теперь к рассмотрению модуля программатора ППЗУ К573РФ1. Его принципиальная схема приведена на рис.3. Конструктивно модуль программатора можно выполнить в виде отдельного устройства. Микросхему ППЗУ устанавливают в программатор в специальную панель, которую в радиолюбительских условиях можно изготовить из каких-либо разъемов с плоскими контактами, расположенными с шагом 2,5 мм.

Формирование сигналов на выводах ППЗУ при записи в него информации происходит программно. Для подключения ППЗУ к шинам микро-ЭВМ используем каналы А, В и С ППА в режиме 0. В соответствии со схемой (рис. 3) порты А, В, С и РУС будут иметь соответственно номера 83Н, 82Н, 81Н и 80Н. Постарайтесь выяснить сами, почему это так и чем ограничены допустимое число н номер портов из-за того, что вывод ВМ ППА непосредственно (без дешифратора) подключен к линии ША7 шины адресов. Отметим также, что сигнал СБР перед поступлением на ППА должен быть инвертирован.

По каналу А и линиям КСО и КС1 канала С поступают коды адресов ППЗУ. Линии канала В предназначены для вывода данных при записи их в ППЗУ и для ввода данных в микро-ЭВМ из ППЗУ для контроля. Сигналы линий КС4 и КС5 порта С управляют блоком формирования импульса программирования, собранном на элементах D3, V1, V2. Сигналы с линии КС6 управляют формирователем сигнала ВМ, выполненном на элементе D4.1. Через элемент D4.2 к линии КС7 ППА подключен светодиод V3, зажигающийся во время выполнения цикла программирования.

При программировании ППЗУ на его вход ВМ подают положительное напряжение 12 В. На адресных линиях А0-А9 ППЗУ последовательно устанавливают адреса всех 1024 ячеек микросхемы, а на информационных линиях D0—D7 - соответствующие байты информации. Они считываются из буферного ОЗУ микро ЭВМ, где предварительно должна быть подготовлена исходная информация для программирования ППЗУ. Запись информации в ячейку ППЗУ происходит в момент подачи на его вход ПР программирующего импульса амплитудой 26В и длительностью 0,2...1мс. По окончании цикла программирования на вывод ВМ ППЗУ подают уровень 0 и последовательно считывают и сравнивают содержимое всех ячеек ППЗУ с исходной информацией в буферном ОЗУ. При обнаружении несоответствия цикл программирования повторяют. Как правило, для правильного программирования ППЗУ приходится выполнить несколько таких циклов. Все эти операции выполняются автоматически с помощью описанной ниже программы.

Управляющая программа модуля программатора предполагает наличие в составе микро-ЭВМ процессорного и отладочного модулей, модуля программатора и модуля ОЗУ—ПЗУ, такого же, как и наш. Область памяти с адресами F000H—F3FFH использована как буферная для хранения исходных данных. переписываемых при программировании в ППЗУ. Управляющая программа программатора состоит из нескольких независимых программ, расположенных в следующих областях памяти:

Машинные коды всех программ приведены на рис.4.

Прежде всего в память микро-ЭВМ с пульта отладочного модуля в режиме ПДП заносят программу - загрузчик, облегчающую введение других программ и данных в ОЗУ. Запускается программа-загрузчик с начального адреса F400H. В начале работы программы нужно ввести с тумблерного регистра Д0—Д7 пульта младший и старший байты адреса ячейки ОЗУ. начиная с которой будет занесена информация (в данном случае это адрес F000H), а затем — остальные байты, представленные на рис. 4.

Таблица 4.
F400 DB 00 6F DB 00 67 DB 00 77 23 C3 06 F4 DB 00 6F
F410 DB 00 67 7E 03 00 23 C3 13 F4 3E B2 D3 80 SE 60
F420 D3 81 21 00 F4 11 00 04 2B 1B 7B D3 83 7A F6 60
F430 D3 81 DB 82 77 7A 83 C2 28 F4 76 31 FF F7 06 10
F440 3E 82 D3 80 3E 60 D3 81 21 00 F4 11 00 04 2B 1B
F450 7B D3 83 7A F6 60 D3 81 DB 82 BE 3E 81 C2 69 F4
F460 7A 83 C2 4E F4 06 01 3E OF F5 OE OC 3E AO D3 81
F470 3E 80 D3 80 21 00 F4 11 00 04 2B 1B 7B D3 83 7A
F480 F6 AO D3 81 7E D3 82 7A F6 90 D3 81 3E 10 3D C2
F490 8E F4 7A F6 AO D3 81 7A B3 C2 7A F4 OD C2 74 F4
F4AO F1 05 C2 40 F4 D3 00 76

Рис.4

Программу чтения содержимого ОЗУ запускают с адреса F40DH. Эта программа считывает набираемые на тумблерном регистре Д0—Д7 младшие и старшие байты адреса первой просматриваемой ячейки ОЗУ, а затем после каждого нажатия на кнопку ВП на светодиодах ШД0—ШД7 отображает содержимое очередной ячейки памяти.

С помощью программы записи происходит собственно процесс программирования ППЗУ, т. е. подготовленные в буферном ОЗУ 1024 байта информации (“копия” содержимого ППЗУ) переписываются в него. При этом необходимо иметь в виду, что процесс программирования ППЗУ сводится к записи нулей в нужные разряды ячеек памяти, так как после стирания информации в ППЗУ (ультрафиолетовыми лучами) во всех его ячейках оказываются записанными единицы. При этом, например, попытка записи байта FFH в какую-либо ячейку ППЗУ не оказывает на нее никакого воздействия. Однако запись байта 00Н ведет к тому, что все разряды этой ячейки обнуляются.

Для того чтобы иметь возможность программировать ППЗУ по частям в несколько приемов (ведь ввести с тумблерного регистра 1024 байта за один “сеанс” непросто), перед тем, как начать записывать в буферное ОЗУ исходную информацию, туда необходимо переписать содержимое ППЗУ. Это можно сделать с помощью программы вывода содержимого ППЗУ в буферное ОЗУ, которую запускают по адресу F41AH. Затем в ячейки буферного ОЗУ, содержащие байты FFH (и только в эти ячейки), мы можем записывать необходимую информацию.

При занесении информации в буферном ОЗУ нужно учитывать, что последовательность байтов, записанная в ячейки с F000H по F3FFH буферного ОЗУ при программировании, перепишется в ячейки ППЗУ с 0000Н по 03FFH соответственно.

Программу записи ППЗУ запускают по адресу F43BH. Время ее работы — несколько десятков секунд. По окончании её работы на светодиодах ШД0ШД7 пульта отладочного модуля появляется комбинация 00001111 в случае успешного окончания процесса программирования или же 10000001 при невозможности за 16 циклов программирования записать нужную информацию. Причинами неудачи могут быть неполное предварительное стирание ППЗУ, неисправность самого ППЗУ, ошибки в наборе программы в ОЗУ и другие.

Рекомендуем первоначально записать в ППЗУ машинные коды программ, представленных на рис. 5.

FCOO DB 00 6F DB 00 67 DB 00 77 23 C3 06 FC DB 00 6F
FC10 DB 00 67 7E D3 00 23 C3 13 FC 3E 82 D3 80 3E 60
FC20 D3 81 21 00 F4 11 00 04 2B 1B 7B D3 83 7A F6 60
FC30 D3 81 DB 82 77 7A B3 C2 28 FC 76 31 FF F7 06 10
FC40 3E 82 D3 80 3E 60 D3 81 21 00 F4 11 00 04 2B 1B
FC50 7B D3 83 7A F6 60 D3 81 DB 82 BE 3E 81 C2 69 FC
FC60 7A B3 C2 4E FC 06 01 3E OF F5 OE OC 3E AO D3 81
FC70 3E 80 D3 80 21 00 F4 11 00 04 2B 1B 7B D3 B3 7A
FC80 F6 AO D3 81 7E D3 82 7A F6 90 C3 81 3E 10 3D C2
FC90 8E FC 7A F6 AO D3 81 7A 83 C2 7A FC OD C2 74 FC
FCAO F1 05 C2 40 FC D3 00 76

Рис.5

Это те же самые программы, что и уже описанные, но расположены в другой области памяти. При этом адреса запуска программы-загрузчика, программ просмотра содержимого ОЗУ, вывода содержимого ППЗУ в буферное ОЗУ, записи в ППЗУ соответственно будут равны FC00H, FC0CH, FC1AH и FC3BH. Тогда, установив вместо D43 (см. рис.2 в статье “Модуль памяти”) нашу БИС ППЗУ с записанной программой, получим достаточно удобное устройство для программирования, которое потребуется нам в дальнейшем.

Г. ЗЕЛЕНКО, В. ПАНОВ, С. ПОПОВ

Отсканировано с журнала Радио №5 1983 г.
Отредактировано Лесных Ю.И. 1999 г.

Описание компьютера Микро-80 Журнал РАДИО


(C) 2003-2010 www.danbigras.ru Наш адрес: info@danbigras.ru
Всё о старых компьютерах