Современная система-на-кристалле - основа успешного продукта
Роман Пахолков, руководитель компании Promwad Виталий Мозолевский, технический директор компании Promwad Web: www.promwad.com, E-mail: info@promwad.com
Введение
Современная электроника переживает очередную итерацию бурного развития и во многом это связано с быстрой разработкой и внедрением новой элементной базы. В цифровой аппаратуре произошла настоящая революция благодаря микропроцессорам с развитой периферией и очень гибкими возможностями, класс таких чипов именуется как система-на-кристалле (СнК от английского SoC - System-on-Chip).
С другой стороны рынок предъявляет все новые требования к электронным продуктам, как по функциональным, так и по техническим параметрам. Сегодня для успеха на рынке электронные устройства должны быть спроектированы с учетом следующих требований:
- уникальный набор функций, отличный от конкурентов;
- развитый пользовательский интерфейс;
- высокая производительность базовой платформы, позволяющая модернизировать устройство;
- использование встраиваемых операционных систем;
- низкое энергопотребление для мобильных применений;
- встраиваемые цветные LCD с высоким разрешением;
- возможность подключения к сети Ethernet, в том числе, и с использованием PoE;
- возможность хранения больших объемов данных в энергонезависимой памяти и на внешних носителях;
- большое количество современных проводных и беспроводных интерфейсов.
Реализовать эти требования в одном электронном устройстве можно с помощью применения систем-на-кристалле. Сегодня на рынке представлено большое количество готовых кристаллов, а также решений интегрируемых на ПЛИС от ведущих мировых производителей, таких как Intel, Freescale, Texas Instruments, Marvell, Analog Devices, Altera, Atmel, NXP, Xilinx, Cirrus Logic, RDC, Cypress, Sharp, NetSilicon и других. Проектирование на базе таких кристаллов открывает новые возможности.
Понятие система-на-кристалле
Типовая встраиваемая система построенная на базе SoC содержит различные наборы следующих интерфейсов и контроллеров:
- системная шина и контроллеры шин LPC/ISA, PCI, PCMCIA;
- контроллеры управления NOR/NAND Flash, SDRAM, SRAM, DDR;
- контроллер Ethernet;
- последовательные интерфейсы UART, SPI/SSP/uWire, RS-232, RS-422/485, CAN;
- беспроводные интерфейсы WiFi/IEEE802.11, ZigBee, Bluetooth, IrDA;
- интерфейсы поддержки Flash-карт памяти: SD/MMC, CompactFlash, MemoryStick;
- контроллер LCD STN/TFT/OLED;
- контроллер матричной клавиатуры;
- модули беспроводной передачи данных GSM/GPRS, CDMA;
- модули приема сигналов спутниковых навигационных систем GPS, Glonass;
- аппаратные поддержки плавающей точки, шифрования, DRM и т.п.;
- аудио- и видео- интерфейсы.

Рисунок 1. Возможности современных систем-на-кристалле
Классификация систем-на-кристалле
Большое количество производителей и неограниченный выбор кристаллов SoC вносят некоторую неразбериху при выборе элементной базы для реализации того или иного цифрового устройства. Существует большое количество параметров и факторов по которым можно классифицировать системы-на-кристалле:
- по процессорному ядру ARM, MIPS, PowerPC, x86 и др.;
- по производительности ядра и по частоте системной шины;
- по набору интерфейсов;
- по стоимости кристалла и минимальной его "обвески";
- по позиционированию кристалла производителем.
Но для инженера-разработчика важно учитывать не только все эти факторы, но и многие другие, к примеру, доступность чипа, планируемый цикл производства кристалла, назначение и эксплуатационные характеристики будущего продукта, технологии печатных плат и пайки, полноту документации и технической поддержки и многое другое. В такой ситуации, даже самый грамотный специалист может запутаться и принять не самое оптимальное решение. Предлагаемая классификация призвана помочь российским разработчикам электроники и сформирована на основе выполненных проектов с учетом доступности чипов.
Классификация по применению
Самые распространенные решения могут быть реализованы выбором кристалла из 5-ти следующих классов:
- Для бюджетных применений
- Для устройств удаленного управление
- Для терминальных устройств
- Двухядерные (dual core) для обработки данных
- Для спецвычислителей на основе ПЛИС
Для бюджетных применений
Чипы этого класса могут быть применены в бортовой электронике, устройствах системы управления и контроля доступом, системах оповещения и пультах управления, промышленных контроллерах, устройствах вывода аудио- информации. Кристаллы могут использоваться в проектах не требующих большого объема программного кода или использования операционных систем.
Класс этих кристаллов (см. Таблица 1) характеризуется низкой стоимостью (до 10USD), несложной схемотехникой (не требует применения внешней памяти, невысокие частоты обмена по шинам), возможностью реализации устройства на 2-слойных печатных платах (ПП), простотой монтажа, отладки и тестирования. Этот класс СнК произошел от микроконтроллеров и унаследовал их периферию (GPIO, UARTs, I2C, SPI, ADC/DAC, PWM), но получил более производительное ядро ARM7 и специфичные для СнК интерфейсы (USB, LCD, Ethernet).
Таблица 1. Класс СнК для бюджетных применений
NXP LPC21xx, LPC22xx, LPC24xx |
Atmel AT91SAM7x |
CirrusLogic EPM 7309, EPM7311, EPM7312 |
| ARM7TDMI |
ARM7TDMI |
ARM7TDMI |
| 60-72 MГц |
55 Мгц |
74 МГц |
LCD, SD/MMC USB Host, Device, OTG Ethernet 10/100 |
USB Device Ethernet 10/100 |
LCD, Keypad&Touch cont Digital Audio Interface Multimedia Codec Port |
ADC, DAC UART, SPI/SSP, I2S/I2C CAN |
UART, SPI, SSC, TWI CAN |
IrDA UART, SSI |
Для устройств удаленного управления
Кристаллы этого класса (см. Таблица 2) целесообразно применять в проектах требующих удаленного управления с использованием Ethernet или беспроводных интерфейсов, в устройствах сбора данных, серверах контроллерного оборудования, сетевом оборудовании (точки доступа, шлюзы, маршрутизаторы). Высокопроизводительное ядро позволяет применять операционные системы с поддержкой файловых систем, стека протокола TCP/IP, FTP-сервера, Web-сервера.
Стоимость кристаллов (10-20USD), схемотехника средней сложности (требуется подключение микросхем памяти, реализация физического уровня интерфейсов), возможность реализации устройства на ПП 4-6 слоев.
Таблица 2. Класс СнК для устройств удаленного управления
RDC R8610 |
Atmel AT91RM9200, AT91SAM9x |
CirrusLogic EPM9301, EPM9302 |
| x86 core |
ARM920, ARM926 |
ARM920 |
| 150 Мгц |
180-240 МГц |
166-200 МГц |
2xEthernet MAC USB 2.0, UARTs LPC, PCI |
Ethernet MAC USB 2.0, UARTs SPI, SSP, TWI, MCI |
Ethernet MAC 10/100 USB 2.0, IrDA, ADC SPI, I2S |
Для терминальных устройств
Класс этих микропроцессоров (см. Таблица 3) отлично подходит для электронных устройств со встроенными LCD-матрицами большого разрешения. Конечным продуктом могут являться планшетные и панельные компьютеры, измерительные приборы, бортовые компьютеры с экранами высокого разрешения, медицинские мониторы и терминалы, информационные киоски и панели.
Чипы этой группы стоят довольно дорого (20-30 USD), но оправдывают свое применение за счет высокой интеграции современных интерфейсов. В силу этого, разрабатываемая схемотехника средней сложности, печатную плату возможно выполнить в 6-8 слоев и в большинстве случаев потребуется монтаж BGA корпусов.
Таблица 3. Класс СнК для терминальных устройств
Freescale MC9328MXL |
Atmel AT91SAM9261, AT91SAM9263 |
CirrusLogic EPM9312(без акс.), EPM9307, EPM9315 |
| ARM9 |
ARM9 |
ARM9 |
| 200-350 MГц |
200 Мгц |
200 Мгц |
| USB Host, Device |
Ethernet 10/100 USB Host, Device |
Ethernet 10/100 USB Host, Device |
LCD 16/18 bit MPEG-4, H.263 en/dec 2D Accelerator |
LCD 2000x2000
2D Accelerator
|
LCD 1024x768
2D Accelerator
|
Двухядерные (dual core) для обработки данных
Этот класс устройств (см. Таблица 4) идеально подойдет для применения в устройствах где требуется параллельная обработка данных или одновременный сбор информации с ее выводом. Устройства в которых могут потребоваться такие возможности могут быть абсолютно разными: от мультимедиа устройств до измерительной техники. К примеру, в измерительных приборах часто необходимо вести свертку данных с использованием DSP ядра и одновременный вывод информации на LCD и обработки клавиатуры для работы пользователя - с такой задачей прекрасно справиться OMAP5912 оснащенный ядрами DSP и ARM с общей системной шиной. Также процессоры этой группы подойдут для различных мобильных устройств с мультимедиа функциями, т.к. обладают низким энергопотреблением.
Работа с такими процессорами, их стоимость и другие характеристики схожи с предыдущей группой, но существенным отличием является необходимость опыта работы с двухядерной архитектурой при написании и отладки встраиваемого программного обеспечения.
Таблица 4. Класс СнК для обработки данных с двухядерной архитектурой
TI OMAP5912 |
AD BlackFin BF561 |
| ARM926 + TMS320C55x |
Dual BlackFin |
| 192 МГц |
600 МГц |
USB 1.1 Host, Client, OTG UART, SPI, IrDA, I2C SDRAM Controller |
UART, IrDA, SPI, SPORT SDRAM Controller |
Camera Interface Keyboard Matrix Interface HDQ/1-Wire Interface MMC/SD, LCD Controller |
|
Для спецвычислителей на основе ПЛИС
Безусловно среди разработчиков популярными являются гибкие решения на базе ПЛИС (см. Таблица 5), но их применение оправдано при реализации алгоритмов параллельной обработки данных, скоростных алгоритмов обработки потоков, специфических интерфейсов или уникальных их наборов, интеграции большого количества различных ядер и алгоритмов цифровой обработки сигналов в одном устройстве.
Применение ПЛИС при проектировании влечет за собой сложный процесс разработки проекта и высокую стоимость конечного решения. Большим преимуществом является реконфигурируемость платформы, что позволяет даже небольшой проектной фирме иметь 1-2 платформы и строить на базе них большое количество решений.
Таблица 5. Гибкие СнК на базе ПЛИС (CSoC, SoPC проекты)
Altera Stratix, Cyclone |
Xilinx Spartan, Virtex |
Nios, Nios2 ARM 8051 core, PIC |
MicroBlaze, PicoBlaze ARM 8051 core, PIC PowerPC integrated |
| DSP |
Filtering, Modulation / demodulation Encryption / decryption, Correlation Signal generation, Synchronization |
| Video&Image Processing |
Video transport at Ethernet line rates (100/1000 Mbps) 2D Filter, 2D Median Filter JPEG, JPEG2000, MPEG Decoder/Encoder |
Услуги контрактной разработки при проектировании на базе СнК
При всех преимуществах систем-на-кристалле (СнК) не стоит забывать, что процесс разработки продукта на базе таких чипов весьма трудоемок и требует наличия не только грамотных специалистов, но и большой ответственности.
Такие проекты, не могут быть выполнены на "коленках" одним-двумя разработчиками, т.к. необходимо пройти большое количество этапов:
- выбрать архитектуру решения;
- подобрать элементную базу с учетом стоимости/доступности/совместимости;
- разработать принципиальную схему с огромным количеством связей;
- трассировать печатную плату с высокой плотностью монтажа;
- верифицировать правильность схемы и трассировки ПП;
- разместить производство опытных образцов в надежном месте;
- осуществить первичный "подъем" (bring-up) платы;
- разработать тестовое ПО и при необходимости дополнительное оборудование, ПО-монитор;
- подготовить полный пакет поддержки аппаратуры (BSP), который включает в себя: первичный загрузчик с подпрограммами тестирования периферии и памяти, операционную систему с драйверами интерфейсов и устройств установленных на плате, системные утилиты, автоматические скрипты и пакеты сборки ПО;
- разработать прикладное и пользовательское ПО, а также интерфейсы пользователя;
- провести интеграционное тестирование продукта;
- подготовить конструкторскую документацию (КД) и инструкции по установке/прошивке/тестированию/программированию устройства;
- выпустить установочную партию продукции и подготовить продукт к серийному выпуску (отдельный трудоемкий этап работы).
Не все разработчики и фирмы могут обеспечить эффективное исполнение этих этапов. Тем не менее, продукт требует решения всего комплекса задач, выполняемых при участии менеджеров, маркетологов, системотехников, программистов, дизайнеров, конструкторов, инженеров и других экспертов. В этой ситуации использование услуг контрактной разработки имеет большое значение, т.к. компания специализирующаяся на этой теме выполнит разработку быстрее и качественнее, чем даже внутренняя сплоченная команда разработчиков, но не специалистов в этой области.
В таком проекте контрактный разработчик принимает на себя комплекс обязательств по реализации продукта целиком и по исполнению всех этапов проекта (электроника, схемы, платы, корпуса, интерфейсы, программное обеспечение). Разработчик обеспечивает своевременное исполнение работ и информирует заказчика о ходе их выполнения. В конечном счете контрактный разработчик и несет полную ответственность за работоспособность устройства в целом, что избавляет заказчика от рисков связанных с потерей времени и средств при невыполнении проекта внутренней группой разработчиков.
Грамотное использование услуг контрактной разработки способно обеспечить новый качественный уровень продуктов и сократить время выхода на рынок. Во многих случаях производителю гораздо выгоднее передать разработку продукта контрактному разработчику, а свои усилия сосредоточить на задачах исследования рынка и продвижения продукции.
Эффективность контрактной разработки объясняется привлечением высококвалифицированных и глубоко-специализирующихся экспертов, прозрачностью бюджета и сроков разработки, применением решений, опробованных в других проектах и отраслях.
|