XC166 —новое семейство 16-разрядных микроконтроллеров фирмы Infineon
С начала 2001 года, в ответ на растущие потребности рынка, автомобильное/промышленное подразделение микроконтроллерного отделения фирмы Infineon выпустило несколько новых приборов. В это новое поколение приборов входят: 8-разрядные приборы класса «система-на-кристалле» (C868), новое поколение 16-разрядных Flash микроконтроллеров (XC161, XC164 и XC167), и новый член признанного 32-разрядного семейства микроконтроллеров AUDO (TC1765). Новые микроконтроллеры предоставляют разработчикам промышленных и автомобильных применений возможность существенного снижения стоимости разработки, значительно сокращая длительность проектирования и сокращая, таким образом, время вывода на рынок конечного продукта. Разработанные специально под жесткие требования промышленных и автомобильных применений, все новые 8-разрядные, 16-разрядные и 32-разрядные семейства гарантируют плавный переход от ранее разработанных семейств к новым приборам.
Данная статья посвящена 16-разрядным Flash микроконтроллерам семейства XC166 (XC161, XC164 и XC167), в основе которых новая усовершенствованная архитектура C166S V2.
Фирма Infineon позиционирует эти приборы, преимущественно, как микроконтроллеры для автомобильных применений (приборные панели, оборудование автомобильных салонов, интеллектуальные фары, подушки безопасности, электроусиление рулевого управления, приводы). В то же время, особо отмечается возможность использования микроконтроллера XC167 для управления приводом промышленного назначения, в средствах управления промышленным производством.
Отличительные особенности:
- Усовершенствованное синтезируемое высокопроизводительное 16-разрядное ядро CPU C166S V2 c 5-уровневым конвейером и поддержкой DSP операций встроенным блоком MAC
- Работа с частотой тактирования CPU до 40 МГц (длительность командного цикла 25 нс)
- Линейное пространство адресов кодов и данных объемом 16 Мбайт
- 8 Кбайт (XC161CJ и XC167CI) или 6 Кбайт (XC164CS) встроенной RAM
- 128 Кбайт современной Flash (у XC164CS также и ROM) памяти программ
- Гибкий синхронный интерфейс внешней шины
- Система прерываний с 16 уровнями приоритета (8 групп уровня приоритета)
- Встроенный контроллер отладки с интерфейсом контроллера JTAG
- Гибкое управление системой, встроенной периферией и распределением питания
- Мощные подсистемы ориентированной на применения интеллектуальной периферии (см. Табл. 1)
- Диапазон рабочих температур: от -40°C до +125°C
- Напряжение питания: питание ядра напряжением 2,5 В, питание портов напряжением 5 В
В архитектуре микроконтроллеров XC166 хорошо сбалансированы преимущества RISC, CISC и DSP процессоров в сочетании с усовершенствованной подсистемой периферии.
Взаимодействие CPU с памятью, в том числе внешней, организуется посредством блоков управления PMU (управляет доступом к блоку памяти программ – IMB и к внешней памяти) и DMU (управляет поступлением данных из памяти данных и периферии) связанных к тому же с контроллером внешней шины (EBC).
Блоки встроенной памяти позволили реализовать очень компактный кристалл, обеспечивающий высокую производительность в самых разных областях применений (в вычислительных средствах, средствах управления и коммуникации и т.п.). И блоки встроенной памяти (память программ и SRAM, двухпортовая RAM, SRAM данных) и подсистема встроенной периферии соединяются посредством раздельных шин. Еще одна шина – шина LXBus – используется для соединения с внешними ресурсами и рядом дополнительных встроенных ресурсов. Расширенная структура шин повышает общую производительность системы, обеспечивая одновременную работу различных подсистем.
В качестве базового, при рассмотрении микроконтроллеров серии XC166, возьмем микроконтроллер XC161CJ.
Блок-схема этого микроконтроллера приведена на Рис. 1.
Поскольку в первую очередь основные характеристики микроконтроллеров зависят от используемого ядра, то рассмотрение микроконтроллеров серии XC166 начнем с рассмотрения ядра C166S-V2, блок-схема которого показана на Рис. 2.
Основными блоками ядра CPU, как видно из Рис. 2, являются:
- Высокопроизводительный блок выборки команд (Instruction Fetch Unit — IFU) располагающий: широкополосным интерфейсом выборки, FIFO команд, стеком возврата и обеспечивающий высокоэффективную обработку ветвлений, вызовов и циклов с предсказанием потока команд.
- Блок обработчика включений/исключений организующий: обработку запросов прерываний, обработку аппаратных непредусмотренных ситуаций (Hardware Traps)
- Конвейер команд (Instruction Pipeline — IPIP) с 5-уровневым конвейером исполнения и 2-уровневым конвейером выборки команд с упреждением и обходом
- Блок адресов и данных (Address and Data Unit — ADU) с 16-разрядным арифметическим устройством формирования адресов и блоком адресов DSP с установкой специального адреса и указателей смещения
- Арифметико-логическое устройство (Arithmetic and Logic Unit — ALU) с блоком 8- и 16-разрядной арифметики, 16-разрядным циклическим сдвигающим устройством (Barrel Shifter), блоком умножения и деления, блоком 8- и 16-разрядной логики и блоком манипулирования битами
- Блок умножения и аккумулирования (Multiply and ACcumulate Unit — MAC) с 16-разрядным умножителем с формированием 32-разрядного результата), 40-разрядным аккумулятором с 40-разрядным циклическим сдвигателем, блоком управления повторами. 75% всех команд блока MAC выполняется за один цикл CPU.
- Регистровый файл (Register File — RF) — 5-портовый регистровый файл с тремя независимыми банками регистров
- 3-входовый буфер обратной записи (Write Back Buffer — WB)
Использованная в микроконтроллерах XC166 новая архитектура С166S-V2 оптимизирована под выполнение высокопроизводительных команд и минимальное время реакции (отклика) на внешние прерывания. В то же время, интеллектуальный принцип построения интегрированной с ядром системы периферийных модулей позволяет значительно уменьшить загрузку вычислительного ядра (CPU). Основными отличиями нового ядра от ядра C166 стали: расширение конвейера (C166 располагал 4-уровневым конвейером); более высокая тактовая частота и, следовательно, меньшая длительность рабочего цикла; выполнение практически всех команд за один цикл; выполнение ноль-циклового контекстного переключения; расширение 16-разрядного указателя стека до 24 разрядов. В итоге ядро C166S V2 обеспечивает более чем в два раза большую производительность, по сравнению со своим предшественником — ядром C166S V1, сохранив при этом совместимость по кодам, обеспечив простой переход от стандартных, уже эксплуатируемых микроконтроллеров семейства C166 к новому высокопроизводительному семейству XC166.
Память микроконтроллеров серии XC166 реализована по комбинированной архитектуре — «Harvard» и «von Neumann». Согласно с архитектурой «Harvard» память кодов и данных разделена, и такое физическое разделение позволяет организовать одновременный доступ и к кодам и к данным, увеличивая при этом производительность. Согласно с архитектурой «von Neumann» коды и данные размещаются в едином адресном пространстве, составляющем 16 Мбайт, что позволяет эффективно использовать память.
Расположенная в блоке IMB встроенная Flash память кодов и констант микроконтроллеров XC166 занимает 128 Кбайт адресного пространства и подразделяется на четыре сектора по 8 Кбайт, сектор емкостью 32 Кбайта и сектор емкостью 64 Кбайта. Flash память, оснащенная встроенным механизмом коррекции ошибок (ECC), взаимодействует с CPU (через PMU) посредством 64-разрядного интерфейса, что позволяет CPU считывать четыре 16-разрядные команды инструкции за один раз. Через блок PMU с CPU взаимодействуют также кэш-память программ (RAM емкостью 2 Кбайта) и ROM начального запуска (Start up ROM).
Память данных организована из регистрового двухпортового ОЗУ (DPRAM), с обращением короткой адресацией и возможностью одновременного доступа для записи и чтения; и блока памяти данных. К блоку памяти данных CPU обращается посредством 16-разрядного блока DMU.
Такая организация памяти позволяет CPU одновременно взаимодействовать с 64-разрядным кодом Flash памяти и с тремя 16-разрядными источниками данных (два в двухпортовом ОЗУ и один источник данных памяти данных или периферии).
Таблица 1. Карта памяти микроконтроллера XC161CJ
1)
- Обращение к затемненным областям формирует обращение к внешней шине.
- Отмеченные символом “Ячейки не определенных регистров возвращают коды непредусмотренных ситуаций.
Через блок DMU, при посредстве шины PD+Bus, полностью совместимой с шиной PDBus приборов семейства С166, происходит обмен данными между CPU и встроенной периферией. Также через блок DMU организуется взаимодействие CPU с внешней шиной. Модули встроенной периферии микроконтроллеров семейства XC166 по своим функциям, за исключением модуля TwinCAN, практически полностью совпадают с аналогичными модулями периферии микроконтроллеров семейства C166. Набор и количество периферийных модулей для каждого прибора семейства XC166 показан в Табл. 1. Здесь же отметим основные возможности модулей.
Модуль таймеров общего назначения (GPT12E) — очень гибкая структура многофункциональных таймеров/счетчиков, которую можно использовать в большом количестве связанных с временными промежутками задач, типа определения момента события и счета, определения ширины импульса и измерения скважности, генерации импульсов или их размножения. Модуль GPT12E содержит пять 16-разрядных таймеров, организованных в два отдельных модуля: GPT1 и GPT2. Каждый таймер каждого модуля может работать автономно или же может быть объединен с другим таймером того же самого модуля. Каждый таймер может быть индивидуально сконфигурирован в один из четырех основных режимов работы, таймера, стробируемого таймера, в режим счетчика и в режим инкрементного интерфейса (только таймеры GPT1). Максимальное разрешение таймеров модуля GPT1 — 8 циклов сигнала тактирования CPU. Максимальное разрешение таймеров модуля GPT2 составляет 4 цикла сигнала тактирования CPU.
Модули захвата/сравнения (CAPCOM1/2) управляют формированием последовательностей временных промежутков, поддерживая до 32 каналов с максимальным разрешением 16 tCL. Модули CAPCOM используются для: формирования импульсов и импульсных последовательностей, широтно-импульсной модуляции (PMW), цифро-аналогового (D/A) преобразования, организации программного тактирования или регистрации времени, относящегося к внешним событиям. Четыре 16-разрядных таймера (T0/T1 в CAPCOM1, T7/T8 в CAPCOM2) с перезагружаемыми регистрами формируют две независимых временных базы для массива регистров захвата/сравнения. Входной сигнал тактирования таймеров организуется программированием коэффициентов предварительного деления сигнала тактирования системы, или же может быть организован сигналами переполнения/антипереполнения таймера T6 модуля GPT2.
Модуль захвата/сравнения CAPCOM6, которым оснащены микроконтроллеры XC164 и XC167, предназначен для формирования, в первую очередь, PWM сигналов управления электродвигателями.
Временные последовательности формируются с использованием до трех 16-разрядных каналов захвата/сравнения и еще одного автономного 10-разрядного канала сравнения.
В режиме сравнения модуль CAPCOM6 формирует по два выходных сигнала (прямой и инверсный) по каждому каналу с промежутками запирания между импульсами (управление deadtime). Канал сравнения может формировать и одиночный выходной сигнал и, кроме того, может быть использован для модуляции выходных сигналов захвата/сравнения. В режиме захвата, по переходу сигнала на выводе входа, состояние таймера сравнения T12 сохраняется в регистре захвата.
Таймеры сравнения (16-разрядный T12 и 10-разрядный T10) являются таймерами свободного счета с тактированием сигналом предварительного делителя
Аналого-цифровой преобразователь (ADC), выполняющий 10-разрядное преобразование за 2,85 мкс (минимум), имеется в каждом микроконтроллере семейства XC166, однако количество мультиплексируемых каналов зависит от типа микроконтроллера, от количества выводов корпуса. ADC реализован по методу последовательного приближения, диапазон измеряемых напряжений составляет от 0 до 5 В, и главным его отличием от ADC приборов семейства C166 стала встроенная автоматическая самокалибровка, корректирующая влияние температуры или условий работы микроконтроллера на результат преобразования, и функция Auto-Power-Down. Над результатом преобразования, записываемым в регистр, выполняется процедура обнаружения/защиты от ошибки переполнения. В тех применениях, для которых достаточно меньшего количества каналов входа аналогового сигнала, остающиеся входы каналов могут быть использованы как порты цифровых входов.
ADC поддерживает ряд режимов преобразования: однократное преобразование фиксированного канала, непрерывное преобразование фиксированного канала, однократного преобразования с автосканированием непрерывного преобразования с автосканированием. Кроме того, в выполняемую последовательность преобразований может быть вставлено (инжектировано — injected) преобразование какого-то специфического канала.
С тем, чтобы сократить непроизводительные затраты вызова и выхода из подпрограмм обработки прерываний, при каждой передаче результатов преобразования в память может быть использован контроллер событий периферии (PEC).
Модуль часов реального времени (RTC) это, в основном, независимый таймер. Базовая частота RTC может быть запрограммирована посредством перезагружаемого таймера.
Новыми возможностями часов реального времени стали: формирование прерывания для активации микроконтроллера в заданное время, работа в синхронном системной частоте или асинхронном режимах, возможность отключения от питания микроконтроллера с подключением собственного источника питания.
Асинхронные/синхронные последовательные интерфейсы (ASCx) обеспечивают последовательную связь между хост микроконтроллером и другими микроконтроллерами, микропроцессорами или внешними периферийными устройствами. Интерфейсы ASCx поддерживают полнодуплексную асинхронную связь и полудуплексную синхронную связь. В асинхронном режиме пересылаются 8 или 9 битов данных с заданием контроля четности и количества стоповых битов. Для обеспечения надежности передачи данных выполняется контроль четности, фрейминга и переполнения. В синхронном режиме данные передаются или принимаются синхронно с сигналом тактирования, формируемым внутри ASC.
В дополнение к возможностям ASC микроконтроллеров семейства C166, ASC новых микроконтроллеров оснащены FIFO передачи и приема данных, в специальном асинхронном режиме ASC0 поддерживают IrDA передачу данных с производительностью до 115,2 Кбод с фиксированной или программируемой шириной IrDA импульса, поддерживают автоматическое определение бодовой скорости.
Для обеспечения многопроцессорной связи организован механизм распознавания адреса среди байтов данных. 13-разрядный генератор бодовой скорости обеспечивает формирование ASC0 отдельного последовательного синхросигнала с очень точной настройкой предварительным делителем, выполненным по схеме дробного делителя. Модулем формируются прерывания: по пустому буферу передатчика, по последнему биту фрейма, по полному буферу приемника, по ошибке и по запуску и окончанию автоматического детектирования бодовой скорости.
Быстродействующие синхронные последовательные каналы (SSCx) поддерживают полно- и полудуплексную последовательную синхронную связь с производительностью до 20 Мбод (при частоте тактирования 40 МГц). Формат данных, направление сдвига, полярность синхросигнала и фаза программируются. Специальный бодгенератор позволяет настраивать все стандартные бодовые скорости без настройки подсистемы тактирования. Модуль SSCx передает или получает символы длиной от 2 до 16 битов синхронно с сигналом сдвига, формируемым SSCx (в режиме ведущего) или внешним ведущим (в режиме ведомого). Сдвиг SSCx может начинать как с LSB, так и с MSB. Полностью поддерживаются все функции SPI. Для увеличения надежности пересылки данных используется ряд дополнительных возможностей обнаружения аппаратных ошибок. Прерывания формируются модулем: по пустому передатчику, по полному приемнику, по ошибке и по запуску и окончанию автоматического детектирования бодовой скорости.
Модуль канала последовательных данных (SDLM). Опция модуля канала последовательных данных (SDLM), соответствующая спецификации SAE Class B J1850 модуляции с переменной шириной импульса (VPW) и, по совместимому с Class B протоколу, обеспечивает последовательную связь через мультиплексируемую последовательную шину, типа J1850, через внешний приемопередатчик шины J1850. Модуль, оснащаемый буферами приема и передачи по 11 байтов, способен работать со стандартной производительностью 10,4 Кбод или с высокой (4-кратной) производительностью 41,6 Кбод.
Модуль шины I2C передает и принимает фреймы данных по двухпроводной I2C шине, в соответствии со спецификацией IIC Bus. Оснащенный буферами приема/передачи модуль может работать, используя 7- или 10-разрядную адресацию в режиме ведомого, в режиме ведущего или в режиме с множеством ведущих.
Под управлением программы может быть установлено динамическое обращение к нескольким физическим шинам (до 3). Данные могут пересылаться с производительностью до 400 Кбит/с. Назначенные модулю I2C два узла прерывания обеспечивают эффективное обслуживание прерываний и, кроме того, поддерживают работу через пересылки PEC.
Модуль TwinCAN, заменивший используемый в микроконтроллерах семейства C166 модуль CAN, взаимодействует с CPU посредством шины LXBus, работающей аналогично внешней шине. К шине LXBus подсоединены два (как опция) или один узел Full-CAN. Передача и прием CAN фреймов обрабатываются в соответствии со спецификацией CAN V2.0 part B (active). Каждый из двух Full-CAN узлов может получать и передавать стандартные фреймы с 11-разрядными идентификаторами и расширенные фреймы с 29-разрядными идентификаторами. Два узла CAN используют ресурсы TwinCAN модуля совместно, оптимизируя обработку трафика шины CAN и минимизируя нагрузку CPU.
Каждый из 32 возможных объектов сообщений может быть индивидуально назначен к одному из двух узлов CAN. Функцией шлюза обеспечивается автоматический обмен данными между двумя отдельными системами CAN шин, что способствует снижению загруженности CPU и улучшает поведение всей системы в реальном времени.
Сигнал тактирования битов в обоих узлах CAN формируется из сигнала тактирования периферии (fCAN) и может быть запрограммирован до скорости передачи данных в 1 Мбод. Каждый узел CAN соединяется с приемопередатчиком шины парой выводов приема и передачи данных.
Управление прерываниями и исключениями организуется специальным контроллером (Interrupt Controller and PEC (Peripheral Event Controller)). Контроллер прерываний микроконтроллеров XC166, по сравнению с микроконтроллерами семейства C166, обеспечивает обработку большего количества источников или узлов прерываний (до 128 с 16 уровнями приоритета) и большее количество групп (до 8). Типовая задержка прерывания, в случае внутренней обработки программ и данных, не превышает 200 нс (8 циклов). Уровень запроса 8-канального контроллера событий периферии (PEC), работающего с 24-разрядными указателями источников и назначений и организующий DMA пересылки, теперь программируется от наивысшего 15 уровня до уровня 8.
Управление системой и организация специфических для применения функций организуются в модуле управления системой (System Control Unit – SCU). Модуль SCU состоит, в свою очередь, из субмодулей, реализующих функции: централизованного управления работой системы, управления сбросом, управления потреблением, восстановления работоспособности системы после сбоев (WDT), формирования сигналов тактирования (CGU) и управления внешними прерываниями (до 8 входов быстрых асинхронных прерываний).
По сравнению с микроконтроллерами семейства C166 возможности SCU расширены средствами управления идентификацией и компенсации влияния изменения температуры.
Одно из основных преимуществ микроконтроллеров семейства XC166 – встроенная поддержка отладки (On Chip Debug Support – OCDS) предоставляющая пользователю возможность эмулировать самые важные аппаратные средства без использования эмуляционного кристалла. Основное назначение OCDS, управляемой внешним отладочным устройством через интерфейс JTAG — отладка пользовательского программного обеспечения непосредственно в системе пользователя. Встроенная отладка позволяет устанавливать аппаратные и программные контрольные точки, контрольные точки внешних выводов, отслеживать состояния GPRS/памяти, пошагово выполнять программу.
Внутрисхемная эмуляция (On-Chip Emulation — OCE) приборов семейства XC166 обеспечивает функциональность отладки в реальном масштабе времени, в случае эмуляции ресурсов, способствует отладке программ применения. Внутрисхемная эмуляция обеспечивает расширенные возможности переключений, включая: события указателей команд, события данных по адресам или значениям, внешние входы, счетчики, последовательности событий, таймеры и т.п. Поддерживаются программные остановы, во время режимов останова или мониторинга, обслуживаются прерывания
Фирмой Infineon разработан и распространяется бесплатно пакет DAvE 2.1 (Digital Application Engineer) – инструмент разработчика, позволяющий существенно сократить время разработки программ пользователя. Интерфейс DAvE гибок и очень прост, что позволяет быстро его освоить даже начинающему пользователю. Этому же способствует встроенная система оперативной справочной информации.
Непосредственно в DAvE пользователь выбирает модель микроконтроллера и специфические для проекта настройки, включая системную частоту и присваивание имени файла, получаемого при генерировании кода.
DAvE позволяет, вызвав любой блока периферии микроконтроллера, задать требуемые установки и настройки, предлагаемые в табличном виде.
После настройки всех определенных периферийных блоков пользователь может с помощью DAvE сгенерировать С-код и использовать его как исходный код в своем проекте.
Кроме того, DAvE содержит готовые шаблоны С-файлов, Header-файлов и документацию.
Фирмой разработаны и могут быть поставлены отладочные средства под микроконтроллеры семейства XC166. Но необходимо отметить, что аналогичные отладочные средства уже созданы и в нашей стране и стоимость этих средств существенно ниже фирменных.
Подведем итоги краткого рассмотрения основных возможностей 16-разрядных микроконтроллеров нового семейства фирмы Infineon.
Новое ядро, расширенный набор встроенной периферии и интеллектуальное управление периферией обеспечивают более чем в два раза большую производительность, чем предшествовавшее семейство C166. В то же время, сохранена совместимость кодов, что позволяет разработчикам использовать ранее наработанные программные средства, позволяет достаточно просто перейти на новое семейство. Новая сверхнадежная память обеспечивает работу в диапазоне температур от — 40°C до +125°C, сохраняя данные в течение 15 лет. Хорошая электромагнитная совместимость обеспечивает устойчивую работу микроконтроллеров семейства XC166 в условиях сильных электромагнитных помех.