curs spnp

208
SISTEME DE PRELUCRARE NUMERICA CU PROCESOARE Author: V. Tiponut “POLITEHNICA” University of TIMISOARA

Upload: simonaandreea

Post on 28-Dec-2015

62 views

Category:

Documents


2 download

DESCRIPTION

ss

TRANSCRIPT

Page 1: Curs SPNP

SISTEME DE PRELUCRARE NUMERICA CU PROCESOARE

Author: V. Tiponut “POLITEHNICA” University of TIMISOARA

Page 2: Curs SPNP

Bibliografie

� V.Tiponut, Sisteme Dedicate, Editura POLITEHNICA 2007 (in pregatire)

* * * Microcontrolerul 8051, (note de curs)� * * * Microcontrolerul 8051, (note de curs)

� Ted Van Sickle, Programming Microcontrollers in C, Second Edition, by LLH Technology Publishing, 2001

� Matthew Chapman, The Final Word on the 8051, 1994

Page 3: Curs SPNP

Ce este un sistem “EMBEDDED” ?

•An embedded system is a special-purpose system in which the computer is completely encapsulated by or dedicated to the device or system it controls.

•An embedded system is a combination of computer hardware and •An embedded system is a combination of computer hardware and software, and perhaps additional mechanical or other parts, designed to perform a specific function.

•A general definition of embedded systems is: embedded systems are computing systems with tightly coupled hardware and software integration, that are designed to perform a dedicated function.

•Any electronic system that uses a CPU chip, but that is not a general-purpose workstation, desktop or laptop computer.

Page 4: Curs SPNP

Definitie

Sistemele dedicate sunt combinatii destructuri de calcul hard si soft, circuitestructuri de calcul hard si soft, circuiteelectronice si respectiv componenteelectromecanice, concepute pentru arealiza o functie specifica (dedicateunei aplicatii).

Page 5: Curs SPNP

STRUCTURA GENERICA A UNUI SISTEM DEDICATR

eal W

orld

Rea

l Wor

ld

Embedded System

Rea

l Wor

ld

Rea

l Wor

ld

Information exchange with other systems( CAN, Ethernet, Internet )

Page 6: Curs SPNP

Componentele unui sistem dedicat

S1

S2 Anti-Aliasing S/H

ADC

Dat

a P

roce

ssin

g U

nit

Dat

a E

xcha

nge

Sn

Dat

a P

roce

ssin

g U

nit

Sampling Signal

A1

A2

An

Recon-struction

DAC

Dat

a E

xcha

nge

Signal Conditioning

Signal Conditioning

Page 7: Curs SPNP

Conditionarea semnalului

+

Udif

_

Ucm

Uout

Ad= 1…1000CMRR = 100 dB

Programmable Gain

Page 8: Curs SPNP

Configuratie programabila (FPAA)

Figure 1. Using a configurable building block for a programmable analog IC, you can change circuit parameters or functionality by changing switch settings with data stored in the memory.

Page 9: Curs SPNP

Circuit cu capacitati comutate

I = fcCVR = 1/(fcC)

Page 10: Curs SPNP

Integrator cu capacitati comutate

With this switched-capacitor integrator, the integration time constant is set by the capacitor ratio, which can be defined with better than 1% accuracy. Changes in the power supply voltage, temperature, or aging have no effect on the time constant.

Page 11: Curs SPNP

Unitatea de procesare a datelor(Data Processing Unit)

Terminologie:Data Processor=Data aprocessing System=Data processing UnitDefinitie: Unitatea de procesare a datelor (UPD) este un sistem care

proceseaza datele achizitionate si codificate intr-o forma recunoscuta de sistem.recunoscuta de sistem.

UPD include doua componente: componenta hardware si o componenta software

Page 12: Curs SPNP

Unitatea de procesare a datelor (I)

� Componenta hardware - implementare

� Componente standard (microprocesoare (uP), � Componente standard (microprocesoare (uP), microcontrolere (uC), procesoare de semnal (DSP))

� Application-Specific Integrated Circuits (ASIC)

� Application-Specific Standard Products (ASSPd)

� Field Programmable Gate Array (FPGA)

� Solutia “System on Chip” (SOC)

Page 13: Curs SPNP

Utilizarea uP ca procesor de date

•Microprocesorul este un circuit care incorporeaza toate functiile unei unitati centrale de prelucrare (CPU) pe un singur circuit integrat.•Unitatea centrala de prelucrare (CPU), denumita uneori procesor, este o componenta dintr-un microcalculator, care interpreteaza programul de instructiuni si proceseaza datele (efectueaza operatii aritmetice si instructiuni si proceseaza datele (efectueaza operatii aritmetice si logice). •Procesorul de date include, pe linga CPU, memorii (date/program), dispozitive intrare/iesire si dispozitve periferice. Un asemenea ansamblu reprezinta, in general, un microcalculator.•CARACTERISTICI

•Putere de procesare ridicata,•Flexibilitate in aplicatii,•Complexitate ridicata a circuitelor.

•CONCLUZIE: Aceasta solutie este rar utilizata in sistemele dedicate,fara a fi total exclusa. Este, insa, o solutie tipica pentru microcalculatoarele din calculatoarele de uz general (in particular, calculatoarele personale).

Page 14: Curs SPNP

Utilizarea uC ca procesor de date

•Microcontrolerul este un circuit VLSI care include pe acelasi chip toate elementele componente ale unui microcalculator (CPU, memorii, dispozitive intrare/iesire, dispozitive periferice). Spre deosebire de microcalculatoarele din calculatoarele de uz general, microcontrolerul deserveste o aplicatie bine precizata. deserveste o aplicatie bine precizata. •CARACTERISTICI

•Complextate scazuta a circuitelor precum si a aplicatiilor soft,•Prezenta unor circuite periferice si de intrare/iesire extrem de elaborate, le recomanda pentru aplicatii de comanda a proceselor (cele mai frecvente in aplicatiile dedicate),•Oferta extrem de larga in ce priveste performantele si la un pret de cost scazut.

•CONCLUZIE: Microcontrolerul este componenta care se preteaza in cea mai mare masura la implementarea procesorului de date din aplicatiile dedicate.

Page 15: Curs SPNP

Implementarea procesorului de date cu DSP

•Procesorul numeric de semnal este un microprocesor (microcontroler) specializat pentru procesarea numerica a semnalelor. •CARACTERISTICI

•Arhitectura specializata in scopul cresterea vitezei de executie a operatiilor aritmetice,Se recomanda a fi utilizat in aplicatii de calcul in timp real, care necesita •Se recomanda a fi utilizat in aplicatii de calcul in timp real, care necesita

viteza de lucru ridicata precum si in aplicatiile ce impun precizie de calcul ridicata (32 de biti),•Din ce in ce mai mult DSP sunt prevazute cu dispozitive periferice si de intrare/iesire tipice microcontroleror, pentru a concura cu succes cu acestea din urma,•Pretul de cost relativ ridicat (comparativ cu uC), fara a fi prohibitiv.

•CONCLUZIE: Implementarea procesorului de date utilizind DSP se justifica in cazul aplicatiilor de prelucrari de semnale, in care precizia si mai ales viteza de executie sunt importante (telecomunicatii, prelucrari multimedia, comanda actionarilor electrice).

Page 16: Curs SPNP

Implementarea procesorului de date cu circuite ASIC/ASSP

•ASIC (application-specific integrated circuit) este un circuit integrat elaborat pentru a deservi o aplicatie particulara, bine precizata.•ASSPd (application specific standard products) este un circuit integrat care implementeaza o functie specifica si care prezinta interes pentru o clasa larga de utilizatori. ASSPd se situeaza intre ASIC si circuitele clasa larga de utilizatori. ASSPd se situeaza intre ASIC si circuitele integrate standard, de uz general.•CARACTERISTICI

•Costul implementarii cu ASIC este acceptabil numai in cazul aplicatiilor de serie mare, care fac posibila amortizarea costului relativ ridicat al proiectarii,•Conditia mentionata este mai relaxanta in cazul circuitelor ASSPd, care se adreseaza unei clase mai largi de utilizatori,•Procesorul de date implementat cu ASIC/ASSPd este performant deoarece proiectarea acestuia a fost facuta pornind de la specificatiile impuse de aplicatie.

•CONCLUZIE: Implementarea procesorului de date utilizind circuite ASIC/ASSPd este de dorit ori de cite ori pretul de proiectare/fabricare nu este prohibitiv.

Page 17: Curs SPNP

Implementarea procesorului de date cu circuite FPGA

•FPGA (field programmable gate array) este un dispozitiv electronic continind componente logice si conexiuni programabile. Programarea functionalitatii se face dupa fabricare, de catre utilizator (field programmabile).•CARACTERISTICI•CARACTERISTICI

•Comparativ cu ASIC, solutia utilizind FPGA este mai lenta, nu suporta aplicatii la fel de complexe iar consumul de la sursa de alimentare este mai ridicat,•Prezinta flexibilitate ridicata,•Costuri de implementare competitive la serii mici.

•CONCLUZIE: Implementarea procesorului de date utilizind circuite FPGA se justifica pentru serii mici si in aplicatii unde se necesita un calcul masiv paralel (viteza mare de procesare).

Page 18: Curs SPNP

Solutia SOC (system on chip)

•SOC (system on chip) reprezinta o solutie de realizare a unui sistem electronic conform careia toate componentele sistemului sunt integrate pe acelasi chip (circuite digitale, circuite analogice, mixte, s.a.). O solutie alternativa, mai ieftina, este SiP (system in package) in care mai multe chipuri sunt incluse in aceeasi capsula.•CARACTERISTICI•CARACTERISTICI

•Consum mai redus de la sursa de alimentare si fiabilitate sporita comparativ cu sistemele multichip,•Costurile de implementare sunt acceptabile numai in cazul unor aplicatii de serie mare, datorita valorii ridicate a costului NRE (Non-recurring engineering -adica costul platit o singura data pentru cercetare, proiectare si testarea unui nou produs),•Reprezinta o solutie mai eficienta decit ASIC, deoarece poate include pe acelasi chip si alte componente decit circuitele electronice (spre exemplu cristale de cuart, microcomponente electromecanice, etc.).

•CONCLUZIE: Implementarea procesorului de date utilizind tehnologia SOC este de dorit ori de cite ori pretul de proiectare/fabricare este competitiv.

Page 19: Curs SPNP

Competitii actuale

� Microcontroler – Procesor de semnalDe regula este preferat microcontrolerul, deoarece:

� Prezinta dispozitive periferice si un sistem de intrare/iesire mai performant,performant,

� Oferta mult mai larga de microcontrolere de uz general,

� Pot oferi performante de calcul (viteza, precizie) comparabile cu performantele procesoarelor de semnal (ARM).

� Procesor de semnal – FPGA� In cele mai multe aplicatii este preferat procesorul de semnal,

datorita costurilor mai reduse,�In aplicatiile care se necesita un calcul paralel masiv circuitele

FPGA devin competitive .

Page 20: Curs SPNP

Unitatea de procesare a datelor (II)

Componentele Software• Sistemul de operare (Operating System)• Sistemul de operare (Operating System)• Softul de aplicatie (Application Softvare)

Obs.: In cazul sistemelor dedicate mici Sistemul de Operare poate lipsi

Page 21: Curs SPNP

Sistemul de operare

Definitie: Sistemul de operare (SO) este un set de programe de calcul care controleaza resursele hardware si software ale unui calculator.hardware si software ale unui calculator.

In cazul sistemelor dedicate, SO trebuie sa fie:•De timp real (Real-time Operating System –RTOS)•Dedicat (Embedded)

Page 22: Curs SPNP

Sarcinile unui sistem de operare

•Planificarea proceselor (task-urilor)•Deservirea intreruperilor•Comunicarea si sincronizarea intre procese•Comunicarea si sincronizarea intre procese•Managementul memoriei•Administreaza sistemul de fisiere•Asigura conectarea in reteaua de calculatoare (TCP/IP)•Comanda Interfata Grafica-Utilizator

Page 23: Curs SPNP

Ce este un RTOS ?

Un sistem de operare in timp real este capabil sa execute toatesarcinile sale respectind anumite constringeri de timp, bine precizate.Citeva caracteristici:

Raspuns rapid si predictibil la evenimente externe urgente,•Raspuns rapid si predictibil la evenimente externe urgente,•Comportament stabil la supraincarcari tranzitorii (cind sistemul este supraincarcat de evenimente incit nu pot fi respectate toate constringerile de timp impuse pentru anumite procese, critice, timpii de executie inca trebuie respectati)•Un inalt grad de programabilitate (constringerile de timp ale sistemului trebuie sa fie satisfacute la un nivel ridicat de utilizare a tuturor resurselor)

Page 24: Curs SPNP

Ce este un SO dedicat ?

Un sistem de operare dedicat prezinta urmatoarele caracteristici:caracteristici:

• Dimensiuni mici (uneori sute de octeti)l •Trebuie sa fie capababil sa ruleze intervale mari de timp (ani) fara interventie manuala

Page 25: Curs SPNP

Structura unui microcalculator cu microprocesor

Arhitectura von Neuman

Microprocesorul este o componenta digitala programabilacare incorporeaza pe un singur circuit integrat toate functiileunei unitati centrale de procesare (CPU).

Page 26: Curs SPNP

Conceptul de magistrala

Page 27: Curs SPNP

Microprocesor (PGA)

Page 28: Curs SPNP

Arhitectura unui microprocesor

Page 29: Curs SPNP

Modul de operare al CPU

Ciclu masina: o succesiune de patru Faze (pasi) intre doua extrageri succesive de instructiuni din memoria program.

Fazele de exectie ale unui ciclu masina:•Extragere (fetch), •Decodificare (decode), •Executie (execute), •Scriere rezultat (writeback).

Observatii: •Un ciclu masina include de regula 2 operatii de extragere (fetch)•Executia unei instructiuni , adica un ciclu instructiune, serealizeaza pe unul sau doua cicluri masina.

program.

Page 30: Curs SPNP

Arhitectura tipica de microcontroler

Microcontrolerul (uC) este un microcalculator pe un singur chip utilizat pentru comanda altor utilizat pentru comanda altor dispozitive si circuite electronice.

Un microcontroler include pe chip:•Unitatea centrala de procesare (CPU),•Memorii,•Interfete de intrare/iesire,•Dispozitive periferice integrate (interne),•Convertoare A/D si D/A.

Page 31: Curs SPNP

Microcontroler cu arhitectura HARWARD

Avantaje arhitecturii HARWARD:•Viteza de executie mai ridicata,•Siguranta sporita in functionare

Observatie: de regula, cele doua memorii suntconectate la CPU printr-o singura magistrala.

Page 32: Curs SPNP

Structura detaliata a unui microcontroler

Page 33: Curs SPNP

Detaliu CPU al unui microcontroler

Registri inclusi in “Register File”:•The Stack Pointer (SP)•Program Status Word (PSW)

Page 34: Curs SPNP

Executia instructiunilor

;_________________________________________; MAIN PROGRAM

CSEGORG 0000hDEC 50HDEC 50HNOPEND

;_________________________________________

Rezultatul executiei: este decrementat (DEC 50H ) continutul locatiei din memoria RAM interna a microcontrolerului, avind adresa 50H (adresare directa); instructiunea NOP nu are nici un efect.

Page 35: Curs SPNP

Instructiunea DEC

Page 36: Curs SPNP

Instructiunea NOP

Page 37: Curs SPNP

Setul de instructiuni

Generalitati:•Diferitele tipuri de uC include un numar variabil de instructiuni:

•CISC (Complex Instruction Set Computer ) includ citeva zeci de instructuni puternice, “ortogonale” (fiecare instructiune dispune de toate modurile posibile de adresare ale operandului),de toate modurile posibile de adresare ale operandului),•RISC (Reduced Instruction Set Computer) include un set de sute de instructiuni de complexitate mai scazuta.

•Majoritatea instructiunilor sunt reprezentate in memoria program pe 1-4 octeti (un octet ce specifica operatia si de la 0 la 3 operanzi, separati prin virgule),•Pentru programator, instructiunile sunt specificate prin mnemonice, acronime provenite din limba engleza si care sugereaza natura operatiei efectuate,•Cu citeva exceeptii, instructiunile prelucreaza informatia din memoria RAM interna a microcontrolerului.

Page 38: Curs SPNP

Moduri de adresare a operanzilor

Adresare imediata: MOV A,#20h

Adresare directa: MOV A,R0Adresare directa: MOV A,R0MOV A,40h

Adresarea indirecta: MOV A,@R0MOVX A,@DPTRMOVX @DPTR,A

Page 39: Curs SPNP

Instructiuni aritmetice (MCS51)

Page 40: Curs SPNP

Instructiuni logice

Page 41: Curs SPNP

Instructiuni de transfer

Page 42: Curs SPNP

Operatii cu variabile booleene

Page 43: Curs SPNP

Instructiuni de transfer a comenzii

Page 44: Curs SPNP

Precizari

Page 45: Curs SPNP

Organizarea memoriei program (1)

Memoria de pe chip mai mica de 64KonEA ���� Pinul External Addressing

Page 46: Curs SPNP

Conectarea unei memorii program externe

PSEN���� Program Store EnableP0 ���� Adrese low (A7-A0) multiplexate in timp cu date (D7-D0)ALE���� Address Latch EnableP2 ���� Adrese high (A15-A8)

Memorii program externe sunt rar utilizate

Page 47: Curs SPNP

Faza de extragere a codului instructiunii din memoria externa

Page 48: Curs SPNP

Organizarea memoriei program (2)

Observatii:•Memoria de pe chip de 64Ko•Programare ISP (In System Programming)

Page 49: Curs SPNP

Organizarea memoriei program (3)

Observatii:•Memoria de pe chip de 64Ko•Programare ISP (In System Programming) si IAP (In Application Proramming)

Page 50: Curs SPNP

Organizarea memoriei de date (1)

Observatii:•Sunt prezente 2 tipuri de memorii de date:RAM (intern si extern) si memorie Flash,•Accesul la memoria RAM se face •Accesul la memoria RAM se face dependent de tipul instructiunii utilizate: cele mai multe instructiuni acceseaza RAM intern; RAM extern poate fi accesat prin numai 2 instructiuni:

MOVX A,@DPTRMOVX @DPTR,A

Page 51: Curs SPNP

Zona RAM adresabila direct si indirect (1)

Memoria STIVA aici -����

Page 52: Curs SPNP

Zona RAM adresabila direct si indirect (2)

Page 53: Curs SPNP

Rolul registrilor speciali pentru functii (SFR)

Page 54: Curs SPNP

Exemplu de registri pentru functii speciale (SFR)

Page 55: Curs SPNP

Organizarea memoriei RAM de date (2)Organizarea memoriei RAM de date (2)

FLASH DATE

+

Page 56: Curs SPNP

Schema de conectare a unei memorii externe

Memorii externe RAM de date sunt relativ frecvent utilizate

Page 57: Curs SPNP

Faza de citire date dintr-o memorie RAM externa

Page 58: Curs SPNP

Faza de scriere date intr-o memorie RAM externa

Page 59: Curs SPNP

Memoria stiva (1)

Este o zona de memorie amplasata in memoria interna RAM si care stocheaza temporar urmatoarele tipuri de date:

•Automat, adresele de revenire din subrutine (de tratare a intreruperilor sau subrutine apelate prin instructiuni CALL),• Prin program, continutul unor registri utilizati in subrutine si care trebuie recontuit inainte de revenirea in progeamul principal,trebuie recontuit inainte de revenirea in progeamul principal,•Datele sunt manipulate cu instructiunile PUSH (incarca date in stiva) si POP (extrage date din stiva).

•Stiva este o memorie LIFO (last in, first out –“ultimul intrat primul iesit”,•Stiva poate creste “in sus” ca in figura sau “in jos”,•Adresele de scriere/citire sunt date de registrul Stack Pointer (SP); continutul acestuia indica adresa ultimei locatii ocupata din stiva.

Page 60: Curs SPNP

Memoria stiva (2)

•Stabilirea zonei din RAM intern alocata stivei se face prin initializarea continutului registrului SP.•Exixta posibilitatea prevenirii citirii/scrierii inafara limitelor memoriei stiva, utilizind 2 registri: Stack Overflow respectiv Stack Underflow, care contin adresele limita ale stivei. La atingerea lor sunt generate intreruperi.intreruperi.Exemple de utilizare a memoriei stiva

CSEG AT 23HPUSH APUSH PSWCALL SBRTPOP PSWPOP ARETI

SBRT: PUSH APUSH PSW----------------------POP PSWPOP ARET

Page 61: Curs SPNP

Sistemul de intreruperi

•Intreruperile sunt semnale asincrone ale sistemului hardware (intreruperi hardware) care solicita atentia unitati centrale de procesare (CPU) sau evenimente sincrone software (intreruperi software), care indica schimbari in executia programului.•Aparitia unei intreruperi determina salvarea starii de executie a •Aparitia unei intreruperi determina salvarea starii de executie a programului si executia unei subrutine de tratare a intreruperii, dupa care se revine in programul principal, in punctul in care a fost parasit.•Intreruperile hardware, sunt generate de regula de evenimente externe microcontrolerului, de interfetele de intrare/iesire sau de dispozitivele periferice interne ale acestuia.•Intreruperile software sunt implementate cu instructiuni speciale de intrerupere, incluse in setul de instructiuni ale microcontrolerului. Uneori, intreruperile software sunt utilizate pentru a implementa apeluri de sistem (System Call), prin care programele de aplicatie solicita servicii sistemului de operare.

Page 62: Curs SPNP

Controler programabil de intreruperi (Pogrammable Interrupt Controller (PIC))

PCA ����Programmable Counter ArraynINT0/1���� External InterruptIP ���� Interrupt PriorityEA ���� Enable AllEA ���� Enable All

Intreruperi mascabile/nemascabile!

Page 63: Curs SPNP

• Depasirea capacitatii N/T T0 (Timer0 Overflow)

•Depasirea capacitatii N/T T1 (Timer1 Overflow)

Ce evenimente pot genera o intrerupere hardware?

•Depasirea capacitatii N/T T1 (Timer1 Overflow)

•Depasirea capacitatii N/T T2 (Timer2 Overflow)

•Receptia/transmisia seriala a unui caracter

•Eveniment extern la intrarea nINTO

•Eveniment extern la intrarea nINT1

•Evenimente legate de PCA

Obs.: N/T���� Numarator/Temporizator (Counter/Timer

sau simplu Timer)

Page 64: Curs SPNP

Secventa de “Pooling”

•Intreruperea externa nINTO ���� prioritate maxima

•Intreruperea N/T T0

•Intreruperea externa nINT1

•Intreruperea N/T T1

•Intreruperi generate de PCA

•Intreruperile portului serial

•Intreruperea N/T T2 ���� prioritate minima

Page 65: Curs SPNP

Reguli privind executia intreruperilor:

1. Executia unei intreruperi nu poate fi sistata de aparitia unei intreruperi avind aceeasi prioritate,

2. O intrerupere cu prioritate ridicate poate intrer upe executia unei intreruperi cu prioritate scazuta,intreruperi cu prioritate scazuta,

3. O intrerupere cu prioritate scazuta poate fi exec utata numai daca nici o alta intrerupere nu este in curs de executie ,

4. Daca doua intreruperi apar in acelasi timp, va fi executata mai intii intreruperea cu prioritate ridicata. Daca ambele in treruperi au aceeasi prioritate, va fi executata mai intii prima intreruperea deservita de secventa de “pooling”.

Page 66: Curs SPNP

Ce se intimpla la aparitia unei intreruperi?

1. Este savat in stiva continutul numaratorului prog ram (Program Counter PC),2. Sunt blocate intreruperile avind aceasi prioritat e rspectiv prioritate mai

scazuta,3. In cazul unor intreruperi (externe, temporizatoare) s unt sterse fanioanele 3. In cazul unor intreruperi (externe, temporizatoare) s unt sterse fanioanele

aferente,4. Se transfera executia programului la subrutina de tratare a intreruperii,5. Se executa subrutina de tratare a intreruperii, d upa care se revine in

programul principal.

Page 67: Curs SPNP

Transferul executiei programului

Modalitati:•Se face salt la o adrese fixa din memoria program, unde se gaseste adresa primei instructiuni din subrutina de tratare a intreruperii (asa numitul vector de intrerupere) ���� Intrerupere vectorizata

•Se face salt la o adrese fixa din memoria program, unde se gaseste prima instructiune din subrutina de tratare a intreruperiiprima instructiune din subrutina de tratare a intreruperii

Sursa de intrerupere

FanionAdresa de salt

External 0 IE0 0003h

Timer 0 TF0 000Bh

External 1 IE1 0013h

Timer 1 TF1 001Bh

Serial RI/TI 0023h

Page 68: Curs SPNP

Exemplu de subrutina de tratare a intreruperii portului serial

ORG 0000H

JMP START

; Serial Interrupt

CSEG AT 23HPUSH APUSH PSWJB RI, L1CALL TRSMJMP L2JMP L2

L1: CALL RECL2: POP PSW

POP ARETI

; Main ProgramCSEG AT 50H

START: ………………….………………….………………….

; Subrutine tratare intreruperi port serialTRSM: CLR TI

……………….RET

REC: CLR RI……………….RET……………….END

Page 69: Curs SPNP

Portul (paralel) de intrare/iesire (I/O)

Portul este un circuit de interfata paralela, care permite conectarea unuidispozitiv (periferic) extern la microcontroler. Paralel ���� datele sunt transferate (I/O) in format paralel (mai multi biti

simultan).simultan).Observatii:•Un microcontroler are, tipic, patru porturi; numarul acestora poate fi mai mare (opt sau chiar mai mult) sau pot lipsi cu desavirsire.•Unele porturi pot fi utilizate numai ca intrari/iesiri de uz general, altele asigura si asa-numitele functii alternative.•In cazul unui microcontroler tipic, cu patru porturi, porturile P0 si P2 pot fi utilizate atit ca intrari/iesiri de uz general I/O cit si pentru conectarea la microcontroler a unor memorii externe (acestea realizeaza in exterior magistrala de date (P0) si de adrese (P0, octetul inferior A7-A0 si P2 octetul superior A15-A8).

Page 70: Curs SPNP

Functii alternative pentru portul P0

Page 71: Curs SPNP

Portul paralel (de intrare/iesire – I/O)

•Portul P1 este utilizat, in general, ca intrari/iesiri de uz general. Uneori, liniile sale reprezinta intrari/iesiri pentru circuitele periferice interne (convertor A/N, convertor N/A, temporizatoare, registri de captate/comparare, etc.).•Portul P3 este dedicat, in general, asa-numitelor functii alternative •Portul P3 este dedicat, in general, asa-numitelor functii alternative (semnalele nRD si nWR pentru comanda memoriilor externe, intrari pentru intreruperile externe nINT0 si nINT1, intrari/iesiri pentru interfetele seriale (SPI, I2C, CAN, UART)).•Comportamentul liniilor de port, ca intrare/iesire este progamabil.•Registrii care pastreaza temporar informatia transferata respectiv sevesc la programarea comportamentului portului sunt plasati in memoria RAM interna (zona SFR).

Page 72: Curs SPNP

Linia de port in mod iesire: in contratimp (push -pull) si drena in gol (open drain)

Page 73: Curs SPNP

Caracteristica de transfer cu histeresis a unei linii de port

Page 74: Curs SPNP

Structura liniilor de port P0 (1)

driver

latch

T2(p)

o

Structura include un bistabil D (latch), un etaj de iesire (driver) si un etaj separator la intrare (buffer).

buffer

driver

T1(n)

multiplexor

Page 75: Curs SPNP

Structura liniilor de port P0 (2)

•P0 poate fi utilizat ca intrari/iesiri de uz general respectiv, ca functie alternativa, schimbul de date cu o memorie externa (A7-A0 si D7-D0, multiplexate in timp),multiplexate in timp),•Intrari/iesiri de uz general (control=“0”):

•T2 este blocat ���� iesire drena in gol,

•Pentru a utiliza linia ca intrare, se inscrie “1” in latch,•Exixta instructiuni care citesc pinul si altele care citesc latch-ul.

•Accesul la memorie(control=“1”):•T2 accelereaza comutarea iesirii la tranzitia “0”����”1“si asigura “1”

logic la iesire,•Iesirea este in contratimp (push-pull).

•Observatie: Liniile lui P0 au un comportament BIDIRECTIONAL.

Page 76: Curs SPNP

Instructiuni care citesc latch-ul (2)(“read-modify-write”- destinatia este un port sau bit de port)

ANL (logical AND, e.g., ANL P1, A)ORL (logical OR, e.g., ORL P2, A)XRL (logical EX-OR, e.g., XRL P3, A)JBC (jump if bit = 1 and clear bit, e.g., JBC (jump if bit = 1 and clear bit, e.g., JBC P1.1, LABEL)CPL (complement bit, e.g., CPL P3.0)INC (increment, e.g., INC P2)DEC (decrement, e.g., DEC P2)DJNZ (decrement and jump if not zero, e.g., DJNZ P3, LABEL)MOV PX.Y, C (move carry bit to bit Y of port X)CLR PX.Y (clear bit Y of port X)SETB PX.Y (set bit Y of port x)

Page 77: Curs SPNP

Instructiuni care citesc latch-ul (2)(“read-modify-write”- destinatia este un port sau bit de port)

Example: The carry tlag is originally set.The data present at input Port 3 is 11OOO1O1B. The data previously written to output Port 1 is 35H (00110101B).(00110101B).

MOV P1.3,CMOV C,P3.3MOV P1.2,C

will leave the carry cleared and change Port 1 to 39H (OO111OO1B).

Page 78: Curs SPNP

Structura liniilor de port P2

o T2(p)

Diferente fata de P0:•T2 este inlocuit cu un circuit electronic cu rol de rezistenta “pull-up”,•La accesarea memoriei externe curentul de iesire asigurat este mult mai mare decit in regimul intrari/iesiri de uz general.

Page 79: Curs SPNP

Structura liniilor de port P1 si P3

Diferente fata de P2:•Pentru functie functie alternativa trebuie inscris “1” in latch •Rezistenta de “pull-up” asigura un curent mare numai in cazul functiei alternative, pe durata tranzitiei “0”����”1”,

•Ca intrare de uz general, curentul de iesire furnizat de circuitul de “pull-up” este drastic diminuat => Cuasi-bidirectional

Page 80: Curs SPNP

Structura interna a rezistentei “pull-up”

De la circitul SI-NU

Page 81: Curs SPNP

Circuite temporizator/numarator

Functii:•Temporizator=> Marcarea cu precizie, prin intreruperi, a unor intervale de timp cu durate programabile•Numarator => Numararea unor evenimente externe (tranzitii aplicate la un pin extern)un pin extern)•Functionarea este programabila prin intermediul unor registri SFR (TMOD si TCON)•Sunt disponibile trei circuite temporizator/numarator: T0, T1, T2

Page 82: Curs SPNP

Structura de baza a unui circuit temporizator/numarator

•C/Tx => stabileste functia de numarator/temporizator• TRx > pornit/oprit functionarea (R=RUN)

Page 83: Curs SPNP

Temporizatoarele T0 si T1 in modurile de lucru 0 si 1

Page 84: Curs SPNP

Temporizatoarele T0 si T1 in modurile de lucru 2 (cu autoincarcare)

Page 85: Curs SPNP

Temporizatoarl T0 in modul de lucru 3 (doua temporizatoare cu 8 biti)

Page 86: Curs SPNP

Registrii SFR pentru programarea functonarii temporizatoarelor T0 si T1

Page 87: Curs SPNP

Temporizatorul T2

Moduri de lucru:•Modul “captare” (capture)•Modul “cu autoincarcare” (reload)•Modul “cu autoincarcare” (reload)•Numarator “sus/jos” (up-down)•Generator unda dreptunghiulara (clock out)•Generator pentru frecventa de transmsie seriala (baud rate)

Page 88: Curs SPNP

Temporizatorul T2 in modul de lucru “captare”

Page 89: Curs SPNP

Temporizatorul T2 in modul de lucru “cu autoincarcare”

Temporiztorul numara “in sus”

Page 90: Curs SPNP

Temporizatorul T2 in modul de lucru “numarator sus/jos”

Page 91: Curs SPNP

Temporizatorul T2 in modul de lucru “clock out mode”

Genereaza o unda dreptunghiulara

Page 92: Curs SPNP

Circuitul “watch dog” (WD)

•WD este un circuit temporizator care reseteaza microcontrolerul atunci cind acesta a parasit executia normala a programului.•La o executie normala a programului continutul WD este sters •La o executie normala a programului continutul WD este sters inainte sa fie atinsa capacitatea maxima de nmarare, cind este initiata operatiunea de resetare. •Stergerea continutului WD se face cu o instructiune corespunzatoare, plasata din loc in loc pe firul de executie normala a programului.•Intirzierea WD poate fi programata.•In faza de punere la punct a programului functionarea WD este inactivata.

Page 93: Curs SPNP

Interfete de intare/iesire seriale

Caracteristici:•Asigurara comunicatia seriala sincrona si asincrona

•Serial => bit cu bit•Asincron => schimbul de date poate incepe oricind•Asincron => schimbul de date poate incepe oricind•Sincron => schimbul de date se realizeaza la aparitia unor impulsuri de tact.

•Interfete seriale tipice:•USART (Universal Syncronious/Asyncronious Receive/Transmit•SPI (Serial Peripheral Interface)•I2C Inter Integrated Circuits)

Page 94: Curs SPNP

Portul serial de intrare/iesire (I/O)

Caracteristici:•Comunicatia este full-duplex si bufferata•Interfata cu exteriorul prin linii ale portului P3•Interfata cu exteriorul prin linii ale portului P3•Registrii utilizati: SCON si SBUF•Exixta 4 moduri de lucru:

•modul 0 (sincron)•Modul 1 (asincron, 8 biti de date, baud rate variabil)•Modul 2 (asincron, 9 biti de date, baud rate fix)•Modul 3 (asincron, 9 biti de date, baud rate variabil)

Page 95: Curs SPNP

Comunicatia seriala asincrona

Page 96: Curs SPNP

Structura interna USART (modul asincron)

Page 97: Curs SPNP

Generarea frecventei de transmisie cu temporizatorul T2

Page 98: Curs SPNP

Comunicatia seriala sincrona

Page 99: Curs SPNP

Structura interna USART (modul sincron)

Page 100: Curs SPNP

Interfata RS-232

•Ultima varianta a standardului EIA/TIA – 232 –ETIA = Telecommunications Industry AssociationEIA = Electronic Industries Alliance

•Viteza maxima: 20 Kbps (116 Kbps)•Lungimea maxima a cablului: 15 m (2000 pF)•Lungimea maxima a cablului: 15 m (2000 pF)•Nivelurile logice pentru date (logica negativa):

+5 .. +25 V pentru “0” logic-5 .. -25 V pentru “1” logic

•Pentru liniile de control logica este pozitiva•Frecvente de transmisie: 300, 1200, 2400, 4800, 9600, si 19200 bps•Transmisie asincrona( bit de start, date, paritate si stop)

Page 101: Curs SPNP

Circuit pentru interfata RS-232

Page 102: Curs SPNP

Conectorul normalizat DB9 si semnalele utilizate

1 Data carier detect DCD2 Received data RXD3 Transmit data TXD4 Data terminal ready DTR4 Data terminal ready DTR5 Signal ground6 Data set ready DSR7 Request to send RTS8 Clear to send CTS9 Ring indicator RI Observ.: DTR, DSR, RTS, CTS sunt semnale

pentru protocolul de comunicatie

Page 103: Curs SPNP

Conectare tipica DTE – DCE (fara semnale de protocol)

Linie telefonica

2 22 2

3 33 3 Linie telefonica

77 77

DTE DTEDCE DCE

3 33 3

Calculator PC Calculator PCModem Modem

Sensul de circulatie a informatiei este inversat la DCE fata DTE !!!

Page 104: Curs SPNP

Legatura cablu modem nul

22

DTE DTE3 3

7 7

Page 105: Curs SPNP

Utilizarea liniilor de comanda(conectare DTE cu DCE)

TX TX

RXRX

DTRDTR

DSR DSR

CTS CTS

RTSRTS

DCE DTE

Modem Calculator PC

GND

Page 106: Curs SPNP

Utilizarea liniilor de comanda

(conectare DTE cu DTE)

TX TX

RXRX

DTRDTR

DSR DSR

CTS CTS

RTSRTS

GND

Calculator PC Calculator PC

DTE DTE

Page 107: Curs SPNP

Asigurarea locala a validarilor

TX TX

RXRX

DTRDTR

DSR DSR

CTS CTS

RTSRTS

GNDDTE DTE

Calculator PC Calculator PC

Page 108: Curs SPNP

Circuit de interfata pentru magistrsla RS-232

Page 109: Curs SPNP

Circuit pentru modularea impulsurilor in durata (PWM)

Page 110: Curs SPNP

Regimurile posibile de lucru

MD2 MD1 MD0 Mode0 0 1 Mode 1: Single Variable Resolution PWM0 1 0 Mode 2: Twin 8-bit PWM0 1 1 Mode 3: Twin 16-bit PWM0 1 1 Mode 3: Twin 16-bit PWM1 0 0 Mode 4: Dual 8-bit PWM

Page 111: Curs SPNP

Mode 1: Single Variable Resolution PWM

Page 112: Curs SPNP

Mode 2: Twin 8-Bit PWM

Page 113: Curs SPNP

Mode 3: Twin 16-Bit PWM

Page 114: Curs SPNP

Mode 5: Dual 8-Bit PWM

Page 115: Curs SPNP

Introduction

I2C and SPI

� Serial communication protocols

Meant for short distances “inside the � Meant for short distances “inside the box”

� Low complexity

� Low cost

� Low speed (a few Mbps at the fastest )

Page 116: Curs SPNP

What is SPI?

� Shorthand for “Serial Peripheral Interface”

� Defined by Motorola on the MC68HCxx line of microcontrollers

Generally faster than I2C, capable of several Mbps� Generally faster than I2C, capable of several Mbps

� Applications: Like I2C, used in EEPROM, Flash, and real

time clocks

� Better suited for “data streams”, i.e. ADC converters

� Full duplex capability, i.e. communication between a codec and digital signal processor

Page 117: Curs SPNP

SPI Bus Configuration

Page 118: Curs SPNP

An SPI bus example

Page 119: Curs SPNP

SPI Protocol

� Hardware realization is usually done with a simple shift register

Page 120: Curs SPNP

SERIAL PERIPHERAL INTERFACE

Page 121: Curs SPNP

What is I2C?

� Shorthand for an “Inter-integrated circuits” bus� Developed by Philips Semiconductor for TV sets

in the 1980’sin the 1980’s� I2C devices include EEPROMs, thermal sensors,

and real-time clocks� Used as a control interface to signal processing

devices that have separate data interfaces, e.g. RF tuners, video decoders and encoders, and audio processors.

Page 122: Curs SPNP

•I2C bus has three speeds:Slow (under 100 Kbps)Fast (400 Kbps)

Some features

Fast (400 Kbps)High-speed (3.4 Mbps) – I2C v.2.0

•Limited to about 10 feet for moderate speeds

Page 123: Curs SPNP

I2C Bus Configuration

� 2-wire serial bus – Serial data (SDA) and Serial clock (SCL)

� Half-duplex, synchronous, multi-master bus� No chip select or arbitration logic required� Lines pulled high via resistors, pulled down via

open-drain drivers (wired-AND)

Page 124: Curs SPNP

I2C Protocol

1. Master sends start condition (S) and controls the clock signal

2. Master sends a unique 7-bit slave device address3. Master sends read/write bit (R/W) – 0 - slave

receive, 1 - slave transmit4. Receiver sends acknowledge bit (ACK)5. Transmitter (slave or master) transmits 1 byte of

data

Page 125: Curs SPNP

I2C Protocol (cont.)

6. Receiver issues an ACK bit for the byte received

7. Repeat 5 and 6 if more bytes need to be transmitted.

8.a) For write transaction (master transmitting), master issues stop condition (P) after last byte of data.

8.b) For read transaction (master receiving), master does not acknowledge final byte, just issues stop condition (P) to tell the slave the transmission is done

Page 126: Curs SPNP

I2C Signals

� Start – high-to-low transition of the SDA line while SCL line is high

� Stop – low-to-high transition of the SDA line while SCL line is high

� Ack – receiver pulls SDA low while transmitter allows it to float high

� Data – transition takes place while SCL is low, valid while SCL is high

Page 127: Curs SPNP

I2C Features

� “Clock stretching” – when the slave (receiver) needs more time to process a bit, it can pull SCL low. The master waits bit, it can pull SCL low. The master waits until the slave has released SCL before sending the next bit.

� “General call” broadcast – addresses every device on the bus

� 10-bit extended addressing for new designs. 7-bit addresses all exhausted

Page 128: Curs SPNP

I2C Tradeoffs

Advantages:

� Good for communication with on-board devices that are accessed occasionally.

� Easy to link multiple devices because of � Easy to link multiple devices because of addressing scheme

� Cost and complexity do not scale up with the number of devices

Disadvantages:

� The complexity of supporting software components can be higher than that of competing schemes ( for example, SPI ).

Page 129: Curs SPNP

Regimuri cu consum redus

•Trecerea in regimurile cu consum redus se face setind corespunzator anumiti biti dintr-un registru de comanda (PCON)registru de comanda (PCON)•Exixta, in general, doua regimuri cu consum redus:

•IDLE (inactiv)•POWER DOWN

Page 130: Curs SPNP

Regimul IDLE

•Functionarea CPU este sistata, dispozitiveleperifericile functioneaza, registrii interni si perifericile functioneaza, registrii interni si iesirile porturilor isi pastreaza starea, •Iesirea din starea IDLE: prin resetare sau aparitia unei intreruperi validata

Page 131: Curs SPNP

Regimul POWER-DOWN

•CPU si perifericile sunt inactive•Oscilatorul respectiv TIC (Timer interval •Oscilatorul respectiv TIC (Timer interval Counter) pot fi active/inactive•Porturile isi pastreaza nivelul logic la iesire•Consum de ordinul uA

Page 132: Curs SPNP

Iesirea din regimul POWER-DOWN

•Activarea pinului de RESET•Activarea pinului de RESET•Ciclu deconectare-conectare a alimentarii•Intrerupere de la TIC•Intrerupere de la SPI•Intrerupere de la nINT0

Page 133: Curs SPNP

Programarea memoriilor FLASH

•Memoria FLASH DATE poate fi programata cu date in cursul executiei aplicatiei, utilizindregistrii SFR corespunzatori•Memoria FLASH PROGRAM suporta doua•Memoria FLASH PROGRAM suporta douamodalitati de programare:

•In-System Programming (ISP), utilizind un program firmware (KERNEL) si UART•In Application Programming (IAP), cind programarea se face de catre o aplicatie scrisa de utilizator (BOOTLOADER)

Page 134: Curs SPNP

In-System Programming (ISP)

•Serial Programming

Inainte de incarcarea fisierului program se aduce microsistemul in regim de programareregim de programareObservatie: exixta posibilitatea programarii paralele utilizind porturile paralele ale microcontrolerului

Page 135: Curs SPNP

Serial In-System Programming

Page 136: Curs SPNP

Protocolul de comunicatie cu Kernelul

Page 137: Curs SPNP

Comenzi disponibile

Page 138: Curs SPNP

FORMATUL STANDARD INTEL HEX

•Fisierul Intel HEX este un fisier text ASCII si care contine mai multe inregistrari ce respecta formatul Intel HEX.•Aceste inregistrari constau din numere hexazecimale reprezentind cod masina si/sau date constante.Fisierele Intel HEX sunt utilizate frecvent pentru transfer de •Fisierele Intel HEX sunt utilizate frecvent pentru transfer de

programe ce urmeaza a fi inscrise in memorii ROM sau EPROM. •Cele mai multe programatoare sau emulatoare utilizeaza formatul Intel HEX. •Un fisier Intel HEX file este compus dintr-un numar nelimitat de inregistrari format Intel HEX. •Fiecare inregistrare include pina la cinci cimpuri, aranjate conform urmatorului format:

Page 139: Curs SPNP

FORMATUL STANDARD INTEL HEX

Field Characters Description

1 Start code 1 An ASCII colon, ":".

2 Byte count 2 The count of the character pairs in the data field.

3 Address 4 The 2-byte address at which the data field is to be loaded into 3 Address 4 data field is to be loaded into memory.

4 Type 2 00, 01, or 02.

5 Data 0-2n

From 0 to n bytes of executable code, or memory loadable data. n is normally 20 hex (32 decimal) or less.

6 Checksum 2

The least significant byte of the two's complement sum of the values represented by all the pairs of characters in the record except the start code and checksum.

Page 140: Curs SPNP

Tipuri de inregistrari Intel HEX

00 A record containing data and the 2-byte address at which the data is to reside.

There are three possible types of Hex-records .

01 A termination record for a file of Hex-records. Only one termination record is allowed per file and it must be the last line of the file. There is no data field.

02 A segment base address record. This type of record is ignored by Lucid programmers.

Each record may be terminated with a CR/LF/NULL

Page 141: Curs SPNP

Example of INTEL HEX FORMAT

Page 142: Curs SPNP

In Application Programming (IAP) orUser Download Mode (ULOAD)

Page 143: Curs SPNP

Protejarea memoriei Flash Program

Exixta mai multe regimuri de protejare a datelor memorate:

•modul “lock”•modul “secure”•Modul “serial safe”

Page 144: Curs SPNP

Lock Mode

•This mode locks the code memory, disabling parallel programming of the program memory•Reading the memory in parallel mode and reading •Reading the memory in parallel mode and reading the memory via a MOVC command from external memory is still allowed. •This mode is deactivated by initiating a code-erase command in serial download or parallel programming modes.

Page 145: Curs SPNP

Secure Mode

•This mode locks code in memory, disabling parallel programming (program and verify/read commands) as well as disabling verify/read commands) as well as disabling the execution of a MOVC instruction from external memory •Read/write of internal data Flash from external memory is also disabled•This mode is deactivated by initiating a code-erase command in serial download or parallel programming modes.

Page 146: Curs SPNP

Serial Safe Mode

•This mode disables serial download capability on the device. If serial safe mode is activated and an attempt is made to reset the part intoand an attempt is made to reset the part intoserial download mode, the part resets as a normal reset only. •Serial safe mode can be disabled only by initiating a code-erase command in parallel programming mode.

Page 147: Curs SPNP

SET SECURITY MODES COMMAND

Page 148: Curs SPNP

Interfeta JTAG

Scurt istoric:•Standardul IEEE 1149 - "Standard Test Access Port and Boundary-Scan Architecture“ a fost elaborat pentru testarea placilor PCB echipate conform metodei de testare pe frontiera.•A fost elaborat de Joint Test Action Group (JTAG) si arhitectura •A fost elaborat de Joint Test Action Group (JTAG) si arhitectura definta de catre acestia este cunoscuta ca "JTAG boundary scan" sau interfata JTAG.•Standardul defineste un protocol serial de comunicatie cu 5 pini pentru accesul si comanda nivelurilor logice la pinii unui circuit integrat ; extensii ulterioare ale standardului privesc circuite specifice integrate pe chip si care permit accesul la insasi resursele hardware prezente pe acesta, cu scopul depanarii aplicatiilor.

Page 149: Curs SPNP

Principiul testarii pe frontiera

Page 150: Curs SPNP

Principiul testarii pe frontiera

Page 151: Curs SPNP

Test Acces Port (TP)

•Semnalele de comanda pentru testarea pe frontiera alcatuiesc impreuna asa-numitul Port de Acces pentru Testare (Test Access Port (TAP)).•Acestea definesc un protocol serial pentru testarea pe frontiera a circuitelor implementat cu un automat cu stari finite (cu 16 stari).•Sunt utilizate cinci semnale: •Sunt utilizate cinci semnale:

•TCK/clock synchronizes the internal state machine operations. •TMS/mode select is sampled at the rising edge of TCK to determine the next state. •TDI/data in is sampled at the rising edge of TCK and shifted into the device's test or programming logic when the internal state machine is in the correct state. •TDO/data out represents the data shifted out of the device's test or programming logic and is valid on the falling edge of TCK when the internal state machine is in the correct state. •TRST/reset (optional), when driven low, resets the internal state machine

Page 152: Curs SPNP

Principiul testarii pe frontiera

•In timpul testarii, semnalele de intrare/iesire intra respectiv parasesc circuitul prin celulele de testare pe frontiera (boundary-scan cells). testare pe frontiera (boundary-scan cells). •Aceste celule pot fi configurate pentru a permite testare externa, pentru conexiuni intre chipuri sau acces la resursele interne ale chipului, cu scop de punere la punct a aplicatiilor. •Costul circuitelor suplimentare este minimal comparativ cu restul circuitelor si pe deplin justificat.

Page 153: Curs SPNP

Conectarea mai multor dispozitive supuse testarii

Page 154: Curs SPNP

Testarea unei placi echipate

Etape:•Testerul aplica vectorul de test la pinii de intrare ai dispozitivului testat•Celulele de scanare pe frontiera capteaza datele aferente pinilor monitorizati, care sunt scoase serial prin pinul TDO, pentru verificare. •Sunt introduse date prin pinul TDI.•Testerul verifica apoi datele obtinute la pinii de iesire ai circuitului. •Testerul verifica apoi datele obtinute la pinii de iesire ai circuitului. •Printr-o conectare corespunzatoare pot fi testate simultan mai multe circuite integrate de pe o placa echipata.

Pot fi depistate defecte ca pini neconectati, dispozitive lipsa, dispocitive incorect plasate pe placa PCB, dispozitive defecte, etc..

Avantaje:•Testarea se face independent de celelalte circuite logice de pe placa echipata. Este redus considerabil numarul necesar al punctelor de testare (JTAG in sine nu necesita puncte de testare) => scade pretul de fabricare si creste densitatea de circuite plantate.

Page 155: Curs SPNP

Depanarea aplicatiilor software

•Unele companii include pe chip extensii (EMULATOARE) care utilizeaza capabilitatile JTAG pentru a implementa functii de depanare a aplicatiilor software.depanare a aplicatiilor software.• Cu un suport hardware potrivit aceasta interfata permite incarcarea codului obiect, lansarea lui in executie, examinarea continutului diferitilor registri, a continutului memoriei, etc..•Procedura de depanare este condusa de o aplicatie software care ruleaza pe un calculator personal.

Page 156: Curs SPNP

Familii semnificative de microcontrolere (1)

Subiectul 01Comentati arhitectura microcontrolerelor INTEL MCS251 si a microconvertoarelor

Analog Devices (AD). Caracterizati pe scurt fiecare dispozitiv inclus in schema bloc, explicati Analog Devices (AD). Caracterizati pe scurt fiecare dispozitiv inclus in schema bloc, explicati denumirile prescurtate, apreciati valorile cantitative ale diferitilor parametri.

Intel 80X51Microconvertoare AD (cu procesor 8052/ARM)

Page 157: Curs SPNP

Familia de microcontrolere Intel 80X51

Page 158: Curs SPNP

Microconvertoare Analog Devices (AD) – procesor 8052 (1)

Page 159: Curs SPNP

Microconvertoare Analog Devices (AD) – 8052 core (2)

Page 160: Curs SPNP

Microconvertoare Analog Devices (AD) – procesor ARM (3)

Page 161: Curs SPNP

Generalitati privind procesorul ARM

•ARM – procesor RISC cu 32 de biti care detine 75% din piata de procesoare pe 32 de biti (Advanced RISC Machine )•Proiectantii au la dispozitie unelte standard de dezvoltare de aplicatii, sisteme de operare, aplicatii software optimizate si servicii aplicatii, sisteme de operare, aplicatii software optimizate si servicii de asistenta in proiectare care scurteaza durata de elaborare a aplicatiilor .•Este inclus in marea majoritate a aplicatiilor dedicate (calculatoare, telefoane mobile, PDA, etc.).•Este inclus in FPGA comercializate, pentru a sprijini proiectantul in elaborarea aplicatiei. •Este comercializat ca proprietate intelectuala (in 2006 2.45 billioane unitati vindute(6.7 cents/unitate ���� $164.1 million)

Page 162: Curs SPNP

Familii semnificative de microcontrolere (2)

Microcontrolere TI MSP430Microcontrolere TI MSP430Familia de microcontrolere Freescale HCS12(X)

Page 163: Curs SPNP

Familia de microcontrolere MSP430Caracteristici generale

Variante:MSP430x1xx - Flash ROM No LCDMSP430x2xx - Flash No LCD MSP430x3xx - ROM/OTP LCD MSP430x4xx - Flash/ROM LCD MSP430x4xx - Flash/ROM LCD Caracteristici:•Arhitectura RISC, 16 bitiConsum foarte redus:

0.1-µA RAM retention0.8-µA real-time clock mode250-µA/MIPS active

Page 164: Curs SPNP

Familia de microcontrolere MSP430Arhitectura

Page 165: Curs SPNP

Familia de microcontrolere Freescale HCS12(X)Caracteristici

•CPU pe 16 biti, 40 MHz•Memorie pina la 1 Mbytes Flash, 32 Kbytes RAM, 4 Kbytes EEPROM, •Interfete intrare/iesire: •Interfete intrare/iesire:

•6 interfete seriale SCI (asynchronous serial communications interfaces •3 interfete SPI (serial peripheral interfaces)•Registru de captare cu 8 canale •2 convertoare A/N cu 16 respectiv 8 canale si o rezolutie de 10 biti•Circuit PWM (pulse-width modulator) cu 8 canale •5 interfete CAN (controlled area network) •2 interfete I2C

Page 166: Curs SPNP

Familia de microcontrolere Freescale HCS12(X)

Arhitectura

Page 167: Curs SPNP

Alte tehnici de implemetare a procesorului de date

Procesoare numerice de semnalImplementarea in circuite FPGAImplementarea cu circuite ASIC si ASSPImplementarea cu circuite ASIC si ASSP

Page 168: Curs SPNP

Procesoare numerice de semnal (1)

Un procesor numeric de semnal este un microprocesor (CPU) specializat, elaborat pentru a efectua calcule in timp real si in special procesare de semnale.

Caracteristici functionale:Caracteristici functionale:•Elaborate pentru calcul in timp real,•Performante optime la procesarea unui flux de date,•Specializate pentru operatii aritmetice efectuate cu precizie si mare viteza (filtrare, convolutii),•Proceseaza semnale convertite sub forma numerica si le furnizeaza la iesire sub forma analogica,•Schimba informatii cu mediul inconjurator.

Page 169: Curs SPNP

Schimbul de informatii cu mediul inconjurator

Page 170: Curs SPNP

Aplicatie tipica cu procesor numeric de semnal

Page 171: Curs SPNP

Operatii aritmetice necesare

Operatiune de filtrare (filtru FIR)

Page 172: Curs SPNP

Efectuarea de operatii aritmetice cu mare viteza

•Cele mai multe prelucrari de semnal necesita operatii de adunare si multiplicare ���� DSP au sumator si multiplicator ce pot fi utilizate in

paralel si apelate printr-o singura instructiune.•Dispun de instructiuni speciale SIMD (Single Instruction, Multiple Data).Data).•Intirzierile se realizeaza prin memorarea datelor in registri, pentru a fi utilizate ulterior. Se evita utilizarea memoriei externe din motive de viteza.

Page 173: Curs SPNP

Accesarea coeficientilor

•Trebuie sa fie manipulate eficient matrice de coefi cienti ���� se utilizeaza un generator de adresa.•Urmatoarea adresa este generata pe durata ciclului de fetch sau de memorare a rezultatului .de memorare a rezultatului .

Page 174: Curs SPNP

Trasaturi arhitecturale.Executia programului (1)

•Utilizeaza, de regula, o unitate aritmetica in virgula mobila integrata in fluxul de date pe 32 biti (simpla precizie) respectiv 64 biti (dubla precizie).

10-308 to 10308

Page 175: Curs SPNP

Trasaturi arhitecturale.Executia programului (2)

•Utilizeaza o arhitectura “Pipeline” (in figura pe 5 niveluri)

IF = Instruction Fetch, ID = Instruction Decode, EX = Execute, MEM = Memory access, WB = Register write back)

Page 176: Curs SPNP

Trasaturi arhitecturale.Accesarea memoriei

Adunarile si inmultirile in paralel necesita:•Extractia simultana (fetch) a doi operanzi•Efectuarea adunarii sau a inmultirii (de regula ambele)•Memorat rezultatul sau pastrat pentru a repeta operatiileSolutia:Solutia:

•DSP utilizeaza frecvent arhitecturi ale memoriei care permit accesul simultan la date multiple: date si/sau instructiuni.Procedee utilizate:

•Arhitectura Harward•Arhitectura von Neumann modificata

•Utilizeaza accesul direct la memorie (DMA)•Dispun de o unitate de calcul a adresei de memorie.

Page 177: Curs SPNP

Arhitectura Harward

Frecvent aceasta arhitectura include o memorie cachepentru instructiuni, lasind magistralele disponibile pentru operanzi (Super Harvard ARChitecture - SHARC).

Page 178: Curs SPNP

Implemetarea procesorului de date in circuite FPGA

Circuitele FPGA sunt dispozitive semiconductoare ce contin circuite logice combinatioale, secventiale si uneori blocuri de memorie, ce pot fi interconectate corespunzator aplicatiei prin interconexiuni programabile.

Implementarea unui procesor de date intr-un FPGA se realizeaza dupa Implementarea unui procesor de date intr-un FPGA se realizeaza dupa regulile cunoscute:

•Se descriere comportamentul procesorului cu unul dintre limbajele de descriere a circuitelor: VHDL, Verilog; aceste descrieri constituie proprietate intelectuala (IP),•Se verifica prin simulare comportamentul procesorului,•Se genereaza si incarca fisierul de configurare a circuitului FPGA.

Pot fi implementate in acelasi FPGA mai multe procesoare de date, care sa functioneze in paralel!

Page 179: Curs SPNP

Mediu integrat pentru implemetarea aplicatiei intr-un circuit FPGA

Page 180: Curs SPNP

Implementarea cu circuite ASIC si ASSP

ASIC (Application-specific integrated circuit) este un circuit integrat elaborat pentru a deservi o singura aplicatie, particulara (deserveste un singur beneficiar).

Circuitele ASIC performante pot include adesea un procesor pe 32 de •Circuitele ASIC performante pot include adesea un procesor pe 32 de biti, blocuri de memorie (ROM, RAM, EEPROM, flash) precum si alte structuri logice ���� SoC (System-on-chip).

•Proiectarea unui ASIC presupune descrierea functionala utilizind un limbaj HDL (Verilog, VHDL), simulare, proiectarea circuitului.

ASSP (Application-specific standard products) este un circuit integrat care implementeaza o functie specifica si care deserveste un segment larg de piata. ASSP-urile sunt disponibile ca si componentele standard, “off-the-shelf”.

Page 181: Curs SPNP

Costurile de implementarea a unui circuit ASIC (NRE)

$2.000

$2.500

$3.000

K$K$

K$

$0

$500

$1.000

$1.500

$2.000

180 130 90 65 Tehnologia [nm]

Page 182: Curs SPNP

Costurile de implementarea pentru ASIC si FPGA

K$K$

ASIC

FPGA

Page 183: Curs SPNP

Tehnici de elaborare a aplicatiilor software

•Medii integrate de simulare si depanare a aplicatiilor software,aplicatiilor software,•Sisteme de dezvoltare, programe monitor,•Emulatoare

Page 184: Curs SPNP

Medii integrate de simulare si depanare a aplicatiilor software (1)

Un mediu integrat de dezvoltare (Integrated development environment - IDE sau Integrated design environment and integrated debugging) este o aplicatie software care asista programatorul la dezvoltarea de programe. Un IDE include de regula:Un IDE include de regula:

•Editor de cod sursa,•Asamblor/compilator/interpretor•Depanator (debugger)•Unelte pentru elaborarea interfetei grafice-utilizator (GUI).

•Editorul de cod sursa are capabilitati de “highlighting” si autocompletare. Este un editor de text “non document”•Compilatorul este o aplicatie software care translateaza textul scris intr-un limbaj de programare (codul sursa) intr-un alt limbaj de programare (cod obiect).

Page 185: Curs SPNP

Medii integrate de simulare si depanare a aplicatiilor software (2)

•Un compilator este utilizat pentru a translata un program sursa scris in limbaj de nivel inalt, intr-un cod cu limbaj de nivel mai scazut (limbaj de asamblare sau limbaj (cod) masina.•Limblajul de asamblare este un limbaj de nivel scazut ; rezultatul asamblarii il constituie codul obiect (care se executa).rezultatul asamblarii il constituie codul obiect (care se executa).

Page 186: Curs SPNP

Mediul integrat de simulare si depanare a aplicatiilor software

uVISION

µVision2 este un IDE care combina facilitatile de administrara aproiectului, editare a codului sursa si depanare a programelorintr-un singur mediu, performant.Componente:•C51 ANSI C – compilator optimizat (C Cross Compiler) care creiaza din•C51 ANSI C – compilator optimizat (C Cross Compiler) care creiaza dincodul C sursa module obiect relocabile,•A51 Macro Assembler – creiaza module relocabile din codul sursa inlimbaj de asamblare,• BL51 Linker/Locator – combina modulele obiect relocabile creiate deC51 si A51 intr-un modul obiect absolut,• LIB51 – bibliotecarul (Library Manager) combina modulele obiect intr-obiblioteca ce poate fi utilizata de linker (editorul de legaturi)•OH51 – convertor cod obiect-HEX, creiaza fisiere Intel HEX din modulecod absolut.•RTX-51 sistem de operare in timp real (Real-time Operating System –RTOS) care simplifica elaborarea aplicatiilor software complexe.

Page 187: Curs SPNP

Sistme de dezvoltare a aplicatiilor

C

D

4321

D

C

C10

0.1uF

C9

0.1uF

AVDD

P1.0/ADC0/T21

P1.1/ADC1/T2EX2

P1.2/ADC23

P1.3/ADC34

P1.4/ADC411

P1.5/ADC5/SS12

P1.6/ADC613

P1.

7/A

DC

714

AVDD5

AGND6

CREF7

VREF8

DAC09

DAC110

RE

SE

T15

P3.

0/R

xD16

P3.

1/T

xD17

P3.

2/IN

T018

P3.

3/IN

T1/M

ISO

19

DV

DD

20

DG

ND

21

P3.

4/T

022

P3.

5/T

1/C

ON

VS

T23

P3.

6/W

R24

P3.

7/R

D25

SC

LO

CK

26

SDATA/MOSI 27P2.0/A8/A16 28P2.1/A9/A17 29P2.2/A10/A18 30P2.3/A11/A19 31XTAL1 32XTAL2 33DVDD 34DGND 35P2.4/A12/A20 36P2.5/A13/A21 37P2.6/A14/A22

38P2.7/A15/A23 39

EA

40P

SE

N41

ALE

42P

0.0

/AD

043

P0.

1/A

D1

44P

0.2

/AD

245

P0.

3/A

D3

46

P0.

4/A

D4

49P

0.5

/AD

550

P0.

6/A

D6

51P

0.7

/AD

752

DG

ND

47D

VD

D48

U2

ADuC841BS62

C14

27pF

C13

27pF

+ C3

10uF

C15

0.1uf

DVDD

P1.0P1.1P1.2P1.3

DAC0DAC1P1.4P1.5P1.6P1.7

P3.2P3.3

P3.4P3.5P3.6P3.7SCLK

P0.7P0.6P0.5P0.4

P0.3P0.2P0.1P0.0ALEPSENEAP2.7P2.6P2.5P2.4

P2.3P2.2

DVDD

AVDD

DVDD

TXDRXD

R2

1KDVDD

567891011121314151617181920212223242526

J3

123456789

10111213141516171819202122232425

J2

C1

0.1uf

P1.0P1.1P1.2P1.3

DAC0DAC1P1.4P1.5P1.6

P1.7

P3.

2P

3.3

P3.

4P

3.5

P3.

6P

3.7

SC

LK

ALE

PS

EN

EA

MOSI

1 2 3

J4JMP1X3

ProgrammingApplication

P0.

7P

0.6

P0.

5P

0.4

P0.

3P

0.2

P0.

1P

0.0

P2.7P2.6P2.5P2.4

P2.3P2.2P2.1P2.0

C2

0.1uF

CREF

CREFRESET

RE

SE

T

XTAL2

XTAL2

P0.[0..7]P1.[0..7]

R5

10K

Q1

14.7456MHz

1 2 3 4

A

BB

A Title

Number RevisionSize

A4

Date: 13-Nov-2006 Sheet of File: D:\PROJECTS\3Projects UD\dL 841-232\Hardware\dL 841-232.DdbDrawn By:

C16

0.1uf

DVDD

S1

SW-PB

DVDD

0.1uf

DVDD

SCLK P2.2P2.1P2.0MOSI

12345

CON26

2526

CON26

C1+1 V+2

C1- 3

C2+4 C2- 5

V-6

T2OUT7

R2IN8 R2OUT 9

T2IN 10

R1OUT12R1IN13

T1OUT14 GND 15

T1IN 11

VCC 16U1

MAX232A

C7

0.1uF

C50.1uF

C6

0.1uFC40.1uF

DVDD

C80.1uF

162738495

J1

DB9

CTSRxRTSTx

1

24

GN

D3

VC

C5

U3

NC 7S08MS

R1

10KDVDD

DVDD

RXDAVDD

+C1110uF

R4

470

D1LED

DVDD

123

J5

3PIN

D2

SM4004R31.6

Vin 1

GN

D2

+Vout3

U4

LD1117DT50TR

+C12

22uF

TXD

P3.

2P

3.3

P3.

4P

3.5

P3.

6P

3.7

SC

LK

RE

SE

T

P2.[0..7]P3.[2..7]

Page 188: Curs SPNP

Emulatoare

Emularea hardware este procesul de imitare a comportamentului uneiasau a mai multor componente hardware , incluse in sistemul proiectat,cu o alta componenta hardware, numita sistem de emulare sauemulator.

•Se implementeaza prin interfete specifice incluse in chip, spre exempluBDM (Background Debug Mode) si accesate prin interfata JTAG => ICE•De cele mai multe ori este emulata UCP a microcontrolerului.

Page 189: Curs SPNP

Programarea sistemelor dedicate

Elaborarea componentei software a unui sistem dedicat este oactivitate importanta, consumind cca 70% din timpul deproiectare al ansamblului.proiectare al ansamblului.

Modalitati de programare:•In limbaj de nivel scazut (asamblare)•In limbaj de nivel inalt (C/C++)•Metoda combinata (C/C++ cu unele parti critice dinprogram elaborate in limbaj de asamblare.

Page 190: Curs SPNP

Programarea in limbaj de asamblare (1)

Limbajul de asamblare constituie o reprezentre simbolica acodului masina si a constantelor necesare pentru a programa oUCP.Obs.: Codul masina reprezinta un sistem de instructiuni si datece pot fi direct interpretate si executate de catre UCP.ce pot fi direct interpretate si executate de catre UCP.Caracteristici:

•Limbajul de asamblare este definit, de regula, de fabricantulhardware-ului si se bazeaza pe abrevieri sugestive(mnemonice) care sugereaza efectul instructiunii, registriiimplicati, etc.•Limbajul de asamblare este specific unei arhitecturi fizicesau virtuale de UCP (nu este deci PORTABIL).

Page 191: Curs SPNP

Programarea in limbaj de asamblare (2)

Caracteristici (continuare):•Programarea in limbaj de asamblare este mai dificila(necesita cunoasterea arhitecturi hardware, risc mare deaparitie a erorilor, productivitate scazuta);Conduce la un cod masina optim (dimensiuni mici si viteza•Conduce la un cod masina optim (dimensiuni mici si viteza

mare de executie).•Limbajul de asamblare este utilizat actualmente pentrucomanda directa a subansamblului hardware, pentru portiunide program care necesita viteza sporita de executie,memorie program de mica capaciate (drivere pentrudispozitive hardware, sisteme dedicate, sisteme de timpreal).

Page 192: Curs SPNP

Programarea in limbaj de asamblare (3)

Asamblorul este un program utilitar care translateazainstructiunile din limbaj de asamblare in instructiuni cod masinaspecifice procesorului utilizat. Translatare este izomorfica (unu-la-unu) de la mnemonice la instructiuni si date cod masina.la-unu) de la mnemonice la instructiuni si date cod masina.

Observatie:•Unele asambloare, numite macroasambloare, suportamacrouri , adica simboluri care substituie o secventa de liniiprogram (instructiuni, date). Odata definit ca pseudocod,numele macroului poate fi utilizat in locul codului operationalpe care il echivaleaza.

Page 193: Curs SPNP

Structura unui program in limbaj de asamblare

Declaratii

Org 0000hjmp start

Tratare intreruperi

Cseg at 50hstart: mov a,#23h

……………….Program principal

Subrutine

End

Page 194: Curs SPNP

Exemple de programe scrise in limbaj de asamblare

•Aplicatia 1Blink.asm•Aplicatia 2ADCsingl.asm•Aplicatia 2ADCsingl.asm•Aplicatia 3DACsine.asm•Aplicatia 4UARTIO.asm•Aplicatia 5PSMon.asm

Page 195: Curs SPNP

Instructiuni aritmetice

Page 196: Curs SPNP

Instructiuni logice

Page 197: Curs SPNP

Instructiuni de transfer

Page 198: Curs SPNP

Operatii cu variabile booleene

Page 199: Curs SPNP

Instructiuni de transfer a comenzii

Page 200: Curs SPNP

Precizari

Page 201: Curs SPNP

Microconvertorul Analog Devices ADuC 841

Page 202: Curs SPNP

Aplicatia 2ADCsingl.asmRegistri utilizati (1)

Page 203: Curs SPNP

Aplicatia 2ADCsingl.asm Registri utilizati (2)

Page 204: Curs SPNP

Aplicatia 2ADCsingl.asm Registri utilizati (3)

Page 205: Curs SPNP

Aplicatia 2ADCsingl.asm Registri utilizati (4)

Page 206: Curs SPNP

Aplicatia 2ADCsingl.asm Registri utilizati (5)

Page 207: Curs SPNP

Aplicatia 3DACsine.asm Registri utilizati

Page 208: Curs SPNP

Aplicatia 5PSMon.asm Registri utilizati