Documente Academic
Documente Profesional
Documente Cultură
Curs 1
Embedded System
Un sistem cu calculator nglobat este un sistem pe baz de microprocesor construit pentru a controla anumite funcii particulare i care nu este construit pentru a fi programat de utilizatorul final, cum este la PC. Funcionalitate (relativ) fix realizat prin firmware Hardware i software trebuie privite ca dou opiuni de implementare ce difer prin metrici de proiectare, cost, performan, dimensiune i flexibilitate.
2
TERMENI UTILIZAI
Denumiri (traducere EmS):
sisteme nglobate sisteme cu procesor/calculator integrat / nglobat sistemele dedicate pe baz de calculator
TENDINE EUROPENE
n peisajul european referitor la EmS (Embedded Systems), s-a creat in 2004 o platforma tehnologica, ARTEMIS[1], dedicata promovrii i corelrii cercetrilor n domeniul sistemelor de tip embedded Ca parteneri principali sunt vizai: universiti i institute de cercetare, productori europeni n domeniu, IMM-uri calate pe cercetarea EmS punctual, fie pe dezvoltare de toools-uri de proiectare, fie pe integratori de sistem, sau dezvoltatori de aplicaii. [1] the European Technology Platform for Advanced Research and Technology for Embedded Intelligence and Systems
TENDINE
n prezent circa 90% din dispozitivele de calcul implementate pe pia sunt EmS, distribuite n domeniile (la nivelul anului 2002):
automobile (37%) industrie i energie (30%) aprare i tehnici spaiale (30%)
n 2010 (considernd actuala rat de cretere) numr de componente embedded programabile de 16 miliarde (aproape 3 dispozitive embedded pe persoan pe planet) 2020 peste 40 miliarde componente EmS
TENDINE
O dat cu omniprezena dispozitivelor embedded apar noi provocri n domeniile: tehnologie, inter-operabilitate, standardizare, medodologie, siguran i securitate. n urmtorii 5 ani, documentele europene prevd o distribuie procentual pe arii, astfel:
automatizri industriale (15%) telecomunicaii (30%) electronic de consum i cldiri inteligente (40%) echipamente medicale i de asigurare a sntii (15%)
Software layers
13
Element execuie
Conversie DA
Periferice de intrare ieire (interfaa cu utilizatorul i mediul) specifice Set de funcii particulare firmware
Comportare auto-adaptiv, auto-configurare, auto-restaurare a funcionrii Uneori este necesar (nucleu de) sistem de operare n timp real
REELE DE EMS
De obicei control descentralizat
17
18
Alimentare de la baterii Surse alternative de energie (radiaie luminoas, vibraii, micare etc.) Tendin: Sisteme autonome energetic
Dimensiunile fizice
19
Securitatea (date i utilizatori) Toleran la greeli (revenirea din starea de eroare uor de fcut i fr intervenia utilizatorului) Timp de apariie pe pia Personalizare (uneori)
20
Funcionalitate complex
Real-time / reactiv Multitasking n EmS ?
De exemplu un termostat programabil ce controleaz centrala termic realizeaz cel puin trei sarcini: (1) monitorizarea temperaturii, (2) monitorizarea orei din zi, (3) supravegherea tastaturii. Fire de cod (thread) separate.
21
Modelul EmS
Application software Layer
(Opional) System software Layer (Opional) Hardware Layer (Obligatoriu)
22
Niveluri software
Applications
Operating system
Applications
Operating system
Firmware Hardware
Desktop computer
Firmware Hardware
Complex EmS
Application
Firmware
Hardware
Simple EmS
UNELTE DE DEZVOLTARE
Mediu Software Integrat de Dezvoltare (IDE - Integrated Development Environment). IDE este o unealt software de dezvoltare ce ruleaz pe un calculator desktop (de exemplu un PC) Funciuni principale:
dezvoltarea programelor utilizator (de obicei n limbaj C i / sau asamblare) ntr-o fereastr de editare. compilator i editor de legturi depanarea i punerea la punct a programelor prin debugger asamblor pentru rutinele scrise n asamblare simulator pentru rularea programelor (inclusiv pas cu pas prin debugger) i urmrirea coninutului registrelor interne, a memoriei, a porturilor de IO, a circuitelor timer / counter, etc. transferul codului (program executabil) ctre memoria local (flash, EEPROM) a microcontrollerului
24
Iniializare EmS
Programului de iniializare la pornire (bootloader) este un program special rulat la pornirea sistemului, programul fiind stocat n memorii de tip ROM (inclus n firmware)
Software nglobat n hardware = firmware
Este un program specific pentru calculatoare desktop, dar exist i la unele EmS Bootloader citete sistemul de operare (dac exist) de pe discul magnetic, sau dintr-o reea i-l ncarc n memoria RAM Bootloader realizeaz iniializarea componentelor calculatorului integrat n aplicaie
25
Iniializare EmS
Dac nu se folosete sistem de operare la pornirea sistemului se ruleaz un program de iniializare (start-up) Programul de start-up al EmS:
dezactiveaz ntreruperile iniializeaz electronica testeaz calculatorul (RAM, CPU i programele) pornete codul aplicaiei
Multe EmS pot face revenire dintr-o stare de cdere pe termen scurt a alimentrii (fr auto-testele recente) Timpul de restart obinuit este sub o zecime de secund.
26
Embedded Software
Nivelurile software prezentate grafic n modelul EmS pot avea poziii diferite n ierarhie, n funcie de sistem Categorii de embedded software: Software de sistem (pe baza cruia funcioneaz aplicaiile) Software de aplicaie /definete funciile scop ale unui EmS) Exemple de programe de sistem:
Device drivers programe de control a dispozitivelor hardware Sistem de operare Middleware
27
Device Drivers
Cele mai multe componente hardware nglobate au nevoie de un software pentru iniializare i administrare Componenta software care interacioneaz direct i controleaz componenta hardware este numit device driver Aceste programe de control sunt organizate n biblioteci de programe care iniializeaz hardware i intermediaz accesul la hardware pentru nivelurile superioare de software Driver-ele sunt legtura dintre hardware i nivelurile de sistem de operare, middleware i aplicaii
28
Device Drivers
Application software Layer Application software Layer System software Layer System software Layer Middleware Layer Device Driver Layer Device Driver Layer Device Driver Layer Operating System Layer System software Layer Application software Layer
Hardware Layer
Hardware Layer
Hardware Layer
29
Device Drivers
Tipurile de componente hardware ce au nevoie de sprijin din partea unor driver-e sunt diferite de la sistem la sistem Pot exista drivere pentru: funcionalitatea procesorului la evenimente atipice (driver de ntreruperi) memorie (acces, alocare, administrare) iniializare i transferuri pe magistral iniializarea i controlul interfeelor de I/O (cum ar fi reea, grafic, intrri, stocare, I/O pentru depanare etc)
30
Device Drivers
Exemple de funcii generale incluse n driver-e: iniializare, configurare, activare, dezactivare dispozitive hardware, acces pentru citire, scriere la hardware Exist i multe funcii specifice. Exemplu de funcii necesare unui device driver pentru servirea ntreruperilor
1. 2. 3. 4. 5. Iniializare hardware pentru ntreruperi dup alimentare, sau reset (controller ntreruperi, activare ntreruperi etc. ) Configurare hardware de ntreruperi la deconectarea alimentrii (controller ntreruperi, dezactivare ntreruperi etc.) Funcie de dezactivare ntreruperi, care permite altor programe s dezactiveze dinamic (n timpul funcionrii) ntreruperile active (nu i pentru NMI care nu pot fi dezactivate) Funcie de activare ntreruperi, care permite altor rutine s valideze dinamic ntreruperi inactive Servirea ntreruperii, codul propriu-zis al servirii ntreruperii, care este executat dup apariia ntreruperii programului principal (aceast rutin poate avea complexitate foarte diferit de la sistem la sistem, de la o rutin simpl neimbricat, la rutine imbricate i reentrante)
31
Device Drivers
Un program poate vedea o component hardware ca fiind la un moment ntr-una din urmtoarele trei stri:
Inactiv. Starea inactiv a hardware este interpretat ca:
hardware deconectat (cere o funcie de instalare) fr alimentare (cere o rutin de iniializare) sau dezactivat (cere o rutin de validare).
Ocupat
Este o stare activ a hardware i de aici nevoia de funcii de dezinstalare, oprire i / sau dezactivare Hardware care este n stare ocupat prelucreaz date i aceasta poate cere un anumit mecanism de eliberare
Ateptare
Este o stare activ a hardware i de aici nevoia de funcii de dezinstalare, oprire i / sau dezactivare Hardware care este n starea de ateptare, este eliberat de sarcini, ceea ce permite, de exemplu, o cerere de tip achiziie, citire sau scriere
32
Device Drivers
n unele cazuri distincia dintre aceste niveluri de software este clar, iar alteori codul driver-elor este integrat n alte niveluri n funcie de tipul procesorului, diferite tipuri de software pot fi executate n moduri diferite. Dou din modurile cele mai comune de execuie sunt:
modul supervizor modul utilizator (user)
Cele dou moduri difer n principal prin modul n care software are dreptul s acceseze componentele sistemului, n mod supervizor avnd mai multe privilegii de acces dect n mod utilizator.
33
Hardware Layer
Hardware Layer
Hardware Layer
35
SO Embedded
Nucleul (kernel) este componenta prezent la toate SO Principale funciuni:
Managementul proceselor. Modul n care SO administreaz i vede alte programe n sistemul embedded (prin procese). O sub-funcie tipic ntlnit n cadrul managementului proceselor este administrarea ntreruperilor i detecia erorilor Managementul memoriei. Spaiul de memorie al EmS este partajat de toate procesele, astfel nct trebuie fcut administrarea accesului i a alocrii spaiului de memorie. Exist subfuncii care implementeaz un sistem de securitate al memoriei Managementul sistemului de I/O. Dispozitivele I/O trebuie partajate ctre diferitele procese, accesul i alocarea. n cadrul sistemului de I/O trebuie s existe i un management al fiierelor ca metod de stocare i administrare a informaiilor sub form de fiiere.
36
SO Embedded
Embedded OS Middleware (optional)
37
Middleware
Liniile de demarcaie dintre middleware i software de aplicaie, respectiv software de sistem sunt neclare Middleware (Mw) este intermediar ntre programe de aplicaii i programe de sistem Mw este software care a fost extras din nivelul de aplicaie din mai multe motive:
Ar putea fi c este deja inclus ca parte n SO de pe pia Permite astfel reutilizarea pentru alte aplicaii Scade timpul i costurile de dezvoltare prin cumprarea sa Simplific complexitatea aplicaiei, prin centralizarea unor structuri software care n mod tradiional s-ar fi gsit redundant n nivelul de aplicaii Totui, introducerea nivelului de middleware, introduce timpi suplimentari, care pot avea un impact mare asuprascalabilitii i performanei
38