Неймана. Для преодоления этого недостатка предлагались и предлагаются архитектуры процессоров, которые называются параллельными. Параллельные процессоры используются в суперкомпьютерах.
Возможными вариантами параллельной архитектуры могут служить (по классификации Флинна):
SISD – один поток команд, один поток данных;
SIMD – один поток команд, много потоков данных;
MISD – много потоков команд, один поток данных;
MIMD – много потоков команд, много потоков данных.
Современные микроконтроллеры и их применение
Термин «микроконтроллер» обычно означает отдельную микросхему, содержащую процессорное ядро и все необходимые периферийные устройства на одном кристалле для того, чтобы реализовать специализированный микрокомпьютер для задач контроля/управления. Современные микроконтроллеры, как правило, содержат целый арсенал развитых цифровых и аналоговых периферийных блоков и модулей. Некоторые их них имеют обширный набор инструкций (CISC) и относительно медленно выполняют помещенные в них программы, а другие работают очень быстро (RISC), но имеют ограниченный набор исполняемых команд. Массовое производство микроконтроллеров привело к их значительному удешевлению и, как следствие, к широчайшему использованию в разнообразном промышленном и бытовом оборудовании, особенно в 4-, 8-, 16- и 32-разрядном исполнении. Ассортимент предлагаемых микроконтроллеров на мировом рынке постоянно растет, появляются новые более совершенные и технологичные изделия повышенной степени интеграции, новые полупроводниковые структуры, новые идеологические решения. Количество фирм-производителей также неуклонно растет при одновременном повышении их уровня технической и технологической оснащенности. Рассмотрим некоторые семейства микроконтроллеров основных производителей.
Современные 8-разрядные RISC-микроконтроллеры занимают промежуточную нишу по своим техническим характеристикам между классическими 8-разрядными микроконтроллерами и их 16-разрядными кузенами. Высокая производительность и меньшая, чем у 16-разрядных МК, цена превращают RISC-микроконтроллеры в мощный инструмент для построения эффективных многофункциональных контроллеров, используемых в самых разнообразных приложениях.
MICROCHIP PICmicro family. Первые микроконтроллеры компании MICROCHIP PIC16C5x появились в конце 80-х годов и благодаря своей высокой производительности и низкой стоимости составили серьёзную конкуренцию производимым в то время 8-разрядным МК с CISC-архитектурой.
21
Первое, что привлекает внимание в PIC-контроллерах, – это простота и эффективность. В основу концепции PIC, единую для всех выпускаемых семейств, была положена RISC-архитектура с системой простых однословных команд, применение встроенной памяти программ и данных и малое энергопотребление.
Система команд базового семейства PIC165x содержит только 33 команды. Как ни странно, и это сыграло свою роль в популяризации PIC-кон- троллеров. Все команды (кроме команд перехода) выполняются за один машинный цикл (или четыре машинных такта) с перекрытием по времени выборок команд и их исполнения, что позволяет достичь производительности до 5 MIPS при тактовой частоте 20 МГц.
Микроконтроллеры PIC имеют симметричную систему команд, позволяющую выполнять операции с любым регистром, используя любой метод адресации. Правда, разработчики MICROCHIP так и не смогли отказаться от любимой всеми структуры с регистром-аккумулятором, необходимым участником всех операций с двумя операндами. Зато теперь пользователь может сохранять результат операции на выбор, где пожелает, в самом реги- стре-аккумуляторе или во втором регистре, используемом для операции. В настоящее время MICROCHIP выпускает четыре основных семейства 8- разрядных RISC-микроконтроллеров, совместимых снизу вверх по программному коду:
–базовое семейство PIC15Cx с 12-разрядными командами, простые недорогие микроконтроллеры с минимальной периферией;
–PIC12Cxxx с 12-разрядными командами со встроенным тактовым генератором, выпускаемые в миниатюрном 8-выводном исполнении. Не так давно был анонсирован очередной такой «малыш» c внутренним 8-раз- рядным 4-канальным АЦП;
–Mid-range PIC16x/7x/8x/9x с 14-разрядными командами. Наиболее многочисленное семейство, объединяющее микроконтроллеры с разнообразными периферийными устройствами, в число которых входят аналоговые компараторы, аналогово-цифровые преобразователи, контроллеры последовательных интерфейсов SPI, USART и I2C, таймеры-счётчики, модули захвата/сравнения, широтно-импульсные модуляторы, сторожевые таймеры, супервизорные схемы и т.д.;
–High-end PIC17C4x/5xx высокопроизводительные микроконтроллеры
срасширенной системой команд 16-разрядного формата, работающие на частоте до 33 МГц, с объёмом памяти программ до 16 Кслов. Кроме обширной периферии, почти все микроконтроллеры этого семейства имеют встроенный аппаратный умножитель 8×8, выполняющий операцию умножения за один машинный цикл.
Большинство PIC-контроллеров выпускаются с однократно программируемой памятью программ OTP с возможностью внутрисхемного про-
22
граммирования или масочным ROM. Для целей отладки предлагаются версии с ультрафиолетовым стиранием, надо признать, не очень дешёвые. Полное количество выпускаемых модификаций PIC-контроллеров составляет порядка пятисот наименований. Как не без основания утверждает MICROCHIP, продукция компании перекрывает весь диапазон применений 8-разрядных микроконтроллеров. Особый акцент MICROСHIP делает на максимально возможное снижение энергопотребления для выпускаемых микроконтроллеров. При работе на частоте 4 МГц PIC-контроллеры, в зависимости от модели, имеют ток потребления меньше 1,5 мА, а при работе на частоте 32,768 КГц – ниже 15 мкА. Поддерживается «спящий» режим работы. Диапазон питающих напряжений PIC-контроллеров составляет 2,0...
6,0 В. В настоящее время существует пятое семейство PIC-контроллеров PIC18Cxxx. Новые микроконтроллеры будут иметь расширенное RISC-яд- ро, оптимизированное под использование нового Си-компилятора, адресное пространство программ до 2 Мбайт, до 4 Кбайт встроенной памяти данных и производительность 10 MIPS.
Из программных средств отладки наиболее известны и доступны различные версии ассемблеров, а также интегрированная программная среда MPLAB. Российские производители программаторов и аппаратных отладочных средств также уделяют внимание PIC-контроллерам. Выпускаются как специализированные программаторы, такие как PICPROG, программирующие почти весь спектр PIC-микроконтроллеров, так и универсальные: UNIPRO, СТЕРХ, поддерживающие наиболее известные версии PIC.
ATMEL AVR. В отличие от MICROCHIP, компания ATMEL Corp. –
один из мировых лидеров в производстве широкого спектра микросхем энергонезависимой памяти, FLASH-микроконтроллеров и микросхем программируемой логики, взяла старт по разработке RISC-микроконтроллеров в середине 90-х годов, используя все свои технические решения, накопленные к этому времени. Концепция новых скоростных микроконтроллеров была разработана группой разработчиков исследовательского центра ATMEL в Норвегии, инициалы которых затем сформировали марку AVR. Первые микроконтроллеры AVR AT90S1200 появились в середине 1997 года и быстро снискали расположение потребителей.
AVR-архитектура, на основе которой построены микроконтроллеры семейства AT90S, объединяет мощный гарвардский RISC-процессор с раздельным доступом к памяти программ и данных, 32 регистра общего назначения, каждый из которых может работать как регистр-аккумулятор, и развитую систему команд фиксированной 16-бит длины. Большинство команд выполняются за один машинный такт с одновременным исполнением текущей и выборкой следующей команды, что обеспечивает производительность до 1 MIPS на каждый МГц тактовой частоты. 32 регистра общего назначения образуют регистровый файл быстрого доступа, где каждый ре-
23
гистр напрямую связан с АЛУ. За один такт из регистрового файла выбираются два операнда, выполняется операция, и результат возвращается в регистровый файл. АЛУ поддерживает арифметические и логические операции с регистрами, между регистром и константой или непосредственно с регистром. Регистровый файл также доступен как часть памяти данных. 6 из 32-х регистров могут использоваться как три 16-разрядных регистрауказателя для косвенной адресации. Старшие микроконтроллеры семейства AVR имеют в составе АЛУ аппаратный умножитель. Базовый набор команд AVR содержит 120 инструкций. Инструкции битовых операций включают инструкции установки, очистки и тестирования битов. Все микроконтроллеры AVR имеют встроенную FLASH ROM с возможностью внутрисхемного программирования через последовательный 4-проводной интерфейс. Периферия МК AVR включает: таймеры-счётчики, широтно-импульсные модуляторы, поддержку внешних прерываний, аналоговые компараторы, 10-разрядный 8-канальный АЦП, параллельные порты (от 3 до 48 линий ввода и вывода), интерфейсы UART и SPI, сторожеой таймер и устройство сброса по включению питания. Все эти качества превращают AVR-мик- роконтроллеры в мощный инструмент для построения современных, высокопроизводительных и экономичных контроллеров различного назначения. В рамках единой базовой архитектуры AVR-микроконтроллеры подразделяются на три подсемейства:
–сlassic AVR – основная линия микроконтроллеров с производительностью отдельных модификаций до 16 MIPS, FLASH ROM программ 2–8
Кбайт, ЕEPROM данных 64–512 байт, SRAM 128–512 байт;
–mega AVR с производительностью 4–6 MIPS для сложных приложений, требующих большого обьёма памяти, FLASH ROM программ 64–128
Кбайт, ЕEPROM данных 64–512 байт, SRAM 2–4 Кбайт, SRAM 4 Кбайт,
встроенный 10-разрядный 8-канальный АЦП, аппаратный умножитель 8×8;
–tiny AVR – низкостоимостные микроконтроллеры в 8-выводном исполнении имеют встроенную схему контроля напряжения питания, что позволяет обойтись без внешних супервизорных микросхем.
AVR-микроконтроллеры поддерживают спящий режим и режим микропотребления. В спящем режиме останавливается центральное процессорное ядро, в то время как регистры, таймеры-счётчики, сторожевой таймер и система прерываний продолжают функционировать. В режиме микропотребления сохраняется содержимое всех регистров, останавливается тактовый генератор, запрещаются все функции микроконтроллера, пока не поступит сигнал внешнего прерывания или аппаратного сброса. В зависимости от модели, AVR-микроконтроллеры работают в диапазоне напряжений 2,7–6 В либо 4–6 В (исключение составляет ATtiny12V с напряжением питания 1,2 В).
Средства отладки. ATMEL предлагает программную среду AVR-studio для отладки программ в режиме симуляции на программном отладчике, а
24
также для работы непосредственно с внутрисхемным эмулятором. AVRstudio доступен с WEB-страницы ATMEL, содержит ассемблер и предназначен для работы с эмуляторами ICEPRO и MegaICE. Ряд компаний предлагают свои версии Си-компиляторов, ассемблеров, линковщиков и загрузчиков для работы с микроконтроллерами семейства AVR. Как и продукция MICROCHIP, микроконтроллеры ATMEL широко применяются в России и, как следствие, программируются многими отечественными программаторами. Ряд российских фирм предлагает также различные аппаратные средства отладки AVR-микроконтроллеров.
Scenix Sem. SX. Известному философскому принципу не умнoжать сущностей сверх необходимого, американская компания Scenix Semiconductors не стала изобретать принципиально новый микроконтроллер со своей системой команд, а решила кардинально переработать и улучшить уже упоминавшееся семейство PIC16Cx MICROCHIP. Scenix имеет патент на быструю флэш-технологию. Это позволило создать микроконтроллеры с производительностью более 50 MIPS, анонсированные в декабре 1997 года. Ещё через год появилась версия с удвоенной производительностью – 100 MIPS! Новые микроконтроллеры SC18/20/28AC100 совместимы программно снизу вверх и аппаратно pin-to-pin с PIC16C5х и при этом предоставляют пользователю гораздо больше возможностей при ненамного большей стоимости. RISC-ядро SX-процессора обеспечивает выполнение большинства 12-разрядных инструкций за один машинный цикл длительностью 10 нс на тактовой частоте 100 МГц. 4-уровневый конвейер команд позволяет одновременно выполнять выборку команды, декодирование, исполнение, запись результата одновременно для четырёх последовательно расположенных команд. Новой особенностью процессора также является аппаратное сохранение содержимого служебных регистров и обратная загрузка для ускорения обработки прерываний без потери машинных циклов. Кроме своей исключительной производительности, микроконтроллеры Scenix обладают следующими дополнительными возможностями по сравнению с PIC16C5x: расширенная система команд: 33 (как у PIC16C5x) плюс 10 дополнительных; у SX48BD/SX52BD 4096×12 FLASH-память программ с возможностью внутрисхемного программирования; внутрисхемная отладка на максимальной рабочей частоте, не требующая дорогих эмуляторов; 256×8 бит встроенного статического ОЗУ; два 16-разрядных универсальных таймера плюс один 8-разрядный; быстрый аналоговый компаратор; внутренний RC-ге- нератор с предделителем; поддержка внешних прерываний со временем отклика 50 нс; сильноточные порты ввода/вывода (30 мA) с программируемым включением внутренних pull-up резисторов и формированием TTЛ/КМОПуровней, триггеров Шмидта; расширенная схема сброса при пропадании питания; отсутствие «дрожания» фронта сигнала при обработке прерывания; возможность работы в режиме отладки программного кода с доступом
25