Использование RISC — архитектур
RISC — архитектуры в настоящее время используются в широком спектре платформ, от сотовых телефонов и планшетных компьютеров до некоторых из самых быстрых в мире суперкомпьютеров, таких как K компьютер, самый быстрый из TOP500 списка в 2011 году.
Мобильные системы
Рис. 3. AT91RM9200-QU 3003. Risc в КПК
- Архитектура ARM доминирует на рынке малой мощности и низкой стоимости встраиваемых систем (обычно 200-1800 МГц в 2014 году). Он используется в ряде систем, таких как большинство Android систем, в Apple, iPhone и IPad, Microsoft Windows Phone (бывший Windows Mobile ), RIM устройства, Nintendo Game Boy Advance и Nintendo DS, и т.д. (напр. Рис. 3)
- В PlayStation, PlayStation 2, Nintendo 64, PlayStation Portable.
- Hitachi ‘s SuperH, первоначально широко используется в Сега Супер 32X, Saturn и Dreamcast, в настоящее время разработаны и продаются Renesas как SH4.
- Atmel AVR используется в различных продуктах, начиная от Xbox контроллеров до BMW автомобилей.
- SPARC, с помощью Oracle (ранее Sun Microsystems ) и Fujitsu.
Суперкомпьютеры
- IBM ‘s Power Architecture, используется во многих суперкомпьютерах, серверах среднего уровня и рабочих станций IBM.
- Hewlett-Packard’s PA-RIS, также известный как HP-PA (снят с производства в конце 2008 года).
Архитектура Intel P5
Процессоры с архитектурой RISC в своем большинстве заняли свою специализированную нишу, однако в настольных системах все равно продолжали использоваться кристаллы с архитектурой x86. Их развитие продолжалось, пусть и с некоторыми изменениями.
Несмотря на то, что Intel вышла на рынок RISC-процессоров со своими решениями i860 и i960, основную ставку в компании все же делали на x86-кристаллы. Следующим поколением «камней» стали всем известные Pentium на базе архитектуры P5, выпущенные в 1993 году.
Была проделана большая работа. Во-первых, P5 стала суперскалярной. Архитектура работала с помощью двух конвейеров, каждый из которых мог выполнять две операции за такт. Во-вторых, шина данных стала 64-битной, что позволило передавать вдвое больший объем данных за цикл. В-третьих, кэш-память данных и инструкций была разделена на два отдельных блока объемом 8 Кбайт каждый. Помимо этого, в процессор был добавлен блок предсказания ветвлений, а модуль вычислений с плавающей запятой стал более производительным.
Архитектура 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.
Таблица 2. Основные параметры микросхем AT32AP700X
SDRAM (кбайт) | DSPинст-рук-ции | Век-тор-ныйсо-про-цес-сор | Ether-net 10/ 100 MAC | USB HS Devi-ce | Конт-рол-лерLCD 2048 x 2048 | Число выво-дов общего назна-чения | Число DMA кана-лов | Интер-фейс внеш-ней шины | Конт-роллер SDRAM | AC97 | Интер-фейс к камере | ФАПЧ | Квар-цевый осцил-лятор | MMU/ MPU | Бес-свинцовый корпус | |
AT32AP7000 | 32 | + | + | 2 | 1 | 24бит | 160 | 20 | + | + | 1 | CMOS | 2 | 2 | MMU | 256 CTBGA |
AT3AP7001 | 32 | + | + | 1 | — | 90 | 20 | + | + | 1 | CMOS | 2 | 2 | MMU | 208 VQFP | |
AT32AP7002 | 32 | + | + | 1 | 18бит | 85 | 20 | + | + | 1 | CMOS | 2 | 2 | MMU | 196 CTBGA |
Архитектура AVR32 разработана в норвежском городе Тронхейм, там же, где созданы 8-разрядные AVR-контроллеры. В разработке участвовала команда из двадцати инженеров и программистов. В результате 4-летней работы над такими алгоритмами, как вычисление суммы абсолютных разностей (SAD) и обратное дискретное косинусное преобразование (IDCP), был достигнут 35% прирост эффективности на один такт процессора по сравнению с ядром ARM11. Это означает возможность декодировать в реальном времени видеофрагмент MPEG-4 разрешением QVGA с частой 30 кадров в секунду при частоте ядра 100 MГц, в то время как ARM11 для решения этой задачи требуется частота 150–170 MГц.
Структурная схема первого представителя AVR32 — контроллера AT32AP7000 приведена на рис. 5.
Рис. 5. Структурная схема контроллера AT32AP7000
На ядре AVR32 разрабатывается семейство контроллеров с аббревиатурой AP (Application Processor). Микросхемы будут выпускаться в корпусах BGA и TQFP. На рис. 6. представлена программа развития этого семейства.
Рис. 6. Планы развития AVR32
Что такое микроконтроллер
Прежде всего, разберемся с самим понятием «микроконтроллер». Микроконтроллер можно определить как миниатюрный компьютер на базе одного-единственного чипа, включающий, помимо процессора ряд вспомогательных элементов, таких, как ОЗУ, ППЗУ, таймер, и.т.д. Микроконтроллер предназначен для выполнения каких-либо заранее определенных заданий.
Проще всего сравнить микроконтроллер с персональным компьютером. Как и ПК, микроконтроллер имеет процессор, оперативную и постоянную память. Однако, в отличие от ПК, все эти элементы расположены на одном-единственном чипе.
Но означает ли это, что микроконтроллер равноценен персональному компьютеру? Разумеется, нет. ПК создан для того, чтобы выполнять задачи общего назначения. Например, вы можете использовать компьютер, для набора текста, хранения и запуска мультимедиа-файлов, серфинга в Интернет, и.т.д. Микроконтроллеры предназначены для выполнения специальных заданий, например, выключения кондиционера, когда температура в комнате опускается ниже определенного значения, или наоборот, его включения, когда температура повышается.
Существует несколько популярных семейств микроконтроллеров, которые используются для различных целей. Наиболее распространенными из них являются семейства микроконтроллеров 8051, PIC и AVR. И о последнем семействе мы и собираемся вам рассказать подробнее.
Защищенные микроконтроллеры с архитектурой secureAVR™
Тип | Напр. питания, В | CRYPTO | EEPROM | Масочная ROM | RAM | Flash | I/O | Таймеры | Тип интер-фейса |
AT90SC9618RT | 2.7 — 5.5 | + | 18K | 96K | 4K | — | 1 | 2x16bit | ISO7816 |
AT90SC9618RCT | 2.7 — 5.5 | + | 18K | 96K | 4K | — | 1 | 2x16bit | ISO7816 |
AT90SC9616RC | 2.7 — 5.5 | + | 16K | 96K | 3K | — | 2 | 2x16bit | ISO7816 |
AT90SC9608RT | 2.7 — 5.5 | — | 8K | 96K | 4K | — | 1 | 2x16bit | ISO7816 |
AT90SC9608RCT | 2.7 — 5.5 | + | 8K | 96K | 4K | — | 1 | 2x16bit | ISO7816 |
AT90SC9608RC | 2.7 — 5.5 | + | 8K | 96K | 3K | — | 2 | 2x16bit | ISO7816 |
AT90SC6436RT | 2.7 — 5.5 | — | 36K | 64K | 2K | — | 1 | 1x16bit | ISO7816 |
AT90SC6404RFT | 2.7 — 5.5 | — | 4K | 64K | 1K | — | 1 | 2x16bit | ISO14443 |
AT90SC6404RT | 2.7 — 5.5 | — | 4K | 64K | 2K | — | 1 | 2x16bit | ISO7816 |
AT90SC4818RT | 2.7 — 5.5 | — | 18K | 48K | 2K | — | 1 | 1x16bit | ISO7816 |
AT90SC320288RCT | 1.62 — 5.5 | + | 288K | 320K | 8K | — | 2 | 2x16bit | ISO7816 |
AT90SC288144RT | 1.62 — 5.5 | — | 144K | 288K | 6K | — | 1 | 2x16bit | ISO7816 |
AT90SC25672RT | 1.62 — 5.5 | — | 72K | 256K | 6K | — | 1 | 2x16bit | ISO7816 |
AT90SC19272RC | 2.7 — 5.5 | + | 72K | 192K | 4K | — | — | 2x16bit | ISO7816 |
AT90SC19236RT | 1.62 — 5.5 | — | 36K | 192K | 4K | — | 1 | 2x16bit | ISO7816 |
AT90SC12872RCFT | 1.62 — 5.5 | + | 72K | 128K | 5K | — | 2 | 3x16bit | ISO14443+ISO7816 |
AT90SC12836RCT | 2.7 — 5.5 | + | 36K | 128K | 5K | — | 1 | 2x16bit | ISO7816 |
AT90SC12836RCFT | 2.7 — 5.5 | + | 36K | 128K | 5K | — | 2 | 3x16bit | ISO14443 + ISO7816 |
|
— не рекомендованы для новых разработок |
Все приборы семейства AVR совместимы по исходным кодам и тактированию. Семейство обеспечено комплектом программ и системами отладки, включающими: макро-ассемблеры, отладчики/симуляторы программ, внутрисхемные эмуляторы, и отладочные устройства.
Микроконтроллеры семейства AVR поставляются в очищенном состоянии — содержимое и Flash памяти программ и ЭСППЗУ данных находится в состоянии FF и готово к программированию.
Объединение на одном кристалле усовершенствованного 8-разрядного RISC ЦПУ с загружаемым Flash ПЗУ позволило фирме создать мощный микроконтроллер, обеспечивающий высокую гибкость и экономичность в использовании прибора в качестве встраиваемого контроллера.
Таблица: основное различия между микроконтроллерами AVR, ARM, 8051 и PIC
8051 | PIC | AVR | ARM | |
Разрядность | 8 бит | 8/16/32 бит | 8/32 бит | 32 бит, иногда 64 бит |
Интерфейсы | UART, USART,SPI,I2C | PIC, UART, USART, LIN, CAN, Ethernet, SPI, I2S | UART, USART, SPI, I2C, иногда CAN, USB, Ethernet | UART, USART, LIN, I2C, SPI, CAN, USB, Ethernet, I2S, DSP, SAI, IrDA |
Скорость | 12 тактов на инструкцию | 4 такта на инструкцию | 1 такт на инструкцию | 1 такт на инструкцию |
Память | ROM, SRAM, FLASH | SRAM, FLASH | Flash, SRAM, EEPROM | Flash, SDRAM, EEPROM |
Шинная архитектура | CLSC | Частично RISC | RISC | RISC |
Архитектура памяти | Фон-неймановская | Гарвардская | Модифицированная | Модифицированная гарвардская |
Энергопотребление | Среднее | Низкое | Низкое | Низкое |
Семейства | Вариации 8051 | PIC16,PIC17, PIC18, PIC24, PIC32 | Tiny, Atmega, Xmega, спец. AVR | ARMv4,5,6,7 … |
Производители | NXP, Atmel, Silicon Labs, Dallas, Cyprus, Infineon … | Microchip | Atmel (Microchip) | Apple, Nvidia, Qualcomm, Samsung Electronics, TI … |
Стоимость | Низкая | Средняя | Средняя | Низкая |
Популярные микроконтроллеры | AT89C51, P89v51 | PIC18fXX8, PIC16f88X, PIC32MXX | Atmega8, 16, 32; вариации для Arduino | LPC2148, ARM Cortex-M0, ARM Cortex-M3, ARM Cortex-M7 |
digitrode.ru
Классические AVR-микроконтроллеры
Тип | Напр. питания, В | Такт. Частота, МГц | I/O | Flash | EEPROM | SRAM | Интер-фейсы | АЦП | Таймеры | ISP | Корпус |
AT90PWM1 | 2.7-5.5 | 16 | 19 | 8K | 0.5 | 512 | SPIPWM | 8x10bit | 1x8bit1x16bit | I | SO24 |
AT90PWM2 | 2.7-5.5 | 16 | 53 | 8K | 512 | 512 | SPIdebugWIREPSC | 8x10bit | 2 | I | SO24 |
AT90PWM3 | 2.7-5.5 | 16 | 53 | 8K | 512 | 512 | SPIdebugWIREPSC | 11x10bit | 2 | I | SO32, QFN32 |
AT90S1200 | 2.7-6.04.0-6.0 | 412 | 15 | 1K | 64 | — | — | — | 1x8bit | I | DIP20 SO20 SSOP20 |
AT90S2313 | 2.7-6.04.0-6.0 | 410 | 15 | 2K | 128 | 128 | UART | — | 1x8bit1x16bit | I | DIP20 SO20 |
AT90LS2323 | 2.7-6.0 | 4 | 3 | 2K | 128 | 128 | — | — | 1x8bit | I | DIP8 SO8 |
AT90S2323 | 4.0-6.0 | 10 | 3 | 2K | 128 | 128 | — | — | 1x8bit | I | DIP8 SO8 |
AT90LS2343 | 2.7-6.0 | 4 | 5 | 2K | 128 | 128 | — | — | 1x8bit | I | DIP8 SO8 |
AT90S2343 | 4.0-6.0 | 10 | 5 | 2K | 128 | 128 | — | — | 1x8bit | I | DIP8 SO8 |
AT90LS4433 | 2.7-6.0 | 4 | 20 | 4K | 256 | 128 | UARTSPI | 6x10bit | 1x8bit1x16bit | I | DIP28 TQFP32 |
AT90S4433 | 4.0-6.0 | 8 | 20 | 4K | 256 | 128 | UARTSPI | 6x10bit | 1x8bit1x16bit | I | DIP28 TQFP32 |
AT90LS8515 | 2.7-6.0 | 4 | 32 | 8K | 512 | 512 | UARTSPI | — | 2x8bit1x16bit | I | DIP40 TQFP44 PLCC44 |
AT90S8515 | 4.0-6.0 | 8 | 32 | 8K | 512 | 512 | UARTSPI | — | 2x8bit1x16bit | I | DIP40 TQFP44 PLCC44 |
AT90LS8535 | 2.7-6.0 | 4 | 32 | 8K | 512 | 512 | UARTSPI | 8x10bit | 2x8bit1x16bit | I | DIP40 TQFP44 PLCC44 |
AT90S8535 | 4.0-6.0 | 8 | 32 | 8K | 512 | 512 | UARTSPI | 8x10bit | 2x8bit1x16bit | I | DIP40 TQFP44 PLCC44 |
Микроконтроллеры семейства MegaAVR
Тип | Напр. питания, В | Такт. Частота, МГц | I/O | Flash | EEPROM | SRAM | Интер-фейсы | АЦП | Таймеры | ISP | Корпус |
ATmega406 | 4.0 — 25 | 1 | 18 | 40K | 512 | 2K | JTAGTWI | 10x12bit1x18bit | 1x8bit1x16bit | IPower-savePower-downPower-off | LQFP48 |
ATmega48 | 1.8-5.5 | 20 | 23 | 4K | 256 | 512 | UARTSPII2C | 6x10bit2x8bit | 2x8bit1x16bit | S | DIP28 TQFP32 MLF32 |
ATmega48 Avtomotove | 2.7-5.5 | 16 | 23 | 4K | 256 | 512 | UARTSPII2C | 6x10bit2x8bit | 2x8bit1x16bit | S | TQFP32 MLF32 |
ATmega88 | 1.8-5.5 | 20 | 23 | 8K | 512 | 1k | UARTSPII2C | 6x10bit2x8bit | 2x8bit1x16bit | S | DIP28 TQFP32 MLF32 |
ATmega88 Avtomotove | 2.7-5.5 | 20 | 23 | 8K | 512 | 1k | UARTSPII2C | 6x10bit2x8bit | 2x8bit1x16bit | S | TQFP32 MLF32 |
ATmega168 | 1.8-5.5 | 20 | 23 | 16K | 512 | 1k | UARTSPII2C | 6x10bit2x8bit | 2x8bit1x16bit | S | DIP28 TQFP32 MLF32 |
ATmega168 Avtomotove | 2.7-5.5 | 20 | 23 | 16K | 512 | 1k | UARTSPII2C | 6x10bit2x8bit | 2x8bit1x16bit | S | TQFP32 MLF32 |
ATmega8 | 2.7-5.5 | 16 | 23 | 8K | 512 | 1k | UARTSPI | 8x10bit | 2x8bit1x16bit | S | DIP28 TQFP32 MLF32 |
ATmega16 | 2.7-5.5 | 16 | 32 | 16K | 512 | 1k | UARTSPI | 8x10bit | 2x8bit1x16bit | S | DIP40 TQFP44 MLF44 |
ATmega32 | 2.7-5.5 | 16 | 32 | 32K | 1K | 2K | UARTSPI | 8x10bit | 2x8bit1x16bit | S | DIP40 TQFP44 MLF44 |
ATmega64 | 2.7-5.5 | 16 | 53 | 64K | 2K | 4K | 2xUARTSPI | 8x10bit | 2x8bit2x16bit | S | TQFP64 MLF64 |
ATmega640 | 1,8…5,54,5…5,5 | 816 | 86 | 64K | 4K | 8K | 4xUARTJTAGSPI | 16x10bit | 2x8bit4x16bit | I | TQFP100 |
ATmega128 | 2.7-5.5 | 16 | 53 | 128K | 4K | 4K | 2xUARTSPI | 8x10bit | 2x8bit2x16bit | S | TQFP64 MLF64 |
ATmega1280 | 1,8…5,54,5…5,5 | 816 | 86 | 128K | 4K | 8K | 4xUARTJTAGSPI | 16x10bit | 2x8bit4x16bit | I | TQFP100 |
ATmega1281 | 1,8…5,54,5…5,5 | 816 | 54 | 128K | 4K | 8K | 2xUARTJTAGSPI | 8x10bit | 2x8bit4x16bit | I | TQFP64 |
AT90CAN32 | 2.7-5.5 | 16 | 53 | 32K | 1K | 2048 | UARTJTAGCANUSART | 8x10bit | 2x8bit2x16bit | S | MLF 64 LQFP 64 |
AT90CAN64 | 2.7-5.5 | 16 | 53 | 64K | 2K | 4K | UARTJTAGCANUSART | 8x10bit | 2x8bit2x16bit | S | MLF 64 LQFP 64 |
AT90CAN128 | 2.7-5.5 | 16 | 53 | 128K | 4K | 4K | 2xUARTSPICAN | 8x10bit | 2x8bit2x16bit | S | TQFP64 MLF64 |
AT90CAN128 Automotive | 2.7-5.5 | 16 | 53 | 128K | 4K | 4096 | 2xUARTSPICAN | 8x10bit | 2x8bit2x16bit | S | MLF64 LQFP64 |
ATmega103 | 4.0-5.5 | 6 | 48 | 128K | 4K | 4K | UARTSPI | 8x10bit | 2x8bit2x16bit | I | TQFP64 |
ATmega161 | 2.7-5.5 | 8 | 35 | 16K | 512 | 1K | 2xUARTSPI | — | 2x8bit1x16bit | S | DIP40 TQFP44 |
ATmega162 | 1.8-5.5 | 16 | 35 | 16K | 512 | 1K | 2xUARTSPI | — | 2x8bit1x16bit | S | DIP40 TQFP44 MLF44 |
ATmega163L | 2.7-5.5 | 8 | 32 | 16K | 512 | 1K | UARTSPI | 8x10bit | 2x8bit1x16bit | S | DIP40 TQFP44 MLF44 |
ATmega164P/V | 1.8-5.5 | 16 | 32 | 16K | 512K | 1024 | 2xUARTSPI+USARTTWI | 8x10bit | 2x8bit1x16bit | S | MLF44 PDIP40 TQFP44 |
ATmega165 | 1.8-5.52.7-5.5 | 816 | 53 | 16K | 512 | 1K | UARTSPIJTAGPWM | 8x10bit | 2x8bit1x16bit | S | TQFP64 MLF64 |
ATmega165P | 1.8-5.5 | 16 | 54 | 16K | 0.5 | 1024 | UARTSPI+USI4PWM | 8x10bit | 2x8bit1x16bit | S | MLF64 TQFP64 |
ATmega169 | 1.8-3.6 | 4 | 534×25 LCD | 16K | 512 | 1K | UARTSPI | 8x10bit | 2x8bit1x16bit | S | TQFP64 |
ATmega169P | 1.8-5.5 | 16 | 54 | 16K | 0.5 | 1024 | UARTSPI+USI4PWM | 8x10bit | 2x8bit1x16bit | S | MLF64 TQFP64 |
ATmega8515 | 2.7-5.5 | 16 | 35 | 8K | 512 | 512 | UARTSPI | — | 2x8bit1x16bit | S | PDIP40 PLCC44 TQFP,MLF |
ATmega8535 | 2.7-5.5 | 16 | 32 | 8K | 512 | 512 | UARTSPI | 8x10bit | 2x8bit1x16bit | S | PDIP40 PLCC44 TQFP MLF |
ATmega2560 | 1,8…5,54,5…5,5 | 816 | 86 | 256K | 4K | 8K | 2xUARTJTAGSPI | 16x10bit | 2x8bit4x16bit | I | TQFP100 |
ATmega2561 | 1,8…5,54,5…5,5 | 816 | 54 | 256K | 4K | 8K | 2xUARTJTAGSPI | 8x10bit | 2x8bit4x16bit | I | TQFP64 |
ATmega324P/V | 1.8-5.5 | 20 | 32 | 32K | 1K | 2048 | 2xUARTSPI+USARTTWI | 8x10bit | 2x8bit1x16bit | S | MLF44 PDIP40 TQFP44 |
ATmega325 | 1.8-5.5 | 16 | 53 | 32K | 1K | 2K | UARTSPI | 8x10bit | 2x8bit1x16bit | S | TQFP MLF |
ATmega3250 | 1.8-5.5 | 16 | 68 | 32K | 1K | 2K | UARTSPI | 8x10bit | 2x8bit1x16bit | S | TQFP MLF |
ATmega325P | 1.8-5.5 | 20 | 54 | 32K | 1K | 2048 | UARTSPI | 8x10bit | 2x8bit1x16bit | S | MLF64 TQFP64 |
ATmega3250P | 1.8-5.5 | 20 | 54 | 32K | 1K | 2048 | UARTSPI | 8x10bit | 2x8bit1x16bit | S | TQFP100 |
ATmega329P | 1.8-5.5 | 16 | 54 | 32K | 1K | 2048 | JTAGSPI | 8x10bit | 2x8bit1x16bit | S | MLF64 TQFP64 |
ATmega3290P | 1.8-5.5 | 16 | 54 | 32K | 1K | 2048 | JTAGSPI | 8x10bit | 2x8bit1x16bit | S | TQFP100 |
ATmega644P/V | 1.8-5.5 | 20 | 32 | 64K | 2K | 4096 | 2xUARTSPI+USARTTWI | 8x10bit | 2x8bit1x16bit | S | MLF44 PDIP40 TQFP44 |
ATmega645 | 1.8-5.5 | 16 | 53 | 64K | 2K | 4K | UARTSPI | 8x10bit | 2x8bit1x16bit | S | TQFP MLF |
ATmega6450 | 1.8-5.5 | 16 | 68 | 64K | 2K | 4K | UARTSPI | 8x10bit | 2x8bit1x16bit | S | TQFP MLF |
ATmega644 | 1.8-5.52.7-5.5 | 1020 | 32 | 64K | 2K | 4K | UARTSPITWIPWMJTAG | 8x10bit | 2x8bit1x16bit | S | PDIP40 TQFP44 MLF44 |
ATmega329 | 1.8-5.5 | 16 | 53LCD 4×25 | 32K | 1K | 2K | UARTSPI | 8x10bit | 2x8bit1x16bit | S | TQFP MLF |
ATmega3290 | 1.8-5.5 | 16 | 68LCD 4×40 | 32K | 1K | 2K | UARTSPI | 8x10bit | 2x8bit1x16bit | S | TQFP MLF |
ATmega649 | 1.8-5.5 | 16 | 53LCD 4×25 | 64K | 2K | 4K | UARTSPI | 8x10bit | 2x8bit1x16bit | S | TQFP MLF |
ATmega6490 | 1.8-5.5 | 16 | 68LCD 4×40 | 64K | 2K | 4K | UARTSPI | 8x10bit | 2x8bit1x16bit | S | TQFP MLF |
Микроконтроллеры ARM
Микроконтроллеры с ядром ARM также являются одним из семейств процессоров на базе архитектуры RISC, разработанным компанией Advanced RISC Machines (ARM).
Микроконтроллеры ARM основаны на 32-битных и 64-битных многоядерных процессорах RISC. Процессоры RISC предназначены для выполнения меньшего количества инструкций, чтобы они могли работать с большей скоростью, выполняя дополнительные миллионы инструкций в секунду (MIPS). Устраняя ненужные инструкции и оптимизируя обработку информации, RISC-процессоры обеспечивают большую производительность по сравнению с большинством рассмотренных выше микроконтроллеров.
Процессоры ARM широко используются в потребительских электронных устройствах, таких как смартфоны, планшеты, мультимедийные проигрыватели и другие мобильные устройства. Из-за сокращенного набора команд им требуется меньше транзисторов, что позволяет уменьшить размер матрицы интегральной схемы. Процессоры ARM с меньшими размерами уменьшают сложность проектирования и сокращают энергопотребление, что делает их пригодными для более миниатюрных устройств.
Оптимизация доступа к памяти
Конвейеры соединены шинами, позволяющими передавать данные непосредственно от одного модуля к другому без загрузки дополнительных ресурсов. Например, результат суммирования из блока АЛУ2 сразу после завершения выполнения операции пересылается на вход модуля умножения 1, АЛУ1 и блок адресации данных (Data Address). Такой механизм позволяет экономить 3 такта, которые требуются для программной пересылки данных на вход конвейера (рис. 9).
Рис. 9. Плотность кода AVR32 AP в тестах EEMBC (оптимизация по длине)
Работа с сопроцессором реализована через конвейер данных, что минимизирует задержки во время выполнения команд сопроцессором.
Программы для микроконтроллера
Как уже упоминалось выше, микроконтроллер подобен ПК, а это значит, что, как и ПК, AVR также может выполнять какую-либо программу, хотя и всего одну в какой-либо момент времени.
Программа микроконтроллера может храниться во встроенной памяти контроллера и представляет собой серию очень простых команд, которые выбирают данные и осуществляют с ними операции. В большинстве случаев это означает считывание входящих данных, проверка их состояния и вывода соответствующих выходных данных. Иногда может потребоваться изменение данных и совершение с ними некоторых операций, а также передача данных какому-либо внешнему устройству, например, индикатору, или последовательному порту.
Для таких элементарных задач используются наборы двоичных команд, каждая из которых имеет аналог на более доступном человеческому восприятию языке ассемблера. Поэтому наиболее распространенным способом написания программ для контроллера является написание их на языке ассемблера.
Преимуществом ассемблера является очень быстрый, компактный и эффективный код, но создание таких программ одновременно требует и глубоких знаний работы процессора контроллера, ручного управления памятью и контроля структуры программы. Поэтому зачастую для написания программ используются и языки высокого уровня, такие, как С, Basic и Java. В этом случае задачу по контролю структуры программы и управлению памятью берет на себя компилятор. Кроме того, часто используемые функции могут быть при этом помещены в библиотеки и извлекаться из них по мере надобности.
Защищенные микроконтроллеры с архитектурой secureAVR™
Тип | Напр. питания, В | CRYPTO | EEPROM | Масочная ROM | RAM | Flash | I/O | Таймеры | Тип интер-фейса |
AT90SC9618RT | 2.7 — 5.5 | + | 18K | 96K | 4K | — | 1 | 2x16bit | ISO7816 |
AT90SC9618RCT | 2.7 — 5.5 | + | 18K | 96K | 4K | — | 1 | 2x16bit | ISO7816 |
AT90SC9616RC | 2.7 — 5.5 | + | 16K | 96K | 3K | — | 2 | 2x16bit | ISO7816 |
AT90SC9608RT | 2.7 — 5.5 | — | 8K | 96K | 4K | — | 1 | 2x16bit | ISO7816 |
AT90SC9608RCT | 2.7 — 5.5 | + | 8K | 96K | 4K | — | 1 | 2x16bit | ISO7816 |
AT90SC9608RC | 2.7 — 5.5 | + | 8K | 96K | 3K | — | 2 | 2x16bit | ISO7816 |
AT90SC6436RT | 2.7 — 5.5 | — | 36K | 64K | 2K | — | 1 | 1x16bit | ISO7816 |
AT90SC6404RFT | 2.7 — 5.5 | — | 4K | 64K | 1K | — | 1 | 2x16bit | ISO14443 |
AT90SC6404RT | 2.7 — 5.5 | — | 4K | 64K | 2K | — | 1 | 2x16bit | ISO7816 |
AT90SC4818RT | 2.7 — 5.5 | — | 18K | 48K | 2K | — | 1 | 1x16bit | ISO7816 |
AT90SC320288RCT | 1.62 — 5.5 | + | 288K | 320K | 8K | — | 2 | 2x16bit | ISO7816 |
AT90SC288144RT | 1.62 — 5.5 | — | 144K | 288K | 6K | — | 1 | 2x16bit | ISO7816 |
AT90SC25672RT | 1.62 — 5.5 | — | 72K | 256K | 6K | — | 1 | 2x16bit | ISO7816 |
AT90SC19272RC | 2.7 — 5.5 | + | 72K | 192K | 4K | — | — | 2x16bit | ISO7816 |
AT90SC19236RT | 1.62 — 5.5 | — | 36K | 192K | 4K | — | 1 | 2x16bit | ISO7816 |
AT90SC12872RCFT | 1.62 — 5.5 | + | 72K | 128K | 5K | — | 2 | 3x16bit | ISO14443+ISO7816 |
AT90SC12836RCT | 2.7 — 5.5 | + | 36K | 128K | 5K | — | 1 | 2x16bit | ISO7816 |
AT90SC12836RCFT | 2.7 — 5.5 | + | 36K | 128K | 5K | — | 2 | 3x16bit | ISO14443 + ISO7816 |
|
— не рекомендованы для новых разработок |
Все приборы семейства AVR совместимы по исходным кодам и тактированию. Семейство обеспечено комплектом программ и системами отладки, включающими: макро-ассемблеры, отладчики/симуляторы программ, внутрисхемные эмуляторы, и отладочные устройства.
Микроконтроллеры семейства AVR поставляются в очищенном состоянии — содержимое и Flash памяти программ и ЭСППЗУ данных находится в состоянии FF и готово к программированию.
Объединение на одном кристалле усовершенствованного 8-разрядного RISC ЦПУ с загружаемым Flash ПЗУ позволило фирме создать мощный микроконтроллер, обеспечивающий высокую гибкость и экономичность в использовании прибора в качестве встраиваемого контроллера.
Описание работы системы дистанционного управления на ИК лучах
Для дистанционного управления приборами применяется следующий механизм. На ПДУ нажимают и держат произвольную кнопку в течении 1 секунды. На непродолжительное нажатие (например во время управления музыкальным центром) система не откликается.
Для того, чтобы исключить отклик телевизора на управление приборами, необходимо выбирать не применяемые кнопки на ПДУ или применить пульт от выключенного в это время прибора.
Принципиальная схема дистанционного управления изображена на рисунке 1. Специальная микросхема DA1 усиливает и формирует электросигнал фотодиода BL1 в электроимпульсы. На радиоэлементах DD1.1 и DD1.2 построен компаратор, а на радиоэлементах DD1.3, DD1.4 — генератор импульсов.
Состояние системы управления (включена или выключена нагрузка) контролирует триггер DD2.1. В случае если на прямом выходе данного триггера лог 1, генератор будет функционировать на частоте примерно 1 кГц. На эмиттерах транзисторов VT1 и VT2 появятся импульсы, которые сквозь емкость С10 поступят на контролирующий вывод симистора VS1. Он будет отпираться в начале каждого полупериода сетевого напряжения.
В первоначальном положении на контакте 7 микросхемы DA1 находится лог 1, емкость С5 заряжена сквозь сопротивления R1, R2 и на входе С триггера DD2.1 лог 0. Если на фотодиод BL1 идут сигналы ИК излучения с пульта дистанционного управления, на контакте 7 микросхемы DA1 окажутся сигналы, и емкость С5 будет разряжаться сквозь диод VD1 и сопротивление R2.
Когда потенциал на С5 снизится до нижнего уровня компаратора (через 1 секунду или более), компаратор переключится и на ввод триггера DD2.1 поступит сигнал. Состояние триггера DD2.1 поменяется. Так совершается переключение приборов из одного состояния в другое.
Микросхемы DD1 и DD2 возможно использовать схожие из серий К564, К176. VD2 — стабилитрон на напряжение 8-9 вольт и ток более 35 мА. Диоды VD3 и VD4 — КД102Б или схожие. Оксидные емкости — К50-35; С2, С4, С6, С7 — К10-17; С9, С10 — К73-16 или К73-17.
Микроконтроллеры с архитектурой TinyAVR
Тип | Напр. питанияВ | Такт. ЧастотаМГц | I/O | Flash | EEPROM | SRAM | Интер-фейсы | АЦП | Таймеры | ISP | Корпус |
ATtiny11 | 2.7-5.5 | 6 | 6 | 1K | — | — | — | — | 1x8bit | — | PDIP8 SOIC8 |
ATtiny12 | 1.8-5.5 | 6 | 6 | 1K | 64 | — | — | — | 1x8bit | I | PDIP8 SOIC8 |
ATtiny13 | 1.8-5.5 | 20 | 6 | 1K | 64 | 64 | — | 4x10bit | 1x8bit2xPWM | I | PDIP8 SOIC8 |
ATtiny15 | 2.7-5.5 | 6 | 6 | 1K | 64 | — | — | 4x10bit | 2x8bit | I | PDIP8 SOIC8 |
ATtiny2313 | 1.8-5.5 | 20 | 15 | 2K | 128 | 128 | SPIUART | — | 1x8bit1x16bit | I | PDIP20 SOIC20 MLF32 |
ATtiny24 | 1,8…5,5 | 20 | 12 | 2K | 128 | 128 | USI4xPWMRTC | 8x10bit | 1x8bit1x16bit | S | PDIP14 MLF20 SOIC14 |
ATtiny25 | 2,7…5,5 | 20 | 32 | 2K | 128 | 128 | SPIUART | 4x10bit | 1x8bit1x8bit high speed | I | PDIP8 SOIC8 |
ATtiny25V | 1.8 — 5.5 | 10 | 32 | 2K | 128 | 128 | SPIUART | 4x10bit | 1x8bit1x8bit high speed | I | PDIP8 SOIC8 |
ATtiny26 | 2.7-5.5 | 16 | 16 | 1K | 128 | 128 | SPIUART | 11x10bit | 2x8bit | I | PDIP20 SOIC20 MLF32 |
ATtiny28 | 1.8-5.5 | 4 | 20 | 2K | — | — | — | — | 1x8bit | — | PDIP20 SOIC20 MLF32 |
ATtiny44 | 1,8…5,5 | 20 | 12 | 4K | 256 | 256 | USI4xPWMRTC | 8x10bit | 1x8bit1x16bit | S | PDIP14 MLF20 SOIC14 |
ATtiny45 | 2,7…5,5 | 20 | 32 | 4K | 256 | 256 | SPIUART | 4x10bit | 1x8bit1x8bit high speed | I | PDIP8 SOIC8 |
ATtiny45V | 1.8 — 5.5 | 10 | 32 | 4K | 256 | 256 | SPIUART | 4x10bit | 1x8bit1x8bit high speed | I | PDIP8 SOIC8 |
ATtiny84 | 1,8…5,5 | 20 | 12 | 8K | 512 | 512 | USI4xPWMRTC | 8x10bit | 1x8bit1x16bit | S | PDIP14 MLF20 SOIC14 |
ATtiny85 | 2,7…5,5 | 20 | 32 | 8K | 512 | 256 | SPIUART | 4x10bit | 1x8bit1x8bit high speed | I | PDIP8 SOIC8 |
ATtiny85V | 1.8 — 5.5 | 10 | 32 | 8K | 512 | 256 | SPIUART | 4x10bit | 1x8bit1x8bit high speed | I | PDIP8 SOIC8 |
* — Производство начнется в декабре 2005 — мае 2006 г.