РАО - РА7 |
РСО - РС7 |
t t f t t t t ?
РВ0-РВ7 PD0-PD7
Рис. 4. Структурная схема микроконтроллера AT90S8535
40
Структурная схема (рис. 4) отображает только логическую организацию микроконтроллера и его основные средства программной и аппаратной реализации требуемых функций. Средства программной реализации анало гичны рассмотренным в главе 1, хотя и имеют определенные особенности. Все остальные устройства, показанные на рис. 4, предназначены для аппа ратной реализации различных интерфейсных функций и будут рассмотре ны в следующей главе.
АЛУ микроконтроллера выполняет стандартный набор операций преоб разования данных однобайтового формата. Практически все эти операции выполняются за один такт микроконтроллера. В некоторых других моделях микроконтроллеров семейства AVR дополнительно содержится умножи тель, выполняющий умножение аппаратно с формированием двухбайтово го произведения за два такта. Регистр флагов, не показанный на рис. 4, также имеет однобайтовый формат, в микроконтроллере рассматривается, как один из регистров ввода-вывода, и в данной структуре называется ре гистр SREG.
Количество регистров общего назначения однобайтового формата уве личено до 32, регистры гО - гЗ 1. Существенные особенности этих регист ров: каждый регистр может выполнять функции аккумулятора, для регист ровой адресации шесть последних регистров общего назначения г26 - г 31 могут объединяться в регистровые пары X, Y и Z соответственно.
Так как память разделена на три независимых области - FLASH, RAM и EEPROM, каждая из этих областей имеет разное функциональное назначе ние, обладает самостоятельной системой и средствами адресации, требует применения разных команд доступа. Подробнее организация памяти рас смотрена в следующем разделе.
С точки зрения логической организации микроконтроллера каждое из устройств аппаратной реализации интерфейсных функций можно рассмат ривать как определенный набор регистров ввода-вывода, изменение дан ных в этих регистрах и является средством координации и управления их работой.
В контроллере предусмотрены программируемые режимы снижения по требляемой мощности (sleep mode) с отключением отдельных устройств. В режиме idle процессор микроконтроллера остановлен, все остальные уст ройства работают, и их внутренние аппаратные прерывания или внешние прерывания переводят микроконтроллер в активный режим немедленно. В режиме power-down процессор и тактовый генератор остановлены и, сле довательно, не работают все устройства микроконтроллера, тактируемые основным генератором, микроконтроллер переводится в активный режим сигналами внешних прерываний, сторожевым таймером или сигналом RE SET. Длительность внешних сигналов для надежного запуска тактового ге нератора должна превышать требуемую длительность сигнала RESET. В режиме power-save в отличие от power-down запуск микроконтроллера
41
дополнительно может производиться прерываниями таймера 2, если в этом таймере задан асинхронный режим работы от вспомогательного генерато ра.
На структурной схеме (рис. 4) и в дальнейшем при описании микро контроллеров будут использованы названия и обозначения, используемые фирмой ATMEL. Внешние выводы (рис.4) микроконтроллера:
•VCC и GND (общий) - источник питания цифровых элементов;
•AVCC, AGND (общий аналоговый), AREF - питание и опорное на пряжение АЦП и его мультиплексора;
•RESET - сигнал внешнего сброса (низкий уровень длительностью бо лее 50 не), при включении питания сброс микроконтроллера произ водится автоматически;
•XTAL1 и XTAL2 - соответственно вход и выход тактового генератора (для подключения частотозадающего кварцевого резонатора и общей синхронизации с другими устройствами), аналогичные электроды вспомогательного генератора асинхронного режима таймера 2 - вы воды РС6 и РС7;
•РА0-РА7, РВ0-РВ7, РС0-РС7, PD0-PD7 - 32 линии ввода-вывода, объ
единены в 4 восьмиразрядных порта (PORTA, PORTB, PORTC, PORTD).
PORTA, PORTB, PORTC, PORTD могут использоваться как стандартные двунаправленные порты ввода-вывода либо для передачи сигналов других устройств микроконтроллера. Альтернативные функции PORTA: передача аналоговых сигналов через мультиплексор на вход АЦП. Альтернативные функции PORTB: РВО и РВ1 - внешние входы ТО и Т1 таймеров 0 и 1 соот ветственно, РВ2 и РВЗ - входы AIN0 и AIN1 аналогового компаратора, ос тальные - сигналы синхронного последовательного интерфейса SPI (PB4 - SS, PB5 - MOSI, PB6 - MISO, PB7 - SCK). Альтернативные функции PORTC: PC6 и РС7 - вход и выход вспомогательного генератора таймера 2. Альтернативные функции PORTD: PD0 и PD1 - сигналы RXD и TXD асин хронного последовательного интерфейса UART соответственно, PD2 и PD3 - сигналы внешних прерываний INTO и INT1, PD4-PD7 - сигналы ОС 1В, ОС1 A, ICP, OC2 таймеров 1 и 2.
42
2.3. Запоминающие устройства микроконтроллера AT90S8535
Как указывалось ранее, запоминающие устройства микроконтроллера - FLASH, RAM, EEPROM, регистры общего назначения и регистры вводавывода образуют три отдельных адресных пространства (рис. 5).
Память программ |
Память данных |
Память данных |
$000 |
$000 |
$000 |
|
Регистры! общего |
|
|
назначения |
|
|
$01F |
EEPROM |
|
$020 |
|
|
(0,5 К ж 8) |
|
|
|
|
FLASH |
Регистры |
|
ввода-вывода |
|
|
(4Kxt6) |
$05F |
|
|
|
|
|
$060 |
$1FF |
|
RAM |
|
|
0,5 К х 8) |
|
|
$25F |
|
$FFF |
|
|
Рис. 5. Память микроконтроллера AT90S8535 |
||
FLASH - постоянное |
запоминающее устройство |
и предназначено для |
хранения кодов программы, адресация в этой области памяти производится программным счетчиком. Изменение адреса FLASH в программном счет чике производится в соответствии со стандартной организацией микропро цессорной системы. Как и обычно, для изменения адреса в программном счетчике можно применять команды управления микроконтроллера (см. главу 1). FLASH можно использовать и для хранения констант, чтение этих констант производится специальной командой "lpm" с регистровой адреса цией через регистр Z.
FLASH объемом 8 Кбайт предназначена для хранения кодов программ и констант, в том числе и при выключенном питающем напряжении, и состо-
43
ит из 4 К двухбайтовых ячеек с адресами $000 - $FFF\ Запись данных про изводится специальным программатором в процедуре внутрисистемного программирования, допустимое количество циклов перезаписи не менее 1000. Большинство кодов команд имеют 16-битовый формат, поэтому, как правило, одна ячейка флэш-памяти хранит код 1 команды или две 8- битовых константы.
В памяти данных EEPROM образует отдельное адресное пространство объемом 0,5 К однобайтовых ячеек с адресами $000 - $ IFF и хранением данных при выключении питающего напряжения. Доступ к данным в EEPROM производится специальной процедурой с особым алгоритмом ад ресации через соответствующие регистры из файла регистров вводавывода. Эта процедура по организации ближе к процедурам ввода-вывода (глава 1) и будет рассмотрена позднее, программно доступно и чтение, и запись данных. Запись данных также может производиться программато ром в процедуре внутрисистемного программирования.
Третье адресное пространство является основной рабочей областью па мяти данных и включает 32 регистра общего назначения с адресами $000 - $01F, 64 регистра ввода-вывода с адресами $020 - $05F и, собственно, RAM объемом 0,5 К однобайтовых ячеек с адресами $060 - $25F. Такая ор ганизация памяти данных позволяет адресовать все регистры как ячейки RAM с известными адресами либо использовать для их адресации соответ ствующие обозначения или адреса в регистровых файлах. Например, ре гистр управления АЦП имеет адрес RAM $026, адрес в файле регистров ввода-вывода $06 или символическое имя ADCSR.
Адресация ячеек памяти в третьем адресном пространстве производится стандартными способами. При прямой адресации адрес содержится в ко мандах sts k, Rr и Ids Rd, к (см. главу 4), где к - адрес в диапазоне $000- $25F, Rr и Rd любые из регистров общего назначения. Косвенная адресация возможна регистрами X, Y, Z. Каждый из этих адресных регистров образо ван парой регистров общего назначения: X - r27-r26, Y - r29-r28, Z - г31гЗО. Также возможна стековая адресация с помощью указателя стека (пара регистров SPH-SPL файла регистров ввода-вывода), обычно в качестве вершины стека используется наибольший адрес ОЗУ с символическим именем RAMEND, для данного микроконтроллера - это физический адрес $25F. Данные в командах с непосредственной адресацией являются эле ментами кодов программы и вместе с ними хранятся в FLASH.
Адресация регистров общего назначения стандартная: в команде указы вается номер регистра (например, mov r2, г0 - передать байт данных из г0 в г2) или присвоенное ему в программе символическое имя (например, mov
Символ $, как и символ Ох применяется для обозначения шестнадцатиричного формата дан ных 4 4