Микроконтроллеры семейства Siemens C166 (часть 2)

   
С. КопытинМикроконтроллеры семейства Siemens
C166 (часть 2)

В первой части данной статьи (Chip News № 1, 1999 г.) речь шла об основных архитектурных особенностяхсемейства Siemens С166, преимуществах архитектуры RISC по сравнению с традиционной CISC-архитектурой иконвейере команд. Приводились сравнительные характеристики семейства С166 и микроконтроллеров других семейств.В данной части статьи речь пойдет о прикладных аспектах использования микроконтроллеров C166, таких как адресноепространство, конфигурирование внешней шины, система прерываний, генерация системного такта и режимы пониженногоэнергопотребления.

Адресное пространство

Контроллеры семейства C166 основаны на Von Neumann архитектуре с несколькими внутренними шинами для устраненияузких мест и имеют единое адресное пространство для памяти программ, памяти данных, регистров и портов ввода/вывода.Адресация кода и данных происходит путем сегментации и разбиения на страницы адресного пространства 16 Мбайт у С165и С167 (256 Кбайт — 80C166 и до 4 Мбайт — С164): 64 Кбайт — сегменты кода и 16 Кбайт — страницы данных. Дополнительнодоступен несегментированный режим с адресным пространством 64 Кбайт. Во всем адресном пространстве возможен доступ ксловам и байтам данных.

Рис. 1. Идентификация номера страницы данных и текущего кодового сегмента

Для доступа к одной из страниц памяти размером по 16 Кбайт используются четыре 10-разрядных указателя на страницу данных Data Page Pointers (рис. 1). В регистрах DPP0–DPP3 после сброса выставляются номера страниц от 0 до 3,соответственно. С помощью указателя на страницу данных 16-разрядному адресу ставится в соответствие 24-разрядныйфизический адрес. Полный физический адрес формируется следующим образом: 14 младших разрядов адреса повторяются в14 младших разрядах физического адреса, а 2 старших разряда выбирают один из четырех регистров DPP0–DPP3, содержащийсоответствующий номер страницы, который и образует старшие 10 разрядов физического адреса.
    Для идентификации номера текущего кодового сегмента служит Code Segment Pointer (CSP), которому после сброса поумолчанию присваивается нулевое значение (рис. 1). Полный физический адрес получается путем склейки содержимогоданного регистра с регистром Instruction Pointer (IP).

Рис. 2. Организация памяти C167CS-32FM

В качестве иллюстрации к сказан-ному рассмотрим организацию памяти самого мощного из членов семейства C167CS-32FM(рис. 2) с 256 Кбайт перепрограммируемой Flash-памяти на кристалле, из них 64 Кбайт расположено в сегменте с номером“0”, а остальные — в сегменте “1”. Величина 256 Кбайт является пределом, до которого на сегодняшний день внутренняяшина памяти позволяет осуществлять адресацию (128 Кбайт Flash-памяти — у C167CR-16FM и C163-16FM, 64 Кбайт OTP-памяти— у С164СI-8EM). Данная Flash-память служит в основном для записи программ: размер блока при записи — 64 байт свременем программирования блока 1 мс, размер сектора при стирании — 32 Кбайт при более чем 1000 циклах записи/стирания.Следует отметить увеличение производительности на 70% у C167CS с Flash-памятью по сравнению с C167CR. При этом выигрышскладывается за счет следующих факторов:

  • увеличение тактовой частоты до 25 МГц — 25%;
  • выборка команд из встроенной Flash-памяти без состояний ожидания — 25%;
  • выборка 32-разрядного операционного кода (30% команд) за 1 цикл — 20%.

Встроенное двухпортовое ОЗУ IRAM имеет объем 3 Кбайт (1 или 2 Кбайт — у остальных членов семейства) дляразмещения банков регистров GPR, системного стека и хранения переменных и еще 1 Кбайт — для регистров специальныхфункций SFR. Данное значение также является предельным, т. к. ввиду архитектурных ограничений ширина адресной шиныIRAM не может превышать 12 разрядов.
    Кристалл C167CS располагает существенно большим по сравнению с C167CR объемом расширенного ОЗУ данных XRAM,подключенного к Х-шине — 8 Кбайт. Это позволяет минимизировать число обращений к внешнему ОЗУ или вовсе обойтисьбез него. Как уже отмечалось, 16-разрядная X-шина является внутренним продолжением внешней системной шины и служитдля подключения дополнительной памяти, работающей без состояний ожидания.
    И, наконец, уникальный ресурс — 4 Кбайт XFlash-памяти, также подключенной к Х-шине и предназначенной в основномдля хранения коэффициентов с функциями записи и чтения байта/слова (время записи — 1 мс при возможности записистраницы из 64 слов). Время стирания слова составляет 2 мс, а время стирания XFlash-памяти целиком — 10 мс приболее чем 105 циклах записи/стирания.

Конфигурирование внешней шины

Одним из наиболее полезных свойств C166 является поддержка нескольких режимов конфигурации, когда, например,выборка кода и данных из внешней памяти осуществляется по 16-разрядной демультиплексной шине с нулевым ожиданием,а доступ к медленной периферии (часы RTC) из соображений экономии может происходить по 8-разрядной шине с 3состояниями ожидания. В первом случае шина управляется регистром конфигурации BUSCON0, а во втором — BUSCON1 иADDRESEL1, которые определяют, соответственно, режим шины и адресный диапазон.
    В ряде микроконтроллеров (C165 и C167) присутствует до четырех независимых дополнительных регистров конфигурацииBUSCON1–BUSCON4, каждому из которых соответствует свой внешний вывод CS для соединения с входом разрешения выборкикристалла. Размер и начальный адрес диапазона для каждого сигнала CS1–CS4 задается в регистрах ADDRSEL1–ADDRSEL4.При задании областей действия сигналов CS необходимо помнить, что начальный адрес должен быть кратен размеру блока.Например, для блока размером 64 Кбайт начальный адрес должен быть равен 0x00000, или 0x10000, или 0x20000 и т. д.Характеристики системной шины для областей памяти, не перекрываемых данными четырьмя адресными диапазонами,задаются в регистре BUSCON0 и устанавливаются аппаратно при считывании линий порта 0 во время сброса, т. е. сигналCS0 используется для адресации всех областей, не определенных сигналами CS1–CS4. Кроме того, для экономии внешнейлогики присутствуют программируемые сигналы управления шиной. Это означает, что при более чем 20-кратном выигрыше впроизводительности проект с С166 получается проще, чем для 8031. С166 содержит также программируемые функции арбитражашины HOLD/HOLDA/BREQ для операций межпроцессорного обмена.
    Непосредственное управление внешней шиной в соответствии с содержимым регистров конфигурации осуществляетконтроллер внешней шины. В каждом диа-пазоне временные параметры циклов чтения/записи и режим работы системной шинызадаются специальными битами в регистрах конфигурации. Ширина адресной шины может составлять в зависимости откристалла 16 (для несегментированного режима), 18 (80C166), 22 (C164) и 24 (C165 и С167) разряда. Ширина шины данныхможет быть 8 или 16 разрядов, и работа может вестись в мультиплексном и демультиплексном (MUX и NMUX) режимах(у C161 и C164 предусмотрена только мультиплексная внешняя шина). Демультиплексный шинный интерфейс оптимален привысоких требованиях к времени обращения к внешним ОЗУ и ПЗУ. Как уже отмечалось, режимы работы шины могут динамическименяться в процессе выполнения программы. Сравнение скорости работы при различных конфигурациях шины приведенов табл. 1.
Таблица 1. Сравнение скорости работы для различных конфигураций шины при частотеЦПУ 20МГц Тип шины Нет внешн.
памяти 16-разр. NMUX 16-разр. MUX 8-разр. NMUX 8-разр. MUX Используемые порты нет P0,P1,P4 P1,P4 P0,P1,P4 P1,P4 Защелка адреса нет нет 16-разр. нет 8-разр. Цикл шины 0/1/2 Wait States (WS) 100/.../... 100/150/200 150/200/250 100/150/200 150/200/250 Команда 1 Word @ 0/1/2 WS 100/.../... 100/150/200 150/200/250 200/300/400 300/400/500 Команда 2 Word @ 0/1/2 WS 100/.../... 200/300/400 300/400/500 400/600/800 600/800/1000 Выборка из TPROM @ 0/1/2 WS - 70/120/170 70/120/170 70/120/170 70/120/170 Относительная скорость 1 1,2/1,5/2 1,5/2/2,5 2/2,5/3 3/4,5/6

Следует несколько слов сказать о конфигурировании микроконтроллеров семейства С166 на момент сброса путемсчитывания состояний линий 16-разрядного Порта 0. Данный метод состоит в задании содержимого регистров SYSCON иBUSCON0 для считывания первых команд из памяти. SYSCON — это 16-разрядный побитно адресуемый регистр конфигурации,содержащий следующие управляющие биты: разрешение доступа к внутренней Х-шине, разрешение и мэпинг встроенного ПЗУ,разрешение линии выходного такта, разрешение сегментации памяти и размер системного стека. После сброса системы загрузка программы в ОЗУ или Flash-память может осуществляться по последовательному порту с помощью встроенногоаппаратного загрузчика (Bootstrap Loader). Эта функция весьма полезна для загрузки монитора и отладки программпользователя.

Система прерываний

Разветвленная система прерываний C166, разделенная на 16 уровней, и на каждом уровне группа из 4 прерываний(рис. 3), обеспечивает гибкое и быстрое задание приоритетов и обслуживание запросов прерываний. В контроллерепрерываний предусмотрены аппаратные ловушки (Hardware-Traps) и программные ловушки (Software-Traps), позволяющиеобрабатывать ошибки, возникающие при неверном исполнении команд, нарушении границ стека, а также отслеживать немаскируемоепрерывание NMI, программный и аппаратный сброс. Приоритеты прерываний от аппаратных и программных ловушек самыевысокие.

Рис. 3. Система прерываний С166

Контроллер прерываний обеспечивает малое время отклика на запрос прерывания: минимальное время составляет 250нс при 20 МГц, а максимальное — 600 нс. Чтобы уменьшить время отклика при выполнении сложных команд умножения иделения, занимающих 5 и 10 циклов, соответственно, также предусмотрено прерывание. Обработка прерыванийосуществляется в течение малых временных интервалов. Это очень важно для высокоуровневых приложений, такихкак управление приводами, когда решаются задачи цифровой обработки сигналов и весьма нежелательны флуктуациивходных и выходных переменных. Таким образом, достигается высокая производительность в реальном масштабевремени.

Рис. 4. Механизм обработки прерываний

Механизм обработки прерываний (рис. 4) работает следующим образом. Для каждого прерывания имеется собственныйрегистр управления Interrupt Control Register (xxIC). При установке одного или нескольких флагов запросапрерывания Interrupt Request (IR) в регистрах управления xxIC производится сравнение их приоритетов с текущим приоритетом выполняемой программы, который содержится в регистре состояния процессора. После проверки номера в группе в регистре прерывания с наибольшим номером уровня и группы очищается флаг IR, и контроллер приступает к обработке этого прерывания. При этом в стеке автоматически сохраняется содержимое регистра состояния процессора PSW, указателя команд IP и в сегментированном режиме указателя сегмента CSP, и загружаются новые значения этих регистров согласно процедуре обработки прерывания.
    Регистрация внешних прерываний может осуществляться в альтернативном режиме по внешним входам, например, по входамCapture. Кроме того, имеется немаскируемое прерывание NMI. Часть внешних прерываний регистрируется каждые 0,5цикла, т. е. каждые 50 нс при 20 МГц (табл. 2).
Таблица 2. Внешние и внутренние прерывания Прерывания С161 С163 С164 С165 С166 С167 От периферии 21 12 32 28 32 55 Внешние 11 12 13 12 19 36 Регистр. 0,5 цикла 8 8 4 8 - 8

Изменение уровня приоритета прерывания во время исполнения программы является достаточно типичной задачей дляряда приложений. Например, уровень приоритета может зависеть от значения сигнала на внешнем входе. В этом случаепосле проверки состояния входа процедура обслуживания прерывания переключает уровень прерывания на более низкий,изменяя содержимое регистра ILVL. После понижения уровня выполняемого прерывания могут поступить запросы напрерывание с более высоким приоритетом. Такая ситуация может привести к определенным проблемам.
    Пусть, например, выполняется прерывание A на уровне 10 и поступает запрос от прерывания B с уровнем 12, котороеи поступает на выполнение. Если теперь уровень прерывания B будет снижен до значения меньшего, чем 10, прерывание Aне сможет стать активным, пока не закончится выполнение B. Возможен еще более плохой вариант, если прерываниеB снизит свой уровень до значения 5, и теперь даже прерывание C с уровнем 7 сможет его прервать. Такие ситуации удлиняют время исполнения прерывания A, что не соответствует его новому приоритету.
    Поэтому для понижения уровня приоритета текущего прерывания всегда следует закончить текущую задачу и начатьновую с более низким приоритетом. Это можно осуществить при установке бита IR в каком-либо незадействованномрегистре управления xxIC.

Рис. 5. Механизм работы контроллера периферийных событий РЕС

Контроллер периферийных событийPeripheral Events Controller (PEC) — освобождает ЦПУ от простых, но частыхобслуживаний прерываний, осуществляя перенос данных в любую позицию нулевого сегмента без переключения задачи(рис. 5). Процесс переноса данных практически не затрагивает работу контроллера и не зависит от выполняемой программы— контроллер только приостанавливает выполнение текущей программы на один цикл (100 нс), даже не сохраняя своесостояние в стеке. Время отклика контроллера для обслуживания PEC составляет от 150 до 450 нс при цикле ЦПУ 100нс. Для контроллера PEC отведены два верхних уровня приоритета, что позволяет обслуживать одновременно 8 каналовPEC. Каждый канал управляется собственным регистром PEC, который позволяет программировать передачу байта илислова данных с инкрементом адреса или без него с однократным, многократным или бесконечным числом пересылок.Обработка прерываний контроллером PEC выполняется в соответствии с приведенной диаграммой.

Генерация системного такта

Временной дискретой для ядра C166 является период такта, равный 50 нс при тактовой частоте 20 МГц.Большая часть команд C166 исполняются за два такта, т. е. за 100 нс. Для достижения номинального быстродействиявнутренний такт должен иметь скважность 50%, что не всегда может быть получено при тактировании от кварцевогорезонатора. При несовпадении длительностей высокого и низкого уровня тактового сигнала временная дискретаопределяется по длительности самого короткого уровня, который должен быть не меньше 50 нс. Это означает, чтопри асимметрии такта понижается максимально возможная тактовая частота. Например, при длительности высокого уровня50 нс, а низкого — 60 нс рабочая частота равна 18 МГц. Кроме требования симметричности времена переключенияуровней тактового сигнала должны быть не более 5 нс.
    Поэтому для генерации полностью симметричного системного такта в состав некоторых микроконтроллеров семействаC166 входит встроенный делитель входной частоты на 2. В этом случае требуется кварцевый генератор, работающийна частоте 40 МГц. Члены семейства, имеющие в маркировке индекс “W”, не содержат делителя и тактируютсянепосредственно. Без делителя сегодня выпускаются только кристаллы 8xC166W, с которыми рекомендуется работатьна тактовой частоте 18 МГц.
    В новых кристаллах C163, C164CI, C167 присутствует встроенное устройство PLL, которое преобразует входнуючастоту во внутренний системный такт с коэффициентом умножения 0,5, 1, 1,5, 2, 2,5, 3, 4 и 5. Например, прииспользовании кварцевого генератора 5 МГц для достижения обычных 20 МГц на встроенном устройстве PLL осуществляетсяумножение входной частоты на 4. Задание режима PLL осуществляется на фазе сброса при подключении резистора междувходом P0L и нулем. При потере внешнего такта генерируется прерывание, и PLL продолжает работать на частоте 5...10МГц. Внутренний такт отслеживается PLL также в режимах прямого тактирования и деления входной частоты на 2.

Управление энергопотреблением

В новых кристаллах C161RI, C164CI, C167CS оптимизирована система тактирования и введен режим работы спониженным потреблением при напряжении 3 В. Генерация тактового сигнала внутренним осциллятором начинаетсяпри напряжении питания 3 В в диапазоне изменения частоты от 3,5 до 16 МГц. Диапазон изменения частоты внешнегоосциллятора составляет 1–40 МГц. Существует три основных режима управления потреблением:

  • активный (Active);
  • покоя (Idle) — ЦПУ останавливается, но все периферийные модули продолжают работу, выход из режимаIdle осуществляется по сигналу сброс или по прерыванию;
  • отключения питания (Power Down) — останавливается и ЦПУ, и периферийные модули, выход из этого режимаосуществляется только по сбросу.

Для отключения незадействованных периферийных устройств в последних кристаллах семейства C166 выделены триосновных группы периферии с раздельным тактированием:

  • Интерфейсы: ASC0, SSC, быстрые внешние прерывания (активны всегда);
  • PER: вся остальная периферия, контроллер прерываний, сторожевой таймер;
  • Часы реального времени RTC с циклическим прерыванием Wake Up.

Отключение такта от группы PER позволяет снизить потребление от периферии в активном режиме и режиме покоя,что хорошо видно из диаграммы, приведенной на рис. 6.

Рис. 6. Снижение потребления в активном режиме и режиме покоя при отключениитакта от периферии

    В новых кристаллах также введен режим замедления Slow Down, в котором достигается существенное сокращениепотребления за счет понижения частоты на кристалле. Снижение тактовой частоты происходит на делителе SlowDown Devider (SDD) с программируемым коэффициентом деления 1...32 вплоть до значения 0,5 МГц = 16 МГц / 32.В этом случае для сохранения синхронизации при обмене по последовательному каналу должна быть подобранасоответствующая частота. Кроме того, в режиме Slow Down не работает PLL, и осциллятор сторожевого таймера недоступен.
    Часы реального времени Real Time Clock (RTC) осуществляют подсчет числа тактов, определяемых внешней частотойи программируемым делителем, а также измерение времени в режиме Power Down. Регистр RTC и программируемыйделитель при соединении образуют 48-разрядный таймер с периодом 114 лет при тактовой частоте 20 МГц.С помощью RTC генерируется цикличный во времени сигнал прерывания Wake Up с настраиваемым временным циклом.Через программируемое прерывание Wake Up достигается цикличное пробуждение из состояния покоя к активному режиму,т. е. чередование режимов Active Idle. Пробуждение из состояния покоя происходит также от источников прерыванийASC, SSC, CAN, EXIN.
    У МК семейства С166 есть множество других возможностей, с которыми можно ознакомиться на нашихInternet-страницах или же в руководствах пользователя, доступных на сайте Siemens .
    Продолжение следует...

Фирма «КП Электроника»
196240, Санкт-Петербург, Пулковское шоссе, 9/3
Тел. (812) 123-3554, тел./факс (812) 325-2792
E-mail: Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
Internet: http://






Рекомендуемый контент




Copyright © 2010-2017 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.