Сборка лекции, страница 2
Описание файла
Документ из архива "Сборка лекции", который расположен в категории "". Всё это находится в предмете "электроника" из , которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "электроника и микропроцессорная техника" в общих файлах.
Онлайн просмотр документа "Сборка лекции"
Текст 2 страницы из документа "Сборка лекции"
SPI - serial peripheral interfase
I2C - Inter-Integrated Circuit
ISP - In - System Programming (перепрограммирование, не вынимая…)
л. – линий(каналов0 в параллельном формате
Идея создания нового RISC-ядра родилась в 1994 году в Норвегии. В 1995 году два его изобретателя Альф Боген (Alf-Egil Bogen) и Вегард Воллен (Vegard Wollen) предложили корпорации Atmel выпускать новый 8-разрядный RISC-микроконтроллер как стандартное изделие и снабдить его Flash-памятью программ на кристалле. Руководство Atmel Corp. приняло решение инвестировать данный проект. В 1996 году был основан исследовательский центр в городе Тронхейм (Норвегия). Оба изобретателя стали директорами нового центра, а микроконтроллерное ядро было запатентовано и получило название AVR (Alf - Egil Bogen + Vegard Wollen + RISC).
RISK – Reduced Instruction Set Computer (компьютер с сокращенным набором команд).
Гарвардская архитектура была разработана Горвардом Айкеном (Нorward Aiken) в конце 30-х годов 20–го столетия в Гарвардском университете. Она предполагала физическое разделение памяти программ и памяти данных с использованием отдельных линий связи для каждого вида памяти. Первая вычислительная машина с такой архитектурой появилась в 1944 г.
Джон фон-Нейман, математик венгерского происхождения, предложил простейшую архитектуру, с объединенной памятью программ и данных, позволившей сократить количество линий связи. Вычислительная машина фон-Неймана была создана в 1951 г. и с тех пор стала стандартом архитектуры. Каждая их этих архитектур используется в вычислительной технике, но при разработке однокристальных микроЭВМ предпочтение отдано Гарвардской архитектуре.
Рис. 1. Архитектура AVR-микроконтроллера.
Подобное построение микроконтроллера в определенной мере напоминает структуру сигнальных процессоров и обеспечивает высокое быстродействие.
FLASH – EAROM {Electrically Alterable ROM} - электрически изменяемая постоянная память, позволяющая стирание всего объёма памяти за одну операцию и обеспечивающая быстрое и многократное перепрограммирование.
EEPROM {Electrically Erasable Programmable ROM} - программируемая постоянная память с электрическим стиранием.
RAM {Random Access Memory} - оперативное запоминающее устройство, память данных.
ALU {Arithmetic and Logic Unit} - арифметико-логическое устройство.
General Purpose Registers - регистры общего назначения.
Program Counter ( PC) - программный счетчик, счетчик команд.
Instruction register – регистр команды.
UART {Universal Asynchronous Receiver/Transmitter} - универсальный асинхронный приемо-передатчик.
ADC {Analog-to-Digital Converter} – аналого-цифровой преобразователь.
Analog Comp. - аналоговый компаратор.
Watchdog Timer – сторожевой таймер.
I/O Ports – порты ввода-вывода.
Interrupts {прерывания} – блок прерываний.
Timer Counter – таймер-счетчик.
SPI – последовательный интерфейс периферийных устройств (синхронный трехпроводной последовательный интерфейс).
C точки зрения программиста AVR-микроконтроллер представляет собой 8-разрядный RISK-микроконтроллер, построенный по гарвардской архитектуре, имеющий в своем составе:
• Процессор
• Память программ и память данных
• Порты ввода-вывода
• Программируемые таймеры-счетчики
• Многоуровневую систему прерываний
и иные периферийные устройства.
При подаче напряжений питания в программном счетчике формируется нулевой адрес. В ячейке памяти команд по этому адресу находится команда безусловного перехода, при выполнении которой в программный счетчик записывается адрес ячейки памяти программ, с которого начинается выполнение основной программы. В последующем программный счетчик управляет ходом выполнения программы таким образом, что его содержимое увеличивается на 1 при выполнении стандартных команд, либо в него записывается адрес перехода при выполнении команд условных и безусловных переходов.
Код команды считывается из соответствующей ячейки памяти и попадает в регистр команд. Затем он попадает в дешифратор и оттуда на устройство управления.
Устройство управления формирует управляющие сигналы на внутреннюю пересылку данных.
В AVR-микроконтроллерах используется конвеерная технология, вследствие чего «цикл выборки кода команд из памяти и исполнения» заметно сокращен. Т.е. процесс выполнения текущей команды и считывания из памяти следующего кода команды происходят одновременно и занимают один машинный цикл.
У AVR-микроконтроллеров машинный цикл равен 1 такту.
У классических intel-овских контроллеров машинный цикл равен 12 тактам.
Таблица 1. Микроконтроллеры AVR семейства "tiny" в 2003-2004 годах.
Fmax = 6 – 16 МГц.
Лекция 3. 19.09.2006.
Процессор МК содержит:
• счётчик команд (СК)
• АЛУ
• блок регистров общего назначения (РОН)
• регистр состояния МК (SPEG)
• регистр-указатель стека (SP)
Стек – последующий вошёл – первый вышел.
СК формирует адрес очередной команды, увеличивая на 1 своё содержимое.
При начальном запуске или перезагрузке МК в СК заносится нулевой адрес, по которому хранится код команды RJMP, осуществляющий переход к начальному адресу программы в памяти команд.
В АЛУ выполняются арифметические операции, операнды поступают из РОН. При выполнении операций используется один из РОН, результат помещается в этот регистр. При использовании 2-х регистров результат помещается в тот, где хранится первый операнд.
Блок РОН содержит 32 8-разрядных регистра.
В системе команд МК есть команды, которые обращаются только к старшим 16-ти регистрам блока РОН с обозначениями R16..R32. Регистры R26..R31 могут образовывать 16-разрядные пары: регистр с чётным номером хранит младший байт, с нечётным – старший.
Первой регистровой паре присвоено обозначение X; Y; Z… Они используются для обращения к памяти с косвенной адресацией.
Регистр признаков (состояния):
SREG: | |||||||||
| |||||||||
|
Рис.2. Регистр состояния SREG (Status Register).
-
Бит С устанавливается в 1 состояние, если во время выполнения операции был перенос из старшего разряда результата;
-
Бит Z устанавливается, если результат операции равен 0;
-
Бит N устанавливается, если MSB (Most Significant Bit - старший бит) результата равен 1 (правильно показывает знак результата, если не было переполнения разрядной сетки знакового числа);
-
Бит V устанавливается, если во время выполнения операции было переполнение разрядной сетки знакового результата;
-
Бит S = N + V (правильно показывает знак результата и при переполнении разрядной сетки знакового числа);
-
Бит H устанавливается, если во время выполнения операции был перенос из 3-го разряда результата;
-
Бит Т используется для хранения значения бита при выполнении операций с битами;
-
Бит I используется для разрешения/запрещения прерываний.
Признак устанавливается только при выполнении либо арифметической, либо логической операции.
V, S – определяет работу с числами со знаком
H – перенос из младшего полубайта в старший
1810+810=2610
0001.1000
1000
0010.0000
Если H=1, то необходимо проводить коррекцию: прибавляем 6 в любом случае.
0010.0110
I – «0» - запрет прерываний в любом случае, кто бы не просил.
ПЗУ Flash ROM (память команд МК)
Операция памяти AVR выполнена по схеме Гарвардского типа, в которой разделены не только адресные пространства памяти программ и памяти данных, но и шины доступа к ним. Вся программа памяти AVR-МК выполнена по технологии Flash и размещена на кристалле. Она представляет собой последовательность 16-разрядных ячеек и имеет ёмкость от 1 килобайта до 128 килобайт в зависимости от типа кристалла.
Высокая степень упаковки, но она не позволяет стирать отдельные ячейки. Поэтому всегда полная очистка AVR гарантирует как min 1000 циклов перезаписи.
При чтении кодов команд адрес в ПЗУ поступает из СК, а при чтении констант – из пары регистров Z.
Разрядность программного счётчика для обращения к 128кбайтам = (17 разрядов - 1) = 16
Оперативное запоминающее устройство (ОЗУ) предназначено для хранения данных, получаемых в процессе работы микроконтроллера; 8-разрядные ячейки оперативной памяти образуют запоминающие устройства ёмкостью от 128байт до 4кбайт.
Адресное пространство ОЗУ (512 байт):
$0000 | R0 |
РОН | |
$001F | R31 |
$0020 | I/O R0 |
Рег. Вв./Выв. | |
$005F | I/O R63 |
$0060 | |
ОЗУ | |
$025F |
Под регистры ввода-вывода отведено 64 ячейки памяти.
Регистр состояния находится в регистрах ввода-вывода.
В качестве начального адреса для обращения к стековой области памяти, который заносится в регистр указателя стека, используется старший адрес ячейки ОЗУ. Инициализация указателя стека является необходимым условием для правильного выполнения программы.
Система команд AVR-МК.
Каждая команда должна определять вид операции, задавать адреса операндов, участвующих в операции и определять место засылки результата операции.
Командный цикл - время, необходимое на выполнение одной команды.
Командный цикл делится на две фазы: выборки и исполнения команды.
Фаза выборки состоит в считывании команды из памяти в регистр команд IR.
Выборка происходит по адресу, хранящемуся в программном счетчике PC. Одновременно содержимое программного счетчика увеличивается, указывая на адрес следующей команды. Фаза выборки одинакова для всех команд.
Фаза исполнения состоит в
• декодировании содержимого регистра команд,
• выборке операндов (при необходимости),
• выполнении действий, определяемых командой, и
• размещении результата.
Машинный код (или объектный код) - машинное представление команды в памяти микроконтроллера. Состоит из ряда "0" и "1". Однако разработчику более понятна информация, представленная в символьной форме, поэтому каждой команде соответствует ее символическое обозначение, или мнемокод, используемый при написании программ. Существует взаимно-однозначное соответствие между мнемокодом и объектным кодом команды.
Блок регистров ОН, регистры ввода/вывода и оперативная память, как показано на рисунке, образуют единое адресное пространство, что дает возможность при программировании обращаться к 32 оперативным регистрам и к регистрам ввода/вывода как к ячейкам памяти, используя команды доступа к SRAM (в том числе и с косвенной адресацией).
На рисунке показано распределение адресов в едином адресном пространстве. Младшие 32 адреса ($0 - $1F) соответствуют оперативным регистрам. Следующие 64 адреса ($20 - $5F) зарезервированы для регистров ввода/вывода. Внутренняя SRAM у всех AVR МК начинается с адреса $60.
Добавлено 26.09.2006.
Таким образом, регистры ввода/вывода имеют двойную нумерацию. Если используются команды IN, OUT, SBI, CBI, SBIS, CBIS, то следует использовать нумерацию регистров ввода/вывода, начинающуюся с нуля (назовем ее основной). Если же к регистрам ввода/вывода доступ осуществляется как к ячейкам памяти, то необходимо использовать нумерацию единого адресного пространства оперативной памяти данных AVR. Очевидно, что адрес в едином адресном пространстве памяти данных получается пут1м прибавления числа $20 к основному адресу регистра ввода/вывода.
Лекция 4-5. 26.09.2006.