Процессорный модуль СМ-Х255 компании CompuLab
Услышать слова «встраиваемая система» в разговорах вокруг нас удается весьма редко, а если и удается, то, скорее всего, это разговоры специалистов (или тех, кто считает себя таковыми). Видимо, это как-то связано с особенностями «великого и могучего», потому как на самом-то деле эти «встраиваемые системы» сопровождают нас достаточно давно — первой подобной системой был компьютер, установленный на борту космического корабля «APPOLO 11», всемирно известного по совсем другой причине.
Итак, давайте вспоминать и размышлять. Как утверждают весьма компетентные источники, встраиваемая система (Embedded system) — это специализированная компьютерная система, полностью инкапсулированная в устройство, которым она управляет. Если читатель не против, будем пользоваться далее именно этим определением. Собственно встраиваемые системы можно поделить на два основных типа (сознательно жертвую деталями для подчеркивания сути).
Первый тип — микроконтроллерные системы. Строятся на базе специализированной микросхемы (или нескольких микросхем), выполняют одну-две-три вполне определенные функции. Ярчайший пример — современный телевизор: процессор обработки различных видеоформатов и собственно настройки телевизора, процессор обработки стереозвука, подсистема обработки телетекста. Вроде ничего не забыл?.. Работают они все по заранее заложенной программе (firmware) и перепрограммированию поддаются с большим трудом, а то и не поддаются вовсе. Кроме телевизора можно привести еще массу устройств со встраиваемой системой этого типа — пейджер, сотовый телефон, сканер, стиральная машина. Да в одном инжекторном автомобиле (а в иномарке — тем более) можно насчитать несколько десятков таких устройств — контроллер впрыска, контроллер АBS, контроллер курсовой устойчивости…
Второй тип — микропроцессорные системы. В отличие от систем первого типа, строятся на базе микропроцессоров, применяемых в обычных персональных компьютерах. Даже структура этих систем часто напоминает структуру персоналки. Есть, правда, разница — зачастую встраиваемые системы лишены некоторых деталей, в которых они не нуждаются в силу специфичности решаемой задачи. Согласитесь — цифровому фотоаппарату не зачем иметь мощную видеокарту с 3D-ускорителем. Ну вот, проговорился раньше времени… Ну да ладно, все равно пришлось бы об этом сказать. В чем же основное отличие систем этого типа? Вариантов ответа может быть несколько, но есть пара главных: во-первых, это перепрограммируемые системы. Во-вторых, это более-менее легко перепрограммируемые системы, ибо они программно совместимы с компьютерами, для которых уже написана масса программного обеспечения и на которых это программное обеспечение пишется. Примеры систем этого типа приводить несколько сложнее по причине их меньшей распространенности в обиходе: большинство бытовых DVD-проигрывателей, уже упомянутые цифровые фотоаппараты, автомобильные компьютеры (подчеркиваю — не простейшие маршрутные компьютеры, которые относятся к первому типу, а серьезные компьютеры под управлением Windows Automotive, с GPS, MPEG2 и т. п.), КПК, наладонники и почти все то, что связано с нишей PDA (Personal Digital Assistant), а также разные экзотические устройства типа холодильника с выходом в Internet…
Наибольшее распространение встраиваемые системы второго типа получили в промышленности, ибо их применение снижает время разработки, упрощает обслуживание и прочая, и прочая… Не буду перечислять здесь все преимущества — их можно найти практически в любой литературе на эту тему. Именно по этим причинам современные методы автоматизации немыслимы без использования подобных систем. Естественно, спрос рождает предложение. Что мы и имеем сегодня: немалое количество стандартов на «кирпичики» для создания встраиваемых систем и еще большее количество фирм, выпускающих эти самые «кирпичики». Посудите сами: только в Консорциуме PC/104 (организации, объединяющей фирмы-изготовители плат указанного стандарта) сейчас больше 200 участников. А если взять еще и PC/104Plus, CPCI, VME? Сотни изготовителей, тысячи наименований продукции. И все это для удобства разработчиков рынка встраиваемых систем.
Но закон сохранения энергии еще никто не отменил (хотя были попытки), и за эти преимущества нужно платить. Причем в прямом смысле — зачастую микропроцессорная система дороже микроконтроллерной. И в процессе разработки новой встраиваемой системы приходится решать некое экономическое уравнение. Переменных, входящих в это уравнение, не так много — стоимость разработки устройства на микроконтроллере или покупка готовой микропроцессорной платы, стоимость разработки программного обеспечения или стоимость написания firmware, стоимость обслуживания любой из систем, время ее жизни и возможность ее модернизации в это время. Уравнение получается достаточно сложное, и решается оно далеко неоднозначно. Скажем, кассовые аппараты обычно делают на микроконтроллере, а игровые автоматы — на микропроцессоре. Но бывает и наоборот!
Как вы понимаете, стоимость готовой платы играет далеко не последнюю роль при решении подобного уравнения. А если кроме привлекательной цены в активах этой платы имеется удобная среда разработки программного обеспечения, хорошая техническая поддержка со стороны изготовителя, возможность вносить аппаратные изменения в готовое устройство — выбор будет очевиден. Как вы уже поняли, вот так мягко и незатейливо я пытаюсь перевести разговор именно на микропроцессорные системы. Да что уж там скрывать — на продукцию одного разработчика!
Историческая справка
Компания CompuLab Ltd. (Израиль) была основана в 1992 году и начала свою деятельность с консультаций в области инженерных решений в электронике. В последующие пять лет компания принимает участие в нескольких десятках заказных разработок. Накопленный опыт, деловая активность, изучение рынка и высочайший инженерный потенциал позволили CompuLab Ltd. в достаточно короткие сроки заняться проектированием собственной продукции. В 1997 году компания выпускает собственную разработку — семейство процессорных модулей CORE. К сожалению, несмотря на инновационность технических и инженерных решений, заложенных в первое поколение модулей, архитектура используемого в них процессора (i960) не оправдала надежд разработчиков на широкое внедрение.
Второе поколение модулей увидело свет в 1999 году. Эти модули базировались на процессоре AMD ELAN SC400 (архитектура х86) и назывались 486CORE. На тот момент это были самые маленькие в мире компьютеры. Фантастический успех 486CORE на рынке подтвердил правильность выбранной стратегии. С тех пор семейство модулей CORE неоднократно пополнялось и, смеем надеяться, будет расти и в дальнейшем.
Сочетание большой вычислительной мощности и малых габаритов модулей способствовало быстрому завоеванию рынка встраиваемых систем. Сегодня продукцией компании CompuLab пользуется более 300 фирм в 50 странах мира, а сама компания производит почти 20% продукции этого рынка. Среди основных покупателей этих модулей можно упомянуть таких известных гигантов, как Cisco Systems, Marconi, General Electric, OKI и многих других производителей, не так широко известных в России.
Спектр применений модулей CORE весьма широк: военная и авиационная промышленность, медицинская техника, транспорт, телекоммуникационное оборудование, интеллектуальные сетевые устройства, мини-компьютеры, компьютерная периферия, оборудование для индустрии развлечений…
Техническая справка № 1
Процессорные модули CompuLab Ltd. — это полнофункциональные вычислительные системы с оперативной памятью, встроенными Flash-дисками, контроллером Ethernet, поддержкой стандартной для настольных компьютеров периферии и другими красивыми и полезными мелочами, которые так упрощают жизнь разработчику. Все необходимые для их работы электрические линии выведены на унифицированные компанией разъемы (CAMI — CompuLab’s Aggregated Module Interface) и предназначены для стыковки с соответствующей платой-носителем (обычно формата PC/104). Платы эти могут содержать (а могут и не содержать — об этом позднее) следующие устройства: преобразователь питания, шинные формирователи последовательных портов, шины PC/104 и PC/104 Plus, дополнительный контроллер Ethernet, контроллер PCMCIA и пр. Будучи соединенными вместе, плата-носитель и процессорный модуль образуют компьютер с возможностями, идентичными обычному ПК, но гораздо меньших габаритов.
Искушенный читатель может поглумиться над этими строчками, потому как ничего нового в этом описании нет. А вот сейчас — самое интересное: на платы-носители есть электрическая схема и даже рекомендации по разводке собственных плат-носителей. Ну как? Впечатляет? Достаточно сделать свою плату и поставить в нее готовое вычислительное ядро — и все! Нужен игровой автомат — пожалуйста, нужен бортовой накопитель (в каком-нибудь форм-факторе типа ARINC-429) — пожалуйста! Нет предела совершенству! Кстати, именно так и поступает большая часть заказчиков компании CompuLab.
Все, не буду больше мучить туманными фразами. Последующая часть статьи содержит более подробное описание продукции. Сразу предупреждаю: если вы, уважаемый читатель, уже знакомы с этими платами — не читайте дальше. Цифры и технические термины на английском языке вгоняют в хандру…
Техническая справка № 2
В 2005 году компания изменила наименование своей продукции, поэтому далее будем пользоваться только новыми определениями. Таблица с сайта изготовителя приводится здесь с небольшими сокращениями и комментариями:
- Кроме указанных опций, все модули имеют в своем составе шину PCI, часы реального времени, интерфейсы жесткого диска и звуковой кодек.
- Высота модулей указана без радиатора.
- Производительность замерялась тестом SiSoft Sandra.
- В таблице приведены данные только на новые и самые популярные модули. Где можно получить более подробную информацию, сообщу позднее.
Как вы могли заметить, наряду с более привычной всем архитектурой х86 в списке продукции присутствуют и изделия на процессорах типа RISC. Первоначально данная статья планировалась как обзор СМ-Х255 (модуль СМ-Х270W был анонсирован во время ее написания), поэтому с этой платы и начнем. Сразу хочу внести ясность — версий модуля СМ-Х255 существует две (2.0 и версия 3.0, называемая также «GX»), речь пойдет только о последней.
Структурная схема модуля представлена на рис. 1. Обратите внимание на позиции, отмеченные строчкой «opt». Это как раз и есть заказные позиции («option») в конфигурации процессорной платы, которые могут устанавливаться (или сниматься) по желанию заказчика.
Теперь — обзор основных составляющих этой платы. Думаю, что логично будет начать с процессора. Итак — Intel XScale PXA255. В принципе, только ему можно было посвятить весь номер этого журнала, но так как речь не только о нем, то постараюсь быть кратким:
- Кристалл процессора изготовлен по 0,18-микронной технологии, что обеспечивает низкое энергопотребление при высокой тактовой частоте (400 МГц).
- Процессор совместим с архитектурой ARM v.5TE.
- Intel Media Processing Technology (включая 40-битный аккумулятор и операцию 16-битного умножения) ускоряет декодирование аудио/видеопотоков.
- Кроме собственно вычислителя в состав процессора входит поддержка PCMCIA/Compact Flash, 17 линий ввода/вывода общего назначения (GPIO), часы реального времени (RTC), сторожевой таймер (watchdog), контроллер управления питанием, контроллер прерываний, контроллер прямого доступа к памяти, контроллер аппаратного сброса (reset controller), графический контроллер с поддержкой ЖК-панелей, в том числе и TFT, три последовательных порта, Bluetooth, IrDA (SIR и FIR), I2C, I2S, AC97, SPI, USB, JTAG, контроллер MMC, два независимых тактовых генератора (32768 Гц и 3,6864 МГц).
- Процессор выпускается для обычного и расширенного температурных диапазонов.
Совсем уж как-то коротко получилось… Тем, кто ожидал большего, советую посмотреть список литературы в конце статьи.
Теперь чуть подробнее об остальных компонентах и характеристиках модуля (рис. 1).
Оперативная память типа SDRAM с 32-разрядной шиной и частотой 100 МГц.
Flash-диски двух типов — NOR и NAND. Первый мегабайт NOR используется для хранения программы-монитора (ARMMON), остальное — для хранения ядра Linux или загрузчика Windows CE. В состав ARMMON входит драйвер поддержки памяти NAND, что позволяет записывать туда файловую систему Linux или образ Windows CE. Оба диска имеют аппаратную защиту от записи (одна из линий разъема CAMI).
Interface Bridge представляет собой микросхему так называемого чипа-компаньона (companion chip), расширяющего возможности процессора. В состав этой микросхемы входят контроллер SDRAM, контроллер шины PCI (версия 2.1, частота 33 МГц), расширение контроллера прерываний, расширение контроллера прямого доступа к памяти, четырехканальный счетчик-таймер, контроллер шины LPC, два дополнительных канала USB (типа Host, 1,5–12 Мбит/с) и еще один последовательный порт.
Про контроллер Ethernet долго распространяться не буду: 10–100 Мбит/с.
Звуковой кодек и контроллер сенсорного экрана (touchscreen) расширяют возможности интерфейса AC97, заложенного в процессор. При установленном кодеке (Crystal CS4299 или UCB1400) у модуля появляется монофонический микрофонный вход, стереофонические линейный вход и выход. Часть микросхемы UCB1400 является контроллером четырехпроводного резистивного сенсорного экрана.
Микросхема Super-I/O. Возможно, специалисты могли бы сейчас снисходительно похлопать меня по плечу, заявив, что бывает и не такое. Возможно. Но, если честно, умел бы писать стихи — написал бы оду CompuLab за красоту инженерных решений. Одно из них — использование контроллеров типа Super-I/O. Это решение применяется во всех модулях, выпускаемых компанией, и сильно облегчает жизнь разработчикам. В данном случае на CM-X255 установлена микросхема IT8711F, поддерживающая следующие устройства: клавиатуру и мышь типа PS/2, параллельный порт (с возможностью подключения накопителя на гибких магнитных дисках) и еще один последовательный порт.
Еще один контроллер RTC (MAX6902) установлен на модуле для учета времени при выключенном процессоре.
Единственный формирователь линии RS-232 для последовательного порта (COM-A) установлен прямо на модуле. Этот порт выполняет роль консольного при работе с ARMMON, его же можно использовать для диагностики и отладки при работе в Linux иWindows CE.
Весьма сухую информацию о габаритах модуля (табл.) можно слегка оживить его фотографией (рис. 2). Два больших 180-контактных разъема на нем и есть упоминавшиеся ранее CAMI.
Теперь несколько слов о плате-носителе. Точнее — о платах-носителях, ибо для данного модуля их существует две разновидности. Начнем с меньшей по размерам.
Техническая справка № 3
Плата SB-X255 (старое название ARMBASE). Представляет собой носитель для CM-X255, выполненный в форм-факторе PC/104 (на рис. 3 SB-X255 показана с установленным на нее процессорным модулем). Жаль, что современные средства массовой информации пока не позволяют задействовать все органы чувств…