В. Бродин, А. Калинин
Разработанные на кафедре микроэлектроники
МИФИ лабораторные практикумы и учебные классы позволяют в короткий срок
освоить практические навыки разработки микропроцессорных систем управления
на основе микроконтроллеров MCS-51, PIC 16/17 и AVR, ПЛИС фирмы Altera.
Современный виток развития микропроцессорных
систем управления характеризуется комбинированным применением микроконтроллеров
и ПЛИС. Значительно ускоряют проектирование и конструирование полноцикловые
системы автоматизации проектирования типа EDA (Electronic Design Automation),
пришедшие на смену традиционным системам типа CAD (Computer Aided Design),
которые помогали разработчику на отдельных этапах, например, при проектировании
печатных плат.
В области микроконтроллеров,
на наш взгляд, наиболее широкий круг задач покрывают семейства MCS-51
и AVR. Архитектура MCS-51 получила в последнее время новый импульс развития
с появлением таких изделий, как ADuC812 фирмы Analog Devices, W78 фирмы
Winbond, 89С51 фирм Atmel и Philips, AN21 фирмы Cypress, P-51 фирмы Cybernetic
Micro Systems и ряда других. В них на одном кристалле с ядром MCS-51 объединены
12-разрядные АЦП и ЦАП, flash-память объемом до 64 Кбайт, интерфейсы USB
и (E)ISA. Это дает возможность разработчикам использовать при решении
новых задач большой имеющийся задел. Дополнительные возможности предоставляют
версии микроконтроллеров MCS-51 c пониженным до 1,8 В напряжением питания,
а также приборы со сжатой тактовой сеткой и повышенной (до 40 МГц) тактовой
частотой.
Микроконтроллеры семейства AVR
фирмы Atmel, появившиеся на мировом рынке в 1997 г., имеют современную
RISC-архитектуру, которая в сочетании с технологией flash-памяти обеспечивает
очень хорошие показатели по таким критериям, как скорость выполнения кода
программы, эффективность генерации кода при использовании языков высокого
уровня (поддержка языков высокого уровня системой команд) и низкая цена.
Важным преимуществом микроконтроллеров
AVR является их совместимость по функциям выводов с микроконтроллерами
архитектуры MCS-51. Это позволяет во многих случаях увеличить производительность
имеющейся системы управления посредством замены микроконтроллера, разработки
и отладки рабочей программы.
Одним из наиболее известных производителей
ПЛИС является фирма Altera. Ее продукция стала одним из стандартов ⌠де-факто■,
микросхемы и САПР отличаются высокими характеристиками и весьма скромными
требованиями к инструментальному компьютеру разработчика. Особенностью
проектирования на ПЛИС в настоящее время является широкое использование
высокоуровневых языков описания аппаратуры AHDL, VHDL.
Несмотря на публикации в периодической
печати, издание нескольких монографий [1,2], ощущается значительный спрос
на средства и методы обучения, позволяющие в достаточно короткий срок
передать информацию и навыки, необходимые для разработки реальных современных
систем управления на микроконтроллерах и ПЛИС. При создании рассматриваемых
далее учебных классов мы исходили из следующих соображений:
- учебные методики и средства должны разрабатывать специалисты, имеющие большой опыт разработки систем проектирования и целевых систем управления;
- в качестве учебных средств должны использоваться версии профессиональных систем проектирования, поскольку использование чисто учебных средств искажает методику проектирования и приводит к необходимости последующего переучивания;
- ввиду большого объема информации по элементной базе и сложности систем проектирования, основным принципом лабораторного практикума должен быть ⌠делай как я■, то есть в каждой работе должно быть обязательное задание, процесс выполнения которого подробно описан. Это позволит не только передать знания и практические навыки, но и привить правильный стиль проектирования.
На основе этих принципов в лаборатории
⌠Микропроцессорные системы■ МИФИ созданы учебные классы, позволяющие в
короткий срок передать практические навыки разработки микропроцессорных
систем управления на основе микроконтроллеров и ПЛИС. Учебный класс включает
аппаратные средства типа одноплатных контроллеров, программные средства
в виде интегрированных систем программирования микроконтроллеров и систем
автоматизированного проектирования цифровых устройств на ПЛИС, инструментальные
средства в виде универсального программатора, методическое обеспечение
в виде лабораторных практикумов. Классы позволяют изучать:
- 8-разрядные микроконтроллеры MCS-51 с традиционной (CISC) архитектурой;
- RISC-микроконтроллеры PIC16/17 фирмы MicroChip;
- RISC-микроконтроллеры AVR фирмы Atmel;
- проектирование цифровых систем с использованием ПЛИС фирмы Altera и САПР Max+PlusII.
Главным звеном каждого учебного
курса является лабораторный практикум. Он состоит из введения, в котором
описана архитектура рассматриваемого семейства БИС и методика проектирования,
набора лабораторных работ и приложений, в которых приведены технические
характеристики плат и элементной базы. Лабораторные работы практикума
⌠Архитектура и программирование микроконтроллеров AVR mega103■ фирмы Atmel
включают следующие разделы:
- Методы адресации, команды передачи данных и управления.
- Команды обработки данных.
- Контроль внешних устройств через параллельные порты ≈ работа с клавиатурой.
- реализация и обслуживание подсистемы прерываний.
- Реализация таймерных функций.
- Организация последовательного обмена данными между контроллерами.
- Обслуживание АЦП.
- Интегрированная система программирования ⌠ТурбоАссемблер-AVR■.
- Учебный контроллер AVR mega103.
Описание каждой лабораторной
работы содержит информационно-теоретическую часть, обязательное задание
(включая фрагмент текста программы с комментариями и разбором реализации
алгоритма) и варианты заданий для самостоятельного выполнения. Например,
в работе 4 практикума по микроконтроллерам AVR описаны механизмы реализации
прерываний, регистры управления микроконтроллеров. Затем приведен ассемблерный
текст примера обязательного задания, формирующий таблицу переходов и инициализирующий
указатель стека, разрешающий определенные прерывания и определяющий их
приоритеты. Далее следуют процедуры обслуживания прерываний и программные
заглушки вместо процедур замаскированных прерываний. Завершается работа
набором самостоятельных заданий, которые выполняются посредством изменения
текста разобранного задания.
В качестве примера выше приведен
текст обязательного задания работы 6 ⌠Реализация таймерных функций■:
Выполнение работы
;**** Пpимер организации режима PWM**** ;*******микроконтроллера ATmega103 *******. ; частота pезонатоpа 4.0 МГц. ;**** Описание констант **** .EQU Rld0 = -125 ; Константа пеpезагpузки ; таймеpа T0 ; для фоpмиpования вpеменного интеpвала = 4 ms ; при N = 128 (Prescaler, F = 4 MHz) ;**** Описание пеpеменных **** .DEF PWL = r15 ; пеpеменная ; пеpезагpузки Comp .DEF A = r16 .DEF B = r17 .DEF Flags = r23 ; Регистр флагов, бит 4 - ; флаг PwmDown .DEF TimeL = r24 ; пpогpаммный таймеp, ; цена деления 1 ms .DEF TimeM = r25 ; .DEF TimeH = r26 .EQU PwmDown = 4 ; бит 4 - флаг PwmDown ;**** Основная часть пpогpаммы **** .ORG 0 ; начало таблицы переходов rjmp Start .ORG $2 ; вектор Int0 reti .ORG $4 ; вектор Int1 (не используется) reti .ORG $6 ; вектор Int2 (не используется) reti .ORG $8 ; вектор Int3 (не используется) reti .ORG $A ; вектор Int4 (не используется) reti .ORG $C ; вектор Int5 (не используется) reti .ORG $E ; вектор Int6 (не используется) reti .ORG $10 ; вектор Int7 (не используется) reti .ORG $12h ;вектор Timer2 Compare (не reti ;используется) .ORG $14 ;вектор Timer2 Overflow (не reti ;используется) .ORG $16 ;вектор Timer1 Capture (не reti ;используется) .ORG $18 ;вектор Timer1 CompareA (не reti ;используется) .ORG $1A ;вектор Timer1 CompareB (не reti ;используется) .ORG $1C ;вектор Timer1 Overflow rjmp IntT1 .ORG $1E ;вектор Timer0 Compare (не reti ;используется) .ORG $20 ;вектор Timer0 Overflow rjmp IntT0 .ORG $22h ;вектор SPI (не используется) reti .ORG $24 ;вектор приемника UART (не reti ;используется) .ORG $26 ;вектор ⌠буфер передатчика пуст■ reti ;UART (не используется) .ORG $28h ;вектор передатчика UART (не reti ;используется) .ORG $2A ;вектор AD преобразователя (не reti ;используется) .ORG $2C ;вектор EEPROM (не используется) reti .ORG $2E ;вектор аналогового компаратора reti ;(не используется) .ORG $30 ; начальный адpес основной ;пpогpаммы Start: clr TimeL clr TimeM clr TimeH clr Flags clr PWL ldi A,$0 ;указатель стека SP= $DF out SPH,A ldi A,$DF out SPL,A ldi A,$5 ;запускаем таймеp T0, CK/128 out TCCR0,A ldi A,$21 ;таймеp T1, PWM 8 bit, очищается по ;совпадению при счете вверх out TCCR1A,A ldi A,$1 ;запускаем таймеp T1, Ck/1 out TCCR1B,A ldi A,$5 ;pазpешим пpеpывания от T0,T1 out TIMSK,A sbi DDRB,6 ;OC1B √ выход ldi A,$FF out DDRB,A ;debug sei ;pазpешим все пpеpывания ;Рабочий цикл пpогpаммы, ничего не делаем. Work: rjmp Work ;******** Пpоцедуpа пpеpывания******** ;******по пеpеполнению таймеpа T0 ****** IntT0: push A ldi A,Rld0 out TCNT0,A ;пеpезагpузим in A,SREG ;сохранение SREG adiw TimeL,4 ;Time:=Time+4 ms brcc itN1 inc TimeH itN1: out PortB,TimeL ;debug out SREG,A ;восстановление SREG pop A reti ; ;******** Пpоцедуpа пpеpывания******** ;******по пеpеполнению таймеpа T1 ****** IntT1: push A push B in A,SREG ; сохранение SREG ldi B,1 ; один дискрет sbrc Flags,PwmDown rjmp itDec ;если PwmDown=1, будем ;уменьшать add PWL,B ;если PwmDown=0, то наращи- ;ваем PWL на дискрет mov B,PWL cpi B, PWmax ;достигли верхней границы? brcs itWr ;при PWL > PWmax sbr Flags,(1<<PwmDown) ; то PwmDown:=1 ldi B,Pwmax ; PWL := PWmax mov PWL,B rjmp itWr itDec: sub PWL,B brcc itWr ; если PWL<0 cbr Flags,(1<<PwmDown) ; то PwmDown:=0 clr PWL itWr: out OCR1BL,PWL out SREG,A ; восстановление SREG pop B pop A reti ; Таймеры-счетчики микроконтроллеров
используются Программа demo5 демонстрирует
организацию программного В начале программы описаны
константа Основная часть программы
начинается Процедура обработки прерывания
по Процедура обработки прерывания
по |
Обязательные задания практикума
нарастают по сложности, и в последующих работах используются программные
модули из предыдущих работ.
Структура практикума позволяет
без привлечения дополнительной литературы подготовиться как преподавателю,
так и студенту или слушателю курсов повышения квалификации. Имеется опыт
и самостоятельного изучения предмета с его помощью.
На снимке показан лабораторный
макет практикума по микроконтроллерам AVR фирмы Atmel. Он имеет типичную
для наших учебных контроллеров структуру, которая включает ядро (в данном
случае на основе микроконтроллера ATMega 103), модули последовательных
интерфейсов SPI и RS232, стабилизатор питания, схему рестарта и синхронизации,
12-клавишную клавиатуру, блок семисегментных индикаторов и пьезодинамик.
Плата выполнена с использованием элементов технологии поверхностного монтажа
и демонстрирует современный подход к проектированию микропроцессорных
контроллеров на основе функционально-топологических модулей.
Программирование микропроцессорных
систем изучается с использованием интегрированных систем, для рассматриваемого
практикума это ⌠ТурбоАссемблер-AVR■. Система относится к классу профессиональных,
объединяет редактор текста, транслятор, библиотеки периода выполнения,
символический отладчик. Наличие программно-логической модели в составе
системы позволяет использовать ее в первых работах без платы контроллера,
наблюдая состояние регистров на мониторе компьютера. Транслятор системы
анализирует текст программы и выдает сообщения об обнаруженных ошибках,
а наличие команды Help позволяет получить оперативную информацию о командах
микроконтроллера, директивах ассемблера, библиотеках и так далее. Именно
развитость инструментальной системы программирования и большой объем сервисных
функций позволяет быстро освоить систему команд и разработку прикладных
программ. Кроме того, в современных условиях важно, что после обучения
специалист сразу может разрабатывать изделия с использованием освоенных
инструментальных средств, без закупок новой техники и переучивания.
Состав лабораторных практикумов
по микроконтроллерам MCS-51 и PIC16/17 в целом аналогичен. Лабораторный
практикум по ПЛИС фирмы Altera подробно описан в [3].
Литература
- Бродин В.Б., Шагурин И.И. МИКРОКОНТРОЛЛЕРЫ: архитектура, программирование, интерфейс. ≈ М.: ЭКОМ. ≈ 1999.
- Козаченко В.М. Микроконтроллеры Intel MCS-196/296. ≈ М.: ЭКОМ. ≈ 1997.
- Бродин В., Калинин А., Хохлов Л., Шагурин И. Комплекс
средств для обучения проектированию цифровых устройств на ПЛИС Altera
с использованием системы Max+plusII // Chip News. ≈ 2000 #3.
≈ С. 16-√18.
Тел.: 323 9357
E-mail: mpsis@d406.micro.mephi.ru
Ваш комментарий к статье | ||||