proiectarea sistemelor cu calculator integrat

38
PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT Curs 1

Upload: lamminh

Post on 08-Feb-2017

289 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

PROIECTAREA SISTEMELOR CU

CALCULATOR INTEGRAT

Curs 1

Page 2: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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.

Page 3: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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

Page 4: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

4

TERMENI UTILIZAŢI

• Denumiri (traducere EmS):– sisteme înglobate– sisteme cu procesor/calculator integrat /

înglobat– sistemele dedicate pe bază de calculator

Page 5: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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

Page 6: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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

Page 7: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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

Page 8: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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%)

Page 9: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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.

Page 10: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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

Page 11: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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

Page 12: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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%

Page 13: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

13

Software layers

Page 14: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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

Page 15: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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”):

Page 16: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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)

Page 17: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

17

REŢELE DE EMS

• De obicei control descentralizat

Page 18: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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)

Page 19: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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

Page 20: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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)

Page 21: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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.

Page 22: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

22

Modelul EmS

Application software Layer(Opţional)

System software Layer(Opţional)

Hardware Layer(Obligatoriu)

Page 23: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

23

Niveluri software

Simple EmS

Applications

Hardware

Firmware

Operating system

Desktopcomputer

Applications

Hardware

Firmware

Operating system

Complex EmS

Hardware

FirmwareApplication

bootloader

start-up programme

Page 24: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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

Page 25: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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

Page 26: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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ă.

Page 27: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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

Page 28: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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

Page 29: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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

Page 30: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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)

Page 31: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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)

Page 32: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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

Page 33: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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.

Page 34: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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.

Page 35: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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

Page 36: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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.

Page 37: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

37

SO Embedded

Embedded OS

Middleware (optional)

Kernel

Process Management Memory Management

I/O System Management

Device Drivers (Optional)

Page 38: PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT

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