Вы находитесь на странице: 1из 80

Procesamiento digital

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

Tcnicas Digitales III 2


Qu es el procesamiento Digital de la Seal?

Entrada digital Procesamiento digital Salida digital

Operaciones, Transformaciones sobre seales digitales


(usando una computadora o algn otro dispositivo
Especializado en manejo de seales digitales)

Y las seales...
Seal Procesamiento
Analgica A/D Digital D/A

Tcnicas Digitales III 3


Ejemplos

Porqu
Digital??

Tcnicas Digitales III 4


Aplicacin Tpica

Paso 1: Un sensor analgico capta la seal (ej: microfono)

Paso 2: Conversin A/D

Paso 3: DSP procesa la informacin digital (ej., compresin, supresin de ruido)

Paso 4: D/A para recuperar la seal analgica original

Tcnicas Digitales III 5


Qu es procesamiento digital en tiempo real?

Entrada Digital Procesamiento Salida Digital


en tiempo real

Requiere un tratamiento, o transformacin de la seal


Lo ms rapidamente posible para mantener una cierta
Sincronizacin con los eventos de entrada.

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 6


Procesamiento de seal en tiempo real:

Limitaciones:
Las aplicacions DSP quedan limitadas a casos
donde la frecuencia de muestreo es
suficientemente menor a la velocidad de ejecucin
de instrucciones.

Desafo:
Cdigo;
Compacto para ser ejecutado en tiempo real.
Buena cantidad de instrucciones entre muestras.

Tcnicas Digitales III 7


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.
Y Procesador digital de seal (DSP) es
Un micro especialmente diseado para realizar
operaciones de procesamiento digital rpidamente
(ej., FFT, productos, multiplicacin y acumulacin)

Tcnicas Digitales III 8


Porqu pasar al dominio digital?
Programabilidad
Un hardware puede realizar varias tareas.
Fcil de mejorar o cambiar.
Repetibilidad
Misma performance de una unidad a otra.
No cambia su performance por cambios de
temperatura o envejecimiento.

Ofrece alta performance : por ejemplo CD-


players vs tocadiscos.

Tcnicas Digitales III 9


Aplicaciones del procesamiento Digital
Procesamiento de voz
Compresin
Reconocimiento
Verificacin, adecuacin de voz
Sintesis de voz
Amplificacin, Cancelacin de eco
Procesamiento de audio
Compresion
Reproduccin 3-D

Tcnicas Digitales III 10


Procesamiento de Imgenes
Procesamiento
Compresin
Reconocimiento de Patrones
Cancelacin de fantasmas
(Ghost cancellation)
Reduccin de ruido
Seguimiento de objetos
Fusin de imgenes

Tcnicas Digitales III 11


Aplicacion DSP a las comunicaciones
MODEM
Correlacion (filtros de igualcin)
Canceladores de eco
ecualizadores
Telefona Celular
Compresin de voz
Software de Radio

Tcnicas Digitales III 12


DSP : Pager
Controlado por la unidad de manejo de
la potencia (Power Management Unit)

RF
RF Microcontroller
Microcontroller Pager
Pager
Receiver
Receiver Chip
Chip Peripherals
Peripherals

Pager
Pager DSP
DSP
ADC Protocol
Protocol DAC
ADC DAC
Chip
Chip
Decoder
Decoder
-Decodificacin del
FLEX is a popular pager protocol espectro
created by Motorola
- Compresin
http://www.motorola.com/FLEX
-Procesamiento de voz

Tcnicas Digitales III 13


DSP : Pager

FLEX is a Pager protocol using


TDMA concept

Tcnicas Digitales III 14


DSP : Telfonos Celulares
Controlled by Power Management Unit

RF
RF Microprocessor
Microprocessor Cell
Cell
Receiver
Receiver Chip
Chip Peripherals
Peripherals

RF
RF Voice
Voice
DSP
DSP
Codec
Codec Codec
Codec
Chip
Chip

-Codificador de voz
-Reconocimiento de voz
- Ecualizadores
- Cancelacin de ruido de antena
-Tcnicas de mejoramiento de imgen

Tcnicas Digitales III 15


DSP : Telfono celular

Tcnicas Digitales III 16


DSP: Voz sobre IP

Micro
Micro DSP
DSP
processor
processor Chip
Chip

Memory
Memory Voice
Voice
(Card
(Cardoror Codec
Codec Audio Coders
Chip)
Chip) -MP3
Peripherals -AC3
-AAC

Tcnicas Digitales III 17


DSP: Voz sobre IP

Tcnicas Digitales III 18


Mercado DSP Por Compaa
Y en el 2002
participacin en el mercado en el 2001

20%
24%

Texas Instruments
40% 43%
Motorola 9%
Agere
8% Analog Devices
Other
14%
16%
12% 14%

Tcnicas Digitales III 19


Mercado DSP Por aplicacin

Ao 2003

4% 3%
6%

8% WIRELESS
CONSUMER
MULTIPURPOSE
11% WIRELINE
COMPUTER
68% AUTOMOTIVE

Tcnicas Digitales III 20


Mercado DSP Aumento de uso en
productos portables

Personnel Digital Assistant (PDA)


Creci 14 M unid./ao en el 2002
Creci el 32% de 1999 al 2002
PCs portables
26 M unid./ao en 2002
Creci 14% de 1999 al 2002
Celular
Trep a 500 M unid./ao en el 2002

Tcnicas Digitales III 21


En aplicaciones portables es necesario
procesadores de alta performance

Ultra Low power


Alta performance
P Costo efectivo
e P
r o
f w
e Ao: 2003
o
r r
m
a
n
c Baja potencia
e Mediana Performance
Costo efectivo

Ao: 1999 Tiempo

Tcnicas Digitales III 22


Que tienen de especial las aplicaciones de
procesamiento digital?

Gran cantidad de muestras en la


entradas del procesor.
Operaciones Repetitivas:
La misma operacin ser aplicada a
diferentes set de muestras
Procesamiento paralelo
Operaciones con Vectores y Matrices
Operaciones en tiempo real

Tcnicas Digitales III 23


Ejemplo: Filtrado digital

Los dos filtros digitales mas comunes son:


Respuesta finita al impulso (FIR)
Respuesta Infinita al Impulso (IIR)
La frmula bsica de FIR es: y[ n] h[k ].x[n k ]
donde h[k] es un array de constantes
y[n]=0;
For (n=0; n<N;n++)
{ Solo multiplicar
En lenguaje C For (k = 0;k<N;k++)
Y acumular
//inner loop
(MAC)
y[n] = y[n] + h[k]*x[n-k];}

Tcnicas Digitales III 24


MAC usando PPG (procesador de propsito general)
R0 11
12
3 11 R2
X 24 44
R1 1 9
2 Clr A ;Clear Accumulator A
Clr B ; Clear Accumulator B
3 Loop Mov *R0, Y0 ; Move data from memory location 1 to register Y0
Mov *R1,X0 ; Move data from memory location 2 to register 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 N ;Dec N (initially equals to 3)
Tst N ;Test for the value
Jnz Loop ;Different than zero loop again
Mov B,*R2 ;Move result to memory

Tcnicas Digitales III 25


MAC usando un DSP
La arquitectura Harvard permite
multiples lecturas a memoria
11
12
3 11 R2
X 24 44

1 9
2
3 Clr A ;Clear Accumulator A
Rep N ; Rep N times the next instruction
MAC *(R0)+, *(R1)+, A ; Fetch the two memory locations pointed by R0 and R1,
multiply them together and add the result to A, the final result is
stored back in A
Mov A, *R2 ; Move result to memory

Tcnicas Digitales III 26


Desventajas de un PPG

Mas instrucciones/tareas
Memoria comn para datos y programa
Limitado ancho de banda de bus/memoria

Solucin: Arquitectura DSP

Tcnicas Digitales III 27


PPG Slo el camino de los datos
Memory Data Bus

Memory Register 1 Register 2

ALU

Misma memoria para datos y programa

Tcnicas Digitales III 28


DSPs Slo camino de los datos
Program Memory Data Bus

Data Memory Data Bus

Program Data Multiplexer Multiplexer


Memory Memory

Un chip DSP es un
microprocesor
especialmente diseado
para aplicaciones DSP. ALU
Arquitectura optimizada
para proveer
procesamiento veloz de
seales discretas en el
tiempo, ej: Multiplicar y Accumulator
Acumular (MAC) en un
solo ciclo

Tcnicas Digitales III 29


Estructura de Memoria

Tcnicas Digitales III 30


DSP vs PPG

RISC vs. CISC


RISC Emphasis on software Single-clock, large code size Spends more transistors
reduced instruction on memory registers
only
CISC Emphasis on hardware Includes multi-clock Small code Transistors used for storing
complex instructions sizes complex instructions

Arquitectura de memoria
Arquitectura de memoria Harvard vs. Von Neuman
Transferencias de datos concurrentes
diferente manejo de la cache
Memoria on-chip
MAC
Multiply ACcumulate instruction
Instrucciones de multiplicar y acumular
Tcnicas Digitales III 31
DSP vs PPG
Multiple unidades en paralelo
Multiplicar y acumular (posiblemente varias unidades)
Clculos de direcciones en paralelo para procesar
Registo circular
Accesos a memoria
ALU especial para calculo de direcciones
Bit reversed addressing
Direccionamiento circular
Loops automticos (lazo)
Software looping: escrito en cdigo assembly para mejorar los saltos
Hardware looping: hardware dedicado usando lazos con registros contadores
Hardware para manejo de cmputo aritmtico(en PPG es
necesario multiples ciclos)
Desplazamientos (Shifters)
Guard bits Previenen
Saturation Overflow!

Tcnicas Digitales III 32


DSP versus PPG
El ncleo del DSP incluye:
Buses de direcciones
Buses de datos
Unidad de aritmtico lgica (Data arithmetic logic unit,ALU)
Unidad de generacin de direcciones
(Address generation unit,AGU)
Program controller Perifricos integrados Memoria de
Bit-manipulation unit
Enhanced debugging module
datos

Perifricos incluidos en el chip


Timer
serial port DM
Links de comunicacin
DSP a DSP Core
Ethernet
ATM
PM
host ports
input/output pins
Adaptacin para FFT
bit reverse addressing
Instrucciones especiales
Soporta movimientos paralelos (Parallel move support) Memoria de
Instrucciones de lazo programa
Instrucciones especiales de Hardware (ej: FIR)
Tcnicas Digitales III 33
Mejora de la arquitectura DSP

Mayor paralelismo
Incrementando el nmero de operaciones que se
puede realizar en cada instruccin
Adicionando ms unidades de ejecucin(ej: Multiplicadores)
Incrementando el nmero de instrucciones que
pueden ser emitidas y ejecutadas en cada ciclo.
Hardware del ncleo altamente especializado.
Co-procesadores

Tcnicas Digitales III 34


Por qu considerar un DSP como alternativa
de diseo?
Los sistemas Wireless requieren una muy alta
performance y elevado ancho de banda.
La performance de un
Performance
DSP podra no ser
3G uficiente para
~100,000MIPS futuras
384-2000 Kbps aplicaciones
2.5G
~10,000MIPS
64-384 Kbps

2G ~100MIPS
8-13 Kbps
Bit Rate

Tcnicas Digitales III 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
Cules son las alternativas?

Alto rendimiento de un PPG con mejoras en DSP.


Eliminara la necesidad de un DSP y un PPG para muchos
productos, por lo tanto reduccin de costos.
Ejemplo: Pentium 4
Single Instruction Multiple Data (SIMD), las instrucciones permiten
identicas operaciones de multiples datos en paralelo.
144 nuevas instrucciones especiales que proveen capacidades
avanzadas para aplicaciones como grficos 3D , codificacin y
decodificacin de video, y reconocimiento de voz.
Varios tipos de datos (flotante/entero)
Aplicacin de circuitos integrados especficos (ASIC)
Field Programmable Gate Array (FPGA)

Tcnicas Digitales III 37


ASIC - Ventajas

Velocidad
Consumo de potencia bajo
costo/performance
Flexibilidad para diseo

Tcnicas Digitales III 38


ASIC- Desventajas

Alto costo de desarrollo


Lentos ciclos de desarrolo
Inflexible
Otra solucin

FPGA

Tcnicas Digitales III 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

Tcnicas Digitales III 41


FPGA - Desventajas

Largo ciclo de desarrollo


Caro comparado con un DSP
Mayor consumo de potencia comparado
con un DSP

Tcnicas Digitales III 42


Por qu se usan mas los DSP?

Algunas aplicaciones no son adecuadas


para ser implementadas en un FPGA
Paralelismo es limitado
Velocidad no es siempre el factor ms
importante a considerar
FPGA es aun demasiado caro para
productos finales(ej: telfonos celulares)

Tcnicas Digitales III 43


Tipos de DSP
Low End Fixed Point
TMS320C2XX, ADSP21XX, DSP56XXX
High End Fixed Point
TMS320C55XX, DSP16XXX,
ADSP215XX, DSP56800
MSC8101 - StarPro2000 (using SC140 from
Starcore)
Floating Point
TMS320C3X, C67XX, ADSP210XX, DSP96000,
DSP32XX

Tcnicas Digitales III 44


Punto fijo Vs punto flotante
Fixed Point/Floating Point
Procesadores de punto fijo son :
barato
pequeo
Menos consumo
Difcil de programar
Bsqueda de errores: truncado, rebosamiento, redondeo
Rango dinmico limitado
Usado en un 95% de productos de consumo
Procesadores de punto flotante son:
Tiene buena precisin
Son mucho ms fciles de programar
Pueden acceder a memorias ms grandes
Es ms complejo crear un cdigo eficiente en C en uno de
punto fijo que en uno de punto flotante

Tcnicas Digitales III 45


Punto fijo Vs punto flotante
Punto Flotante Punto Fijo

Aplicaciones Aplicaciones
Modems Productos portables

Digital Subscriber Line (DSL) 2G, 2.5G y 3G tel. Celulares

Estaciones Wireless Digital Audio Players

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

Tcnicas Digitales III 46


rbol de la familia Motorola

Motorola DSP Family Tree [2003]


Floating Point DSP
Chips Discontinued!!
TI Tree

56800 56800E 56300 MSC8100


DSP56F801 DSP56852 DSP56301 MSC8101
DSP56F802 DSP56853 DSP56303 MSC8103
DSP56F803 DSP56854 XC56309
DSP56F805 DSP56855 XC56L307
DSP56F807 DSP56857 DSP56311
DSP56F826 DSP56858 DSP56321
DSP56F827 MC56F8322 DSPB56362
MC56F8323 DSPB56364
MC56F8345 DSPB56366
MC56F8346 DSPA56367
MC56F8356 DSPA56371
MC56F8357

Tcnicas Digitales III 47


56800 DSP Family, 16-bit Fixed Point
Specifications Features Applications
Processing capability of up to 35 million Single-instruction cycle 16-bit x 16-bit Motion Control
instructions per second (MIPS) parallel multiply-accumulator
Smart appliances
Running at 70 MHz Two 36-bit accumulators including
Environmental controls
extension bits
Requires only 2.73.6 V of power
Instrumentation
Single-instruction 16-bit barrel shifter
Industrial
Parallel instruction set with unique DSP
addressing modes Uninterruptable power
supplies
Low-power wait and stop modes
Noise
Operating frequency down to DC
cancellation/suppression
16-bit Timer Module
Temperature control
Synchronous serial interface module
HVAC
(SSI)
Inverters and AC-to-DC
Serial peripheral interface (SPI)
conversion
Programmable general-purpose I/O
Lighting
Automation
Transportation
Instrumentation

Tcnicas Digitales III 48


56800E DSP Family, 16-bit Fixed Point
Specifications Features Applications
Processing capability of up to 120 40K x 16-bit Program SRAM Telephony
million instructions per second (MIPS)
24K x 16-bit Data SRAM Telco interface
Running at 120 MHz
1K x 16-bit Boot ROM Codecs
Requires only 2.73.6 V of power
Access up to 2M words of program LCD and Keypad support
memory or 8M data memory
Client-side IP phone
Six (6) independent channels of
Internet Audio
DMA
Internet Audio decoding
Two (2) Enhanced Synchronous
Includes Also the Serial Interfaces (ESSI) Internet Audio stand-
MC56F300 Series Two (2) Serial Communication
alone player

which contains Interfaces (SCI) Voice Processing


Serial Port Interface (SPI)
on chip Flash
8-bit Parallel Host Interface
memory
General Purpose 16-bit Quad Timer
JTAG/Enhanced On-Chip Emulation
(OnCE) for unobtrusive, real-time
debugging
Computer Operating Properly
(COP)/Watchdog Timer
Time-of-Day (TOD)
Up to 47 GPIO

Tcnicas Digitales III 49


56300 DSP Family, 24-bit Fixed Point
Specifications Features Applications
Processing capability of up to 480 Object code compatible with the Multimedia
million instructions per second (MIPS) DSP56000 core with highly parallel
Telecommunciation
instruction set
Running at 240 MHz
Video conferencing
Data Arithmetic Logic Unit (Data
Requires only 1.63.3 V of power
ALU) with fully pipelined 24 x 24-bit Base transceiver stations
parallel Multiplier-Accumulator
Packet telephony
(MAC)
Direct Memory Access (DMA) with
six DMA channels supporting
internal and external accesses
Digital Phase Lock Loop (DPLL)
allows change of low-power Divide
Factor (DF) without loss of lock
Hardware debugging support
including On-Chip Emulation
(OnCETM) module, Joint Test Action
Group (JTAG) Test Access Port
(TAP)
Two Enhanced Synchronous Serial
Interfaces (ESSI0 and ESSI1
Serial Communications Interface
(SCI)
Triple timer module
Up to 34 GPIO

Tcnicas Digitales III 50


MSC8100 Family, 16-bit Fixed Point
Specifications Features Applications
Processing capability of up to 4400 Four 250/275 MHz StarCore SC140 2.5G Wireless System
million instructions per second (MIPS) DSP extended cores
3G Wireless System
Running at 300 MHz 16 ALUs on a chip deliver up to
IP Telephony
4000/4400 MMACS
Requires only 1.63.3 V of power
Compression
Performance equivalent to a 1.0/1.1
GHz SC140 Core G.7xx speech coders
Industry's largest on-chip SRAM
memory

Optimized for 1436 KB of internal memory


Efficient multi-level memory
networking hierarchy
Dual external industry-standard 60x-
infrastructure compatible buses
9.6 Gbps peak bus throughput
applications Four independent Time-Division
Multiplex (TDM) Interfaces
400 Mbps peak serial data
throughput
Accesses various external
memories, including SDRAMs,
SRAMs, SSRAMs, EPROMs, and
Flash

Tcnicas Digitales III 51


rbol de la familia TI
Ref: TI DSP Selection Guide TI DSP Family Tree [2003]
http://focus.ti.com/lit/ml/ssdv004m
/ssdv004m.pdf
Motorola Tree

C2000 C3000 C5000 C6000

C24x C28x C3x C54x C54x + RISC C55x C55x + RISC C62x C64x C67x
C5416
F2407, F2406 C6211 C6416 C6713
F2810 C33 C5470 C5510 OMAP5910
C5410
F2403, F2402 F2812 C32 C5509 C6205 C6415 C6712
C31 C5409 C5471
F2401, C2406 C5502 C6414
C30 C6204 C6711
C5407 C5501
C2404, C2402 C6203 C6412 C6701
C5404
C2401, F243 C6202 C6411
C5402
F241, C242 C6201 DM640
C5401
F240 DM641
C549
DM642
C54CST, C54V90

Tcnicas Digitales III 52


TMS320C24x DSP Generation, 16-bit
Fixed Point - Control Optimized DSP
Specifications Features Applications
Up to 40-MIPS operation 375-ns (minimum conversion Appliances
Three power-down modes time) analog-to-digital (A/D) Compressors
3.3-V and 5-V designs converter Industrial automation
Dual 10-bit A/D converters Uninterruptible power
(UPS) systems
Up to four 16-bit general-purpose
Automotive braking
timers
steering systems
Watchdog timer module
Electric metering
Up to 16 PWM channels
Printers and copiers
Up to 41 GPIO pins
Hand-held power tools
Five external interrupts
Electronic cooling
Up to 32K words on-chip Intelligent sensors
sectored Flash Tunable lasers
I/O Modules Consumer goods
Controller Area Network Fuel pumps
(CAN) interface module
Industrial frequency
Serial communications Remote monitoring
inter-face(SCI)
ID tag readers
Serial peripheral interface
(SPI)
Boot ROM (LF240x and
LF240xA devices)

Tcnicas Digitales III 53


TMS320C28x DSP Generation, 16-bit
Fixed Point Control Optimized DSP
Specifications Features Applications
32-bit fixed-point C28x DSP core Ultra-fast 2040 ns service time Lighting
150-MIPS operation to any interrupts Optical networking
(ONET)
1.8-volt core and 3.3-volt 32-/64-bit saturation, single-cycle
peripherals Power supplies
read-modify-write instructions, and
64/32 and 32/32 modulus division Industrial automation
High-performance ADC 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

Tcnicas Digitales III 54


TMS320C3x DSP Generation, 32 bit
Floating Point First Generation
Specifications Features Applications
Performance up to 150 MFLOPS Parallel multiply and Digital audio
arithmetic/logical operations on
32 bit Floating point Laser printers, copiers,
integer or floating-point numbers in a
scanners
Highly-efficient C language engine single cycle
Bar-code scanners
Large address space: 16 Mwords Eight extended-precision registers
Videoconferencing
Fast memory management with on-
chip DMA Industrial automation and
robotics
Voice/facsimile
Servo and motor control

Tcnicas Digitales III 55


TMS320C54x DSP Generation, 16-bit
Fixed Point Power Efficient DSP
Specifications Features Applications
16-bit fixed-point DSPs Integrated Viterbi accelerator Digital cellular communications
Power dissipation as low as 60 mW 40-bit adder and two 40-bit Personal communications
for 100 MIPS accumulators to support parallel systems (PCS)
instructions
Single- and multi-core products Pagers
delivering 30532 MIPS performance 40-bit ALU with a dual 16-bit
configuration capability for dual one- Personal digital assistants
1.2-, 1.8-, 2.5-, 3.3- and 5-V versions
cycle operations 17 17 multiplier Digital cordless communications
available
allowing 16-bit signed or unsigned
6-channel DMA controller per core Multiplication Wireless data communications

Four internal buses and dual Networking


address generators enable multiple Computer telephony
program and data fetches and
reduce memory bottleneck Voice over packet

Single-cycle normalization and Portable Internet audio


exponential encoding Modems
Eight auxiliary registers and a
software stack enable advanced
fixed-point DSP C compiler
Power-down modes for battery
powered applications

Tcnicas Digitales III 56


TMS320C54x DSP + RISC,
16-bit Fixed Point System Level DSP
Specifications Features Applications
Dual CPU processor integrating a TMS320C54x DSP core subsystem
TMS320C54x DSP core and an wireless data
100-MIPS operation
ARM7TDMI RISC Smart pen pads
72 kwords RAM
1.8-volt core and 3.3-volt Text-to-speech
peripherals Two multi-channel buffered serial ports
(McBSPs) Voice recognition
Direct memory access (DMA) controller Vommand control
Phase-locked loop Access point controller
External memory interface Networked security
ARM port interface (API) Industrial control and emergency
ARM7TDMI RISC core subsystem 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

Tcnicas Digitales III 57


TMS320C55x DSP Generation, 16-bit
Fixed Point Most Power Efficient DSP
Specifications Features Applications
C55x DSP core delivers 300 MHz Advanced automatic power Feature-rich, miniaturized per-
for up to 600-MIPS performance management
sonal and portable products
1.6-volt core and 3.3-volt Configurable idle domains to
peripherals extend your battery life 2G, 2.5G and 3G cell phones

Shortened debug for faster time-to- and basestations


market Digital audio players
144-MHz/200-MHz clock rate Digital still cameras
256-KB RAM, 64-KB ROM Electronic books
Three McBSPs, I 2 C, watchdog Voice recognition
timer, general-purpose timers GPS receivers
USB 2.0 full-speed (12 Mbps) Fingerprint/Pattern recognition
10-bit ADC Wireless modems
real-time clock (RTC) Headsets
Biometrics

Tcnicas Digitales III 58


TMS320C55x DSP + RISC,
16-bit Fixed Point OMAP Processor
Specifications Features Applications
Dual CPU processor integrating a 150-MHz TI-enhanced ARM925
TMS320C55x DSP core and an Internet appliances
16 KB instruction cache and 8 KB data
ARM925TDMI RISC @150 MHz cache Applications processing
1.8-volt core and 1.8-volt Data and instruction MMUs Enhanced gaming
peripherals
32-bit and 16-bit instruction sets Webpad
150-MHz TMS320C55x DSP Point-of-sale
12 KW (24 KB) instruction cache Medical devices
80 KW (160 KB) SRAM Industry-specific PDAs
16 KW (32 KB) ROM Telematics
Two 16-bit memory interfaces Digital media processing
for SDRAM and flash Military and government cellular
Nine-channel system DMA
controller
LCD controller
USB 1.1 host and client
MMC/SD card interface
Seven serial ports plus three
UARTs, Nine timers, Keyboard interface
Less than 250 mW at 1.6 V

Tcnicas Digitales III 59


TMS320C62x DSP Generation, 16-bit
Fixed Point High Performance DSP
Specifications Features Applications
16-bit fixed-point DSPs C6000 DSP Platform VelociTI Pooled modems
advanced architecture
Up to 2400 MIPS Digital Subscriber Line (xDSL)
Up to eight 32-bit instructions
Running at 300 Mhz Wireless basestations
executed each cycle
Eight independent, multi-purpose Central office switches
functional units thirty-two 32-bit Private Branch Exchange (PBX)
registers
Digital imaging
Industrys most advanced C
compiler and Assembly Optimizer Call processing
maximize efficiency and performance 3D graphics
Speech recognition
Voice over packet

Tcnicas Digitales III 60


TMS320C67x DSP Generation, 32-bit
Floating Point High Performance DSP
Specifications Features Applications
32-bit loating point DSPs C6000 DSP Platform VelociTI Pooled modems
advanced architecture
Up to 1350 MFLOPS Digital Subscriber Line (xDSL)
Up to eight 32-bit instructions
Running at 225 Mhz Wireless basestations
executed each cycle
Eight independent, multi-purpose Central office switches
functional units thirty-two 32-bit Private Branch Exchange (PBX)
registers
Digital imaging
Industrys most advanced C
compiler and Assembly Optimizer Call processing
maximize efficiency and performance 3D graphics
IEEE floating-point format Speech recognition
Up to 1350 MFLOPS at 225 Voice over packet
Two new multi-channel serial ports
(McASP) (C6713 DSP) can support
up to stereo channels of I2S (Inter IC
Sound) and compatible with S/PDIF
transmit protocol. Note I2S is a
protocol for transmitting 2 channels
of digital audio over a single serial
connection

Tcnicas Digitales III 61


TMS320C64x DSP Generation, 16-bit
Fixed Point High Performance DSP
Specifications Features Applications
16-bit fixed point processor C6000 DSP Platform VelociTI DSL and pooled modems
advanced architecture
TMS320C64x DSP high per- Basestation transceivers
Up to eight 32-bit instructions
formance core provides scalable Wireless LAN
executed each cycle
performance of up to 1.1 GHz Enterprise PBX
Eight independent, multi-purpose
The industrys fastest DSPs with functional units thirty-two 32-bit Multimedia gateway
registers
up to 600 MHz (4800 MIPS) Broadband video transcoders
performance Industrys most advanced C
compiler and Assembly Optimizer Streaming video servers and
C64x DSPs are software compatible clients
maximize efficiency and performance
with TIs C62x DSPs
Highspeed raster image
processing (RIP)

Tcnicas Digitales III 62


TI Families Summary
C24x and C28x families: low performance 16-bit fixed point
used for control purpose
C54x family: mid-range performance 16-bit fixed point
C55x family: mid-range performance 16-bit fixed point with
reduced power consumption and increased parallelism
C5000 + RISC microprocessor: used for embedded applications
such as cell phone and PDAs
C62x: high-range performance 16-bit fixed point supporting
VLIW architecture
C64x: very high performance 16-bit fixed point with extension
capabilities of C62x with higher clock frequency (>2500 MIPS)
C3x: first generation low performance 32-bit floating point
C67xx family: very high performance 32-bit floating point

Tcnicas Digitales III 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

Tcnicas Digitales III 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.

Tcnicas Digitales III 65


Por qu usar assembly?
Muchos compiladores de C producen cdigo
que no utiliza todas las capacidades del DSP
Bsqueda de datos en paralelo para ejecucin
Ejecucin en paralelo
El cdigo en C puede ser 3 a 30 veces ms
lento que el mejor cdigo en ensamblador
posible. Especialmente en la parte de
procesamiento de seal del cdigo.
El problema es an mayor para DSPs de
punto fijo.

Tcnicas Digitales III 66


Pero si no se quiere usar assembly...
Si otro programa en assemby por ti
usa librerias
Reescribe el cdigo en C para producir mejor cdigo
assembly
Probar el cdigo para saber cul parte del software
requiere mayor tiempo de CPU. Limita el cdigo
ensamblador a subrutinas:
Que el programa gaste la mayor cantidad de tiempo en ellas
De esta forma nos beneficiamos de las funciones especiales
del DSP como MACs y ejecucin paralela.

Tcnicas Digitales III 67


Cmo escribo mejor cdigo C?
Usar lazos simples
Evitar llamados a subrutinas en lazos
Usar subrutinas inline
El compilador inserta la funcin directamente en donde se encuentra el
llamado (conceptualmente igual a lo que sucede al utilizar macros)
Evitar el llamado a subrutinas salvando demasiadas variables voltiles.
Incrementar el tamao del cdigo
Evitar divisiones o modularizacionmes de las operaciones
Usar (&) y shift cuando sea posible
Usar la regla de 5%/80%
Programando en ensamblador el 5% de las lineas de cdigo de un
proyecto deben ocupar el 80% de la carga de la CPU.
Trata de cambiar el cdigo para que encajen en routinas en assembly
existentes.

Tcnicas Digitales III 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)

Tcnicas Digitales III 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

Tcnicas Digitales III 70


Aplicaciones del DSP56858E
Telefona
Lado cliente en telefonia sobre IP
Internet Audio
Procesamiento de voz

Tcnicas Digitales III 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.

Tcnicas Digitales III 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
31
STM #X, R1 ; carga R1 con la direccin X
LD *R1+, A ; carga acumulador A con 31 -14
ADD *R1+, A ; suma -14 to A ->A 6
ADD *R1+,A ; 6 + A ->A
out
STL A, *R1 ; almacena la salida

Tcnicas Digitales III 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

Tcnicas Digitales III 74


Aplicacin del Buffer Circular

x[n] h[n]
{0.5,2,-3}

y[ n] x[ n] h[n]

y[ n] x[k ]h[n k ]
k
Tcnicas Digitales III 75
Pseudo cdigo de una convolucin

Refleje: x(k) en k = 0 para obtener x[-k]


Corrimiento: Corra x[-k] en n0 muestras a la
derecha para obtener x[n0-k]
Multiplicacin: Multiplique h[k] por
x[n0-k] para obtener los productos h[k]*x[n0-k]
para todo k
Suma: Sume todos los productos para
obtener la salida y[n0] al tiempo n0

Tcnicas Digitales III 76


Convolucin
Shiftin 0 0 0.2 0.2 0.2 0.2 0 0
g
0 -3 2 0.5 5 5 5
1 -3 2 0.5
2 -3 2 0.5
3 -3 2 0.5
4 -3 2 0.5
5 -3 2 0.5

Tcnicas Digitales III 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)
0
0
X[-2] -3
h[0] 0.25
X[-1] 2 h[1] 0.25
X[0] 0.5 Al trmino de cada h[2] 0.25
buffer Circular = 3 muestra h[3] 0.25
computada vuelve 0
atrs a x[-2] 0
Tcnicas Digitales III 78
Cdigo ensamblador
.text ; Pone el cdigo en la seccin
text localizada en memoria
_main: ; Comienzo de la subr. Ppal.

STM #Inputs,AR5 ; Apunta al array de Entradas


STM #Coeff, AR2 ; Apunta al array Coeff

STM #Output, AR3 ; Apunta a la salida (Output)

STM #3, BK ; Define el buffer circular


STM #5, AR4 ; Define variable contadora

STM #1, AR0 ; Incremento para el buffer


circular

Tcnicas Digitales III 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 *AR2-
MAR *AR2- ; Decrementa 2 veces AR2
BANZ loop, *AR4- ; Para que el lazo compute cada
salida, saltando seis veces
RET

Tcnicas Digitales III 80

Вам также может понравиться