Владимир Смерек, нач. лаборатории, АО «НИИЭТ»; Дмитрий Шеховцов, инженер-конструктор I категории, АО «НИИЭТ»; Николай Медведев, старший научный сотрудник, АО «НИИЭТ»; Владимир Горохов, к.т.н., зам. главного инженера, АО «НИИЭТ»; Игорь Потапов, к.т.н., нач. отдела, АО «НИИЭТ»

В статье рассмотрены технические характеристики и эксплуатационные возможности 16-разрядного RISC-микроконтроллера 1887ВЕ3Т, разработанного во АО «НИИЭТ» (г. Воронеж). Микроконтроллер (МК) спроектирован на базе лицензированного ядра C166SV1.2 Infineon Technologies и обеспечивает поддержку DSP-функций благодаря вычислительному модулю на кристалле (математическому сопроцессору) MAC. Высокая производительность, наличие встроенной энергонезависимой памяти и мощной периферии, включающей сетевой интерфейс CAN и внутреннюю систему отладки OCDS с JTAG-интерфейсом, позволяют использовать МК 1887ВЕ3Т в автомобильной, авиационной и судовой электронике, встроенных цифровых системах управления и связи, робототехнических комплексах, электромеханических устройствах и системах управления электродвигателями.

16-разрядные RISC-микроконтроллеры с архитектурой и системой команд С166 были разработаны специалистами полупроводникового отделения компании Siemens AG в начале 90-х гг. [1]. Позже на базе этого отделения была создана самостоятельная компания Infineon Technologies. МК серии С166 Infineon Technologies позиционировала прежде всего как изделия для бортовых автомобильных электронных систем с использованием сети CAN, однако, потом область их применения значительно расширилась — эти МК стали стандартом для применения в различных высокоскоростных цифровых системах управления с большим числом объектов и быстрой реакцией на прерывания.

В компании Infineon Technologies разработаны и производятся несколько десятков МК рассматриваемой серии, причем среди них можно выделить два основных семейства: С166 на базе ядра C166SV1 и его модификаций и XC166 на базе усовершенствованного ядра C166SV2 [2].

Основные технические характеристики 1887ВЕ3Т

Микросхема 1887ВЕ3Т представляет собой 16-разрядный RISC-микроконтроллер (МК) с тактовой частотой 40 МГц со встроенным АЦП, внутренним ОЗУ, встроенной флэш-памятью программ емкостью 256 кбайт и развитой периферией. Интегрированная интеллектуальная периферия снижает необходимость вмешательства со стороны центрального процессора. МК имеет двухканальный CAN-интерфейс (Twin CAN), ШИМ-модуль CAPCOM6 и характеризуется DSP-функциональностью. Внутренняя система отладки OCDS (On Chip Debug System) через JTAG-интерфейс способствует быстрой разработке программного обеспечения и интеграции систем.

Общие функциональные характеристики:
– высокопроизводительный 16-разрядный ЦП с 4-уровневым конвейером команд;
– блок умножения с накоплением (MAC);
– длительность командного цикла 50 нс при частоте 40 МГц тактового генератора ЦП;
– быстрые операции умножения (16Ч16 бит) и деления (32/16 бит);
– эффективное программирование благодаря дополнительным командам для поддержки языков высокого уровня;
– средства обеспечения быстрого контекстного переключения с двумя дополнительными локальными банками регистров;
– 16 Мбайт общего линейного адресного пространства памяти программ и данных;
– 1024 байт — встроенные области регистров специального назначения для управления периферией;
– система прерываний с 16 уровнями приоритета и 112 источниками прерывания, однократное время выборки до 50 нс;
– 8-канальные, управляемые прерываниями средства передачи данных за один цикл с помощью контроллера периферийных событий (PEC), 24-разрядные указатели для полного адресного пространства;
– генерация тактовых импульсов посредством встроенного устройства ФАПЧ (PLL);
– 103 линии ввода/вывода общего назначения.

Характеристики встроенных модулей памяти:
– двухпортовое ОЗУ (DPRAM) объемом 3 кбайт;
– статическое расширенное ОЗУ данных (XRAM) объемом 4 кбайт;
– статическое ОЗУ программ/данных (PSRAM) объемом 8 кбайт;
– встроенное ПЗУ (флэш-память программ) объемом 256 кбайт.

Встроенные периферийные модули:
– 16-канальный АЦП с программируемым разрешением (10- или 8-разрядным);
– два 16-канальных модуля захвата/сравнения общего назначения (CAPCOM1, CAPCOM2); – модуль захвата/сравнения для формирования ШиМ-сигналов (CAPCOM6);
– многофункциональный 16-раз рядный таймерный модуль общего назначения GPT1, GPT2 с 5 таймерами;
– два синхронных/асинхронных последовательных порта типа USART (ASC0, ASC1);
– два высокоскоростных синхронных последовательных порта типа SPI (SSC0, SSC1);
– сдвоенный модуль интерфейса протокола CAN варианта 2.0 В (Twin CAN module) с 32 объектами сообщений;
– программируемый сторожевой таймер (WDT);
– встроенные часы реального времени, управляемые специальным генератором;
– встроенные средства обеспечения отладки (OCDS) через JTAG-интерфейс;

Энергетические параметры:
– напряжение источника питания периферии Мк 5 В ±0,5 В;
– напряжение источника питания ядра Мк 2,35…2,7 В;
– суммарный максимально допустимый ток при одновременном подключении нескольких портов не более 50 ма;
– три режима пониженного энергопотребления: холостой (Idle), спящий (Sleep) и режим с отключением питания (Power Down).

Структура и Организация МК 1887ВЕ3Т

МК 1887ВЕ3Т имеет модульную организацию — его блок-схема (структурная электрическая схема) представлена на рисунке 1. МК имеет три основные системы: центральное процессорное устройство (ЦПУ), систему обработки прерываний и набор модулей периферийных устройств.

В базовую структуру МК входят блок управления и синхронизации, центральный процессор, память и группа периферийных устройств. Эффективная работа МК и быстрый обмен между отдельными системами обеспечивается четырьмя внутренними шинами. Двухпортовая DPRAM-память (ОЗУ 3кЧ8) и процессор связаны двумя 16-разрядными шинами. 32-разрядная шина связывает процессор и программную память (флэш-память программ 256 кбайт и ОЗУ программ/данных 8кЧ8). 16-разрядная шина PDBUS связывает процессор с основным набором периферийных устройств (таймеры, АЦП, модули захвата/сравнения и т.д.). другая 16-разрядная шина XBUS связывает процессор с дополнительным набором периферийных устройств (сдвоенный интерфейс CAN и т.д.) с контроллером внешней шины и ОЗУ данных (XRAM) 4кЧ8.

Архитектура МК сбалансированно объединяет преимущества RISC-, CISC- и DSP-процессоров с возможностями усовершенствованной периферийной подсистемы. К тому же, встроенные в кристалл блоки памяти позволяют выполнять операции с максимальной производительностью (вычисления, управление, коммуникации). ниже приведены данные, характеризующие особенности и возможности отдельных блоков и систем МК 1887Ве3т (см. рис. 1).

Центральный процессор (ЦП)
Высокопроизводительный RISC-процессор содержит 4-х ступенчатый конвейер для обработки инструкций, 16-разрядное АЛУ, регистры общего назначения и регистры специальных функций. Для выполнения операций в процессоре имеются два операционных блока — стандартный арифметико-логический блок ALU и специальный арифметический блок — устройство умножения и аккумулирования MAC (Multiply and Accumulate Unit). Чтобы сократить время выполнения инструкций, в стандартном ALU предусмотрены арифметический модуль (MUL, DIV), генератор битовых масок и модуль операций сдвига (SHIFT, ROTATE).

Для манипуляций с данными используется банк регистров общего назначения (GPR), который содержит шестнадцать 16-разрядных регистров (R0-R15). Чтобы увеличить скорость обработки данных, используя при этом специальные команды, работают с блоком умножения и аккумулирования MAC (иногда его называют математическим сопроцессором). В состав MAC входят 16-разрядный умножитель с формированием 32-разрядного результата и 40-разрядный аккумулятор с 40-разрядным циклическим сдвигателем. Кроме того, в состав сопроцессора входит блок управления повторами, с помощью которого можно повторять операцию до 8192 раз без дополнительных программных средств. Большинство всех команд MAC выполняет за один цикл, что позволяет реализовать алгоритм быстрого преобразования Фурье.

Центральный процессор непосредственно связан с внутренней памятью МК через 32-разрядную шину. Доступ к внешним устройствам осуществляется с помощью контроллера внешней шины EBC. Внутренние периферийные устройства МК работают независимо от ЦПУ. Всеми действиями аппаратных средств МК и периферийных устройств управляют тактовые сигналы, генерируемые модулем генератора тактовых сигналов. В состав этого модуля входят осциллятор, блок PLL (Phase Locked Loop) и схема распределения тактового сигнала.

Во время работы центральный процессор находится в тесном взаимодействии со сторожевым таймером (WDT). Сторожевой таймер позволяет предотвратить длительное зависание МК из-за ошибок выполнения программы или непредусмотренной комбинации внешних сигналов.

Организация блоков памяти
Пространство памяти МК 1887ВЕ3Т устроено по принципу архитектуры Фон Неймана. Это означает, что память программного кода, память данных, регистров и портов ввода/вывода организованы в одном и том же линейном адресном пространстве, которое может достигать 16 Мбайт. Пространство памяти может быть доступно для данных размером в байт либо слово. Отдельная часть внутренней памяти может также иметь прямую битовую адресацию.
Память МК делится на внутреннюю и внешнюю. Внутренняя память представлена следующими устройствами:
– двухпортовым ОЗУ (Dual-port RAM) 3кЧ8;
– ОЗУ данных (XRAM) 4кЧ8;
– ОЗУ программ/данных (Program SRAM) 8кЧ8;
– Флэш-памятью программ (Prog ram memory) 256 кбайт.

Двухпортовое ОЗУ (DPRAM) предназначено для хранения данных и в том числе — данных для выполнения операций DSP. Кроме того, оно используется для организации глобальных регистровых банков и может быть использовано для организации системного стека.

ОЗУ данных (XRAM) предназначено для хранения данных. Является частью Х-периферии и связано с процессором 16-разрядной шиной XBUS. Память XRAM может быть использована для организации системного стека. ОЗУ программ/данных (PSRAM) предназначено для хранения программы и может быть использовано для хранения данных. Является оперативной памятью программ.

Флэш-память программ (рМ) предназначена для хранения команд программы и постоянных данных. Память является энергонезависимым запоминающим устройством и допускает многократную перезапись кодов. Для программирования не требуется дополнительного источника напряжения. Для стабилизации встроенных генераторов напряжения необходимо около 100 мкс. Флэш-массив можно условно разделить на 2048 секторов по 128 байт в каждом или на 32 блока по 8 кбайт. Одной командной последовательностью можно стереть всю флэш-память, блок или сектор, а также записать одно слово. Начальная запись в чистую флэш-память возможна как с помощью программы во внешней памяти, так и с помощью JTAG-интерфейса и команд модуля отладки OCDS.

МК может использовать до 16 Мбайт адресного пространства. Только часть этого пространства используется внутренней памятью. Все адреса, не использующиеся внутренней памятью и не занятые под регистры, могут быть переопределены под внешнюю память. Внешняя память доступна с помощью интерфейса внешней шины, которым управляет контроллер внешней шины ЕВС.

Периферийные устройства

Блок аналого-цифрового преобразователя (АЦП)
Блок АЦП представляет собой два 8/10-разрядных АЦП и устройство выборки и хранения (УВХ). Мультиплексор выбирает один канал между 16-ю (8Ч2) аналоговыми входными каналами: программно или автоматически. Существует два режима работы блока АЦП — одиночный АЦП (см. рис. 2) и двойной АЦП, которые можно выбрать программным способом с помощью регистра выбора режима ADC_SWITCH.

Для выполнения большинства требований в одиночном режиме АЦП поддерживает такие режимы преобразования: фиксированный ка нал — однократное и неоднократное преобразование, автоматическое сканирование — однократное и неоднократное преобразование, режим ожидания чтения ADC_DAT, режим инжекции канала.

Режим работы двойного АЦП характеризуется независимой и одновременной работой двух АЦП. При этом каждому АЦП будут соответствовать свои аналоговые входы, свои регистры, преобразователи и линии прерываний.

Блоки захвата/сравнения CAPCOM1, CAPCOM2.
В состав МК 1887ВЕ3Т входят два идентичных 16-канальных блока захвата/сравнения (CAPCOM), различие между которыми заключается только в подключении к выводам. Каждый CAPCOM взаимодействует с двумя таймерами, при этом канал CAPCOM может захватывать содержимое таймера при некотором внутреннем или внешнем событии или сравнивать содержимое таймера с заданным значением и соответствующим образом изменять выходные сигналы.

Таким образом, каждый блок CAPCOM поддерживает генерирование и контроль временных последовательностей для 16 каналов с минимальными требованиями к программному обеспечению. Обычно CAPCOM используется для выполнения высокоскоростных задач, таких как генерация импульсов и их последовательностей или запись времени возникновения какого-либо события, а также поддерживает осуществление 16 программно контролируемых прерываний.

Блок захвата/сравнения и ШИМ (CAPCOM6)
Данный блок предназначен для формирования широтно-модулированных импульсных сигналов (Pulse Width Modulator unit). Полный блок CAPCOM6 состоит из блока таймера Т12 с тремя каналами захвата/сравнения и блока таймера Т13 с одним каналом сравнения. Каналы таймера Т12 могут независимо генерировать ШИМ-сигналы или считывать значения триггеров захвата.

Блок таймера Т12 обеспечивает возможность генерирования до 6 сигналов трехфазной ШИМ, а также — генерирования пилообразной и симметричной ШИМ. Временная задержка (аппаратная пауза) «мертвого времени» (dead-time) позволяет избежать перекрытия активных сигналов управления и исключить, например, короткое замыкание в силовой схеме, если контроллер работает с двигателем [1].

Блок таймера Т13 с разрешением 16 бит обеспечивает возможность синхронизации с таймером Т12 и генерирования прерываний при совпадениях по периоду и по значению, а также поддерживает режим однократного срабатывания.

В целом модуль CAPCOM6 предназначен для управления электродвигателями разных типов — постоянного, переменного тока, бесколлекторных и т.д. При этом обеспечиваются следующие дополнительные опции:
– осуществление коммутации блока с бесщеточным двигателем постоянного тока;
– отслеживание положения ротора двигателя через датчики Холла;
– фильтрация шумов при работе с датчиками Холла;
– автоматическое измерение скорости вращения для блока коммутации;
– встроенный аппарат обработки ошибок;
– скоростное экстренное прекращение работы (например, при возникновении аварии) с помощью специального внешнего сигнала (вход CTRAP);
– режимы контроля для многоканальных асинхронных двигателей;
– возможность адаптации уровней выходных сигналов под силовую часть.

Сдвоенный модуль CAN-интерфейса
В МК 1887ВЕ3Т реализован сдвоенный блок интерфейса протокола CAN (Twin CAN module), 32 объекта сообщений, в спецификации CAN 2.0 В, активная версия. Он включает два независимых блока (CAN узел 0 и CAN узел 1) с общим ОЗУ, отличие между которыми заключается лишь в подключении к выводам. Структурная схема блока CAN приведена на рисунке 3.

Блок CAN предназначен для обслуживания протокола (шины) CAN в высокоскоростных сетях связи, в бортовых автомобильных электронных системах и многих других приложениях индустриального и специального характера. Встроенный модуль CAN соответствует стандарту ISO 11898, обеспечивает программируемую скорость передачи информации до 1 Мбит/с, а также гибкий и полный контроль передачи сообщений и обработки ошибок.

Блок CAN выполняет все функции для приема и передачи сообщений по шине. Данные, предназначенные для передачи, записываются в соответствующие регистры. Состояние блока CAN и возникшие ошибки проверяются чтением регистров состояния. Любое сообщение, передаваемое по шине, проверяется на наличие ошибок, согласуется по фильтрам и сохраняется в регистрах приемного буфера при выполнении всех условий. Помимо стандартной передачи сообщений (каждый CAN-узел передает на свои выходы) в МК реализовано также «логическое и» передач CAN-узлов — вывод результата сложения сигналов передачи обоих узлов на один выход.

Встроенная система отладки OCDS с интерфейсом JTAG.
Одним из преимуществ нового МК является наличие встроенной системы отладки OCDS. Эта система обеспечивает широкий диапазон возможностей в части отладочных и эмуляционных средств, позволяя осуществлять отладку программного обеспечения непосредственно в среде системы.

Встроенные в МК 1887ВЕ3Т средства обеспечения отладки (OCDS) управляются внешним отладочным устройством через интерфейс JTAG. Дополнительно система OCDS может управляться и через ЦПУ, например, с помощью управляющей программы. Множественные точки прерывания могут быть использованы встроенными аппаратными, программными средствами или внешним сигналом. Поддерживается простой пошаговый режим, так же как и полный доступ для считывания/записи во всем внутреннем адресном пространстве. Запуск прерывания может быть вызван остановкой ЦПУ, вызовом монитора, передачей данных и/или активирован внешним сигналом.

Данные трассировки могут быть получены через JTAG-интерфейс или через интерфейс внешней шины для увеличения производительности. интерфейс отладки использует группу из 6 сигналов (4 JTAG линии, 2 линии прерываний) для соединения с внешней схемой. Для этих сигналов интерфейса используют специально предназначенные выводы.

Как уже отмечалось, одним из перспективных направлений применения МК 1887Ве3т с CAN-интерфейсом является создание на его основе средств компьютерной диагностики и интегрированных электронных систем управления блоками автомобилей. На рисунке 4 показана структура электронного блока управления электрооборудованием автомобиля с использованием МК 1887ВЕ3Т и другой элементной базы, разработанной в АО «НИИЭТ».

Рекомендации по программным и аппаратным средствам отладки
Для освоения и изучения 16-разрядного МК 1887ВЕ3Т, а также для построения систем на его основе разработаны макетно-отладочная плата и адаптер для программирования. С их использованием возможно программирование МК, подключение внешних элементов к выводам и оценка работы прикладных программ.
В состав макетно-отладочной платы входят следующие элементы:
– основная плата с разъемами портов ввода/вывода и макетным полем;
– плата модуля с МК 1887ВЕ3Т;
– плата модуля внешней флэш-памяти (64к 16-разрядных слов);
– модуль CAN-интерфейса;
– источник питания.

Адаптер предназначен для использования при разработке прикладных программ в системах на основе МК 1887ВЕ3Т. Программирование встроенной памяти программ МК, разработка прикладных программ и их внутрисистемная отладка осуществляются совместно с инструментальными средствами фирмы Keil: USB-JTAG-эмулятор KEIL Software ULINK2 и µVision отладочная среда.

Возможно использование инструментальных средств Keil (uVision Keil Software, Keil XC16x/C16x/ST10), поддерживающих все МК семейства Infineon ХС166 (ХС161, ХС164, ХС167). Пакет инструментальных средств включает С-компилятор, макроассемблер, компоновщик, интегрированную среду разработки ?Vision, отладчик/симулятор dScope и отладочный монитор. Отладчик dScope может работать как с виртуальной, так и с реальной отлаживаемой системой (например, оценочными платами фирм Keil и Phytec), используя ядро монитора, которое находится в отладочном ОЗУ или ПЗУ. Окончательная оценка работоспособности осуществляется с использованием микросхемы 1887ВЕ3Т в составе отлаживаемой системы или макетноотладочной платы.

ЛИТЕРАТУРА

  1. В. Чучалов, Новый стандарт от Inneon Technologies — 16-разрядный микроконтроллер и DSP на одном кристалле// Электронные компоненты, № 5, 2002.
  2. В. Белецкий, XC166 — новое семейство 16-разрядных микроконтроллеров фирмы Inneon//Компоненты и технологии, № 3, 2004.