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

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

Фирма Atmel предлагает разработчикам довольно широкий выбор средств внутрисхемной эмуляции, различных как по возможностям, так и по стоимости. Все предлагаемые внутрисхемные эмуляторы работают под управлением пакета AVR Studio. При этом интерфейс пользователя остается неизменным вне зависимости от того, какой тип внутрисхемного эмулятора используется.

Использование внутрисхемных эмуляторов позволяет отлаживать приложения, в которых задействованы периферийные узлы и режимы микроконтроллеров, поддержка которых отсутствует в программном симуляторе.

ICEPRO / ICE10

ICEPRO представляет собой классический внутрисхемный эмулятор. Он поддерживает следующие типы микроконтроллеров: ATtiny10, ATtiny11, Attiny12, ATtiny22, ATtiny28, AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4414, AT90S8515, AT90S4434, AT90S8535, AT90S2333, AT90S4433.

Управление ICEPRO осуществляется через COM-порта персонального компьютера. ICEPRO содержит внутренний стабилизатор питающего напряжения, поэтому питание внутрисхемного эмулятора может осуществляться от источника нестабилизированного напряжения 9 - 15 Вольт.

Подключение ICEPRO к отлаживаемому устройству осуществляется при помощи выносной платы ATADCPOD, которая, в свою очередь, соединяется с отлаживаемыми устройствами при помощи плоских кабелей (все поддерживаемые микроконтроллеры разделены на группы, и каждой группе соответствует свой разъем на выносной плате и свой плоский кабель). На выносной плате установлены несколько переключателей и перемычек, с помощью которых производится конфигурирование ICEPRO. Состояние этих переключателей и перемычек определяет:

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

Если отлаживаемое устройство не имеет своего собственного источника питания, то в процессе отладки питание его может осуществляться от внутрисхемного эмулятора (однако при этом следует помнить об ограничении по потребляемому отлаживаемым устройством току).

ICEPRO поддерживает неограниченное число программных точек останова (то есть точек останова, заданных в AVR Studio). Помимо этого ICEPRO имеет пять входов аппаратного останова (Trigger Inputs). Эти входы могут использоваться для прерывания исполнения программы по какому-либо внешнему событию. Для поддержки отладки сложных систем в ICEPRO предусмотрены пять синхровыходов (Trigger Outputs). Подобно программной точке останова, пользователь может в AVR Studio задать точку генерации синхрособытия. При выполнении внутрисхемным эмулятором команды, соответствующей этой точке, на выбранном синхровыходе будет сформирован импульс. Этот импульс может быть использован для синхронизации каких-либо внешних устройств.

Еще одной из удобных функций, реализованных в ICEPRO, является возможность записи трассы, то есть сохранение последовательности исполнения инструкций микроконтроллером. Анализ записанной трассы позволяет выявить участки кода, исполнение которых по тем или иным причинам не происходит (Code Coverage Analysis). Такой анализ очень полезен при отладке программ, содержащих несколько процедур обработки прерываний, особенно если вложенность прерываний не разрешена.

При необходимости использования комплексной отладки в ICEPRO предусмотрен разъем для подключения логического анализатора.

С ростом номенклатуры микроконтроллеров AVR внутрисхемный эмулятор ICEPRO был заменен на более новую модель ICE10.

Возможности ICE10 расширены за счет поддержки еще одного микроконтроллера - ATtiny15. Для этого микроконтроллера разработана специальная выносная плата - ATtiny15POD. Эта выносная плата содержит четырехканальный десятиразрядный аналого-цифровой преобразователь (один из каналов которого может быть сконфигурирован как дифференциальный) и отключаемый предусилитель. Конфигурация ATtiny15POD осуществляется только под управлением пакета AVR Studio, переключатели для ручной конфигурации на этой выносной плате отсутствуют.

MegaICE / ICE30 / ICE50

Внутрисхемный эмулятор megaICE и внешне и функционально очень похож на рассмотренный выше ICEPRO. Отличие заключается только в том, что megaICE был предназначен только для внутрисхемной эмуляции одного типа микроконтроллера - ATmega103 и, соответственно, имел другую выносную плату (ATmegaPOD). С ростом номенклатуры семейства ATmega внутрисхемный эмулятор megaICE был заменен на более новую модель ICE30.

Внутрисхемный эмулятор ICE30 поддерживает следующие микроконтроллеры семейства ATmega: ATmega103, ATmega161, ATmega163, Atmega83 и ATmega32. Расширилось и количество используемых с ICE30 выносных плат. Для поддержки микроконтроллеров ATmega103 используется выносная плата ATmegaPOD (то есть та же , что и в эмуляторе megaICE). Поддержка микроконтроллеров ATmega161 осуществляется с использованием уже знакомой выносной платы ATADCPOD. А для оставшихся микроконтроллеров - ATmega163, ATmega83 и ATmega32 - разработана новая выносная плата ATmega163POD.

В настоящее время планируется замена ICE30 на усовершенствованный внутрисхемный эмулятор ICE50.

ICE200

Другим вариантом построения внутрисхемных эмуляторов является использование так называемых отладочных кристаллов. Отладочный кристалл представляет собой микросхему, содержащую то же процессорное ядро и набор периферийных устройств, и выполненную по той же технологии, что и целевой микроконтроллер. Но, в отличие от последнего, отладочный кристалл содержит узлы, позволяющие осуществлять доступ к его внутренним ресурсам извне, и, таким образом, управлять процессом отладки.

ICE200 представляет собой внутрисхемный эмулятор, построенный на основе отладочного кристалла. Преимущества построения внутрисхемного эмулятора на основе отладочного кристалла заключается в более точном соответствии поведения эмулятора и целевого микроконтроллера, а также в удешевлении такого внутрисхемного эмулятора по сравнению с классическим (поскольку отладочные кристаллы могут считаться стандартной продукцией микроэлектроники). Память программ отладочного кристалла ICE200 реализована на внешнем динамическом ОЗУ. Исполняемый код загружается в ОЗУ памяти программ при запуске отладчика AVR Studio в режиме поддержки внутрисхемного эмулятора ICЕ200.

ICE200 поддерживает следующие микроконтроллеры AVR: ATtiny10, Attiny11, ATtiny12, AT90S1200, AT90S2313, AT90S4414, AT90S8515, AT90S4434, AT90S8535, AT90S2333, AT90S4433. Причем поддерживаются как микроконтроллеры с напряжением питания 5 В, так и микроконтроллеры с напряжением питания 2,7 В - 3,6 В.

При разработке ICE200 специалисты фирмы Atmel стремились создать внутрисхемный эмулятор, доступный самому широкому кругу разработчиков. Для оптимального соотношения цена - функциональность решено отказаться от некоторых функций, реализованных в ранних моделях внутрисхемных эмуляторов Atmel (например ICEPRO). В ICE200 отсутствуют входы аппаратного останова и выходы синхронизации, а также не поддерживается режим записи трассы при выполнении отлаживаемой программы.

На сегодняшний день ICE200 является самым популярным внутрисхемным эмулятором, предлагаемым Atmel Corp.

Внутрисхемный эмулятор ICE200 представляет собой модульную конструкцию и состоит из:

Плата управления ICE200 связывается с персональным компьютером через COM-порт.

В ICE200 реализован режим диагностики узлов внутрисхемного эмулятора. Для осуществления диагностики надо установить тестовую панель на плату отладочного кристалла, и в AVR Studio выбрать пункт меню Tools -> ICE200 Diagnostic. В результате этого откроется окно, в котором отображены все этапы диагностики (рис. 5.2).

Рис. 5.2. Окно диагностики узлов и режимов

После запуска процесса диагностирования (кнопка Run) последовательно проверяются все узлы и режимы внутрисхемного эмулятора. Если при этом определяется, что микроконтроллер и ПЛИС на плате управления содержат устаревшие варианты прошивки, то программа диагностики предложит автоматически обновить конфигурацию ПЛИС и памяти программ микроконтроллера.

Для отладки с помощью ICE200 устройств, содержащих микроконтроллеры AVR, выполненные корпусах для поверхностного монтажа, фирма Atmel предлагает дополнительный набор адаптеров ATAVRSMD. Этот набор содержит адаптеры двух типов: целевые и специализированные. Целевой адаптер припаивается на плату отлаживаемого устройства вместо микроконтроллера, а специализированный адаптер служит переходником между целевым адаптером и платой, на которой установлен отладочный кристалл. ATAVRSMD содержит по два целевых адаптера для корпусов типа SOIC8, PLCC44 и TQFP44.

JTAGICE

Альтернативой внутрисхемной эмуляции является режим фоновой отладки. В англоязычной литературе этот режим обозначается термином "On-Chip Debugging", или OCD.

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

Для поддержки режима "On-Chip Debugging" блок управления отладкой должен быть частью самого отлаживаемого микроконтроллера. В новые микроконтроллеры семейства ATmega (например ATmega128, ATmega323, Atmega16) встроен блок OCD. Исполнение программного кода и доступ ко всем регистрами микроконтроллера в режиме фоновой отладки осуществляется под управлением этого блока.

Управление фоновой отладкой в микроконтроллерах AVR осуществляется по JTAG-интерфейсу, совместимому со стандартом IEEE1149.1 . Устройством, реализующим протокол управления, является JTAGICE.

Так же, как и рассмотренные выше внутрисхемные эмуляторы, JTAGICE подключается к COM-порту персонального компьютера. Управляющая программа является составной частью AVR Studio, и запускается соответствующей командой из меню Tools.

Кроме обеспечения режима фоновой отладки, JTAGICE может быть использован в качестве внутрисхемного программатора для микроконтроллеров AVR, имеющих JTAG-интерфейс.

Более подробное описание JTAGICE доступно на сайте Atmel по ссылке http://www.atmel.com/atmel/acrobat/doc2475.pdf.

В качестве стартового набора разработчика (Starter Kits) при выполнении лабораторного практикума в нашем случае используется отладочный модуль на базе ATmega8515, неполный аналог STK200, разработанный в ЮРГУЭС. Описание этого устройства приведено в разделе 6.


Hosted by uCoz