- •Ответы по мпс (по Вовану – 2008-2009 уч.Г.)
- •1. Классификация микропроцессоров. Архитектуры микропроцессоров. Микропроцессорные комплекты, системы на кристалле.
- •2. Ацп. Основные характеристики, структурные схемы.
- •3. Цап. Основные характеристики, структурные схемы.
- •4. Микроконтроллеры семейства mcs51. Структура, параметры.
- •5. Микроконтроллеры семейства mcs51. Организация памяти.
- •6. Микроконтроллеры семейства mcs51. Система команд.
- •7. Микроконтроллеры avr. Структуры, параметры.
- •8. Микроконтроллеры avr. Организация памяти, внешняя память.
- •9. Микроконтроллеры avr. Система тактирования.
- •10. Микроконтроллеры avr. Организация портов ввода/вывода.
- •11. Микроконтроллеры avr. Сторожевой таймер, логика сброса.
- •12. Микроконтроллеры avr. Подсистема прерываний.
- •13. Микроконтроллеры avr. Таймеры.
- •14. Микроконтроллеры avr. Модуль захвата и сравнения, режимы шим.
- •15. Микроконтроллеры avr. Интерфейс spi.
- •16. Микроконтроллеры avr. Интерфейс usart.
- •17. Микроконтроллеры avr. Интерфейс twi.
- •18. Микроконтроллеры avr. Модуль ацп.
- •19. Микроконтроллеры avr. Система команд.
- •20. Микроконтроллеры avr. Методы адресации.
- •21. Микроконтроллеры avr. Организация интерфейса с семисегментным индикатором и матричной клавиатурой.
- •22. Ассемблер микроконтроллеров avr. Приемы программирования.
- •23. Программные и аппаратные средства разработки и отладки микропроцессорных систем.
- •24. Цифровые сигнальные процессоры, структуры, характеристики, области применения.
- •25. Цсп семейства tms320c2000. Структура, основные характеристики.
- •39. Организация интерфейса usb.
- •40. Шина isa. Организация, протокол обмена.
- •41. Шина pci. Организация, протокол обмена.
- •42. Проектирование микропроцессорных систем. Цикл проектирования.
- •43. Организация питания микропроцессорных систем. Импульсные источники питания.
19. Микроконтроллеры avr. Система команд.
20. Микроконтроллеры avr. Методы адресации.
21. Микроконтроллеры avr. Организация интерфейса с семисегментным индикатором и матричной клавиатурой.
.include "m16def.inc"
.def temp=r16
.def radch=r25
.def radcl=r24
.def reg0=r23
.def delay1=r20
.def delay2=r21
.def delay3=r22
.def regind=r17
jmp RESET
.org $001c
jmp LADC
.org $0030
RESET: ldi r16,high(RAMEND)
out SPH,r16
ldi r16,low(RAMEND)
out SPL,r16 ; инициализация стека
ldi temp,0b00000000
out SFIOR,temp
ldi temp,0b01100100
out ADMUX,temp
ldi temp,0b11101110
out ADCSRA,temp
ldi temp,$FF ; инициализация портов
out DDRB,temp
ldi temp,$FF
out DDRD,temp
sei ; установка глобального флага прерывания
WORK: ldi temp,0b0000010 ; вывод на второй слева индикатор
out PORTB,temp
mov reg0,radch
ldi r29, $0F ; 0F для выделения при умножении мл. части числа
and reg0, r29 ; умножение, выделение младшей reg0
call DC0
call TIME
ldi temp,0b00000001 ; вывод на первый слева индикатор
out PORTB,temp
mov reg0,radch
swap reg0 ; смена мест младшей и старшей части переменной
and reg0, r29 ; выделение старшей части
call DC0
call TIME
jmp WORK
LADC: in radcl,ADCL ; чтение выхода ЦАП
in radch,ADCH
reti ; возвращение после прерывания по адресу из стека
TIME: ldi delay1,$FF
ldi delay2,$00
ldi delay3,$00
LOOP: subi delay1,1
sbci delay2,0
sbci delay3,0
brcc LOOP
ret
DC0: cpi reg0,0 ; "0"
brne DC1
ldi regind,0b00111111
out PORTD,regind
ret
DC1: cpi reg0,1 ; "1"
brne DC2
ldi regind,0b00000110
out PORTD,regind
ret
и т.д.
22. Ассемблер микроконтроллеров avr. Приемы программирования.
23. Программные и аппаратные средства разработки и отладки микропроцессорных систем.
Отличительные особенности стартового набора STK500 фирмы Atmel:
Совместимость с программой AVR Studio
Связь с ПК через интерфейс RS-232 для программирования и управления
Стабилизированный источник питания с входом 10 – 15В
8-, 20-, 28-, 40-выводные панели для установки DIP-корпусов AVR-микроконтроллеров
Поддержка параллельного и последовательного программирования повышенным напряжением всех AVR-микроконтроллеров
Последовательное внутрисистемное программирование (ISP) всех AVR-устройств
Внутрисистемный программатор для программирования микроконтроллера непосредственно в целевом приложении
Перепрограммирование AVR-микроконтроллеров
8 кнопок общего назначения
8 светодиодов общего назначения
Все порты ввода-вывода выведены на штырьки разъема
Дополнительный порт RS-232 общего назначения
Разъемы расширения для подключения внешних модулей и областей для макетирования
Встроенная флэш-память DataFlash емкостью 2 Мбит для энергонезависимого хранения данных.
Набор STK500 поставляется с микроконтроллером AT90S8515-8PC на панели с маркировкой SCKT3000D3. Исходные установки перемычек обеспечивают работу микроконтроллера совместно с тактовым генератором и стабилизатором напряжения, установленных на плате STK500.
В микроконтроллере запрограммирована тестовая программа, которая управляет светодиодами. Для запуска тестовой программы в AT90S8515 необходимо подключить светодиоды и кнопки, а затем подать питание.
Для работы требуется внешний источник питания 10 – 15В. Входная схема выполнена как двухполупериодный выпрямитель и STK500 распознает полярность приложенного напряжения. Если к центральному штырьку разъема приложен положительный полюс источника, то это может привести к невозможности выключения STK500, т.к. переключатель питания разрывает цепь GND, а она может быть организована через кабель порта RS-232 или через другое альтернативное подключение. Подключите кабель питания между источником питания и STK500. Подайте 10-15В постоянного напряжения на кабель питания. Перемещением переключателя питания можно включить или отключить STK500. Свечение красного светодиода сигнализирует о подаче питания, а состояние статусного светодиода будет изменяться от красного к желтому, а затем к зеленому. Зеленый цвет светодиода сигнализирует о наличии напряжения VCC (питание микроконтроллера). Программа в AT90S8515 начинает работать, изменяя состояние светодиодов при нажатии на кнопки.
Стартовый набор может настраиваться на различные частоты тактирования и источники питания.
AVR Studio – интегрированная среда проектирования (IDE), предназначенная для разработки и отладки AVR-приложений. AVR Studio содержит средства управления проектом, редактор исходных файлов, симулятор, интерфейс внутрисхемного эмулятора и интерфейс программирования для STK500.
Для того, чтобы запрограммировать hex-файл в AVR-микроконтроллер, выполните команду “STK500” из меню “Tools” программы AVR Studio.
Выберите тип AVR-микроконтроллера из раскрывающегося списка на закладе “Program” и укажите путь к записываемому intel-hex-файлу в поле «Input HEX File».
Нажмите кнопку “Erase Device” (стирание), расположенную на закладке программирования “Program”. Статусный светодиод светится желтым цветом во время программирования, а после успешного завершения загорается зеленым цветом. После выявления ошибки программирования светодиод загорается красным цветом.
При программировании микроконтроллеров всё большую популярность приобретает язык Си. При его использовании сокращается время на разработку, что особенно заметно при написании больших программ, обеспечивается их переносимость на другие платформы. Недостатком языка Си по сравнению с языком Ассемблера является больший объем кода и, как следствие, более низкая скорость работы. благодаря тому, что в архитектуре AVR изначально заложено эффективное декодирование и исполнение инструкций, генерируемых компиляторами, после компиляции Си - программ получается высокопроизводительный код.
Существует ряд компиляторов Си, поддерживающих архитектуру AVR: CodeVisionAVR, ImageСraft C, AVR GCC и др., которые включают в себя широкий набор библиотек для работы с периферийными устройствами и поддерживают форматы объектных файлов, используемых при отладке в AVR Studio. Кроме того, многие компиляторы поддерживают возможность программирования микроконтроллеров после компиляции исходного текста программы
Среда CodeVisionAVR
Программа CodeVisionAVR фирмы HP InfoTech – это интегрированная среда разработки, содержащая компилятор языка Си, графическую оболочку, автоматический генератор программ и встроенный программатор, ориентированные на работу c семейством микроконтроллеров AVR.
Наряду со стандартными библиотеками языка Си и системой справок по языку компилятор имеет библиотеки для работы с периферийными устройствами (ЖКИ - индикаторами с встроенными контроллерами, датчиками температуры, часами реального времени, энергонезависимой памятью EEPROM, шиной SPI и др.). Также имеется автоматический генератор программ для инициализации внутренних и периферийных ресурсов микроконтроллера: портов, системы прерываний, встроенного АЦП, таймеров, ЖКИ - индикатора и т.д. Для систем, использующих последовательную передачу данных (RS232, RS422, RS485), имеется встроенный в компилятор буферTerminal.
Генерируемые объектные файлы COFF позволяют осуществлять с помощью отладчика AVR Studio отладку программы непосредственно в коде Си.
Наглядность программы. Язык высокого уровня позволяет использовать сложные структуры данных, такие как массивы, строки, списки, записи, обеспечивает максимальное удобство при написании циклов и ветвлений, избавляет программиста от написания рутинных фрагментов программ.
Программирование на Ассемблере требует знаний всех ресурсов МК. Программа, написанная на Ассемблере, не всегда наглядна, разобраться в коде достаточно сложно, при использовании микроконтроллеров с RISC-архитектурой возникают проблемы при программировании сложных операций, таких как умножение и деление, при работе со структурами данных.
Размер кода. При использовании всех возможностей языка Си программа может быть очень компактной, однако при сравнении откомпилированных кодов оценки могут измениться. Код, написанный на Ассемблере, минимален по размеру и оптимизирован под конкретную задачу, что позволяет получить высокую скорость работы программы. Компилятор же оперирует фрагментами кода по общим правилам. Например, в приведенном примере со светодиодами в начале работы программы 6.1 обнуляются все регистры МК и оперативная память SRAM, при входе в процедуру прерывания регистры сохраняются в стеке, а затем восстанавливаются при выходе. Однако в приложении работа с памятью данных алгоритмом не предусмотрена и используется всего лишь несколько регистров.
Отладка. Если программа пишется на языке высокого уровня, а отлаживать предполагается откомпилированный код, то весь процесс может занять больше времени, чем написание и отладка программы на Ассемблере. Вместе с тем, написание и отладка на языке Си программ, ориентированных в большей степени на обработку данных, проще, чем при использовании Ассемблера.
Переносимость. Изменение частоты синхронизации МК, очевидно, влияет на длительности выполнения процедур. В случае если время выполнения должно остаться неизменной величиной (в нашем случае это время включения светодиода), потребуется вносить изменения в программу на Ассемблере, заново пересчитывая коэффициенты в циклах задержки. В программе на Си необходимо только заменить частоту в конфигурации проекта, и компилятор пересчитает всё автоматически, что, безусловно, проще.
Учитывая факт, что откомпилированный код всегда больше исходного кода, написанного на Ассемблере, и, также, принимая невозможность простой оптимизации откомпилированного кода, можно сделать выводы о предпосылках выбора языка программирования: это сложность и направленность задачи, наличие средств отладки, доступный размер памяти МК, требуемое быстродействие процедур, сроки проектирования и др.