Компоненты и технологии, № 2'2004 Компоненты
Семейство 68HCS12 - новое поколение 16-разрядных микроконтроллеров
компании Motorola
Лидерами в производстве 16-разрядных микроконтроллеров являются японские компании Hitachi, Fujitsu, Mitsubishi, NEC, Toshiba, однако российские потребители более широко используют продукцию американских и европейских компаний Motorola, Intel, Texas Instruments, Infineon, STMicroelectronics, Philips [1, 2].
Данная статья знакомит читателей с новым семейством 16-разрядных микроконтроллеров 68HCS12 компании Motorola, отличающихся высокой производительностью и широкими функциональными возможностями.
Игорь Шагурин, Максим Мокрецов
В настоящее время основной объем выпуска микроконтроллеров составляют 8-разрядные изделия, имеющие относительно низкую стоимость и широко использующиеся в разнообразной электронной аппаратуре массового применения. Однако потребность в быстрой обработке операндов большей разрядности привела к росту заинтересованности в 16-разрядных моделях. Именно поэтому многие ведущие производители наряду с 8-разрядными микроконтроллерами выпускают архитектурно совместимые с ними семейства 16-разрядных микроконтроллеров. Архитектурная совместимость облегчает разработчикам аппаратуры переход к применению 16-разрядных моделей, позволяет использовать значительный объем прикладного программного обеспечения, ранее созданного для 8-разрядных микроконтроллеров.
Еще в 1998 году компания Motorola начала производство семейства 16-разрядных микроконтроллеров 68HC12, имеющих ряд специфических особенностей, которые обеспечили им эффективное применение в электронной аппаратуре различного назначения [3]. В новом поколении этого семейства — 68HCS12, выпуск которого начался в 2002 году, используется более совершенная технология изготовления (топологические нормы 0,25 мкм вместо
0,5 мкм для семейства 68HC12) и модифицированный вариант Flash-памяти (Flash-память третьего поколения). В результате существенно повышена максимальная тактовая частота (до 25 МГц вместо 8 МГц для 68HC12) и увеличена емкость внутренней Flash-памяти (до 256 кбайт в выпускаемых моделях). Стирание производится блоками по 512 байт, программирование — ячейками по 2 байт. Обеспечивается быстрое стирание (20 мс для 512 байт) и программирование (20 мкс для 2 байт). Общее время программирования Flash-памяти емкостью 256 кбайт составляет менее 10 с. Напряжение программирования и стирания — 5 В, допустимое число циклов стирания-программирования — не менее 10000 (типовое значение — 100000 циклов).
В настоящее время семейство 68HCS12 является основным промышленным стандартом компании Motorola в сфере 16-разрядных микроконтроллеров. В качестве основных особенностей этого семейства следует отметить:
• архитектурную и программную совместимость с широко используемым семейством 8-разрядных микроконтроллеров Motorola 68HC11 [4];
• расширенный набор команд и способов адресации, обеспечивающих реализацию управления с использованием «нечеткой логики», поддержку языков высокого уровня и ряд других дополнительных возможностей;
• улучшенные технические характеристики: высокая производительность, пониженное энергопотребление, расширенный объем адресуемой памяти;
• наличие эффективных встроенных средств отладки, существенно упрощающих процесс разработки систем на базе этих микроконтроллеров. Большой набор периферийных устройств, высокая производительность и относительно низкое энергопотребление позволяют эффективно использовать микроконтроллеры этого семейства для реализации широкой номенклатуры цифровых систем.
Номенклатура и функциональный состав микроконтроллеров семейства 68HCS12
В состав семейства входит ряд серий микроконтроллеров — A, C, Dx, E, H, T, предназначенных для различных областей применения. Модели микроконтроллеров, входящие в эти серии, отличаются объемом внутренней памяти, номенклатурой периферийных устройств, размещенных на кристалле, и другими техническими характеристиками (табл. 1). Микроконтроллеры содержат 16-разрядный процессор HCS12, внутреннюю память — ОЗУ данных емкостью 4, 8 или 12 кбайт, ЭСППЗУ емкостью 1, 2 или 4 кбайт, Flash-память емкостью от 32 кбайт до 256 кбайт (указывается в обозначении модели),
Компоненты и технологии, № 2'2004
модуль системной интеграции SIM, набор служебных и периферийных модулей.
В серию A входят микроконтроллеры общего назначения с различным объемом Flash-памяти (64, 128 или 256 кбайт), ОЗУ (4, 8 или 12 кбайт) и ЭСППЗУ (1, 2 или 4 кбайт). Эта серия ориентирована на применение в приборостроении, контрольно-измерительной аппаратуре, робототехнике, системах обеспечения безопасности.
Микроконтроллеры серии E отличаются наличием двух 8-разрядных цифро-аналоговых преобразователей (DAC), а также введением дополнительного широтно-импульсного модулятора PMF, обеспечивающего выдачу сигналов для управления широкой номенклатурой электродвигателей постоянного и переменного тока. Этот модулятор располагает тремя входами для подключения датчиков тока, принимающих сигналы с обмоток электродвигателей. Основной областью применения серии E является управление различными электродвигателями и другим промышленным оборудованием.
В микроконтроллерах серии T отсутствуют специализированные интерфейсы CAN и I2C. Особенностью этой серии является введение внутреннего ОЗУ для хранения калибровочных констант и дополнительного интефейса отладки FBDM. Калибровочное ОЗУ емкостью 2 кбайт занимает адресное пространство аналогичного блока Flash-памяти и служит для хранения констант, значения которых могут меняться в процессе выполнения программы. Интерфейс FBDM использует в процессе отладки синхронный порт SPI для быстрого чтения-записи содержимого внутренней памяти. Эти микроконтроллеры предназначены для использования в робототехнике, приборостроении, системах энергоснабжения, охранных системах.
Модели серии H содержат контроллер жидкокристаллического дисплея (4x32 символов) и выходы для управления шаговыми двигателями. Они ориентированы на применение в автомобильном приборостроении и различной портативной аппаратуре.
Серия C содержит модели с ограниченным составом периферийных модулей. Эти модели размещаются в корпусах с малым числом выводов (48, 52 или 80) и имеют более низкую стоимость. В состав серии входят также модели, в которых вместо Flash-памяти используется масочно-программируемое ПЗУ. Эти модели предназначены для применения в аппаратуре, выпускаемой массовыми тиражами.
В серию Dx входит ряд моделей, отличающихся как объемом внутренней памяти, так и составом специализированных последовательных интерфейсов. Кроме интерфейса с шиной I2C все модели этой серии содержат интерфейсы с шиной CAN (от 1 до 5). В моделях DJ, DP имеются также контроллеры, реализующие протокол J1850, а в модели DB — контроллер, реализующий протокол Byteflight, используемый компанией BMW. Основные области применения этой серии — системы промышленной автоматики и автомобильная электроника.
VREGEN Vn Уз
Ven Увз
Преобразователь напряжений SB -> 2,5 В
Flash-память 256 кбайт
ОЗУ данных 12 кбайт
ЭСППЗУ Á кбайт
Процессор HCS12
BKGD Ч ► Блок BDM
Блок ВКР
БлокINT
EXTAL -------
XTAL А
РЕ7-0
Сигналы
управления
ГТИ
Блок СМ Модуль системной интеграции SIM
Блок СОР
Блок RTI
Порт Е
ПортА Порт В
і РА7-0 1 РВ7-0
Мультиплексированная шина адреса/данных
Рис. 1. Структура микроконтроллера MC9S12DP256
Внутренняя
шина
АЦП ATD0 Порт ATD0
АЦП ATD1 Порт ATD1
Блок
страничной Порт К
трансляции
Таймер ЕСТ ПортТ
SCI0 Порт S
sen
SPI0
РТ7-0
Каналы
таймера
BDLC
CANO
CAN1 Порт М
CAN 2
CAN3
CAN4 Порт J
PC
Блок PWM Порт Р
SPI1 Порт Н
SPI2
РМ7-0 Выводы CAN, BDLC
PJ 7-6,1-0
Выводы
CAN, I2C
РР7-0
Выводы
PWM, SPI
ЗР7-0
Выводы
SPI, PWM
Структура и функционирование микроконтроллеров
Микроконтроллеры семейства 68НС812 реализованы по модульной структуре, организуемой из набора отдельных функциональных модулей, взаимодействующих посредством стандартизованной межмодульной шины. Процессор НС812 взаимодействует с этими модулями, обращаясь к их регистрам, для размещения которых выделяется 1 кбайт адресного пространства. На рис. 1 представлена структура микроконтроллера МС9812БР256, который является типичным представителем рассматриваемого семейства.
Микроконтроллеры НСЭ12 работают при напряжении питания 5 В (кроме серии Е, функционирующей также при 3,3 В). При этом для питания основных модулей служит напряжение 2,5 В, получаемое с помощью встроенного преобразователя. Преобразователь включается при подаче внешнего сигнала VREGEN=1. Максимальная рабочая частота составляет 25 МГц (для серий Н и Т — 16 МГц).
Основной диапазон рабочих температур составляет от -40 до +85 °С. В состав большинства серий входят также модели, работа-
ющие в расширенном диапазоне температур от -40 до +105 °С или от -40 до +125 °C.
Микроконтроллеры размещаются в 112-или 80-выводных корпусах, кроме серии C, содержащей модели с 48 и 52 выводами, и серии T, содержащей модели со 112 и 144 выводами. При размещении в корпусах с малым числом выводов соответствующие модели имеют меньше выводов параллельных портов и каналов АЦП, ШИМ (см. табл. 1).
В системах и устройствах микроконтроллеры могут работать в автономном (SingleChip) или расширенном (Expanded) режимах. В автономном режиме микроконтроллер использует для хранения программ и данных только внутреннюю память. В расширенном режиме к микроконтроллеру подключается внешняя память, обмен с которой производится по 8- или 16-разрядной мультиплексированной шине адресов-данных. При этом 8-разрядные порты ввода-вывода A и B служат для выдачи 16 разрядов адреса-данных A/D 15-0 (при 8-разрядной системной шине для пересылки байта данных D7-0 используется порт A), и порт E — для передачи сигналов управления обменом. Микроконтроллеры семейства 68HCS12 реализуют также четыре различных специальных режи-
е
Компоненты и технологии, № 2'2004
ма, используемые на стадиях отладки программы и тестирования кристалла.
В расширенном режиме объем адресного пространства микроконтроллеров HCS12 может быть увеличен до 1 Мбайт. Объем адресуемой памяти увеличивается путем использования окон расширения, расположенных в стандартном пространстве памяти в 64 кбайт, и шести дополнительных адресных линий XADDR19-14. В каждом окне расширения может располагаться страница памяти емкостью 16 кбайт. Адресация памяти объемом свыше 64 кбайт осуществляется с помощью блока страничной трансляции, в котором имеется регистр PPAGE, содержащий адрес текущей страницы. С помощью этого регистра обеспечивается обращение к 64 страницам памяти. При обращении по адресу, попадающему в окно расширения, соответствующие разряды регистра PPAGE выводятся на старшие линии шины адреса XADDR19-14, которые совмещены с выводами порта K. Граничная трансляция адреса используется также при обращении к внутренней Flash-памяти объемом более 64 кбайт.
Микроконтроллеры 68HCS12 располагают расширенным набором режимов пониженного энергопотребления. Режим ожидания реализуется при поступлении команды WAI, вызывающей запись в стек содержимого регистров процессора и останавливающей его работу. При этом продолжают функционировать ГТИ и периферийные устройства: таймер, последовательные порты, АЦП. Возможны различные варианты отключения периферийных устройств, что обеспечивает снижение потребления от 1,5 до 13 раз. Режим останова реализуется после выборки команды STOP, которая производит запись в стек содержимого регистров процессора, а затем прекращает работу ГТИ, останавливает процессор и все периферийные блоки. При этом потребляемый ток уменьшается до десятков мкА. Предусмотрен также режим псевдоостанова, при котором прекращается функционирование всех модулей, но продолжает работать ГТИ, поэтому выход микроконтроллера в рабочий режим происходит так же быстро, как из режима ожидания. Возврат в рабочий режим происходит по сигналу запуска или прерывания.
Для моделей 9S12DP256, 9S12DT256, 9S12DG256, 9S12DJ256 при рабочей частоте 25 МГц обеспечиваются следующие типовые значения потребляемого тока:
• в рабочем режиме — 65 мА;
• в режиме ожидания — от 5 до 40 мА (в зависимости от числа работающих модулей);
• в режиме псевдоостанова — от 400 до 600 мкА (при нормальной температуре);
• в режиме полного останова — 25 мкА (при нормальной температуре).
Способы адресации и система команд
Процессор HCS12 является 16-разрядным развитием 8-разрядного процессора, ис-
пользуемого в семействе Motorola 68HC11. Программный код 68HSC12 снизу вверх совместим с кодом 68HC11 на уровне исходного текста. Процессор выполняет обработку битовых, 8- и 16-разрядных операндов. Его регистровая модель аналогична модели процессорного ядра микроконтроллеров 68HC11 и содержит семь программно доступных регистров (рис. 2). Два 8-разрядных регистра-аккумулятора A и B используются для хранения операндов и результата операции. При выполнении действий над 16-разрядными операндами эти регистры объединяются в один 16-разрядный аккумулятор D. Два 16-разрядных индексных регистра X и Y используются для формирования адреса операнда при выполнении операций с индексной адресацией. Указатель стека SP содержит 16 разрядов и может использоваться не только для работы со стеком, но и для реализации индексной адресации. Программный счетчик PC содержит адрес следующей выполняемой команды, а также служит для формирования адреса операнда в ряде вариантов индексной адресации. Регистр условий CCR содержит значения признаков переноса (С), переполнения (V), нуля (Z), отрицательного результата (N) и переноса между тетрадами (H), устанавливаемых по результатам выполнения операции. Также CCR содержит биты маскирования прерываний I и X, и управляющий бит S, который при значении S=1 запрещает перевод микроконтроллера в режим останова по команде STOP.
7 0 7 0
А 1 в
D
15 0
1 X
15 0
Y
15 0
1 SP
15 0
РС
7 0 1 1
Рис. 2. Регистровая модель процессора HCS12
Процессор НСЭ12 поддерживает все способы адресации, используемые семейством 68НС11, и реализует 7 дополнительных вариантов индексной адресации. Обеспечиваются следующие способы адресации:
• регистровая (операнд располагается в одном из регистров процессора);
• непосредственная (8- или 16-разрядный операнд задается во втором и третьем байтах команды);
• прямая (8- или 16-разрядный адрес операнда указывается во втором и третьем байтах команды);
• относительная (адрес операнда образуется путем сложения содержимого программного счетчика РС и заданного в команде 8- или 16-разрядного смещения);
• индексная с 5-, 9- или 16-разрядным смещением (адрес операнда образуется путем сложения содержимого регистра X, Y, ЭР или РС и смещения);
• индексная с преддекрементом (перед выборкой операнда содержимое заданного в команде регистра X, Y или ЭР уменьшается на число от 1 до 8);
• индексная с прединкрементом (перед выборкой операнда содержимое заданного регистра X, Y или ЭР увеличивается на число от 1 до 8);
• индексная с постдекрементом (после выборки операнда содержимое заданного регистра X, Y или ЭР уменьшается на число от 1 до 8);
• индексная с постинкрементом (после выборки операнда содержимое заданного регистра X, Y или ЭР увеличивается на число от 1 до 8);
• индексная со смещением, расположенным в аккумуляторе (адрес операнда образуется путем сложения содержимого заданного регистра X, Y, ЭР или РС с содержимым одного из аккумуляторов А, В или Б);
• косвенно-индексная с 16-разрядным смещением (адрес операнда располагается в ячейке памяти с адресом, получаемым сложением содержимого заданного регистра X, Y, ЭР или РС с 16-разрядным смещением);
• косвенно-индексная со смещением, расположенным в регистре Б (адрес операнда располагается в ячейке памяти с адресом, получаемым сложением содержимого заданного регистра X, Y, ЭР или РС с содержимым регистра Б).
Процессор НСЭ12 выполняет набор из 208 команд над операндами, расположенными в регистрах и ячейках памяти. Группа команд пересылки включает в себя команды загрузки регистров процессора, сохранения их содержимого в памяти и обмена данными между различными регистрами. К этой группе относятся также команды, выполняющие запись содержимого регистров А, В, Б, X, Y, CCR в стек и загрузку этих регистров из стека. Введены команды MOVB и МОУ^ позволяющие осуществлять пересылку 8- и 16разрядных данных из памяти в память, и команды, выполняющие вычисление эффективного адреса и его загрузку в регистры ЭР, X или Y. Группа команд арифметических операций позволяет выполнять сложение и вычитание содержимого двух регистров или регистра и ячейки памяти, производить коррекцию результата сложения двоично-десятичных чисел, выполнять инкремент и декремент содержимого ячейки памяти или регистра, изменять его знак. К командам умножения 8x8 и деления 16/8, имеющимся в микроконтроллерах семейства 68НС11, добавлены команды 16-разрядного умножения 16x16, умножения 16x16 с накоплением, деления 32/16 и знакового расширения. Команды сравнения выполняют установку признаков N Z, V, С в регистре CCR в соответствии с результатом вычитания содержимого двух операндов, хранящихся в регистрах-аккумуляторах или регистре и ячейке памяти. Команды тестирования устанавливают значения признаков N Z в соответствии с содержимым ячейки памяти или регистра-аккумулятора. Команды логических операций реализуют побитовые операции НЕ, И, ИЛИ,
Компоненты и технологии, № 2'2004
Исключающее ИЛИ над содержимым регистра и ячейки памяти. Группа команд сдвига включает команды одноразрядных арифметических, логических и циклических сдвигов, выполняемых над содержимым регистров-аккумуляторов и ячейки памяти. Команды битовых операций обеспечивают установку в 0 или 1 заданного бита в ячейке памяти и установку требуемого значения признаков C, I, V в регистре CCR.
Команды управления программой реализуют условные и безусловные ветвления, организацию циклов, вызов подпрограммы и возврат из подпрограммы или процедуры обработки прерывания. Условиями ветвления могут быть значения признаков Z, N и результаты выполнения команд сравнения операндов со знаком или без знака (>, >=, <, <=). В эту группу входит также команда программного прерывания SWI. Для управления процессором служат команды WAI, STOP, переводящие его в режим ожидания и останова, команда BGND, иници-рующая перевод в режим отладки.
В дополнительную группу команд, реализуемых процессором HCS12, входят команды интерполяции табличных данных, позволяющие вычислять значение линейной функции в заданной промежуточной точке. При обработке табличных данных используются также команды выбора минимального или максимального значения из двух чисел, расположенных в регистре-аккумуляторе и ячейке памяти.
Процессор HCS12 аппаратно поддерживает операции «нечеткой логики», что позволяет эффективно реализовывать на базе микроконтроллеров этого семейства соответствующие системы управления. Группа команд нечеткой логики включает четыре команды. Команда MEM производит фаззифи-кацию, выполняя преобразование точных значений входных переменных в значения лингвистических переменных в соответствии с функциями принадлежности из базы знаний. Далее с помощью команд REVW и REV проводится непосредственно обработка полученных значений по заданному алгоритму с учетом или без учета весовых коэффициентов правил обработки. С помощью команды WAV осуществляется дефаз-зификация, в результате которой осуществляется переход от нечетких значений выходной переменной к точным выходным значениям, обеспечивающим требуемое управление системой.
Команды имеют длину от 1 до 6 байт. Выполнение большинства команд занимает от 1 до 6 тактов. Большее время выполнения имеют команды деления (11-12 тактов), умножения с накоплением (13 тактов), прерывания (8-11 тактов), а также команды нечеткой логики. Для повышения производительности в процессоре HCS12 реализован 3-ступенчатый конвейер выполнения команд. Благодаря использованию конвейера для получения результата очередной команды требуется в среднем 2-3 такта. Таким образом, при тактовой частоте 25 МГц типовое значение производительности составляет 8-12 миллионов операций в секунду.
Служебные и периферийные модули
В состав микроконтроллеров семейства 68HCS12 входит ряд служебных и периферийных модулей (рис. 1). Процессор HCS12 взаимодействует с этими модулями, обращаясь к их регистрам, которые расположены в соответствующих позициях адресного пространства.
Модуль системной интеграции SIM обеспечивает совместную работу различных модулей, входящих в состав микроконтроллера. В расширенном режиме модуль SIM реализует выдачу адреса и ввод-вывод данных, используя выводы портов A, B в качестве мультиплексированной шины адреса-данных, а выводы порта E для передачи сигналов управления обменом.
Генератор тактовых импульсов (ГТИ) генерирует импульсные сигналы, синхронизирующие работу процессора, служебных и периферийных модулей. Он содержит осциллятор, формирующий синхросигналы с частотой Fq, задаваемой кварцевым резонатором, и схему PLL, выполняющую умножение частоты. На выходе схемы PLL формируются импульсы с частотой Fc = Fq (2M/D), где коэффициенты M = 1...64 и D = 1_16 задают-
ся путем записи соответствующего содержимого в регистры ГТИ. Эти импульсы, максимальная частота которых составляет 50 МГц, служат для тактирования процессора и периферийных устройств. Обмен с внешней памятью производится с частотой Ft=Fc/2. Специальная схема контролирует частоту сигналов на выходе PLL. Если эта частота отличается от заданного значения Fc более чем на 1,5%, то формируется запрос прерывания.
В состав ГТИ входит монитор синхроимпульсов CM (Clock Monitor), контролирующий частоту синхросигналов, формируемых осциллятором. Если Fq < 0,5 МГц, то производится повторный запуск (Reset) микроконтроллера или ГТИ переводится в режим автогенерации, при котором формируются синхроимпульсы пониженной частоты 1-5 МГц с помощью внутренней RC-цепи. При переходе в режим автогенерации может формироваться запрос прерывания процессора.
Сторожевой таймер COP вызывает повторный запуск микроконтроллера при нарушении выполнения («зависании») текущей программы. Контроль выполнения программы осуществляется путем периодической записи в регистр таймера чисел $55, а затем $AA. Промежуток времени между записью этих чисел не должен превышать заданный период Tw, величина которого программируется в диапазоне от 2*14/Fq до 2*24/Fq. Если в течение времени Tw запись нужного числа не выполнена, то производится сброс микроконтроллера. При частоте Fq = 4 МГц значение Tw будет составлять от 4,096 мс до 4,1923 с. Таймер периодических прерываний RTI обеспечивает формирование запросов прерывания с периодом Ti, величина которого может задаваться в диапазоне от 2*10/Fq до 2*20/Fq. При Fq = 4 МГц период Tw будет составлять от 256 мкс до 262,144 мс.
Контроллер прерываний INT обеспечивает приоритетное обслуживание запросов, поступающих от внешних устройств, внутренних служебных и периферийных модулей или которые формируются при поступлении определенных команд. Процессор HCS12 реализует ряд прерываний, для каждого из которых задается 16-разрядный вектор, указывающий адрес входа в соответствующую процедуру обработки. Для размещения таблицы векторов прерываний выделяются старшие 128 байт адресного пространства. Старшие шесть позиций таблицы отведены под векторы запуска и немаскируемых прерываний, а остальные распределяются между маскируемыми источниками прерываний. При переходе к обслуживанию прерываний в стеке сохраняется содержимое регистров PC, Y, X, A, B, CCR, которое восстанавливается при возврате из подпрограммы обслуживания по команде RTI.
К немаскируемым источникам прерываний относятся: внешний сигнал на входе RESET, сигнал запуска от монитора синхросигналов CM, сигнал запуска от сторожевого таймера COP, выборка неправильного кода команды, программное прерывание по команде SWI, внешний сигнал прерывания на входе XIRQ. Обращение к одному из первых трех векторов вызывает выполнение процедуры начальной загрузки (запуска) микроконтроллера. Обслуживание запроса прерывания XIRQ производится в том случае, если в регистре CCR установлено значение бита X = 0.
К маскируемым источникам прерываний относятся: внешний сигнал прерывания на входе IRQ, прерывания от различных периферийных устройств (таймера, АЦП, после довательных портов), а также сигналы, поступающие на входы некоторых параллельных портов. Например, в микроконтроллерах серии Dx сигналы прерывания могут приниматься с выводов портов J, P, H. В различных моделях микроконтроллеров число таких дополнительных входов сигналов прерывания составляет от 8 до 20. Разрешение обслуживания маскируемых прерываний осуществляется путем установки в 0 бита I в регистре CCR.
Периферийные модули обеспечивают обмен данными и совместную работу микроконтроллера с другими устройствами, входящими в состав системы управления. Номенклатура модулей, входящих в состав различных моделей, приведена в таблицах 1-2.
Параллельные порты служат для обмена данными с внешними устройствами. Микроконтроллеры семейства 68HCS12 содержат до 12 портов, большинство которых являются двунаправленными. Обычно порты имеют 8 линий ввода-вывода, однако из-за ограниченного числа выводов корпуса часть линий не используется. Выводы портов могут выполнять альтернативные функции, обеспечивая передачу адреса, данных и управляющих сигналов при обращении к внешней памяти (порты A, B, E в расширенном режиме), передачу входных и выходных сигналов для периферийных устройств — последовательных портов SCI, SPI, таймера ECT или
е
Компоненты и технологии, № 2'2004
Таблица 1. Основные характеристики микроконтроллеров семейства 68HCS12 (серии A, C, E, H, T)
Характеристики 9S12A64/ A128/A256 9S12C32/C64/ C96/C128 9S12E64/ E128 9S12H128/ H256 9S12T64
Рабочая частота 25 МГц 25 МГц 25 МГц (16 Мгц)** 16 МГц 16 МГц
Число линий ввода/вывода 91(59)* 60 (35/31)* 91(59)* 99 25
НаэЬ-память, кбайт 64/128/256 32/64/96/128 64/128 128/256 64
ЭСППЗУ, кбайт 1/2/4 - - 4 -
ОЗУ, кбайт 4/8/12 2/4/4/4 8 12 2 К+2
Таймер: число каналов/разрядность ECT8/16 TIM 8/16 Три TIM 4/16 ECT8/16 ECT 8/16
Модули ШИМ: число каналов/ разрядность PWM: 8/8 или 4/16 PWM: 6/8 или 3/16 PWM: 8/8 или 4/16 PMF: 3 входа, 6 выходов PWM: 6/8 или 3/16 PWM: 8/8 или 4/16
Последовательные интерфейсы Два SCI, один/два/три SPI SCI, SPI Три SCI, SPI SCI, SPI Два SCI, SPI
Специализированные интерфейсы I2C CAN I2C Два CAN, I2C, контроллер LCD -
Модули АЦП/ЦАП: число каналов/ разрядность Два ATD: 8/10 ATD: 8/10 ATD: 16/10, Два DAC, 8 бит ATD: 16/10 ATD:8/10
* При размещении в корпусах с меньшим числом выводов.
** При напряжении питания 3,3В.
Таблица 2. Основные характеристики микроконтроллеров семейства 68НС312 (серия Эх)
Характеристики 9S12D64 9S12DB128 9S12DG128/ DG256 9S12DJ128/ DJ256 9S12DP256 9S12DT128/ DT256
Рабочая частота 25 МГц 25 МГц 25 МГц 25 МГц 25 МГц 25 МГц
Число линий ввода/вывода 91(59)* 91(59)* 91(59)* 91(59)* 91 91
РЫЬ-память, кбайт 64 128 128/256 128/256 256 128/256
ЭСППЗУ, кбайт 1 2 2/4 2/4 4 2/4
ОЗУ, кбайт 4 8 8/12 8/12 12 8/12
Таймер: число каналов/разрядность ECT 8/16 ECT8/16 ECT8/16 ECT 8/16 ECT 8/16 ECT 8/16
Модуль ШИМ: число каналов/разрядность 8/8 или 4/16 (7/8 или 4/16)* 8/8 или 4/16 (7/8 или 4/16)* 8/8 или 4/16 (7/8 или 4/16)* 8/8 или 4/16 (7/8 или 4/16)* 8/8 или 4/16 8/8 или 4/16
Последоват. интерфейсы Два SCI, SPI Два SCI, два SPI Два SCI, два/три SPI Два SCI, два/три SPI Два SCI, три SPI Два SCI, два/три SPI
Специализированные интерфейсы CAN, I2C CAN, Byteflight Два CAN, I2C Два CAN, I2C, J1850 Пять CAN, I2C, J1850 Три CAN, I2C
Модули АЦП: число каналов/разрядность Два 8/10 (Один 8/10)* Два 8/10 (Один 8/10)* Два 8/10 (Один 8/10)* Два 8/10 (Один 8/10)* Два 8/10 Два 8/10
* При размещении в 80-выводном корпусе
TIM, модулей АЦП, ШИМ. К выводам портов могут подключаться внутренние резисторы, которые при отсутствии внешних сигналов «подтягивают» потенциал соответствующих линий к напряжению питания («pull-up») или к «земле» («pull-down»). При выводе данных выходные каскады портов могут обеспечивать протекание повышенного тока нагрузки — до 12,5 мА (в нормальном режиме до 2,5 мА).
Таймерный модуль TIM, используемый в некоторых моделях, содержит 16-разрядный счетчик и 8 каналов приема-выдачи сигналов, способные работать в режиме захвата или совпадения. В состав модуля TIM входит также 16-разрядный счетчик, который может работать в режиме счета внешних импульсов (событий) или в режиме счета тактовых импульсов при поступлении внешнего сигнала. В большинстве моделей семейства HCS12 используется таймерный модуль ECT, являющийся модифицированным вариантом модуля TIM. В структуру ECT введены четыре 16-разрядных буферных регистра для промежуточного хранения времени захвата входных сигналов, поступающих на четыре канала таймера. На входах этих каналов включе-
ны регистры задержки, позволяющие исключить срабатывание таймерных каналов при поступлении помех. Для счета импульсов используются четыре 8-разрядных счетчика, которые могут работать как два 16-разрядных счетчика. Для каждого счетчика событий введен буферный регистр, обеспечивающий временное хранение содержимого счетчика. В состав модуля ЕСТ входит также 16-разрядный вычитающий счетчик тактовых импульсов, который может задавать время считывания содержимого счетчиков событий или использоваться для формирования периодических запросов прерывания.
Модули ЛТЭ (Analog-To-Digital), входящие в состав всех микроконтроллеров данного семейства, содержат 10-разрядные АЦП последовательного приближения, имеющие по 8 входных каналов. Время выполнения пребразования составляет 7 мкс. Каналы АЦП совмещены с выводами параллельных портов ввода данных AD. Преобразователи могут работать в режиме одноканального или многоканального опроса. При одноканальном опросе АЦП выполняет цикл из четырех или восьми последовательных преобразований данных, поступающих на один
из аналоговых входов, записывая результаты в соответствующие регистры. При многоканальном опросе АЦП выполняет преобразование данных, поступающих на группу из четырех или восьми аналоговых входов, записывая результат, полученный для каждого из опрошенных каналов, в отдельный регистр. В режиме повторения (сканирования), одноканальный или многоканальный циклы преобразования непрерывно повторяются.
Модули PWM, формирующие выходные сигналы с широтно-импульсной модуляцией (ШИМ), входят в состав всех моделей семейства HCS12. В большинстве моделей модуль PWM имеет 8 выходных каналов, на которые выдаются импульсные сигналы заданной скважности. Значения скважности Q задаются с помощью 8-разрядных регистров. Таким образом, обеспечивается реализация
255 различных значений Q. Каналы имеют отдельные счетчики и регистры настройки, что позволяет независимо программировать частоту и длительность их выходных импульсов. Попарно объединив регистры модуля, можно получить до 65536 значений скважности ШИМ-сигналов, но при этом используются только четыре выходных канала. В ряде моделей модуль PWM обеспечивает работу шести выходных каналов с 8-разрядным разрешением или трех каналов с 16-разрядным разрешением (табл.1).
Последовательный коммуникационный порт SCI (Serial Communication Interface) обеспечивает стандартный асинхронный формат приема-передачи данных с одним старт-битом и одним стоп-битом, восемью информационными битами и возможностью пересылки 9-го (контрольного) бита. В процессе приема контролируются ошибки четности, переполнения, нарушения размера кадра, а также появление помех на линии связи. В различных моделях используется до трех портов SCI, обеспечивающих дуплексную связь с различными внешними устройствами со скоростью до 1,25 Мбит/с.
Последовательный периферийный порт SPI (Serial Peripheral Interface) реализует синхронный обмен данными между ведущим (master) и ведомыми (slave) устройствами со скоростью до 6,25 Мбит/с. В процессе обмена используются четыре вывода одного из параллельных портов, на которые поступают сигналы SPI. В различных моделях семейства HCS12 используется до трех портов SPI.
Специализированные интерфейсные модули I2C и CAN, которые входят в состав различных моделей микроконтроллеров, обеспечивают последовательный обмен данными в системах, использующих стандартные шины I2C, CAN в соответствии с установленными для них протоколами.
Средства программирования и отладки
В микроконтроллерах семейства 68HCS12 реализован ряд механизмов, позволяющих существенно облегчить и ускорить процедуру отладки программного обеспечения.
Компоненты и технологии, № 2'2004
Таблица 3. Команды отладки, выполняемые монитором BDM
Команда Операция
BACKGROUND Ввод в режим отладки ВРМ
READ_BYTE , WRITE_BYTE Чтение или запись байта по заданному адресу
READ_WORD, WRITE_WORD Чтение или запись слова по заданному адресу
READ_PC, WRITE_PC Чтение или запись содержимого РС
READ_D, WRITE_D Чтение или запись содержимого аккумулятора Р
READ_X, WRITE_X Чтение или запись содержимого регистра X
READ_Y, WRITE_Y Чтение или запись содержимого регистра У
READ_SP, WRITE_SP Чтение или запись содержимого указателя стека $Р
READ_NEXT, WRITE_NEXT Чтение или запись слова по адресу, заданному X, затем Х+2^Х
GO Возврат к выполнению текущей программы
TRACE1 Переход в режим трассировки
TAGGO Переход в режим тегирования команд
Основным из этих механизмов является режим отладки BDM (Background Debug Mode), позволяющий выполнять основные процедуры отладки — просмотр и модификацию содержимого регистров и ячеек памяти, а также ряд других функций.
Встроенный блок отладки, реализующий режим BDM, обеспечивает выполнение специальных команд отладки, которые вводятся в микроконтроллер через вывод BKGD. Используемый протокол последовательного обмена обеспечивает ввод в микроконтроллер команд и данных от персонального компьютера, выполняющего функции системы отладки, и получать необходимые данные из микроконтроллера по однопроводной линии связи, подключенной к этому выводу. Цикл передачи одного бита по линии BKGD занимает 16 тактов.
Набор реализуемых команд отладки приведен в таблице 3. Команды READ_BYTE, WRITE_BYTE, READ_WORD, WRITE_WORD могут выполняться микроконтроллером в процессе выполнения рабочей программы. Эти команды обеспечивают чтение и запись содержимого регистра или ячейки памяти с заданным адресом.
Микроконтроллер переводится в режим отладки под управлением монитора BDM в следующих случаях:
• при вводе из персонального компьютера команды BACKGROUND;
• при поступлении команды BGND;
• при поступлении на исполнение команды, отмеченной тегами (при работе микроконтроллера в режиме тегирования);
• при достижении определенной контрольной точки в ходе выполнения программы (при установке контрольных точек).
В каждом из этих случаев процессор HCS12 перекращает выполнение текущей программы и ожидает поступления команд отладки, побитно вводимых в микроконтроллер компьютером по линии BKGD.
Основная группа команд отладки, выполняемых под управлением монитора BDM, выполняет чтение (команды READ_x) или за---------------------www.finestreet.ru-
пись (команды WRITE_x) содержимого регистров процессора или ячейки памяти. При обращении к памяти (команды READ_NEXT, WRITE_NEXT) адрес ячейки задается содержимым индексного регистра IX, которое затем автоматически увеличивается на 2 для адресации следующей ячейки. Команда GO обеспечивает выход из режима отладки. Команда TRACE1 вызывает выполнение следующей команды текущей программы, после чего процессор переводится в режим трассировки (пошаговое выполнение программы). Набор команд, реализуемых с помощью монитора BDM, обеспечивает в процессе отладки возможность полного контроля над содержимым всех регистров процессора и ячеек памяти (регистров периферийных устройств).
Команда TAGGO переводит микроконтроллер в режим тегирования команд, при котором на выходах TAGHI, TAGLO формируются сигналы (теги), являющиеся признаком выборки очередной команды программы. В процессе отладки эти сигналы используются внешним логическим анализатором для фиксации момента выборки очередной команды. Таким образом обеспечивается совместная работа логического анализатора и системы отладки.
Блок останова в контрольной точке BKPT реализует следующие процедуры:
• останов при обращении по одному из двух заданных адресов (двухадресный останов) и выполнение команды прерывания SWI;
• останов при обращении по одному из двух заданных адресов (двухадресный останов) и переход в режим отладки BDM;
• останов при обращении по заданному адресу с выборкой указанных данных (останов по заданным адресу и данным) и переход в режим отладки BDM.
При указании адреса останова можно задать как единичный адрес, так и адрес блока (256 байт) или страницы (16 кбайт), при обращении к которым производится останов. Таким образом в процессе отладки рабочей программы можно обеспечить различные варианты останова как в отдельных контрольных точках, так и при обращении к определенным массивам команд и данных.
Использование BDM-режима позволяет создавать высокоэффективные и недорогие средства отладки для проектирования систем на базе микроконтроллеров семейства HCS12. Компания Motorola предлагает пользователям малогабаритный BDM-адаптер типа M68MULTILINK12 (размер 8x5x2 см), который реализует функции схемного эмулятора, обеспечивая выполнение процесса отладки в реальном времени. Адаптер обеспечивает также быстрое программирование внутренней Flash-памяти без отключения от разрабатываемой системы. Адаптер поставляется вместе с интегрированной средой программирования CodeWarrior, содержащей ассемблер, линкер, отладчик, программатор и C-компилятор. Стоимость комплекта составляет всего $250 (сравните со стоимостью схемных эмуляторов для других микроконтроллеров!).
Для моделирования и отладки систем на базе микроконтроллеров HCS12 компания Motorola предлагает плату развития (evaluation board) M68KIT912DP256. Плата реализована на базе микроконтроллера MC9S12DP256, содержащего 256 кбайт Flash-памяти и большой набор периферийных устройств (табл. 2). На плате располагаются также адаптеры шины CAN и RS-232, разъемы для подключения к портам микроконтроллера и монтажное поле для сборки макета проектируемой системы. Вместе с платой поставляется BDM-адаптер M68VULTILINK12 и интегрированная среда программирования CodeWarrior. Стоимость комплекта — $950.
Для программирования Flash-памяти и ЭСППЗУ, входящих в состав микроконтроллеров семейств HC12, HCS12 можно использовать автономный программатор X68BDMPGMR12, выпускаемый компанией Motorola (стоимость — $495). Программатор не требует подключения компьютера и обеспечивает стирание, программирование и верификацию Flash-памяти емкостью
256 кбайт менее чем за 10,5 с.
Более подробную информацию об этих и других средствах, предлагаемых компанией Motorola, можно найти на сайте www. motorola.com/mcu. Здесь же пользователи могут получить пакет средств программирования CodeWarrior Development Studio (special edititon). Пакет содержит ассемблер, линкер, отладчик, программатор, C-компилятор и отладчик с ограничением объема программного кода (до 12 кбайт), симуляторы процессора и таймера, средства оптимизации программного кода.
Разнообразные средства программирования и отладки систем, реализуемых на базе микроконтроллеров HC12, HCS12, выпускаются также многими другими производителями: Avocet Systems (www.avocetsystems.com), Ashling Microsystems (www.ashling.com), Axiom Manufacturing (www.axman.com), Cosmic Software (www.cosmic-software.com), Hitex Development Tools (www.hitex.com), IAR Systems (www.iar.se), iSYSTEM (www.isys-tem.com), Lauterbach (www.lauterbach.com), Metrowerks (www.metrowerks.com), Nohau (www.nohau.com), Noral Micrologic (www.horal. com), P&E Microcomputers Systems (www. pemicro.com). Информацию об этих средствах можно получить на сайтах указанных компаний.
Заключение
Семейство 68HCS12 содержит в настоящее время более 20 моделей микроконтроллеров, содержащих высокопроизводительный процессор (около 10 миллионов операций в секунду), программируемую в системе Flash-память значительного объема (до 256 кбайт) и большой набор периферийных модулей. По сравнению с другими популярными семействами 16-разрядных микроконтроллеров это семейство имеет ряд преимуществ [5]. Часто применяемые в аппаратуре российских производителей микроконтроллеры семейств Intel 196, Intel 186 значительно (в 5-8 раз) уступают семейст-
Компоненты и технологии, № 2'2004
ву HCS12 по объему внутренней памяти (ПЗУ и ОЗУ), имеют меньший набор периферийных модулей и требуют использования более сложных и дорогостоящих средств отладки. Микроконтроллеры семейства MSP430x компании Texas Instruments отличаются исключительно малой потребляемой мощностью (менее 1 мВт при тактовой частоте 1 МГц), наличием высокоточных АЦП с 12- и 14-битным разрешением, наиболее низкой стоимостью. Однако они имеют ограниченный набор команд и способов адресации, существенно меньший объем внутренней памяти (в 4-6 раз), более низкую производительность (в 3-4 раза), менее широкий набор периферийных модулей. Наиболее высокую производительность обеспечивают RISC-микроконтроллеры семейств C16x компании Infineon и ST10x компании STMicroelectronics (в 3-4 раза выше, чем HCS12), которые имеют сокращенный набор команд и способов адресации. По объему внутренней памяти и набору периферийных модулей эти микроконтроллеры близки к семейству HCS12. Их недостатками являются значительная потребляемая мощность (в 3 раза выше, чем для микроконтроллеров HCS12) и бо-
лее высокая стоимость. Следует отметить, что по количеству реализуемых коммуникационных интерфейсов (до пяти CAN, до трех SCI и SPI, один I2C) микроконтроллеры серии Dx семейства HCS12 значительно превосходят своих конкурентов. По совокупности основных показателей микроконтроллеры семейства HCS12 являются оптимальным решением для многих применений.
Широкий набор команд и способов адресации в микроконтроллерах HCS12 является весьма удобным для пользователя и эффективным при реализации разнообразных приложений. Аппаратная реализация основных процедур нечеткой логики, операций умножения с накоплением, табличной интерполяции, поиска минимума-максимума позволяет создавать на основе этих микроконтроллеров устройства, использующие новые алгоритмы управления и преобразования данных. Все модели семейства содержат сторожевой таймер и реализуют контроль рабочей частоты, что повышает надежность функционирования систем.
Следует отметить наличие эффективных средств поддержки отладки. В первую оче-
редь, это реализация режима отладки BDM с использованием простого адаптера и всего одного вывода микроконтроллера. Данный режим позволяет проводить отладку в реальном масштабе времени без использования дорогостоящих схемных эмуляторов.
Номенклатура семейства 68HCS12 позволяет реализовать большой круг приложений в промышленной автоматике, контрольноизмерительной аппаратуре, автомобильной электронике и других областях, требующих высокой производительности, значительного объема внутренней памяти и широкого набора периферийных устройств. ИИ
Литература
1. Ахметов М. 16-разрядные микроконтроллеры // Chip News. Новости о микросхемах. 2000. № 5.
2. «Японцы не идут» // Электронные компоненты. 2002. № 5.
3. Шагурин И., Мокрецов М., Ванюлин В., Бердашкевич П. Семейство 16-разрядных микроконтроллеров Motorola 68HC12. Архитектура, основные характеристики, средства программирования-отладки // Chip News. Инженерная микроэлектроника. 2001. № 1.
4. Шагурин И. И. Микропроцессоры и микроконтроллеры фирмы MOTOROLA. М.: Радио и связь. 1998.
5. 16-разрядные микроконтроллеры на российском рынке // Электронные компоненты. 2002. № 5.