Скачиваний:
69
Добавлен:
21.02.2014
Размер:
975.87 Кб
Скачать

1 Расшифровка и анализ задания

Управляющая микроЭВМ проектируется на базе однокристальной микроЭВМ и включает в себя сле­дующие основные устройства:

  • процессорный модуль;

  • память, состоящую из ОЗУ и ПЗУ;

  • устройства параллельного ввода/вывода для связи с ОУ;

  • блок последовательного канала для связи с ЭВМ верхнего уровня;

  • программируемый системный таймер;

  • контроллер прерываний;

  • контроллер прямого доступа в память;

  • пульт управления.

Базовый микропроцессор (микроЭВМ), на основе которого требуется построить управляющую микроЭВМ – К1816ВЕ48.

Тип БИС, на которой должен быть реализован блок оперативного запоминающего устройства (ОЗУ) – К134РУ6.

Тип БИС, на которой должен быть реализован блок постоянного запоминающего устройства (ПЗУ) – К541РТ2.

Обработка информации от цифровых датчиков и выдача управляющего воздействия y1 производится путем ввода значений х1, х2, х3, х4 и вычисления значения булевой функции f11, х2, х3, х4).

При единичном значении f1 вырабатывается управляющий сигнал y1=1 длительностью t1. Это значит, что через t1 после выдачи y1 = 1 необхо­димо выработать y1=0.

При обработке информации с аналоговых датчиков ПМ принимает коды NU1, NU2 с выходов АЦП и код константы К с регистра пуль­та управления. Далее вычисляется значение функции NU=f2 (NU1, NU2, К) и сравнивается с константой Q, хранящейся в ПЗУ. В зависимости от ре­зультатов сравнения вырабатывается (аналогично у1) один из двух двоичных управляющих сигналов у2 или у3 заданной длительности по следую­щему правилу: если NU < Q, то выдать у2 длительностью t2, иначе выдать у3 длительностью t3.

Далее формируется управляющее воздействие Y4, для чего с АЦП вводится значение NU3 и производится вычисление по формуле:

Y4=A0+AlNU3.

Значение Y4 в виде 8-разрядного кода выдается на вход ЦАП.

Все двоичные переменные и константы, участвующие в вычислени­ях: NU1, NU2, NU3, К, Q, А0, A1, Y4 рассматриваются как целые без знака.

После выдачи всех управляющих воздействий проверяется со­стояние тумблера "СТОП" на пульте управления. Если СТОП=0, цикл управления начинается с начала, иначе выполняется процедура останова системы, включающая следующие действия: формируется сигнал установ­ки системы в исходное состояние путем подачи на линию начальной уста­новки интерфейса двух прямоугольных импульсов длительностью 30 мкс интервалом 30 мкс; выполняется команда процессора СТОП.

Алгоритм управления, заданный видом функцией:

Управляющее воздействие , длительность управляющих сигналов t1 = 35 c;

NU = max(NU1; NU2+K), длительность управляющих сигналов t2=80 c, t3=80 c.

В системе необходимо предусмотреть следующие линии запроса на внешние прерывания:

INT0 - отказ источника питания;

INT1 - сигнал ха аварийного датчика ОУ;

INT2 - запрос от пульта управления (прерывание оператора);

INT3 - запрос от микроЭВМ верхнего уровня.

Запросы на прерывания приведены в порядке убывания приоритетов (INT0 - высший приоритет). Система должна реагировать на запросы следующим образом:

INT0 - вырабатывается сигнал установки системы в исходное со­стояние; выполняется команда СТОП.

INT1 - на пульте управления включается аварийная сигнализация (световая с частотой 2Гц или звуковая с частотой 500Гц); на индикацию пульта выдается состояние двоичных датчиков х1, х2, х3, х4 и цифровой код NU1; выполняется команда СТОП.

INT2 - выдается на индикацию значения следующих булевых пере­менных: функция fl, результат сравнения NU<=Q, значение выражения xl234, значение выражения xlvx2vx3vx4; выдается на индика­цию значение сохраняемой в ПЗУ константы Q; организуется выход из прерывания на начало цикла управления.

INT3 - выдать в последовательный канал следующую информацию:

  • код символа '!' ("Внимание!");

  • двухзначный номер абонента (номер студента в списке группы) ;

  • максимальное значение Y4, вычисленное за период от предыдущего сеанса связи до текущего цикла управления;

  • минимальное значение Y4 за тот же период;

  • код символа '#' ("Конец передачи").

Кроме перечисленных, в системе могут использоваться прерывания от внешних устройств, обеспечивающих связь с ОУ, системного таймера и канала последовательного обмена.

2 РАЗРАБОТКА ПРОЦЕССОРНОГО МОДУЛЯ, ИНТЕРФЕЙСА,

УТОЧНЕННОЙ СТРУКТУРНОЙ СХЕМЫ

2.1 Основные параметры микроЭВМ К1816ВЕ48

Микросхема К1816ВЕ48 представляет собой БИС однокристального микроконтроллера со встроенным ОЗУ и ПЗУ небольшого объема и с воз­можностью расширения объема памяти за счет подключения внешних БИС. Микроконтроллер предназначен для управления конвейерами, металлорежу­щими станками, технологическим обору­дованием, роботами, манипуляторами, может использоваться в контрольно-из­мерительной и бытовой технике.

Основные параметры контроллера К1816ВЕ48 приведены в таблице 1.

Таблица 1 – Основные параметры БИС К1816ВЕ48

Название

Значение

Разрядность команд и данных, бит

8

Разрядность канала адреса, бит

12

Объем внутренней памяти команд/данных, слов

1024/64

Объем внешней памяти команд/данных, слов

3072/56

Число регистров общего назначения, штук

16

Производительность, тыс. кор. операций/с

400

Частота синхронизации БИС, МГц

6

Ток потребления, мА

135

Диапазон рабочих температур, °С

10…+70

Отличительной особенностью БИС является использование встроенного ПЗУ со стиранием информации ультрафиоле­том, что позволяет пользователям само­стоятельно программировать микрокон­троллер.

В состав БИС входят все компо­ненты, необходимые для автономной ра­боты в составе систем управления, при необходимости допускается значительное расширение объема памяти. По уровням логи­ческих сигналов микроконтроллер совме­стим со стандартными ТТЛ-схемами. Конструктивно БИС оформлена в металлокерамическом корпусе с прозрачной крышкой типа 2123.40 – 6.

Базовая архитектура К1816ВЕ48 содержит 8-разрядный центральный процессор, управляющее ПЗУ, внутреннее ОЗУ, 24 линии прямого ввода-вывода, три тестируемых входа, 8-разрядный таймер/счетчик и логику одноуровневой системы прерываний с двумя источниками запросов.

2.2 Цоколевка и описание выводов микроЭВМ К1816ВЕ48

Цоколевка данной микроЭВМ представлена на рисунке 1.

Рисунок 1 – Цоколевка БИС К1816ВЕ48

Ниже приводятся символические имена выводов, в скобках указываются номера выводов корпуса и дается краткое пояснение назначения вывода.

VSS (20) – потенциал земли;

VCC (40) – основное напряжение питания +5 В; подается во время работы и при программировании;

VDD (26) – дополнительное напряжение питания +5 В; во время работы обеспечивает питание только для РПП; на этот вывод при программирование попадает питание +25 В;

PROG (25) – вход для подачи программирующего импульса +25 В при загрузке РПП; вход стробирующего сигнала для БИС расширителя ввода / вывода;

ХTAL1 (2) – вход для подключения вывода кварцевого резонатора или вход для сигнала от внешнего источника синхронизации;

ХTAL2 (3) – вход для подключения второго вывода резонатора;

RST (4) – вход сигнала общего сброса при запуске МК; сигнал 0 при программировании и проверке РПП;

SS (5) – сигнал, который совместно с сигналом ALE позволяет при отладке выполнять программу с остановом после исполнения очередной команды;

PSEN (9) – разрешение внешней памяти программ; сигнал выдается только при обращении к внешней памяти программ;

ALE (11) – строб адреса внешней памяти; сигнал используется для приема и фиксации адреса внешней памяти на внешнем регистре; сигнал является идентификатором машинного цикла, так как всегда выводится из МК с частотой, в 5 раз меньшей основной частоты синхронизации;

RD (8) – стробирующий сигнал при чтении из внешней памяти данных или УВВ;

WR (10) – стробирующий сигнал при записи во внешнюю память данных или УВВ;

Т0 (1) – входной сигнал опрашиваемый по командам условного перехода JT0 и JNT0; кроме того используется при программировании РПП; может быть использован для вывода сигнала синхронизации после команды ENT0 CLK;

Т1 (39) – входной сигнал, опрашиваемый командами условного перехода JT1 и JNT1; кроме того, используется в качестве входа внутреннего счетчика внешних событий после исполнения команды STRT CNT;

INT (6) – сигналы запроса прерывания от внешнего источника; вызывает подпрограмму обслуживания прерывания, если прерывание разрешено ранее по команде ENI; сигнал RST запрещает прерывания;

EA (7) – отключение РПП; уровень 1 заставляет МК выполнять выборку команд только из внешней памяти программ; используется при тестировании прикладных программ и отладки МК;

P1 (27-34) – 8-битный двунаправленный порт ввода / вывода информации; каждый разряд порта может быть запрограммирован на ввод или вывод;

P2 (21-24) – 8 - битный двунаправленный порт ввода / вывода информации; каждый разряд порта может быть запрограммирован на ввод или вывод; биты 0-3 этого порта вовремя чтения из внешней памяти содержат старшие четыре бита счетчика команд СК 8-11; используется для подключения БИС расширителя ввода / вывода (порты Р4 - Р7);

Порт BUS (DB) (12-19) – 8 - битный двунаправленный порт ввода / вывода информации; может быть отключен от нагрузки; может выполнять прием и выдачу байтов синхронно с сигналами RD и WR; при обращении к внешней памяти содержит 8 младших бит счетчика команд и затем по сигналу PSEN принимает выбранную команду; при обращении к внешнему ОЗУ содержит младшие 8 бит адреса синхронно с сигналом ALE и байт данных синхронно с сигналами RD или WR.

2.3 Структура микроЭВМ К1816ВЕ48

Основу структуры МК (рисунок 2) образует внутренняя 8-битная шина, которая связывает между собой все устройства БИС:

  • арифметико-логическое устройство (АЛУ),

  • устройство управления,

  • память,

  • порты ввода-вывода информации.

Рисунок 2 – Структурная схема БИС К1816ВЕ48

2.3.1 Арифметико-логическое устройство. В состав АЛУ входят следующие блоки: комбинационная схема обработки байтов, регистры Т, регистр-аккумулятор А, схема десятичного корректора и схема формирования признаков. Аккумулятор используется в качестве регистра операнда и регистра результата. Регистр временного хранения операнда Т1 программно недоступен и используется для временного хранения второго операнда при выполнении двухоперандных команд. Комбинационная схема АЛУ может выполнять следующие операции: сложение байтов с переносом или без него; логические операции И, ИЛИ и исключающее ИЛИ; инкремент, декремент, инверсию, циклический сдвиг влево, вправо через (или минуя) флаг переноса, обмен тетрад в байте; десятичную коррекцию содержимого аккумулятора.

При выполнении операций обработки данных в АЛУ вырабатываются флаги (признаки), которые (за исключением флага переноса С) формируются на комбинационной схеме и не фиксируются на триггерах. К таким флагам относятся флаг нулевою содержимого аккумулятора и флаг наличия единицы в селектируемом бите аккумулятора. Логика условных переходов по указанным флагам позволяет выполнять команды передачи управления (JZ, JNZ, JB0 - JB7) без их фиксации на триггерах.

Флаги переноса и вспомогательного переноса (перенос из младшей тетрады в старшую) фиксируются на триггерах, входящих в состав регистра слова состояния программы (ССП).

Формат ССП показан на рисунке 3. Кроме перечисленных признаков логика условных переходов МК оперирует флагами FO и FI, функциональное назначение которых определяется разработчиком; флагом прерывания от счетчика TF, сигналами на входах Т0 и Т1, флагом внешнего прерывания XF. Программистом могут быть также использованы флаги рабочего банка регистров BS и выбранного банка внешней памяти программ МВ. Кроме того, логикой переходов после окончания каждого машинного цикла опрашивается еще два флага, а именно флаг разрешения/запрета прерываний от таймера ЕТ и внешних прерываний ЕХ.

Рисунок 3 – Формат слова состояния программы

Процессор имеет одноуровневую систему прерываний по адрес-вектору, которая воспринимает запросы на прерывания от внешнего источника и внутреннего таймера счетчика. Прерывания могут быть избирательно разрешены или запрещены командами EN и DIS. Внешнее прерывание имеет больший приоритет.

Прерывание таймера происходит, когда значение счетчика перейдет через 0. Адрес прерывания 007, флаг прерывания - TF, разрешение прерывания - флаг ET. Внешнее прерывание происходит, когда на входе INT низкий уровень. Адрес прерывания 003, флаг прерывания - XF, разрешение прерывания - флаг EX.

Если прерывание разрешено, то процессор будет реагировать на событие передачей управления (автоматическая команда CALL) по соответствующему адресу. Существует одна особенность обработки прерываний: независимо от состояния флага MB вызов подпрограммы обработки прерываний будет происходить в банке 0.

2.3.2 Память микроконтроллера. Память программ и память данных в МК48 физически и логически разделены. Память программ реализована в резидентном СППЗУ емкостью 1 Кбайт. Максимальное адресное пространство, отводимое для программ, составляет 4 Кбайта. Счетчик команд (СЧ) содержит 12 бит, но инкрементируются в процессе счета только младшие 11 бит. Поэтому счетчик команд из предельного состояния 7FFH (если только по этому адресу не расположена команда передачи управления) перейдет в состояние 000Н. Состояние старшего бита счетчика команд может быть изменено специальными командами (SEL МВ0, SEL МB1), Подобный режим работы счетчика команд позволяет создать два банка памяти емкостью по 2 Кбайта каждый. Карта адресов памяти программ показана на рисунке 4.

В резидентной памяти программ имеется три специализированных адреса:

  • адрес 0, к которому передается управление сразу после окончания сигнала СБР, по этому адресу должна находиться команда безусловного перехода к началу программы;

  • адрес 3, по которому расположен вектор прерывания от внешнего источника;

  • адрес 7, по которому расположены вектор прерывания от таймера или

начальная команда подпрограммы обслуживания прерывания по признаку переполнения таймера/счетчика.

Память программ разделяется не только на банки емкостью 2 Кбайта, но и на страницы по 256 байт в каждой. В командах условного перехода задается 8-битный адрес передачи управления в пределах текущей страницы. В случае, когда в программе необходимо иметь много переходов по условию, из-за небольшого размера страницы возникает проблема размещении соответствующих программных модулей в границах страницы. Команда вызова подпрограмм модифицирует 11 бит счетчика команд, обеспечивая тем самым межстраничные переходы в пределах выбранного банка памяти программа.

Рисунок 4 – Карта адресов памяти программ

В микроконтроллерной системе, работающей с внешней памятью программ, возникает проблема размещения подпрограмм в двух банках памяти. Проблема эта связана с тем, что микроконтроллер не имеет средств считывания и анализа флага МВ, равного содержимому старшего бита счетчика команд СК11. Поэтому в каждый текущий момент исполнения программы, состоящей из потока вызовов подпрограмм, нет возможности определения номера банка памяти, из которого осуществляется выборка. Так как переходы между банками выполняются только по командам SEL MB, необходимо следить за тем, чтобы подпрограммы, взаимно вызывающие друг друга, располагались в пределах одного банка памяти. В противном случае возникает необходимость модификации признака МВ в вызываемой подпрограмме и восстановления его при возврате в вызывавшую подпрограмму. Но если вызов такой подпрограммы носит условный характер, то проблема восстановления может оказаться неразрешимой.

При обработке запросов прерываний в К1816ВЕ48 старший бит счетчика команд СК11 принудительно устанавливается в 0. Это приводит к необходимости подпрограмму обслуживания прерывания и все подпрограммы, вызываемые ею, размещать в пределах банка памяти 0.

Резидентная память данных емкостью 64 байта имеет в своем составе два банка рабочих регистров 0-7 и 24-31 по восемь регистров в каждом. Выбор одного из банков регистров выполняется по команде SEL RB. Рабочие регистры доступны по командам с прямой адресацией, а все ячейки РПД доступны по командам с косвенной адресацией. В качестве регистров косвенного адреса используются регистры R0, R1 и R0*, R1* (рисунок 5).

Ячейки РПД с адресами 8-23 адресуются указателем стека из ССП и могут быть использованы в качестве 8-уровневого стека. В случае если уровень вложенности подпрограмм меньше восьми, незадействованные в стеке ячейки могут использоваться как ячейки РНД. При переполнении стека, регистр-указатель стека, построенный на основе 3- битного счетчика, переходит из состояния 7 в состояние 0. Малая емкость стека ограничивает число возможных внешних источников прерывания в МК-системе. МК48 не имеет команд загрузки байта в стек или его извлечения из стека, и в нем фиксируется только содержимое счетчика команд и старшая тетрада ССП (флаги). В силу этого разработчику необходимо следить за тем, чтобы вложенные подпрограммы не использовали одни и те же рабочие регистры.

Рисунок – 5 Карта адресов памяти данных

Практически все команды с обращением к РПД оперируют с одним байтом. Однако по командам вызова и возврата осуществляется доступ к двухбайтным словам. В памяти данных слова хранятся так, что старший байт слова располагается в ячейке с большим адресом. Отметим, что в памяти программ порядок расположения байтов по старшинству при хранении двухбайтных слов обратный.

В МК-системах, где используется внешнее ОЗУ, через регистры косвенного адреса R0 и RI возможен доступ к ВПД емкостью 256 байт.

Программа записывается последовательно, в порядке возрастания адресов. Специальный регистр процессора - PC (счетчик команд) содержит адрес следующей (за выполняемой) команды.

Содержимое PC автоматически увеличивается на 1 после каждого выбора очередной команды. PC прямо не доступен, но косвенно его изменяют команды перехода, вызова подпрограмм и возврата из подпрограмм.

Стек служит для промежуточного хранения старшей тетрады PSW и адреса возврата при обработке прерываний и вызовах подпрограмм. Набор флагов CY, AC, F0, BS вместе с 12-ю разрядами PC образуют 2-х байтовый объект, где старшие 4 разряда - флаги. Стек заполняется в сторону увеличения адресов.

Указатель стека хранится в PSW и указывает на первую свободную ячейку стека. Размер стека ограничен восемью элементами (16 байт). Стек занимает область данных с адресами 08h -17h.

Указатель стека указывает на первую свободную ячейку в системном стеке. Указатель хранится в PSW и занимает 3 бита, т.е. возможно только 8 элементов стека. При занесении в стек большего числа элементов происходит переполнение, и переход через границу на начало. Обратное переполнение возможно, когда пытаются получить данные из пустого стека.

Соседние файлы в папке управляющую микроЭВМ – К1816ВЕ48