|
М. Ахметов
8-разрядные RISC микроконтроллеры
Реализация концепции RISC-архитектуры в 8-разрядных микроконтроллерах существенно расширила среду их применения. К традиционным приложениям таких МК (телекоммуникации, системы сбора данных, системы охраны, автоэлектроника, системы отображения информации и т. д.) сегодня прибавляются такие, где раньше использовались только более мощные 16- и 32-разрядные процессоры с функ-цией цифровой обработки сигналов, например, обработка видеосигналов и векторное управление электроприводом. Продвижение 8-разрядных RISC-микроконтроллеров на этот рынок произошло во многом благодаря тому, что они нередко предлагают оптимальное соотношение производительности и цены.
Предлагая вниманию читателей обзор 8-разрядных RISC-микроконтроллеров различных производителей, редакция в последующих номерах намерена опубликовать аналогичные статьи об их 16- и 32-разрядных родственниках.
Давным-давно, ещё в те времена, когда микропроцессоры работали медленно, использовали шины байтовой ширины, выполняли команды за невообразимое количество машинных тактов и страдали от аккумуляторного “бутылочного горлышка”, нашлись люди, не желающие мириться с подобным положением вещей. Они сформировали концепцию RISC-архитектуры — процессора с сокращённым набором команд, которые выполнялись бы в идеале за один машинный такт. Почему сократился набор команд — понятно: чем команда короче, тем быстрее она считывается и выполняется. Затем был разделён доступ между памятью программ и памятью данных. Увеличение разрядности шины, по которой считываются инструкции до 12, 16 и даже 22 разрядов, позволило использовать очень мощные команды. Последующий отказ от архитектуры с регистром-аккумулятором в пользу регистрового файла, где каждый регистр “сам себе аккумулятор“, позволил ещё больше поднять производительность процессора.
Современные 8-разрядные RISC-микроконтроллеры занимают промежуточную нишу по своим техниче-ским характеристикам между классическими 8-разрядными микроконтроллерами и их 16-разрядными кузенами. Высокая производительность и меньшая, чем у 16-разрядных МК, цена превращают RISC-микроконтроллеры в мощный инструмент для построения эффективных многофункциональных контроллеров, используемых в самых разнообразных приложениях.
В нижеследующем обзоре дана попытка свести воедино информацию по наиболее известным семействам с префиксом RISC.
Первые микроконтроллеры компании MICROCHIP PIC16C5x появились в конце 80-х годов и благодаря своей высокой производительности и низкой стоимости составили серьёзную конкуренцию производимым в то время 8-разрядным МК с CISC-архитектурой.
Первое, что привлекает внимание в 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 с возможностью внутрисхемного программирования или масочным 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.
В отличие от MICROCHIP, компания ATMEL Corp. — один из мировых лидеров в производстве широкого спектра микросхем энергонезависимой памяти, FLASH-микроконтроллеров и микросхем программируемой логики, взяла старт по разработке RISC-микроконтроллеров в середине 90-х годов, используя все свои технические решения, накопленные к этому времени.
Концепция новых скоростных микроконтроллеров была разработана группой разработчиков исследовательского центра ATMEL в Норвегии, инициалы которых затем сформировали марку AVR. Первые микроконтроллеры AVR AT90S1200 появились в середине 1997 г. и быстро снискали расположение потребителей.
AVR-архитектура, на основе которой построены микроконтроллеры семейства AT90S, объединяет мощный гарвардский RISC-процессор с раздельным доступом к памяти программ и данных, 32 регистра общего назначения, каждый из которых может работать как регистр- аккумулятор, и развитую систему команд фиксированной 16-бит длины. Большинство команд выполняются за один машинный такт с одновременным исполнением текущей и выборкой следующей команды, что обеспечивает производительность до 1 MIPS на каждый МГц тактовой частоты.
32 регистра общего назначения образуют регистровый файл быстрого доступа, где каждый регистр напрямую связан с АЛУ. За один такт из регистрового файла выбираются два операнда, выполняется операция, и результат возвращается в регистровый файл. АЛУ поддерживает арифметические и логические операции с регистрами, между регистром и константой или непосредственно с регистром.
Регистровый файл также доступен как часть памяти данных. 6 из 32-х регистров могут использоваться как три 16-разрядных регистра-указателя для косвенной адресации. Старшие микроконтроллеры семейства AVR имеют в составе АЛУ аппаратный умножитель.
Базовый набор команд AVR содержит 120 инструкций. Инструкции битовых операций включают инструкции установки, очистки и тестирования битов.
Все микроконтроллеры AVR имеют встроенную FLASH ROM с возможностью внутрисхемного программирования через последовательный 4-проводной интерфейс.
Периферия МК AVR включает: таймеры-счётчики, широтно-импульсные модуляторы, поддержку внешних прерываний, аналоговые компараторы, 10-разрядный 8-канальный АЦП, параллельные порты (от 3 до 48 линий ввода и вывода), интерфейсы UART и SPI, сторожеой таймер и устройство сброса по включению питания. Все эти качества превращают AVR-микроконтроллеры в мощный инструмент для построения современных, высокопроизводительных и экономичных контроллеров различного назначения.
В рамках единой базовой архитектуры AVR-микроконтроллеры подразделяются на три подсемейства:
- Classic 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 для отладки программ в режиме симуляции на программном отладчике, а также для работы непосредственно с внутрисхемным эмулятором. AVR-studio доступен с WEB-страницы ATMEL, содержит ассемблер и предназначен для работы с эмуляторами ICEPRO и MegaICE. Ряд компаний предлагают свои версии Си-компиляторов, ассемблеров, линковщиков и загрузчиков для работы с микроконтроллерами семейства AVR. Как и продукция MICROCHIP, микроконтроллеры ATMEL широко применяются в России и, как следствие, программируются многими отечественными программаторами. Ряд российских фирм предлагает также различные аппаратные средства отладки AVR-микроконтроллеров.
|
|
Известному философскому принципу не умн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Л/КМОП-уровней, триггеров Шмидта; расширенная схема сброса при пропадании питания; отсутствие “дрожания” фронта сигнала при обработке прерывания; возможность работы в режиме отладки программного кода с доступом к содержимому регистров и стека.
Наиболее же интересным моментом, пожалуй, является концепция Виртуальной Периферии — программной эмуляции периферийных устройств, активно разрабатываемой Scenix Sem. В её основе заложены быстрые прерывания у SX-микроконтроллеров.
Многим разработчикам знакомы проблемы настойчивого поиска микроконтроллера, обладающего необходимым количеством таймеров, АЦП, ШИМ и контроллеров различных последовательных интерфейсов. И чтобы всё это размещалось на одном кристалле.
Стандартный ответ компаний-производителей — размещение на кристалле как можно большего числа периферийных модулей для потенциального использования — приводит к необходимости решения многих технологических проблем (потребление, отвод тепла и так далее) и к значительному удорожанию кристалла. Другой подход тоже не идеален — разбиение микроконтроллеров на множество подсемейств, у MICROCHIP, к примеру, до 500 отличающихся модификаций, где всегда можно найти что-нибудь подходящее и недорогое. Запросы у разработчиков могут быть весьма нестандартны.
В этом случае очень изящно выглядит решение Scenix Sem. — осуществлять программную эмуляцию периферийных компонент на базе очень быстрого микроконтроллера при посредстве стандартной библиотеки программных модулей. В настоящее время библиотека модулей насчитывает несколько десятков разновидностей, некоторые из них:
I2C master |
50 слов программы, 3% ресурсов процессора; |
UART 19.2K |
60 слов, 5%; |
ШИМ 20 кГц 8 бит |
30 слов, 10%; |
АЦП 1 кГц 8 бит |
50 слов, 5%; |
Интерфейс Е1 2 Мбит |
80 слов, 30%; |
Контроллер клавиатуры PC |
80 слов, 1%; |
Приёмопередатчик DTMF |
120 слов, 10%. |
Доступен широкий спектр средств программирования и отладки для микроконтроллеров SX. Выпущено несколько коммерческих и бесплатных компиляторов Си, программных симуляторов, ассемблеров, программаторов. Постоянно растут списки примеров применения виртуальной периферии: Modem 1200 бод, IRDA-интерфейс, TCP/IP — делает доступным SX-микроконтроллер в сети Internet; а скоро — USB, CAN-протоколы.
В 2000 году компанией запланирован выпуск усовершенствованных микроконтроллеров SX48BD/SX52BD с расширенной памятью программ и данных.
XEMICS CoolRISC
Xemics (Швейцария) — компания, известная своими технологическими решениями в области производства микроэлектроники для применений в портативных или автономных системах с батарейным питанием.
Имея большой опыт в подобных разработках, Xemics в 1996 году создаёт RISC-ядро с недвусмысленным названием CoolRISC и с уникальным соотношением производительность/потребление, ставшее базой для производства микроконтроллеров семейства XE8000, оставившим позади в соревновании за микропотребление даже лучших представителей MICROCHIP.
Гарвардское RISC-ядро процессора выполняет все 33 команды 22-бит формата, в том числе и команды перехода за один машинный такт. 3-уровневый конвейер команд: выборка, исполнение и запись — позволяет достичь производительности до 1 MIPS на 1 МГц тактовой частоты. В отличие от большинства RISC-процессоров, CoolRisc-процессор содержит четыре 8-разрядных рабочих регистра и регистр-аккумулятор, четыре 16-разрядных индексных регистра, а также поддерживает не только инструкции регистр–регистр, но и регистр–память с возможностью запоминания результата в третьем регистре, выполняемые за один такт. Регистр-аккумулятор не имеет ничего общего с подобным регистром, использующимся во всех арифметических и логических операциях обычных CISC-процессоров. Это просто регистр, где запоминается результат операции АЛУ. Аппаратный умножитель является неотъемлемой частью АЛУ и позволяет проводить операции знакового и беззнакового умножения.
Микроконтроллеры XE8000 подразделяются на две основные ветви: XE8301 и XE88х1. Общим для всех членов семейства является встроенная память программ (FLASH или MASK ROM версии) размером 8К ґ 22 слов, память данных 512ґ8 байт, внутренний RC-генератор от 100 кГц до 10 МГц с возможностью программной настройки.
В периферию микроконтроллеров входят:
- сторожевой таймер;
- схема сброса по включению питания;
- схема контроля питающего напряжения, UART и по-следовательный синхронный порт;
- 4 каскадируемых 8-бит таймера-счётчика с возможностью работы в режиме ШИМ и захвата/сравнения;
- поддержка внешних прерываний;
- параллельные порты, до 20 линий ввода/вывода.
Кроме стандартного набора режимов SLEEP и Power Down, очень интересной особенностью является существование программной опции включения/выключения любого периферийного устройства в целях снижения энергопотребления, а также опция программной установки делителя тактовой частоты для той же цели.
XE8301 является микроконтроллером общего назначения, работающим в диапазоне питания от 1,2 до 5 В (MASK ROM) и 2,4–5,5 В (версия с FLASH ROM), выпускаемым в 20- и 28-выводном исполнении. При работе с производительностью 4 MIPS потребление контроллера составляет всего-навсего 1,24 мА, при 1 MIPS — снижается до 310 мкА, а при подключении генератора 32,768 кГц суммарный ток, потребляемый микроконтроллером, составляет всего 6 мкА.
Микроконтроллеры XE88х1 имеют встроенный АЦП с разрешением до 16 бит (XE8801) и АЦП плюс два дополнительных цифро-аналоговых преобразователя: широтно-импульсный и токовый (XE8851).
Аналоговый мультиплексор на входе АЦП обеспечивает коммутацию 4 дифференциальных сигналов либо 7 отдельных сигналов и одного референтного. Встроенный аналоговый усилитель, следующий за мультиплексором, имеет схему компенсации напряжения смещения и программируемый коэффициент усиления 0,5–1000.
Очередной новинкой Xemics в содружестве Massana Inc. стал новый микроконтроллер CoolRISC+FILU-50, объединяющий на одном кристалле архитектуру CoolRISC и 16-бит сигнальный процессор с фиксированной точкой, 40-бит аккумулятором и с суммарной производительностью до 60 MIPS.
К настоящему времени Xemics разработан стандартный набор для разработки и отладки систем на базе XE8000: ассемблер, Си-компилятор, программная среда CoolRISC Software DE для отладки и программной симуляции. Доступны также внутрисхемный эмулятор, программатор и стартовые наборы.
Ангстрем |
|
Нельзя не обойти вниманием (все-таки своё) детище разработчиков отечественного производителя ОАО “АНГСТРЕМ” — микроконтроллерное RISC-ядро ТЕСЕЙ, на базе которого уже создано несколько микроконтроллеров, как универсальных, так и специализированного применения.
Характерной особенностью ядра ТЕСЕЙ являются:
- гарвардская RISC-архитектура, позволяющая выполнять любую из 52 команд 16-разрядного формата за два такта частоты процессора;
- единая система команд для всего семейства с возможностью адресации до двух операндов, находящихся в памяти;
- 4-ступенчатый конвейер выполнения команд;
- малое время отклика на прерывание и сохранение контекста;
- широкий диапазон конфигураций внутренних памяти команд, памяти данных и периферийных устройств.
Микроконтроллеры отличаются наличием энергонезависимой памяти данных, возможности многократного перепрограммирования памяти программ, небольшим количеством внешних выводов и низким энергопотреблением.
Микроконтроллер КР1878ВЕ1 является представителем семейства ТЕСЕЙ и обладает следующими характеристиками:
- производительность до 4 MIPS на тактовой частоте 8 МГц;
- перепрограммируемая память программ 1Кґ16;
- память данных RAM 128ґ8, EEPROM данных 64ґ8;
- периферия: сторожевой таймер, 16-бит таймер-счётчик с предделителем, 12 линий ввода/вывода и поддержка прерываний;
- ток потребления меньше 2 мА при напряжении питания 5 В и тактовой частоте 5 МГц.
Микроконтроллер выпускается в 18-выводном исполнении.
Для отладки предлагается программная отладочная среда TESSA 0.1.
misha@planar.nsk.ru
|