Основни характеристики на хардуерните и софтуерни компоненти на embedded системите
Обикновено се приема, че вградените системи (embedded systems) са електронни цифрови системи, програмирани да изпълняват определени функции в реално време. В зависимост от предназначението си, се характеризират с различна сложност – от елементарни с един микроконтролерен чип, до комплексни системи, съставени от множество устройства, периферни и мрежови модули, монтирани на общо шаси или дори интегрирани в общ шкаф. Като съвременна тенденция при производството им се очертава стремежът към минимизиране на размерите, масата, консумираната енергия и цената им и увеличаване на надеждността и функционалността на системите.
Вградените системи намират широко приложение в областта на телекомуникациите, потребителската електроника, транспортните средства и промишлеността. Всеки съвременен трансмитер за измерване на налягане, температура, ниво или тегло съдържа в себе си вградена система, която обработва измерената стойност на параметъра, като филтрира некоректните стойности, коригира ги съобразно влиянието на околната среда и ги преобразува математически. Вграденото управление следи за точността на изходните сигнали, извършва комуникация с други устройства и системи, прави автодиагностика и предава алармени съобщения. При различните аналитични прибори, освен изброените функции, вградените системи контролират взимането, кондиционирането и филтрирането на пробата, след което следят за извършването на анализа. Някои машини или агрегати в индустрията, като например помпи, вентилатори, компресори, са снабдени с вградени системи, които наблюдават работата им. Чрез сензори, измерващи вибрации, линейни измествания, скорости на въртене и други параметри, тези системи анализират работата на машината и генерират ценна информация, използвана за предсказващо управление и оптимална експлоатация на оборудването.
Основни характеристики
Отличителна характеристика на вградените системи е ограниченият брой предварително дефинирани функции, които са проектирани да изпълняват. Системите са тясно специализирани и решават само определена задача или сравнително ограничен брой задачи, за разлика от други електронни устройства с подобна елементна база, които изпълняват широк набор от функции. Освен това, вградените системи обикновено разполагат с ограничена захранваща мощност и трябва да имат ефективно управление на захранването, за да може наличната мощност да се разпредели за всички изпълнявани задачи. Ресурсите им никога не трябва да се използват напълно и винаги трябва да има резерви, които да се мобилизират при непредвидени ситуации в процеса на експлоатация.
Друга важна тяхна особеност е работата в реално време, което изисква предвидените ситуации да бъдат обработени за определеното време, по зададените алгоритми. Забавянето или отклонението от кодирания алгоритъм може да доведе до повреда, катастрофа или загуба на човешки живот.
Интерфейси във вградените системи
Интерфейсите във вградените системи са разнообразни и част от тях дори не са стандартизирани. Класификацията е трудна и противоречива поради огромното количество параметри, по които могат да се сравняват и класифицират. Най-просто казано, интерфейсите се делят на операторски интерфейси (Human-Machine interfaces – HMI) и електрически интерфейси (интерфейси за връзка с компоненти и други устройства). Към интерфейсите от групата HMI спадат: клавиатури, монитори, ключове, бутони, единични или групови индикатори, излъчватели на акустични, утразвукови, топлинни сигнали, електродвигатели, електромагнити и други.
Електрическите интерфейси са много видове и най-общо попадат в две групи: вътрешни и външни. Разликата е голяма, като съществените параметри са шумоустойчивостта, дължината на връзката, скоростта и др. Като вътрешни интерфейси могат да се посочат I2C, SPI, ISA и подобните им, които осъществяват връзка между компоненти и модули във вградените системи и по-рядко връзка на малки разстояния между две или повече системи в една по-голяма вградена система. Тези интерфейси обикновено покриват разстояния до няколко метра или дори много по-малки.
Външните интерфейси се прилагат за връзка между отделни вградени системи на значително разстояние една от друга или между вградени системи и отдалечени периферни устройства. Такива са RS232, TTY, Ethernet, Centronics, FlexRay, CAN, LIN и др. Разстоянието обикновено е от няколко метра до няколко километра в зависимост от интерфейса. Част от външните интерфейси са галванично изолирани с трансформатори или с оптически кабели. В тази група са и радиоинтерфейсите за малки или по-значителни разстояния.
Платформи за изграждане на вградени системи
Вградените системи могат да включват обикновени микропроцесори (mP) и микроконтролери (mC), които имат по-малка изчислителна мощност, но за сметка на това са с по-разнообразна периферия. Тази характеристика на микроконтролерите обуславя широката им употреба в системите с ниска и средна сложност.
За разлика от персоналните компютри и сървърите, при вградените системи се използват голям брой базови архитектури, сред които фон Нойман и Харвард. При концепцията фон Нойман се използва обща памет за съхранение на програмните инструкции и данните, докато при архитектурата Харвард съхранението на програмните инструкции и данните става в отделни адресни пространства. Това позволява данните да имат примерно 8-битов формат, а инструкциите – 12-битов.
Хардуерни компоненти на системите
Процесор. За целите на вграденото управление намират приложение както RISC, така и RISC процесорите. Водещ принцип при концепцията RISC (Reduced Instruction Set Computer – компютър с намален набор инструкции) е изпълнението на максимално компактни и опростени команди, които изискват минимално време (тактове). Този принцип опростява архитектурата, позволява процесорът да работи на по-висока тактова честота и намалява цената му. За целите на вграденото управление са добили популярност различни фамилии RISC процесори: ARC (на ARC International), ARM (на ARM Holdings), AVR (на Atmel), PIC (на Microchip), MSP430 (на TI) и др. Като противоположност на RISC съществува концепцията CISC (Complex Instruction Set Computer – компютър с комплексен набор инструкции), но тя е с по-ограничено приложение при вградените системи. По отношение дължината на думата на процесорите, използвани за вградено управление, съществува голямо разнообразие – те могат да са от 4- до 64-битови и повече (главно при DSP – цифрови сигнални процесори), но в най-масова употреба са 8- и 16-битовите.
Производителността на процесора зависи от няколко фактора. На първо място, максималната честота, с която може да работи процесорното ядро. Обикновено тя е в диапазона от 4 MHz до 80 MHz (за някои модели DSP надхвърля 400 MHz). В ядрото на процесора се намира АЛУ (аритметично логическо устройство), отговорно за извършването на изчисленията и операциите в зависимост от изпълняваната инструкция. От дължината на думите, които то може да обработва, също зависи производителността на целия процесор. Друг фактор, влияещ на производителността, е броят на работните регистри в ядрото на процесора. Колкото е по-голям техният брой, толкова по-висока може да бъде производителността на съответния процесор. Обикновено разредността на регистрите е равна с тази на АЛУ.
Важен показател, който определя производителността на ядрото, а оттам и на процесора/контролера, е организацията на обработване на инструкциите. Много от производителите залагат в своите продукти т. нар. конвейерна обработка на инструкциите. Идеята на конвейра (Pipeline) е да не се изчаква завършването на изпълнението на инструкция, за да се започне следващата, а обработката на новата инструкция да стартира веднага след предходната. Така, в оптималния случай, един такт след началото на първата инструкция се зарежда втората, след още един такт – третата. При четвъртия такт едновременно се обработват четири инструкции, всяка отместена на един такт от предходната.
Разглеждайки процесорното ядро, трябва да отбележим още един фактор, влияещ на неговата изчислителна мощ – вътрешната памет или т. нар. кеш памет. Кешът представлява специална добавка към декодера на паметта на процесора. Реализира се от много бърза памет и специализирана логика за нейното управление. Основната идея на кеша е да запише част от паметта (често използвана) в собствената си памет и ако процесорът поиска адрес от тази част да се използва стойността от бързата кеш памет, а не от по-бавната външна памет.
Шините са средство за пренасяне на информацията под формата на цифрови сигнали. Различават се три типа шини, в зависимост от предназначението им – адресна, управляваща и шина за данни. Адресната шина свързва процесора с паметта и периферните устройства. Шината за данни е двупосочна и пренася информация между процесора и паметта или периферните устройства. Броят на пистите определя броя битове, които могат да се запишат във всяка клетка на паметта. Всички допълнителни данни за управление на дейността на системата се пренасят от управляващата шина.
Паметта съхранява инструкциите и данните, с които работи процесорът. В повечето случаи паметта за програмните инструкции е от типа flash, която може да бъде записвана многократно, например 10 000 и повече пъти или OTP (One-Time Programmable – еднократно програмируема), която е по-надеждна, но може да бъде програмирана само веднъж. При някои модели микроконтролери е предвидена възможност за включване на допълнителна външна памет.
Периферията включва дискретните входове/изходи за обща употреба (General Purpose Input/Output – GPIO), които служат за управление на външни компоненти (релета, тиристори и др.) или за получаване на информация от двоични сензори (бутони, крайни изключватели, сензори за положение и др.). В съвременните микроконтролери всеки от изводите за GPIO може да бъде програмиран като вход или като изход в зависимост от нуждите на приложението. Някои производители дават допълнителна функционалност на дискретните входове/изходи, като например да могат да издържат на по-високо токово натоварване, да могат да управляват течнокристални дисплеи и др. Когато е необходим обмен на аналогова информация, се използва АЦП (аналогово-цифров преобразувател) или ЦАП периферия. Изводите, на които се извежда такава информация, като правило са общи с тези за GPIO и необходимата функция се задава от програмното осигуряване. Разредността и скоростта на преобразуване на вградените АЦП/ЦАП е твърде различна за всеки от моделите микроконтролери, но обикновено е от 8 до 16 бита и с 10 000 до 1 милион отчета за секунда.
Таймерите са друга важна периферия и това обуславя наличието им в почти всички съвременни микроконтролери. Много често таймерът може да бъде програмиран като брояч, да има допълнителен програмируем делител на входящото му тактиране, а източникът на тактови импулси да се избира по софтуерен път. В по-големите микроконтролери има по няколко таймера, които могат да са с различна разредност, например 8- и 16-битови. Работата на таймерите е пряко свързана с тактовия генератор, който също е интегриран в чипа. Режимите му на работа се определят софтуерно и могат да бъдат:
– като RC (резисторно-капацитивен) генератор, при който не са необходими допълнителни външни компоненти;
– когато е необходима висока точност на тактовите импулси е предвидена възможност за външно включване на кварцов или керамичен кристал;
– чрез външен източник на тактова честота. Този режим се използва, когато трябва да се синхронизира работата на микроконтролера с друго, външно устройство.
Някои от тактовите генератори са снабдени с PLL схеми (phase-locked loop – автоматична фазова донастройка на честотата), чрез които се постигат по-високи честоти. Съществуват модели микроконтролери, при които PLL се използва и за управление на честотата, с цел оптимизация на енергопотреблението.
Комуникация
Комуникационните възможности при вградените системи се характеризират с голямо разнообразие:
– Серийни комуникационни интерфейси – RS-232, RS-422, RS-485. Използват се главно за комуникация с компютри или с други вградени системи;
– UART/ USART (Universal Synchronous and Asynchronous Receiver/Transmitter – универсален синхронен и асинхронен приемник/предавател).
– Синхронни серийни комуникационни интерфейси. Намират приложение като пряк обмен между микроконтролери, за първоначално програмиране на чипа (зареждане на програма и на данни) и др. Към тази група спадат I2C (Inter-Integrated Circuit), SPI (Serial Peripheral Interface Bus), SSC и ESSI (Enhanced Synchronous Serial Interface).
– USB (Universal Serial Bus) – един наложил се в последните години комуникационен интерфейс, с който са снабдени голяма част от съвременните устройства;
– Протоколи за мрежова комуникация като Ethernet, CAN (Controller Area Network), LonWorks и др. Наличието на такава периферия в микроконтролера силно редуцира броя на допълнителните външни компоненти, опростява печатната платка и снижава цената на вградената система.
Програмно осигуряване на вградените системи
Програмното осигуряване за вградените системи е познато като фърмуер (firmware) или „твърда“ програма, тъй като е записано в енергонезависима памет и в идеалния случай се предполага, че няма да се променя в процеса на експлоатация на системата, който може да бъде десетки години. В много съвременни системи програмите са записани във флашпамет и могат (при определени мерки за сигурност) да се подменят с цел модернизация. Това дава възможност за развитие на вградените системи, които вече са в експлоатация, но създава и предпоставки за злоупотреби. Сред най-популярните операционни системи (ОС) за вградените системи са QNX4 RIOS, Embedded Linux, Windows CE и др.
QNX4 RIOS е разработена от QNX Software Systems за приложения главно в интелигентни устройства за бита, малки телекомуникационни устройства, автомобилната промишленост, медицински прибори. QNX4 може да работи с всички процесори от серията x86 след 386. Това е една от най-малките ОС на пазара на вградените системи за управление и може лесно да се адаптира към много приложения. Ядрото на системата изисква само 12 kB памет, за да работи. За сравнение, Windows CE изисква поне 350 kB за ядрото с известни комуникационни възможности, Linux – минимум 128-256 kB за ядрото и още над 100 kB за другите компоненти. Както Windows CE, така и Linux могат да се конфигурират за съответното приложение и затова окончателният размер на инсталираната ОС може да се получи в широки граници.
Linux за вградени системи стана много популярна през последните няколко години и то най-вече в интелигентните електродомакински прибори, рутери и суичове за телекомуникациите, уреди, работещи с Интернет и приложения в автомобилостроенето. Тъй като Linux има модулна структура, е лесно да се оставят само модулите за съответното приложение, което дава възможност за поддържане на необходимия минимум от ОС в конкретното изделие. Едно от огромните предимства на Linux е, че кодът е широко достъпен, може да се пригоди към много процесори и е стабилен.
Windows CE е въведен за първи път в мобилните компютри от серията Handheld PC през 1996 г. Намира приложение и при компютрите за автомобили, във видеоигри, цифрови камери, програмируеми логически контролери за промишлеността, баркод четци и др.
Модерните операционни системи за вградените системи поддържат сложни алгоритми за управление на паметта, които осигуряват нейното оптимално използване. Също така се използват системи за защита на паметта и входно-изходното пространство от грешки в програмата, така че ако се получи грешка тя да ограничи неприятните последствия до минимум и системата да се самовъзстанови.
Инструменти за тестване и коригиране
Процесът на изпитване и корекция на програмното осигуряване, наричан още дебъгинг (debugging), отнема голяма част от усилията и времето на разработчиците. Поради тази причина, всички производители на микропроцесори и микроконтролери за вградени системи са предвидили инструменти, чрез които той да бъде улеснен. Комплексът от средства за дебъгинг включва три съставни части. Първата е наличието на необходимата периферия в микроконтролера. Широко разпространение са добили JTAG (Joint Test Action Group) – специализиран интерфейс за изпитване на наситени печатни платки; ISP (In-System Programming) – вътрешносхемно програмиране; ICSP (In Circuit Serial Programming) – метод за директно програмиране на микроконтролери, например от сериите PIC и AVR; BDM (Background Debug Mode) – интерфейс, използван главно в продуктите на Freescale и др. Втората съставна част представлява специализиран хардуер (вградена система във вид на печатна платка или самостоятелно устройство), чрез който се извършва програмиране, симулиране или емулиране. Третият елемент от средствата за дебъгинг е програмното осигуряване за персонален компютър. Популярност са добили софтуерни пакети от типа IDE (Integrated Development Environment) – интегрирана среда за разработка. Те дават възможност за писане на програми, за записването им в паметта на микроконтролерите или за прочитането им, за симулиране действието на програмата и поведението на цялата вградена система и др.
Изт.: сп.“TLL media“