smi cursuri pe scurt

17
1.Sisteme embedded: Sistem specializat care îndeplinește o funcție sau o serie de funcții foarte bine stabilite încă din faza de proiectare. Sisteme embedded = Sisteme cu microprocesoare integrate. Caracteristici: - sunt sisteme specializate (greu de modificat); ex: partea de comanda a unui frigider, a unei masini de spălat etc.;elemente de sine stătătoare: telefonul mobil, mp3 pla yer etc.; sunt portabile; acest lucru implică: dimeniune redusă, formă compactă dar și necesitatea de consum redus; - costul sa fie cât mai mic; acest lucru implică: complexitatea sistemelor embedded trebuie să fie minimă (să nu conțină componente performante), ele fiind construite pentru un scop precis, fără a se face risipă de componente; - funcționalitate bine definită: sistemul embedded trebuie să știe ce să facă; 2.Microprocesoare specializate microcontrolere: De cele mai multe ori sistemele embedded sunt echipate cu microcontrolere. Caracteristicile microcontrolerelor: - funcționează la frecvențe mici - sistemele rezultate prin folosirea microcontrolerelor sunt foarte simple (numărul de componente este mic) - au memorie încorporată (atât memorie program cât și memorie de date) deoarece se doresc circuite de mici dimensiuni la un cost cât mai mic. - pot exista pe circuitul de microcontroler orice tip de circuit: porturi de intrare/ieșire, timere etc Avantaje: programul care rulează este efectiv pe microcontroler, perturbațiile magnetice, electromagnetice etc nu au o influență la fel de mare asupra transferului de date între microcontroler și memorii iar accesul la memorie este mai facil decât in cazul în care memoriile se aflau în exteriorul microcontrolerului. Dezavantaje: CPU-ul dispune de o putere mai mică de procesare din cauza faptului că aria de siliciu a microcontrolerului este ocupată de celelalte circuite (memorii, timere, porturi I/O etc). Exemple: - Familia Intel MCS51 - Familia Atmel AVR (ATmega) - PIC-uri (Microchip) 3.Etape de proiectarea unui sistem (definirea sistemului): - cerințe sistem: cuprind ce trebuie să facă sistemul - cerințe funcționale: descriu cum face sistemul ceea ce se dorește; - specificații tehnice: povestirea de dinainte este adusă în termeni tehnici - specificații hardware: sunt alese componentele - specificații software: este detaliată partea de programare - specificații de testare: cum trebuie efectuate testele de funcționare Cerinte sistem: - Sunt date în general de client. - Descriu în mod trivial ce funcții trebuie să îndeplinească sistemul - Nu au un caracter tehnic dar este bine să fie cât de cât coerente

Upload: daniel-din

Post on 21-Oct-2015

75 views

Category:

Documents


0 download

DESCRIPTION

SMI

TRANSCRIPT

Page 1: SMI Cursuri Pe Scurt

1.Sisteme embedded:

Sistem specializat care îndeplinește o funcție sau o serie de funcții foarte bine stabilite încă din

faza de proiectare. Sisteme embedded = Sisteme cu microprocesoare integrate.

Caracteristici: - sunt sisteme specializate (greu de modificat); ex: partea de comanda a unui frigider, a

unei masini de spălat etc.;elemente de sine stătătoare: telefonul mobil, mp3 player etc.;

sunt portabile; acest lucru implică: dimeniune redusă, formă compactă dar și necesitatea

de consum redus;

- costul sa fie cât mai mic; acest lucru implică: complexitatea sistemelor embedded trebuie

să fie minimă (să nu conțină componente performante), ele fiind construite pentru un

scop precis, fără a se face risipă de componente;

- funcționalitate bine definită: sistemul embedded trebuie să știe ce să facă;

2.Microprocesoare specializate – microcontrolere:

De cele mai multe ori sistemele embedded sunt echipate cu microcontrolere.

Caracteristicile microcontrolerelor:

- funcționează la frecvențe mici

- sistemele rezultate prin folosirea microcontrolerelor sunt foarte simple (numărul de

componente este mic)

- au memorie încorporată (atât memorie program cât și memorie de date) deoarece se

doresc circuite de mici dimensiuni la un cost cât mai mic.

- pot exista pe circuitul de microcontroler orice tip de circuit: porturi de intrare/ieșire,

timere etc

Avantaje: programul care rulează este efectiv pe microcontroler, perturbațiile magnetice,

electromagnetice etc nu au o influență la fel de mare asupra transferului de date între

microcontroler și memorii iar accesul la memorie este mai facil decât in cazul în care memoriile

se aflau în exteriorul microcontrolerului.

Dezavantaje: CPU-ul dispune de o putere mai mică de procesare din cauza faptului că aria de

siliciu a microcontrolerului este ocupată de celelalte circuite (memorii, timere, porturi I/O etc).

Exemple: - Familia Intel MCS51

- Familia Atmel AVR (ATmega)

- PIC-uri (Microchip)

3.Etape de proiectarea unui sistem (definirea sistemului):

- cerințe sistem: cuprind ce trebuie să facă sistemul

- cerințe funcționale: descriu cum face sistemul ceea ce se dorește;

- specificații tehnice: povestirea de dinainte este adusă în termeni tehnici

- specificații hardware: sunt alese componentele

- specificații software: este detaliată partea de programare

- specificații de testare: cum trebuie efectuate testele de funcționare

Cerinte sistem:

- Sunt date în general de client.

- Descriu în mod trivial ce funcții trebuie să îndeplinească sistemul

- Nu au un caracter tehnic dar este bine să fie cât de cât coerente

Page 2: SMI Cursuri Pe Scurt

Cerinte functionale:

- Reprezintă traducerea cerințelor de sistem într-un formalism logic și tehnic adecvat

- Sunt realizate de către proiectant

- Nu impun soluții tehnice dar bun bazele unui necesar de componente

Specificatii tehnice:

- Specificațiile tehnice nu includ scheme electrice. În această secțiune sunt precizate

elementele care vor fi folosite în proiectarea sistemului, ele fiind alese în funcție de

capacități si necesitățile de funcționare.

- Se urmăresc următoarele aspecte:

– putere de calcul: necesară algoritmilor (în funcție de complexitatea acestora)

– interfețe sistem: dacă sistemul dorit necesită o interfață I2C iar sistemul proiectat

oferă interfețe paralele, seriale dar nu si I2C

– numărul de linii I/O: linii de comunicație cu exteriorul; numărul pinilor utilizați depinde de numărul dispozitivelor periferice cu care comunică circuitul

(traductoare, senzori etc)

– necesar memorie și arhitectură memorie

– răspunsul sistemului în timp real

– consumul dorit

– mediul de dezvoltare

– integrarea programului: unii producători au încorporat în dispozitivele produse

softul necesar funcționării echipamentului, soft care este protejat pentru a nu putea

fi copiat;

– cerințele de mediu: pentru același tip de circuit pot exista mai multe prețuri; ex: un

circuit care rezistă la temperaturi extreme este mai scump decât același circuit care

are o limită inferioară de temperatură;

– costul de întreținere: PDA-uri, rutere specializate etc; dacă există necesități de

upgrade a programului, costul de întreținere crește.

Specificatii hardware: - Indică soluții tehnice reale pentru fiecare componentă a sistemului

o Microcontroller

o Achiziție de date

o Interfațare cu utilizatorul

o Comunicații Specificatii software:

- Modelarea software a sistemului

- Importante în cazul sistemelor complexe

- Definire interfețe între componentele software ale sistemului (util în reutilizarea codului)

Specificatii de testare:

- Set de operații la care este supus sistemul în final în vederea îndeplinirii specificațiilor

funcționale

- Indică modul de comportare a sistemului la fiecare operație (de testare) și parametrii de

funcționare în cadrul fiecărui test

Page 3: SMI Cursuri Pe Scurt

4. Proiectarea hardware:

Pentru a putea realiza proiectarea hardware pentru un sistem embedded este necesar să

dispunem de cerințe funcționale și tehnice detaliate. Orice omisiune sau greșeală în redactarea

specificațiilor funcționale poate necesita refacerea proiectării hardware.

Alegerea arhitecturii sistemului de memorie

Depinde de flexibilitatea dorită a sistemului de memorie. Depinde de modul în care se

implementează non-volatilitatea spațiului de program.

SoC – Sistem on Chip – un singur circuit care integrează toate controlerele din sistem și sistemul de memorie

Arhitectură clasică – microprocesor, sistem de memorie, controlere-periferice

Arhitectură multiprocesor – mai multe UCP – implică arbitrarea sau comunicația între acestea

Alegerea UCP-ului

- În funcție de arhitectura sistemului și arhitectura sistemului de memorie.

- Dimensiunea cuvântului (cantitatea de informații prelucrate)

- Puterea de calcul (complexitatea algoritmilor)

- Modalitățile de interfațarea cu restul circuitelor: magistrală sistem, interfațare serială sau

paralelă.

- Instrumentele (și costul acestora) de dezvoltare

- Instruirea (sau durata instruirii) personalului

- Costul kit-urilor de dezvoltare

- Suport

- Ciclul de viață a circuitelor

- Posibilitatea de programare și debug

Alegerea oscilatorului

- Frecvență (comunicația cu alte circuite, ElectroMagnetic Compatibility)

- Oscilator RC sau cuarț - Intern sau extern

Magistrala sistem

- Magistrală multiplexată

- Decodificarea adreselor

- Wait States – pentru interfațarea cu perifericelor mai lente

- DMA

- Arbitrarea accesului (în cazul multiprocesor)

- Analiza propagării semnalelor

Sistemul de memorie - Internă sau externă

- Tipuri de circuite: ROM / RAM

- RAM – SRAM / DRAM

- ROM – PROM / EPROM / EEPROM / FLASH

- NVRAM

- Circuite de stocare magneto-optice

Page 4: SMI Cursuri Pe Scurt

Periferice

- Porturi I/O (paralele) – impedanță de intrare, curent debitat

- Porturi seriale – viteză de comunicație, niveluri logice

- Interfețe seriale intercircuit – compatibilitate

- Timere

- Watchdog

- PWM

- Controlere de tastatură și display

Interfețe seriale de comunicație intercircuit

- I2C – Inter-Intergrated Circuit – SCL/SDA – până la 127 periferice master-slave –

100kHz-3.4MHz – circuite de memorie, senzori

- SPI / Microwire – Serial Peripheral Interface – SCLK/MOSI/MISO/SS – numărul de

periferice limitate de semnalele de select a masterului – 1-70MHz – CAN/CNA, senzori

Condițiile de lucru pentru dispozitiv

- Temperatură

- Umiditate

- Vibrații - Perturbații electro-magnetice

- Electrostatic Discharge (ESD)

- Posibilitatea de alimentare cu energie electrică

- Emisiile electro-magnetice (EMC) și de zgomot ale dispozitivului

Interfața utilizator

Elemente de intrare:

– Butoane

– Tastaturi matriceale

– Tastaturi seriale (PS2)

Elemente de afișare:

– LED-uri

– Caractere pe 7 segmente

– LCD-uri (monocrome/color/alfanumerice/grafice)

Achiziție de date

- Senzori:

– Analogici (necesită convertoare)

– Digitali (de obicei seriali)

- Convertoare Analog Numerice

– Rată de eșantionare

– Precizie

Elemente de comandă

- Permit comanda unor elemente de putere (motoare, electro-valve, rezistențe de încălzire)

- Necesită obligatoriu separare galvanică (optocuploare)

- Necesită elemente de modificare a tensiunii de funcționare (relee, drivere de curent)

Page 5: SMI Cursuri Pe Scurt

Analiză finală

- Toate componentele periferice (interfață utilizator, elemente de achiziție sau de

comandă) îmi conduc la un necesar de interconectivitate în cadrul sistemului (număr de

linii I/O, CAN, magistrale de comunicație)

- Se poate ajunge la modificarea opțiunii de alegere inițială a UCP sau chiar a arhitecturii

sistem

Modelarea sistemului

System engineering (1940 – Bell Laboratories) - știință interdisciplinară ce se ocupă de

partea de proiectare și management (de dezvoltare) pentru un sistem. E capabilă să determine

complexitatea sistemului pentru a permite proiectarea inițială și dezvoltarea corectă. Strâns

legată de control engineering, industrial engineering, project management.

Procesul de dezvoltare

Este văzut ca un proces de decompoziție (analiză detaliată) urmat de un proces de

recompoziție (integrare).Cerințele inițiale sunt analizate și redefinite din punct de vedere tehnic

pentru a fi împărțite în mai multe seturi de specificații necesare diverselor componente sau

activități de dezvoltare.

Modele și limbaje de modelare

Modelele utilizate în ingineria sistemelor fac referire la fazele ce trebuie parcurse în

modelarea sistemului (V, cascadă, spirală).

Limbajele de modelare permit ca rezultatul activității de modelare să aibă o formă

accesibilă și universal recunoscută (Data Flow Diagram, UML, SysML).

Object-Oriented Design

Proiectarea se bazează pe definirea unui set de obiecte (entități) ca elemente de bază în

realizarea modelării. Aceste elemente pot reprezenta acțiuni sau funcții și pot conține

informații. Elementele se pot deriva, moșteni, instanția ș.a.m.d. O astfel de abordare permite

reutilizarea modelelor, analiza și testarea acestora.

Limbaje de modelare

- UML – Unified Modeling Language

- OCL – Object Constrain Language

- MARTE (UML Profile) – Modeling and Analysis of Real-Time and Embedded Systems

- SysML – Systems Modeling Language

5. Interfața cu utilizatorul:

Rol: Interfața cu utilizatorul în cazul sistemelor embedded are de cele mai multe ori un rol

extrem de important fiind una dintre funcțiile majore ale sistemului. Excepție pot face acele

sisteme care sunt gândite să funcționeze autonom în medii greu accesibile.

Elemente de intrare

- Butoane, întrerupătoare

- Tastaturi matriceale

- Tastaturi seriale

- Senzori de mișcare, de presiune sau de accelerație

- Tablete sau dispozitive de tip mouse

- Recunoaștere vocală (microfoane)

Page 6: SMI Cursuri Pe Scurt

Butoane / Întrerupătoare

- Permit transmiterea unei comenzi ”binare„ către un pin al microcontrolerului

- Butoanele implică revenirea = necesită o metodă rapidă de citire

- Buton cu revenire logică ?

Tastatură matriceală Scade numărul de linii necesare pentru interconectare (de la l*c la l+c)

Necesită activarea succesivă a liniilor și citirea coloanelor.

Senzori de accelerație

- Capacitivi

- Piezoelectrici (pe bază de cristale)

- Piezorezistivi

- Senzori pe bază de efect Hall

- Pe bază de transfer de căldură

Elemente de afișare

- Leduri

- Caractere pe 7 segmente

- LCD-uri alfanumerice monocrome

- LCD-uri grafice monocrome

- LCD-uri grafice color

HD4478 – LCD monocrom

- Linii de alimentare:

– VSS – GND

– VDD – +5V

– VEE – contrast

- Linii de comandă:

- RS – Register Select – face diferenţierea între date şi comenzi în ceea ce priveşte liniile

de date. RS=0 – Instruction Input, RS=1 – Data Input.

- RW – Read/Write – face diferenţierea între cicluri de citire şi scriere. RW=0 – scriere,

RW=1 – citire (interogare).

- E – Enable – semnal de activare a circuitului.

- Liniile de date D0-D7 permit schimbul efectiv de date între circuitul de comandă şi

dispozitivul LCD. În funcţie de modul de configurare al dispozitivului LCD pot fi

utilizate doar patru linii de date permiţând interfaţarea cu dispozitive de comandă pe 4

biţi.

- Atenţie! Standardul HD44780U nu este un standard care specifică modul de funcţionarea

al circuitului LCD ci un standard care specifică modul de funcţionare al controlerului

LCD prin intermediul căruia se lucrează cu LCD-ul.

Page 7: SMI Cursuri Pe Scurt

6. Achiziția datelor:

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)

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ă sensibilitatea dispozitivului

- necesarul de transfer: dacă citim o valoare analogică (temperatură, tensiune etc.) trebuie

să știm pe câți biți și la ce intervale este nevoie să culegem informația.

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)

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.

CAN cu urmărire

- Cel mai vechi și cel mai lent tip de ADC

- Timpul de eșantionare este dependent de tensiunea măsurată

CAN de tip flash

- Cel mai rapid dar și cel mai costisitor tip de CAN

- Are un număr de 2n comparatoare

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ă

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

CAN sigma-delta

- Filtru trece jos este de fapt o componentă integrativă

- Lent dar cu o acuratețe mare (dată de frecvența ceasului)

CAN de tip half-flash

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

Senzori

- Elemente care permit transformarea mărimii fizice măsurate în mărime electrică

(tensiune).

- Permit unui sistem de calcul achiziția și prelucrarea în scop decizional a unor mărimi

preluate din mediul înconjurător.

Page 8: SMI Cursuri Pe Scurt

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)

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

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

Senzori de imagine – CCD

- Change Cupled Device

- O suprafaţă care se încarcă electric sub bombardamentul fotonilor, o arie de siliciu care

capătă încărcare electrică. Și aici avem o plajă de măsurare: plaja de sus e culoarea albă.

- Organizarea se face in felul următor: sub forma unei linii (linear CCD); pur şi simplu

necesită mişcare; de ex: se obține o line de imagine.

- Senzorii CCD ne dau doar intensitatea nu şi culoarea, existând două posibilităţi pentru a

face acest lucru: să se pună un senzor pentru fiecare culoare RGB ori să existe câte o linie

pentru fiecare culoare cu un filtru de culoare (FTB luminos) ori să se ia o prismă care

face descompunerea luminii, astfel realizându-se camere care vad color.

Senzori de imagine – Matrix CCD

- Matrix CCD – văd imaginea completă

- Problema la aceşti senzor este faptul că pentru fiecare pixel avem nevoie de conversie

analog-digital, rezultând un efort informaţional enorm.

- Pentru pixelii CCD-ului există codecuri. Nu putem face eşantionare de 800x600 şi să o

transmitem. Trebuie făcută compresie.

7. Comandă și control:

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.

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

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.

Page 9: SMI Cursuri Pe Scurt

Comandă bazată pe microprocesor

Control proporțional

- Netezește șocurile datorate comenzilor de tip închis/deschis.

- Evităm șocurile puternice și uzura dispozitivului comandat.

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

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

PWM vs. Comandă în tensiune

- PWM consum mai mic

- Comandă în tensiune permite ajungerea în regim complet de funcționare

8. Comunicații: 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.

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

Page 10: SMI Cursuri Pe Scurt

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

- Viteze de comunicații între 100kbs și 35Mbs

Bluetooth

- Standard radio de comunicație multidispozitiv

- Distanță maximă 100 metri

- Exemplu de modul bluetooth: YBM-1200

o Interfață USB, UART, SPI

9. Proiectarea software:

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

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ă

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

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

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;

Page 11: SMI Cursuri Pe Scurt

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…

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.

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 …).

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.

Alegerea mediului de dezvoltare

- Maturitatea mediului de dezvoltare (moștenirea bugurilor mediului de programare).

- Producătorul mediului de dezvoltare.

- Intefață IDE.

- Biblioteci disponibile.

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

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.

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

- Partiționarea codului.

- Caracteristicile de timp real.

Page 12: SMI Cursuri Pe Scurt

- Comentarea corespunzătoare a codului.

- Realizarea de instrucțiuni de utilizare.

- Implementarea elementelor la modă.

10. Programarea în limbaj de nivel înalt

- µVision – Mediu integrat de dezvoltare (IDE)

– A51 Macro Assembler

– C51 ANSI C Compiler

– BL51 Code Banking Linker/Locator

– OH51 Object-HEX Converter

– OC51 Banked Object Converter

- Suportă o mare varietate de microcontrolere din familia MCS51, 251, 166, ARM.

De ce C ?

- Dezvoltare și mentenanță mai simplă

- Reutilizare a codului

- Programare structurată

- Modularitatea codului

- Ușurința de implementare a algoritmilor

- Utilizarea unui limbaj bine cunoscut

Particularități ale Keil C (față de ANSI C)

- Tipuri de date

o Bit o char / unsigned char 8 bits

o int / unsigned int 16 bits

o long / unsigned long 32 bits

o float / double 32 bits

o generic pointer 24 bits

- SFR

o sfr SCON = 0x98;

o sbit TI = 0x99;

Zone de memorie

- DATA – Partea inferioară a memoriei de date internă. Adresare directă într-un ciclul

mașină.

- BDATA – Cei șase octeți adresabili la nivel de bit din memoria internă de date.

- IDATA – Partea superioară a memoriei interne de date (la dispozitive de tip 8x52).

Adresare indirectă.

- PDATA – Memorie externă de date (până în 256 bytes) adresabilă indirect pe baza unui

registru de uz general (MOVX @Rn). Durează două cicluri mașină.

- XDATA – Memorie externă de date la care se face accesul pe baza lui DPTR.

- CODE – Memorie externă program la care accesul se face pe baza lui DPTR:

Dimensiunea pointerilor

- generic pointer 3 bytes

- XDATA pointer 2 bytes

- CODE pointer 2 bytes

- DATA pointer 1 byte

- IDATA pointer 1 byte

- PDATA pointer 1 byte

Page 13: SMI Cursuri Pe Scurt

Exemple

unsigned char idata system_status=0;

float pdata outp_value;

unsigned int code unit_id;

char *generic_ptr;

char data *xd_ptr;

inp_byte=XBYTE[0x8500];

inp_word=XWORD[0x4000];

c=*((char xdata *) 0x0000);

XBYTE[0x7500]=out_val;

Exemplu de translatare

#include <reg51.h>

unsigned char pdata inp_reg1;

unsigned char xdata inp_reg2;

void main(void) {

inp_reg1=P1;

inp_reg2=P3;

}

Întreruperi

void timer0(void) interrupt 1 using 0 {

TR0=0;

TH0=RELOADVALH;

TL0=RELOADVALL;

TR0=1;

tick_count++;

printf("tick_count=%05u\n", tick_count);}

„Lucruri” ce trebuie evitate în Keil C

- Declararea unor variabile de tipuri mai mari decât este necesar (se încurajează utilizarea

variabilelor de tip bit)

- Utilizarea unor variabile cu semn

- Utilizarea virgulei mobile (fpsave, fprestore)

- Declararea de variabile globale (regiștrii vs. XDATA; multitasking)

- Utilizarea memoriei externe pentru variabile des utilizare

- Utilizarea de pointeri generici

- Se recomandă utilizarea:

o funcțiilor intrinseci (_crol_, _cror_, _testbit_)

o Macrourilor în locul funcțiilor

#define led_on() {\

led_state=LED_ON; \

XBYTE[LED_CNTRL] = 0x01;}

Modele de alocare a memoriei

Small memory model – alocarea implicită se face în DATA

Compact memory model – alocarea implicită se face în PDATA

Large memory model – alocarea implicită se face în XDATA

MOV R0,#inp_reg1

MOV A,P1

MOVX @R0,A

MOV DPTR,#inp_reg2

MOV A,P3

MOVX @DPTR,A

Page 14: SMI Cursuri Pe Scurt

Librării nereentrante

Alocarea dinamică a memoriei

- Nu este indicată

- E posibilă în XDATA

typedef struct entry_str {

struct entry_str xdata *next;

char text[33];

}

entry xdata *newptr;

newptr=malloc(sizeof(entry));

sprintf(newptr->text, "entry number one");

Declararea adresei unei variabile

unsigned char data byteval _at_ 0x32;

unsigned char xdata inpreg _at_ 0x4500;

unsigned char inpval;

inpval=inpreg;

inpval=XBYTE[0x4500];

Mixarea codului ASM și C

#include <reg51.h>

extern unsigned char code newval[256];

void func1(unsigned char param) {

unsigned char temp;

temp=newval[param];

temp*=2;

temp/=3;

#pragma asm

MOV P1, R7 ; write the value of temp out

MOV P1, #0 ; clear P1

#pragma endasm

}

Page 15: SMI Cursuri Pe Scurt

11. Sisteme de operare specializate:

Funcțiile unui sistem de operare

- Gestionează task-urile

- Face legătura între hardware și utilizator

- Realizează anumite sarcini specifice

- Gestionează resursele sistem

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

Criterii de evaluare în alegerea SO

- Categoria din care face parte sistemul

- Resursele hardware

- Timpul de proiectare/producție/lansare

- Cost

- Competențe necesare

Categoria sistemului

- sisteme din industria auto

- industria aeronautică / sisteme militare

- categorii de larg consum

- sisteme medicale

- dispozitive de rețea

- sisteme din industrie

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 etc. dacă se dorește disponibilitatea

anumitor metode de transmitere de date.

- perifericele

Cost

- Dacă se notează cu:

o P = prețul produsului final cu care se dorește a fi dat cumpărătorului

o Ch = costul hardware-ului

o CS = costul software-ului (taxă pentru fiecare bucată vândută)

o Nh = costul de proiectare hardware

o NS = costul de proiectare software

o D = numărul de dispozitive vândute

- Se obține următoarea formulă:

D

N

D

NCCP Sh

Sh

Page 16: SMI Cursuri Pe Scurt

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

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.

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.

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

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

Soluție hibridă

Când plecăm de la o soluție open-source și dezvoltăm ceva nou. O suluț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.

Exemple de sisteme de operare

- Cisco OS; - S60; - Symbian; - eCos (open sourse RTOS);

- Windows CE (Pocket PC, Windows Mobile);

- BlackBerry OS; - Embedded Linux (Android, µCLinux);

Page 17: SMI Cursuri Pe Scurt

12. Sisteme industriale de tip PC:

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

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.

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

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.

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

Standarde industriale

- PC/104

- STD Bus (Z80)

- VME Bus (Motorola)

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