Материал: Микропроцессорные устройства систем управления (2005)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

РАО - РА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

Источник: https://studfile.net/preview/16521245/