Sistemes encastats: què són, com funcionen i exemples

  • Un sistema encastat integra maquinari i programari específics per controlar o monitoritzar processos concrets, sovint amb requisits de temps real.
  • La seva arquitectura es basa en processadors (MCU, MPU, DSP, SoC), memòries, mòduls d'E/S, rellotge, alimentació, sensors, actuadors i comunicacions.
  • Apliquen a sectors com automoció, indústria, medicina, consum, transport i energia, aportant precisió, fiabilitat, baix cost i alt grau d'automatització.
  • El desenvolupament de sistemes encastats exigeix ​​competències en electrònica digital, programació en C/C++, RTOS o Linux embegut i disseny orientat a requisits industrials.

sistemes encastats

Al nostre dia a dia convivim amb desenes de sistemes embeguts sense adonar-nos: des del cotxe i la rentadora fins al caixer automàtic, el router de casa o un marcapassos. Tots ells amaguen un o diversos microprocessadors dissenyats per a una tasca molt concreta, lluny de la idea clàssica de “ordinador” que tenim al cap.

Darrere d'aquesta aparent senzillesa hi ha un món tècnic enorme: microcontroladors, DSP, FPGAs, sistemes operatius de temps real, busos, sensors, actuadors i piles de comunicacions. Entendre com encaixa tot això és clau per a qualsevol enginyer de sistemes, automatització, robòtica o electrònica que vulgui dissenyar productes eficients, fiables i competitius.

Què és un sistema encastat o embegut

Quan parlem de sistema encastat (o embegut, integrat, incrustat) ens referim a un sistema de computació dissenyat per realitzar una o unes poques funcions molt específiques, integrat dins un equip més gran (un cotxe, una màquina industrial, un electrodomèstic, un dispositiu mèdic, etc.).

En comptes d'un PC generalista, un sistema embegut combina maquinari electrònic a mida (microprocessadors, microcontroladors, memòries, interfícies, sensors, actuadors) i un programari molt optimitzat per controlar o monitoritzar un procés concret, sovint sota restriccions de temps real, consum i cost.

En molts casos l'usuari ni tan sols és conscient que hi ha un ordinador a dins: el “cervell” queda ocult en una placa o mòdul integrat, sense teclat ni ratolí, potser només amb uns quants botons, una petita pantalla LCD, leds o una interfície web per a configuració i diagnòstic.

Una part important daquests sistemes ha de reaccionar dins de terminis temporals estrictes; per això, molts són sistemes de temps real, on no n'hi ha prou de fer les coses bé: cal fer-les a temps. Aquí és on entren conceptes com a sistemes de temps real tous i durs, o l'ús de RTOS específics.

Arquitectura bàsica d'un sistema electrònic encastat

Al cor de tot sistema embegut trobem un element de processament: microprocessador, microcontrolador, DSP o SoC. Al voltant s'organitza la resta de blocs: memòria, mòduls d'entrada/sortida, comunicacions, rellotge, font d'alimentació, sensors i actuadors.

En un esquema típic, el processador es connecta a la resta d'elements mitjançant busos de sistema: bus de dades, bus d'adreces i bus de control. Sobre aquests busos s'intercanvien instruccions, dades i senyals de sincronització entre la CPU, les memòries i els perifèrics d'E/S.

El subsistema de memòria emmagatzema tant el programa com les dades: codi resident (sovint en memòria no volàtil) i dades d'entrada, resultats intermedis i sortides. La memòria pot estar integrada al mateix xip (com en molts microcontroladors) o localitzada en xips externs connectats al bus.

L'entrada i la sortida s'organitza en forma de perifèrics d'E/S especialitzats: temporitzadors, convertidors analògic-digital (ADC), digital-analògic (DAC), ports sèrie (UART, SPI, I²C, CAN), interfícies USB, Ethernet, GPIO digitals, etc. Aquests blocs permeten que el sistema interactuï amb sensors, actuadors, xarxes i usuaris.

És important entendre que la estructura funcional (CPU, memòria, E/S) no coincideix sempre amb la divisió física en xips o plaques: un mateix circuit integrat pot contenir CPU, memòria i perifèrics, o contenir només una part de la funcionalitat. El que el dissenyador veu són “subsistemes funcionals” que després es materialitzen de maneres molt variades.

Elements de maquinari: CPU, memòria, E/S, rellotge i energia

El bloc central és el processador. Un microprocessador és una implementació en circuit integrat de la CPU d'un ordinador: conté l'ALU, registres, unitat de control, caixets internes i, sovint, altres funcions de suport. Avui solem fer servir “processador” i “microprocessador” gairebé com a sinònims.

Un microcontrolador (MCU) és un microprocessador amb memòria i E/S integrades al mateix xip. Sol incloure RAM, memòria de programa (Flash), temporitzadors, ADC, DAC, interfícies de comunicació, PWM, etc. Per això se'l considera “un computador dedicat en un sol xip”, ideal per a aplicacions de control de baix cost i recursos ajustats.

Entre tots dos mons hi ha les solucions tipus SoC i PC embeguts: fabricants com STMicroelectronics (STPC), AMD (Geode), Motorola (ColdFire) o Intel integren CPU x86 o altres arquitectures amb controladors de memòria, gràfics bàsics i E/S comuns per oferir plataformes compactes pensades per a sistemes encastats.

La memòria s'organitza típicament a diversos nivells: memòria principal (RAM) per a codi i dades en execució, memòria no volàtil (Flash, ROM) per al microprogramari i, en el cas de PC embeguts, caixets L1/L2 d'alta velocitat, així com dispositius d'emmagatzematge massiu (discos SSD, targetes Flash, etc.).

Un mòdul clau és el generador de rellotge, que sol partir d'un oscil·lador principal (cristall de quars o RC) i, mitjançant PLL, genera les diferents freqüències necessàries. Els vidres de quars destaquen per la seva estabilitat i el bon compromís entre precisió i cost; els oscil·ladors RC redueixen consum a costa de menor estabilitat.

Finalment, el mòdul d'alimentació s'encarrega d'obtenir, a partir d'una entrada de CA o CC, les tensions i corrents requerits per cada part del sistema. Aquí entren els convertidors AC/DC i DC/DC, reguladors lineals o commutats, filtres i circuits supervisors de tensió. En sistemes alimentats per bateria, el consum es converteix en un requisit de primer nivell.

Interfícies, sensors, actuadors i presentació

Per poder vigilar i controlar processos físics, un sistema embegut necessita entrades procedents de sensors i sortides cap a actuadors. El mòdul d'E/S analògics i digitals s'encarrega de digitalitzar senyals, llegir estats lògics i generar senyals de comandament.

Les entrades analògiques es capturen mitjançant convertidors ADC, que permeten mesurar temperatura, pressió, tensió, corrent, posició, velocitat, etc. Les entrades digitals llegeixen polsadors, finals de carrera o senyals d'altres dispositius. Les sortides digitals activen leds, relés o drivers de potència.

Els actuadors poden ser molt variats: motors elèctrics, relés, vàlvules, elements calefactors, etc. Una tècnica molt habitual és fer servir sortides PWM (modulació per amplada de pols) per controlar, per exemple, la velocitat de motors de corrent continu o la intensitat d'un llum.

Pel que fa a la interfície amb l'usuari, el sistema pot comptar des d'uns simples leds i botons fins a un subsistema de presentació més avançat: pantalles gràfiques, LCD alfanumèriques o pantalles tàctils per a domòtica. En altres casos, el front-end per a l'usuari és una interfície web servida pel propi sistema embegut.

La connectivitat hi juga un paper essencial: molts sistemes necessiten comunicar-se amb altres equips o amb la xarxa. Per això s'integren interfícies com RS-232, RS-485, SPI, I²C, CAN, USB, Ethernet/IP, Wi-Fi, GSM/GPRS, DSRC, etc. Segons l'aplicació, s'optarà per busos industrials, comunicacions sèrie senzilles o xarxes IP completes.

Microprocessadors, microcontroladors, DSP, FPGA i SoC

Un microprocessador generalista se centra a oferir molta potència de càlcul, amb caixets profundes, pipelins avançats i possibilitat d'executar sistemes operatius complexos. És la base de PCs encastats, panell PCs i sistemes que requereixen interfícies riques o gran capacitat de procés.

Un microcontrolador (MCU) sacrifica potència bruta a canvi dintegració i baix consum. En incloure memòria, E/S, temporitzadors, ADC, DAC i comunicacions en un sol xip, simplifica enormement el disseny de sistemes de control, sensors, petits robots, instrumentació i electrònica de consum.

Els DSP (processador de senyal digital) són processadors optimitzats per al tractament intensiu de senyals digitals: àudio, vídeo, radar, telecomunicacions, etc. La seva arquitectura està pensada per a operacions MAC (multiplicació-acumulació) ràpides, ús eficient de memòria i pipelins molt ajustats a algorismes de filtratge i transformada.

Les FPGAs representen un altre enfocament: són matrius de blocs lògics programables i recursos d'interconnexió que permeten implementar maquinari “a mida” sense fabricar un xip específic. A través de llenguatges de descripció maquinari (HDL) es defineixen els circuits, i la FPGA es configura per emular processadors, controladors, filtres digitals o altres blocs.

El terme SoC (System-on-Chip) és ampli i sol utilitzar-se per descriure xips que integren CPU (o diverses), memòria, perifèrics, controladors de comunicacions, de vegades blocs de FPGA o DSP, tot en un sol encapsulat. Molts microcontroladors avançats i processadors d'aplicacions moderns es podrien considerar SoC com algunes CPU RISC‑V comercials.

Plataformes de desenvolupament: Arduino, Raspberry Pi i kits

Per facilitar el disseny i l'experimentació hi ha les plaques de desenvolupament o development kits. Es tracta de plaques que integren el microcontrolador, el microprocessador o l'FPGA objectiu juntament amb els components necessaris per al seu funcionament i una sèrie d'interfícies de prova (connectors, leds, botons, sensors d'exemple, etc.).

L'exemple més popular de plataforma basada en microcontrolador és Arduino. A nivell maquinari, una placa Arduino és bàsicament un microcontrolador amb tot el necessari per funcionar: regulació de tensió, vidre o oscil·lador, pins accessibles i, en molts models, interfície USB integrada.

La gran força d'Arduino està al seu ecosistema de programari: proporciona un entorn de desenvolupament (IDE) i una capa d'abstracció que simplifica molt el procés de compilació, càrrega del microprogramari i accés a perifèrics. Això ha fet que milers d'estudiants, makers i professionals l'adoptin per a prototipat ràpid de sistemes encastats.

D'altra banda, Raspberry Pi és un SBC (Single-Board Computer), és a dir, un ordinador complet en una única placa: CPU potent, RAM, emmagatzematge mitjançant targeta, connectivitat de xarxa, connectors USB, HDMI, etc. Sol executar sistemes Linux (com Raspbian) i permet desenvolupar aplicacions que requereixen més recursos de còmput, interfície gràfica o ús intensiu de xarxes.

En molts projectes es combinen tots dos mons: un microcontrolador senzill per al control temps real de baix nivell (lectura ràpida de sensors, PWM per a motors) i una Raspberry Pi o un altre SBC per a la capa d'alt nivell (interfície d'usuari, comunicacions IP, registre de dades, IA). FPGA i altres kits de desenvolupament completen el ventall d'opcions segons la complexitat de l'aplicació.

Història i evolució del programari per a sistemes encastats

Els primers sistemes encastats, especialment en comunicacions (commutadors electromecànics als anys 60), ja van introduir la idea de “sistemes de control mitjançant programa emmagatzemat”: en lloc de cablejar la lògica en maquinari es traslladava a un programa, cosa que va suposar un canvi radical en flexibilitat.

En aquella època les eines de desenvolupament eren molt rudimentàries: escassejaven els compiladors de llenguatges d'alt nivell i gairebé tot es feia en assemblador. Cada projecte reescrivia gran part del programari des de zero, amb molt poca reutilització i pràcticament sense llibreries estàndard.

Fins a finals dels 70 no es va començar a consolidar la idea de crear llibreries reutilitzables i sistemes operatius específics per a encastats. Tot i això, molts d'aquests sistemes OS estaven escrits en assemblador i eren poc o gens portables: quan canviava el microprocessador, calia reescriure el sistema operatiu i les aplicacions.

Amb l'arribada i la maduresa del llenguatge C es va obrir la porta a sistemes operatius eficients, estables i portables. Linux n'és l'exemple més evident, però no pas l'únic. A partir dels anys 80 va sorgir una gran oferta de sistemes operatius per a sistemes encastats, tant propietaris com oberts.

Avui trobem des de RTES lleugers (VxWorks, pSOS, Nucleus, FreeRTOS, µC/OS-II) fins a versions embegudes de sistemes més grans (Windows CE, QNX, Linux embegut). Molts sistemes senzills, però, segueixen sense fer servir sistema operatiu, funcionant amb un bucle principal estructurat amb interrupcions.

Sistemes de temps real i RTOS

Un sistema de temps real és aquell que ha de respondre a esdeveniments externs dins de terminis temporals ben definits. No es tracta únicament de “ser ràpid”, sinó de garantir que certes operacions es produeixin abans d'un instant límit conegut.

Es distingeixen tradicionalment dues categories: temps real tou y temps real dur. En un sistema tou, perdre ocasionalment una data límit pot degradar el rendiment (per exemple, un petit retard al so d'un ordinador). En un sistema dur, incomplir un termini pot provocar un error crític o conseqüències greus (com el control de vol d'un avió o un sistema de frenada).

A mesura que la complexitat del programari creix, mantenir aquesta temporalitat amb un simple bucle de control es torna intractable. Per això, en sistemes complexos es recorre a un sistema operatiu de temps real (RTOS) que proporciona planificació de tasques, gestió d'interrupcions, cues, semàfors, temporitzadors i altres serveis.

Un RTOS facilita l'execució concurrent de múltiples tasques (lectura de sensors, comunicacions, interfície d'usuari, registre de dades, etc.) complint restriccions temporals estrictes. A més, molts RTOS integren piles de comunicacions (TCP/IP, CANopen, Modbus, etc.) que simplifiquen la incorporació de xarxes.

Linux embegut ocupa un lloc especial: utilitza el mateix nucli de Linux però ajustat, retallat i optimitzat per executar-se en dispositius amb recursos limitats. Depenent del cas, es pot complementar amb extensions de temps real o utilitzar-se en aplicacions on la temporalitat no sigui tan crítica.

Classificació dels sistemes encastats

Podem classificar els sistemes encastats de diverses maneres. Una de les més esteses els agrupa en funció de la seva exercici i requisits funcionals a:

D'una banda tenim els sistemes embeguts en temps real, que ja hem comentat, i que poden ser tous o durs segons la importància de complir exactament els terminis. Exemple de sistema tou seria el sistema dàudio dun PC; exemple de sistema dur, el control de vol duna aeronau.

També existeixen els sistemes embeguts independents, que no necessiten un ordinador amfitrió per complir la seva funció. Són autònoms i fan la seva tasca amb la seva pròpia CPU, memòria i E/S: un forn microones, una rentadora o una consola de videojocs en són bons exemples.

Els sistemes embeguts en xarxa es connecten a una xarxa cablejada o sense fil (LAN, WAN, Wi‑Fi, xarxes mòbils) per interactuar amb altres equips o serveis. Exemples típics són caixers automàtics, sistemes de seguretat domèstica connectats o màquines expenedores intel·ligents.

Finalment, hi ha els sistemes embeguts mòbils, petits, portàtils i pensats per acompanyar l'usuari: càmeres digitals, telèfons mòbils, rellotges intel·ligents, polseres d'activitat, etc. Solen estar molt restringits en memòria i consum, però han d'oferir interfícies amigables i connectivitat.

Exemples d'aplicacions reals

La llista d'exemples reals és pràcticament interminable, però convé repassar alguns tipus representatius per veure com els sistemes encastats impacten en tantes facetes de la vida moderna.

En l'àmbit domèstic, sistemes de calefacció central utilitzen controladors encastats per regular temperatura mitjançant termòstats intel·ligents, actuant sobre calderes, bombes o vàlvules. Això permet confort, estalvi energètic i control remot.

El posicionament GPS integra un receptor amb un sistema embegut que processa els senyals de satèl·lits, calcula posició, velocitat i temps, i presenta la informació a navegadors de cotxe, mòbils o dispositius de mà.

Els dispositius mèdics són un altre camp clau: marcapassos, desfibril·ladors implantables, bombes d'insulina o monitors de constants vitals utilitzen sistemes encastats per processar dades de sensors, prendre decisions crítiques i, en molts casos, enviar la informació al núvol per a supervisió remota.

En automoció, gairebé tot el vehicle està governat per controladors: unitat de gestió del motor, sistemes ABS, control de tracció, coixí de seguretat, direcció assistida, sistemes d'entreteniment, navegació, ajuda a la conducció (ADES), etc. Un cotxe modern pot acollir desenes o fins i tot més d'un centenar de microcontroladors.

En transport públic trobem sistemes de cobrament automàtic de tarifes (AFC) amb màquines expenedores, validadors, torns d'accés i targetes intel·ligents. Cada element integra un o diversos sistemes encastats que gestionen pagaments, validacions, comunicacions amb el backend i seguretat de dades.

Els caixers automàtics (ATM) combinen un PC encastat connectat a la xarxa del banc amb mòduls específics de lectura de targetes, teclat segur, dispensador i receptor d'efectiu. El sistema embegut gestiona la interacció amb l'usuari i el maquinari mentre el servidor bancari valida i registra les operacions.

A la indústria, els robots de fàbrica empren controladors integrats que coordinen actuadors, sensors de posició, sistemes de visió i comunicacions amb altres elements de la planta. Han de ser ràpids, precisos i segurs, i cada cop integren més algorismes d'IA i aprenentatge automàtic.

Un altre exemple actual són les estacions de recàrrega per a vehicles elèctrics, que incorporen controladors per gestionar la càrrega, interactuar amb el vehicle, mostrar informació en pantalles, comunicar-se amb plataformes de gestió i reportar errors o necessitats de manteniment.

Finalment, els quioscos interactius i màquines d'autoservei (a aeroports, centres comercials, hospitals, administracions públiques, etc.) integren PCs embeguts o SoC avançats que gestionen pantalles tàctils, sistemes de pagament, impressores de tiquets i comunicacions de xarxa per oferir serveis 24/7.

Importància industrial i avantatges dels sistemes embeguts

A l'entorn industrial, els sistemes encastats són la base de automatització, monitorització i control de processos. Permet gestionar línies de producció, forns, motors, robots, sistemes d'empaquetatge, logística interna i un llarg etcètera.

Enfront de solucions més genèriques, un sistema embegut ben dissenyat ofereix execució de tasques de control i automatització amb gran precisió, temps de resposta molt ajustats i una enorme fiabilitat, en centrar-se en una funció ben fitada.

Treballar amb maquinari dedicat i programari optimitzat implica que es poden resoldre problemes mitjançant algorismes específics, explotant al màxim les capacitats del processador, larquitectura de memòria i els perifèrics disponibles.

A més, aquests sistemes solen ser més econòmics i compactes que muntar un PC convencional i perifèrics genèrics: en eliminar ranures dexpansió exnecessàries i ajustar el maquinari només al que laplicació necessita, es redueixen mida, cost i consum.

El disseny modular i l'alta connectivitat permeten que una planta industrial interconnecti múltiples dispositius encastats, creant xarxes de sensors, actuadors i controladors que faciliten la supervisió en temps real, la traçabilitat i el manteniment predictiu.

Formació i competències en sistemes encastats

Donat el seu pes a la indústria ia la tecnologia actual, nombrosos màsters i assignatures universitàries estan dedicats a sistemes encastats. El seu objectiu és que el futur enginyer no només programi, sinó que entengui de manera integral maquinari, programari, comunicacions i criteris de disseny.

En aquests programes s'aborden blocs com ara: introducció als sistemes encastats, microcontroladors, processadors digitals de senyal (DSP) i SoC. A més, es treballa de manera pràctica amb simuladors, plaques de desenvolupament específiques (per exemple de Microchip), Arduino o altres plataformes.

S'espera que l'estudiant desenvolupi competències com seleccionar el microcontrolador o DSP més adequat per a una aplicació, interpretar fulls de dades de fabricants de semiconductors, dissenyar esquemes electrònics de targetes, manejar conversió A/D i D/A o aplicar tècniques de processament digital de senyals.

Metodològicament, aquestes assignatures solen recolzar-se en plataformes virtuals d'aprenentatge, on es publiquen materials teòrics, guies de pràctiques, enunciats d'activitats i fòrums de tutoria. L'avaluació sovint es basa en activitats pràctiques (PEC) i projectes de disseny d'un sistema embegut complet.

Els continguts es completen amb bibliografia especialitzada, accés a col·leccions de llibres electrònics (O'Reilly, Springer, Elsevier) i documentació tècnica de fabricants com Microchip, Texas Instruments, Arduino, Raspberry Pi o eines com Proteus i Matlab/Simulink.

Linux embegut i altres opcions de sistema operatiu

Quan l'aplicació ho requereix, un sistema embegut pot executar un sistema operatiu més o menys complet. Al món dels RTOS estan VxWorks, QNX, Nucleus, pSOS, FreeRTOS i altres, pensats per a control fi de temps real.

En altres situacions interessa fer servir Linux embegut, que no és altra cosa que una instància de Linux adaptada a recursos limitats: es retallen serveis, s'ajusta el nucli i s'hi inclouen només els components imprescindibles per al dispositiu objectiu.

Linux embegut manté el mateix nucli que un Linux descriptori, però amb mida reduïda, menor consum de CPU i memòria i un conjunt de funcions adaptat a laplicació. Habitualment es construeixen imatges personalitzades que inclouen exactament els drivers, llibreries i aplicacions que es necessiten.

L'avantatge principal és que el programari és reutilitzable entre plataformes: encara que canvieu el maquinari subjacent, gran part del codi es pot portar amb canvis menors. Això contrasta amb els primers sistemes basats en assemblador, on la fi de vida del micro suposava reescriure-ho tot.

En paral·lel, segueixen existint sistemes sense US dedicats, especialment en microcontroladors petits, on un llaç principal ben estructurat i algunes interrupcions controlen la totalitat del sistema amb un cost i complexitat mínims.

Desenvolupament de programari embegut i perfils professionals

Els desenvolupadors de programari per a sistemes encastats treballen molt a prop del maquinari: configuren registres de perifèrics, optimitzen rutines crítiques, gestionen interrupcions i, en molts casos, es preocupen de consums, gestió d'energia i arrencada de baix nivell.

Històricament el llenguatge rei ha estat C, complementat per assemblador a les parts més crítiques. Amb el temps, C++ ha guanyat presència gràcies a la seva capacitat de modularitzar i reutilitzar, sempre que es faci servir de manera controlada per no disparar el consum de recursos.

Curiosament, fins i tot llenguatges més “alts” com Python o JavaScript han anat trobant el buit en determinats entorns embeguts, sobretot quan s'executen sobre Linux embegut o SBC amb més recursos, i quan interessa accelerar el desenvolupament per sobre de la màxima optimització.

El treball habitual inclou des de drivers de dispositius i capes d'abstracció de maquinari fins a protocols de comunicació, algorismes de control, interfícies dusuari i lògica daplicació. La qualitat del disseny marca la diferència en robustesa, mantenibilitat i capacitat devolució del producte.

Moltes empreses opten per externalitzar part del desenvolupament de programari embegut equips especialitzats en C/C++, RTOS, Linux embegut i plataformes concretes, especialment quan no disposen d'aquest know-how internament o quan els terminis són molt ajustats.

A la vista de tot això, s'entén que els sistemes encastats són la columna vertebral invisible de la tecnologia moderna: combinen maquinari específic, programari optimitzat, comunicacions i control en temps real per donar vida a productes segurs, eficients i accessibles, i representen un camp professional amb enorme projecció per als que dominin tant l'electrònica com la programació de baix nivell.

rts pcb embegut
Article relacionat:
RTES: què és un sistema operatiu de temps real