Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
15.03.2015 Sisteme de calcul dedicate (05) 1
Cuprins
1. Introducere2. Modele şi limbaje pentru specificaţia
sistemelor3. Microcontrolere4. Procesoare dedicate5. Interfeţe de comunicaţie6. Periferice pentru sisteme dedicate7. Dezvoltarea programelor8. Sisteme de operare dedicate
15.03.2015 Sisteme de calcul dedicate (05) 2
Microcontrolere
Microcontrolere 8051Microcontrolere PICMicrocontrolere AVRMicrocontrolere MAXQMicrocontrolere DSP
15.03.2015 Sisteme de calcul dedicate (05) 3
Microcontrolere AVR
Prezentare generalăNucleul UCPTipuri de memoriiPorturi de I/E
15.03.2015 Sisteme de calcul dedicate (05) 4
Prezentare generală (1)
Microcontrolere RISC de 8 biţi Produse de firma Atmel Arhitectură HarvardArhitectura de bază a fost proiectată la Institutul Norvegian de Tehnologie → tehnologie transferată la Atmel Norvegia AVR → Advanced Virtual RISC sau Alf & Vegard [RISC] AT90S8515: aceiaşi pini ca şi 8051
15.03.2015 Sisteme de calcul dedicate (05) 5
Prezentare generală (2)
Microcontrolere tinyAVR� Memorie de instrucţiuni între 1..8 KB� Set limitat de periferice
Microcontrolere megaAVR� Memorie de instrucţiuni între 4..256 KB� Set extins de instrucţiuni� Set extins de periferice
Microcontrolere megaAVR cu funcţii speciale� Controlere LCD, USB, Ethernet etc.
15.03.2015 Sisteme de calcul dedicate (05) 6
Prezentare generală (3)
Microcontrolere FPSLIC� Field Programmable System Level
Integrated Circuit� Conţin un nucleu AVR şi un circuit FPGA� Codul programului este păstrat într-o
memorie SRAM şi nu o memorie flash� Pot funcţiona cu frecvenţe de până la 50
MHz
15.03.2015 Sisteme de calcul dedicate (05) 7
Prezentare generală (4)
Caracteristici� Memorie flash de instrucţiuni: max. 256 KB
� Metode de programare: ISP (In-SystemProgramming), JTAG, programator hardware
� Memorie EEPROM de date: max. 4 KB� Memorie SRAM de date: max. 8 KB� Spaţiu de adresare de 64 KB pentru o
memorie externă (unele modele)� Moduri multiple pentru reducerea puterii
consumate
15.03.2015 Sisteme de calcul dedicate (05) 8
Prezentare generală (5)
� Comparatoare analogice� Convertoare A/D de 10 biţi (max. 16 canale)� Contoare de timp de 8 şi 16 biţi
� Ieşire PWM (Pulse Width Modulation)
� Interfeţe seriale� TWI (Two-Wire Interface) → compatibilă I2C� SPI (Serial Peripheral Interface)� UART/USART
� Modele cu diferite controlere: LCD, USB, Ethernet, CAN (Controller Area Network)
15.03.2015 Sisteme de calcul dedicate (05) 9
Microcontrolere AVR
Prezentare generalăNucleul UCPTipuri de memoriiPorturi de I/E
15.03.2015 Sisteme de calcul dedicate (05) 10
Nucleul UCP (1)
Nucleul UCP al microcontrolerului ATmega16
15.03.2015 Sisteme de calcul dedicate (05) 11
Nucleul UCP (2)
Execuţie pipeline a instrucţiunilor� Execuţia este suprapusă cu extragerea
instrucţiunii următoare� Se execută o instrucţiune pe ciclu de ceas
Majoritatea instrucţiunilor sunt de 16 biţi32 de registre generale (8 biţi)Spaţiul memoriei de program conţine:� Secţiunea programului încărcător (boot)� Secţiunea programului de aplicaţie
15.03.2015 Sisteme de calcul dedicate (05) 12
Nucleul UCP (3)
UAL� Conexiune directă cu registrele generale� Instrucţiuni între două registre sau între un
registru şi o valoare imediată� Unele versiuni conţin un circuit de înmulţire
Registrele generale� Timp de acces de un ciclu de ceas� Fiecare registru are asignată şi o adresă a
memoriei de date → primele 32 de locaţii
15.03.2015 Sisteme de calcul dedicate (05) 13
Nucleul UCP (4)
Registrele generale ale arhitecturii AVR
15.03.2015 Sisteme de calcul dedicate (05) 14
Nucleul UCP (5)
� Registrele R26..R31 se pot utiliza ca trei registre de 16 biţi pentru adresarea indirectă a memoriei de date → X, Y, Z
Stiva� Este implementată în memoria SRAM� Registrul SP (SPH, SPL) indică vârful stivei� Stiva creşte spre adrese mici → SP trebuie
iniţializat cu o valoare de peste $60� Registrul SP este decrementat cu 1 (PUSH)
sau cu 2 (CALL, întrerupere)
15.03.2015 Sisteme de calcul dedicate (05) 15
Microcontrolere AVR
Prezentare generalăNucleul UCPTipuri de memoriiPorturi de I/E
15.03.2015 Sisteme de calcul dedicate (05) 16
Tipuri de memorii (1)
Memoria de program flash� ATmega16: 16 KB (8 K x 16)� Cel puţin 10.000 de cicluri (scriere/ştergere)� Secţiunea programului încărcător şi cea a
programului de aplicaţieMemoria de date SRAM� 32 locaţii: registrele generale� 64 locaţii: registrele de I/E� 1024 locaţii: memoria SRAM de date
15.03.2015 Sisteme de calcul dedicate (05) 17
Tipuri de memorii (2)
15.03.2015 Sisteme de calcul dedicate (05) 18
Tipuri de memorii (3)
Memoria de date EEPROM� ATmega16: 512 octeţi� Cel puţin 100.000 cicluri (scriere/ştergere)� Spaţiu separat de date� Pentru scriere trebuie urmată o procedură
specifică� Registre de acces EEPROM: registre de
adresă (EEARH, EEARL); registru de date (EEDR); registru de control (EECR)
15.03.2015 Sisteme de calcul dedicate (05) 19
Microcontrolere AVR
Prezentare generalăNucleul UCPTipuri de memoriiPorturi de I/E
15.03.2015 Sisteme de calcul dedicate (05) 20
Porturi de I/E (1)
Porturi bidirecţionale → PORTA .. PORTDDirecţia unui pin de I/E se poate schimba fără a afecta direcţia altor piniFiecare pin are o rezistenţă pull-up selectabilăExistă trei registre pentru fiecare port� Registrul de date PORTx (R/W)� Registrul de direcţie DDRx (R/W)� Registrul pinilor de intrare PINx (R/O)
15.03.2015 Sisteme de calcul dedicate (05) 21
Porturi de I/E (2)
Configurarea pinului PORTxn� Pentru ieşire: DDxn = 1� Pentru intrare: DDxn = 0� Activarea rezistenţei pull-up:
� Se configurează pinul ca intrare; PORTxn = 1
� Dezactivarea rezistenţei pull-up: � Se configurează pinul ca intrare; PORTxn = 0� Sau se configurează pinul ca ieşire
15.03.2015 Sisteme de calcul dedicate (05) 22
Microcontrolere
Microcontrolere 8051Microcontrolere PICMicrocontrolere AVRMicrocontrolere MAXQMicrocontrolere DSP
15.03.2015 Sisteme de calcul dedicate (05) 23
Microcontrolere MAXQ
Prezentare generalăArhitectura
15.03.2015 Sisteme de calcul dedicate (05) 24
Prezentare generală (1)
MAXQ – familie de microcontrolere RISC produse de firma Maxim (Dallas Semicond.)Arhitectură HarvardVersiuni de 8 şi 16 biţi (registre, date)Instrucţiuni de 16 biţiInstrucţiunile se execută într-un singur ciclu de ceas (excepţie: instrucţiuni de salt şi apel)� Performanţa: ~1 MIPS pe MHz
Nu se utilizează tehnica pipeline
15.03.2015 Sisteme de calcul dedicate (05) 25
Prezentare generală (2)
Microcontrolerul conţine circuite analogice� Tehnici pentru reducerea zgomotelor care
pot afecta circuitele analogice Stivă hardware dedicată (tipic: 8 x 16 biţi)Periferice digitale� Numărătoare şi contoare de timp� Porturi de I/E� Ceas de timp real� Porturi seriale: RS-232, RS-485, SPI, I2C,
1-Wire, CAN
15.03.2015 Sisteme de calcul dedicate (05) 26
Prezentare generală (3)
� Circuit de înmulţire (16 x 16 biţi) cu acumularea rezultatelor pe 40 de biţi
� Drivere pentru afişaje LCD Periferice analogice� Convertoare A/D de 12 şi 16 biţi� Convertoare D/A de 12 biţi� Comparatoare analogice� Senzori de temperatură� Referinţe de tensiune
15.03.2015 Sisteme de calcul dedicate (05) 27
Microcontrolere MAXQ
Prezentare generalăArhitectura
15.03.2015 Sisteme de calcul dedicate (05) 28
Arhitectura (1)
Arhitectură modulară şi extensibilăRegistrele sunt organizate în module funcţionale� Module/registre sistem� Module/registre periferice
Set ortogonal de instrucţiuni Decodificare simplă a instrucţiunilor� Se bazează pe transferuri între registre
Unitate de gestiune a memoriei (MMU)
15.03.2015 Sisteme de calcul dedicate (05) 29
Arhitectura (2)
15.03.2015 Sisteme de calcul dedicate (05) 30
Arhitectura (3)
Spaţiul registrelor� 16 module de registre: câte 32 de registre� M0..M5: module periferice� M6..M15: module sistem
Registre pointer de date → memoria de date� DP[0], DP[1] (Data Pointer) de câte 16 biţi� FP (Frame Pointer): BP (Base Pointer) de
16 biţi; OFFS (Offset) de 8 biţi → BP[OFFS]� Operaţii de post-increm./decrem. (citire) şi
pre-increm./decrem. (scriere)
15.03.2015 Sisteme de calcul dedicate (05) 31
Arhitectura (4)
Registre acumulator� 8..16 registre accesibile ca A[0]..A[15]� Localizate într-un modul sistem� Un acumulator poate fi desemnat ca activ
prin registrul AP (Accumulator Pointer)� Acc → A[AP]� Operaţiile UAL utilizează în mod implicit
acumulatorul activ ca destinaţie
� Registrul APC (Accumulator-Pointer Control)
15.03.2015 Sisteme de calcul dedicate (05) 32
Arhitectura (5)
Instrucţiuni� Există o singură instrucţiune în sensul
clasic: MOVE� Operanzii permit diferite operaţii, accesul la
memorie, activarea modulelor hardware
15.03.2015 Sisteme de calcul dedicate (05) 33
Arhitectura (6)
� Instrucţiunile se reduc la transferuri� Operanzii sursă şi destinaţie se pot asocia
nu numai cu registrele fizice� Citirea sau scrierea unor registre va
declanşa unele operaţii � Accesul indirect la memoria de date prin
DP[0]: operandul @DP[0]� Salturi condiţionate: au ca destinaţie
implicită pointerul de instrucţiuni IP
15.03.2015 Sisteme de calcul dedicate (05) 34
Microcontrolere
Microcontrolere 8051Microcontrolere PICMicrocontrolere AVRMicrocontrolere MAXQMicrocontrolere DSP
15.03.2015 Sisteme de calcul dedicate (05) 35
Microcontrolere DSP
Prezentare generalăFamilia de microcontrolere DSP56800� Arhitectura� Structura nucleului� Arhitectura memoriei� Blocuri externe nucleului
15.03.2015 Sisteme de calcul dedicate (05) 36
Prezentare generală (1)
DSP – Digital Signal ProcessorProcesoare specifice aplicaţiei optimizate pentru calcule matematice intensive� Preiau sau citesc datele de intrare � Execută prelucrările asupra datelor� Transferă la ieşire sau memorează
rezultatelePot avea spaţii de adresare duale pentru date � Doi operanzi pot fi accesaţi simultan
15.03.2015 Sisteme de calcul dedicate (05) 37
Prezentare generală (2)
Majoritatea au o arhitectură Harvard� Al treilea spaţiu de adresare pentru program
Aplicaţii� Prelucrarea semnalelor audio şi video� Prelucrarea imaginilor� Comunicaţii (reţele, telefoane)� Radio şi televiziune digitală� Aparatură medicală� Navigare GPS
15.03.2015 Sisteme de calcul dedicate (05) 38
Prezentare generală (3)
Microcontrolere DSP� Conţin un nucleu de procesor DSP şi
periferice obişnuite unui microcontroler� Set de instrucţiuni mixt: instrucţiuni DSP
(transferuri de date şi operaţii aritmetice) şi instrucţiuni obişnuite ale unui procesor
� Se utilizează pentru aplicaţii care necesită calcule intensive, dar costuri reduse: telefoane, camere digitale, robotică
15.03.2015 Sisteme de calcul dedicate (05) 39
Prezentare generală (4)
Exemple de microcontrolere DSP� Texas Instruments: seria TMS320C2000
(16 biţi şi 32 biţi)� Analog Devices: seriile ADSP-21xx, ADSP-
21xxx (16 biţi); SHARC (32 biţi)� Freescale Semiconductor: seriile DSP56000
(24 biţi) şi DSP56800 (16 biţi)
15.03.2015 Sisteme de calcul dedicate (05) 40
Microcontrolere DSP
Prezentare generalăFamilia de microcontrolere DSP56800� Arhitectura� Structura nucleului� Arhitectura memoriei� Blocuri externe nucleului
15.03.2015 Sisteme de calcul dedicate (05) 41
Arhitectura (1)
15.03.2015 Sisteme de calcul dedicate (05) 42
Arhitectura (2)
Nucleu UCP de 16 biţi� Instrucţiuni generale şi pe biţi� Transferuri cu memoria executate în
paralel cu operaţiile aritmeticePeriferice: contoare de timp şi de timp real, porturi serialeMemorii: RAM, flashPorturi de I/E: GPIO (General-Purpose I/O)Port pentru depanare prin interfaţa JTAG� Funcţii OnCE (On-Chip Emulation)
15.03.2015 Sisteme de calcul dedicate (05) 43
Microcontrolere DSP
Prezentare generalăFamilia de microcontrolere DSP56800� Arhitectura� Structura nucleului� Arhitectura memoriei� Blocuri externe nucleului
15.03.2015 Sisteme de calcul dedicate (05) 44
Structura nucleului (1)
Circuit de înmulţire şi acumulare de 16x16 biţiDouă acumulatoare de câte 36 biţiCircuit de deplasare de 16 biţiPatru magistrale interne de date (16 biţi)Trei magistrale interne de adrese (16 biţi)Stivă softwareImplementarea prin hardware a buclelor Două moduri de funcţionare cu putere consumată redusă
15.03.2015 Sisteme de calcul dedicate (05) 45
Structura nucleului (2)
15.03.2015 Sisteme de calcul dedicate (05) 46
Structura nucleului (3)
UAL pentru date� Trei registre de intrare (16 biţi): X0, Y0, Y1� Două registre acumulator (36 biţi): A, B
� Registre de 16 biţi: A0, B0� Registre de 16 biţi: A1, B1� Registre de extensie de 4 biţi: A2, B2
� Registru de deplasare pentru acumulator� Circuit de deplasare de 16 biţi� Unitate MAC (Multiply-Accumulate)
15.03.2015 Sisteme de calcul dedicate (05) 47
Structura nucleului (4)
Unitatea de generare a adreselor� AGU – Address Generation Unit� Calculează adresele efective pentru
adresarea operanzilor în memorie� Funcţionează în paralel cu alte resurse� Conţine două UAL → două adrese de 16 biţi� Patru registre de adresă: R0..R3� Registru indicator de stivă: SP� Registru de modificare: M01
15.03.2015 Sisteme de calcul dedicate (05) 48
Structura nucleului (5)
� Registru offset: N� Unitate aritmetică modulo� Unitate de incrementare/decrementare
Controlerul de program� Încarcă şi decodifică instrucţiunile� Controlează execuţia buclelor hardware� Gestionează întreruperile� Contor de program: PC� Stivă hardware: HWS (2 cuvinte x 16 biţi)
15.03.2015 Sisteme de calcul dedicate (05) 49
Structura nucleului (6)
� Registru de adresă pentru bucle DO: LA� Registru contor pentru bucle DO: LC� Registru de stare: SR� Registru de mod: OMR
Magistrale de adrese� Două magistrale de 16 biţi pentru memoria
internă de date X: XAB1, XAB2� O magistrală de 16 biţi pentru memoria de
program: PAB
15.03.2015 Sisteme de calcul dedicate (05) 50
Structura nucleului (7)
Magistrale de date� Magistrala de date globală pentru nucleu:
CGDB� Magistrala de date pentru program: PDB� Magistrala de date pentru periferice: PGDB
(sau IP-BUS)� Magistrala unidirecţională pentru memoria
X de date: XDB2� Pentru un acces la memorie: CGDB
15.03.2015 Sisteme de calcul dedicate (05) 51
Structura nucleului (8)
� Pentru două accese simultane de citire: CGDB şi XDB2
� Simultan, se poate citi o instrucţiune prin magistrala PDB
Unitatea pentru magistrale şi operaţii pe biţi� Permite transferuri între magistralele
interne → poate conecta două magistrale� Realizează operaţiile pe biţi pentru registre,
cuvinte de date, registre periferice
15.03.2015 Sisteme de calcul dedicate (05) 52
Microcontrolere DSP
Prezentare generalăFamilia de microcontrolere DSP56800� Arhitectura� Structura nucleului� Arhitectura memoriei� Blocuri externe nucleului
15.03.2015 Sisteme de calcul dedicate (05) 53
Arhitectura memoriei (1)
Arhitectură Harvard dualăFiecare spaţiu de adrese: max. 64 K cuvinteAccesul simultan la memoria de program şi la memoria de dateCale de date la a doua memorie de date (R/O)� Este posibilă iniţierea a două accese
simultane de citireLocaţiile 0..7Fh din memoria de program: vectori de resetare şi de întrerupere
15.03.2015 Sisteme de calcul dedicate (05) 54
Arhitectura memoriei (2)
15.03.2015 Sisteme de calcul dedicate (05) 55
Microcontrolere DSP
Prezentare generalăFamilia de microcontrolere DSP56800� Arhitectura� Structura nucleului� Arhitectura memoriei� Blocuri externe nucleului
15.03.2015 Sisteme de calcul dedicate (05) 56
Blocuri externe nucleului (1)
15.03.2015 Sisteme de calcul dedicate (05) 57
Blocuri externe nucleului (2)
Memorii externe de date� Spaţiu de 64 KB� Memorii RAM şi/sau flash� Adresele sunt transmise pe magistralele
XAB1 şi XAB2� Transferurile de date au loc pe magistralele
CGDB şi XDB2� O parte a spaţiului de adrese este
rezervată pentru registrele periferice
15.03.2015 Sisteme de calcul dedicate (05) 58
Blocuri externe nucleului (3)
Memorii de program� Spaţiu de 64 KB� Memorii RAM şi/sau flash� Adresele sunt transmise pe magistrala PAB� Datele sunt transferate pe magistrala PDB
Puntea IP-BUS� Necesară pentru perifericele care utilizează
magistrala Freescale IP-BUSPLL (Phase Lock Loop)� Permite utilizarea unui ceas extern