Научная статья на тему 'Микроконтроллеры mc68hc908jl3/jk3/jk1 фирмы Motorola'

Микроконтроллеры mc68hc908jl3/jk3/jk1 фирмы Motorola Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
743
86
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Емелин Александр

Фирма Motorola явяляется одним из крупнейших мировых производителей микропроцессоров и микроконтроллеров. До недавнего времени продукция фирмы в основном была ориентирована на крупных заказчиков, поэтому немногие российские разработчики с ней хорошо знакомы.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Микроконтроллеры mc68hc908jl3/jk3/jk1 фирмы Motorola»

Компоненты и технологии, № 6'2002

Микроконтроллеры MC68HC908JL3/JK3/JK1

фирмы Motorola

Фирма Motorola является одним из крупнейших мировых производителей микропроцессоров и микроконтроллеров. До недавнего времени продукция фирмы в основном была ориентирована на крупных заказчиков, поэтому немногие российские разработчики с ней хорошо знакомы. Большим шагом в сторону малого потребителя стал выпуск на рынок микроконтроллеров семейства MC68HC908.

Эти кристаллы имеют внутрисхемно загружаемую флэш-память программ и возможность внутрисхемной отладки. Впервые фирма Motorola санкционировала выпуск бесплатного программного обеспечения для поддержки своих изделий.

Александр Емелин

design@cec-mc.ru

Контроллеры построены на базе популярного 8-разрядного процессорного ядра НС08, являющегося развитием НС05 и имеющего следующие особенности:

• напряжение питания 3 или 5 В;

• частота внутренней шины до 8 МГц;

• объединенная память программ и данных (архитектура фон Неймана);

• 16 режимов адресации;

• 16-разрядные индексный регистр и указатель стека;

• пересылки из памяти в память;

• аппаратное умножение 8x8 разрядов;

• аппаратное деление 16/8 разрядов;

• аппаратная поддержка двоично-десятичной арифметики.

Микроконтроллеры МС68НС908ІЬ3, ІК3 и ІК1 отличаются только количеством выводов и объемом флэш-памяти (табл. 1):

Таблица 1. Различия микроконтроллеров МС68НС908Л.3, Ж3 и Ж1

Количество выводов (портов) Объем флэш-памяти, байт

MC68HC908JL3 28 (23) 4096

MC68HC908JK3 20 (15) 4096

MC68HC908JK1 20 (15) 1536

Дальнейшее описание будем проводить на примере 1Ь3, с соответствующими поправками оно будет справедливо и для остальных контроллеров.

Существуют также версии данных микроконтроллеров, предназначенные для работы с ИС-генерато-ром. Они имеют обозначение НИС вместо НС.

Способы адресации и система команд

Процессор имеет следующие регистры:

• 8-разрядный аккумулятор А;

• 16-разрядный индексный регистр Н:Х;

• 16-разрядный указатель стека 8Р;

• 16-разрядный счетчик команд РС;

• 8-разрядный регистр флагов ССИ, включающий следующие биты:

- С — флаг переноса;

- Z — флаг нулевого результата;

- N — флаг отрицательного результата;

- V — флаг переполнения;

- H — флаг переноса из 3 в 4 разряд;

- I — флаг маскирования прерываний.

Способы адресации процессора HC08 приведены в

таблице 2. Особенностью системы адресации 8-разрядных процессоров фирмы Motorola является широкое использование индексных регистров. Для многих операций аргумент может быть выбран непосредственно из памяти. Это удобно при сокращенном регистровом банке. Перечисленные особенности позволяют классифицировать HC08 как CISC-ядро.

Таблица 2. Способы адресации

Обозна- Для одноадресных команд

чение Название Операнд

REG Регистровая Операнд - регистр А или X

IMM Непосредственная Байт данных в телекоманды

DIR Прямая Байт адреса в телекоманды

EXT Расширенная 2 байта адреса в телекоманды

IX Индексная без смещения Адрес операнда в Н:Х

IX+ Индексная без смещения с инкрементом Н:Х инкрементируется после выполнения команды

IX1 + Индексная с 1-байтовым смещением и инкрементом Адрес операнда образуется путем сложения содержимого Н:Х и смещения

IX2 Индексная с 2-байтовым без смещения

REL Относительная (1-байтное смещение) Адрес операнда образуется путем сложения содержимого РС и смещения

SP1 Указатель стека с 1-байтовым смещением Адрес операнда образуется путем сложения содержимого $Р и смещения

SP2 Указатель стека с 2-байтовым смещением

| для команды пересылки:

Источник Приемник

DD Прямая Прямая

IMD Непосредственная Прямая

IX+D Индексная без смещения с инкрементом Прямая

DIX+ Прямая Индексная без смещения с инкрементом

Компоненты и технологии, № 6'2002

Система команд процессора включает команды арифметико-логических операций, пересылки, передачи управления. Все команды процессора одноадресные, вторым операндом (если он предусмотрен) в большинстве случаев выступает аккумулятор. Исключение составляет команда пересылки МОУ, способы адресации для которой также приведены в таблице 2.

В таблице 3 приведены команды арифметико-логических операций. Помимо стандартных логических операций, и сдвигов в систе-

Таблица 3. Арифметико-логические команды

Мнемо- код Операция Виды адресации

ADC Сложение с учетом переноса IMM, DIR, EXT, IX2, IX1, IX, SP1, SP2

ADD Сложение IMM, DIR, EXT, IX2, IX1, IX, SP1, SP2

AIS Добавить непосредственный операнд к БР IMM

AIX Добавить непосредственный операнд к Н:Х IMM

AND Логическое И IMM, DIR, EXT, IX2, IX1, IX, SP1, SP2

ASL Арифметический сдвиг влево REG, DIR, IX1, IX, SP1

ASR Арифметический сдвиг вправо REG, DIR, IX1, IX, SP1

BCLR Очистка битов DIR

BIT Тестирование битов IMM, DIR, EXT, IX2, IX1, IX, SP1, SP2

BSET Установка битов DIR

CLC Очистка флага С -

CLI Очистка флага I -

CLR Очистка байта REG, DIR, IX1, IX, SP1

CMP Сравнение с А IMM, DIR, EXT, IX2, IX1, IX, SP1, SP2

COM Инверсия REG, DIR, IX1, IX, SP1

CPHX Сравнение 16-разрядного слова с Н:Х IMM, DIR

X C Сравнение с X IMM, DIR, EXT, IX2, IX1, IX, SP1, SP2

DAA Двоично-десятичная коррекция аккумулятора -

DEC Декремент REG, DIR, IX1, IX, SP1

DIV Деление -

EOR Исключающее ИЛИ IMM, DIR, EXT, IX2, IX1, IX, SP1, SP2

INC Инкремент REG, DIR, IX1, IX, SP1

LSL Логический сдвиг влево REG, DIR, IX1, IX, SP1

LSR Логический сдвиг вправо REG, DIR, IX1, IX, SP1

MUL Умножение -

NEG Изменение знака REG, DIR, IX1, IX, SP1

NOP Нет операции -

NSA Перестановка тетрад в аккумуляторе -

ORA Логическое ИЛИ IMM, DIR, EXT, IX2, IX1, IX, SP1, SP2

ROL Циклический сдвиг влево REG, DIR, IX1, IX, SP1

ROR Циклический сдвиг вправо REG, DIR, IX1, IX, SP1

SBC Вычитание с учетом заема IMM, DIR, EXT, IX2, IX1, IX, SP1, SP2

SEC Установка бита С -

SEI Установка бита I -

SUB Вычитание IMM, DIR, EXT, IX2, IX1, IX, SP1, SP2

TST Тестирование байта IMM, DIR, EXT, IX2, IX1, IX, SP1, SP2

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

ме команд присутствуют операции умножения и деления. Операция умножения выполняется над регистрами X и А, результат записывается в регистровую пару Х:А. В операции деления содержимое регистровой пары Н:А делится на регистр X. Частное записывается в аккумулятор, а остаток от деления — в регистр Н.

В таблице 4 приведены команды пересылки. Эта группа команд осуществляет обмен содержимого регистров, регистров и памяти, позволяет сохранять и восстанавливать данные из стека.

Таблица 4. Команды пересылки

Таблица 5. Команды управления

Мнемо- код Операция Виды адресации

LDA Загрузка аккумулятора IMM, DIR, EXT, IX2, IX1, IX, SP1, SP2

LDHX Загрузка Н:Х IMM, DIR

LDX Загрузка X IMM, DIR, EXT, IX2, IX1, IX, SP1, SP2

MOV Пересылка DD, DIX+, IMD, IX+D

PSHA Сохранение А в стеке -

PSHH Сохранение Н:Х в стеке -

PSHX Сохранение X в стеке -

PULA Восстановление А из стека -

PULH Восстановление Н:Х из стека -

PULX Восстановление Х из стека -

RSP Инициализация БР -

STA Сохранение А в памяти DIR, EXT, IX2, IX1, IX, SP1, SP2

STHX Сохранение Н:Х в памяти DIR

STX Сохранение Х в памяти DIR, EXT, IX2, IX1, IX, SP1, SP2

TAP Пересылка А в ССР -

TAX Пересылка А в Х -

TPA Пересылка ССР в А -

TSX Пересылка БР в Х -

TXA Пересылка Х в А -

TXS Пересылка Х в БР -

Таблица 5 содержит команды управления. Большую долю этих команд занимают условные переходы. Операндом команд условного перехода является 8-разрядное знаковое смещение. Помимо стандартных операций, в состав системы команд входят переходы по биту маски прерывания I и состоянию внешнего вывода IRQ процессора.

Команда SWI является вызовом программного прерывания. Программное прерывание немаскируемое, то есть происходит независимо от состояния флага I в CCR. При вызове прерывания процессор сохраняет все регистры и переходит к выполнению программы с адреса, содержащегося в векторе прерывания.

Команды WAIT и STOP позволяют задействовать режимы пониженного энергопотребления микроконтроллера. Данные режимы аналогичны режимам IDLE и POWER DOWN в микроконтроллерах MCS51. В режиме WAIT отключается тактовый сигнал от процессора, периферия микроконтроллера продолжает функционировать. Выход из режима осуществляется либо по прерыванию, либо по сигналу сброса.

В режиме STOP прекращается работа процессора и периферийных устройств. Выход из режима возможен только под влиянием внеш-

Мнемо- код Операция Виды адреса- ции

BCC Переход, если С=0 REL

BCS Переход, если С=1 REL

BEQ Переход, если нулевой результат REL

BGE Переход, если больше или равно REL

BGT Переход, если больше REL

BHCC Переход, если Н=0 REL

BHCS Переход, если Н=1 REL

BHI Переход, если выше REL

BHS Переход, если выше или равно REL

BIH Переход, если на 1РО напряжение лог. 0 REL

BIL Переход, если на 1РО напряжение лог. 1 REL

BLE Переход, если меньше или равно REL

BLO Переход, если ниже REL

BLS Переход, если ниже или равно REL

BLT Переход, если меньше REL

BMC Переход, если 1=0 REL

BMI Переход, если отрицательный результат REL

BMS Переход, если 1=1 REL

BNE Переход, если ненулевой результат REL

BPL Переход, если неотрицательный результат REL

BRA Безусловный переход REL

BRCLR Переход, если бит в ячейке очищен DIR

BRSET Переход, если бит в ячейке установлен DIR

BSR Переход к подпрограмме REL

CBEQ Сравнение и переход, если равно DIR, IMM, X1+, IX+, SP1

DBNZ Декремент и переход, если не нуль DIR, REG, IX1+, IX+, SP1

JMP Длинный переход DIR, EXT, IX2, IX1, IX

JSR Длинный переход к подпрограмме DIR, EXT, IX2, IX1, IX

RTI Возврат из обработчика прерывания -

RTS Возврат из подпрограммы -

STOP Остановить тактовый генератор -

SWI Программное прерывание -

WAIT Остановить процессор -

них факторов — внешнего прерывания или сигнала сброса.

Карта памяти

В таблице 6 представлено распределение памяти в микроконтроллерах МС68НС9081Ь3 и 1К3. В скобках приведены адреса для микроконтроллера 1К1.

Таблица 6. Распределение памяти

Диапазон адресов Тип памяти Объем, байт

0x0000-0x003F Регистры ввода-вывода 64

0x0040-0x007F Зарезервировано 64

0x0080-0x00FF ОЗУ 128

0x0100-0xEBFF 0x0100-0xF5FF Нет памяти 60160 (62720)

0xEC00-0xFBFF 0xF600-0xFBFF Флэш-память 4096 (1536)

0xFC00-0xFDFF ПЗУ монитора 512

0xFE00-0xFE0F Системные регистры 16

0xFE10-0xFFCF ПЗУ монитора 448

0xFFD0-0xFFFF Вектора прерываний 48

Компоненты и технологии, № 6'2002

Обработка прерываний

При запросе прерывания MC68HC908JL3 заканчивает выполнение текущей команды, сохраняет в стеке адрес возврата, регистры A, X и CCR и переходит к выполнению программы с адреса, записанного в векторе прерывания. Регистр H в стеке не сохраняется для обеспечения совместимости с семейством HC05.

В части запуска обработчика прерывания архитектура HC05/08 отходит от сложившейся в области микроконтроллеров традиции, когда управление передается непосредственно на вектор. Здесь из вектора выбирается адрес, и уже по этому адресу осуществляется переход.

Всего имеется 8 векторов прерываний, они приведены в таблице 7. Приоритет прерываний увеличивается по мере увеличения адреса вектора: самый высокий приоритет имеет сигнал Reset, самый низкий — АЦП.

Таблица 7. Вектора прерываний

Адрес вектора Назначение

0xFFDE:0xFFDF АЦП

0xFFE0:0xFFE1 Клавиатура

0xFFF2:0xFFF3 Переполнение таймера

0xFFF4:0xFFF5 Внешний вывод 1 таймерного блока

0xFFF6:0xFFF7 Внешний вывод 0 таймерного блока

0xFFFA:0xFFFB Внешний вывод IRQ

0xFFFC:0xFFFD Программное прерывание SWI

0xFFFE:0xFFFF Сигнал сброса Reset

Любое прерывание, кроме Reset и SWI, может быть запрещено — в регистрах управления соответствующих устройств имеются маскировочные флаги. Все прерывания одновременно могут быть запрещены установкой бита I в регистре CCR.

Периферийные устройства

В состав периферийных устройств микроконтроллеров входят:

• порты ввода—вывода;

• таймерный блок;

• АЦП;

• сторожевой таймер и детектор аварии питания;

• отладочный модуль.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Порты ввода—вывода. В состав микроконтроллера входят три параллельных порта, обозначаемые буквами A, B, D.

Порт A микроконтроллера MC68HC908JL3 имеет 7 выводов. В микроконтроллерах JK3 и JK1 присутствует только вывод PA6.

Каждый вывод порта A может работать как входной или выходной. Для настройки направления передачи данных служит регистр DDRA. Если какой-либо бит DDRA установлен в 0, соответствующий вывод порта A будет входом, если в 1 — то выходом. Для передачи данных в порт и чтения выводов служит регистр PTA.

Для всех выводов порта A имеется возможность подключить внутренние подтягивающие резисторы величиной около 30 кОм. Включением подтяжек управляет регистр PTAPUE.

Вывод PA6 находится на особом положении, так как он совмещен с выходом тактово-

го генератора. Его можно использовать в качестве вывода порта только при наличии внешнего генератора. Включением вывода PA6 управляет бит 7 регистра PTAPUE.

Все выводы порта A (кроме PA6) обладают характеристикой, называемой фирмой Motorola «LED drive capability». Это означает, что нагрузочная способность вывода при питании 5 В составляет не менее 10 мА.

Порт A имеет также альтернативное назначение — его выводы можно использовать как интерфейс клавиатуры. По перепаду напряжения на любом из выводов PA0 ... PA6 может быть сгенерировано прерывание от клавиатуры. Интерфейс клавиатуры продолжает функционировать в режимах пониженного потребления, прерывание от клавиатуры выводит микроконтроллер из этих режимов.

Порт — это двунаправленный 8-разрядный порт. Для управления портом B служат регистр направления DDRB и регистр данных PTB; подтягивающих резисторов порт B не имеет. Альтернативное назначение порта В — его выводы можно использовать в качестве входов АЦП, каналов 0-7.

Порт D микроконтроллера MC68HC908JL3 имеет 8 выводов, у микроконтроллеров JK3 и JK1 исключены выводы PD0 и PD1. Порт D двунаправленный (им управляют регистры DDRD и PTD), его выводы имеют различные альтернативные функции.

Выводы PD2, PD3, PD6, PD7 имеют «LED drive capability».

Выводы PD0-PD3 могут служить входами АЦП, каналов 8-11.

Выводы PD4 и PD5 служат входами счетчика событий, каналов 0 и 1.

Выводы PD6 и PD7 имеют возможность функционировать в режиме «Slow-edge». В этом режиме вывод порта представляет собой выход с открытым коллектором с возможностью потребления тока величиной до 25 мА. Также на этих выводах могут быть включены подтягивающие резисторы величиной 5 кОм. Включением режима «Slow-edge» и подтяжек управляет регистр PDCR.

Таймерный блок. Центральным компонентом таймерного блока является 16-разрядный счетчик. Его текущее значение доступно через регистровую пару TCNTH:TCNTL. Тактовая частота счетчика образуется из частоты системной шины с помощью делителя. Для хранения кода коэффициента деления отведены 3 бита в регистре управления таймером TSC. Коэффициент деления может принимать 7 значений: 1, 2, 4, 8, 16, 32, 64.

При счете, в зависимости от установленного режима, счетчик может сбрасываться в 0 либо при достижении значения 216 (переполнении разрядной сетки), либо какого-то другого значения, называемого модулем счета. Для хранения модуля счета используется регистровая пара TMODH:TMODL. При переходе счетчика через 0 таймерный блок может, в зависимости от настроек, сгенерировать прерывание переполнения.

Таймерный блок имеет два канала с внешними выводами, которые могут функционировать в двух режимах: Input Capture и Output Compare, причем каждый канал программиру-

ется на тот или иной режим независимо. В режиме Input Capture канал проверяет состояние внешнего вывода и фиксирует в регистровой паре TCH0H:TCH0L (или TCH1H:TCH1L) момент прихода фронта сигнала. В зависимости от настройки канал может реагировать на нарастающий или на спадающий фронт, либо на любой из этих фронтов.

В режиме Output Compare все происходит с точностью до наоборот: в момент времени, заданный в регистрах TCHxH:TCHxL, происходит переключение внешнего вывода. В зависимости от настройки переключение может производиться в 0, в 1, или в состояние, обратное предшествующему.

Существует два варианта режима Output Compare. В первом, так называемом Unbuffered, вывод управляется только регистровой парой, соответствующей каналу 0 или 1. Это более простой вариант, он позволяет задействовать два канала независимо друг от друга. Недостаток данного варианта в том, что запись нового значения в регистры TCHxH:TCHxL может вызвать неправильную работу в течение двух периодов перезагрузки таймера. Рассмотрим ситуацию, когда новое записанное значение больше старого. Если во время записи счетчик еще не достиг старого значения, но уже превысил новое, переключение внешнего вывода произойдет только после того, как счетчик пройдет полный цикл до модуля счета, и затем — от нуля до нового значения.

Второй вариант режима — Buffered Output Compare — свободен от данного недостатка, однако требует одновременного использования всех регистров — TCH0H:TCH0L и TCH1H:TCH1L, при этом работает только канал 0. Непосредственно после запуска период выбирается из регистров TCH0H:TCH0L. Для смены периода новое значение надо записать в TCH1H:TCH1L, при этом текущий цикл отрабатывается по старому значению в TCH0H:TCH0L. Начиная со следующего цикла период выбирается уже из TCH1H:TCH1L, а при необходимости сменить значение его надо записывать в TCH0H:TCH0L и т. д. Таким образом, регистровые пары загружаются и работают попеременно.

Используя режим Output Compare и отслеживая переполнение счетчика, можно организовать генерацию сигнала с широтно-импульсной модуляцией (ШИМ). Для этого в регистры модуля счета заносится период ШИМ, в регистры TCHxH:TCHxL — время включения. Режим ШИМ требует активизации двух прерываний: от интерфейсного канала и по переполнению таймера.

АЦП имеет 12 измерительных каналов и разрешение 8 бит. Опорным напряжением для АЦП служит напряжение питания микроконтроллера.

Для синхронизации АЦП используется делитель, на вход которого подается сигнал синхронизации системной шины. В зависимости от значения в регистре управления делителем ADICLK коэффициент деления может составлять 1, 2, 4, 8 или 16. Рекомендуется устанавливать коэффициент деления таким образом, чтобы частота синхронизации АЦП составляла приблизительно 1 МГц. Учитывая, что

Компоненты и технологии, № 6'2002

цикл преобразования АЦП занимает 16 тактов, рекомендованная частота преобразования составляет 62,5 кГц.

АЦП запускается при записи нового значения в регистр управления ADSCR. Сигналом завершения цикла преобразования является установка бита COCO в том же регистре. АЦП может сгенерировать прерывание, сигнализирующее об окончании цикла. В зависимости от значения бита ADCO в регистре ADSCR после завершения цикла преобразования АЦП либо останавливается, либо начинает новое измерение.

Сторожевой таймер микроконтроллера MC68HC908JL3 предназначен для борьбы с зацикливанием или зависанием процессора.

Он представляет собой 6-разрядный счетчик, тактируемый от сигнала переполнения системного таймера. 12-разрядный системный таймер работает независимо от процессора и другой периферии, синхронизируется непосредственно от тактового генератора и служит для отсчета временных интервалов в служебных процессах в микроконтроллере.

Сторожевой таймер производит сброс микроконтроллера в том случае, если он достиг значения переполнения. Значение переполнения может составлять либо 218-24, либо 213-24 периодов частоты тактового генератора. Для того чтобы сброса не происходило, сторожевой таймер должен периодически сбрасываться путем записи любого значения в регистр COPCTL.

Детектор аварии питания позволяет подавать сигнал сброса в случае, когда напряжение питания падает ниже допустимого уровня.

С помощью регистра конфигурации CONFIG2 может быть выбран уровень срабатывания 4 В (для питания 5 В) или 2,4 В (для питания 3 В).

Отладочный модуль обеспечивает аппаратную поддержку точек останова. Точкой останова считается одно из двух событий:

• адрес, сгенерированный процессором, совпал с адресом, записанным в служебном регистре отладочного модуля;

• программа установила бит BRKA в регистре управления отладочным модулем.

При обнаружении точки останова отладочный модуль генерирует прерывание по вектору SWI. При этом останавливаются таймеры микроконтроллера, в том числе сторожевой. При возврате из прерывания с помощью инструкции RTI нормальная работа микроконтроллера восстанавливается.

Режим монитора

Особенностью микроконтроллеров семейства МС68НС908 является наличие так называемого режима монитора. В режиме монитора управление ресурсами микроконтроллера осуществляет специальная программа-монитор, записанная в ПЗУ. Режим монитора позволяет запускать программу пользователя, находящуюся во флэш-памяти или в ОЗУ и контролировать содержимое памяти и регистров микроконтроллера по однопроводному последовательному интерфейсу. С помощью монитора организуется также программирование флэш-памяти.

Решение о входе в режим монитора микроконтроллер принимает при подаче питания или после аппаратного сброса. Вход в режим осуществляется в двух случаях:

• Вектор прерывания по сигналу Reset (другими словами, стартовый адрес программы пользователя) содержит значение 0xFFFF. В этом случае микроконтроллер считается незапрограммированным, так как по такому адресу программа пользователя располагаться не может.

• На внешний вывод IRQ микроконтроллера подано повышенное напряжение (7-8 В). При обнаружении повышенного напряжения микроконтроллер считывает состояние выводов порта B: PB1 и PB2. Если на них установлена условленная комбинация логических уровней 10, то микроконтроллер начинает процедуру входа в режим монитора. После осуществления входа в режим монитора выводы PB1 и PB2 могут быть использованы по усмотрению пользователя.

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

Под отладочный интерфейс отведен вывод PB0 микроконтроллера, который не может быть использован для других целей. Обмен по интерфейсу осуществляется в режиме «запрос—ответ». Частота обмена по отладочному интерфейсу связана с тактовой частотой микроконтроллера. Как правило, выбирается стандартная частота обмена 9600 бод.

Во время сеанса рукопожатия, для получения разрешения на чтение флэш-памяти, инструментальный ПК должен передать микроконтроллеру 8 секретных байтов. Значения этих байтов представляют собой содержимое 8 ячеек из области векторов прерываний. Таким образом осуществляется защита программы во флэш-памяти от несанкционированного доступа. Если микроконтроллеру будут переданы неправильные значения, единственная операция, которая может быть проделана с флэш-памятью, — это ее полное стирание.

Если вход в режим монитора прошел успешно, микроконтроллер готов к приему и выполнению команд инструментального ПК. Эти команды позволяют производить чтение и запись памяти, а также запуск программы с любого адреса.

В связи с тем, что управление ресурсами микроконтроллера в режиме монитора осуществляется ПЗУ монитора, существуют некоторые особенности обработки прерываний. Вектора прерываний Reset, Break и SWI становятся недоступными пользователю и жестко указывают на обработчики в ПЗУ монитора. С помощью этих обработчиков инструментальный ПК организует трассировку программы, находящейся в памяти микроконтроллера.

Средства разработки программ

Компания Motorola рекомендует использовать для семейства микроконтроллеров HC908 инструментальные средства фирмы P&E Micro (http://www.pemicro.com). Фирма выпускает внутрисхемные отладчики, программаторы и программное обеспечение для всех семейств микроконтроллеров Motorola.

Для семейства HC908 предлагает недорогой внутрисхемный программатор MON08 Cyclone. Этот программатор является интерфейсом между персональным компьютером и платой пользователя, он позволяет программировать и отлаживать все микроконтроллеры семейства HC908 в режиме монитора. Связь с ПК осуществляется по стандартному последовательному порту.

Фирма предлагает также бесплатно распространяемую интегрированную программную среду разработки, функционирующую в среде Windows, которая включает:

• редактор;

• ассемблер;

• программатор;

• программный симулятор;

• внутрисхемный симулятор;

• внутрисхемный отладчик.

Различие между внутрисхемным симулятором и внутрисхемным отладчиком требует пояснения.

Внутрисхемный отладчик позволяет загружать программу в память микроконтроллера и выполнять ее по шагам. Также он позволяет запустить программу на выполнение. При этом можно задать только одну точку останова, так как задействуется отладочный модуль микроконтроллера. Достоинством внутрисхемного отладчика является то, что программа выполняется самим микроконтроллером в реальном масштабе времени.

При использовании внутрисхемного симулятора процесс выполнения программы эмулируется на ПК, а микроконтроллеру только посылается информация о состоянии внешних выводов. Симулятор предлагает более богатые возможности отладки — точно такие же, как программный симулятор. Однако программа выполняется не в реальном масштабе времени.

Кроме продукции фирмы P&E Micro, можно упомянуть свободно распространяемый программатор фирмы Softec Microsystems, который можно найти на сайте www.softecmicro.com. Программатор имеет возможность более тонкой настройки, чем программатор P&E Micro. Также он более удобен для программирования серии микросхем в процессе производства.

Фирма КТЦ-МК (http://www.cec-mc.ru) предлагает макетно-отладочную плату Kit JL3, на которой установлены все базовые компоненты, необходимые для работы с микроконтроллером MC68HC908JL3. Kit служит для освоения возможностей MC68HC908JL3, отладки программ в режимах внутрисхемного отладчика и внутрисхемного симулятора, а также быстрого макетирования устройств на базе микроконтроллера. Для работы с платой можно использовать программное обеспечение P&E Micro или Softec Microsystems.

i Надоели баннеры? Вы всегда можете отключить рекламу.