Documente Academic
Documente Profesional
Documente Cultură
INTRODUCERE ÎN
SISTEMELE EMBEDDED
1
Caracteristici ale EmS
Caracteristici funcţionale:
1. Arhitectură specifică aplicaţiei, cu diverse
constrângeri dictate de aplicaţia ţintă
2. Funcţionare ca sisteme reactive şi real - time
Caracteristici ne-funcţionale:
3. Eficienţă energetică şi de gabarit
4. Cerinţe restrictive privind flexibilitatea şi
fiabilitatea în funcţionare (“dependable
systems”):
2
1. Arhitectură specifică aplicaţiei
• Sunt sisteme eterogene (software, electronică analogică şi digitală,
componente mecanice, optice etc.)
• Resurse hardware limitate
– Arhitectură simplificată (set instrucţiuni, organizare)
– Frecvenţă redusă CLOCK procesor
– Dimensiune memorie
– Interfeţe seriale sincrone
– Memorie externă (flash-drive)
• Periferice de intrare – ieşire (interfaţa cu utilizatorul şi mediul)
specifice
• Set de funcţii particulare – firmware
– Comportare auto-adaptivă, auto-configurare, auto-restaurare a funcţionării
– Uneori este necesar (nucleu de) sistem de operare în timp real
• Sunt sisteme comunicative
– comunicare cu mediul înconjurător prin senzori şi actuatori,
– legare în reţea (EmS distribuite)
3
2. Sisteme reactive şi real-time
• Sisteme reactive
• Funcţionare cu respectarea restricţiilor de timp (real time)
– Timp de execuţie predictibil
– Constrângeri RT sensibile la timp
– Constrângeri RT critice la timp
– Un răspuns garantat al sistemului trebuie să fie explicat fără a
folosi argumente statistice.
• Prelucrare multirată (audio/video, CD (44,1kHz)/DAT(48kHz)
4
Prelucrare în timp real
Timp de
aşteptare
Timp de prelucrare
Eşantion
n n+1
Timp eşantionare
5
3. Eficienţă energetică şi de gabarit
• Costuri
– Costuri de fabricaţie
– Costurile de proiectare (NRE – nonrecurring
engineering costs)
– Puterea
• Alimentare de la baterii
• Surse alternative de energie (radiaţie luminoasă, vibraţii,
mişcare etc.)
• Tendinţă: Sisteme autonome energetic
• Dimensiunile fizice
6
4. Cerinţe restrictive privind flexibilitatea
şi fiabilitatea în funcţionare
8
Clasificare a sistemelor embedded
1. Sisteme construite cu hardware de uz general, sau
extrem de puţin hardware dedicat.
9
Clasificare a sistemelor embedded
10
Clasificare a sistemelor embedded
11
INTEGRAREA CALCULATORULUI ÎN
APLICAŢIE
Traductor Condiţionare de Conversie
semnal analogic AD Canal de
culegere şi
prelucrare
Sistem
testat, sau
Microcalculator
proces fizic
Canal de
control
DA Programul
trebuie reluat
14
Modelul EmS
Hardware Layer
(Obligatoriu)
15
Niveluri software
Applications Applications
bootloader
start-up programme
16
Iniţializare EmS
• Programului de iniţializare 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 citeşte sistemul de operare (dacă există) de pe discul
magnetic, sau dintr-o reţea şi-l încarcă în memoria RAM
• Bootloader realizează iniţializarea componentelor calculatorului
integrat în aplicaţie
17
Iniţializare EmS
• Dacă nu se foloseşte sistem de operare la pornirea
sistemului se rulează un program de iniţializare (start-up)
• Programul de start-up al EmS:
– dezactivează întreruperile
– iniţializează electronica
– testează calculatorul (RAM, CPU şi programele)
– porneşte codul aplicaţiei
• Multe EmS pot face revenire dintr-o stare de cădere pe
termen scurt a alimentării (fără auto-testele recente)
• Timpul de restart obişnuit este sub o zecime de secundă.
18
Embedded Software
19
Device Drivers
20
Device Drivers
Application software Layer Application software Layer
Application software Layer
21
Device Drivers
22
Device Drivers
• Exemple de funcţii generale incluse în driver-e: iniţializare,
configurare, activare, dezactivare dispozitive hardware, acces pentru
citire / scriere la hardware
• Există şi multe funcţii specifice.
• Exemplu de funcţii necesare unui device driver pentru servirea
întreruperilor
1. Iniţializare hardware pentru întreruperi după alimentare, sau reset (controller
întreruperi, activare întreruperi etc. )
2. Configurare hardware de întreruperi la deconectarea alimentării (controller
întreruperi, dezactivare întreruperi etc.)
3. Funcţie de dezactivare întreruperi, care permite altor programe să dezactiveze
dinamic (în timpul funcţionării) întreruperile active (nu şi pentru NMI care nu
pot fi dezactivate)
4. Funcţie de activare întreruperi, care permite altor rutine să valideze dinamic
întreruperi inactive
5. Servirea întreruperii, codul propriu-zis al servirii întreruperii, care este executat
după apariţia întreruperii programului principal (această rutină poate avea
complexitate foarte diferită de la sistem la sistem, de la o rutină simplă ne-
imbricată, la rutine imbricate şi reentrante)
23
Device Drivers
• Un program poate vedea o componentă hardware ca fiind
la un moment într-una din următoarele trei stări:
– Inactiv. Starea inactivă a hardware este interpretată ca:
• hardware deconectat (cere o funcţie de instalare)
• fără alimentare (cere o rutină de iniţializare) sau
• dezactivat (cere o rutină de validare).
– Ocupat
• Este o stare activă a hardware şi de aici nevoia de funcţii de
dezinstalare, oprire şi / sau dezactivare
• Hardware care este în stare ocupat prelucrează date şi aceasta poate
cere un anumit mecanism de eliberare
– Aşteptare
• Este o stare activă a hardware şi de aici nevoia de funcţii de
dezinstalare, oprire şi / sau dezactivare
• Hardware care este în starea de aşteptare, este eliberat de sarcini, ceea
ce permite, de exemplu, o cerere de tip achiziţie, citire sau scriere
24
Device Drivers
• În unele cazuri distincţia dintre aceste niveluri de software este clară,
iar alteori codul driver-elor este integrat în alte niveluri
• În funcţie de tipul procesorului, diferite tipuri de software pot fi
executate în moduri diferite. Două din modurile cele mai comune de
execuţie 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 având
mai multe privilegii de acces decât în mod utilizator.
25
Sisteme de operare Embedded
26
SO pentru modelul EmS
Application software Layer Application software Layer Application software Layer
Middleware
Board Support Package Operating System Layer
Layer
Device Drivers
Device Drivers Device Driver Layer
27
SO Embedded
• Nucleul (kernel) este componenta prezentă la toate SO
• Principale funcţiuni:
– Managementul proceselor. Modul în care SO administrează şi vede alte
programe în sistemul embedded (prin procese). O sub-funcţie tipic
întâlnită în cadrul managementului proceselor este administrarea
întreruperilor şi detecţia erorilor
– Managementul memoriei. Spaţiul de memorie al EmS este partajat de
toate procesele, astfel încât trebuie făcută administrarea accesului şi a
alocării spaţiului de memorie. Există subfuncţii care implementează un
sistem de securitate al memoriei
– Managementul sistemului de I/O. Dispozitivele I/O trebuie partajate către
diferitele procese, accesul şi alocarea. În cadrul sistemului de I/O trebuie
să existe şi un management al fişierelor ca metodă de stocare şi
administrare a informaţiilor sub formă de fişiere.
28
SO Embedded
Embedded OS
Middleware (optional)
Kernel
29
Middleware
• Liniile de demarcaţie dintre middleware şi software de aplicaţie,
respectiv software de sistem sunt neclare
• Middleware (Mw) este intermediar între programe de aplicaţii şi
programe de sistem
• Mw este software care a fost extras din nivelul de aplicaţie din mai
multe motive:
– Ar putea fi că este deja inclus ca parte în SO de pe piaţă
– Permite astfel reutilizarea pentru alte aplicaţii
– Scade timpul şi costurile de dezvoltare prin cumpărarea sa
– Simplifică complexitatea aplicaţiei, prin centralizarea unor structuri
software care în mod tradiţional s-ar fi găsit redundant în nivelul de
aplicaţii
– Totuşi, introducerea nivelului de middleware, introduce timpi
suplimentari, care pot avea un impact mare asupra scalabilităţii şi
performanţei
30
Middleware
• Un Mw de EmS este un nivel de software de sistem care stă deasupra
device-drivers, sau deasupra SO, iar uneori poate fi încorporat chiar în
SO
• Mw este un nivel de abstractizare utilizat în general la dispozitivele
embedded cu două sau mai multe aplicaţii, pentru a furniza
flexibilitate, securitate, portabilitate, conectivitate, intercomunicare şi /
sau mecanisme de interoperabilitate între aplicaţii
• Mw este un program de sistem pentru că furnizează funcţii mai multor
aplicaţii
• Mw este însă asemănător şi cu programele de aplicaţie, pentru că
depinde de funcţiile oferite de SO
31
Middleware
Application Layer Application Layer
Application software
System Software Layer System Software Layer
Layer
Middleware Operating System System Software Layer
Middleware Middleware
Operating System
Device Drivers
Device Drivers Device Drivers
32
Middleware
• Distincţia între Mw şi SO este neclară, pentru că unele funcţiuni
încorporate în trecut în software de tip middleware sunt în prezent
încorporate în SO
– Exemplul tipic este stiva TCP/IP pentru telecomunicaţii inclusă în prezent
în marea majoritate a SO.
• Cea mai mare parte a Mw se poate încadra într-una din cele două
categorii generale:
– Mw cu scop general, ceea ce înseamnă că sunt implementate într-o
varietate de dispozitive, cum ar fi protocoale de reţea, sistem de fişiere,
sau unele maşini virtuale cum ar fi JVM (iar ca poziţie se găsesc deasupra
nivelului device driver şi sub nivelul de aplicaţie)
– Mw specifice, ceea ce înseamnă că sunt specifice unei familii particulare
de EmS, cum ar fi un software bazat pe standard de TV digital, care stă
peste un SO sau peste JVM.
33