Семейство 8-разрядных микроконтроллеров
68HC08/908 фирмы Motorola
И.И.Шагурин, технический консультант
"КТЦ-МК"
Семейство 8-разрядных
микроконтроллеров 68HC08/908 является дальнейшим
развитием семейства 68HC05/705. В этом семействе
реализованы концепции, которые обеспечивают
существенное увеличение производительности
микроконтроллеров и расширение их функциональных
возможностей [1, 2]. Микроконтроллеры этого
семейства предназначены для замены семейства
68HC05/705 в новых разработках. Сохраняя
архитектуру семейства 68HC05/705, микроконтроллеры
68HC08/908 позволяют обеспечить значительно более
высокие технико-экономические характеристики
устройств, реализуемых на их основе. В составе
семейства преобладают модели, содержащие
FLASH-память (подсемейство 68HC908), что
обеспечивает возможность их широкого использования
в изделиях малой серийности. Следует отметить
программную совместимость "снизу-вверх"
процессоров семейств 68HC05/705 и 68HC08/908, что
позволяет без изменения использовать в
микроконтроллерах 68HC08/708 программы, ранее
созданные для 68HC05/705.
Отметим основные
преимущества семейства 68HC08/908 по сравнению с
микроконтроллерами 68HC05/705.
- Процессор CPU08 работает на более высокой
тактовой частоте 8 МГц, реализует ряд
дополнительных способов адресации и имеет
расширенный набор выполняемых команд. В
результате достигается повышение
производительности до 6 раз по сравнению с
микроконтроллерами 68HC05.
- Применение FLASH-памяти обеспечивает
возможность программирования микроконтроллеров
подсемейства 68HC908 непосредственно в составе
реализуемой системы с помощью персонального
компьютера.
- Модульная структура микроконтроллеров и
наличие большой библиотеки интерфейсных и
периферийных модулей с улучшенными
характеристиками позволяет достаточно просто
реализовать различные модели с расширенными
функциональными возможностями.
- Существенно расширены возможности отладки
программ благодаря введению специального
монитора отладки и реализации останова в
контрольной точке. Таким образом, обеспечивается
возможность эффективной отладки без применения
дорогостоящих схемных эмуляторов.
- Реализованы дополнительные возможности
контроля функционирования микроконтроллеров,
повышающие надежность работы систем, в которых
они применяются.
В настоящее время семейство 68HC08/908 является
основным промышленным стандартом компании Motorola
в сфере 8-разрядных микроконтроллеров и
насчитывает около 40 моделей, рекомендованных для
применения. В табл. 1 приведены основные
характеристики моделей, содержащих внутреннюю
FLASH-память (подсемейство 68HC908), которые
представляют наибольший интерес для российских
разработчиков.
Табл.1. Микроконтроллеры
семейства 68НС08/908
Все
микроконтроллеры семейства 68HC08/908 содержат
процессорное ядро CPU08, внутреннюю память
программ - масочно-программируемое ПЗУ емкостью до
32 Кбайт или FLASH-память емкостью до 60 Кбайт,
ОЗУ данных емкостью от 128 байт до 2 Кбайт. В ряде
моделей имеется также память EEPROM емкостью 512
байт или 1 Кбайт. Большинство микроконтроллеров
семейства работают при напряжении питания 5.0 В,
обеспечивая максимальную тактовую частоту Ft = 8
МГц. Некоторые модели работают при пониженном
напряжении питания 3.0 В и даже 2.0
В.
Микроконтроллеры семейства 68HC08/908
делятся на ряд серий, буквенные обозначения
которых указываются для каждой модели после имени
семейства (например, 68HC08AZ32 - серия AZ, модель
32). Серии отличаются, в основном, составом
периферийных модулей и областями применения. Все
модели содержат 16-разрядные таймеры, имеющие 2, 4
или 6 комбинированных входов захвата/выходов
совпадения. Большинство моделей содержит 8- или
10-разрядные АЦП.
В состав серий AB, AS, AZ
входят микроконтроллеры общего назначения, которые
обеспечивают расширенные возможности интерфейса с
внешними устройствами благодаря наличию шести
параллельных и двух последовательных портов (SCI,
SPI). Модели серий BD, SR и GP имеют четыре
параллельных порта. Ряд серий имеет
специализированные последовательные порты,
используемые для организации микроконтроллерных
сетей. Это серия AS, обеспечивающая передачу
данных по мультиплексной шине J1850, серия JB,
имеющая интерфейс с последовательной шиной USB,
серия AZ, содержащая контроллер сети CAN, серия
BD, реализующая интерфейс I2C.
Микроконтроллеры этих серий широко используются в
промышленной автоматике, измерительной аппаратуре,
системах автомобильной электроники, вычислительной
технике.
Специализированные
микроконтроллеры серии MR содержат 12-разрядные
модули ШИМ с 6 выходными каналами. Они
ориентированы на применение в системах управления
электроприводом. Микроконтроллеры RK и RF
ориентированы на использование в
радиотехнике. Серии JB, JK, JL, KX выпускаются
в дешевых корпусах с малым числом выводов.
Микроконтроллеры этих серий имеют от 13 до 23
линий параллельного ввода-вывода данных. Они
используются в бытовой аппаратуре и изделиях
массового применения, где требование низкой
стоимости является одним из первостепенных
факторов.
В сериях QT, QY представлены
модели, ориентированные на применение в
малобюджетных проектах. Эти микроконтроллеры
отличаются низкой стоимостью и выпускаются в
компактных корпусах с малым числом выводов (8 или
16). Они имеют встроенный осциллятор,
обеспечивающий формирование тактовой частоты с
точностью 5%. Небольшой объем FLASH-памяти (до 4
Кбайт), наличие АЦП и таймера делают эти модели
идеальными для построения несложных контроллеров
распределенных систем мониторинга и
управления.
Структура и функционирование
микроконтроллеров
68HC08/908 Микроконтроллеры семейства
68HC08/908 имеют модульную структуру, где каждая
модель формируется из библиотеки стандартных
модулей взаимодействующих посредством
стандартизованной шины. Путем объединения на
кристалле процессорного модуля CPU08, модулей
памяти (ОЗУ, масочное ПЗУ, FLASH, EEPROM) и ряда
служебных, интерфейсных и периферийных модулей
реализуются различные модели микроконтроллеров
этого семейства (табл.1). В библиотеку стандартных
модулей входят служебные модули: CGM08, SIM08,
LVI08, IRQ08, BREAK08, COP08; интерфейсные модули:
порты PTA - PTH, SCI08, SPI08, msCAN08, USB08,
BDLC08, периферийные модули: TIM08, TBM08, PIT08,
ADC08, PWM08, DMA08, KBI08. На рис.1 показана
типовая структура микроконтроллеров семейства
68HC08/908.
Рис.1. Структура микроконтроллеров
семейства 68HC08/908
Процессорный модуль CPU08, используемый в
микроконтроллерах семейства 68HC08 является
модифицированным вариантом процессора CPU05,
который реализует значительно расширенный набор
команд (90 команд вместо 65) и способов адресации
(9 способов вместо 6). При этом модуль CPU08
реализует весь набор команд и способов адресации
процессора CPU05, обеспечивая с ним полную
программную совместимость.
Процессорный
модуль CPU08 содержит 8-разрядные аккумулятор
A и регистр признаков CCR,
16-разрядные индексный регистр H:X,
указатель стека SP и программный счетчик
PC. Регистровая модель CPU08 (рис.2)
аналогична модели процессора CPU05, отличаясь от
нее увеличенной разрядностью индексного регистра,
PC и SP. Расширение их разрядности
обеспечивает увеличение объема адресуемой памяти
до 64 Кбайт (адреса $0000-FFFF). Для совместимости
с семейством 68HC05/705 индексный регистр состоит
из двух 8-разрядных частей: H (старший
байт) и X (младший байт). Регистр CCR
содержит значения признаков переноса (С),
переполнения (V), нуля (Z), отрицательного
результата (N) и переноса между тетрадами (H),
устанавливаемых по результатам выполнения
операции. Также CCR содержит бит
маскирования прерываний I, при установке которого
запрещается обслуживание маскируемых прерываний.
Рис.2. Регистровая
модель микроконтроллеров семейства
68НС08/908
При запуске микроконтроллера (процедура RESET)
в PC автоматически загружается адрес первой
команды выполняемой программы (вектор начального
запуска) из двух последних ячеек адресуемой памяти
с адресами $FFFE-FFFF, а в SP автоматически
загружается значение $00FF, обеспечивая
возможность использования в качестве стека ячеек
ОЗУ и регистров, имеющих адреса в диапазоне
$0000-00FF.
Различные модели
микроконтроллеров отличаются распределением памяти
и составом адресуемых регистров. В качестве
примера на рис.3 приведена карта памяти для
младших моделей этого семейства - 68H(R)C908JK1
(объем FLASH-памяти 1536 байт) и 68H(R)C908JK3,
JL3 (объем FLASH-памяти 4096 байт). В адресном
пространстве имеется ряд неиспользуемых позиций,
которые соответствуют ячейкам памяти,
отсутствующим в данной модели микроконтроллеров.
При обращении к этим адресам производится
перезапуск микроконтроллера.
Объем и
размещение в адресном пространстве основных
сегментов памяти для наиболее популярных моделей
семейства 68HC08/908 приведены в табл.2. Старшие
модели микроконтроллеров 68HC908AS60, AZ60 имеют
два сегмента FLASH-памяти: FLASH-1 объемом 32256
байт, который размещается в адресном проcтранстве
$8000-FDFF, и FLASH-2, который состоит из двух (в
модели 68908AS60) или трех (в модели 68908AZ60)
отдельных массивов. Память EEPROM в этих моделях
также состоит из двух сегментов по 512 байт:
EEPROM-1 (адреса $0800-09FF) и EEPROM-2 (адреса
$0600-07FF).
Табл.2. Карта
памяти для микроконтроллеров семейства
68НС08/908
Младшие 64 или 80 (в
старших моделях) адресов используются для
обращения к регистрам периферийных модулей и
регистрам конфигурации. Состав и количество этих
регистров зависит от состава модулей, используемых
в данной модели.
В адресном пространстве
ОЗУ располагаются ячейки стека, которые адресуются
с помощью указателя стека SP. При установке
микроконтроллера в начальное состояние (запуске)
содержимое SP принимает значение $00FF,
адресуя ячейку ОЗУ с данным адресом. В процессе
выполнения программы можно установить любое
значение указателя стека с помощью команды TXS,
которая загружает в SP содержимое
индексного регистра H:X, уменьшенное на 1.
После записи байта в стек содержимое SP
уменьшается на 1, адресуя следующую незаполненную
ячейку стека. Таким образом, стек заполняется в
направлении уменьшения адресов. Адрес вершины
стека можно загрузить в регистр H:X с
помощью команды TSX.
Часть
адресного пространства занята ячейками служебного
ПЗУ, в котором содержится программа-монитор,
реализующая необходимые процедуры при работе
микроконтроллера в режиме отладки, обеспечивая
возможность контроля его внутреннего состояния.
Это масочно-программируемое ПЗУ, содержимое
которого записывается в процессе изготовления
микроконтроллера.
В старших позициях
адресного пространства располагаются вектора
начального запуска и прерываний. Старшие две
позиций таблицы отведены под векторы начальной
загрузки RESET и немаскируемого
программного прерывания по команде SWI, а
остальные распределяются между маскируемыми
источниками прерываний. При переходе к
обслуживанию прерываний в стеке автоматически
сохраняется содержимое регистров PC,
X, A, CCR, которое
восстанавливается при возврате из подпрограммы
обслуживания по команде RTI.
Разрешение обслуживания маскируемых
прерываний осуществляется путем установки в 0 бита
I в регистре CCR. К маскируемым источникам
прерываний относятся: внешний сигнал прерывания на
входе IRQ, прерывания от таймеров, прерывания от
блоков последовательного интерфейса и от АЦП.
Микроконтроллеры семейства 68HC08/908 могут
функционировать в одном из следующих режимов:
- рабочий режим,
- режим ожидания,
- режим останова,
- режим отладки.
Режим ожидания (Wait
mode) реализуется после поступления команды
WAIT. При этом прекращается работа
процессора, но все остальные модули
микропроцессора продолжают функционировать.
Потребление мощности в этом режиме снижается в
несколько раз. Возврат из режима ожидания в
рабочий режим происходит при поступлении сигнала
запуска (внешнего RST#, от модуля LVI08 или
сторожевого таймера COP08) или запроса прерывания
(внешнего IRQ# или от периферийных
модулей).
Режим останова (Stop mode)
реализуется после поступления команды STOP.
В этом случае прекращается работа процессора и
большинства других модулей микроконтроллера.
Продолжают работать модули BREAK08, IRQ08, KBI08.
Потребляемый ток в режиме останова снижается до
единиц микроампер, если запрещена работа всех
модулей микроконтроллера. Выход из режима останова
происходит при поступлении внешних сигналов
запуска RST# и прерывания IRQ#, а также по
запросам внутренних модулей LVI08, BREAK08, KBI08,
TBM08, если соответствующий модуль входит в состав
данного микроконтроллера, и разрешена его работа в
режиме останова.
При поступлении команд
WAIT и STOP в регистре признаков
CCR устанавливается значение маски
прерывания I = 0, чтобы разрешить последующий
выход из режима ожидания или останова по запросам
прерывания.
Реализация режима отладки,
который существенно упрощает процесс разработки
различных устройств на базе этих
микроконтроллеров, является специфической
особенностью семейства 68HC08/908. В режиме
отладки микроконтроллер работает под управлением
команд, посылаемых персональным компьютером,
которые выполняют чтение и запись содержимого
любой ячейки адресуемой памяти или регистра. Эти
команды позволяют контролировать и модифицировать
текущее состояние микроконтроллера, производить
стирание и запись содержимого внутренней
FLASH-памяти и EEPROM. Данный режим обеспечивает
выполнение основных операций, реализуемых в
процессе отладки программ, без использования
дорогостоящих схемных эмуляторов. Кроме того,
можно выполнить программирование микроконтроллера,
работающего непосредственно в составе системы
управления (ISP - In-System Programming). При этом
запись или модификация рабочей программы
производится с помощью персонального компьютера
без использования специальных программаторов и не
требует отключения микроконтроллера (демонтажа) от
реализованной системы
управления.
Способы адресации и система
команд Микроконтроллер выполняет набор
операций над операндами, размещенными в регистрах
A, X и памяти. Команды имеют длину от 1 до 3
байтов: первый байт содержит код операции, второй
и третий байты обеспечивают адресацию операнда.
Для выборки операнда используются следующие
способы адресации:
- регистровая (операнд располагается в
регистре A или X);
- индексная (адресом операнда служит
содержимое регистра H:X);
- индексная со смещением (адрес операнда
образуется путем сложения содержимого регистра
H:X и 8- или 16-разрядного смещения, заданного
во втором и третьем байте команды);
- индексная с пост-инкрементом (используется
только в командах MOV и CBEQ - адресом операнда
служит содержимое регистра H:X, которое после
выполнения команды автоматически увеличивается
на 1);
- индексная со смещением и пост-инкрементом
(используется только в команде CBEQ - адрес
операнда образуется путем сложения содержимого
регистра H:X и 8-разрядного смещения, заданного
во втором и третьем байте команды; после
выполнения команды содержимое регистра H:X
автоматически увеличивается на 1);
- индексная по указателю стека со смещением
(адрес операнда образуется путем сложения
содержимого регистра SP и 8- или 16-разрядного
смещения, заданного во втором и третьем байте
команды);
- прямая (8- или 16-разрядный адрес операнда
задается во втором и третьем байте команды);
- непосредственная (8-разрядный операнд
содержится во втором байте команды);
- относительная (используется только в
командах ветвления - адрес команды образуется
путем сложения текущего содержимого PC и
заданного во втором байте команды 8-разрядного
смещения, которое является числом со знаком).
При прямой адресации с 8-разрядным
адресом обращение возможно только к 256 начальным
позициям адресного пространства, в котором
располагаются регистры интерфейсных и периферийных
модулей и часть ОЗУ. При индексной адресации
смещение является числом без знака. Индексная
адресация и прямая адресация с 16-разрядным
адресом позволяют обращаться к любой позиции
адресного пространства (при этом необходимо, чтобы
значение адреса не превышало $FFFF). При
относительной адресации возможен переход к
командам, расположенным в пределах 127 позиций
ниже или выше очередной команды программы.
Выполняемые микроконтроллером команды
делятся на группы команд пересылки, арифметических
и логических операций, сдвигов, битовых операций и
установки признаков, управления программой и
процессором. Перечень реализуемых команд приведен
в табл.3.
Табл.3. Система
команд микроконтроллеров семейства
68НС08/908
Группа команд пересылки
включает в себя команды загрузки регистров
процессора (LDA, LDX, LDHX),
сохранения их содержимого в памяти (STA,
STX, STHX) и команды пересылки и
обмена данными между различными регистрами
(TAX, TXA, TAP, TPA,
TSX, TXS) или тетрадами регистра
A (NSA). К этой группе также
относятся команды, выполняющие сохранение
содержимого регистров A, H и
X в стеке (PSHA, PSHH,
PSHX) и загрузку этих регистров из стека
(PULA, PULH, PULX). Команды
очистки устанавливают в 0 содержимое регистров
A, H, X и ячеек памяти
(CLRA, CLRH, CLRX,
CLR). Команда MOV позволяет
осуществлять пересылку 8-разрядных данных из
памяти в память.
Группа команд
арифметических операций позволяет выполнять
сложение и вычитание содержимого регистра A
и ячейки памяти с учетом или без учета признака
переноса (ADD, ADC, SUB,
SBC), производить коррекцию результата
сложения двоично-десятичных чисел (DAA),
выполнять умножение 8-разрядных операндов
(MUL) и деление 16/8 (DIV),
выполнять декремент и инкремент содержимого ячейки
памяти или регистра (DEC, DECA,
DECX, INC, INCA,
INCX), изменять его знак (NEG,
NEGA, NEGX). Кроме того, имеются
команды 16-разрядного сложения индексного регистра
H:X или SP с константой (AIX,
AIS).
Команды сравнения выполняют
установку признаков N, Z, V, C в регистре
CCR в соответствии с результатом вычитания
содержимого двух операндов, хранящихся в регистре
и ячейке памяти (CMP, CPX,
CPHX). Команды тестирования устанавливают
значения признаков N, Z в соответствии с
содержимым ячейки памяти или регистра-аккумулятора
(TST, TSTA, TSTX). Команда
битового тестирования (BIT) производит
установку флагов N и Z в соответствии с
результатом логической операции И над содержимым
регистра-аккумулятора и ячейки
памяти.
Команды логических операций
реализуют побитовые операции И, ИЛИ, Исключающее
ИЛИ над содержимым регистра A и адресуемой ячейки
памяти (AND, OR, EOR) и
инвертирование содержимого регистра или ячейки
памяти (COM, COMA, COMX).
Группа команд сдвига включает
команды одноразрядных арифметических, логических и
циклических сдвигов, выполняемых над содержимым
регистров и ячейки памяти (ASL,
ASLA, ASLX, ASR, ASRA,
ASRX, LSL, LSLA, LSLX,
LSR, LSRA, LSRX, ROL,
ROLA, ROLX, ROR, RORA,
RORX). Команды битовых операций
обеспечивают установку в 0 или 1 заданного бита в
ячейке памяти (BCLR, BSET) и
установку требуемого значения признаков C и I в
регистре CCR (CLC, CLI,
SEC, SEI).
Команды
управления программой реализуют условные и
безусловные ветвления (JMP, Bcc,
BRA, BRN, BRCLR,
BRSET), сравнения и ветвления (CBEQ,
CBEQA, CBEQX), организацию циклов
(DBNZ, DBNZA, DBNZX), вызов
подпрограмм (JSR, BSR) и выход из
подпрограммы (RTS) или процедуры обработки
прерывания (RTI). Условиями ветвления могут
быть значения признаков Z (нулевой или ненулевой
результат), N (положительный или отрицательный
результат), результаты выполнения команд сравнения
операндов со знаком или без знака (>, >=,
<, <=). В эту группу входит также команда
программного прерывания (SWI) и начальной
установки указателя стека (RSP). Для
управления процессором служат команды, переводящие
его в режим ожидания и останова (WAIT,
STOP), а также команда отсутствия операций
(NOP). Большинство команд в зависимости
от используемого способа адресации имеет время
выполнения от 1 до 5 Tt, где Tt - период тактовых
импульсов. В течение большего времени выполняются
команды DIV - 7Tt, SWI - 9Tt RTI
- 7Tt.
Набор периферийных
устройств В состав микроконтроллеров
семейства 68HC08/908 входит ряд служебных,
интерфейсных и периферийных модулей. Процессор
CPU08 взаимодействует с этими модулями, обращаясь
к их регистрам, которые расположены в первых
позициях адресного пространства (рис 3).
Рис.3. Распределение
адресного пространства для 68H(R)C908JK1, JK3,
JL1. В состав служебных модулей входят:
- генератор тактовых импульсов CGM08 или
OSC08,
- модуль системной интеграции SIM08,
- модуль контроля напряжения питания
LVI08,
- модуль прерывания в контрольной точке
BREAK08,
- сторожевой таймер
COP08,
Модуль генератора импульсов
CGM08 генерирует импульсные сигналы, на базе
которых модуль системной интеграции SIM08
формирует тактовые импульсы. Выходные сигналы
модуля CGM08 определяют частоту тактовых импульсов
для работы процессора и периферийных модулей.
Модуль системной интеграции SIM08
выполняет ряд функций, обеспечивающих
совместную работу различных модулей
микроконтроллера. Он работает совместно с другими
служебными модулями: CGM08, LVI08, IRQ08, BREAK08,
COP08, выполняя формирование тактовых импульсов,
запуск микроконтроллера, организацию обслуживания
прерываний. Модуль LVI08 вырабатывает
сигнал перезапуска микроконтроллера при снижении
его напряжения питания ниже порогового
уровня. Модуль прерывания в контрольной
точке BREAK08 обеспечивает останов выполнения
программы в заданной контрольной точке и
используется в процессе отладки программного
обеспечения. Сторожевой таймер COP08
осуществляет контроль выполнения текущей
программы. Интерфейсные и периферийные модули
обеспечивают обмен данными и совместную работу
микроконтроллера с другими устройствами, входящими
в состав системы управления. В составе стандартной
библиотеки имеются следующие модули:
- параллельные 8-разрядные порты для
ввода-вывода данных,
- асинхронный последовательный порт SCI08,
- синхронный последовательный порт SPI08,
- модуль msCAN08, реализующий интерфейс с
шиной CAN,
- модуль USB08, реализующий интерфейс с шиной
USB,
- модуль BDLC08, реализующий интерфейс J1850,
- модуль управления внешним прерыванием
IRQ08,
- модуль контроля клавиатуры KBI08,
- модуль контроллера прямого доступа к памяти
DMA08,
- 8-разрядный аналого-цифровой преобразователь
ADC08,
- таймерный модуль TIM08,
- базовый таймер TBM08,
- таймер периодических прерываний PIT08,
- модуль широтно-импульсных модуляторов PWM08.
Двунаправленные порты
обеспечивают параллельный обмен данными с
внешними устройствами. Количество портов в
различных моделях микроконтроллеров составляет от
1 до 6. Большинство портов имеют по 8 линий
ввода-вывода, однако в зависимости от числа
выводов корпуса, в котором смонтирован
микроконтроллер, ряд портов может иметь
уменьшенное число выводов. Выводы параллельных
портов A, B, D, E совмещены с выводами других
периферийных модулей - KBI08, ADC08, TIM08-1,
TIM08-2, SPI08, SCI08 (рис.1). При работе
вышеуказанных модулей соответствующие выводы
параллельных портов служат для передачи сигналов,
необходимых для функционирования модуля, и не
могут использоваться для параллельного
ввода-вывода данных.
Последовательные
порты SCI08, SPI08 реализуют, соответственно,
последовательный асинхронный и синхронный обмен
данными между микроконтроллером и внешними
устройствами. Модули msCAN08, USB08,
BDLC08 реализуют последовательный обмен в
соответствующем стандарте. Модуль управления
внешним прерыванием IRQ08 принимает внешний
запрос прерывания, поступающий на вход IRQ#, и
обеспечивает различные варианты его
обслуживания. Модуль контроля клавиатуры
KBI08 обеспечивает формирование запроса
прерывания при поступлении сигнала на определенные
входы параллельных портов, которые обычно
используются для подключения
клавиатуры. Модуль прямого доступа к памяти
DMA08 позволяет осуществлять обмен данными
между внешним устройством и памятью без участия
CPU08. Модуль аналого-цифрового
преобразования ADC08 производит преобразование
значения потенциала, поступающего на один из
аналоговых входов, в 8- или 10-разрядное двоичное
число. Таймерный модуль TIM08 выполняет
широкий набор функций, включая фиксацию времени
поступления входных сигналов, выдачу выходных
сигналов в заданный момент времени, формирование
последовательности импульсов заданной частоты и
длительности. Модуль базового таймера
TBM08 обеспечивает периодическое формирование
запросов прерывания и имеет фиксированную сетку
частот. Модуль таймера периодических
прерываний PIT08 обеспечивает более широкие
возможности по формированию периодических
прерываний, чем TBM08. Модуль
широтно-импульсных модуляторов PWM08 позволяет
формировать сигналы управления трехфазными
электроприводами, причем имеется возможность
формирования трех пар комплиментарных
сигналов.
Средства отладки и
программирования микроконтроллеров
68НС08 Наличие встроенного интерфейса
отладки существенно облегчает выполнение этой
процедуры в процессе разработки устройств на базе
микроконтроллеров 68HC908. Ряд зарубежных и
отечественных производителей выпускают различные
аппаратные и программные средства, обеспечивающие
практическое освоение этих микроконтроллеров,
моделирование, программирование и отладку систем,
создаваемых на их основе. Эти средства достаточно
подробно рассмотрены в статье [3]. Поэтому ниже
ограничимся кратким описанием некоторых из
них. В настоящее время наиболее широкое
применение в практике проектирования устройств на
базе семейства 68HC908 получили внутрисхемные
симуляторы ICS08, которые позволяют писать и
отлаживать программы на языке ассемблера. В состав
симулятора входит аппаратная платформа,
выпускаемая фирмой Motorola, и программное
обеспечение фирмы P&E Microcomputer Systems
(http://www.pemicro.com/).
Аппаратные средства ICS08 позволяют связываться с
целевым микроконтроллером, находящимся в составе
отлаживаемой системы, или полностью замещать
микроконтроллер, выполняя его функции. В последнем
случае используются специальные эмулирующие
головки для подключения симулятора вместо
замещаемого микроконтроллера. Особенностью
программного пакета ICS08 является его
независимость от аппаратного обеспечения, поэтому
каждый разработчик может использовать его свободно
распространяемую версию, реализовав на плате
проектируемого устройства несложную схему для
перевода микроконтроллера в режим
отладки. Помимо средств отладки программ на
языке ассемблера существуют среды для написания и
отладки программ на языке C, например, система
CodeWarrior CW08 фирмы Metrowerks (http://www.metrowerks.com/). Для
изучения микроконтроллеров семейства 68HC08 и
получения практических навыков
программирования-отладки микропроцессорных систем
на их базе в научно-методическом центре "Моторола
- Микропроцессорные системы" МИФИ был разработан
лабораторный стенд LabKit08, реализованный на базе
8-разрядного микроконтроллера MC68HC908GP32,
который является одним из наиболее
распространенных изделий в этом семействе. Стенд
LabKit08 имеет стандартный интерфейс отладки,
позволяющий подключать его к персональному
компьютеру с помощью обычного интерфейсного кабеля
типа 0-модем и осуществлять программирование
микроконтроллера и отладку программ пользователя,
написанных на языке ассемблера, с помощью свободно
распространяемого программного обеспечения
ICS08GPGTZ фирмы P&E Microcomputer Systems.
Использование стенда совместно с интегрированной
средой разработки CodeWarrior CW08 фирмы
Metrowerks позволяет разрабатывать и отлаживать в
реальном масштабе времени программы, написанные на
языке С.
 Рис.4. Внешний вид
лабораторного стенда LabKit08 Стенд
(рис.4) содержит микроконтроллер MC68HC908GP32 и
набор периферийных устройств: двухстрочный
16-символьный ЖКИ, 12-кнопочную клавиатуру,
пьезодинамик, светодиодный индикатор, цифровой
термометр DS1722, термодатчик и датчик угла
поворота. Для подключения внешних устройств стенд
имеет порт обмена по интерфейсу RS-232,
8-разрядный параллельный порт и шесть каналов
8-разрядного АЦП, которые выведены на внешние
разъемы и доступны пользователю. В режиме
отладки микроконтроллер MC68HC908GP32 работает под
управлением встроенной программы-отладчика,
которая обеспечивает связь с компьютером.
Программы пользователя могут использовать
FLASH-память объемом 32 Кбайт и ОЗУ объемом 512
байт, расположенные на кристалле микроконтроллера
MC68HC908GP32. Программирование FLASH-памяти
осуществляется внутрисхемно, под управлением
встроенного отладчика. FLASH-память имеет
специальный механизм защиты содержимого от
несанкционированного доступа. На кристалле
MC68HC908GP32 расположены два 16-разрядных
двухканальных таймера/счетчика с программируемыми
функциями захвата, сравнения и формирования
ШИМ-сигнала на каждом канале. Выходы каналов
одного из таймеров подключены к линиям управления
пьезодинамиком и светодиодным индикатором, что
позволяет управлять этими устройствами по заданным
алгоритмам. Микроконтроллер имеет также таймер
временных меток и сторожевой таймер. Цифровой
термометр реализован на микросхеме DS1722, которая
обеспечивает измерение в рабочем диапазоне
температур 0-50 С c точностью до 0.0625 С. Обмен
данными с DS1722 осуществляется с помощью
встроенного в MC68HC908GP32 модуля
последовательного синхронного интерфейса
SPI. Учебные классы, оснащенные лабораторными
стендами LabKit08, используются в учебном процессе
ряда российских университетов (МИФИ, МИУ,
Казанский ГТУ). Эти стенды используются также в
организациях, разрабатывающих электронную
аппаратуру, для отладки прикладного программного
обеспечения в режиме реального времени и
моделирования различных фрагментов проектируемых
устройств и
систем.
Литература: 1. Шагурин
И.И. Микропроцессоры и микроконтроллеры фирмы
MOTOROLA. - М.: Радио и связь. - 1998. -
560с. 2. Ремизевич Т.В. Микроконтроллеры для
встраиваемых приложений: от общих подходов - к
семействам HC05 и HC08 фирмы MOTOROLA. - М.:
ДОДЭКА. - 2000. - 272с. 3. Т. Ремизевич, А.
Архипов, С. Овчинкин, И. Чепурин. Стратегии
отладки микроконтроллеров семейства HC908… или
многоликий внутрисхемный симулятор ICS08 // Chip
News. - 2002. - №6. - C.
5-12.
|