psi_c1.2013
DESCRIPTION
vvTRANSCRIPT
Programarea Sistemelor Integrate Introducere
Programarea Sistemelor IntegrateProgramarea Sistemelor IntegrateLiviu Kreindler
• Examen – 50%/ %• Laborator / Tema de casa – 50%
• Prezenta – 0%
Curs – slides – Moodle
c 2013 Liviu Kreindler 1 - 1
Programarea Sistemelor Integrate Introducere
Sisteme Integrate - Embedded Systems
Embedded systems
A t bil ( t l t ABS ii )– Automobile (control motor, ABS, suspensii, …)– Echipament militar (roboti, rachete, …)– Instrumente medicale (monitorizare, proteze, dozatoare,
)…)– Aerospatial (sisteme masura, rachete, control motor,…)– Echipament industrial (masini OEM – semiconductori,
textile, impachetat, etichetat, …)– Comunicatii (telefonie mobila, sateliti, wireless, …)– Larg consum (frigider, masina spalat, televizor, video,
combina audio, microunde, masina vase, termostate, CT etc )CT, etc.)
– Periferice (imprimanta, mouse, scanner, modem, …)– Jocuri– Sisteme protectie
c 2013 Liviu Kreindler 1 - 2
p– etc…
Programarea Sistemelor Integrate Introducere
Sisteme Integrate - Embedded Systems
• Embedded system - definitieUn ansablu hardware si software (plusUn ansablu hardware si software (plus
alte parti, mecanice, etc.), proiectat pentru a implementa o functionalitate p pspecifica, bine definita.
• Diferenta fata de PC (calculator de uz general)g )
• Elementul central: microprocesor /
c 2013 Liviu Kreindler 1 - 3
Elementul central: microprocesor / microcontroler
Programarea Sistemelor Integrate Introducere
Sisteme Integrate - Embedded Systemsg y
c 2013 Liviu Kreindler 1 - 4
Programarea Sistemelor Integrate Introducere
Sisteme Integrate - Embedded Systems
c 2013 Liviu Kreindler 1 - 5
Programarea Sistemelor Integrate Introducere
Sisteme Integrate vs. PC
– Dedicate pentru aplicatie specifica– Implementate pe o gama f. larga de procesoare si
arhitecturi– Criteriul cost, foarte important– Restrictii de operare in timp real– Sistem de operare in timp real (RTOS)– Implicatii situatii de eroareImplicatii situatii de eroare– Restrictii de consum de putere– Operare in conditii dificile
R i ti– Resurse mai putine– Aplicatia memorata in ROM– Metode de dezvoltare si testare specializate
c 2013 Liviu Kreindler 1 - 6
Programarea Sistemelor Integrate Introducere
Sisteme Integrate - Embedded Systemsg y
c 2013 Liviu Kreindler 1 - 7
Programarea Sistemelor Integrate Introducere
Sisteme Integrate - Embedded Systemsg y
c 2013 Liviu Kreindler 1 - 8
Programarea Sistemelor Integrate Introducere
Sisteme Integrate - Embedded Systemsg y
c 2013 Liviu Kreindler 1 - 9
Programarea Sistemelor Integrate Introducere
Sisteme Integrate - Embedded Systemsg y
c 2013 Liviu Kreindler 1 - 10
Programarea Sistemelor Integrate Introducere
Microprocesoare, microcontrolere
1971 INTEL 4004• 1971 – INTEL 4004• 1972 – ‘Microprocesor’ – INTEL 8008• 1974 – INTEL 8086• Legea lui Moore: la fiecare 18 luni seLegea lui Moore: la fiecare 18 luni se
dubleaza capacitatile• Tehnologii: pMOS -> CMOS nMOS• Tehnologii: pMOS -> CMOS, nMOS
(HMOS), bipolare, I2C
c 2013 Liviu Kreindler 1 - 11
Programarea Sistemelor Integrate Introducere
Evolutia microprocesoarelor INTEL
c 2013 Liviu Kreindler 1 - 12
Programarea Sistemelor Integrate Introducere
Cuvant de date: 8 16 32 64 128• Cuvant de date: 8, 16, 32, 64, 128• Capacitate de adresare: 2k, 64k, 1M,…• Frecventa de lucru: 2MHz -> 3GHz• Tipuri de date: intregi, floating-point, …Tipuri de date: intregi, floating point, …• Resurse interne: memorie RAM, ROM
Interfete I/E• Interfete I/E
c 2013 Liviu Kreindler 1 - 14
Programarea Sistemelor Integrate Introducere
INTEL – Pentium Pro 150 MHz
c 2013 Liviu Kreindler 1 - 17
Programarea Sistemelor Integrate Introducere
Evolutia microprocesoarelor INTEL
c 2013 Liviu Kreindler 1 - 18
Programarea Sistemelor Integrate Introducere
Diagrama microcalculator
• Von Neumann• Harvard• Harvard• DSP (Digital Signal Processing)• ASIC (Application Specific Integrated Circuit)
c 2013 Liviu Kreindler 1 - 19
Programarea Sistemelor Integrate IntroducereDiagrama sistem integrat - structura
• CPU – unitate centrala de prelucrare• Memorie (RAM-date ROM-program)Memorie (RAM date, ROM program)• Ceasuri programabile (timere)• Intrari numerice (butoane, contacte, …)( )• Iesiri numerice (LED-uri, comenzi ON/OFF, releu,
…)I i l i ( i f i )• Intrari analogice (senzori, referinte, …)
• Iesiri analogice (comenzi, semnal audio, …)• Afisaj (segmente grafic )• Afisaj (segmente, grafic, …)• Tastatura (butoane, matrice, …)• Canale comunicatie (RS-232, CAN, USB,
c 2013 Liviu Kreindler 1 - 20
Canale comunicatie (RS 232, CAN, USB, Ethernet,…)
Programarea Sistemelor Integrate IntroducereDiagrama sistem integrat - structura
c 2013 Liviu Kreindler 1 - 21
Programarea Sistemelor Integrate Introducere
Criterii si costuri de proiectare si implementare
– Putere de calcul– Memorie
C t d lt (NRE N R i E i i )– Cost dezvoltare (NRE = Non-Recurring Engineering)– Cantitate produsa– Durata de viata
Fi bilit t– Fiabilitate
c 2013 Liviu Kreindler 1 - 23
Programarea Sistemelor Integrate Introducere
Limbaje de Programare• Limbaje de nivel inalt: C / C++
– Portabilitate [+]– Acces la resurse Hardware [-]
Implementare structurata [+]– Implementare structurata [+]– Depanare (debug) la nivel inalt [+]– Mai usor de corelat cu algoritmul [+]– Codul nu e totdeaune optim (viteza executie, memorie p ( ,
ocupata) [-]– Cost global implementare si mentenanta mai scazut [+]
• Limbaj de asamblare• Limbaj de asamblare– Eficienta maxima a codului [+]– Eficienta maxima a utilizarii resurselor (memorie, etc.) [+]– Dificultate implementare [-]Dificultate implementare [ ]– Dificultate testare [-]– Dificultate documentare [-]– Codul nu este portabil [-]
c 2013 Liviu Kreindler 1 - 24
– Cost global implementare si mentenanta ridicat [-]
Programarea Sistemelor Integrate Introducere
Aplicatii in timp real – time senzitiveI iti li t i i d fi i t i I/OInitializare parametri si definire porturi I/O
Achizitie date din porturi de intrare
(citire - "READ")
Executie program specific (prelucrare date de intrare,
f l it l i i ) executie
scrieredatet4
t55
conform algoritmului numeric)
Transmitere date prelucrate prin port de iesire
citiredate
executieprogram
t2
t33
4
(scriere - "WRITE")
Programul
initializari
conversiedate
startt0t1
1
2
gtrebuie reluat
c 2013 Liviu Kreindler 1 - 25
Lansare alt program specific
STOP
Programarea Sistemelor Integrate Introducere
Aplicatii in timp real – time criticalP r o g r a m P r in c ip a l
(p o l l in g lo o p – b a c k g r o u n d )
S T A R T
R u t in a T r a ta r e In t r e r u p e r e( fo r e g r o u n d )
A c h iz i t ie d a te - p o r tu r i in t r a r e( c i t i r e - " R E A D " )
In i t ia l iz a r e p a r a m e t r iD e f in i r e / s e ta r e p o r tu r i I /O
S a lv a r e c o n te x t
E x e c u t ie p r o g r a m s p e c i f ic ( p r e lu c r a r e d a t e d e in t r a r e ,
c o n f o r m a lg o r i t m u lu i n u m e r ic )
O p e r a t i i n e -p r io r i ta r e
T r a n s m ite r e d a te p r e lu c r a te - p o r t d e ie s ir e ( s c r ie r e - " W R IT E " )
B u c la in f in i ta
R E T U R N
R e fa c e r e c o n te x t
h (perioada esantionare) h
Rutina Tratare
c 2013 Liviu Kreindler 1 - 26
A/D;calcule;D/A
PP PP PPProgram Principal
Rutina Tratare Intrerupere A/D;calcule;D/A A/D;calcule;D/A
Programarea Sistemelor Integrate Introducere
Operare in timp real
• Structura tipica– Bucla principala – prioritate
mica - background– Intreruperi – (ISR – Interrupt
Service Routine) - foregroundService Routine) foreground– Prioritati
• Cerinte operare timp realCerinte operare timp real– Time-critical– Time-sensitive
c 2013 Liviu Kreindler 1 - 27
Programarea Sistemelor Integrate Introducere
Proces proiectare, implementare si testare
c 2013 Liviu Kreindler 1 - 28
Programarea Sistemelor Integrate Introducere
Proces proiectare, implementare si testare
• Definirea cerintelor produsului – specificatiip p• Definirea cerintelor functionale• Selectia procesorului
S f• Specificatii hardware• Evaluarea sistemului• Proiectare hardware• Proiectare hardware• Proiectare firmware• IntegrareIntegrare• Testare• Documentare
c 2013 Liviu Kreindler 1 - 29
Programarea Sistemelor Integrate Introducere
Ciclu proces dezvoltare software / firmware
User Software Requirements
Acceptance Tests
Software Requirements Specifications
Acceptance Tests Specifications
Software Architectural Design
Module Tests Specifications
Software Detailed Design
Unit Tests Specifications
Implementation
c 2013 Liviu Kreindler 1 - 30
Programarea Sistemelor Integrate Introducere
Proces proiectare, implementare si testare
c 2013 Liviu Kreindler 1 - 31
Programarea Sistemelor Integrate Introducere
Structura cursului
• Partea I– Introducere
Sisteme in timp real concepte generale– Sisteme in timp real - concepte generale• Partea II
– Microcontrolere MSP430 – caracteristici generale– Platforme de dezvoltare– Intreruperi– Interfete I/O digitale. Timereg– Afisaje; tastaturi– Interfete analog-digitale
Interfete digital analogice– Interfete digital-analogice– Interfete comunicatie– Memoria sistemului
c 2013 Liviu Kreindler 1 - 32
– Sisteme de operare in timp real
Programarea Sistemelor Integrate Introducere
Structura laboratorului
• Partea I - Limbajul C – recapitulare (S1-S4)– Tipuri, operatori, expresii– Controlul programului– Functii si structura programului– Pointeri, tablouri, structuri
P t II (L5 L12)• Partea II (L5-L12)– MSP430 – platforme dezvoltare– Porturi I/O (butoane, LED-uri)
Afisaj LCD– Afisaj LCD – Intreruperi. Utilizare timere.– Achizitie de date. Convertoare A/D, D/A– Aplicatie recorder (2 sed.)Aplicatie recorder (2 sed.)– Comunicatia seriala
c 2013 Liviu Kreindler 1 - 33