Распродажа

Электронные компоненты со склада по низким ценам, подробнее >>>

Содержание ChipNews

2003: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
2002: 
1, 5, 6, 7, 8, 9
2001: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
2000: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
1999: 
1, 2, 3, 4, 5, 6, 7, 8, 9, 10

Новости электроники

Мне нравится

Комментарии

дима пишет в теме Параметры биполярных транзисторов серии КТ827:

люди куплю транзистар кт 827А 0688759652

тамара плохова пишет в теме Журнал Радио 9 номер 1971 год. :

как молоды мы были и как быстро пробежали годы кулотино самое счастливое мое время

Ивашка пишет в теме Параметры отечественных излучающих диодов ИК диапазона:

Светодиод - это диод который излучает свет. А если диод имеет ИК излучение, то это ИК диод, а не "ИК светодиод" и "Светодиод инфракрасный", как указано на сайте.

Владимир пишет в теме 2Т963А-2 (RUS) со склада в Москве. Транзистор биполярный отечественный:

Подскажите 2т963а-2 гарантийный срок

Владимир II пишет... пишет в теме Параметры биполярных транзисторов серии КТ372:

Спасибо!

В. Бродин, А. Калинин

Учебные классы микропроцессорной техники и ПЛИС

    Разработанные на кафедре микроэлектроники МИФИ лабораторные практикумы и учебные классы позволяют в короткий срок освоить практические навыки разработки микропроцессорных систем управления на основе микроконтроллеров 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], ощущается значительный спрос на средства и методы обучения, позволяющие в достаточно короткий срок передать информацию и навыки, необходимые для разработки реальных современных систем управления на микроконтроллерах и ПЛИС. При создании рассматриваемых далее учебных классов мы исходили из следующих соображений:

    На основе этих принципов в лаборатории ⌠Микропроцессорные системы■ МИФИ созданы учебные классы, позволяющие в короткий срок передать практические навыки разработки микропроцессорных систем управления на основе микроконтроллеров и ПЛИС. Учебный класс включает аппаратные средства типа одноплатных контроллеров, программные средства в виде интегрированных систем программирования микроконтроллеров и систем автоматизированного проектирования цифровых устройств на ПЛИС, инструментальные средства в виде универсального программатора, методическое обеспечение в виде лабораторных практикумов. Классы позволяют изучать:

    Главным звеном каждого учебного курса является лабораторный практикум. Он состоит из введения, в котором описана архитектура рассматриваемого семейства БИС и методика проектирования, набора лабораторных работ и приложений, в которых приведены технические характеристики плат и элементной базы. Лабораторные работы практикума ⌠Архитектура и программирование микроконтроллеров AVR mega103■ фирмы Atmel включают следующие разделы:

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

    В качестве примера выше приведен текст обязательного задания работы 6 ⌠Реализация таймерных функций■:

Выполнение работы

  1. Изучить функционирование таймеров-счетчиков микроконтроллера AT90mega103.
  2. Запустить на инструментальном компьютере интегрированную систему
    программирования ⌠ТурбоАссемблер-AVR■. Создать новый файл и
    сохранить его с именем demo5.asm. В этот файл поместить следующий текст:

;**** П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 демонстрирует организацию программного
таймера реального времени с 24-разрядным счетным
регистром, который наращивается по прерыванию таймера 0. Кроме того,
программа формирует ШИМ-сигнал с использованием таймера 1 и выдает на
линию порта B.6 (PWM1B) импульсы с линейно изменяемой скважностью
(⌠гармошка■). Если к этому выводу подключить интегратор, то на его выходе
получится ⌠пила■ ≈ аналоговый сигнал с линейно изменяющейся амплитудой.

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

    Основная часть программы начинается
с таблицы переходов системы сброса и прерываний, которая
аналогична приведенной в работе 4. Собственно программа начинается с адреса $30
обнулением используемых регистров и загрузкой в указатель стека
исходного адреса $DF. Далее загрузкой регистров управления для таймера 0
указывается коэффициент деления тактовой частоты, а для таймера 1 ≈ режим
8-разрядного ШИМ с низким уровнем выходного сигнала при совпадении (счетчика и
уставки) и счете вверх. Тактовая частота для таймера 1 определена равной
CK (системная частота). Загрузка регистра TIMSK кодом $05 разрешает
прерывания по переполнению таймеров 0 и 1, а установка бита 6
регистра направления DDRB определяет вывод PORTB.6 как выход. В конце основной
программы выводы порта B определяются как выходы, и устанавливается
общий флаг разрешения прерываний. Далее программа
зацикливается, и все действия выполняются по запросам прерываний
от таймеров 0 и 1.

    Процедура обработки прерывания по
переполнению таймера 0 начинается с сохранения в стеке регистра A (R16),
затем через регистр A перезагружается счетный регистр таймера 0 (TCNT0) и
далее в регистре A сохраняется содержимое SREG. После этого программный
счетчик, включающий регистры TimeL, TimeM и TimeH, увеличивается
на одно значение (4 мс). Командой ADIW к 16-разрядному слову в
младших двух регистрах прибавляется значение дискрета, при возникновении
переноса инкрементируется старший байт в регистре TimeH. При
таком подходе программный счетчик, работающий очень долго, является
действительно счетчиком реального времени, то есть в нем всегда находится
текущее значение времени в миллисекундах от момента его запуска. Реальное время
в миллисекундах обеспечивается соотношением тактовой частоты,
коэффициента ее деления для таймера 0 и константы перезагрузки таймера 0. В
целях отладки значение TimeL выдается на порт B. В завершение процедуры
восстанавливаются значения SREG и регистра A.

    Процедура обработки прерывания по
переполнению таймера 1 начинается с сохранения в стеке регистров A и B, далее
в регистре A сохраняется содержимое SREG, а в регистр B помещается
значение дискрета изменения порога (1). Управление ШИМ начинается с анализа
флага PwmDown (R23.4). Если флаг установлен (⌠гармошка■ сжимается), то
осуществляется переход на метку itDec, где из значения PWL вычитается дискрет и
при отсутствии заема новое значение заносится в регистр сравнения OCR1B,
изменяя порог и ширину импульса. При возникшем заеме флаг PwmDown
сбрасывается, PWL обнуляется и заносится в регистр сравнения OCR1B. Если флаг
PwmDown сброшен (⌠гармошка■ растягивается), то к значению PWL
прибавляется дискрет, новое значение сравнивается с верхней границей (если
меньше границы, устанавливается флаг С) и, если значение меньше границы, новое
значение заносится в регистр сравнения OCR1B, изменяя порог и ширину
импульса. Если значение вышло за верхнюю границу, флаг PwmDown
устанавливается (переход на уменьшение), значение PWL приравнивается к верхней
границе (PWL=PWmax) и новое значение заносится в регистр сравнения
OCR1B. В конце процедуры восстанавливаются значения SREG и регистров B и A.
3. Подключить к компьютеру плату лабораторного макета, выполнить трансляцию
программы и загрузить исполняемый модуль во flash-память микроконтроллера
командой RUN|Load+Run. Наблюдать с помощью осциллографа на разъеме XP4 (после
интегратора) аналоговый сигнал с линейно изменяющейся амплитудой.

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

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

    На снимке показан лабораторный макет практикума по микроконтроллерам AVR фирмы Atmel. Он имеет типичную для наших учебных контроллеров структуру, которая включает ядро (в данном случае на основе микроконтроллера ATMega 103), модули последовательных интерфейсов SPI и RS232, стабилизатор питания, схему рестарта и синхронизации, 12-клавишную клавиатуру, блок семисегментных индикаторов и пьезодинамик. Плата выполнена с использованием элементов технологии поверхностного монтажа и демонстрирует современный подход к проектированию микропроцессорных контроллеров на основе функционально-топологических модулей.

    Программирование микропроцессорных систем изучается с использованием интегрированных систем, для рассматриваемого практикума это ⌠ТурбоАссемблер-AVR■. Система относится к классу профессиональных, объединяет редактор текста, транслятор, библиотеки периода выполнения, символический отладчик. Наличие программно-логической модели в составе системы позволяет использовать ее в первых работах без платы контроллера, наблюдая состояние регистров на мониторе компьютера. Транслятор системы анализирует текст программы и выдает сообщения об обнаруженных ошибках, а наличие команды Help позволяет получить оперативную информацию о командах микроконтроллера, директивах ассемблера, библиотеках и так далее. Именно развитость инструментальной системы программирования и большой объем сервисных функций позволяет быстро освоить систему команд и разработку прикладных программ. Кроме того, в современных условиях важно, что после обучения специалист сразу может разрабатывать изделия с использованием освоенных инструментальных средств, без закупок новой техники и переучивания.

    Состав лабораторных практикумов по микроконтроллерам MCS-51 и PIC16/17 в целом аналогичен. Лабораторный практикум по ПЛИС фирмы Altera подробно описан в [3].

Литература

  1. Бродин В.Б., Шагурин И.И. МИКРОКОНТРОЛЛЕРЫ: архитектура, программирование, интерфейс. ≈ М.: ЭКОМ. ≈ 1999.
  2. Козаченко В.М. Микроконтроллеры Intel MCS-196/296. ≈ М.: ЭКОМ. ≈ 1997.
  3. Бродин В., Калинин А., Хохлов Л., Шагурин И. Комплекс средств для обучения проектированию цифровых устройств на ПЛИС Altera с использованием системы Max+plusII // Chip News. ≈ 2000 #3. ≈ С. 16-√18.

    Тел.: 323 9357
    E-mail: mpsis@d406.micro.mephi.ru

 







Ваш комментарий к статье
Учебные классы микропроцессорной техники и ПЛИ :
Ваше имя:
Отзыв: Разрешено использование тэгов:
<b>жирный текст</b>
<i>курсив</i>
<a href="http://site.ru"> ссылка</a>