
В ежедневието си живеем с десетки вградени системи, без да го осъзнавамеОт автомобили и перални машини до банкомати, домашни рутери и пейсмейкъри, всички тези устройства крият един или повече микропроцесори, предназначени за много специфична задача, далеч от класическата идея за „компютър“, която имаме предвид.
Зад тази привидна простота се крие огромен технически свят: микроконтролери, цифрови сигнални процесори (DSP), FPGA, операционни системи за реално време, шини, сензори, изпълнителни механизми и комуникационни стековеРазбирането как всичко това се съчетава е ключово за всеки инженер по системи, автоматизация, роботика или електроника, който иска да проектира ефективни, надеждни и конкурентни продукти.
Какво е вградена или вдлъбната система?
Когато говорим за това вградена система (или вградена, интегрирана, вградена) Говорим за компютърна система, проектирана да изпълнява една или няколко много специфични функции, интегрирана в по-голямо оборудване (кола, промишлена машина, домакински уред, медицинско устройство и др.).
Вместо универсален компютър, вградената система комбинира Електронен хардуер по поръчка (микропроцесори, микроконтролери, памети, интерфейси, сензори, изпълнителни механизми) и силно оптимизиран софтуер за контрол или наблюдение на специфичен процес, често при ограничения в реално време, потребление и разходи.
В много случаи потребителят дори не осъзнава, че вътре има компютър: „Мозъкът“ е скрит в интегрална платка или модул.без клавиатура или мишка, може би само с няколко бутона, малък LCD екран, светодиоди или уеб интерфейс за конфигурация и диагностика.
Значителна част от тези системи трябва да реагират в рамките на строги срокове; следователно много от тях са системи в реално времекъдето не е достатъчно да се правят нещата добре: трябва да се правят навреме. Тук се намесват концепции като меки и твърди системи в реално време или използването на специфични RTOS.
Основна архитектура на вградена електронна система
В основата на всяка вградена система намираме Процесорен елемент: микропроцесор, микроконтролер, DSP или SoCОстаналите блокове са организирани около него: памет, входно/изходни модули, комуникации, тактов часовник, захранване, сензори и изпълнителни механизми.
В типична конфигурация процесорът се свързва с другите компоненти чрез Системни шини: шина за данни, адресна шина и управляваща шинаИнструкции, данни и синхронизационни сигнали се обменят по тези шини между процесора, паметта и I/O периферните устройства.
Подсистемата памет съхранява както програмата, така и данните: резидентен код (често в енергонезависима памет) и входни данни, междинни резултати и изходиПаметта може да бъде интегрирана в самия чип (както е при много микроконтролери) или разположена на външни чипове, свързани към шината.
Влизането и излизането са организирани под формата на специализирани I/O периферни устройстваТези блокове включват таймери, аналогово-цифрови преобразуватели (ADC), цифрово-аналогови преобразуватели (DAC), серийни портове (UART, SPI, I²C, CAN), USB интерфейси, Ethernet, цифрови GPIO и др. Тези блокове позволяват на системата да взаимодейства със сензори, изпълнителни механизми, мрежи и потребители.
Важно е да се разбере, че Функционалната структура (процесор, памет, входно/изходни устройства) не винаги съвпада с физическото разделение на чипове или платки.Една интегрална схема може да съдържа процесор, памет и периферни устройства или може да съдържа само част от функционалността. Това, което проектантът вижда, са „функционални подсистеми“, които след това се реализират по най-различни начини.
Хардуерни компоненти: процесор, памет, входно/изходни устройства, тактова честота и захранване
Централният блок е процесорът. Микропроцесорът е интегрална схема, имплементираща процесора. на компютър: той съдържа АЛУ, регистри, управляващо устройство, вътрешни кеш памети и често други помощни функции. Днес често използваме „процесор“ и „микропроцесор“ почти взаимозаменяемо.
Un Микроконтролерът (MCU) е микропроцесор с памет и входно/изходни устройства, интегрирани в един и същ чип.Обикновено включва RAM памет, програмна памет (Flash), таймери, ADC, DAC, комуникационни интерфейси, PWM и др. Поради тази причина се счита за „специализиран компютър на един чип“, идеален за нискобюджетни и ресурсоемки приложения за управление.
Между тези два свята се намират вградените SoC и PC решенията: производители като STMicroelectronics (STPC), AMD (Geode), Motorola (ColdFire) или Intel Те интегрират x86 процесори или други архитектури с контролери на паметта, основни графики и общ входно/изходен контролер, за да предложат компактни платформи, предназначени за вградени системи.
Паметта обикновено е организирана на няколко нива: Основна памет (RAM) за изпълнение на код и данни, енергонезависима памет (Flash, ROM) за фърмуер и, в случай на вградени компютри, високоскоростни L1/L2 кеш памети, както и устройства за масово съхранение (SSD дискове, флаш карти и др.).
Ключов модул е тактов генераторТази система обикновено започва с главен осцилатор (кварцов кристал или RC) и, използвайки PLL, генерира различните необходими честоти. Кварцовите кристали се отличават със своята стабилност и добър баланс между точност и цена; RC осцилаторите намаляват консумацията на енергия за сметка на стабилността.
Накрая, модулът за захранване е отговорен за получаването, от променливотоков или постоянен вход, на напрежения и токове, необходими за всяка част от систематаТук се намесват AC/DC и DC/DC конвертори, линейни или импулсни регулатори, филтри и схеми за наблюдение на напрежението. В системите, захранвани от батерии, консумацията на енергия се превръща в основен приоритет.
Интерфейси, сензори, изпълнителни механизми и презентация
За да наблюдава и контролира физическите процеси, вградената система се нуждае входове от сензори и изходи към изпълнителни механизмиАналоговият и цифровият входно/изходен модул е отговорен за дигитализирането на сигналите, четенето на логически състояния и генерирането на управляващи сигнали.
Аналоговите входове се улавят от АЦП преобразувателиТези сензори ви позволяват да измервате температура, налягане, напрежение, ток, позиция, скорост и др. Цифровите входове отчитат бутони, крайни изключватели или сигнали от други устройства. Цифровите изходи активират светодиоди, релета или захранващи драйвери.
Задвижващите механизми могат да бъдат много разнообразни: електродвигатели, релета, клапани, нагревателни елементии т.н. Много често срещана техника е използването на PWM (импулсно-широчинна модулация) изходи за управление например на скоростта на постояннотокови двигатели или интензитета на лампа.
Що се отнася до потребителския интерфейс, системата може да варира от прости светодиоди и бутони до по-усъвършенствана подсистема за презентация: графични дисплеи, буквено-цифрови LCD дисплеи или сензорни екрани за домашна автоматизацияВ други случаи „фронт-ендът“ за потребителя е уеб интерфейс, обслужван от самата вградена система.
Свързаността играе съществена роля: много системи трябва да комуникират с други устройства или с мрежата. За да се постигне това, интерфейси като RS-232, RS-485, SPI, I²C, CAN, USB, Ethernet/IP, Wi-Fi, GSM/GPRS, DSRCи т.н. В зависимост от приложението ще бъдат избрани индустриални шини, прости серийни комуникации или пълни IP мрежи.
Микропроцесори, микроконтролери, цифрови сигнални процесори (DSP), FPGA и SoCs
Un универсален микропроцесор Фокусира се върху предоставянето на висока изчислителна мощност, с дълбоки кешове, усъвършенствани конвейери и възможност за работа със сложни операционни системи. Той формира основата на вградени персонални компютри, панелни компютри и системи, които изискват богати интерфейси или висок процесорен капацитет.
Un микроконтролер (MCU) Той жертва сурова мощност в замяна на интеграция и ниска консумация на енергия. Чрез включването на памет, входно/изходни устройства, таймери, аналогово-цифров преобразувател (ADC), цифрово-аналогов преобразувател (DAC) и комуникации в един чип, той значително опростява проектирането на системи за управление, сензори, малки роботи, инструменти и потребителска електроника.
Лос DSP (Цифров процесор на сигнала) Това са процесори, оптимизирани за интензивна обработка на цифрови сигнали: аудио, видео, радар, телекомуникации и др. Архитектурата им е проектирана за бързи MAC (умножение-натрупване) операции, ефективно използване на паметта и конвейери, тясно свързани с алгоритмите за филтриране и трансформация.
на FPGAs Те представляват друг подход: те са масиви от програмируеми логически блокове и ресурси за взаимосвързване, които позволяват внедряването на персонализиран хардуер, без да се произвежда специфичен чип. Схемите се дефинират с помощта на езици за описание на хардуера (HDL), а FPGA е конфигурирана да емулира процесори, контролери, цифрови филтри или други блокове.
Терминът SoC (Система-върху-чип) Това е широк термин и често се използва за описание на чипове, които интегрират процесор (или няколко), памет, периферни устройства, комуникационни контролери и понякога FPGA или DSP блокове, всичко в един корпус. Много усъвършенствани микроконтролери и съвременни процесори за приложения могат да се считат за SoC, като например някои търговски RISC-V процесори.
Платформи за разработка: Arduino, Raspberry Pi и комплекти
За улесняване на проектирането и експериментирането, има развойни платки или развойни комплектиТова са платки, които интегрират целевия микроконтролер, микропроцесор или FPGA, заедно с компонентите, необходими за неговата работа, и серия от тестови интерфейси (конектори, светодиоди, бутони, примерни сензори и др.).
Най-популярният пример за платформа, базирана на микроконтролер, е ArduinoНа хардуерно ниво, платката Arduino е основно микроконтролер с всичко необходимо за функциониране: регулиране на напрежението, кристал или осцилатор, достъпни пинове и, в много модели, интегриран USB интерфейс.
Най-голямата сила на Arduino се крие в неговата софтуерна екосистема: тя предоставя... интегрирана среда за разработка (IDE) и слой за абстракция Това значително опростява процеса на компилиране, зареждане на фърмуер и достъп до периферни устройства. В резултат на това хиляди студенти, производители и професионалисти са го възприели за бързо прототипиране на вградени системи.
Освен това, Raspberry Pi Това е SBC (Single-Board Computer), което означава цялостен компютър на една платка: мощен процесор, RAM памет, карта за съхранение, мрежова свързаност, USB портове, HDMI и др. Обикновено работи с операционни системи Linux (като Raspbian) и позволява разработването на приложения, които изискват повече изчислителни ресурси, графичен интерфейс или интензивно използване на мрежи.
Много проекти съчетават двата свята: a прост микроконтролер за ниско ниво на управление в реално време (бързо отчитане на сензори, ШИМ за двигатели) и Raspberry Pi или друг SBC за слоя от високо ниво (потребителски интерфейс, IP комуникации, регистриране на данни, изкуствен интелект). FPGA и други комплекти за разработка допълват гамата от опции в зависимост от сложността на приложението.
История и еволюция на софтуера за вградени системи
Първите вградени системи, особено в комуникациите (електромеханични превключватели през 60-те години на миналия век), вече въведоха идеята за „Системи за управление със съхранени програми“Вместо да се свързва логиката с хардуер, тя беше преместена в програма, което представляваше радикална промяна в гъвкавостта.
По това време Инструментите за разработка бяха много елементарниКомпилаторите на езици на високо ниво бяха оскъдни и почти всичко се правеше на асемблер. Всеки проект пренаписваше голяма част от софтуера от нулата, с много малко повторна употреба и на практика без стандартни библиотеки.
Идеята за създаване на библиотеки за многократна употреба и операционни системи, специално за вградени системиМного от тези операционни системи обаче бяха написани на асемблерен език и не бяха много преносими: когато микропроцесорът се смени, операционната система и приложенията трябваше да бъдат пренаписани.
С появата и узряването на езика C, вратата се отвори към ефективни, стабилни и преносими операционни системиLinux е най-очевидният пример, но не и единственият. От 80-те години на миналия век нататък се появи широка гама от операционни системи за вградени системи, както собствени, така и такива с отворен код.
Днес откриваме от Лека RTOS (VxWorks, pSOS, Nucleus, FreeRTOS, µC/OS-II) Това включва вградени версии на по-големи системи (Windows CE, QNX, Embedded Linux). Много прости системи обаче все още не използват операционна система, работеща на главен цикъл, структуриран с прекъсвания.
Системи за реално време и RTOS
Un система в реално време Това е система, която трябва да реагира на външни събития в рамките на добре определени срокове. Не става въпрос просто за „бързина“, а за гарантиране, че определени операции ще се извършат преди известен краен срок.
Традиционно се разграничават две категории: меко реално време y трудно реално времеВ мека система, понякога пропускането на краен срок може да влоши производителността (например, леко забавяне на звука на компютъра). В твърда система пропускането на краен срок може да доведе до критична повреда или сериозни последици (като например неизправност в системата за управление на полета или спирачната система на самолета).
С увеличаване на сложността на софтуера, поддържането на тази темпоралност с прост контролен цикъл става трудноразрешимо. Следователно, в сложни системи,... операционна система в реално време (RTOS) който осигурява планиране на задачи, управление на прекъсвания, опашки, семафори, таймери и други услуги.
RTOS улеснява едновременното изпълнение на множество задачи (отчитане на сензори, комуникации, потребителски интерфейс, регистриране на данни и др.), като същевременно изпълнява... строги временни ограниченияОсвен това, много RTOS интегрират комуникационни стекове (TCP/IP, CANopen, Modbus и др.), които опростяват мрежовата интеграция.
Вграденият Linux заема специално място: той използва същото Linux ядро, но коригирано, подрязано и оптимизирано проектиран да работи на устройства с ограничени ресурси. В зависимост от случая, може да бъде допълнен с разширения за работа в реално време или да се използва в приложения, където времето не е критично.
Класификация на вградените системи
Можем да класифицираме вградените системи по няколко начина. Едно от най-разпространените групирания е според техните изисквания за производителност и функционалност в:
От една страна имаме вградени системи в реално времеТези системи, които вече обсъдихме, могат да бъдат „меки“ или „твърди“ в зависимост от важността на точното спазване на сроковете. Пример за „мека“ система би била аудио системата на компютър; пример за „твърда“ система би била системата за управление на полета на самолет.
Има и самостоятелни вградени системиТе не изискват хост компютър, за да изпълняват функцията си. Те са автономни и изпълняват задачата си със собствен процесор, памет и входно/изходни устройства: микровълнова фурна, пералня или конзола за видеоигри са добри примери.
Лос вградени системи в мрежата Те се свързват към кабелна или безжична мрежа (LAN, WAN, Wi-Fi, мобилни мрежи), за да взаимодействат с друго оборудване или услуги. Типични примери включват банкомати, свързани системи за домашна сигурност и интелигентни автомати за продажба.
И накрая, има мобилни вградени системиМалки, преносими и проектирани да придружават потребителя: цифрови фотоапарати, мобилни телефони, смарт часовници, устройства за проследяване на активност и др. Те обикновено са много ограничени по отношение на памет и консумация на енергия, но трябва да предлагат удобни за потребителя интерфейси и свързаност.
Примери за приложения от реалния свят
Списъкът с примери от реалния свят е практически безкраен, но си струва да разгледаме някои представителни типове, за да видим... как вградените системи влияят на толкова много аспекти на съвременния живот.
В битовата сфера, системите на централно отопление Те използват вградени контролери за регулиране на температурата чрез интелигентни термостати, действащи върху котли, помпи или клапани. Това позволява комфорт, икономия на енергия и дистанционно управление.
El GPS позициониране Той интегрира приемник с вградена система, която обработва сателитни сигнали, изчислява позиция, скорост и време и представя информацията в автомобилни навигационни системи, мобилни телефони или преносими устройства.
Лос медицински устройства Те са друга ключова област: пейсмейкърите, имплантируемите дефибрилатори, инсулиновите помпи и мониторите за жизнени показатели използват вградени системи за обработка на данни от сензори, вземане на критични решения и в много случаи изпращане на информация до облака за дистанционно наблюдение.
В автомобилната индустрия почти цялото превозно средство се управлява от контролери: блок за управление на двигателя, ABS системи, контрол на сцеплението, въздушна възглавница, сервоусилвател на волана, развлекателни системи, навигация, асистенти при шофиране (ADAS) и др. Един съвременен автомобил може да побере десетки или дори повече от сто микроконтролера.
В обществения транспорт откриваме системи от автоматично събиране на такси (AFC) с вендинг машини, валидатори, турникети за достъп и смарт карти. Всеки елемент интегрира една или повече вградени системи, които управляват плащанията, валидациите, комуникациите в бекенда и сигурността на данните.
Лос банкомати (ATM) Те комбинират вграден компютър, свързан към мрежата на банката, със специфични модули за четене на карти, защитена клавиатура и банкомат и приемник. Вградената система управлява взаимодействието между потребителя и хардуера, докато банковият сървър валидира и записва транзакциите.
В индустрията, фабрични роботи Те използват интегрирани контролери, които координират задвижващи механизми, сензори за позиция, системи за зрение и комуникации с други елементи на инсталацията. Те трябва да бъдат бързи, точни и безопасни и все повече интегрират изкуствен интелект и алгоритми за машинно обучение.
Друг актуален пример е станции за зареждане на електрически превозни средствакоито включват контролери за управление на товара, взаимодействие с превозното средство, показване на информация на екрани, комуникация с платформи за управление и докладване на неизправности или нужди от поддръжка.
И накрая, Интерактивни павилиони и машини за самообслужване (в летища, търговски центрове, болници, публични администрации и др.) интегрират вградени компютри или усъвършенствани SoC, които управляват сензорни екрани, платежни системи, принтери за билети и мрежови комуникации, за да предлагат 24/7 услуги.
Индустриално значение и предимства на вградените системи
В индустриалната среда вградените системи са основата на автоматизация, мониторинг и контрол на процеситеТе ви позволяват да управлявате производствени линии, фурни, двигатели, роботи, опаковъчни системи, вътрешна логистика и много други.
В сравнение с по-общите решения, добре проектираната вградена система предлага изпълнение на задачи за контрол и автоматизация с висока прецизност, много кратки времена за реакция и огромна надеждност, като се фокусира върху добре дефинирана функция.
Работата със специализиран хардуер и оптимизиран софтуер означава, че можете решаване на проблеми с помощта на специфични алгоритми, като се възползва максимално от възможностите на процесора, архитектурата на паметта и наличните периферни устройства.
Освен това, тези системи обикновено са по-икономичен и компактен отколкото сглобяването на конвенционален компютър и универсални периферни устройства: чрез елиминиране на ненужните слотове за разширение и настройване на хардуера само според нуждите на приложението, размерът, цената и консумацията на енергия се намаляват.
Модулният дизайн и високата степен на свързаност позволяват на промишлените предприятия да свързват множество вградени устройства, създавайки мрежи от сензори, изпълнителни механизми и контролери, които улесняват наблюдението в реално време, проследимостта и прогнозната поддръжка.
Обучение и умения в областта на вградените системи
Предвид тежестта му в индустрията и съвременните технологии, многобройни Магистърските степени и университетските курсове са посветени на вградените системиЦелта му е бъдещият инженер не само да програмира, но и да има цялостно разбиране за хардуера, софтуера, комуникациите и критериите за проектиране.
Тези програми обхващат теми като: въведение във вградените системи, микроконтролери, цифрови сигнални процесори (DSP) и SoCsОсвен това, практическа работа се извършва със симулатори, специфични развойни платки (например от Microchip), Arduino или други платформи.
От студента се очаква да развие умения като изберете най-подходящия микроконтролер или DSP за дадено приложение, интерпретират информационни листове на производители на полупроводници, проектират схеми на електронни платки, обработват аналогово-цифрово и цифро-аналогово преобразуване или прилагат техники за цифрова обработка на сигнали.
Методологически тези теми обикновено разчитат на виртуални учебни платформиТази платформа съдържа теоретични материали, практически ръководства, описания на дейности и форуми за обучение. Оценяването често се основава на практически дейности (PEC) и цялостни проекти за проектиране на вградени системи.
Съдържанието е допълнено със специализирана библиография, достъп до колекции от електронни книги (O'Reilly, Springer, Elsevier) и техническа документация от производители като Microchip, Texas Instruments, Arduino, Raspberry Pi или инструменти като Proteus и Matlab/Simulink.
Вградени Linux и други опции за операционни системи
Когато приложението го изисква, вградената система може да изпълни повече или по-малко завършена операционна системаВ света на RTOS съществуват VxWorks, QNX, Nucleus, pSOS, FreeRTOS и други, предназначени за фино управление в реално време.
В други ситуации е полезно да се използва Вграден Линукскоето не е нищо повече от екземпляр на Linux, адаптиран към ограничени ресурси: услугите са орязани, ядрото е коригирано и са включени само основните компоненти за целевото устройство.
Вграденият Linux поддържа същото ядро като настолния Linux, но с намален размер, по-ниска консумация на процесор и памет и набор от функции, съобразени с приложението. Обикновено се изграждат персонализирани образи, които включват точно необходимите драйвери, библиотеки и приложения.
Основното предимство е, че Софтуерът е многократно използваем на различни платформи.Дори ако основният хардуер се промени, голяма част от кода може да бъде пренесена с малки модификации. Това е в контраст с ранните системи, базирани на асемблер, където краят на живота на микропроцесора означаваше пренаписване на всичко.
Успоредно с това, все още съществуват системи без специализирани операционни системи, особено в малки микроконтролери, където добре структуриран главен контур и няколко прекъсвания контролират цялата система с минимални разходи и сложност.
Разработка на вграден софтуер и професионални профили
Лос разработчици на софтуер за вградени системи Те работят много близо до хардуера: конфигурират периферни регистри, оптимизират критични процедури, управляват прекъсванията и в много случаи се грижат за консумацията, управлението на захранването и стартирането от ниско ниво.
В исторически план доминиращият език е бил CC++ е допълнен от асемблерен език в най-критичните части. С течение на времето C++ придоби известност благодарение на модулния и многократно използваем характер, стига да се използва по контролиран начин, за да се избегне прекомерна консумация на ресурси.
Интересното е, че дори повече „висши“ езици като Python и JavaScript са намерили своята ниша В определени вградени среди, особено когато се работи на вграден Linux или SBC с повече ресурси и когато е важно да се ускори разработката, а не максималната оптимизация.
Обичайната работа включва от драйвери на устройства и слоеве за абстракция на хардуера Това включва комуникационни протоколи, алгоритми за управление, потребителски интерфейси и логика на приложението. Качеството на дизайна е от решаващо значение за надеждността, поддръжката и мащабируемостта на продукта.
Много компании избират да възлагане на част от разработката на вграден софтуер на външни изпълнители на екипи, специализирани в C/C++, RTOS, вграден Linux и специфични платформи, особено когато нямат това ноу-хау вътрешно или когато сроковете са много кратки.
В светлината на всичко гореизложено е ясно, че вградените системи са невидимият гръбнак на съвременните технологии: Те съчетават специфичен хардуер, оптимизиран софтуер, комуникации и контрол в реално време. да създадат безопасни, ефикасни и достъпни продукти и да представляват професионална област с огромен потенциал за тези, които владеят както електрониката, така и програмирането на ниско ниво.