Главная
Новости рынка
Рубрикатор



Архив новостей -->



 



   

Т. Ремизевич, А. Архипов, С. Овчинкин, И. Чепурин

Стратегии отладки микроконтроллеров семейства HC908… или многоликий внутрисхемный симулятор ICS08

Поддержка аппаратными средствами МК режимов программирования и отладки в системе при прочих функциональных достоинствах МК является одним из определяющих факторов при выборе элементной базы новой разработки. Многие 8-разрядные МК разных фирм-производителей имеют в своём составе специальный модуль внутрисхемной отладки. Для весьма динамично развивающегося 8-разрядного семейства HC908 фирмы Motorola [1,2] такой модуль носит название "Monitor Module". Как грамотно воспользоваться этим модулем? Какую дополнительную схемотехнику выполнить на плате целевой системы? Какие программные средства предоставляет фирма для поддержки отладки и программирования в системе? На все эти вопросы должна ответить наша статья.

Технология отладки и программирования однокристального МК в системе предполагает, что МК устанавливается на целевую плату посредством пайки в незапрограммированном состоянии. Занесение прикладной программы в МК с многократной её перезаписью в процессе отладки производится прямо на плате целевой системы под управлением инструментального ПК. Связь МК с ПК в процессе программирования и отладки осуществляется через специальный "отладочный" порт в составе МК. В рабочем режиме целевая плата просто отсоединяется от ПК, и она готова к работе. Более того, если в процессе эксплуатации потребуется изменить рабочую программу, то такая операция не потребует замены МК и выполнения дополнительных монтажных работ. Необходимо будет лишь восстановить связь МК целевой системы с ПК и воспользоваться соответствующим программным обеспечением.

Каковы требования к программным и аппаратным средствам самого МК, чтобы такая технология отладки и программирования стала возможной?

Во-первых, резидентная память программ МК должна быть многократно программируемой. В настоящее время такая память выполняется по технологии FLASH, в редких случаях — по технологии EEPROM. Модуль резидентной FLASH-памяти в составе МК должен иметь повышающий регулятор напряжения. Тогда операции стирания и программирования FLASH ПЗУ можно будет вести только при питании МК от "рабочего" источника напряжения. Дополнительный источник не потребуется.

Во-вторых, МК должен иметь специальный отладочный режим работы, в котором прикладная программа работает под управлением программы монитора отладки.

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

Отладочный режим работы МК семейства HC908

Отладочный режим работы (Monitor mode) позволяет организовать "диалог" МК с ПК для отладки программ управления и выполнения операций стирания/программирования резидентной памяти программ. При переходе МК в отладочный режим работы аппаратные средства автоматически подменяют векторы сброса и программного прерывания. В результате, после сброса по внешнему сигналу на входе или по команде программного прерывания SWI счётчик адреса МК загружается начальным адресом программы монитора отладки. Эта программа располагается в специальной области памяти, которая лежит за пределами адресного пространства программы пользователя. Прошивка монитора отладки осуществляется на этапе производства. Пользователь может либо активизировать эту программу посредством перевода МК в отладочный режим работы, либо не использовать эту программу вообще. Варианты кода программы монитора отладки постоянно совершенствуются и поэтому различаются для разных моделей МК. Однако система команд отладки и форматы обмена данными с П

Программа монитора отладки содержит в себе подпрограмму драйвера обмена по однопроводной двунаправленной линии (только в модели HC908MR8 используется двухпроводный последовательный обмен) и подпрограмму выполнения шести команд отладки, которые поступают в МК по этому однопроводному интерфейсу. Команды следующие: читать байт из памяти МК (ОЗУ или ПЗУ), записать байт в память МК (ОЗУ), читать два байта из памяти МК (ОЗУ или ПЗУ) с автоувеличением адреса, записать два байта в память МК (ОЗУ) с автоувеличением адреса, читать указатель стека, начать выполнение программы.

С использованием перечисленных команд в ПК реализовано управляющее микроконтроллером программное обеспечение, которое позволяет выполнять следующие действия:

  • загрузить в ОЗУ МК фрагмент разрабатываемой прикладной программы и запустить её на выполнение: с остановкой по контрольной точке или без неё, по желанию пользователя. МК с процессорным ядром HC08 имеют единое адресное пространство памяти программ и данных и поэтому допускают выполнение программного кода, размещённого в ОЗУ данных;
  • передать в ПК верхнего уровня состояние регистров центрального процессора и ячеек памяти после остановки в контрольной точке;
  • если прикладная программа управления уже загружена во FLASH ПЗУ МК, то запустить эту программу на выполнение с заданного адреса и остановить её в желаемой контрольной точке;
  • загрузить в ОЗУ МК по однопроводному интерфейсу программу стирания/программирования FLASH ПЗУ и, передавая коды прикладной программы порциями, осуществить программирование резидентной FLASH-памяти МК.

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

Алгоритмы перевода МК в отладочный режим работы

Большинство МК семейства HC908 имеют два алгоритма для перевода в отладочный режим работы. Первый алгоритм универсальный, он обеспечивает переход МК в отладочный режим независимо от того, находится в памяти МК программа, или эта память полностью очищена. Этот алгоритм следует использовать, если предполагается отладка прикладной программы. Возможность реализации программирования при этом получится автоматически.

Второй алгоритм позволяет перевести в отладочный режим работы только незапрограммированный МК, то есть тот, в памяти которого на месте вектора сброса (ячейки памяти 0FFFEh и 0FFFFh) содержится код 0FFh. Второй алгоритм задействует меньшее число линий портов ввода/вывода МК, однако при его использовании единожды за-программированный МК уже нельзя будет снова перевести в отладочной режим работы даже для стирания и записи новой программы. Поэтому второй алгоритм целесообразно использовать на стадии производства изделия для целей поточного программирования.

МК, допускающие работу с кварцевым резонатором 32,768 кГц (модели GP32, GR8/4, SR12), имеют дополнительный третий алгоритм перевода в отладочный режим работы. В отличие от первых двух алгоритмов, которые предполагают работу МК в отладочном режиме без использования синтеза-тора в модуле умножителя частоты CGM08, при третьем алгоритме резидентная программа монитора отладки запускает этот синтезатор. В результате, МК будет работать с частотой шины fBUS = 2,4576 МГц при тактировании от низкочастотного кварцевого резонатора 32,768 кГц. Третий алгоритм обладает тем же недостатком, что и второй: при его использовании возможна реализация только внутрисистемного программирования, но невозможна отладка.

Для перевода МК семейства HC908 в отладочный режим по первому универсальному алгоритму необходимо выполнить следующие условия:

  • вход внешнего прерывания и вход внешнего сброса должны быть подключены к источнику повышенного напряжения VTST>> 8,5 В (от 7,5 В до Vdd + 4 В по данным технического описания).

    Допускается также подключение входа к потенциалу источника питания Vdd;

  • на трёх линиях портов должна быть установлена комбинация логических сигналов в соответствие с типом модели МК и частотой используемого для тактирования МК кварцевого резонатора. Спецификация линий портов МК, задействованных в переводе МК в отладочный режим работы по универсальному алгоритму, показана в табл. 1;

  • на линии порта, которая используется для двунаправленного обмена с ПК, должна быть установлена логическая "1".

Таблица 1. Условия перевода МК HC908 в отладочный режим работы по универсальному алгоритму

Тип МК fxakc,
МГц
Линии портов, используемые для ввода в отладочный режим
PTx1=1
(MOD0)
PTx2=0
(MOD1)
PTx3 PTx4 PTx5=1
Двунаправленный
однопроводной интерфейс
MC68HC908JL3  
PTB1 PTB2 PTB3 x PTB0
MC68HC908JK3  
Порт I/O или Порт I/O или Порт I/O или x Порт I/O или вход АЦП
MC68HC908JK1  
вход АЦП вход АЦПи вход АЦП x  
  4,9152
    0    
  9,8304
    1    
MC68HC908MR32  
PTC3 PTC4 PTC2 x PTA0
MC68HC908MR16  
Порт I/O Порт I/O Порт I/O   Порт I/O
  4,9152
    0    
  9,8304
    1    
MC68HC908MR8 4,000
PTB0
Порт I/O или RxD
модуля SCI
Линия двухпроводного
интерфейса в режиме
отладки
PTB1
Порт I/O или TxD
модуля SCI
Линия двухпроводного
интерфейса в режиме
отладки
x x x
MC68HC908GP32  
 
4,9152
9,8304
PTС0
Порт I/O
PTС1
Порт I/O
PTС3
Порт I/O
0
1
PTA7=0
Порт I/O или вход KBI
PTA0
Порт I/O или вход KBI
MC68HC908SR12  
 
4,9152
9,8304
PTA1
Порт I/O или
вход АЦП
PTA2
Порт I/O или
вход АЦП
PTС1
Порт I/O или
выход PWM
x
PTA0
Порт I/O или вход АЦП
MC68HC908KX2
MC68HC908KX8
9,8304
PTB0
Порт I/O или
вход АЦП
PTB1
Порт I/O или
вход АЦП
PTA1=0
Порт I/O или
вход KBI
x
PTA0
Порт I/O или вход KBI
MC68HC908JB8  
 
3,00
6,00
PTA1
Порт I/O или
вход KBI
PTA2
Порт I/O или
вход KBI
PTA3
Порт I/O или
вход KBI
0
1
x
PTA0
Порт I/O или вход KBI
MC68HC908GR8
MC68HC908GR4
9,8304
PTB0
Порт I/O или
вход АЦП
PTB1
Порт I/O или
вход АЦП
PTA1=0
Порт I/O или
вход KBI
0
1
 
PTA0
Порт I/O или вход KBI

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

Для перевода МК семейства HC908 в отладочный режим по второму алгоритму необходимо выполнить такие условия:

  • резидентная FLASH-память МК должна быть в незапрограммированном состоянии (содержать коды 0FFh);
  • вход внешнего прерывания и вход внешнего сброса должны быть подключены к источнику напряжения Vdd, то есть должна реализовываться штатная схемотехника однокристального пользовательского режима работы МК (допускается подключение выводов и к потенциалу VTST);
  • на линии выбора частоты тактирования (PTx3 в табл. 1) должен быть установлен соответствующий логический уровень;
  • на линии двунаправленного обмена с ПК установлена логическая "1".

Тогда после сброса МК перейдёт в отладочный режим работы. Поскольку любая модель семейства HC908 автоматически выполняет сброс по включению питания, то любой незапрограммированный МК при включении напряжения питания входит в отладочный режим работы и ожидает связи с ПК.

Скорость обмена МК с ПК в отладочном режиме определяется частотой тактирования центрального процессора fBUS и составляет fBUS/256. Однако скорость обмена с ПК не должна превышать 28800 бод, что накладывает ограничение на производительность МК в отладочном режиме: максимальная частота шины составляет fBUS = 7,37 МГц против 8 МГц в рабочем режиме. Приведённые в табл. 1 значения частоты кварцевого резонатора fXCLK являются рекомендуемыми для отладочного режима работы, но не обязательными для исполнения. Выбор указанных частот определяется особенностями свободно распространяемого программного обеспечения для отладки и программирования, которое позволяет назначить скорость обмена только в соответствии со стандартным рядом. Скорость обмена будет равна 9600 бод, если fBUS = 2,4576 МГц. Программа монитора отладки инициализирует модуль CGM08 таким образом, что выходной сигнал модуля CGMOUT образует генератор кварцевого резонатора. Если PTх3 = 1, то модуль CGM08 работает в обычном режиме, при котором fCGMOUT = fXCLK/2. Модуль системной интеграции образует частоту fBUS путём деления частоты fCGMOUT на два, тогда fBUS = fXCLK/4. При PTх3 = 0 в модуле CGM08 активизируется дополнительная опция, при которой fCGMOUT = fXCLK и, следовательно, fBUS = fXCLK/2. Поэтому, если аппаратные средства для перевода МК в отладочный режим работы формируют на линии PTх3 логическую "1", следует использовать кварцевый резонатор с частотой fXCLK = 9,8304 МГц, а если PTх3 = 0, то частота кварцевого резонатора должна быть в два раза ниже: fXCLK = 4,9152 МГц (табл. 1).

В конце 2001 года на сайте появились первые версии сервисного ПО отладки и программирования, которое допускает произвольную установку скорости обмена МК с ПК. Поэтому следует ожидать, что основной недостаток внутрисхемной отладки МК семейства HC908 - пониженная частота внутренней шины относительно предельно допустимой - в ближайшее время будет устранён. Следует также отметить, что для формирования частотной сетки обмена в отладочном режиме МК семейства HC908 не используют модуль таймера и другие периферийные модули. Следовательно, отладочный режим накладывает минимальные ограничения на ресурсы МК для управления объектом.

После того, как МК вошёл в отладочный режим работы, заданная комбинация сигналов на линиях PTx1-PTx4 может быть снята, а сами линии могут использоваться по прямому назначению в проекте. Линия двунаправленного обмена (или 2 линии для MR8) в проекте использоваться не может. На одной из линий или в течение сеанса работы в отладочном режиме должен сохраняться высокий уровень потенциала VTST. Тогда сторожевой таймер будет отключен, что необходимо для ведения процесса отладки. С точки зрения полноты функционирования целевой системы под высоким потенциалом удобнее оставлять линию , так как при этом сохраняется возможность обслуживать внешние прерывания. Однако в моделях, которые имеют в своём составе модуль синхронизации ICG08 (KX8, KX2 и другие), низкий уровень потенциала на входе приведёт к автоматическому изменению режима тактирования МК и, как следствие, потере связи с ПК.

Модули FLASH ПЗУ многих МК семейства HC908 защищены от несанкционированного доступа 8 байтами секретности. Сразу после входа в отладочный режим работы такие МК ожидают от ПК посылки этих байтов. Если полученная последовательность байтов секретности совпадает с содержимым соответствующих ячеек памяти, то схема защиты разблокируется на весь сеанс работы МК в отладочном режиме. Если полученная от компьютера последовательность байтов секретности не совпадает с эталонной последовательностью, то МК всё же продолжит работать в отладочном режиме. Однако попытки выполнить команды чтения памяти из области FLASH ПЗУ будут возвращать неверные значения, а попытки выполнить программу, которая записана во FLASH ПЗУ, вызовут сброс по несуществующему адресу. При работе в отладочном режиме без разблокировки схемы защиты FLASH ПЗУ доступно для стирания. Пользователь может загрузить в ОЗУ программу стирания и выполнить эту операцию. В процессе её реализации область кодов секретности будет также очищена.

Внутрисхемные симуляторы ICS08

Рассмотренный выше режим работы использует разнообразные средства отладки для МК семейства HC908. Рассказ о них целесообразно начать с внутрисхемных симуляторов ICS08xx (хх — серия МК в пределах семейства HC908). Комплект ICS08 состоит из аппаратной платформы (рис. 1) и пакета сервисного программного обеспечения, который был разработан партнёром Motorola фирмой Pemicro Inc. (www.pemicro.com). Пакет ICS08 постоянно совершенствуется, появляются новые версии для обслуживания новых моделей семейства HC908. Особенность пакета состоит в том, что он не привязан жёстко к аппаратной платформе и является свободно распространяемым продуктом. Поэтому программный пакет ICS08 используется многими другими средствами отладки, в том числе и российскими. Более того, используя пакет ICS08 и самостоятельно выполнив схемотехнику для перевода МК в отладочный режим работы (интерфейс MON08), Вы можете создать полнофункциональное средство отладки прямо на плате разрабатываемого изделия.

Рисунок 1. Внутрисхемный симулятор ICS08

Аппаратные и программные средства внутрисхемных симуляторов позволяют реализовать 4 технологии отладки:

  • Программирование МК. В режиме программатора выполняется сначала стирание FLASH-памяти МК, а затем занесение в заданную область постоянной памяти МК таблиц данных или кодов прикладной программы управления.
  • Отладка в режиме программной симуляции. Программно-логическая модель МК моделируется на персональном компьютере, поэтому аппаратные средства ICS08 не требуются вовсе. Пакет программного симулятора в составе ICS08 имитирует работу не только процессорного ядра HC08, но и всех периферийных модулей выбранной модели МК. Обладает развитым полноэкранным графическим интерфейсом, позволяет вести отладку в символьных обозначениях регистров специальных функций.
  • Отладка в замедленном масштабе времени. Именно этот способ отладки называют режимом внутрисхемной симуляции (ICS - In-Circuit Simulator). Способ предназначен для совместной отладки прикладной программы управления и аппаратных средств сопряжения с объектом целевой системы. При этом способе формирование сигналов управления на выходах портов и ввод сигналов обратной связи о состоянии объекта управления осуществляет МК именно той модели, которая предполагается для использования в целевой системе. Однако программу управления "выполняет" не МК, а персональный компьютер, используя для этого программно-логическую модель МК. Коды отлаживаемой программы загружаются в память ПК, резидентная память программ МК при этом может быть очищена или даже содержать коды другой программы управления. МК работает в отладочном режиме. Цикл исполнения каждой команды прикладной программы в ПК включает сеанс связи с МК. Используя перечисленные выше команды монитора отладки, ПК передаёт в МК сформированные в цикле исполнения предыдущей команды выходные воздействия, а также производит чтение входных сигналов на линиях портов МК и передачу их в ПК. Затем ПК "исполняет" очередную инструкцию на языке ассемблера МК. Таким образом, для интерфейсов сопряжения и объекта управления в целом создаётся иллюзия работы под управлением целевого МК, но в замедленном по отношению к реальному масштабе времени. Отсюда и название — "симулятор".
  • Отладка в реальном масштабе времени. Данный способ называют режимом внутрисхемной эмуляции. Аналогично предыдущему, он предназначен для совместной отладки программного обеспечения и аппаратных средств целевой системы управления. В отличие от предыдущего, при этом способе отладки прикладную программу управления исполняет сам МК. Отлаживаемые фрагменты программы должны быть предварительно занесены во внутреннюю Flash-память МК, для чего следует использовать режим программирования.

Сравним два последних способа. В режиме внутрисхемной симуляции ПК анализирует состояние всех программно доступных ресурсов МК после исполнения каждой команды прикладной программы на языке ассемблера. Поэтому число возможных контрольных точек (до 64) ограничено лишь размером программного буфера пакета в составе сервисного ПО ICS08. Контрольные точки могут быть заданы в абсолютном коде, в символьном виде, они могут быть статическими и динамическими, могут задаваться в виде условий обращения к определённым ячейкам памяти МК или по достижении содержимым регистров процессорного ядра заданных значений. В режиме внутрисхемной эмуляции такой развитый сервис установки контрольных точек невозможен, поскольку отличается сам механизм останова. Его реализует специальный модуль контрольных точек BREAK08, который активизируется при работе каждого МК семейства HC908 в отладочном режиме. Принцип действия модуля BREAK08 следующий:

  • ПК заносит в двухбайтовый программно доступный регистр модуля BREAK08 абсолютный адрес контрольной точки и запускает программу на исполнение;
  • содержимое этого регистра непрерывно сравнивается с кодом внутренней магистрали адреса МК;
  • при равенстве кодов генерируется специальное прерывание, и МК переходит на программу монитора отладки;
  • ПК считывает внутренние программно доступные ресурсы МК в память и отображает их на экране дисплея.

Таким образом, с момента запуска до остановки в контрольной точке прикладная программа будет выполняться в реальном времени. Поскольку модуль BREAK08 имеет только один регистр, то на каждом этапе отладки возможна установка одной контрольной точки. Причём, если оператор неверно предположил путь исполнения программы, и заданная им контрольная точка нико-гда не достигается, то прикладная программа будет исполняться непрерывно, связь МК с ПК будет утеряна. Останов выполнения программы и восстановление связи МК с ПК в этом случае возможны только посредством сброса МК. Отметим, что режим внутрисхемной эмуляции не исключает возможности пошаговой отладки. Такой режим реализуем путём занесения в регистр модуля BREAK08 адреса следующей команды при остановке перед исполнением текущей команды. Повторяющаяся последовательность действий легко автоматизируется и не требует от оператора работы с абсолютными адресами. А вот про условные контрольные точки, которые требуют анализа содержимого регистров центрального процессора и прочих вспомогательных переменных в ПК после исполнения микроконтроллером каждой команды, в режиме внутрисхемной эмуляции придётся забыть. Это "расплата" за возможность отладки в реальном времени.

Рассматриваемые режимы отладки различаются также механизмом взаимодействия с периферийными модулями МК. В режиме внутрисхемной симуляции ПК имитирует работу не только процессорного ядра, но и большинства периферийных модулей. Например, если модуль таймера используется в режиме входного захвата, то ПК будет моделировать его работу следующим образом:

  • ПК записывает задаваемые в ходе исполнения прикладной программы слова инициализации не в реальные регистры режима таймера, а в одноимённые регистры программно-логической модели МК в ПК;
  • ПК читает состояние линии порта МК, которая при реальной инициализации должна была бы выполнять альтернативную функцию захвата. При соответствующем изменении уровня сигнала, поступающего с реального объекта управления, ПК фиксирует событие захвата и, аналогично реальному МК, копирует содержимое мнимого счётчика временной базы в регистры захвата;
  • текущее содержимое мнимого счётчика временной базы определяется не реальным временем, а лишь числом тактов, которое должен был бы израсходовать физический МК для исполнения заданной оператором последовательности команд.

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

На практике, механизм взаимодействия с периферийными модулями МК в режиме внутрисхемной симуляции несколько сложнее. Дело в том, что при полном адекватном воспроизведении функций выводов МК невозможно отказаться от самостоятельной работы отдельных периферийных модулей МК. Прежде всего, это относится к модулю АЦП, поскольку выполнить преобразование аналогового сигнала в цифровой код только программными средствами невозможно. Поэтому встроенный АЦП в режиме внутрисхемной симуляции производит непосредственную оцифровку и с указанным в техническом описании временем преобразования. Модули последовательных интерфейсов SPI08 и SCI08 также работают в реальном масштабе времени, поскольку они должны взаимодействовать с другими компонентами системы, скорость обмена которых не может быть произвольной. Сторожевой таймер (модуль COP08) при переводе МК в отладочный режим работы автоматически отключается. Более подробно о работе модулей МК семейства HC908 в режимах отладки можно узнать из табл. 2.

Таблица 2. Особенности работы встроенных модулей МК семейства HC908 в различных режимах отладки

Тип встроенного
модуля
Режимы отладки
Программная симуляция Внутрисхемная симуляция Внутрисхемная отладка
CGM08
Симулируется программно* Симулируется программно Работает модуль МК****
COP08
Симулируется программно Отключен Отключен
IRQ08
Симулируется программно Аппаратная поддержка*** Работает модуль МК
KBI08
Симулируется программно Аппаратная поддержка Работает модуль МК
I/O ports
Симулируется программно Аппаратная поддержка Работает модуль МК
SCI08
Программируется буфер 256 значений** Работает модуль МК Работает модуль МК
SPI08
Программируется буфер 256 значений Работает модуль МК Работает модуль МК
TBM08
Симулируется программно Симулируется программно Работает модуль МК
TIM08
Симулируется программно Аппаратная поддержка Работает модуль МК
ADC08
Программируется буфер 256 значений Работает модуль МК Работает модуль МК
*Работа модуля МК симулируется программным обеспечением персонального компьютера.
**Работа модуля симулируется программно, для имитации изменения состояния входов можно запрограммировать до 256 значений, которые будут последовательно использоваться программным обеспечением для симуляции.
***Работа модуля симулируется программно, но для этого используется информация о реальном состоянии входов микроконтроллера. Состояние выходов генерируется специальной программой, загружаемой в память МК.
****В этом режиме модуль МК работает в режиме реального времени, исполняя загруженную прикладную программу.

В режиме внутрисхемной эмуляции все периферийные модули МК, за исключением сторожевого таймера, работают самостоятельно. При остановке выполнения отлаживаемой программы в контрольной точке реальный МК переходит к выполнению программы монитора отладки. Только в этом случае оператор сможет увидеть на экране дисплея состояние регистров МК, в том числе и периферийных модулей. Выполнение любой программы возможно только при работающей системе тактирования. Следовательно, после останова отлаживаемой программы все периферийные модули МК продолжают работать. В результате, видимое оператором совокупное состояние периферии МК при остановке в контрольной точке перестаёт соответствовать предполагаемому состоянию в ходе непрерывного выполнения тестируемой программы. Более того, продолжение исполнения отлаживаемой программы в большинстве случаев будет происходить при уже изменённом состоянии периферии, то есть не будет соответствовать процессу управления в реальном времени. Однако такое состояние МК является объективной реальностью и ни в коем случае не может быть аргументом против режима внутрисхемной эмуляции.

Все рассмотренные выше режимы отладки обслуживаются свободно предоставляемым пользователям программным обеспечением (сайт www.pemicro.com), которое включает следующие компоненты:

  • WINIDE — интегрированная среда разработки, позволяющая проводить весь цикл работ от создания программного кода до загрузки его во FLASH-память МК и отладки целевой системы; CASM08W — макроассемблер;
  • ICS08xxW — программный/внутрисхемный симулятор (хх зависит от типа микроконтроллера);
  • PROG08SW — программное обеспечение для загрузки кода во FLASH-память микроконтроллера;
  • ICD08xxSW — программное обеспечение для внутрисхемной отладки/эмуляции.

Все перечисленные компоненты работают под управлением операционной системы Windows.

Универсальный отладочный интерфейс Cyclon
Рисунок 3. Универсальный отладочный интерфейс "Cyclon"

Универсальный отладочный интерфейс Kit MON0
Рисунок 4. Универсальный отладочный интерфейс "Kit MON08"

Универсальный отладочный интерфейс DBG08
Рисунок 5. Универсальный отладочный интерфейс "DBG08"

Оценочная плата 68HC908KX8EVB
Рисунок 6. Оценочная плата "68HC908KX8EVB"

Учебный стенд LabKit08
Рисунок 7. Учебный стенд "LabKit08"

Плата внутрисхемного симулятора ICS08 включают 2 функциональных блока:

  • универсальный для МК семейства HC08 отладочный интерфейс MON08 с переходным разъёмом 1;
  • набор розеток для всех типов МК одной серии в пределах семейства HC908 c разъёмами 2.

Интерфейс MON08 формирует необходимые уровни сигналов для перевода МК семейства HC908 в отладочный режим работы. Содержит три функциональных блока: генератор повышенного напряжения VTST, преобразователь уровней RS-232 и блок логики, который формирует уровни сигналов в соответствие с табл. 1. Схемотехническое исполнение интерфейса MON08 может быть различным, простые варианты включают не более 6 ИС малой степени интеграции [2,3]. Важно, что любое из корректно реализованных схемных решений подходит для большинства моделей МК семейства HC908.

Набор розеток для МК, установленных на плате ICS08, специализирует внутрисхемные симуляторы для группы моделей МК. В настоящее время реализованы 10 комплектов ICS08 (табл. 3), новые версии становятся доступными практически одновременно с появлением новых моделей МК.

Таблица 3.Модели внутрисхемных симуляторов ICS08

Модель внутрисхемного симулятора Модели МК, подлежащие отладке
M68ICS08JLJK MC68HC908JL3, MC68HC908JK3, MC68HC908JK1
M68ICS08GP MC68HC908GP32
M68ICS08GR MC68HC908GR4, MC68HC908GR8
M68ICS08MR MC68HC908MR8, MC68HC908MR16, MC68HC908MR32
M68ICS08KX MC68HC908KX2, MC68HC908KX8
M68ICS08JB MC68HC908JB1, MC68HC908JB8
M68ICS08RK MC68HC908RF2, MC68HC908RK2
M68ICS08SR MC68HC908SR12
M68ICS08AB MC68HC908AB32
M68ICS08AS/AZ MC68HC908AZ60, MC68HC908AZ60A, MC68HC908AS60, MC68HC908AS60A

Каждый комплект ICS08 позволяет организовать два конструктивных решения целевой платы на этапе отладки проектируемой системы:

  • МК находится на плате аппаратной платформы ICS08. Гибкий кабель типа 2, число линий которого равно числу выводов выбранной модели МК, связывает платформу с платой целевой системы;
  • МК находится на плате разрабатываемого изделия. Гибкий кабель типа 1 связывает плату ICS08 со специально выполненным на целевой плате отладочным разъёмом (от 5 до 16 контактов, в зависимости от схемотехники целевой платы и желаемых сервисных функций отладки [2,3]). В этом режиме возможно также программирование МК на плате конечного изделия.

Заметим, что в первом случае комплект ICS08xx следует подбирать в соответствие с моделью МК семейства HC908 ( табл. 3). Напротив, во втором режиме используется общая часть аппаратных средств внутрисхемных симуляторов ICS08, которая практически идентична для всех МК семейства HC908 и в различных описаниях именуется отладочным интерфейсом MON08.

Интерфейсы MON08 и платы развития

Простота схемотехники и универсальность отладочного интерфейса MON08, с одной стороны, и доступность качественного сервисного ПО отладки, с другой стороны, побудили многие фирмы к созданию собственных недорогих аппаратных средств отладки для МК семейства HC908 (рис. 3-6). Все эти средства можно разбить на три группы:

  • универсальные отладочные интерфейсы MON08;
  • платы развития или Starter Kit;
  • универсальные программаторы для МК семейства HC908.

К устройствам первого типа следует отнести "Kit MON08" (КТЦ МК, г. Москва), "DBG08" (Beta Control, Чехия), "Cyclone" (Pemicro, США). Все эти устройства позволяют вести отладку в режимах внутрисхемной симуляции и эмуляции, а также многократно программировать практически любые МК семейства HC908. Несмотря на свою универсальность, устройства всё же имеют некоторые отличия. Так "Cyclone" (www.pemicro.com) имеет встроенный контроллер асинхронного последовательного обмена и определитель частоты тактирования МК целевой системы. Вследствие этого необходимость измерения и предварительного расчёта частоты обмена для назначения опций сервисного ПО отпадает. Кроме того, "Cyclone" обеспечит отладку МК в расширенном диапазоне напряжений питания от 1,8 до 5,0 В. Отладочный интерфейс "Kit MON08" (www.cec-mc.ru) работает только при напряжении питания 5,0 В ± 10%, что требует аналогичного напряжения питания целевой системы в отладочном режиме. При автономной эксплуатации напряжение питания целевой системы может быть иным. Кроме того, "Kit MON08" позволяет вести отладку МК MC68HC908MR8 - единственной модели семейства HC908 с двухпроводным отладочным интерфейсом. Модель "DBG08" (www.betacontrol.cz) так же, как и "Kit MON08", допускает работу только при питании 5,0 В ± 10%.

Устройствами второго типа являются контроллеры-конструкторы "Kit JL3" фирмы КТЦ МК и серия "EVB08" фирмы Beta Control. Эти изделия включают МК той или иной модели, интерфейс MON08 и свободное поле для установки периферийных компонентов пользователем. Контроллер "Kit JL3" предназначен для создания систем только на основе МК MC68HC908JL3. Серия "EVB08" включает контроллеры-конструкторы трёх модификаций: 68HC908KX8EVB, 68HC908JK3EVB, 68HC908GP32EVB. Изделия отличаются ориентацией на учебный процесс. Они имеют на плате простейшее устройство цифрового ввода/вывода (две линии портов снабжены кнопками и светодиодами), устройство генерации внешних прерываний, интегральный датчик температуры и возможность подключения внешнего аналогового сигнала. Все модификации "EVB08" имеют мезонинную конструкцию: интерфейс MON08, именуемый "DBG08", выполнен на отдельной плате (см.выше), которая устанавливается "наездником" на плату собственно контроллера. Контроллер имеет режим автономной работы и после занесения программы может использоваться в качестве встраиваемой системы управления.

В лаборатории микропроцессорной техники МИФИ разработан стенд "LabKit08", предназначенный для создания лабораторных практикумов по изучению микроконтроллеров семейства HC908, практического освоения их программирования, получения навыков отладки микропроцессорных систем на базе однокристальных МК. В составе "LabKit08" - стандартный интерфейс отладки MON08, позволяющий подключать макет к последовательному порту персонального компьютера для программирования МК и отладки программ. Cтенд содержит микроконтроллер MC68HC908GP32 и набор периферийных устройств: двухстрочный жидкокристаллический дисплей, 12-кнопочную клавиатуру, пьезокерамический звукоизлучатель, светодиодный индикатор, датчик температуры. Также имеется порт обмена по интерфейсу RS-232, 6 доступных пользователю каналов 8-разрядного АЦП и датчик угла поворота.

Универсальным программаторами являются CPROG08SZ фирмы Pemicro и программатор 08prog.efo фирмы ЭФО (Санкт-Петербург, www.efo.ru).

Стратегии отладки

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

  1. В процессе отладки МК на плате целевой системы отсутствует. Вместо него установлена розетка или каждый вывод МК дублируется контактом линейного разъёма. Целевая плата соединена высокочастотным гибким кабелем с платой ICS08xx. В течение всего процесса отладки управляющую программу будет исполнять МК ICS08xx. Заключительную версию программы следует занести в резидентную FLASH-память МК, используя плату ICS08xx, а затем установить МК в розетку платы целевой системы. Учитывая, что для большинства МК семейства HC908 имеются версии в DIP корпусах, такая стратегия вполне приемлема. Данная стратегия реализуема с использованием ICS08xx, может быть также реализована на основе "Kit JL3" и "EVB08".
  2. Плата целевой системы имеет разъём с выводами для подключения интерфейса MON08. Корпус МК посредством пайки установлен на плату целевой системы. Подключив целевую систему к отладочному интерфейсу MON08, Вы используете любой из режимов отладки, а затем программируете МК. Для реализации этой стратегии Вы можете в первую очередь применить "Kit MON08", "DBG08", "Cyclone" (эти изделия универсальные), а также любой комплект ICS08 и "Kit JL3".
  3. Вы выполнили аппаратные средства интерфейса MON08 на плате целевой системы. В этом случае нет необходимости в приобретении дополнительных средств отладки. Воспользуйтесь свободно распространяемой версией сервисного ПО отладки и программирования.
  4. Вы не хотите сразу проектировать плату целевой системы. Тогда следует приобрести дешёвый контроллер-конструктор, на монтажном поле которого выполнить недостающие компоненты интерфейса сопряжения с объектом управления. Все рассмотренные ранее режимы отладки и программирования будут реализуемы. Используйте "Kit JL3" или одну из модификаций "EVB08".

В заключение отметим, что отладочный интерфейс MON08 предоставляет возможность ведения отладки программы, исполняемой микроконтроллером в системе не только на языке Ассемблера, но и на языках высокого уровня. В настоящее время для процессорного ядра HC08 разработаны пакеты компиляторов с языка Си и отладчики с драйвером для MON08. Сведения о компиляторах и их демонстрационные версии можно найти на сайтах www.imagecraft.com и www.metrowerks.com.

Литература

  1. Ремизевич Т.В. Микроконтроллеры для встраиваемых приложений. От общих подходов к семействам HC05 и HC08 фирмы Motorola. М.: Додека, 2000. 272 с.
  2. Ремизевич Т.В. Новые модели микроконтроллеров семейства HC908 фирмы Motorola // >Chip News № 5 2002 . С. 5–13.
  3. Панфилов Д., Ремизевич Т., Архипов А. Устройство отладки систем на основе микроконтроллеров HC908 // Электронные компоненты и системы. 2001. № 4 (44). С. 18–22.
  4. Панфилов Д., Ремизевич Т., Архипов А. Простейшее средство отладки для микроконтроллеров семейства HC908 фирмы Моторола // Радио. 2002. № 2. С. 27.






Реклама на сайте
тел.: +7 (495) 514 4110. e-mail:admin@eust.ru
1998-2014 ООО Рынок микроэлектроники