Рис. 1.1. Области применения встраиваемых систем
1.2. Особенности встраиваемых систем
Встраиваемые системы существенно отличаются от компьютеров общего применения. В данном параграфе мы обсудим специфические проблемы, которые должны быть решены разработчиком встраиваемой системы на начальном этапе проектирования.
1.2.1. Работа в реальном времени
Когда мы говорим, что встраиваемая система должна работать в реальном масштабе времени, мы подразумеваем, что система должна производить определенные вычисления за строго определенные временные интервалы. Если система не может произвести необходимые вычисления за отведенный временной интервал, то в лучшем случае объект ее управления будет работать с низкими техническими характеристиками, а в худшем случае будет создана аварийная ситуация. Используя термин "вычисления в реальном времени", мы имеем в виду, что интервал времени, предоставляемый для этих вычислений, ограничен. При этом его численное значение определяется конкретной задачей и может существенно различаться для разных систем. Например, система антиблокировки колес автомобиля должна опросить датчики состояния каждого из четырех колес (колесо скользит или катится) и выработать необходимые сигналы для приводов тормозов в течение нескольких миллисекунд. О такой задаче мы говорим, что она исполняется в реальном времени. Другой пример - система GPS навигации автомобиля, которая должна обновлять карту на дисплее в кабине водителя за несколько секунд. Это тоже будет система реального времени. Однако вычислительную систему, которая рассчитывает оптимальные коэффициенты сложного цифрового фильтра в течение трех часов, мы не называем системой реального времени, поскольку время ее исполнения важно, но не критично для пользователя.
Познакомившись с терминологией, давайте обсудим, какой должна быть встраиваемая система для того, чтобы успешно работать в реальном времени. Во–первых, система должна быть разработана таким образом, чтобы необходимый цикл вычислений укладывался в отведенный временной интервал. Для этого необходимо выбрать соответствующую вычислительную производительность микроконтроллера, разработать эффективный по быстродействию алгоритм, разработать схемы интерфейсов с минимально возможными задержками в передаче сигналов. Во–вторых, встраиваемая система должна обладать устойчивостью по отношению к внешним данным. Допустим, для формирования результата система должна получать данные извне. А эти данные не пришли вовремя. Тогда система не может выдать необходимый результат в требуемый момент времени, однако она не должна "зависнуть". Она должна продолжить поставлять результаты в реальном времени, но в ином, возможно сокращенном виде.
В противоположность системам реального времени компьютеры общего назначения не имеют жесткого ограничения по времени выполнения программы. Долгое ожидание завершения расчетов может расстроить пользователя, но не приведет к заметным негативным последствиям. А вот если встроенная в медицинское оборудование система не выполнит задачу за отведенный для нее срок, то это может закончиться в некоторых случаях и смертельным исходом. Поэтому организация работы встраиваемых систем в реальном времени является одной из основных проблем проектирования.
1.2.2. Миниатюризация размеров и процесс тестирования
Многие современные системы должны встраиваться в достаточно миниатюрные устройства, такие как мобильный телефон, пульт управления телевизором, датчик расхода воды и т.д. Очень часто геометрия печатной платы системы определяется корпусом того устройства, для которого она предназначается. Поэтому миниатюризация исполнения – одна из проблем разработчика современных встраиваемых систем.
Другая важная проблема - учет на начальной стадии разработки способов тестирования готового изделия, как на этапе разработки, так и на этапе производства. Большинство встраиваемых систем должны иметь внутренние тестовые программы, которые позволяют быстро и с большой степенью достоверности убедиться в работоспособности программы управления.
1.2.3. Минимизация энергии потребления
Разработчики компьютеров общего назначения (за исключением ноутбуков) уделяют значительно меньше внимания вопросам энергопотребления устройства, нежели разработчики встраиваемых систем. Дело в том, что, во–первых, персональные компьютеры питаются от централизованной сети, которая не накладывает существенных ограничений на энергию потребления, и, во–вторых, объем корпуса персонального компьютера достаточно велик для размещения в нем устройства принудительного охлаждения. В противоположность компьютерам общего назначения, современные встраиваемые системы должны работать в условиях резкого ограничения потребляемой энергии, поскольку число встраиваемых систем с автономным питанием непрерывно возрастает. К тому же пользователи предъявляют все большие требования к миниатюризации систем. Вспомните современный мобильный телефон, карманный электронный органайзер, CD–плеер.
Для ограничения энергии потребления разработчики используют разные решения. Одним из них является снижение частоты тактирования МК. Однако такая мера имеет ограничение, поскольку для любой задачи реального времени имеется ограничение снизу по вычислительной производительности. Другим решением (или дополнительным к первому) является временное отключение питания тех периферийных модулей МК, которые в данный момент исполнения программы не используются. Аппаратные средства современных МК предоставляют такую возможность. Последний способ требует особого внимания разработчика, поскольку отключение какого–либо модуля в составе системы может привести к изменению электрических характеристик ее входов и выходов, которое не должно сказаться на работоспособности системы в целом.
1.2.4. Интерфейс пользователя и интерфейс сопряжения с объектом
Любая встраиваемая система должна взаимодействовать с пользователем или с окружающей средой. Например, перемещающийся в пространстве робот (рис. 1.2) должен с помощью инфракрасных датчиков обнаруживать препятствия и обходить их. Микроволновая печь должна взаимодействовать с человеком посредством кнопок режимов, установленных на передней панели прибора. А система охранной сигнализации должна взаимодействовать как с датчиками сохранности помещения, так и с органами управления человеком. Подобные примеры могут быть продолжены. И на их основе можно сделать вывод, что для разработчика встраиваемых систем вопросы выработки решений по взаимодействию с человеком и с объектом управления являются чрезвычайно важной задачей. Причем возможные решения лежат на стыке выбора типа датчиков (включая принцип действия датчика), дизайн–проекта, конструктивного исполнения, аппаратного решения электронных блоков и, наконец, алгоритмов обработки информации.
Рис. 1.2. Робот, способный двигаться сквозь лабиринт
1.2.5. Многозадачность
Большинство встраиваемых систем должно обслуживать в реальном времени сразу несколько внешних устройств. Причем периоды повторения алгоритмов вычисления в реальном времени для каждого из устройств различаются. При разработке таких систем разработчик стоит перед дилеммой, использовать для решения задачи один высокоскоростной МК, или сделать мультипроцессорную систему, в которой для каждой задачи будет использован собственный микропроцессор или микроконтроллер.
1.2.6. Минимизация стоимости
Большое количество встраиваемых систем предназначено для управления недорогими устройствами массового спроса, такими как СВЧ печь, мобильный телефон и т.п. Успех реализации таких устройств будет определяться их конечной стоимостью, что накладывает жесткие ограничения на стоимость встраиваемой системы. Каждая встраиваемая система имеет множество возможных решений, как на уровне способа реализации (микроконтроллер или программируемая логическая матрица, вариации интерфейсных схем к тому и другому решениям), так и на уровне выбора конкретной элементной базы. Поэтому выбор правильной стратегии проектирования с целью минимизации стоимости - одна из основных проблем проектирования встраиваемой системы.
1.2.7. Ограничение объема памяти
Если Вы достаточно грамотный пользователь персонального компьютера, то хорошо знакомы с постоянным увеличением объема памяти ПК, которое не сопровождается пропорциональным увеличением ее стоимости. Поэтому программисты для ПК совершенствуют свои продукты, в том числе, используя без ограничения увеличение объема памяти программ. Встраиваемые системы не предоставляют разработчику такой возможности, поскольку объем резидентной памяти МК оказывает существенное влияние на его стоимость. Современная элементная база позволяет выполнить мобильный телефон с несколькими Гб внутренней памяти, однако какое количество покупателей пожелает купить достаточно дорогое устройство? Поэтому разработка решений с минимизацией затрат памяти - одно из направлений совершенствования встраиваемых систем.