Микроконтроллеры семейства ColdFire
Татьяна Ремизевич, Павел Рашитов (МЭИ)Похоже, в скором времени даже в самых массовых электронных устройствах 32-разрядные микроконтроллеры заменят 8- и 16-разрядные. Одним из пионеров новой гибкой архитектуры, позволяющей сочетать преимущества 32 разрядов и RISC-ядра, стала компания Freescale Semiconductor со своим семейством ColdFire.
Одно из актуальных направлений развития встраиваемых систем - внедрение 32-разрядных МК в относительно недорогие приложения, в которых ранее использовались 16- и даже 8-разрядные МК. Компания Freescale Semiconductor имеет солидную историю в этом сегменте элементной базы, поскольку еще с середины 80-х годов прошлого столетия компания Motorola активно внедряла однокристальные 32-разрядные МК семейства 68300.
В настоящее время компания Freescale Semiconductor активно развивает новое семейство ColdFire, которое объединяет 32-разрядные МК и интегрированные процессоры на основе процессорного ядра с RISC-архитектурой. Особенностью архитектуры ColdFire стало использование команд переменной длины (16, 32 и 48 бит), что позволило обеспечить превосходные характеристики по компактности программного кода. Новая архитектура получила название Variable-Length RISC (VL RISC - RISC-машина с переменной длиной команд). Она позволила значительно уменьшить площадь кристалла и снизить мощность потребления, что открыло перспективы для интеграции процессорного ядра ColdFire в продукты для встраиваемых приложений.
Особенностью семейства Cold Fire является многообразие процессорных ядер. В настоящее время в семействе Cold Fire насчитывается пять типов процессорных ядер (V1, V2, V3, V4 и V5), которые существенно различаются по сложности аппаратной реализации и, как следствие, вычислительной производительности (табл. 1).
Таблица 1. Производительность процессорного ядра ColdFire
Версия процессорного ядра | Относительная производительность (Dhrystone 2.1) при выполнении программы из резидентного ОЗУ, MIPS/МГц | Относительная производительность (Dhrystone 2.1) при выполнении программы из резидентной FLASH, MIPS/МГц | Максимальная частота тактирования, МГц | Максимальная производи- тельность (Dhrystone 2.1) FLASH/ОЗУ, MIPS |
---|---|---|---|---|
V1 | 0,94 | 0,76 | 50 | 47/38 |
V2 | 0,95 | 0,82 | 166 | 158/136 |
V3 | 0,88 | - | 240 | 211 |
V4 | 1,54 | - | 266 | 410 |
V5 | 1,83 | - | 366 | 670 |
Порядковый номер ядра отображает его сложность, а не хронологию появления в составе семейства. Так ядро версии V1 анонсировано летом 2007 года и, вопреки общепринятой тенденции возрастания производительности новых продуктов, является самым простым и самым «тихоходным» в семействе ColdFire. Несмотря на существенные различия в архитектуре и производительности перечисленных версий процессорного ядра, компания Freescale Semiconductor сохранила за ними общее название. Поэтому под названием ColdFire следует, прежде всего, понимать программно-логическую модель центрального процессора, его систему адресации и систему команд, поскольку аппаратная реализация устройства выборки и исполнения команд, система внутренних магистралей, модуль внутрисхемной отладки в составе процессорного ядра и режимы его энергопотребления постоянно совершенствуются. Родоначальник семейства Cold Fire - версия V2. Это процессорное ядро, дополненное модулем аппаратного умножителя и делителя (MAC или его более совершенная версия eMAC), имеют в своем составе большинство современных моделей однокристальных МК семейства ColdFire (табл. 2).
Таблица 2. Технические характеристики МК и интегрированных процессоров семейства Cold Fire
Наименование МК | Версия процессорного ядра | Частота тактирования, МГц/производительность (Dhrystone 2.1), MIPS* | Резидентное ПЗУ FLASH, кБ | Резидентное ОЗУ, кБ | Контроллер внешней памяти | Кэш, кБ | Число линий ввода/вывода (для корпуса) | Контроллеры последо- вательных интерфейсов | Таймер Число каналов/ разрядность | АЦП Число каналов/ разрядность | Модуль ШИМ Число каналов/ разрядность | Специальные модули | Тип корпуса |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Семейство Flexis, серия MCF51JMxx (микроконтроллеры) | |||||||||||||
MCF51JM128 | V1 | 50/47 | 128 | 16 | нет | нет | 66(80 LQFP) 51(64 LQFP) 33(44 LQFP) | 2 SCI, 2 SPI, 2 I2C, FlexCAN, USB (+OTG) | 1/16 (до 6 каналов IC/OC/PWM) | до 12/12 | нет | ENCRYPTION, ACMP, RTC, LVD, COP, BDM | 80 LQFP 64 LQFP 44 LQFP** |
MCF51JM64 | V1 | 50/47 | 64 | 8 | нет | нет | 66(80 LQFP) 51(64 LQFP) 33(44 LQFP) | 2 SCI, 2 SPI, 2 I2C, FlexCAN, USB (+OTG) | 1/16 (до 6 каналов IC/OC/PWM) | до 12/12 | нет | ENCRYPTION, ACMP, RTC, LVD, COP, BDM | 80 LQFP 64 LQFP 44 LQFP** |
Семейство Flexis, серия MCF51QExx (микроконтроллеры) | |||||||||||||
MCF51QE128 | V1 | 50/47 | 128 | 8 | нет | нет | 70(80 LQFP) 54(64 LQFP) | 2 SCI, 2 SPI, 2 I2C | до 2/16 (до 6 каналов IC/OC/PWM) | до 24/12 | нет | 2 ACMP, RTC, LVD, COP, BDM | 80 LQFP 64 LQFP |
MCF51QE64 | V1 | 50/47 | 64 | 8 | нет | нет | 54 | 2 SCI, 2 SPI 2 I2C | до 2/16 (до 6 каналов IC/OC/PWM) | 20/12 | нет | 2 ACMP, RTC. LVD, COP, BDM | 64 LQFP |
MCF51QE32 | V1 | 50/47 | 32 | 8 | нет | нет | 54 | 2 SCI 2 SPI 2 I2C | до 2/16 (до 6 каналов IC/OC/PWM) | 20/12 | нет | 2 ACMP, RTC, LVD, COP, BDM | 64 LQFP |
Семейство ColdFire, серия MCF521x (микроконтроллеры) | |||||||||||||
MCF5212 | V2 | 66/63 | 256 | 32 | нет | нет | 33 | 3 UART, QSPI, I2C | До 4/до 32 (4 канала IC/OC/PWM) PIT | 8/12 | 4/16 или 8/8 | DMA (4 канала), PLL, WD, JTAG, BDM | 81 MAPBGA 64 LQFP |
MCF5213 | V2 | 66/63 80/76 | 256 | 32 | нет | нет | 44(81 MAPBGA) 56(100 LQFP) | 3 UART, QSPI, I2C | До 4/до 32, PIT (4 канала IC/OC/PWM) | 8/12 | 4/16 или 8/8 | DMA (4 канала), PLL, WD, JTAG, BDM | 81 MAPBGA 100 LQFP |
MCF5214 | V2 | 66/63 | 256 | 64 | SDRAM | 4 | 142 | 3 UART, QSPI, I2C, FlexCAN | До 4/до 32, PIT (8 каналов IC/OC/PWM) | 8/12 | 4/16 или 8/8 | DMA (4 канала), PLL, WD, JTAG, BDM | 256 MAPBGA |
MCF5216 | V2 | 66/63 | 512 | 64 | SDRAM | 4 | 142 | 3 UART, QSPI, I2C, FlexCAN | До 4/до 32, PIT (8 каналов IC/OC/PWM) | 8/12 | 4/16 или 8/8 | DMA (4 канала), PLL, WD, JTAG, BDM | 256 MAPBGA |
Семейство ColdFire, серия MCF521xx (микроконтроллеры) | |||||||||||||
MCF52100 | V2 | 66/63 80/76 | 64 | 16 | нет | нет | 43(64 QFN) 55(81 MAPBGA) | 2 UART, QSPI, 2 I2C | До 4/до 32, PIT (2 канала IC/OC/PWM) | 8/12 | 4/16 или 8/8 | DMA (4 канала), 32 кГц Osc PLL, RTC, WD, JTAG, BDM | 64 QFN 81 MAPBGA |
MCF52110 | V2 | 66/63 80/76 | 128 | 16 | нет | нет | 43(64 QFN) 55(81 MAPBGA) 63(100 LQFP) | 3 UART, QSPI, 2 I2C | До 4/до 32, PIT (2 канала IC/OC/PWM) | 8/12 | 4/16 или 8/8 | DMA (4 канала), 32 кГц Osc PLL, RTC, WD, JTAG, BDM | 64 QFN 81 MAPBGA 100 LQFP |
Семейство ColdFire, серия MCF5221x (микроконтроллеры) | |||||||||||||
MCF52210 | V2 | 66/63 80/76 | 64 | 16 | нет | нет | 43(64 QFN) 43(64 LQFP) 55(81 MAPBGA) | 2 UART, QSPI, 2 I2C, USB (+OTG) | До 4/до 32, PIT (4 канала IC/OC/PWM) | 8/12 | 4/16 или 8/8 | DMA (4 канала), 32 кГц Osc PLL, RTC, WD, JTAG, BDM | 64 QFN 64 LQFP 81 MAPBGA |
MCF52211 | V2 | 66/63 80/76 | 128 | 16 | нет | нет | 43(64 QFN) 55(81 MAPBGA) 63(100 LQFP) | 3 UART, QSPI, 2 I2C, USB (+OTG) | До 4/до 32, PIT (4 канала IC/OC/PWM) | 8/12 | 4/16 или 8/8 | DMA (4 канала), 32 кГц Osc PLL, RTC, WD, JTAG, BDM | 64 QFN 64 LQFP 81 MAPBGA 100 LQFP |
MCF52212 | V2 | 50/46 | 64 | 8 | нет | нет | 43 | 2 UART, QSPI, 2 I2C, USB (OTG) | До 4/до 32, PIT (4 канала IC/OC/PWM) | 8/12 | 4/16 или 8/8 | DMA (4 канала), 32 кГц Osc PLL, RTC, WD, JTAG, BDM | 64 QFN |
MCF52213 | V2 | 50/46 | 128 | 8 | нет | нет | 43 | 2 UART, QSPI, 2 I2C, USB (OTG) | До 4/до 32, PIT (4 канала IC/OC/PWM) | 8/12 | 4/16 или 8/8 | DMA (4 канала), 32 кГц Osc PLL, RTC, WD, JTAG, BDM | 64 QFN |
Семейство ColdFire, серия MCF5223x (микроконтроллеры) | |||||||||||||
MCF52230 | V2 | 60/57 | 128 | 32 | нет | нет | 43(80 LQFP) 73(112 LQFP) | 3/UART, QSPI, I2C, FlexCAN, Ethernet+PHY 10/100 | До 4/до 32, PIT (4 канала IC/OC/PWM) | 8/12 | 4/16 или 8/8 | DMA (4 канала), PLL, RTC, WD, JTAG, BDM | 80 LQFP 112 LQFP |
MCF52231 | V2 | 60/57 | 128 | 32 | нет | нет | 43(80 LQFP) 73(112 LQFP) | 3/UART, QSPI, I2C, FlexCAN, Ethernet+PHY 10/100 | До 4/до 32, PIT (4 канала IC/OC/PWM) | 8/12 | 4/16 или 8/8 | DMA (4 канала), PLL, RTC, WD, JTAG, BDM | 80 LQFP 112 LQFP |
MCF52232 | V2 | 50/46 | 128 | 32 | нет | нет | 43 | 3 UART, QSPI, I2C, Ethernet+PHY 10/100 | До 4/до 32, PIT (4 канала IC/OC/PWM) | 8/12 | 4/16 или 8/8 | DMA (4 канала), PLL, RTC, WD, JTAG, BDM | 80 LQFP |
MCF52233 | V2 | 60/57 | 256 | 32 | нет | нет | 43(80 LQFP) 73(112 LQFP) | 3/UART, QSPI, I2C, Ethernet+PHY 10/100 | До 4/до 32, PIT (4 канала IC/OC/PWM) | 8/12 | 4/16 или 8/8 | DMA (4 канала), PLL, RTC, WD, JTAG, BDM | 80 LQFP 112 LQFP |
MCF52234 | V2 | 60/57 | 256 | 32 | нет | нет | 73 | 3/UART, QSPI, I2C, FlexCAN, Ethernet+PHY 10/100 | До 4/до 32, PIT (4 канала IC/OC/PWM) | 8/12 | 4/16 или 8/8 | DMA (4 канала), PLL, RTC, WD, JTAG, BDM | 112 LQFP 121 MAPBGA |
MCF52235 | V2 | 60/57 | 256 | 32 | нет | нет | 73 | 3/UART, QSPI, I2C, FlexCAN, Ethernet+PHY 10/100 | До 4/до 32, PIT (4 канала IC/OC/PWM) | 8/12 | 4/16 или 8/8 | ENCRYPTION. DMA (4 канала), PLL, RTC, WD, JTAG, BDM | 112 LQFP 121 MAPBGA |
MCF52236 | V2 | 50/46 | 256 | 32 | нет | нет | 43 | 3/UART, QSPI, I2C, Ethernet+PHY 10/100 | До 4/до 32, PIT (4 канала IC/OC/PWM) | 8/12 | 4/16 или 8/8 | DMA (4 канала), PLL, RTC, WD, JTAG, BDM | 80 LQFP |
Семейство ColdFire, серия MCF5225x (микроконтроллеры) | |||||||||||||
MCF5225x | V2 | 66/63 80/76 | 512 256 | 64 32 | нет | нет | 63 | 3 UART, QSPI, I2C, USB (+OTG) FlexCAN, Ethernet 10/100 | До 4/до 32, PIT (4 канала IC/OC/PWM) | 8/12 | 8/8 | DMA (4 канала), 32 кГц Osc PLL, RTC, 2 WD, JTAG, BDM Encryption | 100 LQFP 144 LQFP 144 MAPBGA |
Семейство ColdFire, серия MCF528x (микроконтроллеры) | |||||||||||||
MCF5280 | V2 | 80/76 | нет | 64 | SDRAM | 2 | 150 | 3 UART, QSPI, I2C, Ethernet 10/100, FlexCAN | До 4/до 32, PIT (8 каналов IC/OC/PWM) | 8/10 | нет | DMA (4 канала), PLL, RTC, WD, JTAG, BDM | 256 MAPBGA |
MCF5281 | V2 | 80/76 | 256 | 64 | SDRAM | 2 | 150 | 3 UART, QSPI, I2C, Ethernet 10/100, FlexCAN | До 4/до 32, PIT (8 каналов IC/OC/PWM) | 8/10 | нет | DMA (4 канала), PLL, RTC, WD, JTAG, BDM | 256 MAPBGA |
MCF5282 | V2 | 80/76 | 512 | 64 | SDRAM | 2 | 150 | 3 UART, QSPI, I2C, Ethernet 10/100, FlexCAN | До 4/до 32, PIT (8 каналов IC/OC/PWM) | 8/10 | нет | DMA (4 канала), PLL, RTC, WD, JTAG, BDM | 256 MAPBGA |
Семейство ColdFire, серия MCF532x (интегрированные процессоры) | |||||||||||||
MCF5327 | V3 | 240/211 | нет | 32 | EBUS DDR/SDR | 16 | 94 | 3 UART, QSPI, I2C, SSI, USB (+OTG) | 4/32 PIT | нет | 4/16 | SVGA LCD Controller, DMA (16 каналов), PLL, RTC, WD. JTAG, BDM | 196 MAPBGA |
MCF5328 | V3 | 240/211 | нет | 32 | EBUS DDR/SDR | 16 | 94 | 3 UART, QSPI, I2C, SSI, Ethernet 10/100, USB (+OTG) | 4/32 PIT | нет | 4/16 | SVGA LCD Controller, DMA (16 каналов), PLL, RTC, WD, JTAG, BDM | 256 MAPBGA |
MCF53281 | V3 | 240/211 | нет | 32 | EBUS DDR/SDR | 16 | 94 | 3 UART, QSPI, I2C, SSI, Ethernet 10/100, USB (+OTG), FlexCAN | 4/32 PIT | нет | 4/16 | SVGA LCD Controller , DMA (16 каналов), PLL, RTC, WD, JTAG, BDM | 256 MAPBGA |
MCF5329 | V3 | 240/211 | нет | 32 | EBUS DDR/SDR | 16 | 94 | 3 UART, QSPI, I2C, SSI, Ethernet 10/100, USB (+OTG), FlexCAN | 4/32 PIT | нет | 4/16 | SVGA LCD Controller, DMA (16 каналов), PLL, RTC, WD, JTAG, BDM, ENCRYPTION | 256 MAPBGA |
Семейство ColdFire, серия MCF5445x (интегрированные процессоры) | |||||||||||||
MCF54450 | V4M | 240/370 | нет | 32 | EBUS DDR2 | 16+16 | 132 | 3 UART, DSPI, SSI, I2C, USB (+OTG) + PHY, Ethernet 10/100 | 4/32 PIT | нет | нет | DMA (16 каналов), PLL, RTC, WD, JTAG, BDM, Serial Boot | 256 TEPBGA |
MCF54451 | V4M | 240/370 | нет | 32 | EBUS DDR2 | 16+16 | 132 | 3 UART, DSPI, SSI, I2C, USB (+OTG) + PHY, Ethernet 10/100 | 4/32 PIT | нет | нет | DMA (16 каналов), PLL, RTC, WD, JTAG, BDM, Serial Boot, ENCRYPTION | 256 TEPBGA |
MCF54452 | V4M | 266/410 | нет | 32 | EBUS DDR2 PCI | 16+16 | 132 | 3 UART, DSPI, SSI, I2C, USB (+OTG) + PHY, 2 Ethernet 10/100 | 4/32 PIT | нет | нет | DMA (16 каналов), PLL, RTC, WD, JTAG, BDM, Serial Boot | 360 TEPBGA |
MCF54453 | V4M | 266/410 | нет | 32 | EBUS DDR2 PCI | 16+16 | 132 | 3 UART, DSPI, SSI, I2C, USB (+OTG) + PHY, 2 Ethernet 10/100 | 4/32 PIT | нет | нет | DMA (16 каналов), PLL, RTC, WD, JTAG, BDM, Serial Boot, ENCRYPTION | 360 TEPBGA |
MCF54454 | V4M | 266/410 | нет | 32 | EBUS DDR2 PCI ATA | 16+16 | 132 | 3 UART, DSPI, SSI, I2C, USB (+OTG) + PHY, 2 Ethernet 10/100 | 4/32 PIT | нет | нет | DMA (16 каналов), PLL, RTC, WD, JTAG, BDM, Serial Boot | 360 TEPBGA |
MCF54455 | V4M | 266/410 | нет | 32 | EBUS DDR2 PCI ATA | 16+16 | 132 | 3 UART, DSPI, SSI, I2C, USB (+OTG) + PHY, 2 Ethernet 10/100 | 4/32 PIT | нет | нет | DMA (16 каналов), PLL, RTC, WD, JTAG, BDM, Serial Boot, ENCRYPTION | 360 TEPBGA |
Примечание: * - указана производительность при выполнении программы из резидентного ОЗУ. Для определения производительности при выполнении программы из FLASH воспользуйтесь коэффициентами табл. 1. ** - без CAN EBUS - модуль интерфейса внешней системной магистрали. |
Основные характеристики процессорного ядра версии V2:
- 32-разрядная RISC-архитектура с переменной длиной команды;
- Шестнадцать 32-разрядных регистров для хранения данных и адресов;
- Специальный регистр для хранения адреса начала таблицы векторов исключений (сброса и прерываний);
- 32-разрядная магистраль адреса, которая позволяет адресовать до 4 Гб внутренней или внешней памяти;
- 32-разрядная магистраль данных;
- программируемые сигналы CS для подключения внешней памяти;
- внутренняя системная шина предусматривает возможность подключения блоков кэш памяти инструкций и данных, а также внутреннего ОЗУ и ПЗУ программ;
- защищенный и пользовательский режимы работы;
- модуль умножителя с накоплением (eMAC) и аппаратного делителя;
- встроенный модуль отладки реального времени.
Следующая модификация ядра - версия V3. Процессорное ядро V3 обладает более совершенным конвейером команд и новым блоком формирования адреса в командах ветвления.
Процессорное ядро V4 характеризуется двумя принципиальными новшествами по сравнению с предыдущими архитектурами семейства ColdFire. Первое - в процессоре V4 использована нетрадиционная для Motorola/Freescale Semiconductor гарвардская архитектура с раздельными 32-разрядными магистралями памяти программ и памяти данных. Как следствие, появились два блока кэш-памяти: I-Cash для хранения очереди кодов команд и D-Cash - для кодов данных. Второе новшество - элементы суперскалярной архитектуры: некоторые команды выполняются парами. Одной из них должна быть команда, в которой используются преобразования и пересылки типа «регистр-регистр», а другой - команда передачи данных в память. Параллельное исполнение других типов команд данное ядро не обеспечивает. На базе архитектуры V4 разработана более совершенная версия ядра V4M, которая отличается наличием более производительного блока умножителя с накоплением eMAC, блока вычислений с плавающей точкой FPU и блоком управления виртуальной памятью MMU.
Процессорное ядро версии V5 обладает полностью суперскалярной архитектурой, которая предоставляет возможность параллельного выполнения двух любых команд программы. Кроме того, оно имеет больший объем кэш-памяти адресов ветвления и более эффективный механизм вычисления адреса передачи управления в командах условного перехода. Эти решения с одновременным переходом на технологический процесс 0,13 мкм позволили повысить производительность процессорного ядра версии V5 до 670 MIPS при частоте тактирования 366 МГц.
Рассмотренные выше процессорные ядра ColdFire развивались в направлении усложнения архитектуры с целью получения большей производительности. Однако летом 2007 года компания Freescale Semiconductor предложила неожиданное решение, анонсировав упрощенную версию ядра V1. Ядро V1 сохранило 32-разрядные АЛУ, регистры общего назначения и внутреннюю магистраль адреса. Магистраль данных стала 8-разрядной, были введены новые команды для работы с 8-и и 16-разрядными данными и для гибкого обмена данными с периферией. Блок умножителя с накопителем и аппаратный делитель в составе ядра V1 отсутствуют. Предполагается, что при высокой частоте тактирования эти операции могут быть выполнены на программном уровне.
Процессорное ядро ColdFire V1 стало основой очень интересной серии МК, которую именуют семейством Flexis. Это семейство объединяет специально разработанные для программы Flexis 8-рязрядные МК с процессорным ядром HCS08 и 32-разрядные МК с процессорным ядром ColdFire V1. Причем каждая модель МК с ядром HCS08 имеет полный аналог по набору периферийных модулей, по типу и цоколевке корпуса, но с ядром ColdFire V1 (рис.1). Специально для семейства Flexis были разработаны новые улучшенные версии периферийных модулей 8-разрядного семейства HCS08, и именно эти модули входят в состав как 8-разрядного МК, так и его 32-разрядного аналога. Таким образом, обеспечивается возможность легкого замещения в готовом аппаратном и программном решении 8-разрядного МК на 32-разрядный.
Семейство Flexis является реальным воплощением новой философии для низкостоимостных решений от компании Freescale Semiconductor. Активному пользователю 8-разрядных МК как бы предлагают без дополнительных усилий по изучению новой элементной базы перейти на 32-разрядные продукты аналогичного ценового диапазона. Причем для такого перехода подготовлены не только аппаратные средства МК, но и средства разработки для них. Для этих целей в состав МК с ядром ColdFire V1 внедрен модуль отладки HCS08 с однопроводным интерфейсом и выпущена специальная версия IDE CodeWarrior, которая позволяет один и тот же исходный текст прикладной программы транслировать в коды как для HCS08, так и для ColdFire V1.
Модели семейства Flexis с ядром ColdFire V1 представлены в таблице 2. Серия QE объединяет МК общего применения. Однако МК этой серии относятся к группе «Ultra Low Power», они обладают сверхнизким потреблением: 350 нА для MCF51QE128 в режиме Stop. В состав серии JM входят МК, которые оснащены дополнительно контроллерами USB с аппаратной поддержкой, модулями аппаратного шифрования и генерации случайных чисел, контроллерами CAN (см. рис. 1).
Ваш комментарий к статье | ||||