Т. Ремизевич, А. Архипов, С. Овчинкин, И. Чепурин Стратегии отладки микроконтроллеров семейства HC908┘ или многоликий внутрисхемный симулятор ICS08Поддержка аппаратными средствами МК режимов программирования и отладки в системе при прочих функциональных достоинствах МК является одним из определяющих факторов при выборе элементной базы новой разработки. Многие 8-разрядные МК разных фирм-производителей имеют в сво╦м составе специальный модуль внутрисхемной отладки. Для весьма динамично развивающегося 8-разрядного семейства HC908 фирмы Motorola [1,2] такой модуль носит название "Monitor Module". Как грамотно воспользоваться этим модулем? Какую дополнительную схемотехнику выполнить на плате целевой системы? Какие программные средства предоставляет фирма для поддержки отладки и программирования в системе? На все эти вопросы должна ответить наша статья. Технология отладки и программирования однокристального МК в системе предполагает, что МК устанавливается на целевую плату посредством пайки в незапрограммированном состоянии. Занесение прикладной программы в МК с многократной е╦ перезаписью в процессе отладки производится прямо на плате целевой системы под управлением инструментального ПК. Связь МК с ПК в процессе программирования и отладки осуществляется через специальный "отладочный" порт в составе МК. В рабочем режиме целевая плата просто отсоединяется от ПК, и она готова к работе. Более того, если в процессе эксплуатации потребуется изменить рабочую программу, то такая операция не потребует замены МК и выполнения дополнительных монтажных работ. Необходимо будет лишь восстановить связь МК целевой системы с ПК и воспользоваться соответствующим программным обеспечением. Каковы требования к программным и аппаратным средствам самого МК, чтобы такая технология отладки и программирования стала возможной? Во-первых, резидентная память программ МК должна быть многократно программируемой. В настоящее время такая память выполняется по технологии FLASH, в редких случаях ≈ по технологии EEPROM. Модуль резидентной FLASH-памяти в составе МК должен иметь повышающий регулятор напряжения. Тогда операции стирания и программирования FLASH ПЗУ можно будет вести только при питании МК от "рабочего" источника напряжения. Дополнительный источник не потребуется. Во-вторых, МК должен иметь специальный отладочный режим работы, в котором прикладная программа работает под управлением программы монитора отладки. В-третьих, МК должен иметь специальный "отладочный" порт для обмена с инструментальным ПК. Программная поддержка этого порта является одной из функций программы монитора отладки. В 8-разрядных МК, число выводов корпуса которых невелико, для обмена с ПК используются одна или две линии, то есть обмен вед╦тся в последовательном коде. Отладочный режим работы МК семейства HC908 Отладочный режим работы (Monitor mode) позволяет организовать "диалог" МК с ПК для отладки программ управления и выполнения операций стирания/программирования резидентной памяти программ. При переходе МК в отладочный режим работы аппаратные средства автоматически подменяют векторы сброса и программного прерывания. В результате, после сброса по внешнему сигналу на входе или по команде программного прерывания SWI сч╦тчик адреса МК загружается начальным адресом программы монитора отладки. Эта программа располагается в специальной области памяти, которая лежит за пределами адресного пространства программы пользователя. Прошивка монитора отладки осуществляется на этапе производства. Пользователь может либо активизировать эту программу посредством перевода МК в отладочный режим работы, либо не использовать эту программу вообще. Варианты кода программы монитора отладки постоянно совершенствуются и поэтому различаются для разных моделей МК. Однако система команд отладки и форматы обмена данными с П Программа монитора отладки содержит в себе подпрограмму драйвера обмена по однопроводной двунаправленной линии (только в модели HC908MR8 используется двухпроводный последовательный обмен) и подпрограмму выполнения шести команд отладки, которые поступают в МК по этому однопроводному интерфейсу. Команды следующие: читать байт из памяти МК (ОЗУ или ПЗУ), записать байт в память МК (ОЗУ), читать два байта из памяти МК (ОЗУ или ПЗУ) с автоувеличением адреса, записать два байта в память МК (ОЗУ) с автоувеличением адреса, читать указатель стека, начать выполнение программы. С использованием перечисленных команд в ПК реализовано управляющее микроконтроллером программное обеспечение, которое позволяет выполнять следующие действия:
Все перечисленные действия, за исключением последнего, являются типовыми режимами работы средства отладки МП системы. Действия последнего пункта соответствуют типовым режимам программатора. Алгоритмы перевода МК в отладочный режим работы Большинство МК семейства HC908 имеют два алгоритма для перевода в отладочный режим работы. Первый алгоритм универсальный, он обеспечивает переход МК в отладочный режим независимо от того, находится в памяти МК программа, или эта память полностью очищена. Этот алгоритм следует использовать, если предполагается отладка прикладной программы. Возможность реализации программирования при этом получится автоматически. Второй алгоритм позволяет перевести в отладочный режим работы только незапрограммированный МК, то есть тот, в памяти которого на месте вектора сброса (ячейки памяти 0FFFEh и 0FFFFh) содержится код 0FFh. Второй алгоритм задействует меньшее число линий портов ввода/вывода МК, однако при его использовании единожды за-программированный МК уже нельзя будет снова перевести в отладочной режим работы даже для стирания и записи новой программы. Поэтому второй алгоритм целесообразно использовать на стадии производства изделия для целей поточного программирования. МК, допускающие работу с кварцевым резонатором 32,768 кГц (модели GP32, GR8/4, SR12), имеют дополнительный третий алгоритм перевода в отладочный режим работы. В отличие от первых двух алгоритмов, которые предполагают работу МК в отладочном режиме без использования синтеза-тора в модуле умножителя частоты CGM08, при третьем алгоритме резидентная программа монитора отладки запускает этот синтезатор. В результате, МК будет работать с частотой шины fBUS = 2,4576 МГц при тактировании от низкочастотного кварцевого резонатора 32,768 кГц. Третий алгоритм обладает тем же недостатком, что и второй: при его использовании возможна реализация только внутрисистемного программирования, но невозможна отладка. Для перевода МК семейства HC908 в отладочный режим по первому универсальному алгоритму необходимо выполнить следующие условия:
Таблица 1. Условия перевода МК HC908 в отладочный режим работы по универсальному алгоритму
В таблице могут быть мелкие неточности, поэтому рекомендуем обратиться к файлу в формате .pdf Если указанные условия выполнены, то для перевода МК в отладочный режим необходимо вызвать сброс МК по внешнему сигналу, для чего подать на вход сигнал низкого логического уровня, а затем восстановить на входе потенциал VTST. Для перевода МК семейства HC908 в отладочный режим по второму алгоритму необходимо выполнить такие условия:
Тогда после сброса МК перейд╦т в отладочный режим работы. Поскольку любая модель семейства 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 технологии отладки:
Сравним два последних способа. В режиме внутрисхемной симуляции ПК анализирует состояние всех программно доступных ресурсов МК после исполнения каждой команды прикладной программы на языке ассемблера. Поэтому число возможных контрольных точек (до 64) ограничено лишь размером программного буфера пакета в составе сервисного ПО ICS08. Контрольные точки могут быть заданы в абсолютном коде, в символьном виде, они могут быть статическими и динамическими, могут задаваться в виде условий обращения к определ╦нным ячейкам памяти МК или по достижении содержимым регистров процессорного ядра заданных значений. В режиме внутрисхемной эмуляции такой развитый сервис установки контрольных точек невозможен, поскольку отличается сам механизм останова. Его реализует специальный модуль контрольных точек BREAK08, который активизируется при работе каждого МК семейства HC908 в отладочном режиме. Принцип действия модуля BREAK08 следующий:
Таким образом, с момента запуска до остановки в контрольной точке прикладная программа будет выполняться в реальном времени. Поскольку модуль BREAK08 имеет только один регистр, то на каждом этапе отладки возможна установка одной контрольной точки. Прич╦м, если оператор неверно предположил путь исполнения программы, и заданная им контрольная точка нико-гда не достигается, то прикладная программа будет исполняться непрерывно, связь МК с ПК будет утеряна. Останов выполнения программы и восстановление связи МК с ПК в этом случае возможны только посредством сброса МК. Отметим, что режим внутрисхемной эмуляции не исключает возможности пошаговой отладки. Такой режим реализуем пут╦м занесения в регистр модуля BREAK08 адреса следующей команды при остановке перед исполнением текущей команды. Повторяющаяся последовательность действий легко автоматизируется и не требует от оператора работы с абсолютными адресами. А вот про условные контрольные точки, которые требуют анализа содержимого регистров центрального процессора и прочих вспомогательных переменных в ПК после исполнения микроконтроллером каждой команды, в режиме внутрисхемной эмуляции прид╦тся забыть. Это "расплата" за возможность отладки в реальном времени. Рассматриваемые режимы отладки различаются также механизмом взаимодействия с периферийными модулями МК. В режиме внутрисхемной симуляции ПК имитирует работу не только процессорного ядра, но и большинства периферийных модулей. Например, если модуль таймера используется в режиме входного захвата, то ПК будет моделировать его работу следующим образом:
Такая организация процесса отладки очень удобна для оператора, поскольку остановка в контрольной точке в режиме внутрисхемного симулятора эквивалентна прекращению работы системы тактирования МК. Вследствие этого одновременно с остановкой программы "приостанавливают" работу и периферийные модули. При дальнейшем прогоне программы работа периферийных модулей возобновляется с того состояния, в котором они были "приостановлены". Именно такой режим работы наиболее удобен для наблюдения за процессом реализации микроконтроллером управляющей программы. Но именно этот режим не достижим, если управляющую программу в процессе отладки исполняет сам МК, то есть при отладке в режиме внутрисхемной эмуляции. На практике, механизм взаимодействия с периферийными модулями МК в режиме внутрисхемной симуляции несколько сложнее. Дело в том, что при полном адекватном воспроизведении функций выводов МК невозможно отказаться от самостоятельной работы отдельных периферийных модулей МК. Прежде всего, это относится к модулю АЦП, поскольку выполнить преобразование аналогового сигнала в цифровой код только программными средствами невозможно. Поэтому встроенный АЦП в режиме внутрисхемной симуляции производит непосредственную оцифровку и с указанным в техническом описании временем преобразования. Модули последовательных интерфейсов SPI08 и SCI08 также работают в реальном масштабе времени, поскольку они должны взаимодействовать с другими компонентами системы, скорость обмена которых не может быть произвольной. Сторожевой таймер (модуль COP08) при переводе МК в отладочный режим работы автоматически отключается. Более подробно о работе модулей МК семейства HC908 в режимах отладки можно узнать из табл. 2. Таблица 2. Особенности работы встроенных модулей МК семейства HC908 в различных режимах отладки
*Работа модуля МК симулируется программным обеспечением персонального компьютера. В таблице могут быть мелкие неточности, поэтому рекомендуем обратиться к файлу в формате .pdf В режиме внутрисхемной эмуляции все периферийные модули МК, за исключением сторожевого таймера, работают самостоятельно. При остановке выполнения отлаживаемой программы в контрольной точке реальный МК переходит к выполнению программы монитора отладки. Только в этом случае оператор сможет увидеть на экране дисплея состояние регистров МК, в том числе и периферийных модулей. Выполнение любой программы возможно только при работающей системе тактирования. Следовательно, после останова отлаживаемой программы все периферийные модули МК продолжают работать. В результате, видимое оператором совокупное состояние периферии МК при остановке в контрольной точке переста╦т соответствовать предполагаемому состоянию в ходе непрерывного выполнения тестируемой программы. Более того, продолжение исполнения отлаживаемой программы в большинстве случаев будет происходить при уже измен╦нном состоянии периферии, то есть не будет соответствовать процессу управления в реальном времени. Однако такое состояние МК является объективной реальностью и ни в коем случае не может быть аргументом против режима внутрисхемной эмуляции. Все рассмотренные выше режимы отладки обслуживаются свободно предоставляемым пользователям программным обеспечением (сайт www.pemicro.com), которое включает следующие компоненты:
Все перечисленные компоненты работают под управлением операционной системы Windows. Структура аппаратных средств ICS08 представлена на рис. 2. Плата внутрисхемного симулятора ICS08 включают 2 функциональных блока: Рисунок 2. Структура аппаратных средств ICS08 Рисунок 3. Универсальный отладочный интерфейс "Cyclon" Рисунок 4. Универсальный отладочный интерфейс "Kit MON08" Рисунок 5. Универсальный отладочный интерфейс "DBG08" Рисунок 6. Оценочная плата "68HC908KX8EVB" Рисунок 7. Учебный стенд "LabKit08" Рисунок 8. Программатор 08prog.efo
Интерфейс MON08 формирует необходимые уровни сигналов для перевода МК семейства HC908 в отладочный режим работы. Содержит три функциональных блока: генератор повышенного напряжения VTST, преобразователь уровней RS-232 и блок логики, который формирует уровни сигналов в соответствие с табл. 1. Схемотехниче-ское исполнение интерфейса MON08 может быть различным, простые варианты включают не более 6 ИС малой степени интеграции [2,3]. Важно, что любое из корректно реализованных схемных решений подходит для большинства моделей МК семейства HC908. Набор розеток для МК, установленных на плате ICS08, специализирует внутрисхемные симуляторы для группы моделей МК. В настоящее время реализованы 10 комплектов ICS08 (табл. 3), новые версии становятся доступными практически одновременно с появлением новых моделей МК. Таблица 3.Модели внутрисхемных симуляторов ICS08
В таблице могут быть мелкие неточности, поэтому рекомендуем обратиться к файлу в формате .pdf Каждый комплект ICS08 позволяет организовать два конструктивных решения целевой платы на этапе отладки проектируемой системы:
Заметим, что в первом случае комплект ICS08xx следует подбирать в соответствие с моделью МК семейства HC908 ( табл. 3). Напротив, во втором режиме используется общая часть аппаратных средств внутрисхемных симуляторов ICS08, которая практически идентична для всех МК семейства HC908 и в различных описаниях именуется отладочным интерфейсом MON08. Интерфейсы MON08 и платы развития Простота схемотехники и универсальность отладочного интерфейса MON08, с одной стороны, и доступность качественного сервисного ПО отладки, с другой стороны, побудили многие фирмы к созданию собственных недорогих аппаратных средств отладки для МК семейства HC908 (рис. 2-6). Все эти средства можно разбить на три группы:
К устройствам первого типа следует отнести "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). Стратегии отладки Используя представленную выше гамму деш╦вых программно-аппаратных средств, Вы можете выбрать подходящую Вам стратегию отладки и, в соответствие с ней, произвести проектирование платы разрабатываемой системы.
В заключение отметим, что отладочный интерфейс MON08 предоставляет возможность ведения отладки программы, исполняемой микроконтроллером в системе не только на языке Ассемблера, но и на языках высокого уровня. В настоящее время для процессорного ядра HC08 разработаны пакеты компиляторов с языка Си и отладчики с драйвером для MON08. Сведения о компиляторах и их демонстрационные версии можно найти на сайтах www.imagecraft.com и www.metrowerks.com. Литература
|
Ваш комментарий к статье | ||||