Понятие о микроЭВМ на примере однокристального микроЭВМ серии К1816
МикроЭВМ этой серии разработаны для использования в качестве микроконтроллеров, для которых требуются короткие программы, небольшой объем оперативной памяти и ограниченные возможности ввода-вывода. Серия К1816 выпускается в четырех модификациях, отличающихся быстродействием, объемом программной и оперативной памяти, а также способом программирования ПЗУ (см. табл. 5). Однокристальные микроЭВМ серии К1816 размещены в 40-выводном корпусе и имеют два вывода питания +5 В, один из которых Ucc подводит питание к микроЭВМ, а другой UDD - к внутреннему ОЗУ, что позволяет сохранять в нем данные во время сбояпитания.
Архитектура микроЭВМ
Как было указано ранее, особенностью архитектуры микроконтроллера является логическое и физическое разделение памяти на программную и данных. Программная память представлена только ПЗУ, так как в К1816 отсутствуют программные средства оперативной записи команд и программ. Память может расширяться путем подключения внешних БИС: программная — на 2 Кбайта, данных — на 256 байт. Возможно также расширение средств ввода-вывода за счет использования интерфейсных БИС серии К580. Таблица 5
Структурная схема однокристальной ЭВМ приведена на рис. 23. Она во многом напоминает нам схему микропроцессора серии К580. Основными отличиями К1816 от МП580 являются: 1. Увеличен объем внутренней сверхоперативной памяти данных. 2. Введена память команд. 3. Введен аппаратный таймер.
4. Используется мультиплексирование данных и адреса в порту ввода/вывода. 5. Увеличено число сигналов логического воздействия на микроЭВМ. Элементы структурной схемы могут быть объединены в четыре блока (обведены пунктирной линией): · центральное процессорное устройство; · блок программного управления; · устройство ввода-вывода; · блок оперативных регистров. Центральное процессорное устройство включает в себя устройство синхронизации и управления, АЛУ и схему условных переходов, которая организует условные переходы по битам регистра флажков АЛУ и внешним сигналам управления ТО и Т1. АЛУ строится аналогично МП580 — оно выполняет операции накапливающего типа в двоичной и десятичной арифметике. Устройство синхронизации и управления связано с периферийными устройствами 13-разрядной шиной С {12: 0}, отдельные провода которой несут на себе следующие сигналы (в скобках указаны аналоги сигналов МП580): BQ1, BQ2 - подключение кварца или LC — цепи синхронизации встроенного тактового генератора или входа внешнего тактового генератора; WR (WR) — запись во внешнюю память данных, запись из порта BUS во внешнее устройство; RD (DBIN) — чтение из внешней памяти или из внешних устройств, подключенных к порту BUS ALE (C) (address latch enable) — стробирование внешней памяти; SR (RESET) (set-reset) - инициализация микроЭВМ; INT (INT) — сигнал запроса на прерывание; SS — организация пошагового выполнения программы (используется совместно с ALE); PME (periphery memory enable) - стробирование внешней памяти при чтении.
Рис.23.
EMA (external memory access} — доступ к внешней памяти. Используется также при программировании и проверке ППЗУ; PR (periphery register) — расширение каналов ввода/вывода. Используется также при программировании ППЗУ; ТО — ввод условия для JTO/JNTO или выход тактовых сигналов после выполнения команды ENTO CLK; TI — ввод условия для JT1/JNT1 или ввод счетчика внешних событий после выполнения команды STRT CNT.
Блок программного управления преобразует коды команд программы в сигналы управления. Он включает в себя счетчик команд (PC), дешифратор адреса команды, ППЗУ, регистр команды (IR) и дешифратор команды (IDC). В отличие от МП580, этот блок может работать как с внутренней, так и с внешней памятью. В последнем случае код адреса РС {11: 0} подается на внешнюю программную память, а байтный код команды записывается непосредственно в регистр команды. Устройство ввода/вывода включает в себя три байтных порта BUS, PI и Р2. Порты Р\ и Р2 имеют идентичные характеристики. При выводе информации данные от ЭВМ записываются в регистры порта и остаются там неизменными до следующей записи. При вводе информации входной код, поддерживаемый неизменным на время действия импульса RD, маскируется кодом регистра порта и передается в микроЭВМ. Если код вводится без изменений, предварительно, еще до ввода, в регистре порта должен быть записан единичный код маски. Записанный в режиме вывода код регистра порта может программно модифицироваться. Порт Р2 используется также для подключения расширителя ввода/вывода и выдачи четырех старших разрядов программного счетчика РС{11: 8 }. Порт BUS реализует двунаправленный канал передачи данных. Он передает восемь младших разрядов кода адреса команд РС{1: 0} или кода адреса данных ADRD {7: 0} при работе с внешней программной памятью или памятью данных и байт данных D{1: 0} при работе с внешней памятью или схемами расширения (интерфейсные БИС серии К580). По завершению передачи данных порт переходит в третье состояние. Блок оперативных регистров включает в себя ОЗУ, таймер-счетчик, регистр состояния программы, схему прерывания и регистр дополнительных флажков. Оперативное запоминающее устройство имеет объем либо в 64 байта (BE 35/48), либо 128 байт (BE 39/49). Назначение отдельных ячеек ОЗУ изображено на рис. 24 Ячейки с адресами 0 + 7 и 24 + 31 образуют два банка регистров общего назначения. Выбор банка осуществляется по состоянию триггера номера банка RBF, а регистра внутри банка — по трехбитному коду адреса регистра в банке N{2:0} (режим прямой регистровой адресации). К любой ячейке ОЗУ (в том числе и ячейкам банка регистров) можно обратиться по их полному адресу в режиме косвенной регистровой адресации по содержимому регистров R0 или R1 выбранного банка регистров.
В отличие от МП580, в котором стековая память располагается вне микропроцессора и имеет, практически, неограниченный объем (до 64 Кбайт), стек КР816 содержит всего 16 ячеек и обеспечивает запись восьми двухбайтных слов, необходимых для возврата на основную программу после завершения подпрограммы или обработки прерывания. Каждое слово содержит значение адреса возврата PC(11:0} и старшую тетраду слова состояния программы PSW. Напомним, что в МП580 PSW характеризовало состояние аккумулятора и регистра флажков (PSW = F.A). К1816 биты PSW имеют другой смысл: PSW{2:0} (SP{2:0} — указатель стека (адреса отсчитываются от нижней границы стека для двух соседних ячеек (см. рис. 2.2)); PSW{3} = 1 — разряд забит единицей; PSW{4} = RBF — номер банка регистров; PSW{5} = FO - флаг пользователя. PSW{6} = AC(adjust carry) - дополнительный флаг переноса; PSW{7} = C – флаг переноса. Слово состояния программы хранится в регистре состояния программы и изменяется либо в процессе выполнения команд программы, либо при возврате на основную программу (только старшая тетрада PSW). Флажки пользователя (Fl, RBF, CNTF, INTF) не поместившиеся в регистре PSW, фиксируются триггерами регистра дополнительных флажков. Восьмиразрядный таймер-счетчик считает поступающие из вне через Т1 сигналы и генерирует временные задержки без отвлечения АЛУ от выполнения основной программы. Переключение режимов таймера осуществляется программно. Содержимое счетчика считывается или загружается с помощью аккумулятора. При инкрементном переполнении счетчика (FF -> 00) устанавливается флаг переполнения TF и счет продолжается. Переполнение, если есть на то разрешение, вызывает прерывание программы, которое обслуживается подпрограммой прерывания по адресу 07H. В режиме генерации временных задержек счетчик запитывается от делителя основной тактовой частоты Fbq на 480. При Fbq = 6 МГц квант задержки составляет 80 мкс. Задержки более 80x256=20480 мкс формируются программными средствами. Одноуровневая схема прерываний обеспечивает приоритет прерывания (внешнее прерывание INT — старший, флаг таймера TF — младший) и программное маскирование прерываний. МикроЭВМ КР1816 работает аналогично МП580. Инициализация работы КР1816 происходит при подаче импульса SR длительностью порядка 50 мкс. При этом осуществляются следующие действия:
· программный счетчик сбрасывается в О (PC = 0); · указатель стека сбрасывается в О (SP = 0); · выбирается нулевой банк регистров (RBF = 0); · выбирается нулевой банк программной памяти (MBF = 0); · блокируется внешнее прерывание (INTF=0); · порты Р1 и Р2 устанавливаются в режим приема; · останавливается таймер/счетчик; · сбрасываются флаги F0 и F1. Выполнение программы начинается с команды нулевого адреса. Каждая команда занимает от одного до двух байт программной памяти и выполняется внутри цикла команды. Этот цикл делится на машинные циклы (цикл обращения к памяти/цикл генерации ALE), длительность которых составляет 15 периодов сигнала синхронизации Tbq. Это соотношение помогает подсчитывать время выполнения программы и формировать калиброванные временные задержки. Программа выполняется до тех пор, пока не будут сформированы коды всех управляющих сигналов. После этого микроЭВМ переходит в режим ожидания, выход из которого происходит только в случае либо повторной инициализации программы, либо действия одного из внешних или внутренних сигналов прерывания. При входе в программу по вектору внешнего прерывания управление передается команде по адресу ООЗН, а по вектору прерывания по таймеру — команде по адресу 007Н.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|