Структура микроконтроллера 68HC908GP32

Обобщенная структурная схема МК.

МК имеет 2 части: базовый функциональный блок, единый для всего семейства, который называется ядром МК, и изменяемый блок (рис. 8.1).

Ядро МК включает: центральный процессор (ЦП); внутренние магистрали адреса, данных и управления; схему синхронизации для тактирования ЦП, схему управления режимами.

Изменяемый функциональный блок включает различные модули памяти, модули периферийных устройств, например, таймеры, АЦП, модули генераторов синхронизации и др.

Среди ведущих производителей МК можно назвать Intel, Motorola, Hitachi, Microchip, Atmel, NEC, Philips, Texas Instruments и другие.

 

 

 

Рис.8.1. Структура МК

 

Современные МК имеют ядро CISC и RISC архитектуры. В случае CISC архитектуры команды выполняются за 1-3 машинных цикла, причем команды имеют различную длину. При RISC архитектуре большинство команд имеет одинаковую длину.

 

8.3. Характеристика 8-разрядных МК фирмы Motorola семейства HC08/908

По объему продаж первое место в мире занимают МК фирмы Motorola (≈25% рынка). Фирма выпускает свыше 250 моделей 8-разрядных МК, которые входят в состав нескольких семейств М68НС05, М68НС08/908 и М68НС11, М68НС12, а также 16-, 32-разрядные МК.

Мы будем изучать МК семейства HC08/908. Это семейство является промышленным стандартом 8-разрядных МК фирмы Motorola и имеет хорошее соотношение производительность -стоимость - потребление. Можно отметить следующие основные особенности (достоинства) семейства 68HC08/908.

· МК работают на тактовой частоте до 8 МГц, реализуют ряд эффективных способов адресации и имеют расширенный набор выполняемых команд. В результате достигается повышение производительности. Среднее время выполнения короткой команды составляет 2-3 такта, поэтому при рабочей частоте 8 МГц обеспечивается производительность около 2,5 миллионов операций в секунду (MIPS).

В 2003 году начался выпуск семейства 68HCS08, которое является дальнейшим развитием 68HC08; максимальная тактовая частота для этих МК повышена до 20 МГц.

· Применение Flash-памяти (до 64 кбайт) обеспечивает возможность программирования и репрограммирования МК подсемейства 68HC908 от персонального компьютера непосредственно в составе реализуемой системы (внутрисхемное программирование), используя последовательный интерфейс.

· Модульная структура микроконтроллеров и наличие большой библиотеки интерфейсных и периферийных модулей с улучшенными характеристиками позволяет реализовать различные модели с расширенными функциональными возможностями.

Периферийные устройства. Все модели содержат АЦП, таймеры. В состав серий LJ, LK входят модели, cодержащие контроллер жидкокристаллического дисплея. МК серии MR содержат 12-разрядные модули ШИМ с 6 выходными каналами. Они ориентированы на применение в системах управления электроприводом. В сериях QT, QY представлены модели, ориентированные на применение в малобюджетных проектах. Эти МК отличаются низкой стоимостью и выпускаются в компактных корпусах с малым числом выводов (8 или 16). Они имеют встроенный осциллятор, обеспечивающий формирование тактовой частоты с точностью 5%.

Интерфейсные устройства. МК семейства 68HC08 предоставляют пользователям широкий выбор интерфейсных модулей. Различные модели имеют от 6 до 51 линий параллельного ввода-вывода данных. Эти модели располагаются, соответственно, в корпусах, имеющих от 8 или 16 выводов (DIP, PDIP, SOIC, TSSOP) до 64, 52, 48 выводов (QFP, LQFP, PLCC). Обеспечиваются также различные варианты последовательных интерфейсов. Большинство моделей содержит асинхронный последовательный интерфейс SCI и синхронный периферийный интерфейс SPI. В ряде моделей реализованы также контроллеры сети CAN или I2C. Имеются модели, реализующие интерфейс USB.

· Обеспечивается возможность эффективной отладки программ без применения дорогостоящих схемных эмуляторов благодаря введению специального монитора отладки и реализации останова в контрольной точке.

· Большинство МК семейства работают при напряжении питания 5 В, обеспечивая максимальную тактовую частоту Ft = 8 МГц. Ряд моделей работает также при пониженном напряжении питания 3 В. Потребление мощности зависит от напряжения питания, рабочей частоты и состава периферийных модулей в данной модели МК. В старших моделях семейства 68HC08, содержащих значительное число периферийных модулей, потребляемая мощность составляет 120…180 мВт при EП = 5,0 В и частоте Ft=8 МГц.

Модели для массового применения потребляют около 15 мВт при Eп=3,0 В и частоте Ft=4 МГц. Значительное сокращение потребляемой мощности обеспечивается в энергосберегающих режимах ожидания (потребление мощности снижается в несколько раз) и останова (ток питания уменьшается до единиц микроампер).

· Аппаратно реализованы также контроль напряжения питания и рабочей частоты, все модели содержат сторожевой таймер, что повышает надежность функционирования систем, в которых применяются эти МК.

· Основной диапазон рабочих температур составляет -40 …85 ͦС. Некоторые серии включают модели, работающие в расширенном диапазоне -40…105ͦ С.

 

Общая структура МК 68HC908GP32 приведена на рис. 8.2. МК содержит 8-разрядный процессор CPU08, Flash-память емкостью 32 Кбайт, ОЗУ данных емкостью 512 байт и большой набор служебных и периферийных модулей.

Центральный процессор CPU08 является высокопроизводительным 8-разрядным устройством обработки данных, позволяющим выполнить 90 команд.

Служебные модули. В состав служебных модулей входят:

- генератор тактовых импульсов CGM08,

- модуль системной интеграции SIM08,

- модуль контроля напряжения питания LVI08,

- модуль прерывания в контрольной точке BREAK08,

- модуль управления внешним прерыванием IRQ08,

- сторожевой таймер COP08,

- базовый таймер TBM08.

 

Модуль формирования тактирующих сигналов CGM08 генерирует последовательности импульсов, необходимые для тактирования работы процессора и периферийных модулей. Тактирование МК может осуществляться от двух источников: от генератора на кварцевом резонаторе и генератора с синтезатором частоты.

Модуль системной интеграции SIM08 выполняет ряд функций, обеспечивающих совместную работу различных модулей МК. Он работает совместно с другими системными модулями: CGM08, LVI08, IRQ08, BREAK08, COP08, выполняя формирование тактовых импульсов, запуск и перезапуск МК, организацию обслуживания прерываний, реализует различные режимы работы МК. SIM08 производит начальный запуск МК при включении напряжения питания и его перезапуск при поступлении внешнего сигнала на вход RST# или внутреннего сигнала от модуля контроля функционирования COP08, а также при выборке неправильного кода команды и при обращении к несуществующему адресу.

Модуль управления внешним прерыванием IRQ08обеспечивает различные варианты обслуживания внешнего запроса прерывания, поступающего на вход IRQ#.

Модуль прерывания в контрольной точке BREAK08 реализует механизм останова в контрольной точке в процессе отладки программного обеспечения.

Модуль контроля напряжения питания LVI08контролирует величину напряжения питания. При уменьшении этого напряжения ниже заданной величины модуль LVI08 переводит МК в начальное состояние (сброс), которое сохраняется до восстановления нормального уровня напряжения питания. Модуль LVI08 вырабатывает сигнал перезапуска МК при снижении его напряжения питания ниже порогового уровня.

Модуль контроля функционирования COP08генерирует метки времени периодом от 8,1 до 262 мс. Если счетчик не будет сброшен до момента истечения указанного интервала, то МК будет принудительно переведен в состояние начального запуска (сброса).

Модуль базового таймера TBM08 генерирует дискретный набор базовых частот для МПС (1÷4096 Гц).Модуль обеспечивает периодическое формирование запросов прерывания.

 

Периферийные модули. Периферийные модули обеспечивают обмен данными и совместную работу МК с другими устройствами, входящими в состав системы управления. МК 68HC908GP32 содержит следующие периферийные модули:

-пять параллельных портов A, B, C, D, E для ввода-вывода данных,

- асинхронный последовательный порт SCI08,

- синхронный последовательный порт SPI08,

- модуль контроля клавиатуры KBI08,

- 8-разрядный аналого-цифровой преобразователь ADC08,

- два таймерных модуля TIM08-1, TIM08-2.

 

Параллельные порты.Двунаправленные порты A, B, C, D, E обеспечивают параллельный обмен данными с внешними устройствами. Порты A, B имеют по 8 линий ввода-вывода, порт E – 2 линии, а порты C, D – от 5 до 8 линий в зависимости от числа выводов корпуса, в котором смонтирован МК.

Выводы параллельных портов A, B, D, E совмещены с выводами других периферийных модулей – KBI08, ADC08, TIM08-1, TIM08-2, SPI08, SCI08. При работе вышеуказанных модулей соответствующие выводы параллельных портов служат для передачи сигналов, необходимых для функционирования модуля, и не могут использоваться для параллельного ввода-вывода данных.

Кроме параллельных портов в МК этого семейства используются интерфейсные модули, обеспечивающие последовательный ввод-вывод данных.

Модуль асинхронного связного интерфейса SCI08реализует стандартный асинхронный протокол передачи 8 или 9 битов данных с одним старт - битом и одним стоп - битом. Скорость обмена программируется и может достигать 130 Кбит/c.

Модуль синхронного периферийного интерфейса SPI08обеспечивает синхронный последовательный ввод-вывод данных с высокой скоростью - до 4 Мбит/с. Этот модуль служит для быстрого обмена данными между МК и другими устройствами, расположенными на небольшом расстоянии.

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

Различные модификации модулей TIM08 содержат 2, 4 или 6 каналов. Счетчик переключается тактовыми импульсами с возможностью его останова и запуска (режим таймера) или сигналами от внешнего устройства (режим счета внешних событий). Пары каналов таймера могут совместно использоваться для выполнения широтно-импульсной модуляции. Большинство моделей содержит два независимо работающих таймерных модуля.

Модуль АЦП ADC08 реализует аналого-цифровое преобразование поступающих сигналов с разрешением 8 бит. Количество аналоговых входов составляет для различных моделей от 4 до 15. В некоторых моделях используется модификация модуля ADC08, реализующая 10-битное разрешение.

Модуль контроля клавиатуры KBI08 обеспечивает формирование запроса прерывания при поступлении сигнала на определенные входы параллельных портов, которые обычно используются для подключения клавиатуры.

Для размещения МК используются корпуса, имеющие 40, 42 или 44 вывода. Этот микроконтроллер имеет закрытую архитектуру, которая не позволяет подключить внешнюю микросхему памяти.

В мониторе хранится информация (программная), с помощью которой осуществляется отладка.

2.6. Организация и адресация памяти

Микроконтроллеры семейства 68HC08/908 адресуют 64 Кбайт внутренней памяти (адреса $0000-FFFF). На рисунке 8.3 приведена карта памяти для MC68HC908GP32.

Младшие 64 позиции адресного пространства (адреса $000-$003F) занимают регистры служебных и периферийных модулей (табл. 8.1).

Таблица 8.1

$0000 $003F Регистры периферийных и служебных модулей (64 байт)
$0040 $023F ОЗУ данных (512 байт)
$8000 $FDFF Flash-память (32 256 байт)
$FE20 $FE52 ПЗУ – монитор отладки (307 байт)
$FFDC $FFFF Вектора запуска и прерываний (36 байт)

 

Рис.11. Карта памяти для микроконтроллера MC68HC908GP32

 

С помощью регистров периферийных и служебных модулей осуществляется программирование всех модулей МК.

МК содержит масочно - программируемое ПЗУ, в котором записана программа - монитор отладки. Наличие встроенных средств отладки позволяет отладить МК без применения дорогостоящих внутрисхемных эмуляторов.