Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С — страница 4 из 70

В предыдущем параграфе мы обсудили общие проблемы, связанные с разработкой и эксплуатацией встраиваемых микропроцессорных систем. В своем рассмотрении мы пока не касались той элементной базы, на основе которой выполняются встраиваемые системы, т.е. микроконтроллеров. Поскольку наша книга посвящена встраиваемым системам на микроконтроллерах семейства 68HC12/HCS12 компании Motorola/Freescale Semiconductor, то перейдем к знакомству с этой элементной базой.

Семейство микроконтроллеров 68HC12/HCS12 относится к группе 16–разрядных МК. Процессорное ядро 68HC12 унаследовало свою программно–логическую модель и систему команд от широко известного 8–разрядного процессорного ядра HC11. Начало семейству 68HC12 было положено в 1996 году выпуском двух базовых моделей: MC68HC12A4 и MC68HC912B32. Микроконтроллер MC68HC12A4 был предназначен для работы в расширенном режиме, т.е. с внешней памятью программ. Микроконтроллер MC68HC912B32 уже имел на кристалле многократно программируемое пользователем энергонезависимое запоминающее устройство, выполненное по технологии Flash. В 2002 году компанией Motorola/Freescale Semiconductor было предложено новое семейство HCS12, которое предназначалось для замены МК семейства 68HC12 на более высокопроизводительные, но полностью программно совместимые модели. На протяжении этой книги мы будем использовать в качестве базового микроконтроллер MC68HC912B32. Это простой МК низкой стоимости, доступный как для обучения, так и для относительно несложных разработок. Однако большая часть сведений, которые Вы почерпнете из данной книги, может быть легко распространена и на МК HCS12.

На основе базового МК MC68HC912B32 производителем был создан целый ряд моделей: MC68HC12BE32, MC68HC912BC32 и MC68HC12BC32. Основное отличие этих моделей друг от друга состоит в объеме размещенной на кристалле памяти программ и в наличии или отсутствии контроллера CAN сети.

На рис. 1.3 представлена структурная схема сразу двух МК: MC68HC912B32 и MC68HC12BE32. На рис. 1.4 дана цоколевка корпуса для этих микроконтроллеров. Далее на рис. 1.5 показана структура микроконтроллера MC68HC912BC32, на рис. 1.6 — цоколевка корпуса для него. В таблице рис. 1.7 перечислены основные функциональные блоки каждой из перечисленных моделей МК. Эта же таблица позволяет легко определить функциональные различия между рассматриваемыми МК.

Рис. 1.3. Структура микроконтроллеров MC68HC912B32 и MC68HC12BE32


Рис. 1.4. Цоколевка корпуса микроконтроллеров MC68HC912B32 и MC68HC12BE32


Микроконтроллеры семейства 68HC12 — это 16–разрядные МК, что означает, что центральный процессор может выполнять операции над 16–разрядными данными, а также то, что данные передаются внутри МК по 16–разрядной магистрали данных. МК 68HC12 имеют также 16–разрядную магистраль адреса, что позволяет им адресовать 65 536 ячеек памяти. Максимальная частота системной шины МК семейства 68HС12 равна 8 МГц, что обеспечивать значительное возрастание вычислительной производительности по отношению к предшественнику — МК HC11.

Система команд 68HC12 основана на системе команд HC11, однако число способов адресации и число выполняемых действий значительно расширены. Система команд 68HC12 включает 208 инструкций, в том числе пять команд деления с разрядностью данных 16/16 и 32/16 в целочисленном и дробном форматах, команды выбора максимального и минимального числа, команды нечеткой логики. Операции сложения или вычитания двухбайтовых чисел выполняются за 2 или 3 такта системной шины МК. Центральный процессор 68HC12 поддерживает 16 способов адресации, при этом исполнение каждой команды из группы арифметических или логических команд возможно с использованием по крайней мере 12 способов адресации. Центральный процессор 68HC12 имеет двухадресные команды, позволяющие выполнять пересылки 8–и 16–разрядных данных между двумя ячейками памяти или регистрами специальных функций минуя регистры центрального процессора. Четыре команды предназначены для реализации алгоритмов нечеткой логики (fuzzy logic): команда фаззификации MEM, команда обработки нечетких переменных REV, команда обработки нечетких переменных REVW и команда дефаззификации WAW.

Микроконтроллеры семейства 68HC12 обладают резидентной Flash-памятью программ, объемом до 32 Кб, оперативной памятью данных до 1 Кб, энергонезависимой памятью данных типа EEPROM объемом до 768 байт. Они имеют встроенный модуль отладки, который позволяет отлаживать программы, а также выполнять операции стирания/программирования Flash и EEPROM, взаимодействуя с персональным компьютером по однопроводному последовательному интерфейсу.

Рис. 1.5. Структура микроконтроллера MC68HC912BС32


Рис. 1.6. Цоколевка корпуса микроконтроллера MC68HC912BС32


Микроконтроллеры семейства 68HC12 имеют до семи многофункциональных двунаправленных портов ввода/вывода, модуль аналого цифрового преобразователя, модуль таймера с функциями входного захвата и выходного сравнения, 16–разрядный счетчик внешних событий, модуль широтно–импульсного модулятора и несколько контроллеров последовательных интерфейсов. Полный перечень возможных для МК семейства 68HC12 периферийных модулей приведен в таблице рис. 1.7.

Функциональные модули в составе МКMC68HC912B32MC68HC12BE32MC68HC912BC32MC68HC12BC32
Центральный процессор CPU12++++
Системная магистраль++++
Память программ Flash 32Кб++
Память программ однократно программируемая 32Кб++
EEPROM 768 байт++++
ОЗУ 1 Кб++++
Модуль таймера TIM++++
Модуль аналого–цифрового преобразования ATD++++
Усовершенствованный модуль таймера ECT++++
Модуль широтно–импульсного модулятора PWM++++
Модуль контроллера асинхронного последовательного обмена SCI++++
Модуль контроллера синхронного последовательного обмена SPI++++
Модуль контроллера последовательного обмена CAN++
Модуль контроллера последовательного обмена BDLC++++
Сторожевой таймер COP++++
Модуль отладки BDM++++
Модуль делителя для низкочастотной синхронизации++++

Рис. 1.7. Сравнительные характеристики микроконтроллеров семейства 68HC12B

1.4 Микроконтроллеры HCS12

Подобно семейству 68HC12, семейство HCS12 объединяет ряд микроконтроллеров с одинаковым процессорным ядром CPU HCS12, различающихся объемом резидентной памяти и набором периферийных модулей, интегрированных на кристалл МК. Различные модели МК в составе семейства имеют Flash память программ объемом до 512 Кб, оперативную память объемом до 12 Кб. Напряжение питания большинства моделей семейства — 5,0 В, что позволяет обеспечить электромагнитную совместимость в автомобильных применениях. Частота внутренней системной шины МК семейства HCS12 равна 25 МГц, что существенно увеличивает их производительность по сравнению с МК семейства 68HC12.

Все модели МК семейства HCS12 имеют в своем составе следующие функциональные блоки:

• Оперативное запоминающее устройство и постоянное запоминающее устройство трех типов: Flash, EEPROM, масочного типа;

• Порты с двунаправленными линиями ввода/вывода;

• Модуль таймера с 16–разрядным счетчиком временной базы и 8 каналами захвата/сравнения;

• Подсистему последовательного обмена с несколькими контроллерами ввода/вывода различных стандартов (SCI, SPI, CAN и др.);

• Модуль АЦП с 8–и или 10–разрядным представлением результата;

• Модуль ШИМ с разрешением 8 или 16 разрядов.

Структура МК MC9S12DP256B представлена на рис. 1.8. Обратите внимание, что большая часть периферийных модулей этого МК аналогична модулям микроконтроллеров семейства 68HC12. От ранее рассмотренного МК MC68HC912B32 микроконтроллер DP 256 отличает увеличенный до 256 кб объем Flash памяти программ, наличие в его составе модуля усовершенствованного таймера ECT, двух 8–канальных модулей аналого–цифрового преобразования ATD, пяти контроллеров интерфейса информационной сети в стандарте CAN.

Рис. 1.8. Структура микроконтроллера MC9S12DP256B

1.4.1. Семейство HCS12

Семейство HCS12 объединяет более 30 моделей МК. Однако мы не хотим концентрировать внимание читателя на изучении модельного ряда HCS12, поскольку детальное знание различных представителей семейства необходимо при профессиональной деятельности. А в процессе обучения мы наоборот, хотим использовать общность структуры и режимов работы функциональных модулей МК 68HC12 и HCS12. Поэтому в рамках этого первого знакомства с семейством HCS12 ограничимся рассмотрением системы условных обозначений МК и кратким обзором структуры некоторых МК семейства.

1.4.2. Обозначения МК

Каждая модель МК в составе семейства 68HC12/HCS12 имеет собственное сокращенное обозначение. Это обозначение используется для маркировки корпуса МК и при заказе ИС МК у производителя. Система сокращенных обозначений для МК семейства 68HC12 и HCS12 представлена на рис. 1.9. Обратите внимание, что каждое поле в сокращенной записи отражает определенную техническую характеристику изделия. В перечень технических характеристик входят не только структура МК и частота тактирования (функциональные характеристики), но и тип корпуса, диапазон рабочих температур, т.е. характеристики, связанные с конструктивным исполнением и условиями эксплуатации конечного изделия.

Рис. 1.9. Система обозначений МК семейства 68HC12/HCS12

1.4.3. Модельный ряд HCS12

В настоящее время компания Motorola/Freescale Semiconductor выпускает около 40 МК с процессорным ядром HCS12 (рис. 1.10[1]). Традиционно для Motorola/Freescale Semiconductor все МК одного семейства группируются в серии по схожести периферийных устройств. Внутри серии МК различаются объемом резидентной памяти и числом линий портов ввода/вывода. Все МК семейства HCS12 внутри одной серии совместимы по выводам корпусов, благодаря чему на печатную плату можно установить МК с большей памятью без изменения платы.

Тип МКПЗУ FLASH, байтыОЗУ, байтыEEPROM, байтыЧисло линий ввода/выводаКонтроллеры последовательных интерфейсовТаймер Число каналов/разрядностьАЦП Число каналов/разрядностьМодуль ШИМ Число каналов/разрядностьСпециальные модули *)Частота шины CPU, МГцНапряжение питания, В
Серия А
MC9S12A32320004096102491IIC 2 SCI SPI8/168/104/16  8/8 255
MC9S12A64655364096102459 91IIC 2 SCI SPI8/168/104/16 7/8 8/8255
MC9S12A128 MC9S12A128B1310728192204859 91IIC 2 SCI SPI8/168/104/16 8/8EBUS255
MC9S12A256B2614412288409659 91IIC 2 SCI SPI8/162/10 3/10 8/104/16 8/8EBUS255
MC9S12A5125120004096102459IIC 2 SCI SPI8/1616/107/8255
Серия С
MC9S12C32320002000нет60CAN SCI SPI8/168/106/8LVI16 253,3 5,0
MC9S12C64640004000нет60CAN SCI SPI8/1686/8LVI253,3 5,0
MC9S12C96960004000нет60CAN SCI SPI8/1686/8LVI253,3 5,0
MC9S12C1281280004000нет60CAN SCI SPI8/1686/8LVI253,3 5,0
Серия D
MC9S12D32320004096102491CAN IIC 2 SCI SPI8/168/104/16 8/8255,0
MC9S12D64655364096102459 91CAN IIC 2 SCI SPI8/168/104/16 7/8 8/8255,0
MC9S12DJ64655364096102459 91CAN IIC J1850 2 SCI SPI8/168/104/16 7/8 8/8255,0
MC9S12DB1281310728192204891BYTE-FLIGHT 2 CAN 2 SCI 2 SPI8/1616/108/8EBUS255,0
MC9S12DB128B1310728192204891BYTE-FLIGHT CAN 2 SCI 2 SPI8/1616/108/8EBUS255,0
MC9S12DG128 MC9S12DG128B1310728192204859 912 CAN IIC 2 SCI SCP 2 SPI7/16 8/1616/108/8EBUS255,0
MC9S12DG256B26144122884096912 CAN IIC 2 SCI 2 SPI8/1616/104/16 8/8EBUS LVI255,0
MC9S12DJ128 MC9S12DJ128B1310728192204859 912 CAN IIC J1850 2 SCI 2 SPI7/16 8/168/104/16 8/8EBUS255,0
MC9S12DJ256B26214412288409659 912 CAN IIC J1850 2 SCI 3 SPI7/16 8/168/104/16 8/8EBUS255,0
MC9S12DP256B262144122884096915 CAN IIC J1850 2 SCI 3 SPI8/1616/108/8EBUS255,0
MC9S12DP512512000122884096915 CAN IIC J1850 2 SCI 3 SPI8/1616/108/8EBUS255,0
MC9S12DT128 MC9S12DT128B13107281922048913 CAN IIC 2 SCI 2 SPI8/168/104/16 8/8EBUS255,0
MC9S12DT256B262144122884096913 CAN IIC 2 SCI 2 SPI8/168/104/16 8/8EBUS LVI255,0
Серия E
MC9S12E64655364096 8192 нет59 91IIC 3 SCI SPI4/1616/106/8PWMF 2 DAC255,0
Серия G
MC9S12GC16160002000нет60SCI SPI8/168/106/8LVI16 253,3 5,0
MC9S12GC32320002000нет60SCI SPI8/168/106/8LVI16 253,3 5,0
MC9S12GC64640004000нет60SCI SPI8/168/106/8LVI253,3 5,0
MC9S12GC96960004000нет60SCI SPI8/168/106/8LVI253,3 5,0
MC9S12GC1281280004000нет60SCI SPI8/168/106/8LVI253,3 5,0
Серия H
MC9S12H12813107260004096992 CAN IIC 2 SCI SPI8/1616/104/16 8/8EBUS LVI LCD 32×4 MC 24165,0
MC9S12H256262144122884096992 CAN IIC 2 SCI SPI8/1616/104/16 8/8EBUS LVI165,0
Разные МК
MC9S12NE64640008000нет48 80Ethernet IIC 2 SCI SPI4/168/10нетRTI253,3 5,0
MC9S12T646553620482048SCI SPI8/168/104/16 8/85,0
MC9S12UF32327683584нет75SCI USB 2.08/16305,0

Рис. 1.10. Технические характеристики МК семейства HCS12

Примечание:

EBUS — модуль интерфейса внешней магистрали;

LVI — модуль контроля за пониженным напряжением питания;

RTI — модуль меток реального времени;

PWMF — модуль специализированного генератора для управления силовыми коммутаторами в электроприводе;

DAC — модуль одноканального ЦАП;

LCD 32×4 — контроллер управления ЖКИ-дисплеем (4 группы по 32 сегмента);

MC 24 — 24 выхода с повышенной токовой нагрузкой для управления маломощными шаговыми электродвигателями.


Сегодня в состав семейства HCS12 входят 6 серий. Серия А — МК общего применения с тремя типами относительно простых контроллеров последовательных интерфейсов. Серии С и CG — недорогие модели без EEPROM, способные работать при пониженном напряжении питания. Серия D, объединяющая наибольшее число МК, ориентирована на использование в CAN–приложениях. Отдельные модели содержат до 5 CAN–контроллеров на кристалле! Серия E — МК с встроенным ШИМ–генератором для управления электроприводом. Серия H — специализированные МК для управления приборными панелями автомобилей, содержат драйверы шаговых двигателей стрелочных индикаторов и контроллер управления ЖК–индикатором. Указанная производителем специализация не препятствует использованию этих МК в устройствах другого типа с многофункциональными приборными панелями. Три последних МК в таблице рис. 1.10 — родоначальники новых серий. Среди них особенно интересен МК HC9S12NE64 c контроллером 10/100 Ethernet на кристалле.

1.5. Заключение по главе 1