Sunteți pe pagina 1din 177

Sisteme cu Microprocesoare

Integrate

CURS 7 - 2013

Achizi ia datelor

.l. dr. ing. Radu PIETRARU


Problematică

 Mărimile fizice înconjurătoare au o varia ie


analogică
 Chiar dacă vorbim de senzori digitali nu
înseamnă că în cadrul procesului de achizi ie
nu are loc o e antionare
 Excep ie fac achizi iile de tip limită (s-a
depă it un anume nivel de exemplu)

2 http://smi.aii.pub.ro
Semnale analogice - conversie

 Când lucrăm cu elemente de conversie trebuie


precizat:
– plaja semnalului analogic (între ce limite variază semnalul
analogic)
– precizia (pasul, perioada de e antionare) – influen ează
valoarea digitală rezultată
– modul de calibrare – ne dă precizia dispozitivului
– necesarul de transfer: dacă citim o valoare digitală
(temperatură, tensiune etc.) trebuie să tim pe câ i bi i i la
ce intervale este nevoie să culegem informa ia.

3 http://smi.aii.pub.ro
Calibrarea

4 http://smi.aii.pub.ro
Funcționarea unui CAN

 Realizează
e antionare de la 0
la tensiunea de
referin ă
 2n intervale de
e antionare
 Rezolu ia = Vref / 2n
(n=8, Vref=5V,
Rez=19.5mV)
5 http://smi.aii.pub.ro
Tipuri de CAN-uri

 Diferă prin acurate e (precizie), viteză de


e antionare i, bineîn eles, prin cost

 Este foarte important de tiut modul în care


func ionează un CAN pentru a putea face o
alegere corectă pentru procesul de
e antionare
6 http://smi.aii.pub.ro
CAN cu urmărire

 Cel mai vechi i cel


mai lent tip de ADC
 Timpul de
e antionare este
dependent de
tensiunea măsurată

7 http://smi.aii.pub.ro
CAN de tip flash

 Cel mai rapid dar i


cel mai costisitor tip
de CAN
 Are un număr de 2n
comparatoare

8 http://smi.aii.pub.ro
CAN cu aproximări succesive

 Un timp pu in mai
bun ca cel cu
urmărire
 În loc să se
efectueze o
incrementare se
efectuează o
căutare binară

9 http://smi.aii.pub.ro
CAN cu integrare

 Partea integrativă se
încarcă până la
valoarea de intrare
după care se măsoară
timpul de descărcare
 Lent dar componenta
integrativă filtrează
zgomotul

10 http://smi.aii.pub.ro
CAN sigma-delta

 Filtru trece jos este


de fapt o
componentă
integrativă
 Lent dar cu o
acurate e mare
(dată de frecven a
ceasului)

11 http://smi.aii.pub.ro
CAN de tip half-flash

 Scade numărul de
comparatoare fa ă
de CAN-ul de tip
flash

12 http://smi.aii.pub.ro
CAN atMega 328P cu aproximări succesive pe 10 biți

13 http://smi.aii.pub.ro
Registre interne

14 http://smi.aii.pub.ro
Senzori

 Elemente care permit transformarea mărimii


fizice măsurate în mărime electrică.
ATEN IE!!! CAN-urile măsoară tensiune,
dacă mărimea electrică dată de senzor este
de altă natură – circuit suplimentar.

 Permit unui sistem de calcul achizi ia i


prelucrarea în scop decizional a unor mărimi
preluate din mediul înconjurător.
15 http://smi.aii.pub.ro
Termistorul

 Rezisten ă care î i modifică


caracteristica în func ie de
temperatură
 Alternative:
– RTD (Resistance
Temperature Detector) – fir
de nichel, cupru sau platină
– Termocuplu (are o plajă de
măsurare mai mare)

16 http://smi.aii.pub.ro
-55oC … 150oC
10mV/oC
precizie 0.5oC
60 µA
LM35 3-30RON

float temp;
int tempPin = 0;

void setup()
{
Serial.begin(9600);
}

void loop()
{
temp = analogRead(tempPin);
temp = temp * 0.48828125;
Serial.println(temp);
delay(1000);
17 } http://smi.aii.pub.ro
-40oC … 150oC
10mV/oC
precizie 2oC

MCP9700A 6 µA
1RON

float GetTemp(void)
{
float t;
t =
analogRead(1)*5/1024.0;
t = t - 0.5;
t = t / 0.01;
return (t);
}

VOUT = TC • TA + V0°C
18 http://smi.aii.pub.ro
SYH-2R (umiditate)

19 http://smi.aii.pub.ro
Determinarea umidității

20 http://www.tehnorama.ro/cum-sa-faci-o-floare-sa-te-traga-de-maneca-atunci-cand-ai-uitat-sa-o-uzi/ http://smi.aii.pub.ro
MQ-3 GAS SENSOR

21 http://smi.aii.pub.ro
TMP102

 -40oC … 150oC
 1 µA – 10 µA
 Acurate e 0.5oC
 Rezolu ie 12 bi i =
0.0625oC
 Viteză 26ms/sample

22 http://smi.aii.pub.ro
TC74

 0oC … 125oC
 5 µA – 200 µA
 Acurate e 2oC
 Rezolu ie 8 bi i =
1oC
 Viteză 8 samples /
sec

23 http://smi.aii.pub.ro
DS1621

 -55oC … 125oC
 1 µA - 1250 µA
 Acurate e 1oC
 Rezolu ie 9 bi i =
0.5oC
 Viteză 1 sec /
sample

24 http://smi.aii.pub.ro
MLX90614 IR Thermometer

25 http://bildr.org/2011/02/mlx90614-arduino/ http://smi.aii.pub.ro
Senzori optici – slotted switched

 Mecanism bazat pe
întreruperea unei
raze luminoase de
către un obiect în
mi care –
generează un tren
de impulsuri
 Regăsit la mouse-
urile mai vechi
26 http://smi.aii.pub.ro
Senzori optici – bazați pe reflexie

 Func ionare similară


ca la slotted
switched dar
obiectul în mi care
este suprafa a
 Similar cu
func ionarea
mouse-urilor optice

27 http://smi.aii.pub.ro
TCS3200 PROGRAMMABLE
COLOR LIGHT-TO-FREQUENCY CONVERTER

28 http://smi.aii.pub.ro
Ultrasonic Ranging Module HC - SR04

digitalWrite(trigPin, LOW);
delayMicroseconds(2);

digitalWrite(trigPin, HIGH);
delayMicroseconds(10);

digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin,
HIGH);

//Calculate the distance (in cm)


based on the speed of sound.
distance = duration/58.2;

29 http://smi.aii.pub.ro
Senzor de vibrații

30 http://smi.aii.pub.ro
Sisteme cu Microprocesoare
Integrate

CURS 8 - 2013

Comandă și control

ș.l. dr. ing. Radu PIETRARU


Problematică

 Sistemele embedded au de multe ori ca funcție


centrală comanda unor dispozitive externe

 Comanda poate fi numerică / binară – aprinde un led


sau deschide o ușă – dar poate avea și un caracter
mai delicat precum menținerea unui parametru fizic
într-o anumită plajă – comanda unui rezistențe de
încălzire pentru a menține o anumită temperatură,
menținerea turației unui motor – comandă de tip
control.
2 http://smi.aii.pub.ro
Metode de control

 Buclă deschisă – comandă oarbă, fără


feedback; pentru aprinderea unui led este ok
dar pentru o comanda de încălzire nu este
rezonabilă.

 Comandă cu reacție negativă

 Comandă bazată pe microprocesor


3 http://smi.aii.pub.ro
Comandă cu reacție negativă

 Reacția negativă prin


intermediul amplificatorului
operațional permite
stabilizarea comenzii.

 Tot nu avem feedback dar


avem o „netezire” a
comenzii.
4 http://smi.aii.pub.ro
Comandă bazată pe microprocesor

5 http://smi.aii.pub.ro
Control de tip ”bang-bang” (on/off)

6 http://smi.aii.pub.ro
Control proporțional

 Netezește șocurile
datorate comenzilor
de tip
închis/deschis.
 Evităm șocurile
puternice și uzura
dispozitivului
comandat.

7 http://smi.aii.pub.ro
Control PID

8 http://smi.aii.pub.ro
Probleme ce pot afecta comanda

 Perturbații
 Saturarea senzorului sau a elementului
comandat

 Timpul de răspuns (de calcul)


 Apariția unor ferestre „fără comandă”

9 http://smi.aii.pub.ro
Izolarea galvanică

 Absolut necesară dacă


existe diferențe de
tensiune sau curent între
montajul de comandă și
cel comandat!!!
 Poate fi realizat prin
optocuploare, relee
magnetice…
 Atenție!!! Masă comună
conduce la non-izolare
galvanică.
10 http://smi.aii.pub.ro
Comandă în tensiune - CNA

11 http://smi.aii.pub.ro
MCP4801

 8-bit Resolution
 Single Channel Voltage Output
 2.7V to 5.5V Operation
 Operating Current 330 µA
 Internal Voltage Reference 2.048V
 Selectable Unity or 2x Gain Output
 Output Settling Time 4.5 µs
 SPI Interface
 8-pin PDIP, SOIC, MSOP and 2x3
DFN packages
 Temperature Range -40°C to
+125°C

12 http://smi.aii.pub.ro
MCP4902

 8-bit Resolution
 Dual Channel Voltage Output
 2.7V to 5.5V Operation
 Operating Current 350µA
 External Voltage Reference Pin
 Output Settling Time 4.5 µs
 SPI Interface
 14-pin PDIP, SOIC, and
TSSOP
 Temperature Range -40°C to
+125°C

13 http://smi.aii.pub.ro
Comandă de tip PWM
(Pulse-Width Modulation)

14 http://smi.aii.pub.ro
PWM vs. Comandă în tensiune

 PWM consum mai mic

 Comandă în tensiune permite ajungerea în


regim complet de funcționare

15 http://smi.aii.pub.ro
Comandă piezo buzzer

Tone() -
http://arduino.cc/en/Tutorial/Tone

Melody -
http://www.arduino.cc/en/Tutorial/
Melody

16 http://smi.aii.pub.ro
Comandă în tensiune – motor CC

17 http://smi.aii.pub.ro
Comandă în tensiune – motor CC (2)

30A, 60V, Logic


18 Level N-Channel Power MOSFETs http://smi.aii.pub.ro
Comandă în tensiune – motor CC (3)

Dual Full-Bridge Motor Driver - L298N

19 http://smi.aii.pub.ro
Comandă în tensiune – motor CC (4)

L293D – Quadruple Half-H Drivers

20 http://smi.aii.pub.ro
Half-bridge vs. full-bridge

21 http://smi.aii.pub.ro
Comandă în tensiune – motor CC (5)

HIGH-VOLTAGE, HIGH-CURRENT
DARLINGTON TRANSISTOR ARRAYS

22 http://smi.aii.pub.ro
Control motor cu reacție

23 http://smi.aii.pub.ro
Comandă putere - releu

24 http://smi.aii.pub.ro
Sisteme cu Microprocesoare
Integrate

CURS 9 - 2013

Comunicații

ș.l. dr. ing. Radu PIETRARU


Problematică

 Chiar dacă de cele mai multe ori funcționalitatea


sistemelor embedded se rezumă la execuția unei
sarcini simple cu efect local există situații în care
este necesar ca sistemul să poată efectua
comunicații la distanță.
 Exemple: transmisia parametrilor măsurați la o stație
centrală – sistem de achiziție distribuit, interfață
utilizator la distanță – echipamente industriale aflate
la distanță de consola de comandă, transmiterea
unor comenzi la distanță – sistemul de navigație a
unei rachete ș.a.m.d.
2 http://smi.aii.pub.ro
Comunicație serială RS232

 Standard de comunicație serială introdus în


1962
 Permite comunicația între două dispozitive
(DTE – Data Terminal Equipment, DCE –
Data Communication Equipment).
 Distanța maximă aproximativ 15 metri.
 Permite transmisia sincronă sau asincronă.

3 http://smi.aii.pub.ro
UART – Universal asynchronous receiver / transmitter

 Port integrat în majoritatea microcontrolerelor

4 http://smi.aii.pub.ro
MAX232 - Dual EIA-232 Driver/Receiver

5 http://smi.aii.pub.ro
Comunicație serială RS485

 Standard de comunicație derivat din RS422


 Permite până la 32 de dispozitive (sau chiar
256)
 Distanța maximă 1200 metri (cu ajutorul
repetoarelor de semnal până la câțiva
kilometri)
 Viteze de comunicații între 100kbs și 35Mbs

6 http://smi.aii.pub.ro
RS485 network

7 http://smi.aii.pub.ro
MAX485 - transceivers for RS-485 and RS-422 communication

8 http://smi.aii.pub.ro
RS485 & Arduino

https://arduino-info.wikispaces.com/RS485-Brick
9 http://smi.aii.pub.ro
Alte standarde seriale de
magistrală

 Modbus – protocol serial pentru medii


industriale
 CAN bus (controller area network) – standard
de comunicație pe 2 fire bazat pe mesaje
proiectat pentru industria auto
 LIN (Local Interconnect Network) – serial
master-slave, 1 fir
 MOST bus (Media Oriented Systems
Transport)
10 http://smi.aii.pub.ro
Comunicații prin infraroșii

11 http://smi.aii.pub.ro
IrDA – Infrared Data Association

IrPHY (Infrared Physical Layer Specification)


nivelul fizic al specificațiilor protocolului IrDA –
stabilește specificațiile legăturii optice, modularea
și codarea semnalului optic.
IrLAP (Infrared Link Access Protocol)
reprezintă nivelul de date (control acces,
descoperirea partenerilor de comunicație, QoS).
IrLMP (Infrared Link Management Protocol) dă
posibilitatea managementului a mai multor canale
logice de comunicație și stabilirea rolurilor în
cadrul comunicației.
Tiny TP (Tiny Transport Protocol) permite
transportul de mesaje de mari dimensiuni prin
SAR (Segmentation and Reassembly) și controlul
canalelor logice.
IrCOMM (Infrared Communications Protocol)
permite utilizarea protocolului ca un protocol
serial sau paralel.
IrOBEX (Object Exchange) permite schimbul de
date încapsulate (de exemplu de tip vCard)
IrLAN (Infrared Local Area Network) permite
formarea de rețele de dispozitive.

12 http://smi.aii.pub.ro
Soluție de interconectare IrDA

MAX3100 – SPI UART


Controller (IrDA timing
compatible)

HSDL-1001 - Infrared
IrDA
Compliant Transceiver

13 http://smi.aii.pub.ro
Soluție de interconectare IrDA (2)

14 http://smi.aii.pub.ro
Bluetooth

 Standard radio de comunicație multidispozitiv


cu salt în frecvență (2400-2480MHz)
 Distanță maximă 100 metri
 Viteză de transmisie 721kbps (1.1 & 1.2),
3,2Mbps (2.0), 24Mbps (3.0)
 Permite realizarea de rețele ad-hoc (piconet)
de tip master-slave interconectabile
(scatternet)
15 http://smi.aii.pub.ro
Generații noi

(2009) Bluetooth v3.0 + HS – utilizează


legătura Bluetooth pentru conectare și
stabilirea legăturii și transferă date peste o
legătură 802.11

(2010) Bluetooth v4.0 – include BLE (Bluetooth


Low Energy – succesor pentru WiBee)

16 http://smi.aii.pub.ro
Arduino Bluetooth

17 http://smi.aii.pub.ro
Alte opțiuni de comunicație radio

HopeRF FM12B 433MHz*


JeeLabs.org

*LPD433 (Low Power Device 433 MHz)


18 http://smi.aii.pub.ro
XBee / ZigBee
10m-100m, ISM*

 XBee – marcă a Digi International pentru o serie de


module radio bazate pe protocolul 802.15.4 - low-
rate wireless personal area networks (LR-WPANs)
– Generația 1 (Series 1) include XBee (1mW) și
XBee-PRO (100mW) permițând comunicații PTP
și PTM
– Generația 2 (Series 2) include XBee ZB și XBee-
PRO ZB ce permit comunicații ZigBee de tip
mesh network
*Industrial, scientific and medical (ISM) radio bands; 868
MHz in Europe, 915 MHz in the USA and Australia and 2.4
19 GHz in most jurisdictions worldwide http://smi.aii.pub.ro
ZigBee

o Standard de protocoale de
comunicație pentru rețele radio
de mică putere permițând
formarea de rețele locale ad-
hoc fără fir.
o Gândit pentru aplicații de
control la distanță, aplicații de
monitorizare, rețele de senzori.
o Specificații publicate:
 ZigBee Home Automation
 ZigBee Smart Energy 1.0
 ZigBee Telecommunication Services
 ZigBee Health Care
 ZigBee RF4CE - Remote Control
 ZigBee Light Link

20 http://smi.aii.pub.ro
Arduino Wireless SD Shield

21 http://arduino.cc/en/Main/ArduinoWirelessShield http://smi.aii.pub.ro
Exemplu de rețea ZigBee

22 http://smi.aii.pub.ro
Microchip MiWi

23 http://smi.aii.pub.ro
WiFi (802.11)

24 http://smi.aii.pub.ro
WiFly (Embedded Wi-Fi)
Roving Networks’ Wi-Fi Solution

25 http://smi.aii.pub.ro
Ethernet

26 http://smi.aii.pub.ro
GSM/GPRS

27 http://smi.aii.pub.ro
M2M

28 http://smi.aii.pub.ro
Sisteme cu Microprocesoare
Integrate

CURS 10 - 2013

Proiectarea software

.l. dr. ing. Radu PIETRARU


Problematică

 Proiectarea software implică rezolvarea câtorva


probleme:
– Sistematizarea specifica iilor func ionale pentru a putea fi
implementare sub forma unui program – diagrame data
flow, diagramă de stare, flow charts, pseudocod – constituie
specifica iile software
– Alegerea unei arhitecturi de program – buclă deschisă,
sistem de întreruperi, multitasking
– Alegerea instrumentelor pentru implementarea i testarea
programului – asambloare, compilatoare, instrumente de tip
JTAG
– Managementul procesului de dezvoltare
2 http://smi.aii.pub.ro
Diagrame data flow

 Identifică procesele principale din sistem i


descriu modul în care informa ia (comenzi,
achizi ie de date, evenimente) circulă între
aceste procese
 Nu descriu condi ii / nu identifică stările
decizionale
 Utile pentru identificarea func ională majoră

3 http://smi.aii.pub.ro
Funcționarea unui ascensor

Control motor
Pozi
tiona
Pozitionare r e la e
taj
efectiva

Verificare conditii
Am ajuns

Verificare conditii

Am ajuns
functionare cu
functionare in gol
utilizatorul
Solicitare Solicitare
pozitionare transport etaj
etaj

Comenzi Comenzi interne


externe

4 http://smi.aii.pub.ro
Diagrama de stare

 Identifică stările sistemului i tranzi iile între


stări
 Pun accentul pe evenimentele care
declan ează trecerea dintr-o stare în alta
 Reprezintă un nivel mai detaliat necesar
pentru a putea implementa procesele

5 http://smi.aii.pub.ro
Ascensor – diagramă de stări

GOL
De
sch
i
la a dere u
lt e
Senzor Senzor taj sa
greutate

Co
Senzor

greutate greutate m
Se an
n z da AVARIE
o e
Senzor r d xte
PLIN e
greutate e t rn a
aj
Blocare intre etaje
Senzor

Cmd interna
etaj

re
l o ca aje DEPLASARE
B t
TRANSPORT tree GOL
in
PERSOANE

6 http://smi.aii.pub.ro
Diagrame flow charts

 Detaliază efectiv procesul

 Ne arată atât tranzi iile i factorii care le


determină cât i partea decizională a
procesului

 Formă destul de apropiată de codul propriu-


zis
7 http://smi.aii.pub.ro
Ascensor - detaliu

......
Initializare
sistem Avarie
NU
Senzor greutate = 0
Deschide
Etaj = x S.usa ≠ etaj
usa
Usa inchisa

DA

S. greutate ≠ 0

......
8 http://smi.aii.pub.ro
Pseudocod

 Descriere a unui algoritm într-o formă


apropriată de limbajul uman
 Respectă un formalism minimal

Exemplu:
IF <condition>
DO stuff;
ELSE
DO other stuff;
9 http://smi.aii.pub.ro
Avantajele sistematizării
specificațiilor funcționale

 Implementare riguroasă
 Posibilitatea reutilizării unor păr i din partea
de proiectare în cazul modificării hardware
sau a instrumentelor software
 Urmărirea corectă a efectelor unei modificări
în specifica iile func ionale

ATEN IE! O greșeală în realizarea unei diagrame sau în


pseudocod conduce la implementarea sigur greșită a codului…
10 http://smi.aii.pub.ro
Management break

 Trebuie să se facă deosebire între două


sarcini diferite:

– Analist

– Programator

11 http://smi.aii.pub.ro
Arhitecturi de program

 Buclă infinită – verificarea intrărilor i


efectuarea opera iilor necesare în cadrul unei
bucle infinite.
 Mai multe bucle infinite între care efectuăm
diverse tranzi ii.
 Buclă infinită + sistem de întreruperi –
necesitatea de cod reentrant.
 Multitasking.
12 http://smi.aii.pub.ro
Management break

 Arhitectura programului influen ează în mod


crucial atât modelarea sub formă de
pseudocod cât i codul propriu-zis.
 Alegerea arhitecturii programului sau a
uneltelor de dezvoltare nu trebuie să fie
sarcini ale analistului sau ale programatorului
ci ale managerului de proiect ( ef de proiect,
arhitect, senior …).

13 http://smi.aii.pub.ro
Alegerea limbajului de programare

 Limbaj de asamblare – programare


mai eficientă (memorie –
dimensiune & timp de acces,
utilizare periferice).
 Limbaj de nivel înalt – timp mai
scurt de învă are, portabilitate i
reutilizare a codului.
14 http://smi.aii.pub.ro
Alegerea mediului de dezvoltare

 Maturitatea mediului de dezvoltare


(mo tenirea bugurilor mediului de
programare).
 Producătorul mediului de dezvoltare.
 Intefa ă IDE.
 Biblioteci disponibile.

15 http://smi.aii.pub.ro
Alegerea altor instrumente utile

 Simulatorul – integrat adesea în mediul de


dezvoltare dar nu întotdeauna.
 Mecanisme de debug conectate direct la
platformă – intefa ă JTAG (IEEE-1149.1).
 Metode de încărcare / transfer a programului
în memoria internă a microcontrolerului (ISP,
ICSP).

16 http://smi.aii.pub.ro
Interfață JTAG (IEEE-1149.1)

17 http://smi.aii.pub.ro
ISP – In-System Programming

18 http://smi.aii.pub.ro
ICSP – In-Circuit Serial Programming

19 http://smi.aii.pub.ro
Alte probleme legate proiectarea și testarea
software

 Durata de desfă urare a proceselor fizice


(timpul în care urcă liftul între etajul 1 i 2).
 Probleme de func ionare hardware
(func ionarea defectuoasă a unui senzor).
 Întârzieri datorate arhitecturii hardware
(periferice lente, arbitrare pe magistrala
sistem).
 Perturba ii diverse.
20 http://smi.aii.pub.ro
Continuare…

 Limitări hardware (UCP, dimensiunea


memoriei, viteză de comunica ie).
 Depanarea (de multe ori trebuie efectuată de
personal fără pregătire tehnică avansată).
 Priorită i în func iile de sistem (butonul de la
ce etaj este prioritar?).
 Solicitări particulare de la client (limbaj de
dezvoltare, specific interfa ă utilizator)
21 http://smi.aii.pub.ro
Sfârșitul continuării

 Parti ionarea codului.


 Caracteristicile de timp real.
 Comentarea corespunzătoare a codului.
 Realizarea de instruc iuni de utilizare.
 Implementarea elementelor la modă.

22 http://smi.aii.pub.ro
Sisteme cu Microprocesoare
Integrate

CURS 11 – 2013

Sisteme de operare
specializate

ș.l. dr. ing. Radu PIETRARU


Funcțiile unui sistem de operare

 Gestionează task-urile
 Face legătura între hardware și utilizator
 Realizează anumite sarcini specifice
 Gestionează resursele sistem

2 http://smi.aii.pub.ro
Sisteme operare embedded

 Rulează pe platforme de tip embedded


 Permit multitasking (funcții complexe)
 Permit scrierea de software mai rapid
(datorită interfațării cu hardware-ul – funcții
sistem)
 Pot fi hard RTOS / soft RTOS / uz general
 Pot fi proprietar sau open-source

3 http://smi.aii.pub.ro
Criterii de evaluare în alegerea SO

 Categoria din care face parte sistemul


 Resursele hardware
 Timpul de proiectare / producție / lansare
 Cost
 Competențe necesare

4 http://smi.aii.pub.ro
Categoria sistemului

 sisteme din industria auto


 industria aeronautică / sisteme militare
 categorii de larg consum
 sisteme medicale
 dispozitive de rețea
 sisteme din industrie

5 http://smi.aii.pub.ro
Resurse hardware

 procesorul: acest aspect limitează foarte mult alegerea


SO deoarece majoritatea sistemelor de operare sunt
gândite pentru anumite arhitecturi.
 memoria
 necesarul de interconectare: lucrul cu hardware-ul. SO
trebuie să poată include capacitatea de comunicare
TCP/IP, bluetooth, WiFi, 3G etc. dacă se dorește
disponibilitatea anumitor metode de transmitere de date.
 perifericele

6 http://smi.aii.pub.ro
Cost

 Dacă se notează cu:


– P = prețul produsului final cu care se dorește a fi
dat cumpărătorului
– Ch = costul hardware-ului
– CS = costul software-ului (taxă pentru fiecare
bucată vândută)
– Nh = costul de proiectare hardware
– NS = costul de proiectare software
– D = numărul de dispozitive vândute
7 http://smi.aii.pub.ro
Cost

 Se obține următoarea formulă:

P  Ch  C S  
Nh NS
D D
 Ch se amortizează în funcție de numărul de
dispozitive vândute. NS – este un cost care ține de
software-ul dezvoltat de producător sau în cazul în
care software-ul este cumpărat. Acest cost se
platește o singură dată , nu pentru fiecare bucată
dispozitiv în parte. De obicei NS este inclus în Cs.
8 http://smi.aii.pub.ro
Timpul de
proiectare/producție/lansare

 timpul de realizare este timpul necesar pentru ca


produsul(dispozitivul) să fie lansat pe piață. Acest
timp nu trebuie să fie prea mare, dar el depinde de
tipul produsului.

9 http://smi.aii.pub.ro
Competențe necesare / suport

 Competențele reprezintă gradul de cunoștințe


necesare pentru a utiliza și dezvolta sistemul de
operare. Ele sunt competențele pe care trebuie să le
aibă echipa de dezvoltare pentru a lucra cu sistemul
de operare.
 Un SO mai cunoscut dispune de o comunitate de
utilizatori mai mare, lucru care face SO mai puternic
deoarece documentația pentru suport se găsește
mai rapid și în cantități mari.

10 http://smi.aii.pub.ro
Decizie

 cumpărăm sistemul de operare?


 dezvoltăm un SO?
 alegem soluția hibridă – cumpărăm un SO
sau alegem un SO opensource și îl adaptăm
cerințelor noastre?

11 http://smi.aii.pub.ro
Cumpărarea unui sistem de
operare

 Prin cumpărarea unui SO cumpărăm un produs


optimizat, timpul de lansare pe piață este scurt,
beneficiem de suport. În cazul produselor comerciale
– timpul de viață al produsului este asigurat. De
obicei, produsele comerciale sunt bine documentate.
 Aspecte negative:
– cost mare : poate exista o taxă pe dispozitiv; orice soft nu
este perfect și pot apărea bug-uri de aceea trebuie văzut
modul de realizare al contractului de cumpărare
– trebuie să se cunoască de la început necesarul hardware
– suntem nevoiți să învățăm produsul dezvoltat de altcineva
12 http://smi.aii.pub.ro
Dezvoltarea unui SO propriu

 Aspecte pozitive:
– nu depindem de produsul altuia (care în timp poate da faliment și
în acest caz nu am mai avea suportul necesar)
– avem independență față de această piață
– ținem sub control costurile
 Aspecte negative:
– competențe: greu de găsit persoane suficiente pentru a lucra la
componente
– depindem de persoanele care dezvoltă aplicația (poate exista
cazul în care concediem persoanele care au dezvoltat softul)
– durează mai mult dezvoltarea softului
– documentația depinde de persoanele care au dezvoltat produsul
– trebuie asigurată mentenanța produsului
13 http://smi.aii.pub.ro
Soluție hibridă

 Când plecăm de la o soluție open-source și


dezvoltăm ceva nou. O soluție hibridă
presupune un cost inițial, dar costurile totale
sunt mai mici. Aceasta este o soluție care
realizează un compromis între primele două
variante.

14 http://smi.aii.pub.ro
Exemple de sisteme de operare embedded

 Uz general:
– eCos, µCLinux
– FreeRTOS
– µc/OS II & III

 Dispozitive de rețea:
– Cisco OS

 Telefoane inteligente / tablete:


– Bada OS, Symbian / S60
– Windows CE (Windows Mobile, Windows Phone)
– BlackBerry OS, iOS
– Android

15 http://smi.aii.pub.ro
eCos - Embedded Configurable Operating System
http://http://ecos.sourceware.org/

 opensource, royalty-free, real-time


 derivat din RedHat Linux dar nu este un sistem de operare linux-like
 Arhitecturi suportate: ARM, CalmRISC, Cortex-M, Renesas R8 și
SuperH, IA32, MIPS, NEC-V8, PowerPC, SPARC…
 Include:
– Hardware Abstraction Layer (HAL),
– Real-time kernel (Interrupt handling, Exception handling, Choice of schedulers,
Thread support, Rich set of synchronization primitives, Timers, counters and alarms,
Choice of memory allocators, Debug and instrumentation support),
– POSIX compatible API,
– ISO C and math libraries,
– Serial, ethernet, SPI, I2C, framebuffer, CAN, ADC, wallclock and watchdog device
drivers, USB slave support,
– TCP/IP networking stacks,
– C++ Standard Template Library (uSTL).
16 http://smi.aii.pub.ro
Exemple de sisteme rulând eCos

WowWee’s Rovio mobile robot


Banksys payment terminal has a built-in webserver
17 http://smi.aii.pub.ro
µCLinux - http://www.uclinux.org/
Embedded Linux without Memory Management Unit (MMU)

ISS – analiza calității aerului uClinux-based serial port servers

18 http://smi.aii.pub.ro
FreeRTOS
http://www.freertos.org/

 scris în C
 Oferă mecanisme
pentru fire de execuție,
semafoare, timere.
 Nu oferă suport pentru
MMU, drivere,
multiusers sau rețea.
 Peste 31 de
microcontrolere
suportate.
19 http://smi.aii.pub.ro
Micriµm µC/OS II & III
http://www.micrium.com

 Micro-Controller Operating Systems


 Dimensiuni reduse, necesită doar 20KB
pentru un kernel complet funcțional
 Codul sursă scris în ANSI C
 Suportă mai multe de 100 de arhitecturi de la
8 la 64 de biți
 OS ~5.000$, TCP/IP Stack ~12k$, USB
Stack ~10k$...
20 http://smi.aii.pub.ro
Microsoft OS

 Windows CE (Windows Embedded Compact) –


versiune pentru sisteme specializate, poate rula cu
sub 1MB RAM. Suportă ARM, MIPS, SuperH și x86.
 Windows Mobile – particularizare a WinCE pentru
smartphone, pocketPC, PDA, automotive
 Windows Phone (7,8) – înlocuiește Windows Mobile,
derivat din WinCE dar nu mai este compatibil
 Windows Embedded Standard – versiune compactă
a versiunilor desktop (XP Embedded, 2009, 7,
POSReady)
21 http://smi.aii.pub.ro
Android

 Dezvoltat inițial de Android Inc. începând cu


2003, achiziționat de Google în 2005
 Bazat pe kernel de Linux (4.0 -> kernel 2.6)
 Orientat puternic către arhitectura ARM
(câteva tentative de portări x86 – GoogleTV,
Android x86)
 În 2007 a luat naștere Open Handset
Alliance pentru standardizarea în cazul
dispozitivelor mobile.
22 http://smi.aii.pub.ro
Arhitectura sistem

23 http://smi.aii.pub.ro
Aplicații Android

Home Appliance

24 http://smi.aii.pub.ro
Sisteme de operare pentru Arduino

 DuinOS – derivat din


FreeRTOS
http://code.google.com/
p/duinos/
 PyxisOS – interfață
utilizator, necesită
Arduino Mega + Mega
Palm
http://www.skewworks.c
om/pyxis/
25 http://smi.aii.pub.ro
Sisteme cu Microprocesoare
Integrate

CURS 12 - 2013

Sisteme industriale de
tip PC

ș.l. dr. ing. Radu PIETRARU


Ce este un PC industrial?

 Un sistem de tip PC (x86) destinat aplicațiilor


industriale
 Caracteristici:
– Solid (carcasă metalică robustă)
– Formă standard (rack-abilă)
– Răcire optimizată (filtru de aer, răcire cu lichid)
– Extensibilitate mai simplă
– Ecranare magnetică și electrică
– Consum redus
– Watchdog de sistem

2 http://smi.aii.pub.ro
Exemple

3 http://smi.aii.pub.ro
Avantaje

 Viteza de dezvoltare a sistemului (time to


market): sunt luate în considerare prețul
(costul) și timpul de dezvoltare
 Cost proiectare / dezvoltare redus pentru
cazul unor sisteme produse în serie mică.
 Timpul în care hardware-ul este disponibil e
minim.

4 http://smi.aii.pub.ro
Avantaje (2)

 Capacitate de stocare a datelor


 Software standard (familiar): există deja foarte mulți
oameni instruiți pe aceste sisteme
 Hardware standard: componentele sunt relativ ușor
de găsit pe piață
 Interfața utilizator
 Tool-uri: de la cele gratis la cele comerciale; partea
de instruire nu este necesară
 CPU (procesorul): de obicei, procesoarele care se
găsesc pe aceste sisteme sunt standard.
5 http://smi.aii.pub.ro
Dezavantaje

 Cost mare: când produsul este optimizat, dar deja a


fost produs în serie.
 Dezvoltare hardware: când avem de interfațat
sistemul cu un dispozitiv non-standard. În acest caz
costul e si dezavantaj și avantaj.
 Necesitatea unei tastaturi și display: lucru care poate
fi evitat prin modificarea BIOS-ului, astfel încât să
permită pornirea sistemului de operare și fără aceste
periferice sau să permită redirecționarea acestor
dispozitive către portul serial etc.
6 http://smi.aii.pub.ro
Dezavantaje (2)

 Disponibilitatea componentelor: lumea PC-urilor are o


dezvoltare foarte rapidă; dacă luăm azi un PC, peste 3 ani dacă
ni s-a ars o componentă există posibilitatea să nu mai găsim pe
piață înlocuitor.
 SO nu sunt real time: dacă utilizăm SO uzuale (DOS, Windows)
nu ne oferă performanțe în timp real. Putem să alegem în acest
caz soluții mai scumpe în ceea ce privește sistemul de operare.
 disponibilitatea de stocare: personalizări ale sistemului: unele
sisteme nu dispun de HDD
 partea de proiectare este executată de alte persoane și nu
echipa proprie de dezvoltare, idem testare: nu avem siguranța
că proprietățile declarate sunt și cele reale.
7 http://smi.aii.pub.ro
Standarde industriale

 PC/104

 STD Bus (Z80)

 VME Bus (Motorola)

8 http://smi.aii.pub.ro
PC/104

 Stabilește forma și magistrala de


interconectare:
– PC/104 – ISA
– PC/104-Plus – ISA & PCI
– PC-104 – PCI
– PC/104 Express – PCI & PCIe
– PCIe/104 - PCIe

9 http://smi.aii.pub.ro
Exemple

10 http://smi.aii.pub.ro
Freescale Vybrid Tower System

11 http://smi.aii.pub.ro
Sisteme de control industriale

12 http://smi.aii.pub.ro
Sisteme SCADA
Supervisory Control And Data Acquisition

Un sistem SCADA are patru funcții principale:

1. Achiziția de date (și înregistrarea în timp


real)
2. Comunicația la distanță
3. Prezentarea datelor (și definirea de alarme)
4. Controlul

13 http://smi.aii.pub.ro
Componentele unui sistem SCADA

 Senzori (digitali sau analogici) și mecanisme de control


(elemente de achiziție și de comandă).
 Remote telemetry units (RTUs). Sisteme de calcul integrate ce
sunt localizate pe teren. Au rolul de a prelua și transmite date
sau de a primi și pune în practică comenzi. Implică utilizarea
sistemelor de tip IED – Intelligent electronic device și PLC –
Programmable logic controller.
 SCADA master units. Sisteme de calcul ce joacă rolul de
servere pentru sistemul SCADA. Includ interfața cu utilizatorul
(HCI, HMI) și partea de procesare necesară comenzii.
 The communications network – interconectează SCADA
master și RTU-urile din teren (conectare directă, prin transport,
14 microunde, radio, fibră optică).
http://smi.aii.pub.ro
Arhitectura
unui
sistem
SCADA

15 http://smi.aii.pub.ro
Producători sisteme SCADA/EMS

16 http://smi.aii.pub.ro
Protocoale de comunicație

17 http://smi.aii.pub.ro
18
Exemplu – stație de transformare

19 http://smi.aii.pub.ro
Interfață de raportare / comandă

20 http://smi.aii.pub.ro
Exemplu – nod transport gaze naturale

21 http://smi.aii.pub.ro
Exemplu – sistem de supraveghere
sistem transport gaze naturale

22 http://smi.aii.pub.ro
Securitate – Barajul Roosvelt

 Sistem SCADA de
control al deversării
compromis în 1998
de către un ”hacker”
în vârstă de 12 ani.
 A fost preluat
controlul complet
asupra vanelor de
deversare și barajul
23 golit aproape total. http://smi.aii.pub.ro
Securitate – Pana de curent din SUA 2003


Provocată de o cădere a sistemului
SCADA a sistemului energetic național
 Datorită imposibilității de control al
liniilor a generat o supraîncărcare
(urmată de cădere) a mai multor linii de
transport.
 În două ore s-au pierdut 61.800MW

24  Ancheta a durat doi ani http://smi.aii.pub.ro


OPC Server for Arduino

25 http://smi.aii.pub.ro
Farm's SCADA

http://www.segura.cat/project/menu.php?projecte

26 http://smi.aii.pub.ro
Sisteme cu Microprocesoare
Integrate

CURS 13 - 2013

Arhitecura ARM

ș.l. dr. ing. Radu PIETRARU


ARM Advanced RISC Machines

 ARM Ltd. fondată în 1990


ca o colaborate între Acorn,
Apple și VLSI – ulterior ARM
Holding cu sediul în
Cambridge, UK.
 Nu produce circuite
integrate ci realizează
proiectarea de nuclee de
procesoare RISC pe 16/32
biți pe care le licențiază altor
companii.

2 http://smi.aii.pub.ro
Versiuni ale familiei ARM

3 http://smi.aii.pub.ro
Versiuni ale familiei ARM

4 http://smi.aii.pub.ro
Ce se înțelege prin arhitectura ARM?

 Arhitectură RISC pipeline pe 32 biți (byte=8,


halfword=16, word=32)
 Set extins de registre R0 – R16 pe 32 biți
 Arhitectură Load and Store
 Instrucțiuni de lungime fixă, densitate mare,
execuție într-un singur ciclu procesor
 Sistem de întreruperi pe două niveluri cu
schimbarea setului de registre
5 http://smi.aii.pub.ro
Extensii ARM

 Set de instrucțiuni pe 32biți (ARM), 16biți (Thumb),


16/32biți (Thumb2)
 JAVA jezelle DBX (direct byte code execution)
 Extensie DSP (set de instrucțiuni extins)
 VFP (Vector Floating Point) – FPU coprocessor
extension
 SIMD / Neon (Advanced SIMD)
 TrustZone (2 nuclee virtualizate pentru separarea
contextului de rulare)

6 http://smi.aii.pub.ro
Arduino Due
 Microcontroller AT91SAM3X8E (ARM
Cortex-M3) 84MHz
 Operating Voltage 3.3V
 Input Voltage (recommended) 7-12V
 Digital I/O Pins 54 (of which 12 provide
PWM output)
 Analog Input Pins 12
 Analog Outputs Pins 2 (DAC)
 4 UART, CAN, 2 TWI, SPI
 9 timers
 Native USB Host + USB Programming
Port
 Flash Memory 512 KB all available for
the user applications (bootloader ->
ROM) – erase button, SRAM 96 KB (two
banks: 64KB and 32KB)

7 http://smi.aii.pub.ro
Atmel SAM3X / Cortex-M3

8 http://smi.aii.pub.ro
Maple – STM32 ARM
 STM32 F103RB: a 32-bit ARM Cortex
M3 microprocessor 72 MHz
 39 Digital I/O Pins (GPIO)
 16 Analog Input Pins
 12-bit ADC resolution (ADC)
 15 PWM pins at 16-bit resolution (PWM)
 128 Flash and 20KB SRAM
 Integrated SPI (SPI), Integrated I2C
(I2C), 3 USART
 Four 4-channel Timers (Timers)

9 http://smi.aii.pub.ro
Freescale Freedom Board KL25Z
 MKL25Z128VLK4 ARM Cortex M0+
48MHz, 128KB Flash, 16KB SRAM
 Capacitive Touch Slider, 3-axis.
accelerometer MMA8451Q, RGB LED

10 http://smi.aii.pub.ro
Cortex-M0 / Cortex-M0+

11 http://smi.aii.pub.ro
Infineon XMC1100

 XMC1100 ARM Cortex-M0,


64MHz
 64KB Flash, 16KB SRAM, 8KB
ROM

12 http://smi.aii.pub.ro
NXP LPC800 MAX

 NXP LPC812 MCU Low


power ARM Cortex-M0+
Core
 30MHz, 16KB Flash, 4KB
RAM
 3xUSART, 2xSPI,
1xComparator, 1xI2C

13 http://smi.aii.pub.ro
NXP LPC1114 – ARM Cortex-M0

PDIP28, 50MHz, 30KB Flash, 4KB


SRAM, 10-bit ADC, 22 I/O

14 http://smi.aii.pub.ro
Sakura Board

 Renesas RX63N
R5F563NBDDF 96MHz
 1MB Flash, 128KB
SRAM, Data Flash
32KB

15 http://smi.aii.pub.ro
Renesas RX63N

16 http://smi.aii.pub.ro
Raspberry Pi

 Broadcom BCM2835
(ARM1176JZF-S 700
MHz + VideoCore IV
GPU, 512MB SDRAM)

17 http://smi.aii.pub.ro
ARM11 / BCM2835

18 http://smi.aii.pub.ro
Beaglebone

 Procesor AM3359
A8 Cortex, 1GHz
MHz, 512 Mb

19 http://smi.aii.pub.ro
AM3359 / ARM Cortex-A8

20 http://smi.aii.pub.ro
Arduino Tre

21 http://smi.aii.pub.ro
VIA APC

 WM8750, ARMv6-A,
Cortex A9, 800MHz,
2GB RAM

22 http://smi.aii.pub.ro

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