naf-st.ru naf-st.ru naf-st.ru naf-st.ru
 
Поиск по сайту
 

Архитектура ОМК КМ1816ВЕ48


Архитектура однокристальных микроконтроллеров К содержанию Режимы работы ОМК 48
Page copy protected against web site content infringement by Copyscape

БИС однокристального контроллера КМ1816ВЕ48 (аналог 8048) изготовлена по n-МОП-технологии и содержит все функциональные узлы, необходимые для самостоятельной обработки 8-разрядной цифровой информации, поступающей от внешних устройств через три независимых порта ввода-вывода. Структурная схема ОМК изображена на рис. 1. Даже при беглом просмотре можно заметить сходство структур КМ1816ВЕ48 и однокристального МП К580ВМ80. Обе структуры имеют 8-разрядное АЛУ, регистр-аккумулятор А, схему десятичной коррекции СДК, регистр признаков (в структуре ОМК называемый регистром слова состояния программы ССП), регистр команд РК, дешифратор команд ДШ, схему управления и синхронизации и, наконец, внутреннюю магистраль данных, через которую осуществляется обмен данными со всеми внутренними устройствами ОМК.


Структура ОМК КМ1816ВЕ48

Рис. 1 - Структура ОМК КМ1816ВЕ48

Отличие структуры ОМК от МП К580 заключается в расположении на кристалле ОМК оперативной памяти ОЗУ объемом 64 байт, ПЗУ с ультрафиолетовым стиранием объемом 1 Кб, 6-разрядного двоичного суммирующего счетчика, тактового генератора (на рис. 1 не показан) и трех независимых 8-разрядных портов ввода-вывода. Схема управления внешней памятью (УПР ВП) позволяет расширить объем ПЗУ до 4 Кб и объем ОЗУ до 320 Кб. ОМК имеет 16 8-разрядных регистров общего назначения (РОН) и восьмиуровневый стек. Встроенная схема управления прерываниями обеспечивает два уровня прерывания приоритетов. Система команд ОМК содержит 96 базовых команд, многие из которых идентичны командам МП К580. Конструктивно БИС ОМК48 размещена в металлокерамическом корпусе с 40 выводами, на лицевой поверхности которого размещена прозрачная для ультрафиолетовых лучей крышка. ОМК имеет напряжение питания 5 В + 5% при токе потребления около 135 мА. Все выводы электрически совместимы с элементами ТТЛ и рассчитаны на подключение одной ТТЛ-нагрузки. Таким образом, структура, принцип действия и система команд ОМК во многом схожи с МП 580. Поэтому изучение функционирования и способов программирования ОМК КМ1816ВЕ48 следует начинать после изучения МП К580.

Синхронизация и сигналы управления ОМК

Работа ОМК синхронизируется однофазной последовательностью импульсов, которые вырабатывает встроенный генератор, представляющий собой схему с последовательным резонансом, работающую в диапазоне частот 1-6 МГц. Возбуждение генерации обеспечивает входной кварцевый резонатор, подключаемый к выходам Х1 и Х2. Допускается вместо резонатора использовать LC-цепь, подключаемую к тем же выводам. Возможно получение сигнала синхронизации от внешнего приемника. Принципиальная схема подключения кварцевого резонатора или LC-цепи к выводам ОМК (рис.2, а) традиционна. Кварц или LC-цепь в схеме обеспечивают частотно зависимую обратную связь и фазовый сдвиг для генератора. Вывод Х1 является входом генератора, а вывод Х2 - его выходом. Индуктивность L, изображенная пунктирно, используется в случае возбуждения генератора LC-цепью. Тактовый генератор содержит два счетчика Сч1, Сч2 с модулями пересчета 3 и 5 (рис.2, б). С выхода Сч1 тактовые сигналы с частотой 2 МГц командой ENTO могут быть выданы на вывод ТО ОМК. Прекратить выдачу сигналов на вывод ТО можно только сигналом сброса - СБР. В этом случае вывод ТО ОМК используется схемой условных переходов (СУП) для организации условных переходов командами STO и SNTO по состоянию сигнала на выводе ТО. С выхода Сч1 тактовые импульсы поступают на вход счетчика Сч2 с модулем пересчета 5, который определяет пять внутренних состояний ОМК. Сигнал одного из выводов Сч2 поступает на вывод САВП и определяет длительность машинного цикла ОМК. Таким образом, длительность машинного цикла составляет 15 периодов тактовой последовательности импульсов.


Схема синхронизации ОМК48
а)
Машинный цикл ОМК48
б)

Рис. 2 - Схема синхронизации (а) и машинный цикл (б) ОМК48

Сигнал САВП — строб адреса внешней памяти — используется для приема и фиксации адреса внешней памяти на внешнем регистре система. При работе с внутренней памятью сигнал САВП не используется.

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

Машинный цикл ОМК длится пять периодов тактовой последовательности с частотой 2 МГц, которая формируется на выводе 1. За пять тактовых импульсов С1 (рис. 2, б) проходят все фазы выполнения команды. В такте Т1 после выдачи счетчиком команд СК адреса очередной команды осуществляется выборка команды и ее запись в регистр команд РК. В такте Т2 производится дешифрация команды и увеличение на единицу счетчика команд. Такт T3VT5 используются для выполнения команды и выдачи адреса очередной команды. Таким образом, в отличие от МП К580 длительность машинного цикла ОМК неизменна и составляет пять тактов частоты 2МГц, или 2,5 мкс. Кроме того, фаза выполнения команды совмещена с фазой формирования и вывода адреса очередной команды, что позволило существенно повысить производительность центрального процессорного устройства.

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

Управление внешней памятью осуществляется следующими пятью сигналами:

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

В режиме программирования используется сигнал ПРОГ/СТБВВ — программирующий импульс напряжения +25 В при программировании внутреннего ПЗУ. При работе о внешними устройствами на этот вывод ОМК выйдет сигнал стробирования ВУ — СТБВВ.

В группу внешних сигналов, обеспечивающих условный переход по инициативе внешних устройств, входят сигналы:

  • ТО - вводной сигнал, опрашиваемый командами условного перехода JTO, JNTO; вывод ТО используется в режиме программирования ОМК и для вывода тактирующей импульсной последовательности С1;
  • Т1 - входной сигнал, снашиваемый командами условного перевода JT1 и JNT1; используется в качестве входа внутреннего счетчика внешних событий;
  • ЗПр - запрос-прерывание от внешнего устройства; обеспечивает переход на подпрограмму обслуживания прерывания, если оно ранее разрешено командой ENI.

Блок центрального процессорного устройства

Центральное процессорное устройство ОМК содержит блоки, необходимые для оперативного выполнения операций над данными. В его состав вводят: комбинационная схема АЛУ, двухтактовый регистр-аккумулятор А, регистр временного хранения данных Т1, регистр слова состояния программы ССП и связанная с ним схема условных переходов СУП, схема десятичной коррекции СДК.

Функционально АЛУ ОМК не отличается от АЛУ МП К580 и выполняет те же операции: сложение содержимого аккумулятора с регистром, с байтом или ячейкой памяти; инкремент или декремент регистра или ячейки; логические команды И, ИЛИ и исключающего ИЛИ; инверсию байта; циклические сдвиги влево и вправо; обмен тетрад в байте и десятичную коррекцию содержимого результата. Отличающейся является единственная операция обмена тетрад в байте.


Формат регистра ССП

Рис. 3 - Формат регистра ССП

Результаты выполнения операции аналогично МП К580 фиксируются в триггерах регистра признаков, который в ОМК называют регистром слова состояния программ ССП. Однако состав признаков (флагов) совсем иной, а некоторые признаки в ССП не фиксируются вовсе. ССП имеет восемь разрядов, назначение которых представлено на рис. 3. Кроме признаков, указанных в ССП, используются признак нулевого результата и признак наличия единицы в селектируемом разряде аккумулятора. Эти признаки формируются в схеме условных переходов СУП, как и признаки, устанавливаемые аппаратно: признак состояния входа ТО, признак состояния входа Т1, признак переполнения таймера TF, признак состояния входа ЗПР, а также признаки FO и F1, устанавливаемые пользователем ОМК. Все перечисленные признаки используются для организации ветвлений программы, а схема условных переходов формирует управляющие сигналы, обеспечивающие переходы по условию.

Устройство центрального процессора ОМК содержит счетчик указателя стека, построенный на основе 3-разрядного счетчика. Указатель стека используется для адресации восьми пар ячеек ОЗУ, составляющих восьмиуровневый стек. В отличие от МП К580 стек ОМК имеет ограниченный объем, необходимый для организации многоуровневых прерываний. Кроме того, в системе команд ОМК отсутствуют команды загрузки в стек операндов или содержимого регистров, поэтому стек в ОМК используется только для хранения ССП и содержимого счетчика команд СК.

Организация памяти ОМК

В системах, построенных на базе ОМК48, возможно использование трех видов памяти: встроенной (или резидентной) постоянной памяти (РПЗУ), оперативной (ОЗУ) и внешней памяти (ВП), которая, в свою очередь, может содержать ОЗУ и ПЗУ. Область РПЗУ и ОЗУ в ОМК разделена как физически, так и логически, поэтому обращение к различным видам памяти имеет свои особенности.

Встроенная память программ РПЗУ предназначена для хранения команд и неизменяемых данных. Адресное пространство РПЗУ составляет 4 Кб и охватывает адреса в диапазона 000h - 7FFh. Поскольку 7FF16 = 111 1111 11112, то для адресации 4 Кб ячеек РПЗУ достаточно одиннадцать разрядов счетчика команд. Фактически же шина адреса ОМК, связанная со счетчиком команд, имеет двенадцать разрядов. Состояние старшего двенадцатого разряда А12 счетчика команд программно с помощью команд SEL МВО и SEL MB1 может изменяться по инициативе программиста. Этот прием позволяет разделить все адресное пространство РПЗУ на два блока памяти емкостью по 2 Кб: МВО и МВ1. Блок МВО охватывает логические адреса памяти в диапазоне 000h-4FFh, которым соответствует значение старшего разряда СК А12 = 0. Блоку МВ1 соответствует значение А12 = 1 и логические адреса РПЗУ в диапазоне 500h-7FFh. Переход к блокам возможен только по командам SEL MBO/MB1, а адресация внутри блоков обеспечивается инкрементированием счетчика команд. Поэтому после выбора любого блока программист оперирует с адресами РПЗУ в диапазоне 000h-7FFh. Если программа не размещается в блоке МВО, то ее продолжение начнется с адреса 000h блока МВ1. Карта распределения адресов РПЗУ представлена на рис. 4.

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


Карта распределения адресов памяти ОМК48

Рис. 4 - Карта распределения адресов памяти ОМК48

Три адреса - ОООh, ООЗh и 007h РПЗУ имеют специальное назначение. Адрес ОООh формируется в СК всякий раз после окончания сигнала системного сброса (подобно МП К580). Следовательно, по этому адресу должна быть записана какая-либо команда управляющей программы. Обычно сюда записывается команда безусловного перехода, так как ячейки с адресом 003 должны быть загружены вектором прерывания от внешнего устройства, запросившего прерывание сигналом ЗПР. В ячейке по адресу 007h размещается вектор прерывания от таймера или начальная команда обслуживания прерывания, так как ячейки начиная с адреса 008h могут содержать любой фрагмент управляющей программы.

Из структуры РПЗУ (рис. 4, а) видно, что блок МВО включает РПЗУ объемом 1 Кб и 1 Кб внешней памяти. Поэтому использование в управляющей программе МК взаимосвязанных подпрограмм никаких затруднений не вызывает. Если эти подпрограммы располагаются в различных блоках (МВО и MBI), то необходимо обеспечить выбор нужного блока памяти.

Встроенная память данных (ОЗУ) ОМК предназначена для оперативного хранения данных и составляет 64 8-разрядных ячеек, адреса которых лежат в диапазоне 00h- 3Fh. В состав ОЗУ входят два блока РОН (РОН1 и РОН0), содержащих по восемь регистров, и восьмиуровневый стек, содержащий 16 8-разрядных ячеек. Карта распределения адресов ОЗУ ОМК показана на рис. 4, б. Выбор РОН1 или РОН0 осуществляется команда соответственно SEL RBO или SEL RB1. Регистры блоков РОН1 и РОН0 используются в командах с прямой адресацией, и все ячейки ОЗУ доступны командам с косвенной адресацией через регистры RO, R1 или RO*, R1*, соответственно, блоков РОНО РОН1.

Ячейки с адресами 08h-18h составляют стек ОМК, и обращение к ним возможно через указатель стека при вызове программ или через регистры-указатели RO и R1. Если стек занимает не все отведенные ячейки, то остальные могут использоваться как ячейки ОЗУ.

Регистры RO и R1 могут использоваться в качестве косвенного адреса при подключении к ОМК внешней памяти данных объемом 256 байт.

Встроенный таймер (счетчик событий)

На кристалле ОМК 48 расположен 8-разрядный регистр с внутренней схемой инкрементирования, которые в совокупности образуют 8-разрядчый счетчик, работающий в режиме сложения поступающих на его вход импульсов. На базе счетчика программными средствами создается два логически раздельных устройства: таймер и счетчик событий, содержащие, кроме счетчика, делитель и триггер флага FT - переполнения счетчика.

На вход счетчика могут поступать импульсы с внешнего входа Т1 (в режиме счетчика событий) или с вывода делителя на 32 (в режиме таймера). Делитель используется для формирования эталонной импульсной последовательности на входе счетчика. На вход делителя поступает импульсная последовательность С2 с выхода делителя на 5 в схеме синхронизации (рис. 5). Таким образом, на вход делителя на 32 поступают импульсы с частотой FP/400, где FP - частота кварцевого резонатора. Следовательно, счетчик увеличивает свое содержание на 1 через каждые 80 мкс (Т = 32/400x103). Для полного заполнения на вход счетчика должны поступать 255 импульсов эталонной частоты. Каждый 256-й приходящий импульс переведет счетчик из состояния FFh в состояние ООh, признак переполнения счетчика FT установится при этом в состояние лог. "1". Состояние признака TF может быть использовано для организации ветвления программы по условию переполнения счетчика. Установка признака TF в состояние лог. "1" может быть использована для организации прерывания по вектору, размещенному по адресу 007 ПЗУ (рис. 5), если предварительно прерывание разрешено командой EN TCNT. Выполнение команды условного перехода или переход к подпрограмме обслуживания прерывания сбрасывает признак переполнения TF.


Структура таймера ОМК48

Рис. 5 - Структура таймера ОМК48

Начальное состояние счетчика программными средствами (командой MOV А,Т) можно изменять в диапазоне чисел 00h+FFh, что позволяет реализовать временные задержки в диапазоне 80 мкс-20 мс. Запуск счетчика в режим таймера осуществляется командой STRT Т , а его останов — командой STOP CNT.

Командой STRT CNT счетчик переводится в режим счета событий и используется для подсчета количества импульсов, поступающих на вход счетчика через внешний вывод Т1. Переброс счетчика производится по заднему фронту каждого приходящего импульса. Длительность поступающих импульсов на входе Т1 должна быть не менее 0,5 мкс, а минимально возможное время между двумя импульсами - не менее 7,5 мкс.

Организация ввода-вывода

Связь ОМК 48 с внешними устройствами осуществляется через выводы ТО, Т1, ЗПР и три 8-разрядные порты: Р1, Р2 и BUS.

Вывод ТО может использоваться для вывода тактирующей последовательности импульсов (сигнала синхронизации С1 на рис 2, б) командой ENTO CLK или для ввода тестирующего сигнала от ВУ. В этом случае состояние вывода ТО анализируется командами JTO, JNTO для организации условных переводов.

Вывод Т1, как указывались ранее, используется для подачи внешних импульсных сигналов на вход счетчика событий для измерения временных интервалов между двумя событиями или для подсчета количества событий, а также для аппаратной реализации временных задержек более 80 мкс с использованием внешнего генератора соответствующей частоты.

Вывод ЗРП используется для ввода сигнала запроса прерывания от ВУ с внешним приоритетом. Более подробно организация прерываний рассмотрена ниже в разделе "Режим работы ОМК".

Восьмиразрядные порты ввода-вывода составляют 24 линии связи ОМК с ВУ. По входу все сигналы совместимы с ТТЛ-логикой, по выходу каждая линия может быть нагружена одной ТТЛ-нагрузкой.

Порты Р1, Р2 являются 8-разрядными квазидвунаправленными портами с одинаковой структурой цепей ввода-вывода, которая позволяет использовать каждый вывод порта в качестве входа, выхода или того и другого.

Вывод информации в порты Р1 или Р2 осуществляется командой OUTL. При этом выводимые данные фиксируются на выходах портов до появления новых данных (подобно параллельному адаптеру К580ВВ55).

При вводе данные не фиксируются, следовательно, необходимо обеспечить их сохранность на выводах портов Р1 и Р2 до окончания операции их чтения. Кроме того, для того чтобы настроить нужную линию порта на ввод информации, необходимо обеспечить в ней состояние высокого уровня лог. "1". С точки зрения программиста, операция ввода данных через порты Р1 и Р2 сочетается с операцией лог. "И" между вводимыми данными и последними выведенными. Это эффективное средство, отсутствующее в МП КР580, позволяет разработчику МК использовать отдельные выводы портов с различной целью. Кроме того, в системе команд ОМК предусмотрены команды лог. "И" и лог "ИЛИ" с вводимыми через порты данными. В качестве маски используется непосредственный операнд команды.

Отличие портов Р1 и Р2 заключается в том, что порт Р2 может служить для увеличения количества портов ввода-вывода системы. В системе команд ОМК предусмотрены специальные команды типа MOV D, позволяющие организовать обмен между аккумулятором и четырьмя 4-разрядными портами ввода-вывода, управляемыми через разряды Р2.0-Р2.3, и сигналом СТБ ВВ ОМК в качестве стробирующего сигнала (рис. 6).

Третий порт BUS является 8-разрядным двунаправленным буфером с тремя состояниями. Он используется для однонаправленной передачи по вводу или выводу информации, а также для двунаправленной передачи ввода-вывода 8-разрядных данных. Передаваемые через порт данные стробируются сигналом ЗП при выводе и сигналом ЧТ при вводе. Но при выводе, как и в портах Р1 и Р2, данные фиксируются в выходном буфере до записи новых данных, а при вводе они не фиксируются. Вводимые данные должны фиксироваться на входе порта, пока не будут считаны. Для ввода данных используется команда INS A, BUS, а для вывода — OUTL BUS. В отсутствие передач выводы порта BUS находятся в высокоимпедансном состоянии.


Схема подключения 4-рахрядных портов

Рис. 6 - Схема подключения 4-рахрядных портов

Двунаправленные передачи данных через порт BUS осуществляются командой MOV X (пересылка содержимого аккумулятора во внешнюю память). При выводе данных генерируется стробирующий сигнал ЗП, а при вводе — сигнал ЧТ. Пересылка данных через порт осуществляется по заднему фронту стробирующих сигналов.

Передаваемые через порт BUS данные можно маскировать по "И", "ИЛИ" командами ANL BUS, ORL BUS, что позволяет выделять и обрабатывать определенные биты данных.

Двунаправленный канал передачи данных порта BUS позволяет использовать в составе системы рассмотренные ранее интерфейсные БИС МПК К580, что дает возможность увеличить число каналов ввода-вывода и аппаратным способом расширить возможности ОМК. На рис.7 показан пример расширения количества портов ввода-вывода за счет использования БИС параллельного адаптера КР580ВВ55. Передача данных в порты PA, P2 и PC адаптера осуществляется через двунаправленный канал порта BUS, а адресная информация, необходимая для выбора нужного порта, передается через разряды порта Р2, где она фиксируется до момента выбора другого порта адаптера.


Схема расширения портов ОМК48

Рис. 7 - Схема расширения портов ОМК48

Аналогично без дополнительных затрат можно подключить к ОМК БИС КР580ВВ51 для организации обмена данными в последовательном коде. Ниже будет рассмотрен пример использования БИС КР580ВВ79 для подключения к ОМК клавиатуры и цифрового дисплея.

Page copy protected against web site content infringement by Copyscape
Архитектура однокристальных микроконтроллеров К содержанию Режимы работы ОМК 48
Новости:




 

copyright © 2003-2017 naf-st.ru, info@naf-st.ru
При полном, либо частичном цитировании материалов сайта naf-st.ru ссылка (для интернет изданий гиперссылка) обязательна!!! Будьте взаимовежливы!

Хостинг «Джино»
Карта сайта
Поиск по сайту
Помощь
Новости
Обратная связь
Карта сайта
Поиск по сайту
Помощь
Новости
Обратная связь