МИКРОПРОЦЕССОРЫ И МИКРОКОНТРОЛЛЕРЫ
План
Серверы
Деш. К
Pг.Пр. АЛУ БУ
С
УУ
Сч. К
Указ.СТ
Шина Адреса
(Address Bus)
Б
ГТИ +5В GND
CLK
Микропроцессорные системы
ЦПЭ Б ШУ
У Системная магистраль
Ф ШД
Е
ША
Р
а) ВУ1 ВУ2 б) Y
А
Рис. 10.4. Структура порта (а) и схема канала буферного усилителя (б)
Функционирование порта состоит в приеме дешифратором кода, установленного на адресной
шине и в зависимости от результата выдаче сигналов управления на шинный усилитель, режим работы
которого зависит от сигналов на управляющих входах X и Y его каскадов (рис.10.4,б). При сочетании X
= 1 и Y = 1 происходит передача данных с входа А на выход В, а при X = 0 и Y = 0 – в противоположном
направлении. Если установлены управляющие сигналы X = 0 и Y = 1, то вход и выход разомкнуты.
Уровень выходной мощности шинного усилителя обеспечивает передачу данных внешним
устройствам.
Приведенная простейшая схема порта может быть использована только для параллельной
передачи данных внешнему устройству, работающему в одном темпе с магистралью. Во всех других
режимах порт должен обладать памятью, обеспечивающей согласования скорости передачи и приема
данных. Для связи с пространственно удаленными объектами, подключаемыми с помощью
двухпроводных линий связи применяются последовательные порты, в составе которых имеются
преобразователи параллельного кода в последовательный и наоборот.
В общем случае при обмене информацией ЦПЭ с ВУ выполняются операции по определению
состояний процессора и внешнего устройства, запрос и получение разрешения на передачу контроля
правильности кода адреса и другие. Для реализации сложных алгоритмов взаимодействия применяют
универсальные микропроцессорные схемы, называемые программируемыми периферийными
контроллерами (Peripheral Interface Controller) или специализированные устройства, построенных на
базе ПЛИС.
Обработка информации в МПС состоит в выполнении микропроцессором вычислительных
операций при интенсивном обмене данными через интерфейс между модулями под воздействием
сигналов управления в соответствии с программой. В процессе работы ЦПЭ принимает команды из ЗУ,
расшифровывает их, производит предписанные математические операции, выполняет операции ввода
новых данных от внешних устройств и выводит информацию в другие устройства.
Работа узлов системы осуществляется в определенной последовательности. Начало выполнения
программы связано с обращением к ПЗУ. Первое считанное слово всегда является кодом команды; оно
настраивает МП на выполнение определенной операции над данными и указывает, откуда эти данные
должны быть получены. Если данные хранятся в ПЗУ, ОЗУ или регистрах МП, то следующими
операциями МП считывает их, производит над ними необходимые действия и определяет место
хранения результата. Если команда предписывает использование данных одного из ВУ, то
соответствующий контроллер обмена УВВ получает информацию о режиме работы (прием или
передача) и задает начало обмена, устанавливая контакт с магистралью данных.
Координацию работы всех устройств в МПС осуществляет система управления, объединяющая
множество устройств и линий связи для выработки последовательности сигналов управления и
контроля. Для анализа процессов управления (выполнения программы) в МПС выделяют операционный
(ОБ) и управляющий (УБ) блоки, объединенные прямыми и обратными связями для передачи сигналов
(рис.10.5).
Осведомление Вх. данные
Программные Управление
установки УБ ОБ
ГТИ
Вых. данные
Выборка Исполнение
TК t
ПЗУ МК Микрокоманды
УСТРОЙСТВА ВВОДА-ВЫВОДА
Кратковременный звуковой сигнал обычно выдается сразу после включения электропитания МПС,
что означает начало функционирования, или формируется в процессе ее работы в необходимых
случаях. Схема программируемого устройства звуковой сигнализации (УЗС), адресуемого кодом на
линиях А0 — А7 и предназначенного для генерации звука определенной тональности, приведена на
рис. 2.20, где обозначено:
DD1 — дешифратор кода адреса на линиях А0—А2 .
DD2 — D-триггер
DD3 — логический элемент 2ИЛИ-НЕ, вырабатывающий сигнал записи WR;
схема на элементах DD4, DD5, DD6, разрешающая работу DD1 сигналом OE L-уровня.
Микросхема триггера вырабатывает электрические импульсы необходимой длительности и частоты,
которые затем усиливаются транзистором по току для их преобразования в звук громкоговорителем.
Генерация импульсов на выходе Q осуществляется путем поочередной записи в триггер со звуковой
частотой логических единиц и нулей, выдаваемых ЦП на линию D0 в соответствии с программой.
Временная диаграмма, отображающая процесс формирования триггером импульса Н-уровня
приведена на рис. 2.21. Согласно диаграмме, в момент времени t0 ЦП выдает на ША адресный код УЗС
— в данном случае 00h. В соответствии с этим кодом ДА устанавливает сигнал CS 0 L-уровня, после
чего на линию D0 помещается логическая 1. Далее, в момент времени t1 ЦП вырабатывает
низкоуровневый сигнал записи I / OW , поступающий после CS 0 на вход DD3. В результате операции
ИЛИ-НЕ между I / OW и CS 0 ( CS 0 I / OW ) микросхема DD3 на отрезке времени [t1, t2] выдаст
импульс WR Н-уровня, передний фронт которого осуществит защелкивание в триггере DD2 логической
1, ранее
Рис. 2.20
Рис. 2.21
установленной на линии D0. В этом случае в момент t1 выход триггера Q переключится из 0 в 1.
Обратное переключение выхода произойдет в момент t3 при записи 0 — таким образом будет
сформирован импульс длительностью [t1, t3].
Для того, чтобы D-триггер вырабатывал импульсы со звуковой частотой, существенно меньшей
той, с которой работает микропроцессор, необходима пауза между моментами времени защелкивания
единиц и нулей. Длительность паузы задается программно, путем циклического выполнения
микропроцессором одной или нескольких команд.
Приведенная ниже программа реализует запись в триггер 65535 импульсов с частотой,
определяемой временем выполнения подпрограммы временной задержки DELAY.
Программа 2.2
МЕТКА МНЕМОКОД КОММЕНТАРИЙ
LXI SP 0900 Начало программы
Запись в регистр SP адреса вершины
стека.
LXI B, FFFF Запись в регистровую пару ВС числа
повторений цикла START (65535
повторений).
START: XRA А Начало цикла START.
Поразрядное логическое исключающее
ИЛИ аккумулятора с самим собой, в
результате чего его разряды
устанавливаются в 0 (очистка).
OUT 00 Вывод содержимого аккумулятора
(нули) в УВВ (D-триггер) с адресом 00h.
CALL DELAY Вызов подпрограммы, формирования
временной паузы.
CMA Инвертирование содержимого
аккумулятора, в результате чего все его
разряды установятся в 1. После этой
операции аккумулятор будет содержать
код FFh.
OUT 00 Вывод содержимого аккумулятора (FFh)
в УВВ.
CALL DELAY Вызов подпрограммы, формирования
временной паузы.
DCX B Уменьшение содержимого регистровой
пары ВС на 1.
JNZ START Если результат не равен 0, то переход к
метке START.
Конец цикла START.
HLT Конец программы.
RST7
Подпрограмма 2.2
МЕТКА МНЕМОКОД КОММЕНТАРИЙ
DELAY: LXI D, FFFF Начало подпрограммы DELAY.
Запись в регистровую пару DE числа
повторений цикла CYCLE.
CYCLE: DCX D Начало цикла CYCLE.
Уменьшение регистровой пары DE на 1.
JNZ CYCLE Если результат не равен 0, то переход на
метку CYCLE.
Конец цикла CYCLE.
RET Возврат в основную программу.
Конец подпрограммы DELAY.
Выполнение основной программы начинается с записи в регистр SP адреса вершины стека, в
котором всякий раз будет сохраняться содержимое IP при вызове подпрограммы командами CALL
DELAY. При завершении этой подпрограммы командой RET сохраненное в стеке значение IP будет
восстановлено. Необходимость сохранения и восстановления IP была рассмотрена в п. 2.2.4.
Программа содержит цикл, начинающийся с метки START. Внутри цикла кроме остальных
находятся две команды OUT 00, осуществляющие запись в триггер логических единиц и нулей. Первая
команда OUT 00 выводит на ШД код 00h, а вторая — FFh. Если на ШД установлено значение 00h, то
разряд D0 равен 0, если же FFh — то 1. Перед началом цикла в регистр В записывается код FFFFh.
Счетчиком цикла является команда DCX B, уменьшающая регистр В на 1 до тех пор, пока не
произойдет обнуления всех его разрядов, завершающего цикл. Таким образом, в результате
циклического выполнения команд OUT 00 на линию D0 будет выдано 65535 единиц и нулей, частота
формирования которых определит длительность звучания.
Рис. 2.22
данных может находиться только в режиме 0. В остальных режимах он служит для передачи
управляющих сигналов, сопровождающих процесс обмена информации по каналам А и В. Рассмотрим
режимы работы каналов.
Режим 0. В этом режиме ППИ рассматривается как цифровое устройство, состоящее из портов
ввода/вывода, настраиваемых управляющим словом на ввод или вывод.
Режим 1. Передача данных производится по каналам А и В, а линии канала С управляют
передачей.
Режим 2. Этот режим обеспечивает двунаправленную передачу по каналу А к внешнему
устройству и обратно. Процесс обмена сопровождается управляющим сигналом по каналу С.
Чтение данных из ППИ осуществляется командой IN <номер порта>, а запись — OUT <номер
порта> Определим номера портов для этих команд согласно схеме подключения ППИ, приведенной на
рис. 2.22. Очевидно, что для взаимодействия ЦП с ППИ необходимо, чтобы сигнал CS ,
вырабатываемый дешифратором адреса, был активен — сигнал на линии Y1 должен иметь значение
A 4 A3 A 2
«0». В этом случае на входах дешифратора должен быть установлен двоичный код 0 0 1 . Тогда (см.
A 4 A3 A 2 A1 A 0
таблицу 2.4) адрес регистра управляющего слова будет соответствовать числу 0 0 1 1 1 (07h), канала
A 4 A3 A 2 A1 A 0 A 4 A3 A 2 A1 A 0 A 4 A3 A 2 A1 A 0
А — 0 0 1 0 0 (04h), канала В — 0 0 1 0 1 (05h), канала С — 0 0 1 1 0 (06h).
Рис. 2.23
Программирование режима работы ПИТ осуществляется путём записи определенного кода в регистр
управляющего слова также, как и в ППИ (см. п. 2.5.2). Адресация счетчиков ПИТ и регистра
Таблица 2.7
Устройства ПИТ Адресные линии
А1 А0
Канал OUT0 0 0
Канал OUТ1 0 1
Канал OUТ2 1 0
Регистр управляющего слова 1 1
Таблица 2.8
Вывод ИМС Назначение
D0...D7 Линии передачи данных
RD , WR Входы управления чтением и записью
А0 Адресный вход
INTA Подтверждение прерывания
INT Сигнал прерывания микропроцессора
IR0 — IR7 Входы запросов прерываний от ВУ
CS Вход выборки ИМС
Рис.2.25
Рис. 2.26
ПКП вырабатывает сигнал IRQ, который принимает микропроцессор (см. рис. 2.25 и рис.2.1);
прием микропроцессором IRQ подтверждается импульсным сигналом INTA , вырабатываемый
СКФ (см. п. 2.1);
после приема первого импульса INTA ПКП формирует на шине данных код операции
команды CALL;
микропроцессор по ШД принимает код операции CALL и выдает еще 2 импульса сигнала
INTA, по которым ПКП передает два байта вектора прерывания, причем сначала передается
младший байт адреса, а затем старший.
При обслуживании прерывания по опросу микропроцессор программируется таким образом, что
периодически обращается к ПКП (опрашивает) и производит считывание по сигналу I/OR кода номера
запроса с наивысшим приоритетом. При этом ПКП осуществляет прием запросов от ВУ также, как и
при обслуживании по запросу.
При передаче больших массивов информации между ОЗУ и ВУ для уменьшения вычислительной
нагрузки на микропроцессор и повышения тем самым скорости обмена ВУ с оперативной памятью
необходима пересылка данных без участия микропроцессора. Такой обмен принято называть прямым
доступом к памяти (ПДП). Поскольку чтением и записью информации в ОЗУ управляет
микропроцессор, то для реализации ПДП необходимо другое устройство, реализующее эти
управляющие функции — контроллер ПДП (КПДП). Таким образом, задача КПДП — замещение
микропроцессора в организации циклов чтения и записи данных, пересылаемых между памятью и ВУ.
Пример подключения ИМС КПДП к системным шинам МПС приведен на рис 2.27, где
обозначено:
DD1 — ИМС КПДП;
DD2 — регистр;
DD3 — логический инвертор.
ИМС КПДП содержит:
каналы ПДП, содержащие регистр адреса ячейки памяти, с которой производится обмен и
счетчик циклов обмена;
буфер данных, предназначенный для обмена данными между микропроцессором и КПДП;
схему управления чтением/записью, адресующую внутренние регистры КПДП;
блок управления, содержащий регистр режима и состояния КПДП и обеспечивающий
последовательность операций, необходимую для организации ПДП;
блок управления приоритетами, обеспечивающий определенный порядок обслуживания
внешних устройств.
Назначение выводов ИМС КПДП приведено в таблице 2.9.
КПДП выполняет следующие основные функции:
Таблица 2.9
Вывод ИМС Назначение
HOLD Запрос ПДП микропроцессору
HLDA Подтверждение ПДП от микропроцессора
CLC Вход импульсов тактовой частоты, поступающих от ГТИ
микропроцессора (см. рис. 2.1)
READY Сигнал готовности
I/OR Чтение ввода/вывода — тристабильный вход/выход; входное
напряжение L-уровня разрешает чтение информации из КПДП;
выходной сигнал L-уровня разрешает чтение из ВУ
I/OW Запись ввода/вывода — тристабильный вход/выход; входное
напряжение L-уровня разрешает программирование КПДП;
выходной сигнал L-уровня разрешает запись в ВУ
MEMR Чтение из памяти — тристабильный выход; выходное
напряжение L-уровня разрешает чтение из ячейки памяти,
адресуемой КПДП
MEMW Запись в память — тристабильный выход; выходное напряжение
L-уровня разрешает запись в ячейку памяти, адресуемую КПДП
DRQ0......DR Запросы ПДП от внешних устройств
Q3
DACK0.....D Подтверждение ПДП внешним устройствам
ACK3
TC Конец счета — напряжение Н-уровня определяет выполнение
последнего цикла передачи блока данных
RESET Вход начальной установки КПДП
ASTB Выход строба записи части адресного кода в регистр DD2
AEN Сигнал разрешения работы системных шин
CS Вход выборки микросхемы КПДП
h g f e d c b a
00h 0 0 1 1 1 1 1 1
01h 0 0 0 0 0 1 1 0
02h 0 1 0 1 1 0 1 1
03h 0 1 0 0 1 1 1 1
04h 0 1 1 0 0 1 1 0
05h 0 1 1 0 1 1 0 1
06h 0 1 1 1 1 1 0 1
07h 0 0 0 0 0 1 1 1
08h 0 1 1 1 1 1 1 1
09h 0 1 1 0 1 1 1 1
Рис. 2.27
Схема устройства индикации, осуществляющего вывод на СДМ цифр десятичных чисел от 0 до 9,
приведена на рис. 2.29, где обозначено:
DD1, DD2 — соответственно 4-рязрядный регистр и ПЗУ, имеющие ОК-выходы;
DD3 — логический элемент ИЛИ.
По сигналу STB , формируемым элементом ИЛИ, 4-разрядный код числа (от 0 до 9), отображаемого на
СДМ, записывается в регистр. Выходы регистра подключены к адресным линиям ПЗУ, выполняющего
функцию преобразования двоичного кода числа в код СДМ. Преобразование осуществляется
следующим образом: код преобразуемого числа является адресом ячейки ПЗУ, в которой хранится 8-
разрядный код СДМ, выдаваемый на линии D0 — D7. Адреса и содержимое ячеек приведены в таблице
2.10 .
а) б)
Рис. 2.28
Рис. 2.29