Вбудована система

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Маршрутизатор, як приклад вбудованих систем. Відмічені складові позначають: мікропроцесор (4), RAM (6), та флеш-пам'ять (7).

Вбудо́вана систе́ма (англ. embedded system) — спеціалізована комп'ютерна система або обчислювальний пристрій, призначений для виконання обмеженої кількості функцій,[1] часто, з обмеженнями реального часу. Комбінація апаратного та програмного забезпечення, можливо, з механічними або іншими частинами, призначена для виконання окремої функції.[2] Зазвичай, вбудовані системи є складовою частиною пристрою, включаючи апаратне забезпечення та механічні елементи. На противагу вбудованим, загальні комп'ютерні системи (такі як персональний комп'ютер) призначені для виконання широкого кола завдань. Вбудовані системи присутні у багатьох сучасних приладах.

Оскільки вбудована система призначена для виконання обмеженої кількості функцій, розробники можуть її оптимізувати, зменшуючи вартість продукту, або збільшуючи надійність та швидкодію. Деякі вбудовані системи виготовляються у великій кількості, що стимулює максимально зменшувати їх собівартість.

Фізично, вбудовані системи бувають такими малими, як портативні пристрої (приміром, цифрові годинники або MP3-плеєри) або такими великими, як світлофори, пристрої управління виробництвом, або системи керування ядерними електростанціями. Відповідно, складність може бути низькою, як з одним чипом керування, так і дуже високою, з багатьма пристроями, периферійними приладами, комп'ютерними мережами тощо.

Взагалі кажучи, поняття «вбудована система» не є чітко визначеним, оскільки багато систем мають деякі можливості програмування. Наприклад, кишенькові комп'ютери мають деякі елементи від вбудованих систем — такі як операційні системи та мікропроцесори — але вони не є чисто вбудованими системами, оскільки дозволяють завантаження нових застосунків та підключення нових периферійних пристроїв.

Застосування[ред.ред. код]

Вбудовані системи забезпечують роботу тисяч різноманітних інтелектуальних взаємодіючих систем, таких як:

Автомобільний комп'ютер ALIX.1C Mini-ITX із впаяним на метеринській платі процесором AMD Geode LX 800,інтерфейсом для CF-картки, miniPCI та PCI слотами, 44-піновим IDE роз'ємом та 256MB оперативної пам'яті

Характеристики[ред.ред. код]

  1. Вбудовані системи, призначені для якоїсь певної задачі, на відміну від комп'ютерів, призначених для виконання величезної кількості задач. Деякі з таких мають обмеження функціональності роботи обрахунків в реальному вимірі, які накладаються задля безпеки та зручності використання. Це також дозволяє знижувати системні вимоги для використання задач, спрощувати системи та знижувати їх собівартість.
  2. Вбудовані системи не завжди є автономними та незалежними системами. Іноді вони складається із малих, комп'ютеризованих складових в рамках однієї складної системи, яка служить для загальнішої цілі. Для прикладу такою може бути система сучасних автомобілів із складним електронним начинням, яке керується автомобільним комп'ютером.
  3. Програмна інструкція написана для вбудованих систем називається мікропрограмою, і зберігається в незмінному ПЗП або у вільнозаписуваній пам'яті чипів. Вони працюють із обмеженими апаратними ресурсами, за відсутності клавіатури та/або екрану.

Інтерфейс користувача[ред.ред. код]

Вбудовані системи можуть бути як взагалі без інтерфейсу користувача, так і мати складний графічний інтерфейс, схожий на інтерфейс сучасних середовищ на настільних комп'ютерах.

Прості системи[ред.ред. код]

Прості вбудовані системи використовують кнопки, РК-дисплеї та малі літерні або цифрові дисплеї, часто з простою системою меню. Цілий графічний екран з сенсорами дотику або клавішами на границі екрану надає гнучкість, зменшуючи, при цьому, використаний простір: значення клавіш може змінюватись разом із меню, що відображається, а вибір елементів може відтворювати природні механізми вибору.

Складніші системи[ред.ред. код]

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

Надолонні системи часто мають екран з клавішею схожою на джойстик як вказівник.

Разом із поширенням веб-технологій, розробники вбудованих систем отримали можливість створювати інтерфейси користувача у вигляді веб-сторінок. Це дозволяє уникати на складні схеми відображення, але надає можливості комплексного вводу та відображення, за необхідності, на іншому комп'ютері.

Центральні процесори[ред.ред. код]

Процесори для вбудованих систем можна розбити на дві великі категорії: звичайні мікропроцесори (μ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-сумісними, але з сильно інтегрованими, фізично малими або мають інші корисні параметри, що роблять їх привабливими для проектантів вбудованих систем. Перевага даного підходу полягає в тому, що низькі витрати на нестандартні компоненти компенсовуються розробкою програмного забезпечення, коли може використовуватися те ж, що й у загальний мейнстрім комп'ютерах. Системи побудовані таким чином, що ще виглядають як вбудовані, оскільки вони є компонентою більшого пристрою і виконують одну роль. Яскравим прикладом є банкомати.

Монокристальні та FPGA рішення[ред.ред. код]

Загальною конфігурацією вбудованих систем є однокристальна система (SoC), специалізована інтегральна схема (ASIC), в якій процесор переробили та додали як складову частину дизайну чипу. Такі схеми застосовуються в програмованій під час роботи матриці (FPGA), коли програмується вся логіка, вколючаючно з ЦП.

Периферія[ред.ред. код]

Вбудовані системи обмінюються інформацією з зовнішнім світом використовуючи периферійні прилади, такі як:

Інструменти[ред.ред. код]

Розробники вбудованих систем використовують компілятором на асемблері, та дебагером для розробки програмного забезпечення вбудованих систем. Хоча крім цього використовуються і деякі більш специфічні інструменти:

Засоби програмного забезпечення можуть мати кілька джерел походження:

  • Софтверні компанії, які спеціалізуються на вбудованих системах.
  • Перенесені із GNU програмних засобів розробки
  • Використання програм для ПК, якщо вбудований процесор є близьким аналогом за архітектурою звичайних ПК

У зв'язку із комплексним розвитком вбудованих систем, засоби розробок та операційні системи мігрують на системи, в яких з'являється сенс. Наприклад стільникові телефони, кишенькових комп'ютерах та інша споживацька техніка часто потребує значного програмного забезпечення, яке купується або представляється сторонніми джерелами, що не пов'язані із виробництвом даної конкретної електроніки. В таких випадках використовується відкрите програмне середовище (Linux, NetBSD, OSGi чи вбудовану Java) для того щоб виробники програмного забезпечення спокійно створювали свої продукти для широкого ринку.

Зневадження[ред.ред. код]

Вбудовані зневаджувачі можуть працювати на різних рівнях, в залежності від наявних можливостей. Від найпростіших до найскладніших вони можуть бути умовно згруповані за такими напрямками:

  • Інтерактивна резидентне зневадження, використовуючи просту оболонку, представлену у вбудовану операційну систему (наприклад, Forth і Basic)
  • Зовнішній зневаджувач із використанням прямих або послідовних портів для виведення слідів операції, використовуючи або контроль активності або з використання зневаджувального сервера.
  • Вбудований зневаджувач, апаратний пристрій, який підключається до мікропроцесора за допомогою JTAG або NEXUS інтерфейсу. Це дозволяє забезпечити функціонування мікропроцесора, який буде контролюватися ззовні, але, як правило, обмежена конкретним зневаджувальними можливостями в процесорі.
  • Внутрішньосхемний емулятор замінює мікропроцесор із моделюючою еквівалентою, забезпечуючи повний контроль над усіма аспектами мікропроцесора.
  • Повний емулятор забезпечує моделювання всіх аспектів апаратних засобів, що дозволяє все це контролювати і змінювати, і забезпечуючи зневадження на нормальному комп'ютері.

Якщо не обмежуватися зовнішніми дебаґерами, програміст може завантажувати та запускати програмне забезпечення використовуючи інструменти, переглядати запущені в процесорі коди, а також запускати та припиняти операції. З огляду на це код може бути як компонувальним автокодом так і сирцевим.

Оскільки вбудовані системи часто складаються з найрізноманітніших елементів, стратегії зневадження можуть варіюватися. Наприклад, зневадження програмно- (та мікропроцесор-) орієнтованих вбудованих систем відрізняється від зневадження вбудованих систем, де більшу частину обробки здійснюють периферійні пристрої (DSP, FPGA, співпроцесора).

Все більша кількість вбудованих систем сьогодні використовують більш ніж одне процесорне ядро. Загальною проблемою з мультиядерних розробок є виконання належної синхронізації програмного забезпечення. У такому випадку, дизайн вбудованих систем має забезпечувати перевірку руху даних по шинах між процесорними ядрами. Такий дизайн вимагає низькорівневого зневадження, на рівні сигналів/шини, наприклад, з логічним аналізатором.

Надійність[ред.ред. код]

Вбудовані системи часто знаходяться в машинах, які будуть працювати безперервно протягом багатьох років без помилок, а в деяких випадках відновлюватися самим, якщо відбувається помилка. Тому програмне забезпечення зазвичай розробляється та випробовується більш ретельно, ніж для персональних комп'ютерів, а також уникають ненадійних механічних рухомих частин, таких як дисководи, перемикачі і кнопки.

Конкретні питання надійності, можуть включати в себе:

  1. Система не може бути безпечно вимкнена на ремонт, чи бути в занадто недоступному місці для ремонту. Прикладами є: космічні системи, підводні кабелі, навігаційні маяки, свердловинні системи, а також автомобілі.
  2. Ця система повинна працювати з міркувань безпеки. «Шкутильгаючі режими» найменш допустимі. Часто оператором знімаються резервні копії. Прикладами є: навігатори літальних апаратів, системи управління реакторів, системи безпеки та оповіщення контролю хімічного заводу, системи однодвигунних літаків.
  3. Система втрачатиме значні суми грошей, якщо вимкнути: телефонні комутатори, контроль за заводі, контроль мостів та елеваторів, переказу грошових коштів та ринкових процедур, автоматизовані пункти продажу та сервісу.

Використовуються різноманітні методи, іноді в поєднанні один з одним, щоб регенеруватися від помилок як помилки програмного забезпечення (таких як витік пам'яті), так і м'яких помилок в апаратній частині:

  • Таймер, який перезавантажує комп'ютер, якщо програмне забезпечення періодично повідомляє схему безпеки
  • Підсистем з надлишковою кількістю запасних частин, на які можна перемикати
  • Програмні модулі «слабких режимів», які забезпечують часткову функціоналізацію

Багатосерійність проти дрібносерійності[ред.ред. код]

Для багатотиражованих систем, таких як портативні музичні програвачі або мобільні телефони, мінімізують витрати, як правило, ще при проектуванні. При виборі апаратних засобів інженери як правило користуються правилом: «досить добре» для виконання необхідних функцій.

Для малосерійних чи дослідних зразків вбудованих систем, комп'ютери основного напрямку можуть бути адаптовані обмеженням програм або шляхом заміни операційної системи на операційну систему реального часу.

Архітектури програмного забезпечення вбудованих систем[ред.ред. код]

Є декілька різних типів архітектури програмного забезпечення в загальному користуванні.

Простий цикл управління[ред.ред. код]

При цьому дизайн, програмне забезпечення подібні до петлі. Цикл звернень до підпрограм, кожна з яких керує частиною апаратного або програмного забезпечення.

Переривно контрольовані системи[ред.ред. код]

Деякі вбудовані системи є переважно переривно контрольованими. Це означає, що завдання яке виконуються системою запускається завдяки різноманітним чинникам. Переривачем може бути таймер в заздалегідь встановленою частотою, або контролером послідовного порта при отриманні сигналів.

Такі системи використовуються у випадку, якщо приладам обробки запитів необхідний малий час обробки та події, що оброблюються, є короткими і простими.

Зазвичай, системи такого типу виконують просте завдання в основний цикл, і це завдання не дуже чутливе до несподіваних затримок. Іноді обробник переривань додає багато завдань, які стають в структуровану чергу. Потім після того, як завдання закінчили оброблятися, ці задачі включаються в основний цикл. Цей метод близько наближає систему до багатозадачної системи з дискретними процесами.

Системи сумісної багатозадачності[ред.ред. код]

Системи невитісняючої багатозадачності дуже схожі на простий цикл схеми контролю, за винятком того, що цикл прихований в інтерфейс прикладного програмування. Програміст визначає ряд завдань, і кожне завдання отримує свої власні умови для «виконання» роботи. Коли завдання не виконується, воно потребує регулярного простою (так звані «пауза», «очікування», «простій», «НОП» (операція порожньої команди) і т. д.).

Переваги та недоліки дуже схожі до систем циклічного виконання, за винятком того, що легше додати нове програмне забезпечення : просто шляхом написання нової задачі та додати її до черги інтерпритатора.

Системи витісняючої багатозадачності чи мультиядерні[ред.ред. код]

У цьому типі системи, частина коду низького рівня перемикається між завданнями або потоками, і базується на таймері (підключеного до переривача). В основному вважається що системи такого рівня належать до ядра «операційної системи». В залежності від того, яка функціональність потрібна, він вводить більш чи менш складне управління кількома задачами, яке працює концептуально паралельно.

Так як будь-який код може пошкодити дані в іншому завданні (за винятком у великих систем з використанням блока управління пам'яттю) програми повинні бути ретельно розроблені та випробувані, і доступ до загальних даними необхідно контролювати деякі стратегії синхронізації, наприклад: черга повідомлень, Семафори або неблокуюча схема синхронізації.

Через такі труднощі в організації, загальноприйнятим вважається купівля операційної системи реального часу, що дозволяє програмістам зосередитися на функціональності пристрою, а не на обслуговуванні операційної системи, принаймні для великих систем; менші системи часто не можуть собі дозволити накладних витрат, пов'язаних із загальними системами реального часу, у зв'язку з обмеженням співвідношення пам'яті, продуктивності та/або ємності акумулятора.

Мікроядра та екзоядра[ред.ред. код]

Мікроядра є логічним кроком вперед від ОС реального часу. Звичайний механізм полягає в тому, що ядро операційної системи розділяє пам'ять і перемикає ЦП для різних потоків виконання. Користувацький режим процесів реалізовує основні функції, такі як файлові системи, мережеві інтерфейси і т. д.

В загальному, виграш мікроядер тоді, коли перемикання і зв'язок між завданнями швидкий, і програш — коли повільно.

Екзоядра взаємодіють ефективніше на рівні звичайних підпрограмних викликів. Апаратні засоби і все програмне забезпечення в системі є, і розширюване за допомогою застосунків програмістів.

Монолітні ядра[ред.ред. код]

В даному випадку відносно великі ядра адаптовані до специфіки вбудованих систем за допомогою сучасних можливостей. Це дозволяє програмістам працювати в середовищі аналогічному настільним операційним системам, такими як Linux або Microsoft Windows, і тому є дуже продуктивним для розробників; недоліками є необхідність значно більших апаратних ресурсів, через складність цих ядер можуть бути менш передбачуваними і надійними, і часто дорожчі.

Загальними прикладами вбудованих монолітних ядер є вбудований Linux та Windows CE.

Не зважаючи на збільшення витрат на обладнання, цей тип вбудованих систем набуває популярності, особливо на потужніших вбудованих пристроях, таких як Бездротові маршрутизатори та GPS навігація. Ось деякі з причин:

  • Встановлені порти в загальних комплектах вбудованих чипів.
  • дозволяється повторно використовувати доступні коди драйвери пристроїв, веб-сервери, брандмауери, і інший коди.
  • Розробку системи можна розпочинати з загальнофункціональних наборів, а потім налаштувати дистрибютив відділивши непотрібні функції. Таким чином заощаджуються витрати на пам'ять, використовувати тільки для актуального споживання.
  • Багато інженерів вважають, що використання кодів у користувацькому режимі є надійнішим, легше налагоджуваним, і тому процес розробки простіше а коди переносними.
  • У багатьох вбудованих системах не вистачає жорстких вимог реального часу для контролю системи. Такі системи як вбудований Linux досить швидкі для реагування у багатьох застосунках.
  • Особливі умови, які вимагають швидшого реагування, ніж це може бути гарантовано найчастіше переміщують в апаратні засоби.
  • Багато операційних систем реального часу коштують співрозмірно з ціною системи. При використанні їх у продукті, вартість товару зросте істотно.

Спеціальні екзотичні операційні системи[ред.ред. код]

Невелика кількість вбудованих систем вимагає безпечної, своєчасної, надійної та ефективної поведінки, недоступної в жодній із вищевказаних архітектур. У цьому випадку організація будує потрібну систему.

У деяких випадках система може бути розділена на «механізм контролера» з використанням спеціальної техніки, та «контролера дисплея» зі звичайною операційною системою. Система зв'язку передає дані між ними.

Додаткові програмні компоненти[ред.ред. код]

На додачу до основної операційної системи, багато вбудованих систем мають додаткових програмних компонентів верхнього рівня. Ці компоненти суміщають мережевий протокльний стек, такий як TCP/IP, FTP, HTTP і HTTPS, та вміщує систему керування пам'яті, сумісною із накопичувачами у FAT так і флеш-пам'яті. Якщо пристрій забезпечений вбудованими аудіо-та відео-можливостями, то і відповідні драйвери та кодеки будуть наявні в системі. У разі монолітних ядер, багато хто з цих програмних забезпечень вже включені. У категорії операційних систем реального часу, наявність додаткових програмних компонентів залежить від комерційних пропозицій.

Посилання[ред.ред. код]

  1. Michael Barr. «Embedded Systems Glossary». Netrino Technical Library. Архів оригіналу за 2013-06-25. Процитовано 2007-04-21. 
  2. Jack Ganssle, Michael Barr (2003). Embedded Systems Dictionary. CMP Books. ISBN 1578201209. 

Дивіться також[ред.ред. код]


Комп'ютер Це незавершена стаття про комп'ютери.
Ви можете допомогти проекту, виправивши або дописавши її.