1.2.2.2. Адресное пространство памяти
Адресное пространство памяти состоит из адресного пространства памяти программ и адресного пространства памяти данных. Память программ состоит из внутреннего ПЗУ и внешней памяти. Память данных также является внешней. Структура адресного пространства памяти МК показана на рис.1.3. Доступность фрагментов адресного пространства для различных моделей МК показана на рисунке столбиковой диаграммой.
Рис. 1.3 Структура памяти
Внутреннее ПЗУ имеют все рассматриваемые модели МК. Модели с литерами C и L имеют масочное ПЗУ, а модели с литерой E -однократно -программируемое (One Time Programmable -OTP) ПЗУ. Размер внутреннего ПЗУ составляет для разных моделей МК от 512 байт до 4 Кбайт. Первые 12 байт зарезервированы для векторов прерываний (см. рис.1.3). Эти ячейки содержат 6 шестнадцатибитных векторов прерываний, которые соответствуют 6 возможным запросам прерывания: IRQ0 -IRQ5 (Interrupt Request). Начиная с ячейки 12 (0CH) размещается программа.
Модель 40 имеет возможность подключения внешней памяти программ объемом до 60 Кбайт. Такое подключение возможно с использованием мультиплексных линий адреса/данных (AD7 -AD0) порта 1 и адресных линий (A15 -A8) порта 0. Максимальный адрес внешней памяти программ -65535 (FFFFH). Этот интерфейс внешней памяти поддерживается управляющими линиями /AS, /DS и R//W. Доступ к памяти программ (в том числе и к внешней) осуществляется с помощью программного счетчика для считывания команд, а также командами загрузки констант LDC и LDCI.
Модель 40 также имеет возможность дополнительно адресовать до 60 Кбайт внешней памяти данных с адресами от 4096 (1000H) до 65535 (FFFFH) путем программирования выхода порта 3 P34 на выдачу сигнала /DM (Data Memory), позволяющего аппаратно разделить адресные пространства внешней памяти программ и внешней памяти данных. Обращение к внешней памяти данных осуществляется специальными командами загрузки LDE и LDEI, при исполнении которых сигнал /DM будет иметь активный низкий уровень.
В МК предусмотрен специальный бит защиты ПЗУ (ROM Protect), который программируется одновременно с внутренней памятью программ. Сущность защиты ПЗУ заключается в предотвращении "дампинга" содержимого ПЗУ. Эта функция в более ранних версиях МК реализована путем запрета команд LDC, LDCI, LDE и LDEI. При таком подходе защищенная программа не могла использовать эти команды, что не разрешало программисту реализовывать эффективные алгоритмы с просмотром таблиц. В последних версиях МК использование функции защиты ПЗУ никаких ограничений на программирование не накладывает.
1.2.2.3. Стек
Стек МК Z8 может располагаться во внутреннем ОЗУ или во внешней памяти данных. Размещение стека программируется путем записи бита D2 в регистр режима портов 0 и 1 -P01M. Запись 0 в этот бит задает внешний стек, 1 -внутренний. Такой выбор возможен только для модели 40, имеющей интерфейс внешней памяти, для остальных моделей бит D2 должен быть установлен в 1.
Расположение верхушки стека задается шестнадцатибитным указателем стека, размещенным в регистрах SPH и SPL стандартного регистрового файла. Для всех моделей, кроме модели 40, достаточно восьмибитного указателя стека (т.к. объем внутреннего ОЗУ не превышает 256 байт), и он размещается в регистре SPL. Регистр SPH с адресом FEH используется при этом как регистр общего назначения GPR. Указатель стека декрементируется перед операцией загрузки и инкрементируется после операции извлечения. Его содержимое -это всегда адрес верхушки стека.
Стек МК Z8 -это стек возврата из подпрограмм и прерываний, а также стек данных. При работе МК возможно переполнение стека вниз и вверх. Ответственность за недопустимость переполнения лежит на разработчике программы, иначе результат будет непредсказуем.
1.2.3. Синхронизация
Обобщенная структурная схема синхронизации МК показана на рис 1.4.
Рис. 1.4 Структурная схема синхронизации
Схема состоит из задающего генератора, рассчитанного на подключение внешней времязадающей цепи или внешнего источника синхронизации, делителя частоты на 2 и делителя частоты на 16 (последний в моделях 02, 03, 04, 08 отсутствует). К входным контактам XTAL1 и XTAL2 (eXternal crysTAL) подключается времязадающая цепь, заставляющая генератор формировать синхроимпульсы с частотой XTAL. С выхода синхронизирующей схемы снимаются импульсы внутренней системной синхронизации SCLK (System CLocK) и синхронизации таймеров TCLK (Timer CLocK). Назначение делителя на 2 -формирование сигнала, а делитель на 16 предназначен для уменьшения рабочей частоты синхронизации и, соответственно, потребляемого тока, особенно в резервных режимах HALT и STOP.
Управление частотой в разных моделях МК осуществляется двумя способами. В моделях 02, 04, 08 управление сводится только к переводу схемы в малошумящий режим путем программирования (масочно или электрически) бита малошумящего режима Noise"(см. верхнюю часть рис.1.4.). При этом задающий генератор переводится в малошумящий режим и отключается делитель на 2. Максимальная частота работы генератора в этом режиме ограничивается 4 МГц и несколько снижается нагрузочная способность.
В моделях 03, 06, 30, 31 и 40 управление схемой синхронизации осуществляется путем записи управляющей информации в регистры PCON и SMR в процессе выполнения прикладной программы МК (см. нижнюю часть рис 1.4). Бит D7 регистра PCON управляет режимом задающего генератора, а биты D1 и D0 регистра SMR -делителями на 2 и на 16 соответственно. Логика управления показана на схеме.
Схема задающего генератора показана на рис 1.5. Генератор построен на основе инвертирующего усилителя постоянного тока A с выполненной внутри кристалла резистивной обратной связью R. Схема генератора рассчитана на подключение внешней времязадающей цепи, являющейся гибкой обратной связью усилителя.
Рис. 1.5 Схема задающего генератора
Для устойчивого самовозбуждения генератора необходимо соблюдение условий баланса амплитуд и баланса фаз на частоте генерации. Условие баланса амплитуд заключается в равенстве 1 произведения коэффициента усиления усилителя на коэффициент передачи цепи обратной связи. Условие баланса фаз требует, чтобы суммарный сдвиг фаз в схеме был равен 0 (360о). Поскольку инвертирующий усилитель дает сдвиг фазы 180о, то цепь обратной связи должна обеспечивать фазовый сдвиг также на 180о.
Этим условиям удовлетворяют схемы времязадающих цепей, показанные на рис.1.6. Генератор может работать с кварцевым или керамическим резонатором, LC -цепью, RC -цепью и внешним генератором. Работа генератора с RC -цепью требует определенной реконфигурации внутренней схемы, что достигается программированием (масочно или электрически) специального бита RC. Такую возможность имеют модели 03, 06, 30, 31, 40. Что касается моделей 02, 04, 08, то возможность запуска от RC - цепи имеют только самые последние версии этих моделей. Устойчивое возбуждение генератора возможно на частотах от 10 КГц до максимальной (см. табл.1.1.).
Рис. 1.6 Времязадающие цепи генератора
0 комментариев