
- •Общая структура и номенклатура микроконтроллеров
- •Микроконтроллер 68hc908gp32
- •3. Процессорный модуль cpu08
- •5. Начальный запуск и обработка прерываний.
- •6. Режимы работы микроконтроллеров
- •7. Организация и программирование памяти
- •8. Конфигурация микроконтроллеров
- •9. Модуль сторожевого таймера cop08
- •10. Параллельные порты ввода-вывода данных.
- •11. Модуль асинхронного последовательного интерфейса sci08
- •12. Модуль синхронного последовательного интерфейса spi08
- •13. Таймерные модули
- •14. Модуль аналого-цифрового преобразователя adc08.
- •15. Модуль обслуживания клавиатуры kbi08
Московский инженерно-физический институт
(государственный университет)
Факультет Автоматики и электроники
И.И.Шагурин, М.О.Мокрецов
8-разрядные микрокОнтроллеры семейства 68hc08/908 компании Freescale semiconductor.
аРХИТЕКТУРА, ПРОГРАММИРОВАНИЕ, ИНТЕРФЕЙС.
(учебное пособие)
Оглавление
Общая структура и номенклатура микроконтроллеров 68HC08/908
Микроконтроллер 68HC908GP32.
Процессорный модуль CPU08
Формирование тактовых импульсов
Начальный запуск и обработка прерываний
Режимы работы микроконтроллера
Организация и программирование памяти
Конфигурация микроконтроллеров
Модуль сторожевого таймера COP08
Параллельные порты ввода-вывода
Модуль асинхронного последовательного интерфейса SCI08
Модуль синхронного последовательного интерфейса SPI08
Таймерные модули TIM08, TBM08
Аналого-цифровой преобразователь ADC08
Модуль контроля клавиатуры KBI08
2006 г.
8-разрядные микроконтроллеры семейства 68HC08/908 компании Freescale semiconductor.
Архитектура, программирование, интерфейс
Микроконтроллерами называются специализированные микропроцессоры, предназначенные для реализации устройств управления, встраиваемых в разнообразную аппаратуру.
Характерной особенностью микроконтроллеров является размещение на одном кристалле с центральным процессором внутренней памяти и большого набора периферийных устройств. В состав периферийных устройств обычно входят несколько 8-разрядных параллельных портов ввода-вывода данных, один или два последовательных порта, таймерный блок, аналого-цифровой преобразователь. Кроме того различные типы микроконтроллеров содержат дополнительные специализированные устройства – блок формирования сигналов с широтно-импульсной модуляцией, контроллер жидко-кристаллического дисплея и ряд других.
Благодаря использованию внутренней памяти и периферийных устройств реализуемые на базе микроконтроллеров системы управления содержат минимальное количество дополнительных компонентов.
В связи с широким диапазоном решаемых задач управления требования, предъявляемые к производительности процессора, объему внутренней памяти команд и данных, набору необходимых периферийных устройств, оказываются весьма разнообразными. Для удовлетворения запросов потребителей выпускается большая номенклатура 8-, 16- и 32-разрядных микроконтроллеров.
Современные 8-разрядные микроконтроллеры являются наиболее массовыми представителями микропроцессорной техники. Общий объем их выпуска в 2000 году составил около 2,5 миллиардов. Эти микроконтроллеры имеют более низкую производительность, чем 16- и 32-разрядные, которая, однако, вполне достаточна для решения широкого круга задач управления различными объектами. Это простые и дешевые микроконтроллеры, ориентированные на использование в относительно несложных устройствах массового выпуска. Основными областями их применения являются бытовая и измерительная техника, промышленная автоматика, автомобильная электроника, теле-, видео- и аудиоаппаратура, средства связи.
Эти микроконтроллеры реализуются на основе Гарвардской архитектуры, использующей отдельную память для хранения программ и данных. Для хранения программ в различных типах микроконтроллеров применяется либо масочно-программируемое ПЗУ (ROM), либо однократно-программируемое ПЗУ (PROM), либо электрически репрограммируемое ПЗУ (EPROM, EEPROM или Flash). Внутренняя память программ обычно имеет объем от нескольких единиц до десятков Кбайт. Для хранения данных используется регистровый блок, организованный в виде нескольких регистровых банков, или внутреннее ОЗУ. Объем внутренней памяти данных составляет от нескольких десятков байт до нескольких Кбайт. Некоторые типы 8-разрядных микроконтроллеров позволяют, в случае необходимости, подключать дополнительную внешнюю память команд и данных объемом до 64 –256 Кбайт.
В настоящее время наиболее широкое применение находят 8-разрядные микроконтроллеры семейства MCS-8051, выпускаемые рядом производителей (компании Dallas Semiconductor, Philips, Atmel и ряд других), семейство PicMicro компании Microchip, семейство AVR компании Atmel, семейства 68HC08/908, 68HCS08 компании Freescale Semiconductor. Каждое из этих семейств имеет свои достоинства и недостатки, с учетом которых оно ориентировано на использование в определенных секторах применения. По комплексу показателей, к которым относятся производительность, потребляемая мощность, доступность средств программирования и отладки, стоимость и ряд других, наиболее перспективными для применения в разнообразной электронной аппаратуре представляются семейств 68HС908 компании Freescale Semiconductor и семейство AVR компании Atmel.
В данном учебном пособии рассматриваются 8-разрядные микроконтроллеры семейства 68HC908 компании Freescale Semiconductor, которая является одним из лидеров в производстве микроконтроллеров, обеспечивая 14% их мирового выпуска
(2-е место после японской компании Renesas). Cемейство 68HC08/908, выпуск которого начался в 1995 году, является дальнейшим развитием семейства 68HC05/705, выпускаемого с начала 80-х годов. В семействе 68HC08/908 реализованы концепции, которые обеспечивают существенное увеличение производительности микроконтроллеров и расширение их функциональных возможностей. В составе этого семейства преобладают модели, содержащие флэш-память (подсемейство 68HC908), что обеспечивает возможность их широкого использования в изделиях малой серийности.
Можно отметить следующие основные достоинства семейства 68HC08/908.
Микроконтроллеры работают на тактовой частоте до 8 МГц, реализуют ряд эффективных способов адресации и имеют расширенный набор выполняемых команд.
Применение Flash-памяти обеспечивает возможность программирования и репрограммирования микроконтроллеров подсемейства 68HC908 от персонального компьютера непосредственно в составе реализуемой системы, используя последовательный интерфейс.
Модульная структура микроконтроллеров и наличие большой библиотеки интерфейсных и периферийных модулей с улучшенными характеристиками позволяет достаточно просто реализовать различные модели с расширенными функциональными возможностями.
Обеспечивается возможность эффективной отладки программ без применения дорогостоящих схемных эмуляторов благодаря введению специального монитора отладки и реализации останова в контрольной точке.
Реализованы дополнительные возможности контроля функционирования микроконтроллеров, повышающие надежность работы систем, в которых они применяются.
Общая структура и номенклатура микроконтроллеров
семейства 68HC08/908
В настоящее время компания Freescale Semiconductor выпускает более 20 моделей этого семейства. Основные характеристики ряда моделей приведены в табл.1. Микроконтроллеры этого семейства содержат процессорное ядро CPU08, внутреннюю память программ – масочно-программируемое ПЗУ емкостью до 32 Кбайт или флэш-память емкостью до 60 Кбайт, ОЗУ данных емкостью от 128 байт до 2 Кбайт. В ряде моделей имеется также ЭСППЗУ емкостью 512 байт или 1 Кбайт. Большинство микроконтроллеров работают при напряжении питания Vп = 5,0 В, обеспечивая максимальную тактовую частоту Ft = 8 МГц. Некоторые модели работают при пониженном напряжении питания 3,0 В или 2,0 В.
Таблица 1. Основные характеристики микроконтроллеров семейства 68HC08/908
Модель |
ПЗУ, Flash байт |
ОЗУ байт |
ЭСППЗУ байт |
Таймеры |
Входы-выходы |
Послед. порт |
АЦП |
ШИМ |
68НС08AВ16A 68НС908AВ32 |
16 K 32 K |
512 1 K |
512 512 |
2x16р.(4+6 кан.) 2x16р.(4+6 кан.) |
51 51 |
SCI,SPI SCI,SPI |
8р.,8вх 8р.,8вх |
- - |
68HC908AS60 |
60K |
2 K |
1 K |
16р.(6 кан.) |
45/50 |
SCI,SPI BDLC |
8р.,8вх |
- |
68НС08AZ32A
68НС908AZ60 |
32 K
60 K |
1 K
2 K |
512
1 K |
2x16р.(2+4 кан.)
2x16р.(2+6 кан.) |
48
48 |
SCI,SPI, CAN SCI,SPI, CAN |
8р.,8вх
8р.,8вх |
-
- |
68НС08BD24 |
24 K |
512 |
- |
16р.(2 кан.) |
32 |
I2C |
8р.,8вх |
8р.,16вых |
68HC908GP32 |
32 K |
512 |
- |
16р.(2 кан.) |
33 |
SCI,SPI |
8р.,8вх |
- |
68HC08JB1 68HC908JB8 |
5,5 K 8 K |
128 256 |
- - |
16р.(2 кан.) 16р.(2 кан.) |
13 37 |
USB USB |
- - |
- - |
68HC908JK1 68HC908JK3 |
1,5 K 4 K |
128 128 |
- - |
16р.(2 кан.) 16р.(2 кан.) |
15 15 |
- - |
8р.,10вх 8р.,10вх |
- - |
68НС908JL3 |
4 K |
128 |
- |
16р.(2 кан.) |
23 |
- |
8р.,12вх |
- |
68НС908KX2 68HC908KX8 |
2 K 8 K |
192 192 |
- - |
16р.(2 кан.) 16р.(2 кан.) |
13 13 |
SCI SCI |
8р.,4вх 8р.,4вх |
- - |
68НС908MR16 68HC908MR32 |
16 K 32 K |
768 768 |
- - |
2x16р.(2+4 кан.) 2x16р.(2+4 кан.) |
44 44 |
SCI,SPI SCI,SPI |
10р.,10вх 10р.,10вх |
12р.,6вых 12р.,6вых |
68НС908RK2 |
2 K |
128 |
- |
16р.(2 кан.) |
14 |
- |
- |
- |
68HC908SR12 |
2 K |
192 |
- |
2x16р.(2+2 кан.) |
31 |
- |
10р.,14вх |
- |
Микроконтроллеры семейства 68HC08/908 делятся на ряд серий, буквенные обозначения которых указываются для каждой модели после имени семейства (например, 68HC08AZ32 - серия AZ, модель 32). Серии отличаются, в основном, составом периферийных модулей и областями применения. Все модели содержат 16-разрядные таймеры, имеющие 2, 4 или 6 комбинированных входов захвата/выходов совпадения IC/OC. Большинство моделей содержит 8- или 10-разрядные АЦП.
В состав серий AB, AS, AZ входят микроконтроллеры общего назначения, которые обеспечивают расширенные возможности интерфейса с внешними устройствами благодаря наличию шести параллельных и двух последовательных портов (SCI, SPI). Модели серий BD, SR и GP имеют четыре параллельных порта. Ряд серий имеет специализированные последовательные порты, используемые для организации микроконтроллерных сетей. Это серия AS, обеспечивающая передачу данных по мультиплексной шине J1850, серия JB, имеющая интерфейс с последовательной шиной USB, серия AZ, содержащая контроллер сети CAN, серия BD, реализующая интерфейс I2C. Микроконтроллеры этих серий широко используются в промышленной автоматике, измерительной аппаратуре, системах автомобильной электроники, вычислительной технике.
Специализированные микроконтроллеры серии MR содержат 12-разрядные широтно-импульсные модуляторы (ШИМ) с шестью выходными каналами. Они ориентированы на применение в системах управления электроприводом.
Серии JB, JK, JL, KX выпускаются в дешевых корпусах с малым числом выводов. Микроконтроллеры этих серий имеют от 13 до 23 линий параллельного ввода-вывода данных. Они используются в бытовой аппаратуре и изделиях массового применения, где требование низкой стоимости является одним из первостепенных факторов.
На рис.1 показана общая структура микроконтроллеров семейства 68HC08/908. Характерной особенностью этого семейства является модульный принцип построения, когда каждая модель формируется из библиотеки стандартных модулей. Путем объединения на кристалле процессорного модуля CPU08, модулей памяти (ОЗУ, ПЗУ, ЭСППЗУ, флэш-памяти) и ряда служебных, интерфейсных и периферийных модулей, выбранных из имеющейся библиотеки, реализуются различные модели микроконтроллеров этого семейства, характеристики которых приведены в табл.1. В библиотеку стандартных модулей входят служебные модули: CGM08, SIM08, LVI08, IRQ08, BREAK08, COP08; интерфейсные модули: порты PTA – PTH, SCI08, SPI08, msCAN08, USB08, BDLC08, периферийные модули: TIM08, TBM08, PIT08, ADC08, PWM08, DMA08, KBI08.
Служебные модули, которые входят в состав всех микроконтроллеров этого семейства, выполняют следующие функции.
Модуль формирования тактирующих сигналов CGM08 генерирует последовательности импульсов, необходимые для тактирования работы процессора и периферийных модулей. В микроконтроллерах серий JL, JK, KX используется более простой вариант этого модуля OSC08.
Модуль системной интеграции SIM08 производит начальный запуск микроконтроллера при включении напряжения питания и его перезапуск при поступлении внешнего сигнала на вход RST# или внутреннего сигнала от модуля контроля функционирования COP08, а также при выборке неправильного кода команды и при обращении к несуществующему адресу. Кроме того модуль SIM08 формирует тактовые сигналы для процессора и других модулей, управляет передачей команд и данных по внутренней шине, обеспечивает обслуживание запросов прерывания, реализует различные режимы работы микроконтроллера.
Рис.1. Общая структура микроконтроллеров семейства 68HC08/908
Модуль управления внешним прерыванием IRQ08 обеспечивает различные варианты обслуживания внешнего запроса прерывания, поступающего на вход IRQ#.
Модуль прерывания в контрольной точке BREAK08 реализует механизм останова в контрольной точке в процессе отладки программного обеспечения.
Модуль контроля напряжения питания LVI08 контролирует величину напряжения питания. При уменьшении этого напряжения ниже заданной величины модуль LVI08 переводит микроконтроллер в начальное состояние, которое сохраняется до восстановления нормального уровня напряжения питания.
Модуль контроля функционирования COP08 обеспечивает контроль выполнения программы с помощью сторожевого таймера.
В состав интерфейсных модулей входят параллельные 8-разрядные порты, количество которых в различных моделях микроконтроллеров составляет от 2 до 8 (PA, PB, …PG, PH). При этом в портах может использоваться только часть выводов. Выводы некоторых портов могут служить для выполнения альтернативных функций: реализации последовательного обмена данными, приема и выдачи сигналов таймерных модулей, ввода аналоговых сигналов для аналого-цифрового преобразования и др.
Кроме параллельных портов в микроконтроллерах этого семейства используются интерфейсные модули, обеспечивающие последовательный ввод-вывод данных. Большинство моделей содержит следующие модули последовательного обмена.
Модуль асинхронного связного интерфейса SCI08 реализует стандартный асинхронный протокол передачи 8 или 9 битов данных с одним старт-битом и одним стоп-битом. Скорость обмена программируется и может достигать 130 Кбит/c.
Модуль синхронного периферийного интерфейса SPI08 обеспечивает синхронный последовательный ввод-вывод данных с высокой скоростью - до 4 Мбит/с. Этот модуль служит для быстрого обмена данными между микроконтроллером и другими устройствами, расположенными на небольшом расстоянии.
В качестве периферийных модулей в состав большинства микроконтроллеров входят таймерные модули и модуль АЦП.
Таймерный модуль TIM08 содержит 16-разрядный счетчик, имеющий несколько каналов, которые работают в режиме захвата или совпадения. Каналы имеют входы сигналов захвата IC, выходы сигналов совпадения OC и соответствующие регистры захвата и сравнения. Различные модификации модулей TIM08 содержат 2, 4 или 6 каналов. Счетчик переключается тактовыми импульсами с возможностью его останова и запуска (режим таймера) или сигналами от внешнего устройства (режим счета внешних событий). Пары каналов таймера могут совместно использоваться для выполнения широтно-импульсной модуляции. Большинство моделей содержит два независимо работающих таймерных модуля.
Модуль АЦП ADC08 реализует аналого-цифровое преобразование поступающих сигналов с разрешением 8 бит. Количество аналоговых входов составляет для различных моделей от 4 до 15. В некоторых моделях используется модификация модуля ADC08, реализующая 10-битное разрешение.
В состав библиотеки модулей входят также 12-разрядный 6-канальный широтно-импульсный модулятор PWM08, таймер периодических прерываний PIT08, модуль обслуживания клавиатуры KBI08. В некоторых сериях для последовательного обмена используются специализированные интерфейсные модули msCAN08, BDLC08, которые реализуют протоколы CAN и J1850, широко применяемые в системах промышленной автоматики, автомобильной электронике, контрольно-измерительной технике, а также модуль USB08, содержащий контроллер шины USB, .применяемый в вычислительной технике. В табл. 2 приведен состав интерфейсных и периферийных модулей, используемых в ряде серий семейства 68HC08/908.
Таблица 2. Состав интерфейсных и периферийных модулей в различных сериях микроконтроллеров семейства 68HC08/908
Типы модулей |
Серии микроконтроллеров семейства 68HC08/908 |
|||||||
AZ |
AB |
AS |
GP |
JL/JK |
JB |
KX |
MR |
|
Интерфейсные модули |
||||||||
Порты PA… |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
SCI08 |
+ |
+ |
+ |
+ |
|
|
|
+ |
SPI08 |
+ |
+ |
+ |
+ |
|
|
|
+ |
MsCAN08 |
+ |
|
|
|
|
|
|
|
USB08 |
|
|
|
|
|
+ |
|
|
BDLC08 |
|
|
+ |
|
|
|
|
|
Периферийные модули |
||||||||
TIM08 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
|
PIT08 |
+ |
+ |
|
TBM08 |
|
|
|
|
KBI08 |
+ |
|
|
+ |
|
|
|
|
PWM08 |
|
|
|
|
|
|
|
+ |
ADC08 |
+ |
+ |
+ |
+ |
+ |
|
+ |
+ |