|
МПС
Структура МП
и МПС (Лекция)
ПЛАН ЛЕКЦИИ 1. Основные функции и структура микропроцессора 2. Устройство управления микропроцессора 3. Состав микропроцессорной системы 4. Память микропроцессорных систем 5. Работа со стековой памятью 6. Методы адресации операндов в командах Ассемблера AVR-контроллера 7. Регистры ввода/вывода AVR микроконтроллера 8. Работа регистров цифрового
ввода/вывода 1. Основные функции и структура микропроцессора Микропроцессор (МП) выполняет 2 функции: 1. Вычисляет, т.е. выполняет над числовыми данными
арифметические и логические операции. 2. Управляет потоками данных, организуя как сами вычисления,
так и их требуемую последовательность. Любой МП (Рис.3) состоит из следующих
функциональных узлов: 1. Арифметико-логическое устройство (АЛУ). 2. Регистры. 3. Устройство
управления.
Рис.
Функциональная схема микропроцессора ВМД – внутренняя
магистраль данных, МА – магистраль
адреса, МУ – магистраль
управления, МД – магистраль
данных. АЛУ – это
комбинационный цифровой автомат, имеющий два входа и один выход. АЛУ выполняет
арифметические и логические операции с двумя входными сигналами, каждый из
которых представляет собой набор из 8-ми двоичных разрядов. Регистром
является устройство для хранения 8-ми разрядного двоичного числа. Оно состоит
из восьми триггеров, каждый из которых может хранить один двоичный разряд. Регистровый файл AVR-контроллера состоит из 32
однобайтных регистров, имеющих имена R0-R31 и
сквозные адреса в пространстве ОЗУ 0-31. Шесть регистров R26-R27, R28-R29, R30-R31 выступают как парные регистры X, Y, Z. Они могут работать как в паре,
так и независимо. Эти парные регистры предназначены для хранения адресов ячеек
памяти. Регистр РС - программный счетчик, хранит
двухбайтный адрес ячейки памяти, где расположен первый байт команды, которая
будет выполняться микропроцессором на следующем шаге. Пример: при включении
микропроцессора РС=0016, после считывания первого байта первой
команды, определяется длина команды, которая складывается с содержимым регистра
РС. Таким образом, после выполнения команды в регистре РС находится адрес первого
байта следующей команды. Регистр SP – указатель стека предназначен для управления специализированной
областью стековой памяти, адресация в которой осуществляется по содержимому
регистра SP. Стековая
память расположена по старшим адресам области ОЗУ
(Область «Data» в пакете
«AVRStudio»). Содержимое регистров PC и SP можно наблюдать в окне Workspace\IO\Processor. РП –
регистр признаков, флаговый
регистр, или регистр статуса. Этот регистр предназначен
для хранения результатов контроля выполнения команды. Он состоит как минимум из
пяти информационных двоичных разрядов.
Рис.
Структура РП для процессора К-580 Разряд С называется флагом переноса и становится равным единице
после выполнения арифметической команды, если результат операции не умещается в
восьми битном регистре приемника. Пример: 250+50=44, С=1; 250+1=251, С=0.
Рис.
Структура РП для AVR
контроллера Z – флаг нуля. Принимает значение 1,
если по окончании арифметической операции во всех разрядах регистра получателя
или регистра приемника содержатся нули. Пример: 250+6=0, Z=1; 250+1=251, Z=0. N – флаг отрицательного результата,
дублирует старший разряд регистра получателя после выполнения арифметической
операции. Пример: 120+7=127, N=0; 120+8=-128, N=1 V – флаг переполнения, указывает на
верность (V=0) или
ошибочность (V=1)
результатов арифметической операции со знаковыми числами. Пример: 100+20=120, V=0; 100+29=-127, V=1. S – флаг знака, S=N xor V, где xor-логическая операция
«исключающая ИЛИ» Н – флаг дополнительного переноса,
указывает на наличие переноса из младшей тетрады в старшую при выполнении арифметической команды. Пример: 10+1=11, H=0;15+1=16, H=1. Т – флаг трассировки. I – флаг прерывания. Содержимое регистра PП или регистра
статуса SREG можно наблюдать
в окне Workspace\IO\CPU\SREG. 2. Устройство управления микропроцессора Устройство управления МП обеспечивает необходимую последовательность
действий МП при выполнении программы, состоящей из команд записанных в ПЗУ (Memory/program). УУ состоит из дешифратора команд и формирователя сигналов управления
(ДШК и ФСУ).
Рис. Устройство управления МП При выполнении любой команды
программы содержимое программного счетчика загружается в магистраль адреса МА
(см.рис.7 – схема микропроцессорной системы),
одновременно формируется сигнал чтения памяти программ и в ответ на эти сигналы
содержимое первого слова команды, хранящейся в ячейке памяти программ,
загружается в МД (магистраль данных), откуда поступает в ДШК УУ. После этого
содержимое регистра программного счетчика РС наращивается на единицу,
подготавливая выполнение считывания очередной команды. ДШК определяет тип команды и
тип адресации операндов, в соответствии с которым УУ генерирует управляющие
сигналы: CLK – тактовые сигналы, Mem R – сигнал считывания из
памяти, Mem W - сигнал записи в память, IOR – сигнал считывания из регистров
ввода-вывода, IOW – сигнал записи в регистры
ввода-вывода. Пример №1: LDI R16, 100 – ни один из
управляющих сигналов не генерируется. LDS R16, 100 – генерируется
сигнал MemR. STS 100, R16 – генерируется сигнал MemW. LDS R16, 95 – генерируется сигнал IOR, после считывания первого байта команды, УУ определяет прямой тип адресации 2-го операнда и, для обращения к этому операнду, формируется сигнал IOR для его прочтения из ПЗУ. 3. Состав микропроцессорной системы МП является частью
микропроцессорной системы (МПС), состоящей из МП, устройства ввода-вывода (УВВ)
информации и периферийных устройств. МПС, реализованная
на одном кристалле (в одной микросхеме), называется микроконтроллером. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Адрес I/O (Адрес RAM) |
Обозначение |
Функция |
|
$ 3D ($5D) |
SPL |
Указатель стека (младший байт) |
|
$ 3E ($5E) |
SPH |
Указатель стека (старший байт) |
|
$ 3F ($5F) |
SPEG |
Регистр статуса (признаков или флаговый регистр) |
|
$ 00 ($20) |
PINF |
Выводы входов порта F |
|
$ 01 ($21) |
PINE |
Выводы входов порта E |
|
$ 02 ($22) |
DDR E |
Регистр направления данных порта E |
|
$ 03 ($23) |
PORT E |
Регистр данных порта E |
|
$ 04 ($24) |
ADCL |
Младший байт регистра данных АЦП |
|
$ 05 ($25) |
ADCH |
Старший байт регистра данных АЦП |
|
$ 06 ($26) |
ADCSR |
Регистр управления и статуса АЦП |
|
$ 07 ($27) |
ADMUX |
Регистр мультиплексора АЦП |
|
$ 08 ($28) |
ACSR |
Регистр управления и статуса аналогового ком. |
|
$ 09 ($29) |
UBRR |
Регистр управления скоростью порта UART |
|
$ 0A ($2A) |
UCR |
Регистр управления порта UART |
|
$ 0B ($2B) |
USR |
Регистр статуса порта UART |
|
$ 0C ($2C) |
UDR |
Регистр данных порта UART |
|
$ 0D ($2D) |
SPCR |
Регистр управления порта SPI |
|
$ 0E ($2E) |
SPRC |
Регистр статуса порта SPI |
|
$ 0F ($2F) |
SPDR |
Регистр данных порта SPI |
|
$ 10 ($30) |
PIN D |
Выводы входов порта D |
|
$ 11 ($31) |
DDR D |
Регистр направления данных порта D |
|
$ 12 ($32) |
PORT D |
Регистр данных порта D |
|
$ 13 ($33) |
PINC |
Выводы входов порта C |
|
$ 14 ($34) |
DDR C |
Регистр направления данных порта C |
|
$ 15 ($35) |
PORT C |
Регистр данных порта C |
|
$ 16 ($36) |
PIN B |
Выводы входов порта B |
|
$ 17 ($37) |
DDR B |
Регистр направления данных порта B |
|
$ 18 ($38) |
PORT B |
Регистр данных порта B |
|
$ 19 ($39) |
PIN A |
Выводы входов порта A |
|
$ 1A ($3A) |
DDR A |
Регистр направления данных порта A |
|
$ 1B ($3B) |
PORT A |
Регистр данных порта A |
|
$ 1C ($3C) |
EE CR |
Регистр управления EEPROM |
|
$ 1D ($3D) |
EE DR |
Регистр данных EEPROM |
|
$ 1E ($3E) |
EE ARL |
Младший байт адреса EEPROM |
|
$ 1F ($3F) |
EE ARH |
Старший байт регистра адреса EEPROM |
|
$ 20 ($40) |
Резерв |
Резерв |
|
$ 21 ($41) |
WDTCR |
Регистр управления сторожевого таймера |
|
$ 23 ($42) |
Резерв |
Резерв |
|
$ 24 ($43) |
OCR2 |
Регистр выхода таймера/ счетчик №2 |
|
$ 24 ($44) |
TCNT2 |
Таймер/счетчик №2 |
|
$ 25 ($45) |
TCCR2 |
Регистр управления таймера/счетчика №2 |
|
$ 26 ($46) |
ICR1L |
Младший байт регистра захвата таймера/счетчика №1 |
|
$ 27 ($47) |
ICR1H |
Старший байт регистра захвата таймера/счетчика №1 |
|
$ 28 ($48) |
OCR1BL |
Младший байт регистра в сравнения выхода таймера/счетчика
№1 |
|
$ 29 ($49) |
OCR1BH |
Старший байт регистра в сравнения выхода таймера/счетчика
№1 |
|
$ 2A ($4A) |
OCR1AL |
Младший байт регистра A в сравнения выхода
таймера/счетчика №1 |
|
$ 2B ($4B) |
OCR1AH |
Старший байт регистра A в сравнения выхода таймера/счетчика
№1 |
|
$ 2C ($4C) |
TCNT1L |
Младший байт таймера/счетчика №1 |
|
$ 2D ($4D) |
TCNT1H |
Старший байт таймера/счетчика №1 |
|
$ 2E ($4E) |
TCCR1B |
Регистр управления В
таймера/счетчика №1 |
|
$ 2F ($4F) |
TCCR1A |
Регистр управления А
таймера/счетчика №1 |
|
$ 30 ($50) |
ASSR |
Регистр статуса асинхронного
режима. |
8. Работа регистров цифрового ввода/вывода
Каждый порт
ввода/вывода цифровой информации, которых в контроллере бывает несколько и
которые различаются именем (А, В, С, D, E, F)
реализуются тремя регистрами со следующими именами: DDRA, PORTA и PINA.
Назначение этих
регистров:
DDRA
предназначен для программирования направления передачи информации в порту А.
Единичное значение бита регистра DDRA определяет режим выдачи
информации одноименного бита регистра порта А.
Нулевое значение бита определяет ввод
информации в одноименный бит порта А.
С ножками порта А
связан регистр PINA,
т.е. аппаратно сформировав потенциал на соответствующей ножке цифровой сигнал,
его можно считать программно из регистра PINA. При выдаче информации она запоминается в регистрах порта А (“защелкивается”).
С регистрами портов процессор работает при
помощи команд «out» и «in», если используется
адресация регистров ввода-вывода. При использовании сквозной нумерации
пространства ОЗУ применяются все остальные команды группы передачи данных.