Sunteți pe pagina 1din 24

Embedded Systems

1. Introducere

1
OBIECTIVE
• introducere în tehnicile de proiectare şi de implementare a
sistemelor înglobate (ES - Embedded Systems).

• în urma absolvirii cursului studenţii vor dobândi cunoştinţe necesare


pentru elaborarea specificaţiilor hardware şi software pentru un
sistem embedded particular şi în proiectarea hardware şi software
a acestora inclusiv în cadrul unor colective de proiectare.
– câştig în cunoştinţe generale privind metodele de proiectare şi
construcţie prin aplicarea a ceea s-a studiat la cursurile -
disciplinele anterioare
– de aceea, unele aspecte ale cursului se doresc a fi o
sistematizare a cunoştinţelor acumulate la multe din disciplinele
de hardware şi software studiate până acum.

2
MOTIVAŢIE
• proiectarea ES se bazează pe cunoaşterea diverselor tehnologii şi sunt
direct influenţate de avansurile în domenii ca:
– electronică (senzori, microelectronică, conversie AD şi DA),
– circuite logice, microprocesoare,
– limbaje de programare, sisteme de operare,
– tehnologia comunicaţiilor,
– interfeţe utilizator,
– tehnologia asamblării,
– studiul nevoilor umane şi a cerinţelor pieţei.

3
• disciplina poate fi privită ca o introducere în proiectarea
sistemelor dedicate bazate pe calculator, utilă pentru
specializare în domenii ca:
– sisteme de control
– procesare digitală de semnal
– sisteme în timp real
– robotică
– proiectare VLSI
– reţele de senzori inteligenţi şi elemente de execuţie inteligente
– testare şi fiabilitate de sisteme pe bază de calculator
– tehnici de proiectare low-power
– aplicaţii diverse în domeniile: telecomunicaţii integrate, sisteme
distribuite de prelucrare, automobile, echipamente medicale,
clădiri inteligente etc.

4
DOMENII PRINCIPALE
• electronică de consum / multimedia / timp liber
• autovehicule / echipamente transport
• calculatoare / periferice / birotică
• telecomunicaţii, reţele
• tehnică industrială de măsurare şi control
• tehnică medicală

5
Electronică de consum
• bucătărie: cuptoare cu microunde, congelatoare, automate cafea
• maşini de spălat automate,
• aparate de fotografiat, camere video, playere multimedia
• televizoare analogice (selecţia canalelor, procesare audio) şi digitale
• televizoare digitale inteligente
• jocuri interactive multimedia, jucării inteligente
• sisteme de securitate şi alarmare

6
Autovehicule / Echipamente
transport
• control motor (avans automat la aprindere, raport aer-
combustibil, reglare viteză, consum minim de combustibil)
• siguranţă (control airbag, ABS Antilock Braking System -
anti-blocare frâne, blocare uşi, )
• control navigaţie (stabilitate, transmisie automată, navigare
prin hărţi GPS) → exemplu ESP (Electronic Stability
Program)
• confort (iluminat, geamuri electrice, climatizare, afişaj bord)
• elevatoare - lifturi
• transport naval şi aerospaţial (sisteme de navigare,
sisteme militare de ochire şi urmărire, sisteme de aterizare
automată, explorare spaţială)
• tehnică specială (sateliţi, aviaţie, rachete teleghidate)
• navigaţie marină
7
Exemplu:
• în 2005, 30-90 procesoare pe un automobil
• engine control, break system, airbag, door lock,
entertainment systems, …
• BMW 745i
– Windows CE OS
– peste 60 de microprocesoare
– 53 - 8 biţi, 11 - 32 biţi, 7 - 16 biţi
– tipuri de reţele multiple
• probleme
– timp de proiectare şi dezvoltare diferit pentru autoturism şi
sisteme înglobate
– upgrade dificil
– nu se pot include alte dispozitive în sistem de la alţi producători
8
Calculatoare / Periferice / Birotică
• imprimante, FAX
• tastatură PC
• agende electronice
• bancomate (ATM)
• drive-urile de FD, HD, CD RW şi DVD ROM
• cartelele acceleratoare 3D
• scanere si alte dispozitive SCSI, USB.

Telecomunicaţii, reţele
• telefon mobil
• sisteme de comutaţie automate
• routere, Hubs
• radar, etc. 9
Tehnică industrială de măsurare şi
control
• controllere logice programabile (PLC) pentru monitorizare şi
automatizări industriale
• diferenţe între un PLC şi ES
• PLC sunt de dimensiuni mai mari
• lucrează cu tensiuni mari
• costuri mai mari
• comenzi la distanţă
• robotică
• automatizări ale proceselor chimice, nucleare
• sisteme de supraveghere şi înregistrare automată
• osciloscoape digitale cu memorie
• analizoare logice
• analizoare spectrale etc.
10
Tehnică medicală

• monitoare ale semnalelor fiziologice (cu prelucrare, alarmare,


diagnosticare etc.)
• grafică medicală
• controlul instrumentaţiei complexe (radiaţii, ultrasunete, etc)
• pompe de infuzie (medicaţie, alimentaţie direct în sistemul
circulator al pacientului)

11
Ce este un ES?
• sistemele înglobate sunt sisteme la care calculatorul / microprocesorul
sunt doar simple componente. Principalul scop al utilizării
microprocesorului este să simplifice construcţia sistemului şi să ofere
flexibilitate în proiectare şi construcţie.
• un ES este un sistem pe bază de microprocesor construit pentru a
controla o funcţie sau un domeniu de funcţii particulare şi care nu
este proiectat pentru a fi programat de către utilizatorul final. Sigura
interacţiune cu utilizatorul se face în scopul realizării funcţiilor impuse
sistemului - aplicaţiei.

• un sistem înglobat foloseşte o combinaţie de hardware şi software


pentru a rezolva o funcţie specifică lucrând într-un mediu reactiv şi
care impune constrângeri de timp.
• sistemele embedded sunt sisteme de prelucrare a informaţiei înglobate
în produse mai mari şi care nu sunt de obicei direct vizibile utilizatorului.

12
PROIECTAREA
• procesul de proiectare al ES este similar cu cel al proiectării din lumea
calculatoarelor de uz general: hardware, software şi date intrare/ ieşire,
posibilă legare într-o reţea.

• diferenţe principale ale ES faţă de un PC:


– sistemul trebuie să lucreze rapid, continuu şi corect în
prelucrarea datelor de intrare pentru a produce un rezultat cu mare
grad de încredere → Ex: sistemul de frânare
– cost redus / rezonabil → Ex: Home Cinema

13
• Tradiţional proiectul unui sistem de control era împărţit în hardware şi
software care se proiectau şi testau separat, iar la sfârşit se realiza
integrarea şi testarea sistemului complet → modificări, reluări
frecvente ale proiectării → consumator de timp, scump şi neproductiv

• Dacă hardware şi software pot fi proiectate (co-design) şi testate


împreună încă din fazele iniţiale ale proiectării, costurile de dezvoltare
pot fi reduse, iar produsul poate ajunge pe piaţă mai repede, cu
avantaje de productivitate pentru companie.

14
Creşterea complexităţii
Trei tendinţe au permis creşterea complexităţii ES, la care hardware şi
software nu trebuie privite ca domenii diferite, ci ca două opţiuni de
implementare ce diferă prin metrici de proiectare, cost, performanţă,
dimensiune şi flexibilitate:
– creşterea capacităţii de integrare a Circuitelor Integrate (IC).
– creşterea calităţii compilatoarelor au condus la utilizarea comună a
limbajelor independente de procesor şi a mediilor de dezvoltare
integrate (IDE) în proiectarea sistemelor embedded.
– dezvoltarea unor unelte software pentru proiectarea componentelor
hardware ale sistemului. Uneltele de sinteză permit proiectantului să
descrie funcţionalitatea dorită într-un limbaj de programare de nivel
înalt şi apoi să genereze automat o implementare de procesor cu
hardware particularizat

15
TENDINŢE
• CE a alocat aproximativ 1,3 miliarde EURO/an pentru programe de
cercetare în acest domeniu, pe baza programului cadru FP7
• ARTEMIS1 – creată în 2004 ca platforma tehnologică europeană în
domeniul ES. Parteneri vizaţi: universităţi, institute de cercetare,
producători de EmS sau dezvoltare de toools-uri de proiectare, integratori de
sistem, dezvoltatori de aplicaţii.
• Unul dintre obiective:
– organizarea reţelelor de calcul, în special a celor wireless –aplicaţii, topologii,
distanţe de aplicare, protocoale, interferenţe şi compatibilităţi (babilonie:
Bluetooth, ZigBee, WiFi, WiMaX, RFID, etc)
• O dată cu omniprezenţa dispozitivelor embedded apar noi provocări în
domeniile: tehnologie, inter-operabilitate, standardizare, medodologie,
siguranţă şi securitate
• Pentru că miniaturizarea sistemelor avansează foarte rapid există un decalaj
între arhitectură şi implementarea fizică. ARTEMIS încearcă să înlăture
acest decalaj din punctul de vedere al software, iar platforma ENIAC2 face
acelaşi lucru din punctul de vedere al nano-arhitecturilor.
16
• în prezent circa 90% din dispozitivele de calcul implementate pe piaţă
sunt ES, distribuite în special în domeniile: automobile, industrie şi
energie, apărare şi tehnici spaţiale
• în 2010 - număr de componente embedded programabile de
aproximativ 16 miliarde (aproape 3 dispozitive embedded pe persoană
pe planetă)
• 2020 - peste 40 miliarde componente ES
• î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%)

17
Dezvoltarea aplicaţiilor cu ATmega16
ATmega16 reprezintă un microcontroller cu o arhitectura RISC pe 8 biţi.
Ca urmare, registrele şi magistrala internă de date sunt pe 8 biţi. Totuşi,
în codul C se pot folosi variabile întregi pe 32 de biţi şi chiar în virgulă
mobilă. Compilatorul este cel care se ocupă de translatarea
instrucţiunilor cu variabile pe 32 de biţi în cod asamblare care lucrează
pe 8 biţi.
Din punctul de vedere al memoriei,
microcontrollerul are o arhitectură
Harvard: 1K de memorie SRAM
pentru date şi 16K de memorie Flash
pentru cod.
Adresele de memorie sunt pe 16 biţi.
Pentru stocarea unei adrese se
folosesc două registre.

18
Microcontrollerul are o frecvenţă de până la 16Mhz. Voltajul
este de 4.5-5.4V, existând o versiune ATmega16L care
funcţionează la voltaje între 2.7 - 5.5V.

Ca şi periferice interne ATmega16 oferă:


• 3 timere - două pe 8 biţi, unul pe 16 biţi
• interfeţe seriale: USART, SPI, TWI (two-wire serial interface)
• convertor analog digital cu precizie de 10 biţi.
• 4 canale PWM (pulse width modulation)
• watchdog timer
• RTC (real time counter)
• interfaţă JTAG.

Aceste periferice interne chip-ului pot fi accesate din exterior


prin intermediul pinilor porturilor, care funcţionează şi într-un
al doilea mod, ca pini de intrare/ieşire către periferice externe.
19
Mediul de dezvoltare
In cadrul laboratoarelor se va scrie cod direct în C/C++, nu
în assembler (avr asm), compilatorul fiind avr-gcc. Acesta se
poate folosi atat pe sisteme Linux/Unix cât şi pe Windows
sub forma precompilată, numită WinAVR. WinAVR include şi
bibliotecă de C, avr-libc.
Pentru dezvoltarea programelor se poate folosi orice editor
text (notepad++, vim etc), recomandat fiind programmers'
notepad. Se poate utiliza deasemenea şi IDE-ul AVR Studio
4 oferit de Atmel, ce foloseşte compilatorul WinAVR.

20
Pentru compilare putem folosi următorul Makefile:
build: lab1.hex
lab1.elf: lab1.c
avr-gcc -mmcu=atmega16 -Os -Wall -o lab1.elf lab1.c
lab1.hex: lab1.elf
avr-objcopy -j .text -j .data -O ihex lab1.elf lab1.hex
avr-size lab1.elf
clean:
rm -rf lab1.elf lab1.hex

Compilatorul folosit este avr-gcc. Flag-urile au următoarea semnificaţie:


• -mmcu : informează compilatorul despre tipul microcontrollerului
• -Os : optimizează programul în privinţa memoriei ocupate (destul de folositor
având în vedere memoria limitată prezentă pe chip)

Fişierul care poate fi programat pe placuţă trebuie să fie în formatul ihex.


De aceea este necesară extragerea secţiunilor de date şi cod din fişierul elf
obţinut în urma compilării integrarea lor într-un fişier ihex. Acest pas
foloseşte utilitarul avr-objcopy din suita win-avr. 21
Comanda avr-size arată câtă memorie ocupă diverse secţiuni de cod ale
programului. Trebuie avut în vedere că în memoria SRAM de date, în
afară de secţiunea .data, o să fie pusă şi stiva. Pentru a putea rula
programul pe microcontroller-ul atmega16 trebuie ca secţiunea .text să
fie < 16K şi secţiunea .data să fie < 1K .

Pentru a compila programul de mai sus cu Programmer's Notepad se


poate folosi shortcut-ul setat pentru comanda de make. Rezultatul
compilării este fişierul lab1.hex care urmează a fi încărcat în
microcontroller.

Simularea
Proteus reprezintă o suită de aplicaţii produsă de Labcenter Electronics
pentru design-ul de sisteme electronice. Suita oferă aplicaţii pentru
realizarea de scheme electronice, simularea acestora, scrierea şi
compilarea de cod destinat circuitelor simulate, PCB design etc.

Utilitarul folosit cel mai des la orele de laborator este ISIS care va permite
realizarea şi simularea schemelor electronice folosite în cursul lucrărilor
22
de laborator.
Aplicatie: la secundă să se aprindă si să se stingă led-ul
Rezolvare:

// LED blink
#include<avr/io.h>
#include<util/delay.h>

void main()
{
DDRC=0xFF;
while(1)
{
PORTC=0xFF;
_delay_ms(1000);
PORTC=0x00;
_delay_ms(1000):
}
}

23
Aplicatie: la apăsarea unui buton să se aprindă led-ul corespunzător.
Rezolvare: putem implementa sistemul in trei feluri:
- Continuous pooling
- Interval pooling
- Interrupt processing

// LED switch
#include<avr/io.h>
#include<util/delay.h>

void main()
{
DDRC=0xFF;
DDRD=0x00;
while(1)
{
if(PIND & 0x01)
PORTC=0x01;

if(PIND & 0x02)


PORTC=0x02;

if(PIND & 0x04)


PORTC=0x04;
}
}
24

S-ar putea să vă placă și