curs spnp
DESCRIPTION
ssTRANSCRIPT
SISTEME DE PRELUCRARE NUMERICA CU PROCESOARE
Author: V. Tiponut “POLITEHNICA” University of TIMISOARA
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
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.
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).
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 )
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
Conditionarea semnalului
+
Udif
_
Ucm
Uout
Ad= 1…1000CMRR = 100 dB
Programmable Gain
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.
Circuit cu capacitati comutate
I = fcCVR = 1/(fcC)
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.
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
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)
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).
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.
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).
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.
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).
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.
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 .
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
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)
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
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)
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
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).
Conceptul de magistrala
Microprocesor (PGA)
Arhitectura unui microprocesor
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.
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.
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.
Structura detaliata a unui microcontroler
Detaliu CPU al unui microcontroler
Registri inclusi in “Register File”:•The Stack Pointer (SP)•Program Status Word (PSW)
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.
Instructiunea DEC
Instructiunea NOP
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.
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
Instructiuni aritmetice (MCS51)
Instructiuni logice
Instructiuni de transfer
Operatii cu variabile booleene
Instructiuni de transfer a comenzii
Precizari
Organizarea memoriei program (1)
Memoria de pe chip mai mica de 64KonEA ���� Pinul External Addressing
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
Faza de extragere a codului instructiunii din memoria externa
Organizarea memoriei program (2)
Observatii:•Memoria de pe chip de 64Ko•Programare ISP (In System Programming)
Organizarea memoriei program (3)
Observatii:•Memoria de pe chip de 64Ko•Programare ISP (In System Programming) si IAP (In Application Proramming)
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
Zona RAM adresabila direct si indirect (1)
Memoria STIVA aici -����
Zona RAM adresabila direct si indirect (2)
Rolul registrilor speciali pentru functii (SFR)
Exemplu de registri pentru functii speciale (SFR)
Organizarea memoriei RAM de date (2)Organizarea memoriei RAM de date (2)
FLASH DATE
+
Schema de conectare a unei memorii externe
Memorii externe RAM de date sunt relativ frecvent utilizate
Faza de citire date dintr-o memorie RAM externa
Faza de scriere date intr-o memorie RAM externa
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.
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
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.
Controler programabil de intreruperi (Pogrammable Interrupt Controller (PIC))
PCA ����Programmable Counter ArraynINT0/1���� External InterruptIP ���� Interrupt PriorityEA ���� Enable AllEA ���� Enable All
Intreruperi mascabile/nemascabile!
• 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)
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
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”.
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.
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
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
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).
Functii alternative pentru portul P0
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).
Linia de port in mod iesire: in contratimp (push -pull) si drena in gol (open drain)
Caracteristica de transfer cu histeresis a unei linii de port
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
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.
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)
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).
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.
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
Structura interna a rezistentei “pull-up”
De la circitul SI-NU
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
Structura de baza a unui circuit temporizator/numarator
•C/Tx => stabileste functia de numarator/temporizator• TRx > pornit/oprit functionarea (R=RUN)
Temporizatoarele T0 si T1 in modurile de lucru 0 si 1
Temporizatoarele T0 si T1 in modurile de lucru 2 (cu autoincarcare)
Temporizatoarl T0 in modul de lucru 3 (doua temporizatoare cu 8 biti)
Registrii SFR pentru programarea functonarii temporizatoarelor T0 si T1
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)
Temporizatorul T2 in modul de lucru “captare”
Temporizatorul T2 in modul de lucru “cu autoincarcare”
Temporiztorul numara “in sus”
Temporizatorul T2 in modul de lucru “numarator sus/jos”
Temporizatorul T2 in modul de lucru “clock out mode”
Genereaza o unda dreptunghiulara
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.
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)
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)
Comunicatia seriala asincrona
Structura interna USART (modul asincron)
Generarea frecventei de transmisie cu temporizatorul T2
Comunicatia seriala sincrona
Structura interna USART (modul sincron)
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)
Circuit pentru interfata RS-232
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
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 !!!
Legatura cablu modem nul
22
DTE DTE3 3
7 7
Utilizarea liniilor de comanda(conectare DTE cu DCE)
TX TX
RXRX
DTRDTR
DSR DSR
CTS CTS
RTSRTS
DCE DTE
Modem Calculator PC
GND
Utilizarea liniilor de comanda
(conectare DTE cu DTE)
TX TX
RXRX
DTRDTR
DSR DSR
CTS CTS
RTSRTS
GND
Calculator PC Calculator PC
DTE DTE
Asigurarea locala a validarilor
TX TX
RXRX
DTRDTR
DSR DSR
CTS CTS
RTSRTS
GNDDTE DTE
Calculator PC Calculator PC
Circuit de interfata pentru magistrsla RS-232
Circuit pentru modularea impulsurilor in durata (PWM)
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
Mode 1: Single Variable Resolution PWM
Mode 2: Twin 8-Bit PWM
Mode 3: Twin 16-Bit PWM
Mode 5: Dual 8-Bit PWM
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 )
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
SPI Bus Configuration
An SPI bus example
SPI Protocol
� Hardware realization is usually done with a simple shift register
SERIAL PERIPHERAL INTERFACE
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.
•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
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)
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
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
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
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
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 ).
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
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
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
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
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)
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
Serial In-System Programming
Protocolul de comunicatie cu Kernelul
Comenzi disponibile
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:
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.
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
Example of INTEL HEX FORMAT
In Application Programming (IAP) orUser Download Mode (ULOAD)
Protejarea memoriei Flash Program
Exixta mai multe regimuri de protejare a datelor memorate:
•modul “lock”•modul “secure”•Modul “serial safe”
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.
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.
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.
SET SECURITY MODES COMMAND
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.
Principiul testarii pe frontiera
Principiul testarii pe frontiera
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
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.
Conectarea mai multor dispozitive supuse testarii
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.
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.
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)
Familia de microcontrolere Intel 80X51
Microconvertoare Analog Devices (AD) – procesor 8052 (1)
Microconvertoare Analog Devices (AD) – 8052 core (2)
Microconvertoare Analog Devices (AD) – procesor ARM (3)
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)
Familii semnificative de microcontrolere (2)
Microcontrolere TI MSP430Microcontrolere TI MSP430Familia de microcontrolere Freescale HCS12(X)
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
Familia de microcontrolere MSP430Arhitectura
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
Familia de microcontrolere Freescale HCS12(X)
Arhitectura
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
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.
Schimbul de informatii cu mediul inconjurator
Aplicatie tipica cu procesor numeric de semnal
Operatii aritmetice necesare
Operatiune de filtrare (filtru FIR)
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.
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 .
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
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)
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.
Arhitectura Harward
Frecvent aceasta arhitectura include o memorie cachepentru instructiuni, lasind magistralele disponibile pentru operanzi (Super Harvard ARChitecture - SHARC).
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!
Mediu integrat pentru implemetarea aplicatiei intr-un circuit FPGA
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”.
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]
Costurile de implementarea pentru ASIC si FPGA
K$K$
ASIC
FPGA
Tehnici de elaborare a aplicatiilor software
•Medii integrate de simulare si depanare a aplicatiilor software,aplicatiilor software,•Sisteme de dezvoltare, programe monitor,•Emulatoare
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).
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).
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.
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]
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.
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.
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).
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).
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.
Structura unui program in limbaj de asamblare
Declaratii
Org 0000hjmp start
Tratare intreruperi
Cseg at 50hstart: mov a,#23h
……………….Program principal
Subrutine
End
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
Instructiuni aritmetice
Instructiuni logice
Instructiuni de transfer
Operatii cu variabile booleene
Instructiuni de transfer a comenzii
Precizari
Microconvertorul Analog Devices ADuC 841
Aplicatia 2ADCsingl.asmRegistri utilizati (1)
Aplicatia 2ADCsingl.asm Registri utilizati (2)
Aplicatia 2ADCsingl.asm Registri utilizati (3)
Aplicatia 2ADCsingl.asm Registri utilizati (4)
Aplicatia 2ADCsingl.asm Registri utilizati (5)
Aplicatia 3DACsine.asm Registri utilizati
Aplicatia 5PSMon.asm Registri utilizati