Встроенная система☛Информационные технологии ✎ |
Поскольку встроенная система предназначена для выполнения ограниченного количества функций, разработчики могут ее оптимизировать, уменьшая стоимость продукта, или увеличивая надежность и быстродействие. Некоторые встроенные системы изготавливаются в большом количестве, что стимулирует максимально уменьшать их себестоимость.
Физически, встроенные системы бывают маленькими, как портативные устройства (например, цифровые часы или MP3-плееры) или такими большими, как светофоры, устройства управления производством, или системы управления ядерными электростанциями. Соответственно, сложность может быть низкой, как с одним чипом управления, так и очень высокой, со многими устройствами, периферийными устройствами, компьютерными сетями и т.д..
Вообще говоря, понятие «встроенная система» не является четко определенным, поскольку многие системы имеют некоторые возможности программирования. Например, карманные компьютеры имеют некоторые элементы от встроенных систем-такие как операционные системы и микропроцессоры-но они не являются чисто встроенными системами, поскольку позволяют загрузки новых приложений и подключения новых периферийных устройств.
Простые встроенные системы используют кнопки, ЖК-дисплей и маленькие буквенные или цифровые дисплеи, часто с простой системой меню. Целый графический экран с сенсорами прикосновения или клавишами на границе экрана предоставляет гибкость, уменьшая, при этом, использованное пространство: значение клавиш может меняться вместе с меню, отображаемое, а выбор элементов может воспроизводить естественные механизмы выбора.
Полный графический экран, с чувствительным на ощупь монитором и / и кнопками по краям обеспечивают гибкость и нимимализацию пространства управления: функции кнопки можно изменить с экрана, а выбор зависит от имеющихся и необходимых требований, что делает систему очень удобной.
Вместе с распространением веб-технологий, разработчики встраиваемых систем получили возможность создавать интерфейсы в виде веб-страниц. Это позволяет избегать на сложные схемы отображения, но предоставляет возможности комплексного ввода и отображения, при необходимости, на другом компьютере.
Процессоры для встраиваемых систем можно разбить на две большие категории: обычные микропроцессоры (?P) и микроконтроллеры (?C), имеющих гораздо больше периферийных устройств встроенных в чип. В отличие от серверов и рабочих компьютеров, во встраиваемых системах используется сравнительно большое количество простых архитектур ЦП; как фон-неймановская так и реализации Гарвардской архитектуры, RISC так и VLIW; размер машинного слова колеблется от 4 бит до 64 бит и более (обычно , в DSP), хотя типичным остается размер в 8 / 16 бит.
Большой, но не исчерпывающий перечень архитектур ЦП, используемых встроенными системами: 65816, 65C02, 68HC08, 68HC11, 68k, 8051, ARM, AVR, AVR32, Blackfin, C167, Coldfire, COP8, eZ8, eZ80, FR-V, H8, HT48, M16C, M32C, MIPS, MSP430, PIC, PowerPC, R8C, SHARC, ST6, SuperH, TLCS-47, TLCS-870, TLCS-900, Tricore, V850, x86, XE8000, Z80, и тому подобное.
PC/104 и PC/104 + являются примерами готовых компьютерных систем, предназначенных для малой, низкопрофильной и повышенной надежности. В них может использоваться DOS, Linux, NetBSD, либо встроенные операционные системы реального времени, такие как MicroC / OS-II, QNX or VxWorks.
В некоторых ситуациях, когда небольшие размеры не являются первоочередными, компоненты могут быть совместимы с компьютерами общего назначения. Платы, такие как VIA EPIA уменьшают разницу, потому что есть PC-совместимыми, но с сильно интегрированными, физически малыми или имеют другие полезные параметры, которые делают их привлекательными для проектантов встроенных систем. Преимущество данного подхода состоит в том, что низкие расходы на нестандартные компоненты компенсовуються разработкой программного обеспечения, когда может использоваться то же, что и в общий мейнстрим компьютерах. Системы построены так, что еще выглядят как встроенные, так как они являются компонентой большего устройства и выполняют одну роль. Ярким примером являются банкоматы.
Общей конфигурацией встроенных систем является однокристальная система (SoC), специализированная интегральная схема (ASIC), в которой процессор переработали и добавили как часть дизайна чип. Такие схемы применяются в программируемой при работе матрицы (FPGA), когда программируется вся логика, вколючаючы ЦБ.
Разработчики встраиваемых систем используют компилятором на ассемблере, и дебагером для разработки встроенных систем. Хотя кроме этого используются и некоторые более специфические инструменты:
В связи с комплексным развитием встраиваемых систем, средства разработки и операционные системы мигрируют на системы, в которых появляется смысл. Например сотовые телефоны, карманных компьютерах и другая потребительская техника часто требует значительного программного обеспечения, которое покупается или представляется сторонними источниками, не связанных с производством данной конкретной электроники. В таких случаях используется открытое программное среду (Linux, NetBSD, OSGi или встроенный Java) для того чтобы производители программного обеспечения спокойно создавали свои продукты для широкого рынка.
Если не ограничиваться внешними дебагерамы, программист может загружать и запускать программы используя инструменты, просматривать запущенные в процессоре коды, а также запускать и приостанавливать операции. Учитывая это код может быть как компоновочных автокодом так и выходным.
Поскольку встроенные системы часто состоят из самых разных элементов, стратегии отладки могут варьироваться. Например, отладки программно-(и микропроцессор-) ориентированных встраиваемых систем отличается от отладки встроенных систем, где большую часть обработки осуществляют периферийные устройства (DSP, FPGA, сопроцессора).
Все большее количество встроенных систем сегодня используют более чем одно процессорное ядро. Общей проблемой с мультиядерных разработок является выполнение надлежащей синхронизации программного обеспечения. В таком случае, дизайн встроенных систем должно обеспечивать проверку движения данных по шинам между процессорными ядрами. Такой дизайн требует низкоуровневого отладки, на уровне сигналов / шины, например, с логическим анализатором.
Встроенные системы часто находятся в машинах, которые будут работать непрерывно в течение многих лет без ошибок, а в некоторых случаях восстанавливаться самым, если происходит ошибка. Поэтому программное обеспечение обычно разрабатывается и испытывается более тщательно, чем для персональных компьютеров, а также избегают ненадежных механических движущихся частей, таких как дисководы, переключатели и кнопки.
Используются разнообразные методы, иногда в сочетании друг с другом, чтобы регенерироваться от ошибок как ошибки программного обеспечения (таких как утечка памяти), так и мягких ошибок в аппаратной части:
Для багатотиражованих систем, таких как портативные музыкальные плееры или мобильные телефоны, минимизируют затраты, как правило, еще при проектировании. При выборе аппаратных средств инженеры обычно пользуются правилом: «достаточно хорошо» для выполнения необходимых функций.
Для малосерийных или опытных образцов встроенных систем, компьютеры основного направления могут быть адаптированы ограничением программ или путем замены операционной системы на операционную систему реального времени.
Некоторые встроенные системы являются преимущественно переривно контролируемыми. Это означает, что задача которое выполняются системой запускается благодаря разнообразным факторам. Прерыватель может быть таймер в заранее установленной частотой, или контроллером последовательного порта при получении сигналов.
Обычно системы такого типа выполняют простую задачу в основной цикл, и это задача не очень чувствительный к неожиданным задержкам. Иногда обработчик прерываний добавляет много задач, которые становятся в структурированную очередь. Затем после того, как задание закончили обрабатываться, эти задачи включаются в основной цикл. Этот метод около приближает систему к многозадачной системы с дискретными процессами.
Системы невытесняющей многозадачности очень похожи на простой цикл схемы контроля, за исключением того, что цикл скрытый в интерфейс прикладного программирования. Программист определяет ряд задач, и каждое задание получает свои собственные условия для «выполнения» работы. Когда задача не выполняется, оно требует регулярного простоя (так называемые «пауза», «ожидание», «простой», «НОТ» (операция пустой команды) и т.д.).
Преимущества и недостатки очень похожи к системам циклического выполнения, за исключением того, что легче добавить новое программное обеспечение: просто путем написания новой задачи и добавить ее в очередь интерпритатор.
В этом типе системы, часть кода низкого уровня переключается между задачами или потоками, и базируется на таймере (подключенного к прерывателя). В основном считается что системы такого уровня относятся к ядру «операционной системы». В зависимости от того, какая функциональность нужна, он вводит более или менее сложное управление несколькими задачами, которое работает концептуально параллельно.
Так как любой код может повредить данные в другом задании (за исключением в больших систем с использованием блока управления памятью) программы должны быть тщательно разработаны и испытаны, и доступ к общих данным необходимо контролировать некоторые стратегии синхронизации например: очередь сообщений, семафоры или неблокирующим схема синхронизации.
Из-за таких трудностей в организации, общепринятым считается покупка операционной системы реального времени, что позволяет программистам сосредоточиться на функциональности устройства, а не на обслуживании операционной системы, по крайней мере для крупных систем; меньшие системы часто не могут себе позволить накладных расходов, связанных с общими системами реального времени, в связи с ограничением соотношение памяти, производительности и / или емкости аккумулятора.
Микроядра является логическим шагом вперед от ОС реального времени. Обычный механизм заключается в том, что ядро операционной системы разделяет память и переключает ЦП для разных потоков выполнения. Пользовательский режим процессов реализует основные функции, такие как файловые системы, сетевые интерфейсы и т.д.
В данном случае относительно большие ядра адаптированы к специфике встроенных систем с помощью современных возможностей. Это позволяет программистам работать в среде аналогичном настольным операционным системам, таким как Linux или Microsoft Windows, и поэтому является очень продуктивным для разработчиков; недостатками являются необходимость значительно больших аппаратных ресурсов, из-за сложности этих ядер могут быть менее предсказуемыми и надежными, и часто дороже .
Несмотря на увеличение затрат на оборудование, этот тип встраиваемых систем приобретает популярность, особенно на мощных встроенных устройствах, таких как беспроводные маршрутизаторы и GPS навигация. Вот некоторые из причин:
Небольшое количество встроенных систем требует безопасной, своевременной, надежной и эффективной поведения, недоступной ни в одной из вышеуказанных архитектур. В этом случае организация строит нужную систему.
В некоторых случаях система может быть разделена на «механизм контроллера» с использованием специальной техники, и «контролера дисплея» с обычной операционной системой. Система связи передает данные между ними.
В дополнение к основной операционной системы, множество встроенных систем имеют дополнительных программных компонентов верхнего уровня. Эти компоненты совмещают сетевой протокльний стек, таким как TCP / IP, FTP, HTTP и HTTPS, и содержит систему управления памяти, совместимая с накопителями в FAT так и флэш-памяти. Если устройство снабжено встроенными аудио-и видео-возможностями, то и соответствующие драйверы и кодеки будут имеющиеся в системе. При монолитных ядер, многие из этих программных обеспечений уже включены. В категории операционных систем реального времени, наличие дополнительных программных компонентов зависит от коммерческих предложений.
Информационные системы, как основа деятельности предприятия
ОСОБЕННОСТИ ФУНКЦИОНИРОВАНИЯ НАУЧНЫХ И ОБРАЗОВАТЕЛЬНЫХ ЭЛЕКТРОННЫХ БИБЛИОТЕК
Гаджет на каждый день
Производитель элитных телефонов vertu анонсирует модель vertu constellation t
Дисковая ос (dos)
Гид по профессиям: Кто такой DevOps и с чем его едят?
5 софт-скиллов, без которых вы не построите карьеру в технологиях
Куда пойти учиться: Университет, курсы или самообразование?
Топ-10 мифов об IT, которые отпугивают новичков (и почему им не стоит верить)


