Ядро современного х86 микроконтроллера от компании RDC

№ 3’2006
Технологии производства и разработки электронных цифровых компонентов безжалостны ко времени. Сейчас мы с усмешкой вспоминаем первые компьютеры х86, работающие на частоте 4 МГц и построенные на сотнях громоздких микросхем в DIP-корпусах, хотя с тех пор прошло немногим более 20 лет.

Технологии производства и разработки электронных цифровых компонентов безжалостны ко времени. Сейчас мы с усмешкой вспоминаем первые компьютеры х86, работающие на частоте 4 МГц и построенные на сотнях громоздких микросхем в DIP-корпусах, хотя с тех пор прошло немногим более 20 лет. К примеру, нас вполне устраивают автомобили и самолеты, разработанные в это же время, и подчас мы не считаем их конструкции сильно устаревшими. А производительность х86-совместимых процессоров выросла за этот период примерно в тысячу раз. Все чаще во встраиваемых системах на смену архитектуре х86 приходит более современная ARM. Но пока во многих случаях использование «старой доброй» х86 оправдано, а современные микроконтроллеры с этой архитектурой позволяют создавать компактные автономные устройства с неплохими характеристиками.

Краткий обзор рынка микроконтроллеров х86 для встраиваемых применений

Самый распространенный вариант такого контроллера — Intel 80С186 и ему подобные. По иронии судьбы, архитектура 80186/80196, абсолютно не прижившаяся в области персональных ПК, получила весьма большое распространение во встраиваемых системах. К примеру, подобные микроконтроллеры применяются в системе распределения впрыска топлива в современных автомобилях. Возможно, причиной такой популярности послужила одна из самых привлекательных сторон архитектуры х86 — существование для нее множества средств разработки прикладного ПО, в том числе операционных систем. Кроме компании Intel, производящей такие контроллеры, можно выделить компанию AMD (например, процессор АМ186СС). Применение процессоров архитектуры 80186 целесообразно в устройствах средней производительности.

Далее идут следующие ступени развития архитектуры: 80386 и 80486 (80286 для встраиваемых приложений не выпускается). Здесь опять присутствуют два известных игрока: Intel и AMD. Но у Intel для этих архитектур имеются лишь отдельные процессоры, требующие для работы внешнюю периферию. У AMD есть решения с интегрированной периферией (Geode, Elan), вплоть до «систем на кристалле» — функционально законченного контроллера в одном корпусе микросхемы. Также существует множество других производителей подобных решений. Один из них — тайваньская компания RDC Semiconductor. Впервые эта компания вышла на рынок со своими 186/188-совместимыми контроллерами (табл. 1).

Таблица 1. 186/188-совместимые контроллеры RDC
Таблица 1. 186/188-совместимые контроллеры RDC

Главная ставка RDC была на то, что их продукты полностью (вплоть до назначения и расположения выводов) совместимы с аналогичными позициями известных производителей (для примера в таблице дано соответствие продуктам AMD), а стоимость значительно ниже. Кроме того, некоторые позиции снимались с производства, и у RDC находилась их полная замена. Добившись успеха в области продаж аналогов 80188/80186, компания RDC решила разработать собственные оригинальные микроконтроллеры, обладающие большим набором встроенной периферии и достаточно мощным ядром х86. Одной из последних разработок этой компании является микроконтроллер R8610, о котором мы и расскажем.

Микроконтроллер R8610

Микроконтроллер R8610 построен по 32-битной RISC-архитектуре и имеет совместимость с х86-платформами Windows и Linux, а также другими 32- и 16-разрядными операционными системами. Из встроенной периферии микроконтроллер имеет кэш первого уровня размером 16 Кбайт, 32-битный интерфейс PCI rev. 2.1, работающий на частоте 33 МГц, контроллер памяти SDRAM/ROM, контроллер Fast Ethernet 10/100 и USB 2.0 Host. Конструктивно микроконтроллер выполнен в 216-выводном корпусе LQFP (рис. 1).

Рис. 1. Процессор R8610
Рис. 1. Процессор R8610

Микроконтроллер имеет напряжение питания 1,8 В для ядра и 3,3 В для периферии. Общая потребляемая мощность при этом составляет всего 1 Вт, благодаря чему возможно построение на базе этого микроконтроллера экономичных устройств без применения охлаждающих радиаторов. Блок-схема микроконтроллера приведена на рис. 2.

Рис. 2. Блок-схема R8610
Рис. 2. Блок-схема R8610

Рассмотрим основные узлы микроконтроллера.

Процессор микроконтроллера — 32-разрядное RISC-ядро

Ядро микроконтроллера построено по 32-разрядной RISC-архитектуре и имеет 6-ступенчатый конвейер. Частота работы ядра составляет 133 МГц. В сочетании с блоком управления памятью (MMU), имеющим 32 буфера TLB (Translation Look aside buffer), процессор совместим с такими популярными многозадачными операционными системами как Windows и Linux. Набор инструкций включает все инструкции процессора 486SX, дополненные командами, улучшающими производительность. Учитывая наличие 16-килобайтного кэша первого уровня, ядро микроконтроллера можно считать весьма производительным.

Контроллер памяти SDRAM и интерфейс X-Bus

Микроконтроллер имеет модуль для подключения динамической памяти. Разрядность шины данных памяти может быть 16 или 32 бита. Частота работы шины памяти составляет 133 МГц. Микроконтроллер R8610 имеет 13 мультиплексированных линий адреса, два банка памяти SDRAM, и позволяет поддерживать до 128 Мбайт адресного пространства.

Кроме того, микроконтроллер имеет интерфейс X-Bus для подключения загрузочной памяти Flash ROM или микросхемы DOC (Disk On Chip). Поддерживается разрядность шины данных 8 и 16 бит, имеются выводы выбора микросхемы (ROMCS_n) для подключения X-Bus Flash ROM. Размер загрузочной постоянной памяти может составлять от 64 Кбайт до 8 Мбайт.

Контроллер прерываний

R8610 имеет ISA-совместимый контроллер прерываний, функционально построенный на двух контроллерах прерываний типа 82С59, соединенных последовательно. Таким образом, обеспечивается 13 внешних и три внутренних прерывания.

Каждый из двух субконтроллеров может быть запрограммирован отдельно, после чего они могут функционировать в разных режимах (по умолчанию контроллер прерываний работает в режиме 80’86).

Контроллер DMA

Микроконтроллер R8610 имеет семь каналов прямого доступа к памяти. Функционально они реализованы последовательным включением двух контроллеров 82С37. Таким образом, канал 4 контроллера используется для подсоединения второго (Slave) субконтроллера и не может быть использован иначе.

Каналы 3–0 предназначены для передачи 8-разрядных потоков данных (count-by-bytes transfers), каналы 7–5 — для 16-разрядных (count-by-words) со сдвигом адреса.

FIFO UART

Микроконтроллер содержит один последовательный порт UART. Он имеет 16-байтный буфер FIFO, позволяющий записывать передаваемые и принимаемые данные. Также может быть запрограммирована длина слова, скорость передаваемых данных, установлено прерывание последовательного порта. Порт полностью поддерживает все управляющие линии модема. Прерывание последовательного порта позволяет осуществлять прием и передачу данных в фоновом режиме и таким образом освободить процессорное время для работы с задачами, не связанными с передачей данных по UART.

Интерфейс LPC

Шина LPC (Low Pin Count) позволяет подключать к микроконтроллеру различные периферийные устройства (такие как устройства Super IO, клавиатура, мышь и т. п.) без использования шины ISA, понижая таким образом стоимость разработки. Кроме того, шина LPC позволяет увеличить объем памяти ROM с 16 Мбайт до 4 Гбайт и сделать BIOS системы размером гораздо больше 1 Мбайт. Для шины LPC не требуется каких-либо специальных драйверов, и она совершенно прозрачна для программ. Шина совместима со стандартом LPC rev. 1.0, поддерживает интерфейс на основе Firmware HUB, а также режим прямого доступа к памяти (LPC DMA).

Интерфейс GPIO (порты общего назначения)

Микроконтроллер также содержит 56 выводов общего назначения, каждый из которых может быть сконфигурирован как цифровой вход или выход, и позволяет программно подключать к каждому выводу встроенный резистор, подтягивающий либо к шине питания, либо к «земле».

Таймеры-счетчики

В составе микроконтроллера имеется три программируемых таймера-счетчика, совместимых с 82С54. Каждый из трех таймеров выполняет свою ключевую системную функцию, например, канал 0 подключен к прерыванию IRQ0 и обеспечивает счет текущего времени, тайм-аут контроллера дискет и другие системные функции по подсчету времени, канал 1 используется для управления обновлением памяти, а канал 2 — для генерации сигнала для подключаемого динамика. Все это является стандартной организацией таймеров-счетчиков для архитектуры х86.

Контроллер USB 2.0

Контроллер хоста USB 2.0 содержит два порта и хост-контроллер спецификации OHCI, которая была разработана совместно фирмами Compaq, Microsoft и National Semiconductor, а также хост-контроллер спецификации EHCI 1.0, разработанной фирмой Intel.

Контроллер USB 1.1 поддерживает устройства, работающие на низкой (1,5 МГц) и полной (12 МГц) скоростях, поддерживает четыре вида передачи данных (control, bulk, interrupt, isochronous) и позволяет подключать до 127 устройств одновременно. Также контроллер содержит 64-байтный буфер FIFO.

Контроллер USB 2.0 поддерживает устройства, работающие на высокой (480 МГц) скорости, четыре вида передачи данных (control, bulk, interrupt, isochronous), а также предоставляет возможность работы с устройствами USB 1.1 и подключения до 127 устройств одновременно. Помимо этого, контроллер содержит два килобайтных буфера FIFO раздельно для передающего и принимающего потоков данных.

Контроллер PCI

Отличительной особенностью микроконтроллера является наличие контроллера шины PCI, что позволяет подключать широкий спектр периферийных PCI-устройств (таких как видеоадаптер, контроллер IDE/RAID и т. п.). Шина соответствует стандарту PCI rev. 2.1, имеет разрядность 32 бита и частоту передачи данных 33 МГц (что соответствует скорости 133 Мбайт/с), микроконтроллер может быть на шине как ведущим (master), так и ведомым (slave) устройством. Также поддерживается до трех ведущих (master) устройств на шине. Для этой шины выделено четыре прерывания.

Контроллер Fast Ethernet

R8610 имеет в своем составе два MAC-контроллера, которые позволяют совместно с внешним драйвером физического уровня реализовать шину Fast Ethernet, с помощью которой можно подключаться к локальным сетям и осуществлять обмен данными. Наличие интегрированных MAC-контроллеров определяет широкий спектр применения МК в области систем сбора данных, коммутации пакетов и т. п., при этом резко снижая стоимость конечных систем. Следует также отметить, что благодаря совместимости с архитектурой х86 упрощается написание ПО для устройств на основе этого МК, работающих в локальных сетях по протоколу TCP/IP, поскольку программная реализация TCP/IP-стека для этой архитектуры довольно распространена и включена в большинство x86-совместимых операционных систем.

ПО для микроконтроллера R8610

Архитектура микроконтроллера полностью совместима с 80486SX. Следовательно, можно использовать стандартные средства разработки ПО для 16- и 32-разрядных х86-платформ и популярные операционные системы для архитектуры x86.

Средства разработки ПО для R8610 целесообразно выбирать в зависимости от сложности и типа устройства, в котором применяется данный МК. Для создания устройств для сложных систем управления с графическим интерфейсом можно использовать операционные системы Linux, Windows и др. совместно со стандартными средствами разработки ПО для них. Список операционных систем, полностью протестированных на предмет совместимости с R8610, приведен в таблице 2.

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

Для создания относительно простых приложений можно использовать операционную систему DOS и компиляторы Turbo C++, Microsoft C, а также ассемблер. Также нельзя не отметить средства разработки от третьих компаний, например, Paradigm (www.devtools.com), которое включает в себя отладчик, компилятор языка C и ассемблер. Использовать этот программный пакет целесообразно для разработки быстродействующих решений без графического интерфейса, в первую очередь устройств для коммутации и маршрутизации пакетов данных, систем автоматического регулирования и коммуникаций.

Универсальный промышленный контроллер на базе R8610

Компания RDC поставляет демонстрационную плату на базе R8610, представляющую собой законченный промышленный х86-совместимый контроллер (рис. 3).

Рис. 3. Промышленный контроллер на R8610
Рис. 3. Промышленный контроллер на R8610

Контроллер имеет следующие характеристики:

  • процессор — 32-разрядный RDC RISC R8610 (совместим с 80486SX);
  • частота процессора — 25–150 МГц (выбирается перемычкой);
  • SDRAM — 32 Мбайт с возможностью расширения;
  • Boot Flash — 4 Мбайт;
  • микросхема BIOS (поддержка загрузки с устройств IDE и USB);
  • часы реального времени;
  • шина PCI rev 2.1 (слоты PCI и Mini PCI);
  • 2 канала IDE;
  • устройства ввода-вывода Super I/O: 2xPS/2, IrDa, LPT, контроллер FDC;
  • 2 порта USB 2.0;
  • 2 порта UART (один от процессора, один от Super IO)
  • 2 канала Fast Ethernet;
  • питание — однополярное 5 В пост. тока, либо стандарт ATX;
  • суммарный потребляемый ток при напряжении питания 5 В— не более 700 мА;
  • наличие интерфейса JTAG.

Несмотря на то, что эта плата является демонстрационной, ее можно использовать в готовых решениях. В комплекте поставляется JTAG-программатор, импульсный блок питания, а также необходимое ПО. Операционной системой в данном контроллере является RedBoot Linux, которая размещается в загрузочной Flash-памяти контроллера. Благодаря доступности всех исходных кодов для этой ОС и примеров написания прикладных программ значительно упрощается задача создания прикладного ПО. Блок-схема данного контроллера приведена на рис. 4.

Рис. 4. Блок-схема контроллера на R8610
Рис. 4. Блок-схема контроллера на R8610

Как видно, благодаря использованию встроенной периферии R8610 устройство содержит небольшое количество элементов. Кроме того, во многих случаях отдельные узлы могут не потребоваться (например, микросхема Super I/O или контроллер IDE). Это позволяет в значительной мере понизить конечную стоимость устройства. Данное устройство не содержит видеоконтроллера, но при необходимости его можно подключить к шине PCI:

это может быть как стандартная видеокарта PCI (универсальность и простота решения), так и однокристальный видеоконтроллер PCI (компактность и низкая цена). В комплекте с контроллером может поставляться видеокарта PCI на базе графического процессора XGI Volari Z7. Особо стоит отметить тот факт, что для облегчения разработки проекта на базе процессора RDC R8610 производитель предоставляет принципиальные схемы и файлы трассировки ПП описываемого контроллера и видеокарты. Таким образом, данная демонстрационная плата может послужить как хорошей основой для создания собственной разработки на базе процессора R8610, так и готовым решением для самых различных областей применения.

Области применения и преимущества R8610

Благодаря своей функциональности и малой потребляемой мощности микроконтроллер R8610 может иметь такие сферы применения, как построение на его основе недорогих промышленных одноплатных компьютеров (так называемых Tablet PC), а также пользовательского интерфейса для различных систем автоматизации; коммуникационных продуктов, таких как свитчи, точки доступа, локальные маршрутизаторы, платформы VoIP/VoDSL и т. д.

Микроконтроллер является оригинальным и высокоинтегрированным решением с относительно низкой стоимостью, способным конкурировать с подобными решениями от других известных фирм. Для примера проведем сравнение микроконтроллера RDC R8610 с похожим 32-разрядным х86-совместимым микроконтроллером, выпущенным известной фирмой AMD — Elan SC520 (табл. 3)

Таблица 3. Сравнение RDC R8610 и AMD Elan SC52
Таблица 3. Сравнение RDC R8610 и AMD Elan SC52

Как можно заметить, R8610 имеет более богатый набор встроенной периферии, значительно упрощающей схемотехнику устройств, построенных на базе этого микроконтроллера, и сводящей к минимуму количество внешних компонентов. R8610 несколько уступает Elan SC520 по совершенству архитектуры ядра, но имеет большую тактовую частоту. Кроме того, он гораздо дешевле — микроконтроллер RDC R8610 доступен в России по цене около $13 за штуку, а AMD Elan SC520—порядка $35.

Отсюда можно сделать вывод, что микроконтроллер R8610 является решением, ориентированным на применение в устройствах, где желательно минимальное количество используемых компонентов (и, возможно, малые габариты) и где не требуется максимально возможная производительность процессора. А конечная цена устройства и стоимость разработки играет далеко не последнее значение. Такие устройства преобладают на российском рынке, в том числе в области систем промышленной автоматизации и управления, из чего можно сделать вывод, что микроконтроллер R8610 может найти весьма широкое применение в России.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *