Микроконтроллеры семейства Zilog Z86Рефераты >> Программирование и компьютеры >> Микроконтроллеры семейства Zilog Z86
Примечания: 1.Наличие регистра отмечено знаком "+".
2.Регистр SPH во всех моделях, кроме 40, используется как
регистр общего назначения GPR (отмечено знаком "*").
При программировании МК следует учитывать способ доступа к регистрам. Чтение регистров, предназначенных только для записи, будет давать результат FFH. Поэтому использование этих регистров в командах, где они считываются (например, в логических командах OR и AND), будет давать неправильный результат. Когда линии портов 0 и 1 определены как выходы адреса, они приобретают статус регистров только для записи. И, наконец, регистр WDTMR должен быть записан в течение первых 64 тактов синхронизации после сброса.
РОНы, с точки зрения системы команд, могут рассматриваться не только как отдельные восьмибитные регистры, но и как шестнадцатибитные пары регистров. При этом должно соблюдаться четное выравнивание, т.е. адрес регистровой пары должен быть четный. При этом старший байт регистровой пары размещается по четному адресу, а младший -по нечетному. В рабочей регистровой группе регистровых пар будет 8, и им соответствуют только четные номера: 0,2, .,14.
Доступ к отдельным битам регистров осуществляется логическими командами с масками.
Функция защиты ОЗУ заключается в том, что старшая часть адресного пространства от 80H до EFH (исключая управляющую группу регистров) может быть защищена от чтения и записи. Бит защиты ОЗУ программируется одновременно с ПЗУ (масочно или электрически). Если этот бит запрограммирован, то функция защиты управляется программно битом D6 регистра IMR. Логическая 1 включает функцию защиты, логический 0 -отключает. Эту функцию имеют только модели МК 30 и 40.
1.2.2.2. Адресное пространство памяти
Адресное пространство памяти состоит из адресного пространства памяти программ и адресного пространства памяти данных. Память программ состоит из внутреннего ПЗУ и внешней памяти. Память данных также является внешней. Структура адресного пространства памяти МК показана на рис.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.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 МГц и несколько снижается нагрузочная способность.