Professional Documents
Culture Documents
parte 2 - aplicaciones
Ao 2008
Tcnicas Digitales III
Basado en una publicacin de Rony Ferzli - Digital Signal Processing - Lab
Qu es procesamiento de seal?
Seal de Entrada
Procesamiento
Seal de salida
(Analgica o Digital)
(Analgica o Digital)
Operacin, Transformacin
Ejemplo de seales:
Analgicas: Voz, msica, fotos, Video, radar, sonar,
En el dominio Discreto/Digital:
Voz digitalizada, msica, imgenes, video, radar , ...
Procesamiento digital
Salida digital
Y las seales...
Seal
Analgica
A/D
Procesamiento
Digital
D/A
Ejemplos
Porqu
Digital??
Aplicacin Tpica
Procesamiento
en tiempo real
Salida Digital
Ejemplo:
Procesador a120 MHz, puede realizar 120MIPS
Frec . De Muestreo = 48KHz (Digital Audio Tape - DAT)
numero de inst. por muestra = (120 x 106)/(48 x 103) =
2500.
fs = 8KHz (Banda de voz, telefona) nmero de
instrucciones por muestra= 15000.
fs = 75MHz (CIF 360x288 Video a 30 cuadros por
segundo) nmero de instrucciones por muestra= 1.6.
Tcnicas Digitales III
Desafo:
Cdigo;
Compacto para ser ejecutado en tiempo real.
Buena cantidad de instrucciones entre muestras.
Qu es DSP?
DSP = Proc. Digital de seales
O
DSP = Procesador Digital de seales
DSP es usado para ambos
El significado se deduce del contexto en el cual la
palabra DSP es usada.
Repetibilidad
Misma performance de una unidad a otra.
No cambia su performance por cambios de
temperatura o envejecimiento.
Compresin
Reconocimiento
Verificacin, adecuacin de voz
Sintesis de voz
Amplificacin, Cancelacin de eco
Procesamiento de audio
Compresion
Reproduccin 3-D
10
Procesamiento de Imgenes
Procesamiento
Compresin
Reconocimiento de Patrones
Cancelacin de fantasmas
(Ghost cancellation)
Reduccin de ruido
Seguimiento de objetos
Fusin de imgenes
11
Telefona Celular
Compresin de voz
Software de Radio
12
DSP : Pager
Controlado por la unidad de manejo de
la potencia (Power Management Unit)
RF
RF
Receiver
Receiver
Microcontroller
Microcontroller
Chip
Chip
ADC
ADC
Pager
Pager
Protocol
Protocol
Decoder
Decoder
http://www.motorola.com/FLEX
Pager
Pager
Peripherals
Peripherals
DSP
DSP
Chip
Chip
DAC
DAC
-Decodificacin del
espectro
- Compresin
-Procesamiento de voz
13
DSP : Pager
14
RF
RF
Codec
Codec
Microprocessor
Microprocessor
Chip
Chip
Cell
Cell
Peripherals
Peripherals
DSP
DSP
Chip
Chip
Voice
Voice
Codec
Codec
-Codificador de voz
-Reconocimiento de voz
- Ecualizadores
- Cancelacin de ruido de antena
-Tcnicas de mejoramiento de imgen
Tcnicas Digitales III
15
16
Micro
Micro
processor
processor
DSP
DSP
Chip
Chip
Memory
Memory
(Card
(Cardor
or
Chip)
Chip)
Voice
Voice
Codec
Codec
Audio Coders
-MP3
Peripherals
-AC3
-AAC
17
18
20%
24%
40%
Texas Instruments
Motorola
43%
9%
Agere
8%
Analog Devices
Other
16%
14%
14%
12%
19
6%
4% 3%
WIRELESS
8%
CONSUMER
MULTIPURPOSE
11%
WIRELINE
COMPUTER
68%
AUTOMOTIVE
20
PCs portables
26 M unid./ao en 2002
Creci 14% de 1999 al 2002
Celular
Trep a 500 M unid./ao en el 2002
21
P
e
r
f
o
r
m
a
n
c
e
Costo efectivo
P
o
w
e
r
Ao: 2003
Baja potencia
Mediana Performance
Costo efectivo
Ao: 1999
Tcnicas Digitales III
Tiempo
22
23
h[k ].x[n k ]
y[n]=0;
For (n=0; n<N;n++)
En lenguaje C
Solo multiplicar
{
For (k = 0;k<N;k++)
//inner loop
y[n] = y[n] + h[k]*x[n-k];}
Y acumular
(MAC)
24
11
12
3
11
24
X
R1
44
2
3
R2
Loop
Clr
;Clear Accumulator A
Clr
; Clear Accumulator B
Mov
*R0, Y0
Mov
*R1,X0
Mpy
X0,Y0,A
;X0*Y0 ->A
Add
A,B
;A + B -> B
Inc
R0
;R0 + 1 -> R0
Inc
R1
;R1 + 1 -> R1
Dec
Tst
Jnz
Loop
Mov
B,*R2
25
11
R2
24
44
2
3
Clr
;Clear Accumulator A
Rep
MAC
*(R0)+, *(R1)+, A
Mov
A, *R2
26
Desventajas de un PPG
Mas instrucciones/tareas
Memoria comn para datos y programa
Limitado ancho de banda de bus/memoria
27
Memory
Register 1
Register 2
ALU
28
Data
Memory
Un chip DSP es un
microprocesor
especialmente diseado
para aplicaciones DSP.
Arquitectura optimizada
para proveer
procesamiento veloz de
seales discretas en el
tiempo, ej: Multiplicar y
Acumular (MAC) en un
solo ciclo
Multiplexer
Multiplexer
ALU
Accumulator
29
Estructura de Memoria
30
DSP vs PPG
Emphasis on software
Single-clock,
reduced instruction
only
CISC
Emphasis on hardware
Includes multi-clock
complex instructions
Small code
sizes
Arquitectura de memoria
Arquitectura de memoria Harvard vs. Von Neuman
Transferencias de datos concurrentes
MAC
Multiply ACcumulate instruction
31
DSP vs PPG
Accesos a memoria
32
Memoria de
datos
DM
Core
PM
Memoria de
programa
33
Mayor paralelismo
Incrementando el nmero de operaciones que se
puede realizar en cada instruccin
Adicionando ms unidades de ejecucin(ej: Multiplicadores)
34
3G
2.5G
2G
~100,000MIPS
384-2000 Kbps
La performance de un
DSP podra no ser
uficiente para
futuras
aplicaciones
~10,000MIPS
64-384 Kbps
~100MIPS
8-13 Kbps
Bit Rate
35
Operaciones aritmticolgicas
Multiplicacin y suma
permite una rpida ejecucin
de operaciones iterativas
Diagrama de bloques de la
arquitectura del PIC-12C5XX
Clculos sobre registros auxiliares
para direccionamientos indirectos
tanto a memoria de datos como
de programa.
Tcnicas
Digitales IIIde
Diagrama
36
bloques del DSP TMS320F241
37
ASIC - Ventajas
Velocidad
Consumo de potencia bajo
costo/performance
Flexibilidad para diseo
38
ASIC- Desventajas
FPGA
39
Qu es un FPGA?
Es una red de hardware configurable
con interconexiones reconfigurables
controladas por el switcheo de una
matriz de control.
Histricamente se usaron para
prototipos
Recientemente incluyen caractersticas
de DSP
La mayor Compania de DSP + FPGA:
ALTERA(ej: Stratex) & XILINX (ej: Virtex II)
Tcnicas Digitales III
40
FPGA - Ventajas
Mayor flexibilidad que un ASIC
Alta Performance en algunas
aplicaciones
Reusabillidad de Hardware para
diferentes aplicaciones
41
FPGA - Desventajas
Largo ciclo de desarrollo
Caro comparado con un DSP
Mayor consumo de potencia comparado
con un DSP
42
43
Tipos de DSP
Low End Fixed Point
TMS320C2XX, ADSP21XX, DSP56XXX
Floating Point
TMS320C3X, C67XX, ADSP210XX, DSP96000,
DSP32XX
44
barato
pequeo
Menos consumo
Difcil de programar
Bsqueda de errores: truncado, rebosamiento, redondeo
45
Punto Fijo
Aplicaciones
Aplicaciones
Modems
Productos portables
Estaciones Wireless
Centrales telefnicas
Digital Cameras
Imgen digital
Electronic Books
Grficos 3D
Reconocimiento de voz
Speech Recognition
Receptores GPS
Voice over IP
Biomediciones
Reconocimiento de huellas
digitales
46
56800
56800E
DSP56F801
DSP56F802
DSP56F803
DSP56F805
DSP56F807
DSP56F826
DSP56F827
DSP56852
DSP56853
DSP56854
DSP56855
DSP56857
DSP56858
MC56F8322
MC56F8323
MC56F8345
MC56F8346
MC56F8356
MC56F8357
56300
DSP56301
DSP56303
XC56309
XC56L307
DSP56311
DSP56321
DSPB56362
DSPB56364
DSPB56366
DSPA56367
DSPA56371
MSC8100
MSC8101
MSC8103
47
Features
Running at 70 MHz
Applications
Motion Control
Smart appliances
Environmental controls
Instrumentation
Industrial
Uninterruptable power
supplies
Noise
cancellation/suppression
Temperature control
HVAC
Lighting
Automation
Transportation
Instrumentation
48
Features
40K x 16-bit Program SRAM
Telephony
Telco interface
Codecs
Applications
Client-side IP phone
Internet Audio
Internet Audio decoding
Internet Audio standalone player
Voice Processing
49
Features
Object code compatible with the
DSP56000 core with highly parallel
instruction set
Data Arithmetic Logic Unit (Data
ALU) with fully pipelined 24 x 24-bit
parallel Multiplier-Accumulator
(MAC)
Applications
Multimedia
Telecommunciation
Video conferencing
Base transceiver stations
Packet telephony
50
Features
Applications
2.5G Wireless System
3G Wireless System
IP Telephony
Compression
G.7xx speech coders
Optimized for
networking
infrastructure
applications
51
rbol de la familia TI
TI DSP Family Tree [2003]
C2000
C24x
F2407, F2406
F2403, F2402
F2401, C2406
C2404, C2402
C2401, F243
F241, C242
F240
C28x
Motorola Tree
C3x
C6000
C5000
C3000
C55x
C64x
C67x
C6211
C6416
C6713
C6205
C6415
C6712
C6204
C6414
C6711
C6203
C6412
C6701
C6202
C6411
C6201
DM640
C5416
F2810
F2812
C33
C32
C31
C30
C5410
C5470
C5409
C5471
C5407
C5510
C5509
C5502
C5501
C5404
C5402
C5401
OMAP5910
DM641
C549
DM642
C54CST, C54V90
52
Features
Applications
Up to 40-MIPS operation
Appliances
Compressors
converter
Industrial automation
Uninterruptible power
(UPS) systems
Automotive braking
steering systems
timers
Watchdog timer module
Up to 16 PWM channels
Up to 41 GPIO pins
Five external interrupts
Electric metering
Printers and copiers
Hand-held power tools
Electronic cooling
Intelligent sensors
sectored Flash
Tunable lasers
I/O Modules
Consumer goods
Fuel pumps
Industrial frequency
Remote monitoring
ID tag readers
53
Features
Applications
Lighting
150-MIPS operation
to any interrupts
Optical networking
(ONET)
Power supplies
Industrial automation
Consumer goods
32 32 single-cycle fixed-point
MAC
Dual 16 16 single-cycle fixed-point
MACs
On Chip flash memory
I/O modules: SPI, SCI, CAN
54
Features
Applications
Digital audio
Laser printers, copiers,
scanners
Bar-code scanners
Videoconferencing
55
Features
Applications
Personal communications
systems (PCS)
Pagers
Personal digital assistants
Digital cordless communications
Wireless data communications
Networking
Computer telephony
Voice over packet
Modems
56
Features
Applications
wireless data
Smart pen pads
Text-to-speech
Voice recognition
Vommand control
Phase-locked loop
Networked security
radio
47.5-MHz operation
16 KByte zero-wait-state SRAM
Memory interface (SDRAM, SRAM,
ROM, Flash)
Single-port 10/100 Base-T
Ethernet Interface (C5471 DSP only)
36 general-purpose I/O (ARMI/O)
Two UARTs (one IrDA)
Serial peripheral interface (SPI)
I 2 C interface
57
Features
Applications
and basestations
Electronic books
Voice recognition
GPS receivers
Fingerprint/Pattern recognition
10-bit ADC
Wireless modems
Headsets
Biometrics
58
Features
Applications
Internet appliances
Applications processing
Enhanced gaming
Webpad
Point-of-sale
Medical devices
Industry-specific PDAs
Telematics
59
Features
Applications
Pooled modems
Wireless basestations
60
Features
Applications
Pooled modems
Wireless basestations
Call processing
Speech recognition
3D graphics
61
Features
Applications
Wireless LAN
Basestation transceivers
Enterprise PBX
Multimedia gateway
Broadband video transcoders
Streaming video servers and
clients
Highspeed raster image
processing (RIP)
62
TI Families Summary
63
Qu chip selecciono?
Motorola DSP56858
Family: DSP56800E
Kit: DSP56858EVM
Software: Metrowerks CodeWarrior
Metrowerks is a Motorola company in charge of developing the software
Applications
Telephony
Client side IP phone
Internet Audio
Voice Processing
TI TMS320C5510
Family: TMS320C55xx
Kit: TMS320C5510DSK
Software: TI Code Composer Studio v2.1
Applications
64
Cdigo
Escribir cdigo en C
Compilar para crear cdigo en asembler
Ensamblar el cdigo para crear el cdigo
objeto y linkear
Usar el simulador para testeo de la velocidad
del cdigo
Si el cdigo no es lo suficientemente rpido
reescribir el cdigo en C y volverlo a testear.
Si an no es lo suficientemente rpido ,
escribirlo en lenguaje Assembly.
65
66
67
68
DSP56858EVM Kit
DSP56858 chip
USB interface
1 Mbit EEPROM/Data Flash
FSRAM (256K)
Parallel interface
On board 6 debugging LED
Boot Mode Selector
RS232 Interface
Audio in/out (stereo)
69
Qu chip selecciono?
DSP56800E Family General Purpose 16-bit fixed
point (six members).
DSP56800E Introduced in 2000 as improved version
of DSP568500 family
Lower Power Consumption
Enhanced peripherals
Higher MIPS
Many Peripherals:
SCI to communicate with devices using RS232
SPI to communicate with CODEC or EEPROM (needs a
clock).
DMA to communicate between memory and external device
70
Telefona
Lado cliente en telefonia sobre IP
Internet Audio
Procesamiento de voz
71
Modos de direccionamiento
Inmediato
LD #31, A ; carga acumulador A con 31
Absoluto
LD *(X), A; carga A con el nmero almacenadoen
la direccin X
Directo
Parte de la direccin es dada opcode(cdigo de
operacin), la otra por un registro interno.
72
Modos de direccionamiento
Direccionamiento indirecto
Usado para acceder a una secuencia de
nmeros almacenados en una zona
consecutiva de la memoria de datos.
X=8000H
STM
LD
ADD
ADD
*R1+,A ; 6 + A ->A
STL
31
-14
6
out
73
Buffer circular
Es un buffer normal exceptuando
cuando alcanza el final del lazo,
entonces vueve al punto de partida.
Definir el punto de partida
Define el tamao del buffer
74
h[n]
{0.5,2,-3}
y[ n] x[ n] h[n]
y[ n]
x[k ]h[n k ]
75
76
Convolucin
Shiftin
g
0
1
2
3
4
5
0 0 0.2
-3 2 0.5
-3 2
-3
0.2
5
0.2
5
0.5
2
0.5
-3
0.5
-3
2
-3
0.2
5
0.5
2 0.5
77
Buffer circular
A cada valor de y[n0] el puntero para los
coeficientes x[-k] debe apuntar a la ltima
entrada (ej: x{-2} = -3)
X[-2]
-3
X[-1]
X[0]
2
0.5
buffer Circular = 3
Al trmino de cada
muestra
computada vuelve
atrs a x[-2]
Tcnicas Digitales III
h[0]
h[1]
h[2]
h[3]
0
0
0.25
0.25
0.25
0.25
0
0
78
Cdigo ensamblador
.text
_main:
STM #3, BK
79
Cdigo ensamblador
loop
RPTZ A, #2 ; Borra Acumulador A y repite la
sig. instruccion 3 veces
MAC *AR5+0%, *AR2+ ; Multiplica input*coeff + A ->A
Incrementa puntero AR2 en uno
e incrementa AR5 por AR0
usando el buffer circular
STL A, *AR3+ ; Almacena resultado en memoria
MAR *AR2MAR *AR2- ; Decrementa 2 veces AR2
BANZ loop, *AR4- ; Para que el lazo compute cada
salida, saltando seis veces
RET
Tcnicas Digitales III
80