135319 (721861), страница 2
Текст из файла (страница 2)
Регистр Z | 15 0 | |
7 0 | 7 0 | |
1Fh (R31) | 1Eh (R30) |
При различных режимах адресации эти регистры могут использоваться как фиксированный адрес, для адресации с автоинкрементом или с автодекрементом.
Арифметико-логическое устройство - АЛУ
АЛУ процессора непосредственно подключено к 32 регистрам общего назначения. За один машинный цикл АЛУ производит операции между регистрами регистрового файла. Команды АЛУ разделены на три основных категории - арифметические, логические и битовые.
Загружаемая память программ.
AT90S2333/4433 содержат 2/4 кБ загружаемой флэш памяти для хранения программ. Поскольку все команды занимают одно 16- или 32-разрядное слово, флэш память организована как 1/2 Kx16. Флэш-память выдерживает не менее 1000 циклов перезаписи. Программный счетчик имеет ширину 10/11 бит и позволяет адресоваться к 1024/2048 словам программной флэш-памяти.
Подробно загрузка флэш памяти будет рассмотрена дальше.
EEPROM память данных
AT90S2333/4433 содержат 128/256 байт электрически стираемой энергонезависимой памяти (EEPROM). EEPROM организована как отдельная область данных, каждый байт которой может быть прочитан и перезаписан. EEPROM выдерживает не менее 100000 циклов записи/стирания. Доступ к энергонезависимой памяти данных рассмотрен ниже и задается регистрами адреса, данных и управления. Дальше будет рассмотрена загрузка данных в EEPROM через SPI интерфейс.
Статическое ОЗУ данных
На рисунке приведенном ниже показана организация памяти данных в AT90S2333/4433.
224 ячейки памяти включают в себя регистровый файл, память ввода/вывода и статическое ОЗУ данных.
Первые 96 адресов используются для регистрового файла и памяти ввода/вывода, следующие 128 - для ОЗУ данных.
При обращении к памяти используются пять различных режимов адресации: прямой, непосредственный со смещением, непосредственный, непосредственный с предварительным декрементом и непосредственный с постинкрементом. Регисты R26..R31 регистрового файла используются как указатели для непосредственной адресации. Прямая адресация имеет доступ ко всей памяти данных. Непосредственная адресация со смещением используется для доступа к 63 ячейкам базовый адрес которых задается содержимым регистров Y или Z.
Для непосредственной адресации с инкрементом и декрементом адреса используются адресные регистры X, Y и Z.
При помощи любого из этих режимов производится доступ ко всем 32 регистрам общего назначения, 64 регистрам ввода/вывода и 128 ячейкам ОЗУ.
Время выполнения команд.
ЦПУ процессора AVR управляется системной частотой генерируемой внешним резонатором. Внутреннее деление частоты генератора не используется. В процессоре организован буфер (pipeline) команд, при выборе команды из памяти программ происходит выполнение предыдущей команды. Подобная концепция позволяет достичь быстродействия 1MIPS на MHz, уникальных показателей стоимости, быстродействия и потребления процессора.
Регистровый файл | Область адресов данных |
R0 | 00h |
R1 | 01h |
: | : |
R30 | 1E |
R31 | 1F |
Регистры ввода\вывывода | |
00h | 20h |
01h | 21h |
: | : |
3Eh | 5Eh |
3Fh | 5Fh |
- | Встроенное ОЗУ |
- | 61h |
- | : |
- | DEh |
- | DFh |
Пространство ввода/вывода AT90S2333/4433
Адреса | регистры | название | функции |
3Fh(5Fh) | SREG | Status REGister | Регистр Состояния |
3Dh(5Dh) | SP | Stack pointer low | Указатель стека |
3Bh(5Bh) | GIMSK | General Interrupt MaSK register | Общий регистр маски прерываний |
3Ah(5Ah) | GIFR | General Interrupt Flag Register | Общий регистр флагов прерываний |
39h(59h) | TIMSK | Timer/counter Interrupt mask register | Регистр маски прерываний от таймера/счетчика |
38h(58h) | TIFR | Timer/counter Interrupt Flag register | Регистр флага прерывания таймера/счетчика |
35h(55h) | MCUCR | MCU general Control Register | общий регистр управления микроконтроллером |
34h(54h) | MCUSR | MCU Status Register | рег.состояния микроконтрол. |
33h(53h) | TCCR0 | Timer/Counter 0 Control Register | Регистр управления таймером счетчиком 0 |
32h(52h) | TCNT0 | Timer/Counter 0 (8-бит) | Таймер/счетчик 0 (8 бит) |
2Fh(4Fh) | TCCR1A | Timer/Counter 1 Control Register A | Рег. A управления таймером счетчиком 1 |
2Eh(4Eh) | TCCR1B | Timer/Counter 1 Control Register B | Рег. B управления таймером счетчиком 1 |
2Dh(4Dh) | TCNT1H | Timer/Counter 1 High byte | Таймер/счетчик 1 старший байт |
2Ch(4Ch) | TCNT1L | Timer/Counter 1 Low byte | Таймер/счетчик 1 младший байт |
2Bh(4Bh) | OCR1H | Output Compare Register 1 high byte | Выход регистра совпаден. 1 старший байт |
2Ah(4Ah) | OCR1L | Output Compare Register 1 low byte | Выход регистра совпаден. 1 младший байт |
27h(47h) | ICR1H | T/C 1 Input Cupture Register High Byte | Регистр захвата Т\С 1 старший байт |
26h(46h) | ICR1L | T/C 1 Input Cupture Register Low Byte | Регистр захвата Т\С 1 младший байт |
21h(41h) | WDTCR | Watchdog Timer Control Register | Регистр управления сторожевым таймером |
1Eh(3Eh) | EEAR | EEPROM Address Register | Регистр адреса энергонезависимой памяти |
1Dh(3Dh) | EEDR | EEPROM Data Register | Регистр данных энергонезависимой памяти |
1Ch(3Ch) | EECR | EEPROM Control Register | Регистр управления энергонезависимой памяти |
18h(38h) | PORTB | Data Register, Port B | Регистр данных порта B |
17h(37h) | DDRB | Data Direction Register Port B | Регистр направления данных порта B |
16h(36h) | PINB | Input pins, Port B | Выводы порта B |
15h(35h) | PORTС | Data Register, Port С | Регистр данных порта С |
14h(34h) | DDRС | Data Direction Register Port С | Регистр направления данных порта С |
13h(33h) | PINС | Input pins, Port С | Выводы порта С |
12h(32h) | PORTD | Data Register, Port D | Регистр данных порта D |
11h(31h) | DDRD | Data Direction Register Port D | Регистр направления данных порта D |
10h(30h) | PIND | Input pins, Port D | Выводы порта D |
0Fh(2Fh) | SPDR | SPI I/O Data Register | Регистр данных порта SPI |
0Eh(2Eh) | SPSR | SPI Status Register | Регистр состоян. порта SPI |
0Dh(2Dh) | SPCR | SPI Control Register | Регистр управл.порта SPI |
0Ch(2Ch) | UDR | UART Data Register | Регистр данных последовательного порта |
0Bh(2Bh) | USR | UART Status Register | Регистр состояния последовательного порта |
0Ah(2Ah) | UCR | UART Control Register | Регистр управления последовательного порта |
09h(29h) | UBRR | UART Baud Rate Register | Регистр скорости последовательного порта |
08h(28h) | ACSR | Analog Comparator Control and Status Register | Регистр управления и состояния аналогового компарат. |
07h(27h) | ADMUX | ADC multiplexer Select register | Регистр коммутатора АЦП |
06h(26h) | ADCSR | ADC Control and Status Register | Регистр управления и состояния АЦП |
05h(25h) | ADCH | ADC data register High | Рег данных АЦП (старш.) |
04h(24h) | ADCL | ADC data register Low | Рег данных АЦП (младш.) |
03h(23h) | UBRRHI | UART Baud Rate Register HIgh | Регистр скорости последовательного порта (старш.) |
Примечание: зарезервированные и неиспользуемые ячейки не показаны
Все устройства ввода/вывода и периферийные устройства процессора располагаются в пространстве ввода/вывода. Различные ячейки этого пространства доступны через команды IN и OUT, пересылающие данные между одним из 32-х регистров общего назначения и пространством ввода/вывода. К регистрам 00h..1Fh можно осуществлять побитовый доступ командами SBI и CBI. Значение отдельного бита этих регистров можно проверить командами SBIC и SBIS. Дополнительную информацию по этому вопросу можно найти в описании системы команд.