|
И. Шагурин, М. Мокрецов,
В. Ванюлин, П. Бердашкевич
Семейство 16-разрядных микроконтроллеров Motorola 68HC12: архитектура, основные
характеристики, средства программирования-отладки.
В конце 1997 года компания Motorola начала выпуск нового
семейства 16-разрядных микроконтроллеров 68HC12 [1]. Оно имеет ряд специфических
особенностей, заинтересовавших многих производителей электронной аппаратуры
различного назначения. К числу особенностей 68HC12 относятся:
- архитектурная совместимость с широко используемым семейством 8-разрядных
микроконтроллеров 68HC11 [2];
- расширенный набор команд и способов адресации, обеспечивающих реализацию
управления с использованием “нечеткой логики”, поддержку языков высокого
уровня и ряд других дополнительных возможностей;
- улучшенные технические характеристики: высокая производительность,
пониженное энергопотребление, расширенный объём адресуемой памяти, введение
сложнофункциональных периферийных устройств;
- наличие встроенных средств отладки, существенно упрощающих процесс
разработки систем на базе этих микроконтроллеров.
Семейство 68HC12 интенсивно расширяется. В настоящее
время в него входят семь моделей микроконтроллеров, отличающихся объёмом
внутренней памяти и номенклатурой размещённых на кристалле периферийных
устройств (табл. 1).
Характеристики
Количество:
линий ввода/вывода
выводов корпуса
Объём ROM, Кбайт
Объём Flash, Кбайт
Объём EEPROM, байт
Объём SRAM, Кбайт
Модуль таймера: число каналов/разрядность
Модуль ШИМ: число каналов/разрядность
Последовательные интерфейсы
Модуль АЦП: число каналов/разрядность
|
HC12A0
61
112
—
—
—
1
8/16
—
2 SCI,
SPI
8/8
|
HC812A4
91
112
—
—
4К
1
8/16
—
2 SCI,
SPI
8/8
|
HC912B32
63
80
—
32
768
1
8/16
4/8 или
2/16
SCI, SPI,
J1850
8/10
|
HC12BE32
63
80
32
—
768
1
8/16
4/8 или
2/16
SCI, SPI,
J1850
8/10
|
HC912BC32
63
80
—
32
768
1
8/16
4/8 или
2/16
SCI, SPI,
CAN
8/10
|
HC912D60
63
112
—
60
1К
2
8/16
4/8 или 2/16
2 SCI, SPI,
CAN
16/10
|
HC912DG128
85
112
—
128
2К
8
8/16
4/8 или 2/16
2 SCI, SPI,
I2C
16/10
|
Микроконтроллеры 68HC12A0, не имеющие внутренней памяти
программ, ориентированы на применение в системах, использующих для хранения
программ внешнюю память. Модель 68HC12BE32 с масочно-программируемой внутренней
памятью ёмкостью 32 Кбайт предназначена для производства изделий массовых
серий. Модель 68HC812A4 отличается большим количеством портов ввода/вывода
и использованием внутренней электрически-репрограммируемой памяти ёмкостью
4 Кбайт, которая служит обычно для хранения программ или их фрагментов.
В последние годы широкое распространение получили модели серии 68HC912,
содержащие на кристалле Flash-память ёмкостью от 32 до 128 Кбайт. Все
микроконтроллеры содержат на кристалле статическую память SRAM ёмкостью
от 1 до 8 Кбайт для хранения данных. Большинство моделей имеют также блок
энергонезависимой памяти EEPROM ёмкостью от 768 байт до 4 Кбайт. Для связи
с внешними устройствами микроконтроллеры имеют от 8 до 12 параллельных
портов и различные виды последовательных интерфейсов.
Микроконтроллеры семейства 68НС12 имеют модульную структуру,
которая реализуется из набора отдельных функциональных модулей, взаимодействующих
с помощью стандартизованной межмодульной шины. Набор этих модулей включает:
- 8-канальный таймерный модуль;
- модуль формирования ШИМ-сигналов с 2 или 4 выходными каналами;
- модуль последовательного обмена, включающий один или два асинхронных
интерфейса (SCI) и синхронный интерфейс (SPI);
- модуль интерфейса CAN-шины;
- модуль интерфейса I2C-шины;
- модуль последовательного обмена по протоколу J1850;
- многоканальный АЦП.
Структура и функционирование микроконтроллеров HC12
Микроконтроллеры семейства 68HC12 содержат на кристалле
16-разрядный процессор (CPU12), внутреннюю память одного или нескольких
типов (ROM, FLASH, EEPROM, SRAM), модуль интеграции (LIM) и некоторый
набор периферийных модулей. В качестве примера на рис. 1 представлена
структура микроконтроллера МС68НС812А4.
В системах и устройствах микроконтроллеры могут работать
в однокристальном (Single-Chip) или расширенном (Expanded)
режимах. В однокристальном режиме микроконтроллер использует для хранения
программ и данных только внутреннюю память. В расширенном режиме к микроконтроллеру
подключается внешняя память, обмен с которой производится по 8- или 16-разрядной
системной шине данных. При этом 8-разрядные порты ввода/вывода A и B служат
для выдачи 16 разрядов адреса ADDR15-0, порты C и D — для пересылки 16
разрядов данных DATA15-0 (при 8-разрядной системной шине используется
только порт C), порт E — для передачи сигналов управления обменом. Таким
образом, в расширенном режиме количество портов для обмена данными с внешними
устройствами значительно сокращается. Микроконтроллеры 68НС12А0 и 68НС812А4
при работе в расширенном режиме обеспечивают возможность увеличения адресного
пространства до 4 Мб памяти команд и 1 Мб памяти данных. Кроме того, микроконтроллеры
реализуют четыре различных специальных режима, которые используются на
стадиях отладки программы и тестирования кристалла.
CPU12 является высокопроизводительным 16-разрядным процессором,
который выполняет обработку битовых, 8- и 16-разрядных операндов. Регистровая
модель CPU12 полностью аналогична модели процессорного ядра микроконтроллеров
68HC11 и содержит семь программно-доступных регистров (рис. 2). Два 8-разрядных
регистра-аккумулятора A и B используются для хранения операндов и результата
операции. При выполнении действий над 16-разрядными операндами эти регистры
объединяются в один 16-разрядный аккумулятор D. Два 16-разрядных индексных
регистра X и Y используются для формирования адреса операнда при выполнении
операций с индексной адресацией. Указатель стека SP содержит 16 разрядов
и может использоваться не только для работы со стеком, но и для реализации
индексной адресации. Программный счётчик PC содержит адрес следующей выполняемой
команды. Этот регистр также служит для формирования адреса операнда в
ряде вариантов индексной адресации. Регистр условий CCR содержит значения
признаков переноса (С), переполнения (V), нуля (Z), отрицательного результата
(N) и переноса между тетрадами (H), устанавливаемых по результатам выполнения
операции. Также CCR содержит биты маскирования прерываний I и X и управляющий
бит S, который при установке значения S = 1 запрещает перевод микроконтроллера
в режим останова по команде STOP.
Внутренняя шина адреса микроконтроллеров семейства 68НС12
позволяет линейно адресовать 64 К памяти. В этом адресном пространстве
располагаются блок ОЗУ, блок ПЗУ (EEPROM, FLASH или ROM) и блок регистров
периферийных устройств и служебных регистров ёмкостью 512 байт. Остальное
адресное пространство отводится для работы с внешней памятью. Распределение
адресного пространства между различными блоками памяти зависит от режима
функционирования микроконтроллера (рис. 3). Пользователь может изменить
положение блоков внутренней памяти в адресном пространстве путём записи
нового значения в специальные регистры, содержащие начальные адреса этих
блоков.
Ряд микроконтроллеров семейства (МС68НС12А0, МС68НС812А4)
имеет возможность увеличить адресное пространство в расширенном режиме
до 4 Мб памяти команд и 1 Мб памяти данных. Увеличение объёма адресуемой
памяти осуществляется путём использования окон расширения, расположенных
в стандартном 64-Кб пространстве памяти, и шести дополнительных адресных
линий ADDR21-16. Адресация внешней памяти объёмом свыше 64 Кб осуществляется
посредством механизма страничной трансляции, для чего каждое окно расширения
имеет свой регистр, содержащий адрес текущей страницы. При обращении по
адресу, попадающему в окно расширения, соответствующие разряды этого регистра
выводятся на старшие линии шины адреса ADDR21-16.
Для организации банков внешней памяти наряду со страничной
адресацией микроконтроллеры могут формировать сигналы выборки кристалла
CS. Эти сигналы становятся активными при обращении по адресам, расположенным
в определённых разделах адресного пространства. Для вывода сигналов CS
используются линии порта F.
Микроконтроллеры семейства 68HC12 могут работать в специальном
режиме отладки BDM (Background Debug Mode), который обеспечивает
выполнение основных процедур отладки — просмотр и модификацию содержимого
регистров и ячеек памяти и ряд других функций. Вход в режим BDM обеспечивается
с помощью команды BGND и может быть осуществлён из любого режима функционирования.
Часть команд BDM может выполняться без перевода микроконтроллера в режим
отладки. После перевода микроконтроллера в этот режим процессор работает
под управлением программы-отладчика, хранящейся во внутреннем ПЗУ, которое
отображается на карту памяти только в режиме BDM (рис. 3). Отличительные
черты BDM для данного семейства: простой набор команд отладки и использование
однопроводного интерфейса для взаимодействия с системой отладки.
Процессор CPU12 реализует ряд прерываний, для каждого
из которых задается 16-разрядный вектор, указывающий адрес входа в соответствующую
процедуру обработки. Таблица векторов прерываний занимает старшие 128
байт адресного пространства (табл. 2). Старшие шесть позиций таблицы отведены
под векторы начальной загрузки и немаскируемых прерываний, а остальные
распределяются между маскируемыми источниками прерываний. При переходе
к обслуживанию прерываний в стеке сохраняется содержимое регистров PC,
Y, X, A, B, CCR, которое восстанавливается при возврате из подпрограммы
обслуживания по команде RTI.
Адрес вектора
$FFFE-F
$FFFC-D
$FFFA-B
$FFF8-9
$FFF6-7
$FFF4-5
$FFF2-3
$FFF0-1
$FFEE-F
$FFEC-D
$FFEA-B
$FFE8-9
$FFE6-7
$FFE4-5
$FFE2-3
$FFE0-1
$FFDE-F
$FFDC-D
$FFDA-B
$FFD8-9
$FFD6-7
$FFD4-5
$FFD2-3
$FFD0-1
$FFCE-F
$FF80-D
|
Вид прерывания
Установка в начальное состояние (Reset)
Прерывание от схемы контроля тактового сигнала
Прерывание от сторожевого таймера
Неправильный код операции
Программное прерывание (команда SWI)
Внешний запрос на входе XIRQ
Внешний запрос на входе IRQ или сигнал на линии порта D
Периодическое прерывание от таймера
Запрос от таймера (канал 0)
Запрос от таймера (канал 1)
Запрос от таймера (канал 2)
Запрос от таймера (канал 3)
Запрос от таймера (канал 4)
Запрос от таймера (канал 5)
Запрос от таймера (канал 6)
Запрос от таймера (канал 7)
Переполнение таймера
Переполнение счётчика импульсов
Сигнал на входе счётчика импульсов
Запрос от SPI
Запрос от SCI 0
Запрос от SCI 1
Запрос от АЦП
Внешний сигнал на линии порта J
Внешний сигнал на линии порта H
Зарезервировано
|
Маскирование
нет
нет
нет
нет
нет
бит X
бит I
бит I
бит I
бит I
бит I
бит I
бит I
бит I
бит I
бит I
бит I
бит I
бит I
бит I
бит I
бит I
бит I
бит I
бит I
|
К немаскируемым источникам прерываний относятся: сигнал
сброса на входе Reset, прерывание от схемы контроля частоты тактового
сигнала, прерывание от сторожевого таймера, попытка выполнить неправильную
команду, программное прерывание по команде SWI, внешний сигнал прерывания
на входе XIRQ. Эти прерывания перечислены в порядке убывания приоритета
их обслуживания. Обращение к одному из первых трёх векторов вызывает выполнение
процедуры начальной загрузки микроконтроллера. Обслуживание запроса прерывания
XIRQ производится в том случае, если в регистре CCR установлено значение
бита X = 0.
Разрешение обслуживания маскируемых прерываний осуществляется
путём установки в 0 бита I в регистре CCR. К маскируемым источникам прерываний
относятся: внешний сигнал прерывания на входе IRQ, прерывания от таймера,
прерывания от блока последовательного интерфейса и от АЦП. В отличие от
немаскируемых прерываний приоритет их обслуживания можно изменить с помощью
специального регистра установки приоритетов.
Микроконтроллеры семейства 68HC12 работают на тактовой
частоте до 8 МГц и выпускаются в двух модификациях: для работы при напряжении
питания 4,5–5,5 и 2,7–3,3 В. Блок фазовой автоподстройки частоты (ФАПЧ),
расположенный на кристалле микроконтроллера, позволяет программно задавать
частоту системы. Схема контроля тактового сигнала вызывает перезапуск
(начальную загрузку) микроконтроллера, если его тактовая частота оказывается
ниже 100 КГц. Перезапуск осуществляется также по сигналу сторожевого таймера,
контролирующего выполнение программы.
Значительное снижение энергопотребления микроконтроллеров
обеспечивается в режимах ожидания (Wait Mode) и останова (Stop
Mode), в которые микроконтроллер переходит по командам WAIT и STOP
соответственно. В режиме ожидания останавливается работа процессора, но
продолжается функционирование периферийных модулей: таймера, последовательного
интерфейса, АЦП, сторожевого таймера, а также схемы контроля прерываний.
Выход из режима ожидания обеспечивается при поступлении запроса прерывания
или внешнего сигнала начальной загрузки (Reset). В режиме останова полностью
прекращается функционирование процессора и периферийных модулей. При этом
возврат в рабочий режим осуществляется внешними сигналами Reset или IRQ.
Кроме того, для возврата из режимов ожидания и останова можно использовать
сигналы KWD7-0, KWJ7-0, KWH7-0, поступающие на выводы портов D, J, H,
запрограммированные соответствующим образом. В режиме ожидания потребление
мощности составляет 40–50% от мощности, потребляемой в рабочем режиме.
В режиме останова ток питания снижается до нескольких десятков микроампер.
Способы адресации и система команд
Микроконтроллеры семейства 68НС12 являются 16-разрядным
развитием 8-разрядного семейства 68HC11. Программный код 68НС12 снизу
вверх совместим с кодом 68HC11 на уровне исходного текста. Поэтому разработчики,
применяющие в качестве элементной базы представителей этого популярного
8-разрядного семейства, могут без особых проблем перейти на 16-разрядные
микроконтроллеры, используя имеющиеся средства программирования для 68HC11
и ранее разработанное программное обеспечение.
Процессор CPU12 поддерживает все способы адресации, используемые
семейством 68НС11, и реализует 7 дополнительных вариантов индексной адресации.
Обеспечиваются следующие способы адресации:
- регистровая (операнд располагается в одном из регистров процессора);
- непосредственная (8- или 16-разрядный операнд располагается во втором
и третьем байтах команды);
- прямая (8-разрядный адрес операнда задаётся во втором байте команды);
- расширенная (16-разрядный адрес операнда располагается во втором и
третьем байтах команды);
- относительная (адрес операнда образуется путём сложения содержимого
программного счётчика PC и заданного в команде 8- или 16-разрядного
смещения);
- индексная с 5-разрядным смещением (адрес операнда образуется путём
сложения содержимого регистра X, Y, SP или PC с 5-разрядным смещением);
- индексная с преддекрементом (перед выборкой операнда содержимое заданного
в команде регистра X, Y или SP уменьшается на число от 1 до 8);
- индексная с прединкрементом (перед выборкой операнда содержимое заданного
регистра X, Y или SP увеличивается на число от 1 до 8);
- индексная с постдекрементом (после выборки операнда содержимое заданного
регистра X, Y или SP уменьшается на число от 1 до 8);
- индексная с постинкрементом (после выборки операнда содержимое заданного
регистра X, Y или SP увеличивается на число от 1 до 8);
- индексная со смещением, расположенным в аккумуляторе (адрес операнда
образуется путём сложения содержимого заданного регистра X, Y, SP или
PC с содержимым одного из аккумуляторов);
- индексная с 9-разрядным смещением (адрес операнда образуется путём
сложения содержимого заданного регистра X, Y, SP или PC с 9-разрядным
смещением);
- индексная с 16-разрядным смещением (адрес операнда образуется путём
сложения содержимого заданного регистра X, Y, SP или PC с 16-разрядным
смещением);
- косвенно-индексная с 16-разрядным смещением (адрес операнда располагается
в ячейке памяти с адресом, который получается путем сложения содержимого
заданного регистра X, Y, SP или PC с 16-разрядным смещением);
- косвенно-индексная со смещением, расположенным в регистре D (адрес
операнда располагается в ячейке памяти с адресом, который получается
путём сложения содержимого заданного регистра X, Y, SP или PC с содержимым
регистра D).
Процессор CPU12 выполняет набор из 208 команд над операндами,
расположенными в регистрах и ячейках памяти.
Система команд CPU12 является расширенным набором команд
семейства 68HC11 и включает в себя команды пересылки данных, команды арифметических
и логических операций, сравнения и сдвигов, битовые команды, команды управления
программой и управления процессором, а также группу дополнительных команд
для обработки табличных данных и реализации “нечёткой логики”.
Группа команд пересылки включает в себя команды загрузки
регистров процессора (LDAA, LDAB, LDD, LDS, LDX, LDY), сохранения их содержимого
в памяти (STAA, STAB, STD, STS, STX, STY) и команды пересылки и обмена
данными между различными регистрами (TAB, TAP, TBA, TFR, TPA, TSX, TSY,
TXS, TYS, EXG, XGDX, XGDY). К этой группе относятся также команды, выполняющие
запись содержимого регистров A, B, C, D в стек (PSHA, PSHB, PSHX, PSHY)
и загрузку этих регистров из стека (PULA, PULB, PULX, PULY). Команды очистки
устанавливают в 0 содержимое регистров-аккумуляторов и ячеек памяти (CLRA,
CLRB, CLR). Дополнительно введены команды MOVB и MOVW, позволяющие осуществлять
пересылку 8- и 16-разрядных данных из памяти в память, команды LEAS, LEAX,
LEAY, выполняющие вычисление эффективного адреса и его загрузку в регистры
SP, X или Y, а также команды для записи содержимого регистров D, CCR в
стек (PSHD, PSHC) и их загрузки из стека (PULD, PULC).
Группа команд арифметических операций позволяет выполнять
сложение и вычитание содержимого двух регистров или регистра и ячейки
памяти с учётом или без учёта признака переноса (ABA, ABX, ABY, ADCA,
ADCB, ADDA, ADDB, ADDD, SBA, SBCA,SBCB, SUBA, SUBB, SUBD), производить
коррекцию результата сложения двоично-десятичных чисел (DAA), выполнять
инкремент и декремент содержимого ячейки памяти или регистра (DEC, DECA,
DECB, DES, DEX, DEY, INC, INCA, INCB, INS, INX, INY), изменять его знак
(NEG, NEGA, NEGB). К командам умножения 8х8 (MUL) и деления 16/8 (FDIV,
IDIV, IDIVS), имеющимся в микроконтроллерах семейства 68HC11, добавлены
команды 16-разрядного умножения 16x16 (EMUL, EMULS), умножения 16x16 с
накоплением (EMACS), деления 32/16 (EDIV, EDIVS) и знакового расширения
(SEX).
Команды сравнения выполняют установку признаков N, Z,
V, C в регистре CCR в соответствии с результатом вычитания содержимого
двух операндов, хранящихся в регистрах-аккумуляторах или регистре и ячейке
памяти (CBA, CMPA, CMPB, CPD, CPS, CPX, CPY). Команды тестирования устанавливают
значения признаков N, Z в соответствии с содержимым ячейки памяти или
регистра-аккумулятора (TST, TSTA, TSTB). Команды побитового тестирования
устанавливают признаки N, Z в соответствии с результатом логической операции
И над содержимым регистра-аккумулятора и ячейки памяти (BITA, BITB).
Команды логических операций реализуют побитовые операции
И, ИЛИ, Исключающее ИЛИ над содержимым регистра и ячейки памяти (ANDA,
ANDB, ANDCC, EORA, EORB, ORAA, ORAB, ORCC) и инвертирование содержимого
регистра или ячейки памяти (COM, COMA, COMB).
Группа команд сдвига включает команды одноразрядных арифметических,
логических и циклических сдвигов, выполняемых над содержимым регистров-аккумуляторов
и ячейки памяти (ASLA, ASLB, ASLD, ASRA, ASRB, LSRA, LSRB, LSRD, ROLA,
ROLB, RORA, RORB, ASL, ASR, LSR, ROL, ROR).
Команды битовых операций обеспечивают установку в 0 или
1 заданного бита в ячейке памяти (BCLR, BSET) и установку требуемого значения
признаков C, I, V в регистре CCR (CLC, CLI, CLV, SEC, SEI, SEV).
Команды управления программой реализуют условные и безусловные
ветвления (JMP, Bcc, LBcc, BRA, LBRA, BRCLR, BRSET), организацию циклов
(DBNE, DBNQ, IBNE, IBNQ), вызов подпрограмм (JSR) и выход из подпрограммы
(RTS) или процедуры обработки прерывания (RTI). Условиями ветвления могут
быть значения признаков Z (нулевой или ненулевой результат), N (положительный
или отрицательный результат), результаты выполнения команд сравнения операндов
со знаком или без знака (>, >=, <, <=). В эту группу входит
также команда программного прерывания (SWI).
Для управления процессором служат команды, переводящие
его в режим ожидания и останова (WAIT, STOP), в режим отладки (BGND),
а также команда отсутствия операций (NOP).
В дополнительную группу команд, реализуемых процессором
CPU12, входят команды интерполяции табличных данных (ETBL, TBL), которые
позволяют вычислить значение линейной функции в заданной промежуточной
точке. При обработке табличных данных обычно используются также команды,
позволяющие выбрать минимальное или максимальное из двух чисел, расположенных
в регистре-аккумуляторе и ячейке памяти (EMIND, EMINM, MINA, MINM, EMAXD,
EMAXM, MAXA, MAXM).
Процессор CPU12 аппаратно поддерживает операции “нечеткой
логики”, что позволяет эффективно реализовывать на базе микроконтроллеров
семейства HC12 соответствующие системы контроля. Группа команд “нечёткой
логики” включает четыре команды. Команда MEM производит фазификацию, выполняя
преобразование точных значений входных переменных в значения лингвистических
переменных в соответствии с функциями принадлежности из базы знаний. Далее
с помощью команд REVW и REV проводится непосредственно обработка полученных
значений по заданному алгоритму с учётом или без учёта весовых коэффициентов
правил обработки. С помощью команды WAV осуществляется дефазификация,
в результате которой осуществляется переход от нечётких значений выходной
переменной к точным выходным значениям, обеспечивающим требуемое управление
системой.
Команды имеют длину от 1 до 6 байт. Выполнение большинства
команд занимает от 2 до 6 тактов. Большее время выполнения имеют команды
деления (11–12 тактов), умножения с накоплением (13 тактов) и прерывания
(8–11 тактов).
Набор периферийных устройств
Из периферийных устройств микроконтроллеры семейства
68HC12 содержат модули параллельного и последовательного ввода/вывода
данных, таймерный модуль, многоканальный аналого-цифровой преобразователь
(АЦП), модуль формирования сигналов с широтно-импульсной модуляцией (ШИМ).
Процессор CPU12 взаимодействует с этими модулями, обращаясь к их регистрам,
которые после начальной загрузки микроконтроллера расположены в первых
512 позициях адресного пространства (рис. 3).
Порты ввода/вывода
Микроконтроллеры семейства 68НС12 имеют в своём составе
от 8 до 12 параллельных портов ввода/вывода. Эти порты могут служить для
обмена данными с внешними устройствами или выполнять определённые служебные
функции. Например, при работе микроконтроллера в расширенном режиме порты
A, B, C, D, E служат для организации обмена с внешней памятью. При использовании
порта для ввода/вывода данных направление передачи для каждого отдельного
вывода программируется путём загрузки соответствующего содержимого в регистр
управления этого порта. Выходные буферные каскады портов могут программироваться
на работу со стандартной или повышенной задержкой переключения. При увеличении
задержки переключения достигается снижение потребления мощности и шумов
на линиях. Можно также запрограммировать подключение “подтягивающих” резисторов
к выводам порта, используемым в качестве входов.
Модуль последовательного интерфейса
Для организации последовательного обмена в состав микроконтроллеров
включен модуль последовательного интерфейса, который состоит из одного
или двух блоков асинхронного обмена SCI и блока синхронного обмена SPI.
В состав этого модуля входит 8-разрядный порт S, отдельные линии которого
служат для реализации последовательного обмена, а неиспользуемые линии
могут служить для параллельного ввода/вывода данных. Блок SCI позволяет
осуществлять обмен 8- или 9-разрядными данными по линиям связи с помощью
протокола, совместимого с RS-232. Скорость передачи программируется и
может достигать 38400 бит/c при тактовой частоте 8 МГц. Блок SPI обычно
используется для обмена с периферийными устройствами и другими микроконтроллерами.
В некоторых моделях микроконтроллеров имеются дополнительные модули последовательного
обмена, реализующие протоколы CAN, I2C или J1850 (табл. 1).
Таймерный модуль
Этот модуль содержит 16-разрядный счётчик с программируемым
делителем частоты, 8 каналов, индивидуально настраиваемых на работу в
режиме захвата или в режиме сравнения, и 16-разрядный счётчик внешних
импульсов. Сигналы захвата-сравнения поступают на выводы 8-разрядного
порта T. Неиспользуемые линии этого порта могут служить для ввода/вывода
данных. Таймерный модуль может использоваться для генерации периодических
прерываний, измерения параметров входных сигналов или генерации выходных
сигналов с широтно-импульсной модуляцией (ШИМ) без вмешательства центрального
процессора.
Модуль формирования ШИМ-сигналов
В дополнение к возможностям генерации ШИМ-сигнала с помощью
таймерного модуля, в ряде моделей микроконтроллеров имеется отдельный
модуль формирования ШИМ-сигналов, оптимизированный для применения в системах
управления электроприводом. Данный модуль обеспечивает работу двух выходных
каналов с 16-разрядной модуляцией ШИМ-сигналов (65536 значений скважности
формируемых импульсов) или четырёх каналов с 8-разрядной модуляцией (256
значений скважности импульсов). Возможны комбинации сигналов с 16-разрядной
и 8-разрядной модуляцией. Каждый из каналов имеет индивидуальный регистр
настройки, что позволяет независимо программировать частоту и длительность
выходных импульсов.
Модуль АЦП
В состав микроконтроллеров семейства 68НС12 входит 8-
или 10-разрядный АЦП последовательного приближения, который имеет 8 или
16 входных каналов. АЦП реализует 8 различных режимов преобразования.
При работе в режимах без сканирования каналов АЦП отключается по окончании
процесса преобразования. В режимах со сканированием каналов АЦП функционирует
непрерывно, последовательно обслуживая входные каналы. Для работы АЦП
не требуется подключение дополнительных внешних цепей. Опорное напряжение
подаётся на соответствующие выводы процессора. Имеется также возможность
подачи напряжения питания АЦП от отдельного стабилизированного источника.
Средства отладки и программирования микроконтроллеров
68НС12
Для микроконтроллеров семейства 68НС12 существует достаточное
количество средств разработки, поставляемых как компанией Motorola, так
и третьими фирмами.
Компания Motorola (www.mot-sps.com)
предлагает два вида программно-аппаратных средств отладки: набор отладочных
плат и устройство для внутрисхемной отладки по последовательному интерфейсу
SDI. Отладочные платы, выпускаемые для каждой модели микроконтроллера,
предназначены для макетирования разрабатываемой системы и отладки программ
пользователя, написанных для данного микроконтроллера. В качестве примера
можно указать платы 68EVB912B32, M68HC812A4EVB и M68KIT912DG128, предназначенные
для работы с микроконтроллерами 68HC912B32, 68HC812A4 и 68HC912DG128,
соответственно. Они содержат микроконтроллер, набор периферийных модулей
и встроенный монитор, с помощью которого осуществляется связь отладочной
платы с терминалом через один из последовательных портов микроконтроллера.
Платы могут использоваться в качестве прототипной системы, для чего на
них имеется монтажное поле.
Интерфейс SDI использует внутренние средства отладки
(режим BDM), реализованные в микроконтроллерах семейства 68HC12. В состав
интерфейса входят кабель с адаптером, который подключается к BDM-порту
микроконтроллера и COM-порту компьютера. Программное обеспечение интерфейса
позволяет выполнять внутрисхемную отладку и программирование микроконтроллера.
Аналогичные средства отладки поставляются рядом других
фирм. Например, немецкая фирма Electronic Laden (www.elektronikladen.de)
поставляет микроконтроллерные платы (например, Card12.D60), которые содержат
различные модели микроконтроллеров семейства 68HC12 и схемы, необходимые
для реализации необходимых интерфейсов.
Среди производителей программных средств отладки для
семейства 68HC12 cледует отметить компании Cosmic Software и Hiware. Компания
Cosmic Software (www.cosmic-software.com)
предлагает кросс-компилятор Си и отладчик ZAP. Эти программы имеют удобный
интерфейс пользователя и работают в среде Windows95/98. Компания Hiware
(www.hiware.com) предлагает
макроассемблеры (HI300301), компиляторы языков Си (HI200301) и Си++ (HI200311),
симуляторы (HI400816, HI400843, HI400844) и отладчики (HI400800, HI400801
HI400822), работающие с аппаратными средствами различных производителей.
Эффективным и недорогим средством разработки и отладки
систем на базе микроконтроллеров семейства 68HC12 является аппаратно-программный
комплекс 68HC12DK, разработанный в научно-методическом центре “Моторола-Микропроцессорные
системы” МИФИ (www.micro.mephi.ru/motlab).
Основой комплекса является BDM-адаптер, который обеспечивает взаимодействие
системы отладки, реализованной на базе компьютера, и платы пользователя.
Адаптер подключается к компьютеру по интерфейсу RS-232 и выполняет трансляцию
команд системы отладки в команды BDM-режима, которые управляют работой
отлаживаемой системы, реализуемой на базе микроконтроллера 68НС12.
Интегрированный отладчик HC12Debug, входящий в состав
комплекса, отображает в удобной форме все ресурсы процессора и содержимое
ячеек внешней памяти при работе в расширенном режиме. Содержимое регистров
процессора и памяти отображается в отдельных окнах, число которых ограничено
только возможностями подсистемы памяти компьютера. Пользователь может
изменять содержимое регистров или ячеек памяти. Являясь интегрированной
оболочкой, HC12Debug обеспечивает возможность редактирования исходного
текста на языке ассемблера и его компиляции. Вместе с комплексом поставляется
стандартный ассемблер, однако при желании, к HC12Debug можно подключить
любой другой ассемблер.
После компиляции производится загрузка программы в память
микроконтроллера или в микросхемы внешней памяти, установленные в системе,
для её дальнейшей отладки. Комплекс обеспечивает стандартный набор функций
отладки: прогон программы, отладка по шагам, использование точек останова
и другие. В экранных окнах отображается состояние ресурсов процессора,
дизассемблированный код программы, значения переменных.
Для повышения эффективности и ускорения процесса разработки
систем на базе семейства 68HC12 служит плата развития 68HC812A4DB, которая
в совокупности с BDM-адаптером и HC12Debug позволяет производить макетирование
систем и отладку аппаратного и программного обеспечения. Плата размером
130x110 мм. содержит микроконтроллер МС68НС812А4, внешнюю память объёмом
до 2 Мб (ОЗУ, ПЗУ или смешанная), два порта, обеспечивающих обмен по интерфейсу
RS-232, и микросхему программируемой логики EPM7032SLC44, реализующую
необходимые системные сигналы. Для удобства подключения периферийных устройств
все основные сигналы микроконтроллера выведены на внешние разъёмы, что
даёт возможность использовать плату 68HC812A4DB в качестве модуля управления
в разрабатываемой системе. В режиме отладки плата развития соединяется
с системой отладки посредством BDM-адаптера. Установка требуемого режима
микроконтроллера осуществляется с помощью перемычек, расположенных на
плате.
На рис. 5 показан внешний вид платы 68HC812A4DB в процессе
отладки разрабатываемой системы. Вместе со средствами программного контроля
состояния системы при отладке используются специализированные инструментальные
средства — осциллограф смешанных сигналов HP5464D и программируемый генератор
сигналов HP33120A производства компании Agilent Technologies (www.agilent-tech.com).
Осциллограф HP5464D, который содержит синхронно работающие двухканальный
цифровой осциллограф с полосой пропускания 100 МГц и 16-канальный логический
анализатор с частотой дискретизации 400 МГц и глубиной контроля до 2 М
точек, обеспечивает одновременный контроль логического состояния и значений
аналоговых сигналов в различных точках системы. Этот прибор позволяет
определять причины возникновения помех на шинах питания, выявлять наличие
импульсных помех в линиях связи, контролировать совместную работу аналоговых
и цифровых устройств, отлаживать процедуры последовательного обмена данными
при искажении формы передаваемых сигналов, а также решать многие другие
проблемы, которые трудно разрешимы другими способами.
Аппаратно-программный комплекс 68HC12DK является универсальным
средством, который можно эффективно использовать для создания прототипов
проектируемых систем на базе микроконтроллеров 68HC12, разработки и отладки
их программного обеспечения. Комплекс может также служить для изучения
микроконтроллеров этого семейства и практического освоения работы с ними,
а плата развития 68HC812A4DB может применяться в качестве одного из рабочих
модулей разрабатываемой системы.
Литература
1. Ахметов М. 16-разрядные микроконтроллеры Hitachi,
Mitsubishi, Motorola, NEC, Toshiba // Chip News. — 2000. — № 5. — C. 3–11.
2. Шагурин И.И. Микропроцессоры и микроконтроллеры фирмы MOTOROLA.
— М.: Радио и связь. — 1998. — 560 с.
|