Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



Микроконтроллеры семейства 68HC08/908 могут функционировать в одном из следующих режимов:

- рабочий режим,

- режим ожидания,

- режим останова,

- режим отладки.

Режим ожидания (Wait mode)реализуется после поступления команды WAIT. При этом прекращается работа процессора, но все остальные модули микропроцессора продолжают функционировать. Потребление мощности в этом режиме снижается в несколько раз (табл.12). Возврат из режима ожидания в рабочий режим происходит при поступлении сигнала запуска (внешнего RST#, от модуля LVI08 или сторожевого таймера COP08) или запроса прерывания (внешнего IRQ# или от периферийных модулей). Возврат по сигналу прерывания осуществляется за 1 период тактовых импульсов Tt. При поступлении сигнала запуска производится процедура запуска микроокнтроллера, описанная в разделе 5. Если возврат выполняется по сигналу запуска, тов программный счетчик PC загружается вектор начального запуска, если по запросу прерывания, то в PC загружается соответствующий вектор прерывания (см. табл. 10).

Режим останова (Stop mode) реализуется после поступления команды STOP. В этом случае прекращается работа процессора и большинства других модулей микроконтроллера. Продолжают работать модули BREAK08, IRQ08, KBI08. Функционирование модуля контроля напряжения питания LVI08 в микроконтроллерах MC68HC908GP32 зависит от установки значения бита LVISTOP в регистре конфигурации CONFIG1 (см. раздел 5). В этих микроконтроллерах можно также разрешить в режиме останова работу генератора импульсов CG в модуле CGM08 и базового таймера TBM08. Потребляемый ток в режиме останова снижается до единиц микроампер, если запрещена работа всех модулей микроконтроллера (табл. 12).

Таблица 12. Значения тока питания для микроконтроллера

MC68HC908GP32 в различных режимах функционирования.

Модель микроконтроллера Ток питания Условия функционирования
Рабочий режим Режим ожидания Режим останова
68HC908GP32 15 мА 4 мА 3 / 300 мкА Vп=5,0В, Ft = 4 МГц
4,5 мА 1,7 мА 2 / 200 мкА Vп=3,0В, Ft = 4 МГц

Выход из режима останова происходит при поступлении внешних сигналов запуска RST# и прерывания IRQ#, а также по запросам внутренних модулей LVI08, BREAK08, KBI08, TBM08, если соответствующий модуль входит в состав данного микроконтроллера, и разрешена его работа в режиме останова. При этом в PC загружается вектор запуска или соответствующего прерывания (см. табл. 10). Для перехода в рабочий режим требуется промежуток времени длительностью 4096Tq, где Tq=1/Fq – период колебаний кварцевого кристалла, чтобы обеспечить нормальное функционирование генератора импульсов в модуле CGM08 (см. раздел 4). Можно сократить время перехода в рабочий режим до 32Tq, если установить в регистре конфигурации CONFIG1 значение бита SSEC=1 (см. раздел 8).

При поступлении команд WAIT и STOP в регистре признаков CCR устанавливается значение маски прерывания I=0, чтобы разрешить последующий выход из режима ожидания или останова по запросам прерывания.

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

В микроконтроллерах подсемейства 68HC908 режим отладки обеспечивает возможность записи содержимого Flash-памяти. Таким образом можно выполнить программирование микроконтроллера, работающего непосредственно в составе системы управления (ISP – In-System Programming). При этом запись или модификация рабочей программы производится с помощью персонального компьютера без использования специальных программаторов и не требует отключения микроконтроллера (демонтажа) от реализованной системы управления.

В режиме отладки микроконтроллер подключается к последовательному COM-порту персонального компьютера с помощью простой схемы, приведенной на рис. 1.35. Функционирование микроконтроллера в этом режиме обеспечивается с помощью специальной программы-монитора, которая записывается в его масочно-программируемое ПЗУ в процессе изготовления (см. раздел 7). Ввод микроконтроллера в режим отладки осуществляется при подаче на его выводы определенной комбинации потенциалов. На вход IRQ# подается повышенный потенциал Vh = Vp + 2,5 В. Вывод PTA0 служит для последовательного обмена данными между микроконтроллером и персональным компьютером (в исходном сотоянии на нем установлен уровень логической 1). На другие выводы портов, указанные в табл. 13, подаются постоянные уровни 0 или 1.

Уровень сигнала на выводе PTC3 определяет тактовую частоту Ft при работе микроконтроллера в режиме отладки. Скорость последовательного обмена с компьютером, которая равна Fc = Ft/256, не должна превышать 28800 бит/с. Типичная скорость 9600 бит/с реализуется при использовании кварцевого кристалла с резонансной частотой Fq = 4,9152 МГц, если установлено значение сигнала PTC3=0, или Fq = 9,8304 МГц, если установлено значение сигнала PTC3=1.

Таблица 13. Установка сигналов для ввода микроконтроллера в режим отладки

IRQ# Логические уровни на выводах портов Частота Ft
Vh* PTA0 = 1 PTC0 = 1 PTC1 = 0 PTA7 = 0 PTC3 = 0 Fq/2
PTC3 = 1 Fq/4

Рис.11. Схема подключения микроконтроллера к персональному компьютеру при реализации режима отладки.

После установки соответствующих сигналов на указанных выводах (рис.11) микроконтроллер вводится в режим отладки одним из следующих способов:

- выполнение команды SWI (программный ввод),

- установка 0 на входе RST# и последующий возврат потенциала на этом входе к уровню 1 (аппаратный ввод путем выполнения процедуры запуска).

При этом процессор производит загрузку в стек текущего содержимого регистров PC (PCl-PCh), X, A, CCR (как при выполнении команды SWI) и регистра H (как при выполнении команды PUSHH). После входа микроконтроллера в режим отладки вывод IRQ# может использоваться для подачи внешних запросов прерывания. При работе в режиме отладки микроконтроллер использует вектора запуска, отладочного и программного прерывания, которые расположены по специально выделенным адресам:

- вектор запуска (Reset) – адрес $FEFE-FF,

- вектор отладочного (Break) и программного (SWI) прерываний – адрес $FEFC-FD.

Работа сторожевого таймера COP08 в режиме отладки запрещается, пока поддерживается повышенный потенциал Vhi на входе IRQ# или высокий потенциал Vп на входе RST#.

В микроконтроллерах серии GP дополнительно реализован упрощенный вариант ввода в режим отладки, при котором используется минимальное количество внешних выводов и не требуется повышенное напряжение Vh. Данный вариант позволяет ввести микроконтроллер в режим отладки, если ячейки памяти с адресами $FFFE-FF (вектор запуска) имеют нулевое значение всех разрядов, что соответствует незапрограммированому состоянию Flash -памяти. Поэтому данный режим служит для записи рабочей программы в память микроконтроллера (начальное программирование). Если значение вектора запуска не равно $0000, то при попытке ввода в режим отладки данным способом микроконтроллер переходит к выполнению рабочей программы. Для реализации этого режима на вход IRQ# подается напряжение питания Vп, вход PTA0 служит для последовательного обмена между микроконтроллером и персональным компьютером (в начальном состоянии на этом входе устанавливается 1), требуется также подать 0 на вывод PTA7. Другие выводы микроконтроллеров не используются для реализации отладки и могут служить для обмена данными в рабочей системе.

При работе в режиме отладки вывод PTA0 используется для асинхронного последовательного обмена между микроконтроллером и персональным компьютером. Стандартный формат рабочего кадра обмена содержит один старт-бит, восемь информационных битов и один стоп-бит (рис. 12,а). Время передачи одного бита составляет Tc = 1/Fc, где Fc –скорость обмена. При входе в режим отладки микроконтроллер посылает в компьютер кадр начала обмена (Break-кадр, сигнал прерывания связи), который содержит десять нулевых битов (рис.12,б). Длительность этого кадра указывает компьютеру заданную скорость обмена.

       
   
 
 


Рис.12. Формат кадров обмена между микроконтроллером и компьюром в режиме отладки: рабочий кадр (а), кадр начала обмена или отмены выполнения команды (б)

В режиме отладки микроконтроллер принимает и выполняет команды, поступающие от компьютера. Набор выполняемых команд приведен в табл.14, а последовательность кадров обмена при их выполнении на рис. 13. Первый байт команды содержит код выполняемой операции, в последующих байтах передаются адрес и данные. Микроконтроллер дублирует каждый байт поступившей команды, посылая его обратно в компьютер как «эхо» (рис.13). Если поступившее «эхо» не соответствует переданному байту (ошибка обмена), то компьютер может передать сигнал отмены выполнения команды в виде последовательности из десяти нулевых битов (Break-кадр, рис. 12,б).

Таблица 14. Команды монитора отладки

Команды отладки Код команды Число байтов Операция
READ $4A   Чтение байта из памяти микроконтроллера
WRITE $49   Запись байта в память микроконтроллера
IREAD $1A   Чтение двух байтов из памяти микроконтроллера с инкрементом предыдущего адреса
IWRITE $19   Запись байта в память микроконтроллера с инкрементом предыдущего адреса
READSP $0C   Чтение содержимого указателя стека SP
RUN $28   Переход к выполнению программы пользователя (выход из режима отладки)

Рис.13. Кадры обмена при выполнении команд отладки READ (а), WRITE (б), IREAD (в), IWRITE (г), READSP (д), RUN (е)

При обмене обеспечиваются необходимые задержки между передачами различных кадров. После приема очередного байта микроконтроллер выполняет задержку длительностью 2Tc, после чего посылает компьютеру «эхо» (копию) поступившего байта. Таким образом подтверждается правильность принятой от компьютера информации. Через время Tc после посылки “эхо” микроконтроллер может принимать следующий байт. После полного приема команды и посылки соответствующих “эхо” микроконтроллер реализует задержку длительностью 11Tc, ожидая возможного поступления сигнала отмены. Если отмены не происходит, то микроконтроллер выполняет принятую команду. Если поступает сигнал отмены, то микроконтроллер устанавливает на линии обмена PTA0 или PTB0 уровень 1 на время 2Tc, затем передает компьютеру “эхо” сигнала отмены (десять нулевых битов). После этого микроконтроллер ожидает поступления от компьютера следующей команды.

Команды READ, WRITE обеспечивают чтение или запись байта данных, который размещается в памяти микроконтроллера по адресу, заданному вторым и третьим байтом команды (рис.13, а,б). При выполнении записи данные содержатся в четвертом байте команды, поступающей от компьютера (рис.13,б).

Команды IREAD, IWRITE используются для чтения и записи последовательности байтов в память микроконтроллера (рис.13,в,г). При этом адрес читаемого или записываемого байта определяется путем увеличения на 1 (автоинкремента) адреса, полученного в предыдущей команде READ или WRITE. Последовательное выполнение ряда команд IREAD, IWRITE обеспечивает считывание или заполнение массива памяти команд или данных.

Команда READSP (рис.13,д) обеспечивает считывание двух байт адреса вершины стека, который имеет значение SP+1, где SP – содержимое указателя стека SP.

Команда RUN обеспечивает возврат процессора к выполнению рабочей программы (выход из режима отладки). При этом из стека восстанавливается содержимое регистров PC, H:X, A, CCR, которое было загружено в стек при вводе микроконтроллера в режим отладки.

В микроконтроллерах MC68HC908GP32 реализуется защита Flash -памяти от несанкционированного обращения в режиме отладки. Защита обеспечивается с помощью восьми байтов секретности, которые располагаются в памяти микроконтроллера по адресам $FFF6-FD. В соответствии с картой памяти микроконтроллеров семейства 68HC08/908 эти ячейки памяти служат для размещения векторов прерывания (см. табл.10). Таким образом эти вектора, заданные пользователем, используются также в качестве байтов секретности.

Чтобы обеспечить доступ к Flash -памяти, микроконтроллер после установки необходимых сигналов на соответствующих выводах (см. табл.13) вводится в режим отладки путем включения напряжения питания. После запуска микроконтроллер последовательно принимает от компьютера значения 8 ключевых байтов и сравнивает их с байтами секретности, хранящимися в ячейках памяти с адресами $FFF6-FD. После приема каждого из ключевых байтов микроконтроллер посылает его обратно в компьютер в виде «эхо», чтобы компьютер мог проверить правильность принятого байта. По окончании приема ключевых байтов и посылки их «эхо» микроконтроллер выдает сигнал начала обмена (десять нулевых байтов) и ожидает поступления команд от компьютера. Если все 8 принятых ключевых байтов совпадают с соответствующими байтами секретности, то защита Flash -памяти блокируется, и в режиме отладки обеспечивается чтение, стирание и запись ее содержимого. Блокировка защиты сохраняется до выключения питания, после чего необходимо снова произвести посылку ключевых байтов. Если в процессе отладки производится перезапуск микроконтроллера, не вызванный отключением питания (см. раздел 5), управляющий компьютер должен ввести в микроконтроллер последовательность из 8 произвольных байтов (они могут не совпадать с байтами секретности), чтобы продолжить работу в режиме отладке.

Если принятые микроконтроллером ключевые байты не совпадают с байтами секретности, то при чтении Flash -памяти будут получены неправильные значения, а попытка запустить записанную в память программу вызовет повторный запуск микроконтроллера как при получении неправильной команды (см. раздел 5). В микроконтроллерах 68HC908GP32 имеется возможность проверить состояние защиты после посылки ключевых данных путем чтения содержимого ячейки памяти с адресом $40. Если бит 6 этого содержимого равен 1, то это указывает на совпадение ключевых байтов с байтами секретности и возможность обращения к Flash -памяти (блокировка защиты). В противном случае пользователь может выполнить повторное включение питания и посылку правильных ключевых байтов для блокирования защиты.





Дата публикования: 2014-11-02; Прочитано: 3962 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...