Научная статья на тему 'Архитектура AVR микроконтроллеров: развитие вширь и вглубь. Часть 1. Обзор основных характеристик'

Архитектура AVR микроконтроллеров: развитие вширь и вглубь. Часть 1. Обзор основных характеристик Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
542
101
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Королев Николай, Шабынин Антон

В январе 2007 года корпорация ATMEL провела в Норвегии, на родине AVR, традиционный дистрибьюторский семинар, посвященный новым достижениям в AVR-строении.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Архитектура AVR микроконтроллеров: развитие вширь и вглубь. Часть 1. Обзор основных характеристик»

Архитектура AVR:

развитие вширь и вглубь. Часть 1

Николай КОРОЛЕВ

[email protected] Антон ШАБЫНИН

[email protected]

В январе 2007 года корпорация Дше! провела в Норвегии, на родине ДУР, традиционный дистрибьюторский семинар, посвященный новым достижениям в ДУР-строении. Развитие ДУР-контроллеров происходит по трем основным направлениям: микросхемы для автомобильных применений, микросхемы со сверхнизким энергопотреблением (picoPower) и микросхемы, построенные на принципиально новом высокопроизводительном низкопотребляющем 32-разрядном ядре ДУР32. В первой части статьи приводится обзор основных характеристик новинок. Во второй части более подробно будет рассмотрено семейство контроллеров ДУР32 с Р!азИ-ПЗУ на кристалле.

Автомобильные AVR-контроллеры

Для применения в автомобильной промышленности Atmel разработала «высокотемпературные» версии микросхем. Следует отметить, что это не «отобранные» стандартные кристаллы, а специально разработанная топология. Особое внимание уделено модулю Flash-памяти. Известно, что время хранения информации, записанной во Flash-память, обратно пропорционально температуре кристалла. Таким образом, для микросхемы любого производителя фактический срок хранения данных в памяти при комнатной температуре и при температуре, например, +85 °C, отличается в несколько раз. Инженеры корпорации Atmel разработали специальную топологию элемента Flash-памяти со сниженными токами утечки. В результате гарантируется надежная работа микросхем в диапазоне температур от -40 до +125 °C. Существует четыре градации диапазонов рабочих температур для микросхем автомобильного применения:

• Grade 3, -40...+85 °C — индекс в названии микросхемы Т;

• Grade 2, -40...+ 105 °C — индекс в названии микросхемы Т1;

• Grade 1, -40...+ 125°C — индекс вназвании микросхемы Z;

• Grade 0, -40...+ 150 °C — индекс в названии микросхемы Т2.

Пилотной микросхемой на «автомобильный» температурный диапазон стала ATmega88. В настоящее время список микросхем расширен, а специальная версия ATmega88-ERSAT2 может работать в диапазоне от -40 до +150 °C! Основные параметры микросхем приведены в таблице 1.

Еще одним интересным решением для применения в автомобильной промышленности является микросхема, содержащая в корпусе два кристалла — AVR-контроллер и модуль интерфейса LIN. Микросхема функционирует в диапазоне напряжений питания от 5 до 18 В. Типовая схема включения микросхемы приведена на рис. 1.

К концу 2007 года будет выпущено более 10 типов микросхем с расширенным диапазоном рабочих температур (рис. 2).

Технология picoPower

С момента появления на рынке в 1997 году контроллеры AVR отличались невысоким энергопотреблением. Для управления потребляемой мощностью контроллер имеет шесть режимов энергосбережения:

• Idle mode — в этом режиме блокируется подача тактовых импульсов на CPU и Flash-память.

• ADC noise reduction mode — Idle mode, плюс блокируется тактирование портов ввода-вывода.

• Extended Standby mode — ADC noise reduction mode, плюс запрещается работа АЦП и EEPROM.

• Standby mode — Extended Standby mode, плюс запрещается работа таймера 2.

• Power Down mode — Standby mode, плюс запрещается работа генератора.

• Power Save mode — самый низкопотребляющий режим, активны только асинхронные модули — прерывания и порт TWI.

В 2006 году компания анонсировала разработку новых экономичных AVR-контроллеров семейства picoPower. В этом семействе реализован ряд дополнительных мер по снижению энергопотребления как в режиме ожидания, так и в активном режиме. Ниже более подробно рассмотрены особенности нового семейства.

Питание 1,8 В для всех модулей кристалла. В отличие от микроконтроллеров прежних поколений, технология picoPower подразумевает напряжение 1,8 В для питания абсолютно всех модулей кристалла, включая ана-

Таблица 1. Основные параметры микросхем фирмы Atmel

Flash кбайт EEPROM байт SRAM байт 16-разрядный таймер 8-разрядный таймер ШИМ- каналы RTC SPI UART TWI Умножитель Прерывания Внешние прерывания Тип корпуса

AT90CAN128 128 4096 4096 2 2 8 + + 2 - + 34 8 LQFP/MLF64

AT90CAN32 32 1024 2048 2 2 8 + + 2 - + 34 8 LQFP/MLF64

AT90CAN64 64 2048 4096 2 2 8 + + 2 - + 34 8 LQFP/MLF64

ATtiny25 2 128 128 - 2 4 - USI - USI - 15 7 Узкий SOIC 8

ATtiny45 4 256 256 - 2 4 - USI - USI - 15 7 Узкий SOIC 8

ATtiny85 8 512 512 - 2 4 - USI - USI - 15 7 Узкий SOIC 8

ATmega48 4 256 512 1 2 6 + 1+USART 1 + + 26 26 TQFP/QFN32

ATmega88 8 512 1024 1 2 6 + 1+USART 1 + + 26 26 TQFP/QFN32

ATmega168 16 512 1024 1 2 6 + 1+USART 1 + + 26 26 TQFP/QFN32

64/100 pin GP m еда 325Р/теда3250Р

Г 64/100 pin LCD т еда 329Р/теда3290Р N

J

44 pin GP

теда644Р теда1284Р

32 pin GP

mega48P/mega88P/mega168P/mega328P

> 2007

Рис. 2. Программа развития микроконтролеров серии automotive

логовые модули (АЦП, компаратор, источник опорного напряжения), а также модулей памяти (Flash-ПЗУ, EEPROM и ОЗУ).

Концепция «спящий BOD». Практически все современные микроконтроллеры имеют на кристалле модуль слежения за уровнем напряжения питания — BOD (Brown Out Detector). Есть два подхода к снижению потребления этого модуля. Первый — сделать модуль очень экономичным. Плата за экономичность — резкое, до единиц миллисекунд, снижение быстродействия. Второй — использовать быстродействующий BOD, однако отключать этот модуль на время пребывания контроллера в режиме ожидания. При этом время срабатывания модуля составляет 2 мкс. Естественно, для надежной работы контроллера модуль BOD отключается после перехода в режим ожидания, а включается до выхода из этого режима.

Ультранизкопотребляющий генератор на 32 кГц. При переходе контроллера в режим Standby существенную долю общего потребления контроллера составляют цепи генератора. Применение новой версии модуля генератора, работающего с «часовым» кварцем, позволяет получить ток не более 650 нА с учетом работающего модуля BOD. Сегодня это лучший показатель в промышленности.

Минимизация токов утечки. Потребление тока в режимах энергосбережения в большей степени определяется токами утечки кристалла. Применение собственного процесса для изготовления кристаллов по технологии picoPower позволяет получить токи утечки в режиме Standby при напряжении питания 1,8 В не более 100 нА.

Дальнейшие меры по снижению энергопотребления относятся к работе периферийных узлов в активном режиме. Как известно, по-

требление КМДП-микросхем в активном режиме напрямую зависит от частоты переключения вентилей вследствие перезаряда паразитных емкостей кристалла. Таким образом, если запретить подачу тактовых импульсов на некоторые модули контроллера, можно снизить потребляемую мощность. Эта технология получила название Clock Gating. Существует три уровня работы Clock Gating. Кристалл разделен на три энергопотребителя — Analog Domain, CPU Domain и In/Out Domain. Первый уровень отвечает за тактирование каждого энергопотребителя в зависимости от текущего режима работы контроллера.

Второй уровень задается программированием специального регистра снижения потребляемой мощности (Power Reduction Register, PRR). Известно, что в конкретной программе, выполняемой контроллером, не все периферийные модули могут быть активными постоянно. Некоторые модули задействуются на определенные интервалы времени, а какие-то — вообще не используются при выполнении той или иной процедуры. Регистр PRR управляет включением/выключением периферийных модулей. При отключении модуля его текущий статус запоминается, и все его регистры становятся недоступными для модификации. Как показывает стастистика, использование такого механизма позволяет снизить суммарную потребляемую мощность на 5-10% в активном режиме и на 10-20% в режиме Idle.

Третий уровень Clock Gating отвечает за адаптивное тактирование регистров. Известно, что не все регистры модифицируются в каждом такте. Таким образом, можно не подавать тактирующие импульсы на регистры, состояние которых не требуется модифицировать в данном цикле процессора.

Снижение потребления модуля Flash-памяти. Flash-память — это, по существу, аналоговый блок со статическим энергопотреблением. Как правило, во время работы контроллера этот блок всегда активен. Следует учесть, однако, что в ряде случаев контроллер используется не на максимальной тактовой частоте, следовательно, время выборки команды из Flash-ПЗУ меньше одного периода тактовой частоты. Когда AVR-контроллер работает на частоте не выше нескольких мегагерц, используется техника Flash sampling — модуль памяти активизируется только на время, необходимое для выборки команды, а затем отключается. Этот алгоритм проиллюстрирован на рис. 3.

Снижение токов утечки по входам. Многие AVR-контроллеры имеют модуль АЦП, который использует некоторые порты как аналоговые входы (рис. 4).

Мультиплексирование выводов контроллера для цифровых или аналоговых операций повышает функциональность, однако это приводит к увеличению энергопотребления. Это объясняется следующим. Входной

Sense Amp Enable

P

always on

P

sample

Рис. 3. Работа системы Flash sampling

Рис. 4. Структура универсального порта ввода-вывода

каскад КМДП-логики состоит из двух комплементарных МДП-транзисторов. При изменении уровня входного напряжения, в моменты, когда на вход подается уровень, примерно равный половине питания, оба транзистора «приоткрыты», и через входной каскад протекает сквозной ток. Для цифровых сигналов с крутыми фронтами это время пренебрежимо мало, однако если вывод используется как вход АЦП, на нем «неудобное» напряжение может оставаться сколь угодно долгое время, что приводит к увеличению уровня потребляемого тока. Для снижения потребления нужно отключать цифровой вход на время работы АЦП. Для этого введен специальный регистр DIDR (Dedicated Input Disable Register), который выборочно запрещает цифровые входы при работе АЦП. Также этот регистр запрещает неиспользуемые входы контроллера при переходе в ждущий режим.

Таким образом, совокупность мер по уменьшению тока потребления как в актив-

ном режиме, так и в режимах ожидания позволила создать производительный процессор, который отличается весьма малыми токами потребления.

Архитектура AVR32

Значительную долю рынка 32-разрядных контроллеров в настоящее время захватили микросхемы на базе ядер ARM7, ARM9 и ARM11. Atmel также производит контроллеры на базе ядер ARM7 и ARM9. Несмотря на это, в 2001 году корпорация начала разработку принципиально новой 32-разрядной RISC-архитектуры. Основной целью было повышение вычислительной производительности за такт процессора. Задача формулировалась как разработка процессора, который сможет решать сложные задачи цифровой обработки информации при малом потреблении энергии — требование разработчиков мобильных устройств. Ядро должно одновременно выполнять задачи MPU и DSP в рамках одной программной и инструментальной базы. В дополнение к производительному ядру контроллеры нового поколения имеют высокоскоростную периферию, в частности, два контроллера 10/100 Mbps MAC и High-Speed USB (480 Mbps). В последующих версиях контроллеров будет добавлен хост-контроллер USB (480 Mbps), поддерживающий режим OTG (On The Go).

Основные параметры микросхем приведены в таблице 2.

Архитектура AVR32 разработана в норвежском городе Тронхейм, там же, где созданы 8-разрядные AVR-контроллеры. В разработке участвовала команда из двадцати инженеров

и программистов. В результате 4-летней работы, над такими алгоритмами, как вычисление суммы абсолютных разностей (SAD) и обратное дискретное косинусное преобразование (IDCP), был достигнут 35% прирост эффективности на один такт процессора по сравнению с ядром ARM11. Это означает возможность декодировать в реальном времени видеопоток MPEG-4 разрешением QVGA (320x240) с частотой 30 кадров в секунду при частоте ядра 100 M^, в то время как ARM11 для решения этой задачи требуется частота 150-170 M^. Структурная схема первого представителя AVR32 — контроллера AT32AP7000 — приведена на рис. 5.

На ядре AVR32 разрабатывается семейство контроллеров с аббревиатурой AP (Application Processor). Микросхемы будут выпускаться в корпусах BGA и TQFP. На рис. 6. представлена программа развития этого семейства.

Структурная схема конвейера AVR32

Основой архитектуры AVR32 является семистадийный конвейер (рис. 7), обеспечивающий высокую производительность. Конвейер состоит из трех модулей, подготавливающих команду, и четырех модулей, производящих выполнение.

На первом этапе инструкции выбираются из кэш-памяти.

На втором этапе происходит динамическое предсказание ветвления на основе предыдущего значения, далее инструкции перемещаются в буфер декодера Java или RISC команд. Механизм предсказания ветвления позволяет избегать перезагрузки конвейера при выполнении операций ветвления. При предсказании ветвления в кэш загружается следующая за ветвлением операция. Совместно с высокой плотностью кода это позволяет снизить использование памяти и производить переходы без потери циклов. Третий этап — декодирование команды.

В зависимости от содержания команды она попадает в целочисленный модуль, который состоит из трех конвейеров:

• конвейер умножения, состоящий из двух блоков умножения;

• конвейер АЛУ, состоящий из двух блоков вычислений;

• конвейер данных, состоящий из модуля адресации и модуля доступа к данным.

Таблица 2. Основные параметры микросхем AT32AP700X

SDRAM (кбайт) DSP инструкции Векторный сопроцессор Ethernet 10/100 MAC USB HS Device Контроллер LCD 2048x2048 Число выводов общего назначения Число DMA каналов Интерфейс внешней шины Контроллер SDRAM AC97 Интерфейс к камере Ч П < Ф Кварцевый осциллятор MMU/MPU Бессвинцовый корпус

AT32AP7000 32 + + 2 1 24бит 160 20 + + 1 CMOS 2 2 MMU 256 CTBGA

AT3AP7001 32 + + 0 1 - 90 20 + + 1 CMOS 2 2 MMU 208 VQFP

AT32AP7002 32 + + 0 1 18бит 85 20 + + 1 CMOS 2 2 MMU 196 CTBGA

-тск -

- TDO

- TDI

- TMS -

N >

JTAG

INTERFACE

>1

/L-N

\п/

D+ -D- -

PA

PD'

PE

- ХОІЛО

-XIN

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

— XOU1

— PLL(

— PLL

DATA[11..0]>

— HSYNC—

— VSYNC— — PCLK—

COL,

CRS,

_RXD[3..0],

RX_CLK,

RX_DV,

RX_ER,

MDC,

TXD[3..0],

, TX_CLK,

17 TX_EN, ' TX_ER, SPEED É— MDIO —

<----DATAO-

<----DATA1 -

<---DATAON -

<---DATA1N-

- OSCI

- RES

- MDO[5..0] -

- MSEO[1..0] -

EVTO N -

USB

INTERFACE

ОМА

IMAGE

SENSOR

INTERFACE

INTRAMO INTRAM 1

ЭМА

MACBO

MACB1

NEXUS CLASS 3 OCD

А*//г *

AP CPU

MEMORY MANAGEMENT

INSTR

CACHE

TV

AZ.

PB HSB HSB-PB BRIDGE В

:sz

DMA CONTROLLER

- CLK -

- CMD-

- DATA[7..0]-

- SSYNC------>

— SDO-------

AUDIO BITSTREAM DAC

MULTIMEDIA CARD INTERFACE

AC97 CONTROLLER

32 KHz OSC

OSCO

OSC1

PLLO

ри.1

*_

*

— GCLK[3..0]

:en_n---------------->

ET_N ---------------->

/J—N

/J—N /і—N

POWER

MANAGER

CLOCK

GENERATOR

CLOCK

CONTROLLER

SLEEP

CONTROLLER

RESET

CONTROLLER

-A[2..0]-

— B[2..0] —

- CLK[2..0] -

— EXTINT[7..0] -

— KPS[7..0] —

— NMI_N-------->

TIMER/COUNTER 0/1

EXTERNAL

INTERRUPT

CONTROLLER

S М м м M s M

м HIGH SPEED BUS MATRIX

S s

м S MMS S M

:zy

ТУ

VSYNC,

HSYNC,

PWR,

PCLK,

- MODE, >

DVAL,

cc,

DATA[22..0],

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

GPL[7..0]

о

HSB HSB-PB BRIDGEA PB HSB-HSB BRIDGE

PERIPHERAL DMA CONTROLLER

LU >-

и Q£

< ° rr и- 5: о

ш <->

L±J LÜ

і— S. „

г { 1

= i d “ko

îït

й|8

ш W

RAS,

CAS,

SDWE,

NANDOE,

NANDWE,

SDCK,

- SDCKE, NWE3, NWE1, NWEO, NRD, NCS[3,1,0], ADDR[22..0] -DATA[15..0]

USARTO

USART1

USART2

USART3

<-----NWAIT

SDCS, NCS[5,4,2],

___ CFRNW, _wi

CFCE1,

CFCE2, ADDR[23..25] ^DATA[31..16]->

RXD -

-TXD --CLK -

- ртэ, сге -

SERIAL PERIPHERAL INTERFACE 0/1

- MISO, MOSI -

— NPCSO — -NPCS[3..1] -

/1------------К

SYNCHRONOUS SERIAL CONTROLLER 0/1/2

TWO-WIRE

INTERFACE

<-TX_CLOCK,TX_FRAME_SYNC >

---------TX_DATA----------->

<^RX_CLOCK, RX_FRAME_SYNC >

<-------RX_DATA------------

TX_CLOCK, TX_FRAME_SYNC

<-----------SCL----------->

<-----------SDA----------->

/—к V-

PS2 INTERFACE

------CLOCK [ 1 ..0]-------->

<---------DATA[1..0] --------->

V

REAL TIME COUNTER

WATCHDOG

TIMER

INTERRUPT

CONTROLLER

V

PULSE WIDTH

MODULATION

CONTROLLER

-PWM0-

-PWM1-

-PWM2-

-PWM3-

Рис. 5. Структурная схема контроллера AT32AP7000

Конвейер данных имеет доступ к сопроцессору для параллельного выполнения матричных и векторных операций.

Три перечисленных конвейера поддерживают одновременное исполнение независи-

мых инструкций с изменением последовательности (рис. 8). То есть, например, пока модуль умножения в течение 32 тактов занят, в модуле АЛУ может выполняться следующая операция.

Оптимизация доступа к памяти

Конвейеры соединены шинами, позволяющими передавать данные непосредственно от одного модуля к другому без загрузки

В разработке Доступны образцы Планируется

408

BGA

256

BGA

208

QFP

196

BGA

144

QFP

100

QFP

64

QFP

AP7200

AP7010

AP7000

AP7001

AP7002

Математические

алгоритмы

Шифрование

Ведео

Аудио

Связь

Мультимедиа

Рис. 6. Планы развития AVR32

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

дополнительных ресурсов. Например, результат суммирования из блока АЛУ2 сразу после завершения выполнения операции пересылается на вход модуля умножения 1, АЛУ1 и блок адресации данных (Data Address). Такой механизм позволяет экономить 3 такта, которые требуются для программной пересылки данных на вход конвейера (рис. 9).

Работа с сопроцессором реализована через конвейер данных, что минимизирует задержки во время выполнения команд сопроцессором.

Оптимизация на уровне буфера команд за счет переменной длины команд

AVR32 работает с расширенным набором RISC-команд. Команды могут иметь длину 16 или 32 бита и следовать общим потоком. В отличие от архитектуры ARM, у этого ядра нет необходимости переключаться между двумя режимами. Все команды распознаются непосредственно в конвейере.

Cache

Access

IFETCH1

Instruction

Buffer

Dynamic Branch Prediction

IFETCH2

Java

Decode

RISC

Decode

Issue

Return stack

Decode Stages

Integer Unit

Mul 1

Mul 2

ALU 1

Data

Address

ALU 2

Load / Store Unit

Data

Access

Write

Back

Multiply pipe

ALU pipe

Data pipe

V

Соргос ТСВ Coprocessor Bus

Рис. 7. Схема конвейера AVR32

100,00%т

80,00%

60,00%-

40,00%-

20,00%

0,00%-

if

7>

□ AVR32 ■ ARM 1020

^ ^ ^ cT

Рис. 8. Плотность кода AVR32 AP в тестах EEMBC (оптимизация по скорости)

100,00%

80,00%

60,00%

40,00%

20,00%

0,00%

□ AVR32 ■ ARM Thumb

Рис. 9. Плотность кода AVR32 AP в тестах EEMBC (оптимизация по длине)

100,00%

80,00%

60,00%

^ л /

□ AVR32

■ ARM269EJ-S

■ ARM1136JF-S

■ AVR32 скомпилировано GCC 4.0.1

■ ARM926 скомпилировано GCC 3.3.2

■ ARM 1136 скомпилировано GCC 3.4.3

Рис. 10. Сравнительная производительность AVR32

SIMD инструкции

В набор команд AVR32 входят инструкции для операций с множественными данными (Single Instruction Multiply Data), позволяющие в четыре раза увеличить производительность некоторых DSP-алгоритмов, которые требуют выполнения одинаковых операций с потоком данных. Например, при декодировании видео формата MPEG производится расчет восьмибитных сумм абсолютных разностей (SAD). Для этого четыре 8-битных пикселя загружаются из памяти одной операцией, затем выполняется пакетное вычитание беззнаковых байтов с проверкой переопусто-шения, сложение байтов внутри старшей и младшей пар и распаковка их в полуслова. Затем для вычисления значения SAD все значения складываются.

Инструкции эффективного

доступа к памяти

В среднем около 30% процессорного времени уходит не на обработку данных, а на инструкции чтения-записи. Архитектура AVR32 уменьшает число требуемых циклов для инструкций чтения-записи байта (8 разрядов), полуслова (16 разрядов), слова (32 разряда) и двойного слова (64 разряда), совмещая их с арифметическими операциями над указателем и ускоряя таким образом скорость доступа к данным в таблицах, структурах и к случайно расположенным данным, которые потребуются в ближайших последующих циклах. Широко применяемые алгоритмы блочного кодирования, такие как Blowfish и Triple-DES, используют таблицы подстановок, для работы с которыми в современных МК требуется большое число тактов процессора.

Например, выполнение следующей операции:

В основе лежат четыре операции доступа к памяти, извлекающие один из четырех байтов 32-разрядного слова. Результатом операции является адрес памяти, к которому требуется доступ.

Для выполнения этой операции на МК с традиционной RISC-архитектурой потребуется 14 тактов. AVR32 выполнит эту операцию всего за 7 тактов. Использование инструкции чтения с извлеченным индексом (extracted index) позволяет ядру AVR32 выполнить все четыре операции доступа к памяти за четыре такта, сохраняя при этом все четыре смещения в одном регистре.

За счет уменьшения числа требуемых инструкций для выполнения операций увеличивается производительность ядра AVR32.

DSP-инструкции

В набор команд входят DSP-команды, такие как битовые операции, умножение с накоплением (МАС), сдвиг на любое число битов за один такт, быстрые масочные операции с битами в слове и многое другое. Такое

нововведение позволяет не только быстро выполнять операции с портами общего назначения. Появляется возможность выполнять потоковую обработку данных на кристалле, Фурье-анализ, кодирование-декодирование, распознавание образов, воспроизведение аудио и видео без использования внешних кодеков (рис. 10).

Аппаратное выполнение

Java-инструкций

В конвейере AVR32 реализована аппаратная поддержка виртуальной машины Java — то есть кроме RISC-инструкций ядро может выполнять большинство инструкций байткода Java. Использование Java увеличивает возможности по использованию существующих пользовательских приложений и позволяет сократить время на перенос существующих или разработку новых приложений. В отличие от программной Java-машины, использование аппаратных возможностей позволяет в несколько раз повысить скорость выполнения. Вполне вероятно, что программы для контроллеров класса AVR32 через несколько лет будут разрабатываться на Java.

Разветвленная шинная топология и энергопотребление

Применение в AP7000 многослойной разветвленной архитектуры системных шин (рис. 11) позволяет распараллеливать операции передачи данных, а два независимых периферийных контроллера, работающие на разных частотах, физически разделяют

result=ptr0[offset0>>24]Aptr1[(offset1>>16)&0xff]A

ptr2[(offset2>>8)&0xff]Aptr3[offset3&0xff];

РіСо

AVR32AP CPU

Data Cache

Instr. Cache

МАСО

MAC1

LCDC

M

M

I DMAC^

2*M I S

HSB Bus Matrix

м

HSB/HSB

Bridge

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Low Speed HSB Bus

I 6*S

I 2*S

HSB/PB

Bridge

A

pd^~71

HSB/PB

Bridge

В

EBI

USB20

Device

ISI

INTRAM0

INTRAM 1

System Peripheral Bus В

TCO SMC

TC1 SDRAMC

ECC

AC97C.J

INTC

PWM

MACB1

МАСВ0

ISI

USB

HMATRIX

Config registers

L RTC L _WDT l_eim"

_ PM

System Manager

System Peripheral Bus A

SPI0/

s Slave Interface

M Master Interface

a Connected to DMAC Connected to PDC

SPI1

USARTQ/

USART1/

USART?/

USARTj/

SSCO/

SSCI/

SSC2/

PIOA

PIOB

PIOC

PIOD

PIOE

PS2

TWI

Рис. 11. Схема шин и периферии AP7000

высокоскоростную и медленную периферию. Таким образом, не тратится дополнительная энергия при работе медленных периферийных модулей на высокой частоте.

Контроллер разделен на четыре домена — ядро и шинная матрица (HBUS Matrix) и два периферийных контроллера, в каждом из которых частота может быть установлена независимо.

Поддержка компиляторов и ОС

Архитектура AVR32 разрабатывалась при тесном сотрудничестве с компанией IAR, которая занимается разработкой компиляторов для микроконтроллеров. Это выразилось в более удобной для компилятора архитектуре регистров. Также на этапе разработки было заложено требование по поддержке и оптимизации на уровне архитектуры использования операционной системы (ОС) для AVR32. В качестве ОС выбрана Linux. Существует специальный механизм, ускоряющий переключение между процессами и выполнение некоторых часто используемых системных вызовов. Естественно, во всех микроконтроллерах семейства AP7000 присутствует модуль MMU. Разработку программного обеспечения для AVR32 можно вести с применением компилятора GCC. Также в разработке находится порт Linux под AVR32.

Таким образом, микроконтроллер AT32 AP7000, построенный на новом ядре AVR32, предоставляет возможности по высокоскоростному вводу и передаче данных, выводу информации на ЖК-дисплей, потоковой обработке. При этом AP7000 остается микроконтроллером с низким потреблением, обусловленным архитектурными особенностями ядра AVR32.

В дополнение к семейству AVR32 AP (Application Processor) будут выпущены микросхемы семейства uC (MicroController). Эти микросхемы являются упрощенной версией AP с точки зрения насыщенности интерфейсными модулями, однако они содержат на кристалле Flash-ПЗУ и ОЗУ, что позволит создавать на них компактные недорогие одноплатные решения. Об этом — вторая часть статьи. ■

Литература

1. Технические описания микросхем: w ww.atmel.c om/products/avr/,

w ww.atmel.c om/products/avr32/

2. Материалы технических семинаров: ht tp:/ /atmel.argussoft.r u/seminars/

3. Королев Н. AVR-микроконтроллеры второго поколения: новые аппаратные возможности // Компоненты и технологии. 2004. № 3.

4. Yoshida J. Throughput drivers 32-bitter's design // EE Times. 30-01-2006.

i Надоели баннеры? Вы всегда можете отключить рекламу.