PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT Curs 1
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. 2
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 3
TERMENI UTILIZAŢI Denumiri (traducere EmS): sisteme înglobate sisteme cu procesor/calculator integrat / înglobat sistemele dedicate pe bază de calculator 4
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 5
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 6
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 7
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%) 8
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. 9
PROIECTAREA SISTEMELOR CU CALCULATOR INTEGRAT cuprins 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 10
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 to Processes, 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 11
Evaluare Forme de evaluare Evaluare Procent din nota finală Examen oral 30% Laborator Proiect Practic referate de laborator susţinute oral Aplicaţie proiectată şi susţinută 20% 50% 12
Software layers 13
INTEGRAREA CALCULATORULUI ÎN APLICAŢIE Traductor Condiţionare de semnal analogic Conversie AD Canal de culegere şi prelucrare Sistem testat, sau proces fizic Microcalculator Canal de control Element execuţie Condiţionare (amplif., filtrare) Conversie DA operaţiile se desfăşoară continuu, ciclic aplicaţii in timp real 14
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 ): 15
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) 16
REŢELE DE EMS De obicei control descentralizat 17
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) 18
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 19
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) 20
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. 21
Modelul EmS Application software Layer (Opţional) System software Layer (Opţional) Hardware Layer (Obligatoriu) 22
Niveluri software Applications Applications Operating system Operating system Firmware Firmware Application Firmware Hardware Hardware Hardware Desktop computer bootloader start-up programme Complex EmS Simple EmS 23
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 24
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 25
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ă. 26
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 27
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ă device driver 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 28
Device Drivers Application software Layer System software Layer Device Driver Layer Application software Layer System software Layer Middleware Layer Device Driver Layer Application software Layer System software Layer Operating System Layer Device Driver 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: 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) 30
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ă neimbricată, la rutine imbricate şi reentrante) 31
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 32
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. 33
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. 34
SO pentru modelul EmS Application software Layer Application software Layer Application software Layer System Software Layer Operating System Layer System Software Layer Middleware Layer System Software Layer Operating System Layer Board Support Package Layer Device Drivers Operating System Layer Device Driver Layer Middleware Device Drivers Hardware Layer Hardware Layer Hardware Layer 35
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. 36
SO Embedded Embedded OS Middleware (optional) Kernel Process Management Memory Management I/O System Management Device Drivers (Optional) 37
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 38