- •6 Проектирование микропроцессорных систем на основе однокристальных микропроцессоров
- •6.1 Базовые конфигурации микропроцессора вм86
- •Цикл шины центрального процессора вм86
- •Мультипроцессорные конфигурации на основе цп вм86
- •Методы приоритетной обработки запросов
- •Арбитр шины
- •Режимы работы арбитра шины
- •7 Особенности проектирования микроконтроллерных устройств
- •Типовая структура микроконтроллерной системы управления
- •Особенности разработки аппаратурных и программных средств мк
- •Структурная организация мк к1816ве48
- •Организация памяти мк
- •Организация системы ввода-вывода информации
- •Мпс с внешней памятью программ и данных
- •Система команд микроконтроллера ве48
- •Методика разработки ппо мкс
- •Средства отладки ас и ппо мкс
- •Кросс-системы для разработки и отладки ппо
- •8 Организация цп старших моделей фирмы Intel Внутренняя архитектура цп i486
- •Внутренняя кэш-память цп i486
- •Организация внешней памяти
- •Организация шины процессора и циклы шины
- •Организация передачи данных в циклах шины
- •Построение систем на основе цп i486
- •Контроллер прямого доступа к памяти
- •Основные направления работы фирмы intel по разработке мпс
- •Изделия встроенного управления (микроконтроллеры)
- •Основные отличительные особенности цп семейства Pentium
Организация памяти мк
Память программ реализована на ППЗУ емкостью 1 Кбайт, а максимальное адресное пространство программ может составлять до 4 Кбайт. РС (СК) содержит 12 бит, но инкрементируются только младшие 11 бит. Поэтому после состояния 7FFh РС перейдет в состояние 000h, а состояние старшего бита РС может быть изменено по специальным командам SEL MB0, SEL MB1. То есть, при таком подходе вся память программ разбивается на два банка памяти по 2 Кбайт (рис.4). В свою очередь память программ также разбивается на страницы по 256 байт, по 8 страниц в каждом банке, так как в большинстве команд передачи управления используется короткий 8-разрядный адрес внутри текущей страницы, не обеспечивающий возможности перехода через границу страницы. Однако для последовательной выборки команд границ страниц не существует.
Граница банков памяти, в отличие от границ страниц, полностью закрыта и для последовательной выборки. Единственным способом пересечения границы банков осуществляется по командам: JMP, CALL, RET и RETR. Команды JMP и CALL используют 11-разрядный адрес перехода внутри текущего банка памяти, состояние старшего разряда РС[11] определяется по флажку выбора банка МВ, управляемого по отдельным командам: SEL MB0 и SEL MB1. Например, если текущее значение МВ=0, а необходимо перейти к команде, расположенной в банке 1, то надо выполнить следующий переход:
SEL MB1 ; МВ:=1
JMP addr11 ; РС[11]:=МВ, РС[10-0]:=addr11
По командам JMP и CALL содержимое флага МВ загружается в старший разряд РС (РС[11]:=МВ). Отсюда, так как МК не имеет средств анализа флага МВ, то надо следить, чтобы подпрограммы взаимно вызывающие друг друга находились в одном банке памяти или модифицировать флаг МВ в вызываемой подпрограмме и восстанавливать его при возврате в вызывающую подпрограмму. В командах возврата полный 12-разрядный адрес выбирается из стека.
При обработке прерываний бит РС[11] принудительно устанавливается в 0, поэтому все ППОП должны размещаться в нулевом банке.
Ячейки 0, 3 и 7 используются для векторов прерываний, причем с ячейки 000h должна размещаться команда безусловного перехода на первую команду программы, а в ячейках 3 и 7 - команды перехода на начальные адреса соответствующих ППОП.
Резидентная память данных ОЗУД на кристалле составляет 64 байта и делится на четыре области (рис.5): два банка рабочих регистров с 0 по 7 и с 24 по 31 ячейки по 8 регистров в каждом банке, область памяти стека ячейки с 8 по 23, адресуемые указателем стека SP из PSW глубиной 2х8 байт для хранения РС (12 бит) и PSW (4 старших бита) и 32 ячейки для хранения данных с адресами с 32 по 63, адресуемые только через регистровую косвенную адресацию. Имеется возможность неиспользуемые ячейки стека использовать для хранения данных также через регистровую косвенную адресацию, т.к. команд PUSH и POP в системе команд МК нет. В стек данные загружаются только автоматически по команде CALL и по прерываниям, если они разрешены.
Выбор одного из банков регистров выполняется по командам SEL RB0 и SEL RB1 (признак выбора банка регистров автоматически запоминается и хранится в PSW поле BS). Рабочие регистры 0-7 и 24-31 доступны по командам с прямой регистровой адресацией, а все ячейки ОЗУД 32-63 и ВПД по командам с косвенной регистровой адресацией. В качестве регистров косвенного адреса могут использоваться только регистры R0 и R1 каждого банка регистров. Например,
MOV A,#35 ; AC:=35
MOV R1,A ; R1:=AC прямая регистровая
MOV A,@R1 ; AC:=ячейки 35 регистровая косвенная
Как видно из рис.5 внутренняя и внешняя память данных рассматриваются как раздельные физические памяти и обращение к ним выполняется по отдельным командам (для ВПД только по команде MOVX):
MOVX @R1,A ; (R1):=AC ВПД
MOVX A,@R1 : AC:=(R1) ВПД
Внешняя и внутренняя память программ рассматриваются как единое целое. В памяти программ предусмотрена возможность хранения констант (таблиц, массивов), а доступ к ним осуществляется либо непосредственной адресацией, либо косвенной регистровой страничной адресацией через АС к текущей странице или странице 3 специально зарезервированной для хранения констант.