Embedded systems что это
Embedded.Systems
Polaroid Camera
This project is creating a polaroid camera using a ARM Cortex M4 MCU and thermal printer (receipt printer). TTo insert highlight code inside of a post, it’s enough to use some specific tags, has directly described into the Jekyll documentation. In this way the code will be included into a.
Welcome To the Blog
Hello and welcome to the embedded.systems blog. Thank you for visiting out website. We are all recent graduates that are passionate about working with embedded systems and more. Meet the Authors: Sikenderali Ashraf Sikender likes meowers. Richard Li Richard likes board games. Tyler Ta Tyler likes bread. Nino Teruya Nino.
Typograhy example
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Id, aliquam magni et officiis nemo nihil aliquid placeat alias. Eum voluptates ducimus, nobis ex illum laboriosam quidem corrupti impedit ratione in voluptatum amet beatae facilis temporibus voluptate praesentium voluptatibus! At ab, iusto error amet eveniet debitis ipsa recusandae possimus minima sunt.
Code Syntax
Hello World
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Totam quasi maxime quas repudiandae nam id temporibus, at et non officiis consectetur voluptate deserunt officia minima placeat tempore illum asperiores quo assumenda praesentium? Facilis libero error ratione doloribus debitis delectus asperiores minima ab velit quam. Natus ea, vero totam recusandae autem.
Встраиваемые системы
Встраиваемые системы (embedded system) – специализированные системы, предназначенные для работы в устройстве, которым они будут управлять. Здесь все узлы функционируют совместно, согласно набору правил на основании согласованного и утвержденного плана. С их помощью выполняют организацию и реализацию одного или ряда заданий. Они работают, как и часы: если один из компонентов перестанет выполнять свои обязанности, изделие не сможет функционировать. То есть все элементы зависят друг от друга. Только вместо часовых деталей в микропроцессорной embedded system комбинируется аппаратное и программное обеспечение. Познакомимся с ними более подробно.
Что представляет собой встроенная система
Любые мультимедийные системы, используемые повсеместно в современной жизни, позволяют пользователю подбирать характеристики воспроизводимый аудиофайлов или просматриваемой картинки. Лазерные принтеры, помимо опции самой печати еще связаны с компьютерной системой, способной обрабатывать неисправности, считывать информацию. Система пожарной сигнализации идентифицирует задымление, а также передает сигнал на пульт, включает опцию тушения и пр. Это только несколько примеров встроенной системы. Она построена на микропроцессорах, которые и будут руководить работой каждого отдельного компонента, размещенного внутри нее.
Изначально компьютерные системы создавались для автоматизации вычислительных задач. Они работали по заданному алгоритму. Но, проходя этапы развития, они стали более функциональными. Все встраиваемые системы, которые используются сегодня представляют собой совмещение информатики и автоматизации. Сюда входит аналитика и оценка компьютеризированных систем, выполняемая на реализации управления процессами, элементами и требованиями, которые предъявляются к их программному обеспечению.
Любая современная компьютерная система базируется на двух основных направлениях в области специализированных решений для контроля:
Только при их комбинации удается удовлетворить постоянно возрастающие запросы к контролю качества и получить узкоспециализированные системы, выполняющие полный комплекс управления объектами или процессами, связанными с ними.
Все запросы, которым должны удовлетворять встраиваемые системы управления строго стандартизированы. То есть это не классический персональный компьютер, выполняющий разные функции, а нечто более объемное. Ее микропроцессор или микроконтроллер заранее программируются на реализацию одного или нескольких конкретных заданий. Некоторые модели, исходя из их предназначения, могут иметь собственное программное обеспечение, то есть прошивку. Она характерна только для него. В других же это может быть операционная система, которая базируется на узком программном обеспечении. Во многом это зависит от требований по надежности, предъявляемых к embedded system.
Практика показала, что максимальной стабильностью и безопасностью отличаются встроенные системы с максимально простым, но вместе с тем узкоспециализированным программным обеспечением. Они же быстрее всего дают ответ на непредвиденные ситуации. Дополнительно надежность узла можно повысить путем разведения больших задач на мелкие. Еще можно использовать и резервирование, предполагающее применение двух отдельных абсолютно одинаковых устройств для решения одной задачи. В случае, если одно из них не будет работать, второе возьмет на себя его обязательства.
История встраиваемых систем
Прежде, чем дальше разбираться в том, что такое embedded systems, познакомимся вкратце с историей их появления. Впервые рынок узнал о них в 60-х годах прошлого столетия. Тогда, Чарльз Старк Дрейпер, работая в Массачусетском технологическом институте создал современную встроенную систему вычислений, работающую в режиме реального времени для космической программы Apollo. И название она получила соответствующее – Apollo Guidance Computer. Она создавалась с единственной целью – автоматизировать сбор данных и выполнение ключевых расчетов для лунного и командного модуля к космическим кораблям.
Следующий этап развития встраиваемых систем начался в 1971 году. Это уже была разработка компании Intel, которая выпустила первый коммерческий микропроцессор (Intel 4004). Работал он совместно с внешней памятью и микросхемами поддержки.
Далее было появление стандарта на программируемые микроконтроллеры в 1978 году. Он был разработан Национальной ассоциацией производителей машиностроения. Благодаря ему, в первой половине 80-х была модифицирована конструкция систем. Теперь все компоненты ввода, вывода и памяти были встроены в один чип вместе с управляющим процессором. Так и появились современные микроконтроллеры.
Далее технология развивалась очень быстро:
Сегодня использование встроенных систем чрезвычайно разнообразно. Они есть во всех аспектах современной жизни, начиная от устройств, считывающих кредитные карты и до смартфонов, светофоров, термостатов. Согласно прогнозам аналитиков, уже к 2030 году рынок таких систем превысит 40 млрд. долл. Эта цифра будет расти и дальше.
Характеристики
Среди основных характеристик любой, встраиваемой в управляемое устройство системы стоит выделить:
Архитектура встраиваемой системы
Встраиваемые системы включают в себя следующие компоненты:
Разновидности встраиваемых систем
Выделяют 3 типа embedded systems:
Области применения
Смартфоны и другие гаджеты, телевизоры, термостаты, системы кондиционирования воздуха, бытовая техника, информационные боксы, банкоматы, терминалы самообслуживания – это только некоторые варианты встроенных системы. Без них невозможно представить работу спутниковых навигационных систем, копировальных аппаратов, светофоров, охранной, противовзломной, противопожарной сигнализации и пр.
Индивидуальные разработки систем позволяют создавать решения любого уровня сложности. Это могут быть как самые простые пользовательские узлы, построенные на базе микроконтроллеров минимальной мощности, так и передовые многопроцессорные распределительные контуры, применяемые в робототехнике, телекоммуникации, авиации, тепловой энергетике, космической отрасли, железной дороге.
В отличие от иных разновидностей компьютерных систем, встроенные наделены особым, специализированным характером. На более высоком уровне находится и качество их программного обеспечения, и аппаратные компоненты.
Наибольшую востребованность embedded systems получили в:
Но, вне зависимости от сферы применения, все встроенные системы перед применением должны проходить тщательное тестирование, позволяющее установить их стабильность. Следует знать, что даже мельчайшие программные недочеты могут обернуться настоящей катастрофой с непредсказуемыми последствиями.
К таким узлам предъявляются чрезвычайно жесткие требования. Они должны отличаться высокой отказоустойчивостью даже при работе в условиях повышенной загрязненности, запыленности, при ударах и вибрациях, перепадах температур, повышенной влажности, пиковых нагрузках. Даже в необслуживаемых режимах они должны работать стабильно и максимально долго, поддерживая специализированные интерфейсы для ввода/вывода.
Преимущества и недостатки
К преимуществам встраиваемых систем относят:
Но, наряду с более, чем весомыми преимуществами, embedded systems имеет и ряд недостатков, которые надо принять во внимание еще до разработки и запуска проекта. К таким моментам относят:
Но большинство этих недостатков минимизируются профессиональной разработкой и внедрением проектов на основе встроенной системы. Если вам нужны надежные, профессиональные решения, обращайтесь в «ОЭС Спецпоставка». Специалисты возьмут на себя полный комплекс работ, начиная от проектирования и до разработки, пайки плат, подготовки сопроводительной технической документации.
В компании «ОЭС Спецпоставка» вы сможете купить встраиваемые системы мировых производителей: RTD Embedded, Advantech, ADlink, Avalue, AAEON, DFI, VIA, Perfectron, SBS, Windbond, YDSTECH, ARBOR, LEXCOM и других производителей.
Более подробно об особенностях сотрудничества можно узнать по телефону или через форму обратной связи.
Что такое встроенные системы, где они применяются и как разрабатываются
В этой статье представлена информация о различных аспектах современных встроенных систем.
Что такое встроенная система?
Сегодня сложно представить современное мультимедийное электронное оборудование без возможности свободно выбирать параметры музыки, которую вы слушаете, или изображения, которое вы смотрите. Это возможно благодаря использованию микропроцессоров, управляющих работой этих устройств и размещенных внутри них (отсюда и название: Embedded System).
Компьютерные системы как сложные цифровые системы впервые были использованы для автоматизации вычислительных процессов по определенному алгоритму. Однако автоматизация может касаться не только вычислительных процессов. Следовательно, отправной точкой для разработки встраиваемых систем являются две дисциплины: автоматизация и информатика.
Комбинация методов и инструментов, используемых как в автоматизации, так и в информационных технологиях, позволила достичь совершенно нового качества. Несомненно, основной исходный контент содержится в термине: «Компьютерные системы управления». Они включают анализ и оценку компьютерных систем с точки зрения реализации управления объектами и процессами, а также необходимых требований к программному обеспечению для этих систем.
Развитие компьютерных систем и растущие требования к качеству контроля привели к появлению двух направлений в специализированных решениях для контроля. Это программируемые логические контроллеры (ПЛК) и микроконтроллеры. На основе этих тенденций создаются специализированные системы, которые выполняют все функции управления объектами или процессами и тесно связаны с ними.
Встроенная система должна соответствовать определенным требованиям, которые строго определены. Поэтому ее нельзя назвать типичным многофункциональным персональным компьютером.
Каждая встроенная система основана на микропроцессоре (или микроконтроллере), запрограммированном на выполнение ограниченного числа задач или даже только одной задачи.
В зависимости от назначения он может содержать программное обеспечение, предназначенное только для данного устройства (прошивка) или операционная система со специализированным программным обеспечением. Обычно это определяется степенью надежности, которую должна предложить встроенная система.
Как правило, чем менее сложным и специализированным является программное обеспечение, тем надежнее система и позволяет быстрее реагировать на критические события.
Надежность системы можно повысить за счет разделения заданий на более мелкие подсистемы, а также за счет резервирования, которое может заключаться в использовании двух идентичных устройств для одной задачи, одно из которых берет на себя задачи другого в случае его сбоя.
Где применяются встроенные системы?
Встроенные системы используются во многих сферах жизни, и область их применения, наряду с техническим прогрессом, постоянно расширяется.
Такие решения можно найти в измерительном оборудовании, в том числе осциллографах, анализаторах спектра, в автомобилях (например, бортовые компьютеры), компьютерном оборудовании (жесткие диски, оптические приводы, маршрутизаторы), в решениях для телекоммуникаций, в так называемых интеллектуальных зданиях, в устройствах, используемых в медицинской диагностике, системах управления полетом, а также, естественно, в станках с ЧПУ, роботах и промышленных машинах и ряде систем управления в автоматизации.
Главной особенностью, которая отличает встроенные системы от других компьютерных систем, является, помимо специализированного характера, качество программного обеспечения и используемых аппаратных компонентов.
История встроенных систем
Первой современной встроенной вычислительной системой реального времени был компьютер Apollo Guidance Computer, разработанный в 1960-х годах доктором Чарльзом Старком Дрейпером из Массачусетского технологического института для программы Apollo. Управляющий компьютер Apollo был разработан для автоматического сбора данных и выполнения критически важных расчетов для командного модуля Apollo и лунного модуля.
Apollo Guidance Computer
В 1978 году Национальная ассоциация производителей машиностроения выпустила стандарт для программируемых микроконтроллеров, улучшив конструкцию встроенных систем и к началу 1980-х компоненты системы памяти, ввода и вывода были интегрированы в тот же чип, что и процессор, образуя микроконтроллер.
Встроенная система на основе микроконтроллера будет впоследствии включена во все аспекты повседневной жизни потребителей, от устройств чтения кредитных карт и сотовых телефонов до светофоров и термостатов.
Как работает встроенная система?
Встроенные системы управляются микроконтроллерами или процессорами цифровых сигналов (DSP), специализированными интегральными схемами (ASIC), программируемыми логическими матрицами (FPGA). Эти системы обработки интегрированы с компонентами, предназначенными для работы с электрическими и / или механическими интерфейсами.
Инструкции по программированию встроенных систем, называемые микропрограммами, хранятся в постоянном запоминающем устройстве или микросхемах флэш-памяти, работающих с ограниченными аппаратными ресурсами компьютера. Встроенные системы соединяются с внешним миром через периферийные устройства, связывая устройства ввода и вывода.
Как разрабатываются встроенные системы?
Проектирование и создание встроенных систем не укладывается в существующие рамки стандартных дисциплин, с которыми эти решения связаны. Обязательно требуются знания как электроники, так и информатики. Несомненно, наиболее правильным решением было бы заняться вопросами разработки встраиваемых систем после получения подготовки также в области автоматизации и управления, а также мехатроники и робототехники.
Проектирование встроенной системы включает в себя как разработку специального аппаратного уровня, так и соответствующего программного обеспечения. В последнем можно разделить системную область и область приложения.
Системный уровень создает среду выполнения для встроенного приложения и, в зависимости от области приложения, имеет разную степень сложности. Для простых встроенных систем с закрытой не масштабируемой архитектурой системный уровень не является строго отдельным и не содержит механизмов для поддержки разработки приложений.
Передовые системы для медицины, авиации, телекоммуникаций и робототехники реализованы на основе специальных операционных систем или библиотек, которые содержат механизмы и функции, облегчающие разработку приложений и тестирование системы. Тем не менее, разработчик должен расширить системный уровень специальными драйверами.
Популярный онлайн видео курс:
Успех всего проекта во многом зависит от функциональности и удобства использования приложения. Создание встроенной системы требует анализа требований, разработки соответствующей архитектуры и ее сознательной декомпозиции.
Любая ошибка или игнорирование определенных требований на начальных этапах проекта может привести к провалу всего проекта. Плохие дизайнерские решения часто влекут за собой необходимость модификации не только программного, но и аппаратного обеспечения.
В случае систем для критических приложений также существует проблема безопасности, то есть в основном устойчивость системы к сбоям оборудования, электромагнитным помехам и ошибкам реализации.
В случае, если спроектированная система является сложной, например, система управления роботом на производственном предприятии, проект превращается в сложное логистическое мероприятие, требующее координации работы нескольких различных команд инженеров.
Будущие тенденции встраиваемых систем
Ожидается, что индустрия встраиваемых систем будет продолжать быстро расти благодаря постоянному развитию искусственного интеллекта (AI), виртуальной реальности (VR) и дополненной реальности (AR), машинного обучения, глубокого обучения и Интернета вещей (IoT).
В основе встроенных систем ближайшего будущего будут лежать такие тенденции, как снижение энергопотребления и повышение безопасности встроенных устройств, а также активное использование облачных технологий, приложений для глубокого обучения и инструментов визуализации данных в режиме реального времени.
Встраиваемые системы: Windows специального назначения
О могущественные хабрамэн и прекраснейшие хабравимен! Ничтожный заметил, что сура о блистательной Windows Embedded ещё не записана в книге мудрости хабра. Да будет дозволено мне, недостойному, поведать вам одну поучительную историю о том как был построен и внедрён особо пуленепробиваемый Windows ® ™ на объектах одной российской железнодорожной корпорации.
Как мы дошли до жизни такой
Итак, одним утром, в нашу скромную обитель Системного ПО прибыл гонец от программистов с ужасными и печальными новостями. Истинно говорю вам — программцы в командировке не смогли обновить ПО на рабочем месте, т.к. оное обуял шайтан и заселил его вирусами, троянами, порнобаннерами и контерстрайком (сауирщенно неуиновные пользователи были сауирщенно ни при чём).
ПО представляет собой АРМ электромеханика СЦБ, написано на VC++ 6 + MFC + WINAPI.
Наш мудрейший халиф, узнав о таком непотребстве, созвал диван. И так говорили придворные мудрецы и звездочёты:
Антивирус не был установлен по причине отсутствия на станциях интернета (станции раскиданы по всей поверхности России и ездить с офлайн базой для обновления — как-то не вариант). На некоторых станциях есть выход в интранет, где есть корпоративный антивирус, но во-первых: не на всех, во-вторых: антивирус там — хтонический Symantec, старый и добрый.
Спустя некоторое количество служебок, было принято решение заменить десктопный Windows на что-то более прочное и надёжное, но при этом win32-совместимое. Из всей массы подходящих платформ был выбран Windows XP Embedded, т.к. по нему уже имелись наработки да и вообще, классная себе такая система.
Windows XP Embedded — это встраиваемая компонентная операционная система на базе Windows XP Professional Edition и предназначена для применения в различных встраиваемых системах: системах промышленной автоматизации, банкоматах, медицинских приборах, кассовых терминалах, игровых автоматах, VoIP-компонентах и т. п. Windows XP Embedded включает дополнительные функции по встраиванию, среди которых фильтр защиты от записи (EWF и FBWF), загрузка с флеш-памяти, CD-ROM, сети, использование собственной оболочки системы и т. п.
В настоящий момент известна как Windows Embedded Standard.
Windows on steroids
Но это всё скучно и просто. Начальство прониклось идеей модульного ПО™, которая заключается в разделении прикладного, системного ПО и конфигурации на «модули» — образы ФС, объединяющие ПО по функциональным признакам. Плюсы такого подхода:
Очевидных минусов вроде бы нет, казалось бы — внедряй и радуйся. Но то, что для QNX (изначально модульная система разрабатывалась для наших промышленных компьютеров) было просто и естественно в Windows стало адовой мигренью и выглядело как попытка скрестить морского ежа с подъёмным краном. В итоге реализовать таки получилось, но обо всём по порядку.
Усекновение Windows
Проблема отключения PnP-устройств может быть решена несколькимиспособами (а ещё есть devcon), но этот меня привлёк своей глобальностью, т.е. заодно с USB-накопителями будут отключены любые другие несанкционированные периферийные устройства, но, при этом сохранится возможность заменить USB-мышь\клавиатуру (т.к. драйвер имеется в системе и он содержит цифровую подпись — такие драйвера устанавливаются автоматически)
Монтирование образов
Поиски ПО для монтирования образов в Windows были долгими и мучительными. Попадались только реализации RAM-drive, что безусловно классно, но не то. Вспомнил, что в комплект Windows Virtual Server включена утилита для монтирования файлов vhd, но как добавить её в мою WinXP и легально ли это вообще, мне так и не открылось. Проект века уже почти накрылся медным тазом, я прикидывал как бы отделаться меньшей кровью и избежать разработки собственного драйвера, как вдруг в гугле всплыла ссылка на отличнейший filedisk. Подходит по всем статьям — может монтировать образы как логические диски (эмулировать носитель он не умеет, но это и не требовалось), выполнен в виде драйвера, что позволяет легко добавить в проект XP Embedded, из коробки содержит консольную утилиту для управления дисками — то что надо для использования в стартовых скриптах. В общем — стопроцентное попадание.
Драйвер установлен, но где же взять сами образы? Берём dd for windows и создаём из её виртуального /dev/null образы требуемого размера. Подключаем их с помощью filedisk, видим логические диски без ФС, создаём на них NTFS, заполняем содержимым.
На одном из образов я разместил стартовые скрипты, которые запускаются после логона и производят некоторые настройки(установка IP-адреса, разрешения экрана и т.п. из конфиг-файла). Ясно, что к моменту логона, образы уже должны быть примонтированы. И тут я перепробовал кучу вариантов — Schtasks, который позволяет выполнять задачу при логоне (но он срабатывал как-то далеко не всегда), загонял скрипт монтирующий диски в сервисы с помощью sc — при этом, содержимое образов было недоступно пользовательским аккаунтам от имени которых запускалось прикладное ПО (как вариант можно было бы перенести задачи из скриптов в службу, но скриптоложство мне почему-то милее этого бездушного C++). В итоге сколхозил — AutoExNt выполняет монтирование перед логоном, а задачи конфигурирования системы исполняются с помощью зашифрованных cpau-заданий от имени администратора (т.к. автологон происходит под аккаунтом обычного пользователя). Это был первый из стабильно работающих вариантов, а отладка к тому моменту так меня достала, что плюнул на уродство способа и оставил как есть.
Дополнительно, разработал небольшую простую утилитку автозапуска, т.к. из проекта был исключён Explorer Shell и ключи авторана в реестре никто не обрабатывал, а программы на старте запускать кому-то надо было.
На этом мои мучения с системным ПО Windows в принципе окончились, настало время подумать как же вся эта хрень будет устанавливаться на целевую машину.
Развёртывание
Windows XP Embedded не содержит в себе инструментов для разметки и форматирования диска, в отличие от обычной Windows XP. Т.е. установка XPe заключается в копировании структуры каталогов проекта в корень раздела, отформатированного в FAT32/NTFS и помеченного как активный (флаг boot установлен). Комплект поставки XPe включает в себя диск WinPE, который содержит необходимые для разметки утилиты, но сценарии применения этого диска довольно туманны(например, он не может быть использован как диск восстановления). Похвалив про себя такую заботу о пользователях, я решил вообще не связываться с продукцией Microsoft для развёртывания XPe (хотя есть вроде бы бесплатный Windows AIK, но по предыдущему опыту попыток разобраться в лицензионных ограничениях продуктов Microsoft было принято решение поискать чего-то на стороне).
Решил попытать счастья с GNU/Linux, т.к. драйвер ntfs-3g уже довольно давно был стабильным и вполне себе работал (и, кстати, в довольно странных местах — по блажи Realtek, в SDK для их мультимедиа-платформ используется как ФС по умолчанию для внешних накопителей). Взял Live-CD Ubuntu LTS, очистил его от логотипов и упоминания Ubuntu (ибо для глубокой модификации системы Canonical выдвигает такие требования) и начал кастомизировать. Выбор дистрибутива был обусловлен личными предпочтениями.
Первая версия среды развёртывания представляла из себя bash-скрипт, который общался с пользователем с помощью zenity. Простенько и со вкусом. Была забракована, как недостаточно божественная в плане UI.
Вторая версия была написана на Mono (C# — корпоративный стандарт) и содержала в себе чуть ли не все графические элементы GTK. Высокая комиссия отметила, что UI по-прежнему недостаточно божественен, но таки жизнеспособен.
Сама процедура установки состояла из вызова внешних утилит — parted для разметки, mkfs.ntfs из пакета ntfsprogs(ntfstools) для создания ФС и rsync для копирования данных с установочного носителя.
Дальше — ребут и переход непосредственно к развёртыванию Windows Embedded.
Заключение
Сейчас Windows XP Embedded (Windows Embedded Standard 2009) стремительно теряет актуальность (хотя поддержка будет продолжаться до 2015 года) — на смену ей пришла Windows Embedded 7, которая гораздо, гораздо, гораздо удобнее XPe, однако разработкой с её использованием занимается мой коллега, я же описал (как мог, хе-хе) собственный опыт. Надеюсь кто-то найдёт что-нибудь полезное в этом сборнике вредных советов.
В завершении приведу список полезных ресурсов по Windows Embedded: