Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Уч-Пособие-HC08.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.23 Mб
Скачать

Московский инженерно-физический институт

(государственный университет)

Факультет Автоматики и электроники

И.И.Шагурин, М.О.Мокрецов

8-разрядные микрокОнтроллеры семейства 68hc08/908 компании Freescale semiconductor.

аРХИТЕКТУРА, ПРОГРАММИРОВАНИЕ, ИНТЕРФЕЙС.

(учебное пособие)

Оглавление

  1. Общая структура и номенклатура микроконтроллеров 68HC08/908

  2. Микроконтроллер 68HC908GP32.

  3. Процессорный модуль CPU08

  4. Формирование тактовых импульсов

  5. Начальный запуск и обработка прерываний

  6. Режимы работы микроконтроллера

  7. Организация и программирование памяти

  8. Конфигурация микроконтроллеров

  9. Модуль сторожевого таймера COP08

  10. Параллельные порты ввода-вывода

  11. Модуль асинхронного последовательного интерфейса SCI08

  12. Модуль синхронного последовательного интерфейса SPI08

  13. Таймерные модули TIM08, TBM08

  14. Аналого-цифровой преобразователь ADC08

  15. Модуль контроля клавиатуры 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 от персонального компьютера непосредственно в составе реализуемой системы, используя последовательный интерфейс.

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

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

  • Реализованы дополнительные возможности контроля функционирования микроконтроллеров, повышающие надежность работы систем, в которых они применяются.

  1. Общая структура и номенклатура микроконтроллеров

семейства 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

+

+

+

+

+

+

+