1158
.pdfА. А. Зубарев
ПРОГРАММНАЯ ЭМУЛЯЦИЯ УСТРОЙСТВ НА МИКРОКОНТРОЛЛЕРАХ В СРЕДЕ VISUAL MICRO LAB
VISUAL MICRO |
Release 3.12 |
for AVR |
Bring your microcontroller |
into the 21st Centuri… |
By Advanced Micro Tools |
R1 PB7 VDD 10K |
V1 PA0 VSS SLIDE; |
K1 PB7 VSS LATCHED |
Федеральное агентство по образованию Сибирская государственная автомобильно-дорожная академия
(СибАДИ)
А. А. Зубарев
ПРОГРАММНАЯ ЭМУЛЯЦИЯ УСТРОЙСТВ НА МИКРОКОНТРОЛЛЕРАХ В СРЕДЕ
VISUAL MICRO LAB
Учебное пособие
Омск Издательство СибАДИ
2007
УДК 681.06.621.3 ББК 32.973.26-018.2 З 91
Рецензенты д-р техн. наук, проф. А.П. Попов (ОмГТУ),
канд. техн. наук, доц. К.Р. Сайфутдинов (ОмГТУ)
Работа одобрена редакционно-издательским советом академии в качестве учебного пособия по дисциплинам “Проектирование автоматических систем”, “Микропроцессорные устройства автоматики” для специальности 220301 “Автоматизация технологических процессов и производств”, а также “Проектирование микропроцессорных систем ”, “Разработка микропроцессорных устройств диагностики автомобилей и тракторов” для специальности 140607 “Электрооборудование автомобилей и тракторов” и для проведения учебной практики.
Зубарев А.А. Программная эмуляция устройств на микроконтроллерах в среде Visual Micro Lab: Учебное пособие. – Омск: Изд-во СибАДИ, 2007. – 60 с.
Предназначено для студентов всех форм обучения по специальностям, изучающим проектирование автоматических систем на микроконтроллерах, и может быть
использовано в курсовом и дипломном проектировании. |
|
Учебное пособие в простой и доступной форме знакомит |
читателей с |
программным продуктом Visual Micro Lab (VMLAB) от фирмы Advanced Micro Tools,
предназначенным для моделирования электронных схем, содержащих однокристальный микроконтроллер. Использование VMLAB позволяет проверить работу устройства, содержащего микроконтроллер, дополненный любой частью аппаратных средств (внешних электронных компонентов), не паяя (не макетируя) его электрическую схему, при этом легко меняя состав программного и аппаратного обеспечения.
Приводятся описания пользовательского интерфейса, директив для описания электронной схемы и состава программного обеспечения, этапов создания проекта, порядок отладки и измерения параметров системы. Приведены примеры моделирования электрических схем. Изложение сопровождается подробно разработанными примерами и иллюстрациями.
Табл. 3. Ил. 23.
ISBN 5-93204-274-5 |
© А.А. Зубарев, 2007 |
ОГЛАВЛЕНИЕ |
|
1. Знакомство с программным продуктом Visual Micro Lab ……. |
4 |
1.1.Основные сведения о системе Visual Micro Lab ………………. |
4 |
1.2 Что такое виртуальная модель...................................................... |
4 |
1.3.Работа с VMLAB.............................…........................................... 5
1.4.Модели микроконтроллеров AVR фирмы Atmel.....…............... 5
1.5.Возможные узлы электрической схемы с МК AVR.................... 6
1.6.Особенности моделирования МК AVR...............................…..... 8
1.7. Какие режимы МК не моделируются…………..……………… 8
2.Пользовательский интерфейс VMLAB............................................ 9
2.1.Главное окно……………………………….…………………… 9
2.2.Панель инструментов ……………….……………….…………. 9
2.3.Панели проекта………………………..………………………… 11
2.4.Текстовый редактор…………………………………….……….. 12
2.5.Окно Code Notebook -записная книжка кода………………….. 14
2.6. Окно Scope – виртуальный осциллограф……………………… |
15 |
2.7. Окно просмотра Watch……………………………………….. |
16 |
2.8. Окно сообщений Messages…………………………………… |
17 |
2.9.Окно панели управления Control panel………………………. 17
2.10.Окна памяти Memory …………………………………………. 19
2.11.Окно регистров и флагов Registers ……………………………. 20
2.12. Окна внешних устройств Peripherals…………..……………… 21
2.13.Окно портов ввода/вывода I/O Ports …………………………. 21
2.14.Диалог модификации Modify Dialog…………..………………. 21
2.15.Менеджер просмотра Watch Manager..………………………… 22
2.16.Инспектор отладки Debug Inspector…………………..………... 23
2.17.Сообщения об ошибках и предупреждения……………………. 25
3.Основные директивы……………………………………………….. 29
4.Библиотека аппаратных компонентов…………………………… 36
5.Файлы, включаемые в проект……………………….…………….. 44 5.1. Спецификация файлов AVR ……………………….……………. 44 5.2.Проектный файл…………………………………………...……… 45 5.3. Использование GNU/WinAVR Cи-компилятора…….………… 47 5.4. Использование компиляторов сторонних разработчиков……… 49
6.Создание нового проекта…………………………………………… 50 6.1. Создание нового проекта по шагам……………………………. 50
6.2. Оптимизация работы VMLAB ………………………………… 52
6.3.Работа с двумя микроконтроллерами (режим Multiprocess)….. 53
7.Примеры проектов…………………………………………………… 54 Контрольные вопросы……………………………………………… 59
1. ЗНАКОМСТВО С ПРОГРАММНЫМ ПРОДУКТОМ
VISUAL MICRO LAB
1.1. Основные сведения о системе Visual Micro Lab
Visual Micro Lab визуальная микролаборатория, в дальнейшем VMLAB, является виртуальной средой проектирования (имитационного моделирования). Это инструмент проектирования схем на микроконтроллерах, объединяющий в одной среде:
-мощный многофайловый и многооконный редактор текста;
-встроенную среду разработки (Integrated Development Environment IDE) микроконтроллеров;
-символьный отладчик, обеспечивающий смешанный режим моделирования для аналогово-цифровых схем;
-устройство проверки качества кода.
VMLAB обеспечивает вас виртуальной лабораторией проектирования микроконтроллеров (МК), в которой моделируются аппаратные средства и программное обеспечение приложений. Это одновременно анализатор электрической цепи, IDE и мощный логический анализатор (цифровой осциллограф).
VMLAB обеспечивает преимущества:
гибкое представление аппаратной и программной (hw/sw) частей системы;
системные остановы в контрольных точках при отладке системы;
проверку кода: ICE предупреждает об относительно опасных подключениях порта ввода/вывода;
возможность пройти алгоритм управления с обратной связью с ICE, работающий в пошаговом режиме;
простое изменение аппаратных средств путем изменения некоторых данных в файле проекта (*.PRJ файле).
Впособии рассматривается существующая на сегодняшний день (декабрь 2006 г.) версия продукта V.3.12 с Web-сайта разработчика – http:// www. amctools.com.
1.2. Что такое виртуальная модель
Виртуальная модель (виртуальный прототип) – цельная модель приложения (включая программное обеспечение + аппаратные средства), которая позволяет воспроизводить его поведение в действительности.
VMLAB основан в уникальном движке моделирования CCCP (Concurrent Co-simulator of Circuits and Processors – параллельный имитатор цепей и процессов).
Преимущество использования виртуального прототипа состоит в том, что можно проверить работу устройства, содержащего микроконтроллер, дополненный любой частью аппаратных средств (внешних электронных компонент), не паяя (не макетируя) электрическую схему, при этом легко меняя состав программного и аппаратного обеспечения.
1.3. Работа с VMLAB
Чтобы создать приложение с VMLAB, необходимо:
1.Создать проектный файл (ПФ), указав в нем параметры МК и подключаемые программные модули, используя команду New Project или Оpen Project, если проект создан предварительно.
2.Добавить или изменить аппаратные средства вокруг МК в ПФ, используя меню Components.
3.Создать или изменить программные модули, определенные в шаге 1, используя встроенный текстовый редактор. Программные модули помещаются в окно Code Notebook.
4.Создать hw/sw базу данных, используя команду Build.
Любая ошибка/предупреждение будет показываться в окне сообщений. Двойной щелчок по сообщенной ошибке и VMLAB укажет её местоположение, переведя курсор непосредственно на строку, содержащую ошибку.
5.При отсутствии ошибок VMLAB включает зеленый свет на «светофоре» кнопке панели инструментов, запускающей приложение. На этом шаге вы может наблюдать переменные, аппаратные сигналы, содержание регистраторов МК, памяти и периферии; и шаг за шагом, просматривая анимированный код, останавливаясь в контрольных точках
ит.д., вы можете проверить работу приложения.
6.Когда приложение готово, вы получаете .HEX-файл для программирования МК.
Процесс программирования МК в настоящем учебном пособии не рассматривается.
При выключении или закрытии проекта VMLAB сохраняет «образ проектного состояния» для дальнейшей работы над проектом. При повторных открываниях проекта на экране дисплея появятся те же окна, которые были на нем в момент выключения или закрытия проекта.
1.4. Модели микроконтроллеров AVR фирмы Atmel
Модели МК, которые поддерживаются программой VMLAB, приведены в табл. 1.
|
|
|
Таблица 1 |
|
Модели МК AVR, которые поддерживает MVLab |
|
|||
Model |
Flash,Кбайт |
EEPROM,байт |
RAM,байт |
I/O |
ATiny11 |
1 |
--- |
--- |
6 |
ATiny12 |
1 |
--- |
--- |
6 |
ATiny15 |
1 |
64 |
--- |
6 |
ATiny22 |
2 |
128 |
128 |
6 |
AT90S2343 |
2 |
128 |
128 |
4 |
AT90S2323 |
2 |
128 |
128 |
3 |
AT90S1200 |
1 |
64 |
--- |
15 |
AT90S2313 |
2 |
128 |
128 |
15 |
AT90S4433 |
4 |
256 |
128 |
20 |
AT90S4414 |
4 |
256 |
256 |
32 |
AT90S8515 |
8 |
512 |
512 |
32 |
AT90S8515_64K |
8 |
5125 |
12 |
16 |
AT90S4434 |
4 |
256 |
256 |
32 |
AT90S8535 |
8 |
512 |
512 |
32 |
ATmega8 |
8 |
512 |
1024 |
23 |
ATmega16 |
16 |
512 |
1024 |
32 |
ATmega161 |
16 |
512 |
1024 |
32 |
ATmega161_64K |
16 |
512 |
1024 |
24 |
ATmega162 |
16 |
512 |
1024 |
32 |
ATmega32 |
32 |
1024 |
2048 |
32 |
ATmega64 |
64 |
2048 |
4096 |
48 |
ATmega128 |
128 |
4096 |
4096 |
48 |
ATmega128_64K |
128 |
4096 |
4096 |
40 |
Примечание. Устройства с суффиксом _64K представляют соответствующий МК с 64K внешнего SRAM.
1.5. Возможные узлы электрической схемы с МК AVR
Все выводы портов, вывод Reset (СБРОС) и выводы AREF являются электрическими узлами в ПФ. Электрические узлы, доступные для различных моделей МК, представлены в табл. 2.
|
Таблица 2 |
|
Электрические узлы, доступные для моделей МК |
Модель |
Доступные электрические узлы |
1 |
2 |
ATTiny11 |
СБРОС, PB0-PB5, ACO |
ATTiny12 |
СБРОС, PB0-PB5, ACO |
ATTiny15 |
СБРОС, AREF, PB0-PB5, ACO |
ATTiny22 |
СБРОС, PA0-PB5, ACO |
AT90S2323 |
СБРОС, PB0-PB2, ACO |
AT90S2343 |
СБРОС, PB0-PB4, ACO |
AT90S2313 |
СБРОС, PB0-PB7, PD0-PD5, ACO, TIMOVF1 |
AT90S4433 |
СБРОС, AREF, PB0-PB5, PC0-PC5, PD0-PD7, ACO |
|
Окончание табл. 2 |
1 |
2 |
AT90S4414 |
СБРОС, PA0-PA7, PB0-PB7, PC0-PC7, PD0-PD7, ACO, TIMOVF1 |
AT90S8515 |
СБРОС, PA0-PA7, PB0-PB7, PC0-PC7, PD0-PD7, ACO, TIMOVF1 |
AT90S8515_64K СБРОС, PB0-PB7, PD0-PD7, ACO, TIMOVF1 |
|
AT90S4434 |
СБРОС, AREF, PA0-PA7, PB0-PB7, PC0-PC7, PD0-PD7, ACO, |
|
TIMOVF1 |
AT90S8535 |
СБРОС, AREF, PA0-PA7, PB0-PB7, PC0-PC7, PD0-PD7, ACO, |
|
TIMOVF1 |
ATmega8 |
СБРОС, AREF, PB0-PB7, PC0-PC6, PD0-PD7, ACO, TIM1OVF, |
|
ADC6, ADC7 |
ATmega16 |
СБРОС, AREF, PA0-PA7, PB0-PB7, PC0-PC7, PD0-PD7, ACO, |
|
TIM1OVF |
ATmega161 |
СБРОС, AREF, PA0-PA7, PB0-PB7, PC0-PC7, PD0-PD7, PE0-PE2, |
ACO, TIM1OVF
ATmega161_64K СБРОС, AREF, PB0-PB7, PD0-PD7, PE0-PE2, ACO, TIM1OVF ATmega162 СБРОС, AREF, PA0-PA7, PB0-PB7, PC0-PC7, PD0-PD7, PE0-PE2,
ACO, TIM1OVF,
ATmega32 СБРОС, AREF, PA0-PA7, PB0-PB7, PC0-PC7, PD0-PD7, ACO, TIM1OVF
ATmega64 СБРОС, AREF, PA0-PA7, PB0-PB7, PC0-PC7, PD0-PD7, PE0-PE7, PF0-PF7, PG0-PG4, ACO, TIM1OVF
ATmega128 СБРОС, AREF, PA0-PA7, PB0-PB7, PC0-PC7, PD0-PD7, PE0-PE7, PF0-PF7, PG0-PG4, ACO, TIM1OVF
ATmega128_64K СБРОС, AREF, PB0-PB7, PD0-PD7, PE0-PE7, PF0-PF7, PG0-PG4, TIM1OVF
Среди доступных узлов имеются псевдоузлы, которые необходимы для контроля внутренней работы МК. Эти узлы не существуют в реальном МК и используются главным образом для целей отладки.
ACO – этот псевдоузел подключен непосредственно к выводу аналогового компаратора.
TIMOVF1 этот псевдоузел показывает переполнение таймера
TIMER1.
Узел СБРОСА действует реально таким способом: если на этом узле логический "0" сброс AVR. Рестарт может быть легкий или глубокий в разных ситуациях сброса, выполняемых регистром статуса MCUSR.
Использование узла в ПФ вызывает включение этих узлов в схему. Например, для ATMega16 требуется подключить сопротивление 10кОм
между выводами PA0 и PA1 порта А:
.MICRO " ATMega16" ; выбранный МК
; PA0, и т.д. – выводы порта А используются как узлы
R1 PA0 PA1 10К ; резистор 10 кОм между выводами PA0 и PA1.
VMLAB содержит встроенную проверку имени узла относительно содержащихся в МК имен портов ввода/вывода. Если вы, например,
назовете узел по имени "PC1" для МК, который не содержит порт C, будет выдана ошибка.
Кроме МК Atmel AVR VMLAB поддерживает МК ST62 фирмы ST Microelectronics, но в данном пособии они не рассматриваются.
1.6. Особенности моделирования МК AVR
VMLAB обеспечивает точное и реалистическое моделирование следующих особенностей AVR микроконтроллера:
весь набор команд, включая режимы SLEEP;
всю периферию: АЦП, таймеры, сторожевой таймер, UART, SPI и
т.д.;
порты ввода/вывода, включая аналоговые эффекты: гистерезис, выходное сопротивление, все режимы порта;
оценку потребления мощности (см. панель управления);
прерывания.
Обеспечивается полный показ состояния центрального процессора, периферийных устройств, памяти (ОЗУ, FLESH и EEPROM) – при выборе соответствующих опций в меню View.
Частота синхронизации МК AVR определяется в соответствии с директивой.CLOCK. Если эта директива не найдена, она принимается по умолчанию 1MГц.
Команда SLEEP моделируются бесконечной внутренней петлей команд циклов центрального процессора.
Сторожевой таймер моделируется специальным способом, чтобы упростить код проекта. В реальном МК после достижения 0 (при счете в обратном направлении) сторожевой таймер произвел бы сброс. Вместо выполнения этого VMLAB выдает предупреждение о времени выполнения, высвечивая строку, где сброс имел бы место; это позволяет продолжать программу. С этого времени сторожевой таймер заблокирован. Эта особенность позволяет проектировать сначала код без сторожевого таймера, а затем выбирать места, где вставить контрольные точки, используя меню Options | Error reporting | Watchdog, чтобы выбрать контрольный режим моделирования.
1.7. Какие режимы МК не моделируются
Следующие режимы работы еще не моделируются (их планируется включить в будущие обновления):
USART: синхронный режим и режим многопроцессорности.
Функциональные возможности fuse-битов. VMLAB моделирует только сброс и изменение вектора (fuses BOOTSZ и BOOTRST).
Внутренняя синхронизация: используя директиву .CLOCK, VMLAB не делает никаких предположений относительно предустановки синхронизации. Байт калибровки частоты колебаний не моделируется. В VMLAB не используют сложное аналоговое моделирование, такое как анализ переходных процессов, анализ на переменном токе. Не
моделируются катушки индуктивности, транзисторы и т.д.
VMLAB содержит системно-ориентированный смешанный аналогоцифровой программный симулятор, который жертвует аналоговой точностью в пользу скорости.
2. ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС VMLAB
2.1. Главное окно
Главное окно появляется после запуска VMLAB и состоит (сверху – вниз) из строки заголовка, строки командного меню, панели инструментов, рабочего поля и строки состояния (рис.1).
Рис. 1. Главное окно
2.2. Панель инструментов
Панель инструментов строка кнопок наверху главного окна, которые представляют команды VMLAB. Щелчок одной из кнопок быстрая альтернатива к выбору команды от меню. Кнопки на инструментальной панели активизируют и дезактивируют действия согласно состоянию приложения.