Более того, если призадуматься, то CF в некотором смысле - предельное семейство. Рассмотрим для примера MCF548х. * Up to 200MHz peak internal core frequency (308 MIPS (Dhrystone 2.1) @ 200 MHz)
* -40, BGA 1 мм 4 ряда (MCF547х до 266 Мгц, но они 0...70 град)
* три отдельных шины:
- DDR
- PCI
- шина периферии
* MCF5484CVR200 digikey.com партия 25 штук 31.62$ вариант с максимумом фич и без криптографии
* 32-Kbyte instruction cache
* 32-Kbyte data cache
* 32-Kbyte system SRAM - очень полезно для ISR, чтобы не "засирать" кеш при обработке частых прерываний
* плавучка double:
- FMUL - 4 такта
- FSQRT - 56 тактов
- FDIV - 23 такта
* 32-bit double data rate (DDR) synchronous DRAM (SDRAM) controller
— 100 MHz operation
* Version 2.2 peripheral component interconnect (PCI) bus
— 32-bit target and initiator operation
— Support for up to five (5) external PCI masters
— 50 MHz operation with PCI bus to XLB divider ratios of 1:1, 1:2, and 1:4
* Flexible multi-function external bus (FlexBus)
— Supports operation with:
– non-multiplexed 32-bit address and 32-bit data (32-bit address muxed over PCI bus)
– multiplexed 32-bit address and 32-bit data
– multiplexed 32-bit address and 16-bit data
– non-multiplexed 24-bit address and 8-bit data
– non-multiplexed 16-bit address and 16-bit data
— Provides a glueless interface to boot Flash/ROM, SRAM, and peripheral devices
— Up to six (6) chip selects
— 50 MHz operation
* Communications I/O subsystem
— Intelligent 16 channel DMA controller linked list
— Dedicated DMA channels for receive and transmit on all subsystem peripheral interfaces
* Up to two (2) 10/100 Mbps fast Ethernet controllers (FECs) each with separate 2-Kbyte receive and transmit FIFOs
* Universal serial bus (USB) version 2.0 device controller High Speed со встроенным PHY!
– Support for one (1) control and six (6) programmable endpoints - interrupt, bulk or isochronous
– 4 Kbytes of shared endpoint FIFO RAM and 1 Kbyte of endpoint descriptor RAM
– integrated physical layer interface
* Up to four (4) programmable serial controllers (PSCs) each with separate 512-byte receive and transmit FIFOs for UART, USART, modem, codec, and IrDA 1.1 interfaces
* I2C peripheral interface
* Two (2) FlexCAN controller area network 2.0B controllers each with 16 message buffers
* DMA Serial Peripheral Interface (DSPI)
* Optional Cryptography accelerator module
— Execution units for:
– DES/3DES block cipher
– AES block cipher
– RC4 stream cipher
– MD5/SHA-1/SHA-256/HMAC hashing
– Random Number Generator compliant with FIPS 140-1 standards for randomness and non-determinism
— Dual-channel architecture permits single-pass encryption and authentication
32 бита, 50 Мгц шина и периферии и PCI - это 200Мбайт/сек пиковая скорость передачи. DDR память в чипе имеет пиковую скорость 800Мбайт/сек, что правильно.
Для embedded систем важна на только скорость в попугаях, но и количество транзакций в секунду по шине. Если не поднимая тактовую шины, задирать только тактовую ядра, то реальная скорость будет расти слабо. P IV тому подтверждение.
32 бита, 50 Мгц шина - это практический предел шины с умеренным гемороем про разводке. Далее начинается шаманство. Более высокие скорости целесообразо делать по технологии PCIe и прочим диф. технологиям.
С другой стороны, а нужна ли нам большая скорость? Что с нею делать?
DSP - так нефиг процом общего назначения MPEG кодировать. FPGA на шину (хоть на PCI, хоть на локалку) - и вперед! А вот управлять FPGA этим процом - самое то.
Более того, уже если так надо DSP, а HDLить не хочется - так DSP PCI (TriMedia от Philips самое то - у него PCI контроллер есть, и как DSP он зажигает - MPEG4 AVC SP D1 25 fps на одном камне программно делается!) BF PCI есть, толко он не сильно быстрый и довольно дорогой.
Главное - не пропускать лишние потоки данных через процессор. По возможности замыкать их внутри периферии.
GUI - в баню! Либо это простое GUI, с которым этот проц справится, либо ставим отдельную Wintel платку и наслаждаемся красотами интерефейса (ну а все логика проекта живет в плате на MCF, "рисовалка" к ней по Ethernet). Дожидаемся выхода быстрого и маложрущего x86 (появление которого я предсказал более года назад :) ), и наслаждаемся красотой. Все равно там будет красивее - так что если идет оптимизация на красоту, то нужно ставить Wintel, а не пытаться по глупости конкурировать с ним :)
2 Ethernet - грамотно! Скорости с учетом DMA как раз хватит, чтобы загрузить оба интерфейса на длинных пакетах (на коротких, понятно, не загрузить - но это и не надо).
USB device High Speed - вот это тоже грамотно! Получается универсальня периферийная платка для современных ОСей. Только дровишки написать:)
USB host нет - хреновато, но PCI есть - значит, если сильно приспичит - туда воткнем стандартный контроллер!
Если сравнивать с MPC5200B, который мне тоже сильно нравится, то можно заметить, что не так все просто:
* MPC5200B - это 700+DMIPS, UDMA33 IDE
* зато у него PCI, IDE и шина периферии совмещенные - уже не выжмешь всего из деайса
* MPC5200B имеет по 16 к кеша и всего 16к RAM - возможности по обработке частых прерываний гораздо меньше, чем у MCF547х
* на PCI MCF547х мы можем повесть хоть IDE, хоть SATA, хоть RAID (главное - дровишки написать).
Т.е. по "дурной" мощи MPC5200B сильнее (хотя MPEG4 на нам все равно не пожмешь процом "по ворослому"), а вот на реальных контроллерных задачах с частым обменом короткими пакетами с периферией они сопоставимы.
MPC5200CVR400B в партии 25 шутк digikey.com стоит 25.13$, что характерно :). Но у PPC есть большой минус - нет "начальных" контроллеров типа MPC5208, MPC5312, т.е. в простые проекты не засунешь (либо сильно по цене пролетишь, я лично не готов терять 5$ на устройстве только по идеологическим причинам, а вот 1$ готов потерять :) ).
На MCF547х есть порт Линуха от FreeScale, но нафиг нам линух - вопрос открытый. Готового порта RTEMS нет, но, полагаю, можно перехачить из портов на другие камни семейства.
MIPS, который мне тоже очень нравится, опять же не канает в категории "контроллеров до 20$". Т.е. там есть, конечно, ADM5120, но его нет industrial, кроме того, он все-таки жестко на сетевые применения ориентирован.
ARM9E, ARM11 - они гаджетные, как не крути. Мелкопоганистые BGA, Ethernet далеко не везде, быстрая смена поколений - ну их в баню...
Кстати, что характерно, CF 10 летней давности успешно выпускаются. Они, конечно, дороги и некузявы, но зато дизайн можно не переделывать...
Вот и получается, что CF - это основа для семейства контроллеров на многие, многие годы. А по динамическому диапазону против CF не катит ни одно современное смейство.
Вопросы есть? :)))))))))
-
- Невооруженным глазом видно что у CF явно страдает выбор периферии. AlexandrY(760 знак., 21.07.2007 01:40, )
- 5222x имеет и USB, и FLASH. Насчет всего остального - спорный вопрос! Evgeny_CD(793 знак., 21.07.2007 11:08, )
- FLASH-евые их варианты это жалкое подобие LPC и STR и проч. ARM-ов. - AlexandrY(21.07.2007 12:26, )
- "А зачем нам FLASH?" Evgeny_CD(727 знак., 21.07.2007 14:05, )
- А виртуальную их лабораторию не пробовали? AlexandrY(90 знак., 21.07.2007 12:57, )
- Пока разбираюсь, что это за чудо такое. - Evgeny_CD(21.07.2007 13:57, )
- FLASH-евые их варианты это жалкое подобие LPC и STR и проч. ARM-ов. - AlexandrY(21.07.2007 12:26, )
- 5222x имеет и USB, и FLASH. Насчет всего остального - спорный вопрос! Evgeny_CD(793 знак., 21.07.2007 11:08, )
- Я бы сказал так: CF - это практический потолок для embeddera "среднего размера" (не крутой компании). - Evgeny_CD(20.07.2007 23:15, )
- Невооруженным глазом видно что у CF явно страдает выбор периферии. AlexandrY(760 знак., 21.07.2007 01:40, )