Хищные вещи века

По всей видимости, одной из самых отвратительных черт современного технического специалиста является то, что он слишком быстро привыкает ко всему простому и приятному в повседневном обращении. В особенности же это касается достижений современной вычислительной техники. Давно ли нас удивлял своей мощью IBM PC/XT? А столь любезная сердцу простого советского человека “однокристалка” i8048? Да... Иных уж нет, а те  -  далече.

Рис. 1. Ниша спецификаций PC/104 и PC/104+ среди приложений реального времени

Кстати, о контроллерах! Вспомним исторические вехи на пути их развития. На самой заре появления вычислительных средств для управления бортовыми системами и технологическими процессами это были громоздкие модули на микропроцессорных секциях с узкоспециализированной системой команд и запредельным энергопотреблением. Думается, среди читателей старше тридцати многие прошли через разработку спецпроцессоров на базе серий 588 или (о ужас!) 589. Стоимость подобных систем и сроки разработки поражали разум, а об умельцах, совершающих чудеса с микроассемблером, ходили легенды.

Естественно, дальше так жить было нельзя. И вот в начале 70-х появились широкодоступные и, главное, относительно дешевые однокристальные микропроцессоры типа 4040, 8080, 6811, а затем и однокристальные микроконтроллеры самых различных архитектур и областей применения. Менее чем за 10 лет было выпущено несколько десятков их разновидностей. Что же их объединяло?

Малые размеры систем на их базе (количество корпусов на плате вычислителя не превышало 10 - 15 штук).

Относительно низкое энергопотребление (несколько сот, а то и десятков миллиампер).

Архитектура, ориентированная на управляющие приложения и обработку разрядов.

Удобная и запоминающаяся, как гимн Советского Союза, система команд.

Встроенная память команд и данных, а в особо удачных случаях  -  и кое-какая периферия.

И все было бы здорово, но слаб дух человеческий: попробуйте-ка удержать в голове две архитектуры  -  отладочной инструментальной системы на базе какой-либо персональной микроЭВМ и целевую. Знаю по собственному опыту: когда на ассемблере x86 начинаешь писать что-то из арии PDP вроде "MOV #10, @R5", пора уходить домой.

Некоторое время продолжались попытки создания контроллеров на базе архитектур инструментальных машин  -  уже упомянутой PDP-11, microVAX, 68xxx и т. п., но при всем богатстве выбора, сказочной красоте и распространенности в отдельно взятых нишах подобные системы не стали истинно народными, как, например, “фольксваген” или “копейка”. Естественно, я не хочу обидеть пользователей сигнальных процессоров, fuzzy-контроллеров, компонентов нейросистем и другого подобного оборудования, но судьба вычислителей общего применения была предрешена. Всех их погубил распространившийся в начале 80-x подобно СПИДу вирус. И имя ему  -  iAPX86.

Появившись в конце 70-х как нечто среднее между игровой приставкой и пишущей машинкой, компьютер IBM PC на базе архитектуры Intel стал уверенно завоевывать расположение пользователя в самых различных областях.

Не будем обсуждать здесь причины такого успеха  -  их было много, как субъективных, так и объективных. Как говорится, сколько людей, столько и мнений. Нельзя не отметить одного: этот компьютер не был самым хорошим, самым быстрым и лучше других сконструированным. Зато он был самым дружественным по отношению не только к пользователю-программисту, но и к разработчику аппаратуры. Все в нем было сделано как нельзя более просто. Любая из подсистем была доступна программисту, а шина  -  полностью открыта для подключения к ней нестандартных устройств.

Как только разработчики контроллеров это осознали, параллельно с развитием персональных компьютеров начался поиск простого, прочного и дешевого конструктивного решения для системы на базе процессора x86 и шинной архитектуры ISA.

 

Лучше меньше да больше

Окинем взором представленную на рис. 1 индустриальную пирамиду Хеопса. Как в любом современном обществе, на самом ее верху сосредоточено относительно небольшое количество “сливок”, связанных со скоростной передачей данных, многопараметрическим и нелинейным регулированием, обработкой изображений и т. п. Размер таких вычислителей сравним с 19-дюймовой стойкой. В самом низу находится огромный по своему объему “плебс”  -  контроллеры стиральных машин, фотоаппаратов, кодовые замки. Средний же уровень представлен такими изделиями, как:

- компактные технологические контроллеры;

- специализированные операторские мониторы и пульты;

- встраиваемые системы управления и навигации транспортных средств и летательных объектов.

Все они достаточно сложны по реализуемому алгоритму, но недостаточно массовы, чтобы для них были разработаны специальные системы программирования и отладки. Таким образом, верхний уровень с давних пор был прочно оккупирован устройствами на базе шины VME, которая сейчас медленно, но верно уступает позиции CompactPCI. На нижнем уровне, в среде 8-разрядных контроллеров, прочно поселились “однокристалки”. А что же посередке?

Ключевой задачей разработчиков любых контроллеров является размещение как можно большего количества компонентов на функционально завершенном модуле. Как правило, подобное изделие потенциальный заказчик рассматривает как единое целое относительно компонентов его собственной системы. Поэтому к универсальным встраиваемым устройствам предъявляются вполне определенные требования:

- по форме и креплению платы (необходимо исключать ее вибрацию и механические деформации);

- по геометрическим размерам платы (она должна быть пригодна для использования в портативной аппаратуре);

- по рассеиваемой мощности (не выше нескольких ватт);

- по времени наработки на отказ (не менее 20 000 часов);

- по времени восстановления с использованием блочной замены (не более получаса);

- по минимизации количества паяных контактов, компонентов и механических соединителей;

- по температурному диапазону  -  изделие должно работать как в горячих цехах (+85oC), так и в неотапливаемых ангарах (-25...+40oC);

- по совместимости вычислительной мощности, аппаратно-программного интерфейса и средств начальной загрузки с базовыми операционными системами (DOS, Windows CE, QNX).

 

Кубики для детей страшного возраста

Как правило, специализированная вычислительная техника, призванная работать в условиях высокого уровня механических воздействий, требует усиления конструкции. Решения, используемые при проектировании офисного оборудования, тут не годятся  -  геометрический размер плат просто несовместим с прочностью электрических соединителей, а электронные компоненты не могут быть частью несущей конструкции.

Рис. 2. Стек из плат PC/104

Поэтому в специальных приложениях наиболее распространен так называемый корзинный, или крейтовый конструктив. В этом случае большую часть нагрузки принимает на себя металлический каркас, не допускающий относительного смещения отдельных модулей и соединителя. Примером могут служить широко распространенные системы на базе STD32, CompactPCI и VME.

Правда, такое решение допустимо не всегда и не везде. Безусловно, для командного пункта, промышленного цеха или корабельной электроники это идеальный вариант. Однако для авиации, автомобильного транспорта, портативной измерительной аппаратуры, коммуникационных терминалов здесь слишком много “железа” и “прибамбасов”. Одни только золоченые разъемы чего стоят. К тому же габариты даже одиночной платы великоваты  -  в основном за счет разъема и формирователей линии.

Компромиссом в данном случае является вертикальная стековая (или мезонинная) конструкция системы, когда механическая прочность сборки обеспечивается как за счет стяжек и стоек, так и за счет самих межплатных соединителей. При не слишком большом размере платы (9x9,6 см) это решение обеспечивает приемлемый уровень жесткости и достаточную компактность.

Степень интеграции на конструктиве такого размера позволяет ограничить весь контроллер тремя-четырьмя платами, что в свою очередь не требует установки сильноточных формирователей системной шины. А процесс сборки системы в целом становится подобным манипуляциям с популярным конструктором Lego.

 

CoreModule и другие из семейства PC/104

Стандарт PC/104, удовлетворяющий всем высказанным требованиям, был официально анонсирован фирмой Ampro в 1992 году. Его название произошло от суммарного количества ножек в сдвоенном разъеме шины: 40 на первом разъеме, соответствующем шине XT, и 64  -  на втором, являющемся аналогом AT.

Таблица 1. Контроллеры семейства CoreModule.

-----

* Подразумевается, что все модели оснащены клавиатурным интерфейсом и звуковым выходом.

** Для вариантов с расширенным диапазоном рабочих температур.

Примерно тогда же эта компания выпустила первые PC-совместимые модули  -  CoreModule/XTplus и CoreMo-dule/PC, положившие начало целому семейству с тем же названием. Плата CM/XTPlus, снятая с производства лишь недавно, представляла собой контроллер на базе 9,8-мегагерцового процессора 8088. Система была оснащена 640 Кб оперативной памяти, последовательным и параллельным портами, клавиатурным интерфейсом и разъемом для Flash-диска. При потребляемой мощности 0,6 Вт это был первый PC/XT-совместимый компьютер, выполненный в формате PC/104. Следующий, 1993 год ознаменовался выпуском официальной версии стандарта, разработанной группой P996.1, после чего количество продуктов PC/104 стало увеличиваться в геометрической прогрессии.

Таблица 2. Периферийные адаптеры семейства MiniModule.

В дальнейшем каждое новое изделие имело все возрастающую степень интеграции. Это позволило к сегодняшнему дню собрать на небольшой плате все основные компоненты PC-совместимого компьютера  -  дисковый интерфейс, значительное ОЗУ, полноценные коммуникационные порты, сохранив цену на уровне обычных 8-разрядных контроллеров на базе процессоров 8088.

Однако не стоит думать, что контроллер PC/104  -  это всего-навсего “маленькая” PC. По наличию базовых ресурсов  -  таких, как 8254-совместимый таймер, контроллер прерываний, клавиатурный порт, Centronix,  -  он отличается от инструментальной персоналки, как БМП от BMW. Название похоже  -  цели не те. Необходимыми расширениями любого промышленного контроллера являются:

- двухпроводной порт RS485  -  как основное средство межмодульных коммуникаций;

- унифицированный сторожевой таймер для предотвращения зависаний, и даже не один;

- система управления энергопотреблением;

- система контроля питания;

- возможность использования COM-порта в качестве терминала или средства начальной загрузки по умолчанию;

- поддержка всех базовых систем энергонезависимой памяти ПЗУ, УФРПЗУ, FLASH и т. п.;

- значительный объем конфигурационного энергонезависимого ОЗУ для хранения пользовательских данных.

Некоторые характеристики выпущенных к сегодняшнему дню контроллеров семейства CoreModule приведены в табл. 1.

Несколько слов о температурных и мощностных характеристиках изделий. Большинство контроллеров выпускается в нескольких исполнениях: с нормальным (0...+70o C; для Pentium  -  0...55o C) и расширенным (-40...+85o C) диапазоном рабочих температур. При этом плата за способность работать в холоде и жаре не превышает 20 - 30% от стоимости изделия. Безусловно, возникает вопрос: а как же Pentium? Он ведь ниже нуля не жилец! Верно, если речь не идет о мобильном варианте, работающем и в более жестких условиях. В отличие от микроконтроллеров на базе PC/XT в современных модификациях поддерживается полноценное четырехуровневое управление потреблением, подразумевающее в определенных условиях перевод процессора на пониженную частоту или в режим “спячки”.

Рис. 3. Внешний вид системы на базе PC/104

Справедливости ради следует отметить, что еще в 1987 году компанией Ampro был выпущен первый интерфейсный модуль в аналогичном CoreModule конструктиве, а несколько позднее  -  и первый микроконтроллер. Эти изделия положили начало семейству периферийных плат "MiniModule" (табл. 2). Оно имеет в своем составе дисковые контроллеры, видеоадаптеры, Ethernet-платы и другие коммуникационные порты  -  все то, что обычно на базовом блоке не помещается.

Тогда же фирма Ampro основала консорциум производителей оборудования спецификации PC/104. Как и полагается держателю собственного стандарта, Ampro живет своей жизнью, давая при этом заработать на хлеб и другим компаниям. В ее каталогах мы можем увидеть и вычислители как таковые, и самую необходимую периферию. Сегодня консорциум PC/104 включает несколько десятков компаний, которые производят все необходимые в системах реального времени устройства сбора и обработки информации (УСО), в том числе:

- WinSystems, Diamond, Mesa Electronic  -  ЦАП-АЦП, коммуникационные адаптеры;

- Imagenation  -  устройства многоканального ввода данных от видеокамер;

- Kinetic  -  конструктивные элементы, блоки питания и макетные платы;

- Eurotech  -  приемники системы глобального позиционирования GPS;

- BittWare  -  высокопроизводительные цифровые сигнальные процессоры и многопроцессорные системы с мощной локальной шиной;

- ZF Microsystems и Parvus  -  изделия на базе оригинальных микрокомпьютерных модулей, устанавливаемых в конструктив PC/104.

 

Вначале было слово, а затем  -  длинное слово

Как известно, история повторяется, но если в первый раз происходит трагедия, то во второй она оборачивается фарсом. Большинство первых персональных компьютеров были 8-разрядными как по внутрипроцессорной архитектуре, так и по ширине шины передачи данных. Впоследствии, при появлении 16-разрядных систем, ширина шины также увеличилась вдвое. Однако производительность процессоров, потребности пользователей, а главное  -  наплевательское отношение программистов к ресурсам компьютера заставили вскоре перешагнуть и этот рубеж. В результате появилась сначала, как паллиативное решение, 32-разрядная шина EISA, а несколько позже  -  PCI.

Рис. 4. Конструктив PC/104+

Рост производительности встраиваемых одноплатных контроллеров по сравнению с системами общего применения запаздывает на 5 - 7 лет. Долгое время, пока ядром контроллеров являлись 8- и 16-разрядные процессоры 8088, 8С186 и 80С286, они находили применение исключительно в управлении дискретными и медленнотекущими процессами. Скорости 4 - 8 Мб/с вполне хватало для таких задач. В середине же 90-х годов, когда на рынке стали появляться дешевые высокопроизводительные низкопотребляющие процессоры и оперативная память, на базе формата PC/104 стало возможным конструирование систем для обработки сигналов, распознавания изображений, передачи данных и еще многого другого.

К тому же необходимо признать определенную избыточность современного графического интерфейса, тихой сапой проникшего в приложения реального времени и  -  как следствие  -  потребовавшего увеличения пропускной способности межплатного соединителя. В результате было принято единственно правильное решение: перенести в конструктив PC/104 высокопроизводительную периферийную шину PCI (по крайней мере, ее 32-разрядную и 33-мегагерцовую версию, обеспечивающую скорость передачи данных в пакетном режиме до 133 Мб/с), уже ставшую к тому времени стандартом де-юре и де-факто.

Таблица 3. Контроллеры семейства LittleBoard.

-----

* Определяется типом используемого процессора, но не уже 0...+55oC.

Такой подход позволил разработчикам новых плат убить сразу нескольких зайцев: во-первых, использовать привычные им по персональной вычислительной технике наборы микросхем; во-вторых, избежать необходимости в разработке и доведении до ума новых версий BIOS для их поддержки; и в-третьих, сделать конструктив PC/104 действительно независимым от архитектуры процессора.

Трудно не согласиться, что шина ISA хотя и являлась общепринятым стандартом, все же была отголоском содружества IBM и Intel. Попробуйте, например, найти ISA-совместимую шину на базе процессора ALFA. То-то же!

 

PCI для самых маленьких

Спецификация новой шины была официально анонсирована в 1997 году, хотя черновые ее варианты появились в конце 1996-го. Фактически она представляет собой симбиоз двух уже хорошо известных стандартов:

- PCI rev. 2.1  -  отсюда взяты электрические и временные характеристики шины;

- PC/104 v. 2.3  -  в плане существующего конструктива и 104-контактного разъема шины ISA.

К настоящему моменту распространена версия 1.1 документа, принятого в июне 1997 года.

Как показано на рис. 4, спецификация вводит новый, 120-контактный разъем на плате, расположенный напротив старого, 104-контактного. Это дополнительно увеличивает жесткость всего стека.

В принципе, изделия на базе PC/104+ выпускаются теми же фирмами и в составе тех же серий, что и PC/104, и, как правило, представляют собой:

- процессорные платы на базе Pentium;

- 100 Мбит/с Ethernet-адаптеры;

- производительные видеоконтроллеры;

- сигнальные сопроцессоры;

- фрейм-грабберы;

- твердотельные диски и SCSI-контроллеры;

- мегагерцовые многоканальные ЦАП-АЦП.

Аналогично коммерческой версии, нагрузочная способность PCI и особенности микросхем обвязки позволяют подключать до четырех плат PC/104+.

 

EBX: впряжем коня и трепетную лань

Всем хороша спецификация PC/104+, кроме одного: не все на такой плате умещается. В частности, не устанавливаются стандартные SIMM-модули, как правило, не хватает места для видеоадаптера, сетевого контроллера, невозможно разместить все стандартные разъемы. Разумеется, стек плат всегда можно нарастить в высоту, но в некоторых случаях это нежелательно.

Рис. 5. Размещение компонентов на плате формата EBX

Ввиду таких обстоятельств две фирмы - Ampro и Motorola  -  решили “удлинить кольчужку”: совместить в одной упряжке насыщенность периферией современных системных плат и специфические преимущества PC/104  -  PC/104+. Так появилась спецификация ЕВХ. Это уже не PC/104+, но еще и не AT (или, упаси Боже, ATX).

Необходимо отметить, что стандарт EBX  -  это ни в коей мере не новая архитектура, процессор или шина, а расширенное конструктивное исполнение. Эдакий переросток среди PC/104.

Как показано на рис. 5, Motorola и Ampro стандартизовали расположение некоторых базовых элементов.

A. Место для оперативной памяти типа 72-контактных SIMM-модулей. Применение унифицированных модулей дает возможность наращивать объем ОЗУ до значений, сравнимых с характерными для настольных персональных компьютеров. Это незаменимо для систем, работающих со значительными объемами данных, например при обработке изображений.

B. Унифицированный силовой разъем  -  подобно разъему на платах формата AT.

C. Как правило, дешевые системы управления на базе микроконтроллеров не имеют внешнего интерфейса либо обходятся обычным, VT100-совместимым терминалом, подключаемым к порту RS232. Однако ниша EBX расположена несколько выше: решаемые с помощью таких компьютеров задачи требуют современного графического интерфейса и, следовательно, подключения монитора на базе электронно-лучевой трубки или, гораздо чаще, ЖК-панели. Так на плате появилась зона для размещения видеоконтроллера.Чаще всего, в этом качестве используется микросхема C&T65545, позволяющая работать как с аналоговым SVGA-интерфейсом, так и с шиной ЖК-панели. Естественно, никто не требует от управляющего компьютера возможностей студийной графической станции. Поэтому объем видеоОЗУ ограничен одним-двумя мегабайтами.

D. Здесь обычно располагаются микросхемы “обвязки”.

E. Область коммуникационных разъемов. Как правило, если плата оснащена Ethernet-контроллером, здесь размещается сетевой разъем RJ-45 и розетка для подключения трансмиттера “толстого” кабеля.

F. Это законное место для установки плат в формате PC/104  -  PC/104+. Поскольку между платами остается промежуток в полтора сантиметра, его используют для размещения разъемов ПЗУ, flash-дисков и карточек PC-bus.

G. “Кармашки” для доступа к боковым разъемам, которые могут быть на платах расширения.

H. В настоящее время нет смысла выпускать на базе EBX системы уровня более низкого, чем i486: не та производительность. В то же время младшие модели процессоров отличаются немаленькими размерами и высоким потреблением. Большинство из них требуют мощного радиатора, с чем и связаны столь значительные размеры площадки под него.

I. На платах обычно имеется на удивление полный комплект интерфейсных шин - SCSI, EIDE, FDD, Bidirectional Centronix, USB и от двух до четырех COM-портов. В этой области сконцентрированы их выходные разъемы.

В связи со значительными размерами платы крепятся в восьми точках, четыре из которых расположены по краям платы и еще четыре соответствуют PC/104.

В настоящее время действует спецификация 1.1, принятая в июле 1997 года. Она включает в себя:

IEEE P996 Draft Specification;

PC/104 and PC/104-Plus Specification;

PCI Local Bus Specification;

PC Card Standard.

 

LittleBoard = EBX(Ampro)

В настоящее время фирма Ampro выпускает семейство плат LittleBoard, соответствующее спецификации EBX. Оно включает контроллеры на 486-х процессорах и Pentium (табл. 3).

Заметьте, что все модели имеют в своем составе Ethernet-контроллер и как минимум одно посадочное место для Flash-памяти. Последние модификации оснащены слотом PC-bus. Если учесть, что применение механических накопителей во встраиваемых и промышленных системах ввиду их низкой надежности не приветствуется, альтернативные методы загрузки и хранения данных расширяют нишу применения LittleBoard.

Рис. 6. Отладчик для LittleBoard P5i

Так называемый “байтовый” разъем допускает установку самых различных систем запоминающих устройств  -  ROM, EPROM, Flash, NOVRAM и т. д.

В последнее время в качестве долговременной памяти стали довольно широко использоваться твердотельные накопители типа Disk-on-Chip фирмы M-systems. Фактически это обычная микросхема Flash-памяти, снабженная встроенной BIOS и необходимой “обвязкой”, что позволяет эмулировать с ее помощью жесткий диск без каких бы то ни было драйверов и хитроумных контроллеров. Особенно ценно наличие начального загрузчика операционной системы, например MS-DOS, Windows CE и т. п. Обычной емкости микросхемы в 72 Мб вполне достаточно для размещения ОС и большинства управляющих приложений. Ранее для этой цели использовались несравнимо более дорогие карты в формате PCMCIA (PC-bus) или платы расширения PC/104.

Естественно, как прямой потомок программируемого контроллера LittleBoard унаследовал все встроенные средства контроля работоспособности типа сторожевого таймера и системы обнаружения сбоя питания.

В заключение хотелось бы сказать пару слов по поводу программного обеспечения и систем отладки для перечисленных контроллеров. Все они являются DOS- и QNX-совместимыми без каких-либо купюр и ограничений, включая возможность загрузки операционной системы с Flash-диска. Таким образом, их программирование может осуществляться самыми обычными средствами, типа Borland Cи++ и даже Ассемблера или Паскаля.

Естественно, что все специфические компоненты вроде плат видеоввода и УСО поставляются совместно с библиотеками функций и подробным описанием их вызова.

Поскольку программисты всего мира все больше признают API Win32 в качестве рабочего стандарта, нельзя не упомянуть и об ОС РВ Windows CE. Все платы на базе процессоров от 386 до Pentium позволяют использовать генерации этой системы в полном объеме  -  с графическим интерфейсом пользователя, поддержкой IrDA, Ethernet, ПЗУ и Flash. Недавно фирмой Bsquare выпущен Windows CE Express, поддерживающий архитектуру PC/104.

Очень часто оказывается, что единственная и неповторимая плата УСО или головка эмулятора существует только в формате ISA/PCI, а разработка ее аналога в формате PC/104 еще не закончена (а то и вообще не начиналась и даже не планируется). Отладка нестандартного изделия в этом случае связана с целым рядом неудобств, вызванных необходимостью самостоятельно подключать питание, индикацию, управляющие кнопки, а это иногда ведет к замыканию проводов и выходу из строя отлаживаемых плат. Специально для таких случаев фирма Ampro выпускает отладочные модули под все описанные спецификации. Обычно такой модуль объединяет в небольшом конструктиве посадочное место для целевого изделия, блок питания, устройства начальной загрузки, набор разъемов и переходник к ISA/PCI. На рис. 6 показано именно такое устройство, применяемое для отладки плат формата LittleBoard.

И наконец, самое последнее: стандарты PC/104 и PC/104+ давно уже вышли за рамки узкокорпоративных и продолжают свое победное шествие и в нашей стране. Тем же, чьи сомнения относительно их применения еще не рассеяны, остается только посоветовать пересчитать количество их реализаций (они приведены на www.pc104.org) или, в крайнем случае, заглянуть на www. micromax.com.     

С автором статьи можно связаться по телефону: (095) 148-1617 или по E-mail: eugenes@micromax.ru.