Upload
lamminh
View
275
Download
0
Embed Size (px)
Citation preview
PROIECTAREA SISTEMELOR CU
CALCULATOR INTEGRAT
Curs 1
2
Embedded System• Un sistem cu calculator înglobat este un sistem pe
bază de microprocesor construit pentru a controla anumite funcţii particulare şi care nu este construit pentru a fi programat de utilizatorul final, cum este la PC.
• Funcţionalitate (relativ) fixă realizată prin firmware
• Hardware şi software trebuie privite ca două opţiuni de implementare ce diferă prin metrici de proiectare, cost, performanţă, dimensiune şi flexibilitate.
3
Tendinţe ce au influenţat EmS
• Creşterea capacităţii de integrare a Circuitelor Integrate (IC) ⇒ Hw + Sw + interfeţe cu lumea externă integrate complet în acelaşi IC.
• Creşterea calităţii compilatoarelor au condus la utilizarea comună a limbajelor independente de procesor de tip C, C++, Java, şi a mediilor de dezvoltare integrate (IDE) în proiectarea EmS
• Dezvoltarea unor unelte software pentru proiectarea componentelor hardware ale sistemului. Uneltele de sinteză realizează în proiectarea hardware cam acelaşi lucru cu compilatoarele în proiectarea software
4
TERMENI UTILIZAŢI
• Denumiri (traducere EmS):– sisteme înglobate– sisteme cu procesor/calculator integrat /
înglobat– sistemele dedicate pe bază de calculator
5
TERMENI APLICAŢII EmS• disappearing computer - pentru că prezenţa acestor calculatoare nu
este evidentă, aşa cum se întâmplă la PC-uri• ubiquitous computing – calcul omniprezent.
– Ubiquitous computing se referă la integrarea calculatoarelor în mediu şi nu priveşte calculatoarele ca obiecte distincte. Ca rezultat al omniprezenţei, omul interacţionează cu dispozitive de prelucrare a informaţiei (invizibile) într-un mod mai natural (şi nu aşa cum o face de exemplu cu un PC) fără a ţine cont de locul unde se găseşte.
• pervasive computing - calcul universal/distribui peste tot• ambient intelligence – inteligenţă ambientală. Evidenţieri în
tehnologia informaţiei şi comunicaţiilor din clădirile şi casele inteligente
6
TENDINŢE EUROPENE
• În peisajul european referitor la EmS (Embedded Systems), s-a creat in 2004 o platforma tehnologica, ARTEMIS[1], dedicata promovării şi corelării cercetărilor în domeniul sistemelor de tip embedded
• Ca parteneri principali sunt vizaţi: universităţi şi institute de cercetare, producători 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 aplicaţii.
• [1] the European Technology Platform for Advanced Research and Technology for Embedded Intelligence and Systems
7
TENDINŢE
• Î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%)– apărare şi tehnici spaţiale (30%)
• În 2010 (considerând actuala rată de creştere) ⇒ număr de componente embedded programabile de 16 miliarde(aproape 3 dispozitive embedded pe persoană pe planetă)
• 2020 ⇒ peste 40 miliarde componente EmS
8
TENDINŢE
• O dată cu omniprezenţa dispozitivelor embedded apar noi provocări în domeniile: tehnologie, inter-operabilitate, standardizare, medodologie, siguranţă şi securitate.
• În următorii 5 ani, documentele europene prevăd o distribuţie procentuală pe arii, astfel:– automatizări industriale (15%)– telecomunicaţii (30%)– electronică de consum şi clădiri inteligente (40%)– echipamente medicale şi de asigurare a sănătăţii (15%)
9
Obiectivul cursului/ disciplinei
• Prezentarea modului de proiectare integrată hardware –software a sistemelor cu calculator înglobat în aplicaţie (Embedded Systems). Proiectarea efectivă a unei aplicaţii de complexitate medie utilizând instrumente dedicate ca: simulatoare, emulatoare şi sisteme de dezvoltare.
• Proiectarea sistemelor cu calculator înglobat se bazează pe cunoaşterea diverselor tehnologii şi este influenţată de înţelegerea profundă a nevoilor umane şi a cerinţelor pieţei.
10
PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRATcuprins 2008_2009
• Introducere în proiectarea sistemelor cu calculator integrat (S.C.I.)– Organizarea cursului, obiective, prezentarea programei analitice,
Procesul de proiectare al sistemelor cu calculator integrat, prezentare faze şi rezultate aşteptate.
• Tehnici de proiectare a EmS– Analiza cerinţelor şi elaborarea corectă a specificaţiilor sistemului– Proiectarea sistemului hardware: selecţie procesor, dezvoltare
proiect hardware, depanare.– Proiectarea sistemului software: dezvoltarea şi depanarea
programelor, caracteristici de timp real impuse de aplicaţie
• Tehnici de interfaţare cu microcontrollere
11
Bibliografie• Wayne Wolf, Computers as Components, Academic Press, London
2001• Steve Heath, Embedded system design, Embedded Systems Design,
Second Edition, Newnes, Elsevier Science, 2003, plus: Embedded Systems Design 2ed HeathSteve.pdf
• Arnold S. Berger, Embedded systems design, An Introduction toProcesses, Tools, and Techniques, 1st Edition, CMP Books, 2002
• John Catsoulis, Designing Embedded Hardware, O'Reilly Pub, plus: OReilly.Designing.Embedded.Hardware.May.2005.eBook-DDU.chm
12
Evaluare
Forme de evaluare
Evaluare Procent dinnota finală
Examen oral 30%
Laborator Practic – referate de laborator susţinute oral
20%
Proiect Aplicaţie proiectată şi susţinută
50%
13
Software layers
14
INTEGRAREA CALCULATORULUI ÎN APLICAŢIE
Condiţionare de semnal analogic
Microcalculator
Sistem testat, sau
proces fizic
Traductor ConversieAD Canal de
culegere şi prelucrare
Canal de control
Condiţionare (amplif., filtrare)
Element execuţie
ConversieDA
operaţiile se desfăşoară continuu, ciclic ⇒ aplicaţii in timp real
15
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 gabarit4. Cerinţe restrictive privind flexibilitatea şi
fiabilitatea în funcţionare (“dependablesystems”):
16
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)
17
REŢELE DE EMS
• De obicei control descentralizat
18
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)
19
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
20
4. Cerinţe restrictive privind flexibilitatea şi fiabilitatea în funcţionare
• Fiabilitate / Siguranţa în funcţionare (Reliability)• Mentenabilitate (maintainability)• Disponibilitate (availability)• Siguranţa (safety)
– NU: RESTART, INSTAL DRIVER, SAFE MODE, ABORT + RETRY, Ctrl+Alt+Del.
• Securitatea (date şi utilizatori)• Toleranţă la greşeli (revenirea din starea de eroare uşor de
făcut şi fără intervenţia utilizatorului)• Timp de apariţie pe piaţă• Personalizare (uneori)
21
Funcţionalitate complexă• Real-time / reactiv• Multitasking în EmS ?
– De exemplu un termostat programabil ce controlează centrala termică realizează cel puţin trei sarcini: (1) monitorizarea temperaturii, (2) monitorizarea orei din zi, (3) supravegherea tastaturii. Fire de cod (thread) separate.
22
Modelul EmS
Application software Layer(Opţional)
System software Layer(Opţional)
Hardware Layer(Obligatoriu)
23
Niveluri software
Simple EmS
Applications
Hardware
Firmware
Operating system
Desktopcomputer
Applications
Hardware
Firmware
Operating system
Complex EmS
Hardware
FirmwareApplication
bootloader
start-up programme
24
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)• Funcţiuni principale:
– dezvoltarea programelor utilizator (de obicei în limbaj C şi / sau asamblare) într-o fereastră de editare.
– compilator şi editor de legături– 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 urmărirea conţinutului registrelor interne, a memoriei, a porturilor de IO, a circuitelor timer / counter, etc.
– transferul codului (program executabil) către memoria locală (flash, EEPROM) a microcontrollerului
25
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
26
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ă.
27
Embedded Software
• Nivelurile software prezentate grafic în modelul EmS pot avea poziţii diferite în ierarhie, în funcţie de sistem
• Categorii de embedded software:• Software de sistem (pe baza căruia funcţionează aplicaţiile)• Software de aplicaţie /defineşte funcţiile scop ale unui
EmS)• Exemple de programe de sistem:
– Device drivers – programe de control a dispozitivelor hardware– Sistem de operare– Middleware
28
Device Drivers
• Cele mai multe componente hardware înglobate au nevoie de un software pentru iniţializare şi administrare
• Componenta software care interacţionează direct şi controlează componenta hardware este numită devicedriver
• Aceste programe de control sunt organizate în biblioteci de programe care iniţializează hardware şi intermediază accesul la hardware pentru nivelurile superioare de software
• Driver-ele sunt legătura dintre hardware şi nivelurile de sistem de operare, middleware şi aplicaţii
29
Device Drivers
Application software Layer
System software Layer
Device Driver Layer
Hardware Layer
Application software Layer
Hardware Layer
System software Layer
Device Driver Layer
Middleware Layer
Application software Layer
Hardware Layer
System software Layer
Device Driver Layer
Operating System Layer
30
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:– funcţionalitatea procesorului la evenimente atipice
(driver de întreruperi) – memorie (acces, alocare, administrare)– iniţializare şi transferuri pe magistrală– iniţializarea şi controlul interfeţelor de I/O (cum ar fi
reţea, grafică, intrări, stocare, I/O pentru depanare etc)
31
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
întreruperilor1. 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)
32
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ă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
33
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.
34
Sisteme de operare Embedded
• Un sistem de operare (SO) este o componentă opţională a stivei software specifică EmS
• Un SO poate fi utilizat pe orice procesor (ISA) către care SO respectiv a fost portat
• Un SO poate să stea deasupra hardware, deasupra unui nivel device driver, sau peste un pachet software de suport pentru o anumită placăde dezvoltare (Board Support Package)
• SO constă dintr-un set de biblioteci software care servesc la două scopuri principale într-un EmS:
– Să furnizeze un nivel de abstractizare pentru programele de la nivelul superior SO, astfel încât acestea să fie mai puţin dependente de hardware, făcând astfel mai uşoară dezvoltarea de software de tip midlleware şi aplicaţie
– Să administreze resurse hardware şi software ale sistemului astfel ca întregul sistem să funcţioneze eficient şi sigur.
35
SO pentru modelul EmS
Application software Layer
System Software Layer
Hardware Layer
Operating System Layer
Board Support Package Layer
Device Drivers
Application software Layer
System Software Layer
Hardware Layer
Middleware Layer
Operating System Layer
Device Driver Layer
Application software Layer
System Software Layer
Hardware Layer
Operating System Layer
Middleware
Device Drivers
36
SO Embedded• Nucleul (kernel) este componenta prezentă la toate SO• Principale funcţiuni:
– Managementul proceselor. Modul în care SO administrează şi vede alteprograme î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.
37
SO Embedded
Embedded OS
Middleware (optional)
Kernel
Process Management Memory Management
I/O System Management
Device Drivers (Optional)
38
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 asuprascalabilităţii şi performanţei