Работу с процессорами семейства x86 фирма AMD, как и ряд других, начинала с выпуска лицензированных у Intel прототипов. Однако с появлением 80486 ситуация несколько изменилась. AMD стала самостоятельно заниматься разработками процессоров, совместимых с семейством x86, чем вызвала сильное недовольство Intel и долгие судебные разбирательства по поводу лицензирования. И если первые изделия практически целиком повторяли оригинал, то последнее детище AMD — Athlon (K7) — сильно отличается от процессоров Intel, что не помешало ему быстро завоевать огромную популярность.
Идея применения процессоров семейства x86 во встраиваемых системах была заложена еще Intel, которая выпустила встраиваемые варианты своих кристаллов i186, i386, а позднее и i486. Применение подобных процессоров во встраиваемых системах удобно в первую очередь с точки зрения разработки, поскольку практически единственным средством, необходимым разработчику, является персональный компьютер. Кроме того, для семейства x86 накоплено огромное количество программного обеспечения, которое с минимальными переделками может быть адаптировано для работы во встраиваемых системах, а также отсутствует необходимость приобретения специальных средств симуляции и отладки, поскольку всю разработку ПО, включая отладку, можно производить с использованием PC в качестве эмулятора. Однако применение интеловских встраиваемых процессоров несколько сдерживали два фактора — их относительно большое энергопотребление и слабо развитая периферия, не отвечающая современным требованиям.
Для восполнения этого пробела параллельно развитию x86 фирма AMD разработала новое семейство — E86TM, состоящее из 16- и 32-разрядных встраиваемых процессоров (рис. 1).
Все семейство можно разделить на три группы:
- процессоры семейства x86 с пониженным энергопотреблением и расширенными средствами управления рабочей частотой (Am386, Am486, AMD-K6E, AMD-K6-2E);
- 16-разрядные микроконтроллеры Am186, базирующиеся на ядре процессора i186 и обладающие развитой встроенной периферией;
- 32-разрядные микроконтроллеры, базирующиеся на ядрах процессоров 386 (ElanSC300, ElanSC310), 486 (ElanSC400, ElanSC410) и Am5x86 (ElanSC520) и содержащие все необходимое для построения PC-совместимой системы.
1. Семейство микроконтроллеров Am186
Оно представлено двумя группами микроконтроллеров — Am186Ex и Am186Cx.
1.1. Микроконтроллеры общего назначения Am186Ex
В группу Am186Ex входят четыре кристалла из Am186 (рис. 2). В каждом микроконтроллере помимо ядра содержатся PLL для генерации тактовой частоты, 3 таймера, 2 канала DMA, контроллер прерываний, логика дешифрации адресов памяти и 32–разрядный параллельный порт. Все микроконтроллеры имеют раздельные шины адреса и данных, что позволяет им работать на достаточно высокой частоте даже при использовании медленной памяти. Также для всех чипов, кроме Am186ED, имеется версия с восьмибитной шиной данных (Am188Ex). Кроме того, микроконтроллеры могут содержать один или несколько контроллеров последовательных приемопередатчиков, динамической памяти или 32 Кбайта статической памяти. Более подробные характеристики микроконтроллеров группы Am186Ex приведены в табл. 1.
Таблица 1. Характеристики микроконтроллеров Am186Ex
Контроллер | Am186ED | Am186ER | Am186ES | Am186EM |
Тактовая частота, 3,3 В | 20, 25 | 20, 25 | 25, 33, 40, 50 | 20, 25 |
Тактовая частота, 5,0 В | 20, 25, 33, 40 | 20, 25, 33, 40 | 20, 25, 33, 40 | |
Схема тактирования | /2, 1х | /2, 1х | /2, 1х, 4х | /2, 1х |
Ширина внешней шины | 8/16 | 8/16 | 16 | 16 |
Асинхронные последовательные порты | 2 | 2 | 1 | 1 |
Синхронные последовательные порты | - | - | 1 | 1 |
Контроллер DRAM | Есть | Нет | Нет | Нет |
Встроенная память | - | - | 32 Кбайт SRAМ | - |
Таймеры (с ШИМ) | 3 | 3 | 3 | 3 |
WatchDog-таймер | Есть | Есть | Есть | Есть |
Каналы DMA | 2 | 2 | 2 | 2 |
Внешние/внутренние прерывания | 8/8 | 8/8 | 6/7 | 6/7 |
Порты ввода/вывода | 32 | 32 | 32 | 32 |
Дешифрация адресов памяти | 12 | 12 | 13 | 12 |
Широтно-импульсная модуляция | Есть | Есть | Нет | Нет |
Производительность | 5,3 MIPS на 40 МГц | 5,3 MIPS на 40 МГц | 6,6 MIPS на 50 МГц | 5,35 MIPS на 40 МГц |
Коэффициент сбережения энергии | 1-128 | 1-128 | 1-128 | 1-128 |
Максимальный потребляемый ток, 3,3 В | 4,0 мА/МГц | 4,0 мА/МГц | 3,9 мА/МГц | 4,0 мА/МГц |
Максимальный потребляемый ток, 5,0 В | 5,9 мА/МГц | 5,9 мА/МГц | 5,9 мА/МГц |
Вторую группу Am186 составляют коммуникационные микроконтроллеры Am186Cx (рис. 3), которые являются дальнейшим развитием семейства Am186 и, помимо стандартного комплекта периферийных устройств, включают в себя также различные коммуникационные контроллеры. Всего в эту группу входят три чипа, базовый набор периферии которых состоит из контроллеров прерываний, прямого доступа к памяти, синхронного и асинхронного последовательных интерфейсов, таймеров и логики дешифрации адресов памяти. Так же как и микроконтроллеры Am186Ex, Am186Cx имеют раздельные шины адреса и данных и соответствующие аналоги с восьмибитной внешней шиной данных. Кроме того, микроконтроллеры данной группы полностью совместимы между собой по расположению выводов. Помимо стандартного набора периферии коммуникационные микроконтроллеры Am186Cx могут иметь в своем составе контроллеры USB и HDLC, что определяет основную область их применения — телекоммуникационные устройства. Характеристики коммуникационных микроконтроллеров Am186Cx приведены в табл. 2.
Таблица 2. Характеристики микроконтроллеров Am186Cx
Контроллер | Am186CC | Am186CH | Am186CU |
Тактовая частота, 3,3 В | 25, 40, 50 | 25, 40, 50 | 25, 40, 50 |
Схема тактирования | 1х, 2х, 4х | 1х, 2х, 4х | 1х, 2х, 4х |
Ширина внешней шины | 8/16 | 8/16 | 8/16 |
HDLC контроллеры | 4 | 2 | - |
Time Slot Assigners | 4 | 2 | - |
USB контроллер | 1 | - | 1 |
GCI контроллер | 1 | - | - |
Асинхронные последовательные порты | 2 | 2 | 2 |
Синхронные последовательные порты | 1 | 1 | 1 |
Контроллер DRAM | Есть | Есть | Есть |
Встроенная память | - | - | - |
Таймеры (с ШИМ) | 3 | 3 | 3 |
WatchDog-таймер | Есть | Есть | Есть |
Каналы DMA | 4 | 4 | 4 |
Каналы SmartDMA | 8 | 4 | 4 |
Внешние/внутренние прерывания | 17/19 | 17/19 | 17/19 |
Порты ввода/вывода | 48 | 48 | 48 |
Дешифрация адресов памяти | 14 | 14 | 14 |
Широтно-импульсная модуляция | Есть | Есть | Есть |
Производительность | 6,6 MIPS на 50 МГц | 6,6 MIPS на 50 МГц | 6,6 MIPS на 50 МГц |
Максимальный потребляемый ток, 3,3 В | 6,0 мА/МГц | 6,0 мА/МГц | 6,0 мА/МГц |
2.1. ElanSC300, ElanSC310
Семейство встраиваемых контроллеров ElanSC3x0 является дальнейшим развитием процессора Intel i386EX. Они основаны на ядре Am386SXLV и рассчитаны на работу на частотах до 33 МГц. Тактовая частота, необходимая для работы процессора, получается из частоты 32 кГц с использованием встроенной PLL. В состав контроллера ElanSC300 (рис. 4) включена практически вся периферия, необходимая для построения законченной PC-совместимой системы. Кроме того, наличие LCD и PCMCIA-контроллеров, а также низкое энергопотребление и развитая система энергосбережения и управления рабочей частотой позволяют использовать этот процессор для построения портативных систем с батарейным питанием. Основные отличия контроллера ElanSC300 от i386EX заключены в наличии в нем встроенного контроллера PCMCIA, CGA–совместимого контроллера LCD, а также полностью PC-совместимого контроллера DMA и гибкого контроллера памяти. Отличие ElanSC310 (рис. 5) от ElanSC300 заключено в отсутствии в нем контроллеров PCMCIA и LCD, то есть фактически ElanSC310 представляет собой облегченный вариант ElanSC300. Контроллеры имеют раздельные шины адреса и данных, причем ширина внешней шины данных может составлять у обоих контроллеров как 8, так и 16 бит. Подробные характеристики контроллеров ElanSC3x0 приведены в табл. 3. Отметим, что эти контроллеры не рекомендованы для использования в новых разработках — их производительность и цена не превосходят таковых у Am186, работающими на высоких тактовых частотах, в то время как функциональные возможности последних гораздо шире.
2.2. ElanSC400, ElanSC410
Семейство контроллеров ElanSC4x0 (рис. 6) является развитием семейства ElanSC3x0. Отличие состоит в использовании более производительного ядра Am486SLE, пониженном (в сравнении с ElanSC3x0) напряжении питания и небольших изменениях в составе интегрированных периферийных устройств. Частота работы ElanSC4x0 может доходить до 100 МГц. Также, в сравнении с контроллерами серии ElanSC3x0 в ElanSC400, появился встроенный IrDA-контроллер. Отличие ElanSC410 от ElanSC400, как и в серии ElanSC3x0, заключается в отсутствии в первом LCD-, IrDA- и PCMCIA-контроллеров. Сравнительные характеристики контроллеров серии ElanSC4x0 также приведены в табл. 3.
Таблица 3. Характеристики контроллеров серий EElanSC3x0 и EElanSC4x0
Контроллер | ElanSC300 | ElanSC310 | ElanSC400 | ElanSC410 |
Процессорное ядро | Am386SXLV | Am386SXLV | Am486SLE | Am486SLE |
Тактовая частота, 3,3 В | 25, 33 | 25, 33 | 33, 66, 100 | 33, 66, 100 |
Температурный диапазон | К, И | К, И | К, И (33, 66) | К, И (33, 66) |
Корпус | PQFP208, TQFP208 | PQFP208, TQFP208 | BGA292 | BGA292 |
Ширина шины данных, внутренняя/внешняя | 32/8, 16 | 32/8, 16 | 32/8, 16, 32 | 32/8, 16, 32 |
Размер кэш-памяти | - | - | 8 Кбайт WB, WT | 8 Кбайт WB, WT |
Максимальный потребляемый ток, 3,3 В | 5,5 мА/МГц | 5,5 мА/МГц | 6,2 мА/МГц | 6,2 мА/МГц |
Порт JTAG | Есть | Есть | Есть | Есть |
Напряжение питания ядра | 3,3 В; 5,0 В | 3,3 В; 5,0 В | 2,7 В; 3,3 В | 2,7 В; 3,3 В |
Совместимость ввода/вывода | 5,0 В | 5,0 В | 5,0 В | 5,0 В |
Шина общего назначения | 8, 16 бит ISA | 8, 16 бит ISA | 8, 16 бит ISA | 8, 16 бит ISA |
Шина расширения | 16 бит VL | 16 бит VL | 32 бит VL | 32 бит VL |
Встроенная PC/AT совместимая периферия | Да | Да | Да | Да |
Число каналов DMA всего/внешних | 7/7 | 7/7 | 7/2 | 7/2 |
Контроллеры прерываний | 2 | 2 | 2 | 2 |
Двунаправленный параллельный порт | Есть | Есть | Есть | Есть |
Последовательный порт (UART) | 16450-совместимый | 16450-совместимый | 16550-совместимый | 16550-совместимый |
Клавиатурный интерфейс | XT | XT | XT, матрица | XT, матрица |
Выводы общего назначения | 9 | 9 | 32 | 32 |
IrDA контроллер | Нет | Нет | Есть | Нет |
PC Card контроллер/число слотов | PCMCIA 2.2/2 | Нет | PCMCIA 2.1/2 | Нет |
Контроллер LCD | Есть | Нет | Есть | Нет |
ElanSC520 (рис. 7) — последняя разработка фирмы AMD в области x86-совместимых встраиваемых контроллеров. Он основан на процессорном ядре Am5x86, работающем на частоте до 133 МГц, и является единственным x86-совместимым встраиваемым контроллером, имеющим модуль для вычислений с плавающей точкой (FPU). Помимо стандартного набора периферийных устройств, в чип интегрированы также контроллер SDRAM-памяти, поддерживающий до 256 Мбайт ОЗУ в четырех банках, и контроллер 32-битной шины PCI, соответствующий стандарту версии 2.2. Последнее позволяет при разработке систем на этом чипе использовать совместно с ним практически любую современную периферию. Для устранения задержек, связанных с ожиданием памяти, на кристалле размещено 16 Кбайт WriteBack кэш-памяти. Кроме того, чип имеет встроенные средства отладки для поддержки технологии AMDebug (рис. 8), что значительно упрощает отладку программного обеспечения в законченной системе. В целом встраиваемый контроллер ElanSC520 позволяет создать PC/AT-совместимую систему, обходясь минимумом дополнительных внешних компонентов. В качестве примера можно привести ElanSC520 Microcontroller Customer Development Platform (ElanSC520 CDT), которая фактически представляет собой материнскую плату AT форм-фактора, имеет 3 PCI, 2 ISA и 2 DIMM слота, а также интегрированный 10/100 Ethernet-контроллер. В заключение хотелось бы отметить, что использование x86-совместимых встраиваемых контроллеров имеет целый ряд преимуществ, и в первую очередь это, конечно, наличие у разработчиков большого опыта работы с такими системами, простота их отладки, большое количество инструментальных средств разработки (компиляторы, отладчики и т. п.). Кроме того, AMD предоставляет в качестве примеров целый ряд систем, созданных с использованием микроконтроллеров семейства E86TM, наибольший интерес из которых вызывают такие достаточно сложные устройства, как ISDN Terminal Adapter и ISDN-to-Ethernet Router. Также AMD свободно распространяет примеры программирования (CodeKit Software Packages), которые значительно облегчают разработку систем.
Автор: Алексей Сигаев