Sei sulla pagina 1di 40

SEMINARIO DSP 2000

Victronics Ltda
Respaldo y Seguridad en Tecnologa

AGENDA
10:00 - 11:30 11:30 - 11:45 11:45 - 13:00 13:00 - 14:30 14:30 - 15:00 15:00 - 15:30 15:30 - 15:45 15:45 - 16:15 16:15 - 16:45 16:45 - 17:15 17:15 - 17:30 Introduccin Coffe Break Familia TMS320C2000 Almuerzo Code Composer Studio Familia TMS320C5000 Coffe break Familia TMS320C6000 Microcontroladores MSP430 Plan Universitario Preguntas
2

INTRODUCCION
Muchos conceptos relacionados con el procesamiento Digital de Seales haban sido elaborados en el siglo XIX Jean Batista Joseph, Barn de Fourier, fue gobernador del bajo Egipto durante el perodo de Napolen. Cuando volvi a Francia, public un estudio sobre flujo de calor (1882), donde desarroll la Transformada de Fourier. Pierre Simon, Marqus de Laplace, astrnomo terico. Naci 20 aos despus que Fourier. Desarroll las Transformadas de Laplace que luego evolucionaron a las Transformadas Z, muy utilizadas en filtros digitales En los 40s se desarroll la Transformada Discreta de Fourier (DFT). En 1965 se desarroll la Transformada Rpida de Fourier (FFT)
3

INTRODUCCION - Continuacin
30s: Arquitectura Harvard: Memoria de Programa y datos separadas con buses dedicados 1944: Primera computadora con arquitectura Harvard, la Harvard Mark I 1946: Primer computador electrnico con arquitectura similar a la Harvard I: La ENIAC. John Von Newmann, consultor de la ENIAC, elabor la arquitectura Von Newmann: Memoria de Programa/datos en una misma zona con un nico bus (Motorola 68000, Intel i86), Set de instrucciones CISC (Complex Instrucction Set Computers) Era necesario arquitecturas que permitieran aplicaciones en tiempo real y que realicen operaciones de sumas y multiplicaciones 70s: Arquitecturas con niveles de Pipeling con tecnologa ECL (Emitter Coupled Logic)
4

INTRODUCCION - Continuacin
1971: Lincoln FDP. DSP de los laboratorios Lincoln, con tiempo de ejecucin de 600nS, arquitectura Von Newmann, compuesto por 10.000 Cis Lincoln LSP/2: Segunda generacin con arquitectura similar a la Harvard con tiempo de ejecucin de 40nS. 70s. Las tecnologas mejoraron. La ms utilizada era la N-MOS que trabaja a 5V, geometras de 3 micrones, con densidades de hasta 100.000 transistores por chip. 80s: Aparecen 4 DSPs disponibles comercialmente S2811 de American Microsystems Inc (AMI) 2920 de INTEL uPD7720 de NEC TMS32010 de Texas Instruments
5

QUE ES UN DSP?
Un Procesador Digital de Seales o DSP, es un procesador de alto performance, con un altsimo nivel de integracin, orientado a proceso de informacin digital para aplicaciones en tiempo real. Tiempo real quiere decir, que el procesador es capaz de realizar complejos procesos de informacin digital y responder a un sistema real (mecnico, elctrico, hidralico, etc) sin que este se percate Para lograr esto, las velocidad de proceso de informacin va desde 20MIPS a 3GFLOPS
6

MERCADO DE DSPs

LUCENT 29% TI 45%

ADI 11% MOTOROLA 8%

OTROS 7%

MERCADO DE MSPs
MOTOROLA 9% PHILLIPS 10% NSC 8% SGS 11%

SIEMMENS 7% TI 13% ADI 6%

TOSHIBA 6% SANYO 5% NEC 4%

OTROS 21%

PROYECCIONES DE MERCADO DE DSP/MSPs


25

$B

20 15 10 5 0 1996 1997 1998 1999 2000 2001 2002 2007


9

MSP DSP

Porqu Digitalizar?
Parmetros
Tolerancia componentes
Sensibilidad componentes Inmunidad al ruido Adaptabilidad Rediseo Placa Funciones avanzadas Multi-Funciones Tamao, Potencia Confiabilifad

Procesadores Procesadores Analgicos de Seales Digitales de Seales


1-10%
Temperatura,Tiempo 60dB tpico Complicada, cara Placa nueva Sensitiva al ruido Mucho Hardware Multiple Hardware Mucho mayor Baja-mediana .003% Asegurada por rangos 90+dB Fcil, barata Nuevo cdigo Digitalmente inmune Software adicional Ms MIPS y Software Mucho menor Higher
10

Porqu usar DSPs?


APLICACION FUNCION BASICA
Compresin de voz Filtro Digital FIR Deteccin de fase DTMF, Equalizacin Grfica

Filtro
Digital IIR Cancelacin de eco, Modem Filtros Adaptativos
11

alta velocidad

PROCESADORES DIGITALES DE SEALES ESTRUCTURA BASICA

Sistema Completo Etapa de entrada

Etapa de Salida

12

Microcontroladores v/s Procesadores Digitales de Seales


13

DSP v/s uC
DSP
Aplicaciones Arquitectura Orientados a aplicaciones de gran rendimiento Arquitectura con mltiples buses (6 o ms) y muchos niveles de pipeling 20MIPS-3GFLOPS Diseadas de acuerdo a la orientacin de campo de aplicaciones (MACD) Pocos MIPS por funcin

uC
Para aplicaciones de tipo general Arquitectura con mximo 2 buses y pocos niveles de pipeling 1MIPS - 10MIPS Set de instrucciones de tipo general
Para funciones complicadas, el uC queda al limite de su capacidad de proceso

Velocidad de Proceso Instrucciones

Rendimiento

14

DSP vs uC - Rendimiento
Un uC con arquitectura Harvard con un oscilador externo de 40Mhz y 2 niveles de pipeling (PIC18 Microchip), ejecuta 1 instruccin cada 100nS, por lo que puede procesar hasta 10MIPS. Un DSP bsico (TMS320F24x de TI) con arquitectura Harvard modificada, oscilador externo de 5MHz y 6 niveles de pipeling, puede procesar una instruccin en 50nS, con una capacidad de proceso de 20MIPS y puede llegar a ..... 3GFLOPS
15

DSP vs uC - CAD ms Rpidos Dentro del Chip

TMS320F24x - 10 bits/0.5uS

uC 16 bits - 12 bits/10uS uC 8/10 bits - 35uS

10

15 20 Tiempo en uS

25

30

35

16

DSP vs uC - Control de Motores


Algoritmo Kalman Control Corriente PWM SV 3F Control PI Estimacin Posicin Medida Velocidad Transformada Park Transformada Clark TMS320C/F24x uC 16 bits

Seno/Coseno
0 5 10 15 20 25 30 35 40 45 50
17

Tiempo en uS

DSP vs uC - Control de Motores


Microcontrolador 8 bit tpico

Control de Motor bsico V/Hz (lazo abierto)


90%
DSP familia TMS320C/F24x TI Gener. Control Algoritmo seales PID Sensorless PWM Algoritmo Correccin Compen. Factor de Ripple Potencia

Otros
100%

Otros

20% 100% Reduce el costo del sistema Incrementa el Performance del sistema Permite un sistema con mayor eficiencia y confiabilidad Permite la reduccin de ruido elctrico Permite nuevas caractersticas en un solo sistema 18

DSP vs uC - Fax/Mdem de 1 canal

19

DSP vs uC - Mdem de 1 canal

20

ARQUITECTURA DSP
21

DSP - Mltples Buses


DUAL ACCESS RAM B1 256x16 B0 256x16 B2
32x16

C24x
CPU
Program Address Bus Data Read address Bus Data Write Address Bus Program Read Data Bus Data Read Data Bus Data Write Exchange Bus

External Logic Interface

Address

Data

Control

Mltiples buses incrementa la velocidad de proceso

22

DSP - Pipeling
La CPU de un uC o un DSP sigue los siguientes pasos con cada una de las instrucciones P = Prefetch. Clculo de la direccin de la instruccin F = Fetch. Encuentra la instruccin D = Decode. Interpreta la instruccin A = Access. Colecta las direcciones de los operandos de la instruccin R = Read. Colecta los operandos de la instruccin X = Execute. Ejecuta la instruccin En un sistema convencional, las instrucciones se ejecutan secuencialmente. En un DSP, la ejecucin de las instrucciones se realiza en forma paralela en varios niveles de pipeling P1 F1 D1 A1 R1 X1 P2 F2 D2 A2 R2 X2 P3 F3 D3 A3 R3 X3

P1 F1 D1 A1 R1 X1 P2 F2 D2 A2 R2 P3 F3 D3 A3

Ahorra tiempo de ejecucin X2 R3 X 3

23

DSP - Arquitectura General


Seccin Shifter Entrada 16

Mux
31 16 15 0 Input shifter
32

TREG
Multiplier 16x16

Mux
16

PREG Product Shifter 32bits

32

Seccin de Multiplicacin
16

Mux
CALU

Unidad Central Aritmtica Lgica DSP 16 bits

Acumulador
16

Output Shifter (32 bits)


24

Aritmtica con DSP


25

Aritmtica con DSP - Complemento de 2 para ns enteros


Las operaciones aritmticas son realizadas en sistema de complemento de 2 En un sistema binario natural los nmeros enteros son expresados de la siguiente forma 01102 = (0x8) + (1x4) + (1x2) + (0x1) = 610 111102 = (1x16) + (1x8) + (1x4) + (1x2) + (1x0) = 3010 En un sistema de complemento de 2, el bit MSB corresponde a un bit de signo y los bits restantes corresponde al n en particular. 01102 = (0x-8) + (1x4) + (1x2) + (1x0) = 610 111102 = (1x-16) + (1x8) + (1x4) + (1x2) + (0x1) = -210 El sistema de complemento de 2 permite: Representar nmero negativos utilizando el bit MSB como bit de signo Cargar valores pequeos en registros largos con extensin de signo Aritmtica con signo o con modos de extensin de signo

26

Aritmtica con DSP - Complemento de 2 p/ns decimales


El sistema de complemento de 2, tambin puede ser utilizado para representar nmeros decimales, donde el bit MSB corresponde a un bit de signo. El punto binario (equivalente al punto decimal) est ubicado entre el bit de signo y el siguiente bits hacia la derecha. Este mtodo no produce rebalse en el acumulador. De esta forma, los nmeros decimales pueden ser representados como: 0.1102 = (0x-1) + (1x1/2) + (1x1/4) + (0x1/8) = 3/410 1.1102 = (1x-1) + (1x1/2) + (1x1/4) + (0x1/8) = -3/410 Ejemplo de aritmtica en complemento de 2 para nmeros de 3 bits 0100 1/2 (Q3) + bit signo x 1101 -3/8 (Q3) + bit signo 0100 0000 0100 1100 1110100 -3/16 (Q6) + bit signo Para efectos de optimizacin de memoria, es recomendable almacenar solamente la parte alta del acumulador desplazada 1 bit a la izquierda
27

Aritmtica con DSP: Mtodo Extensin de Signo (SXM)


La familia TMS320 puede operar con modo extensin de signo o sin extensin de signo

Antes

SETC SXM LACC #F794h,8

Despus

ACC

X
C

EF13648C

ACC

X
C

FFF79400

CLRC SXM LACC #F794h,8 Antes Despus

ACC

X
C

EF13648C

ACC

X
C

00F79400
28

Aritmtica con DSPs: Complemento de 2 - Formato Q15


La aritmtica en formato Q15 permite representar nmeros decimales en formato de 15 bits + 1 bits de signo (MSB). Con 15 bits: Mayor nmero positivo posible es +32767 y el menor nmero negativo posible es -32768 El formato permite realizar operaciones aritmticas con ns decimales optimizando memoria de datos y obtener un resultado en el mismo formato
TREG Instruccin (MPY B) ACCH ACC S S 29 16 15 S 29 Rotacin 1 bit izquierda ACCH S 14 X S 14 ACCL 0 15 Q30 Q15
29

0 0

Q15 Q15

Aritmtica con DSP: Formato Q15/Normalizacin ~1 1/2 0 0 32767 7FFFh


FFFFh 0000h 0001h

4000h 0
C000h -1/2

C 4000h 1/2 OV

-1/2
-1 32768

C000h
8000h
8000h -1 7FFFh ~1

0.6210 0.140510 11FBQ15 -110

32768 x 62 /100 = 20.316 0.6210 = 0014Q15 32768 x 1405/10000= 4603.9 0.140510 =


32768 x (-1) = 8000Q15 = -32768 -110
30

Aritmtica con DSP: Formato Q15/Ejemplo

AQ15 * BQ15 = CQ15

LT A MPY B PAC SACH C,1

;TREG = A ;TREG x B = PREG (Q30) ;ACC = A*B ;C = A*B. Rota acumulador 1 ;bit a la izquierda y almacena ;resultado en C. Los 16 bits ;LSBs se pierden
31

Instruccciones

32

DSP - Instrucciones/Direccionamiento Directo Suma de Productos


Y = A*X1 + B*X2 + C*X3 + D*X4

LT MPY LTP MPY LTA MPY LTA MPY APAC SACL

X1 A X2 B X3 C X4 D Y

LTP X2

LTA X3

LTA X4

LT MPY PAC LT MPY APAC LT MPY APAC LT MPY APAC SACL

X1 A X2 B X3 C X4 D Y

;T = X1 ;P = A*X1 ;ACC = A*X1 ;T = X2 ;P = B*X2 ;ACC = A*X1 + B*B2 ;T = X3 ;P = C*X3 ;ACC = A*X1 + B*X2 + C*X3 ;T = X4 ;P = D*X4 ;ACC = A*X1 + B*X2 + C*X3 + D*D3 ;Y = A*X1 + B*X2 + C*X3 + D*D3

33

DSP - Instrucciones/Direccionamiento Indirecto - Suma

y = Xn
100 n=1 .text LAR MAR LACL RPT ADD LDP SACL

Memoria de Datos

AR1 x ;inicio programa AR1,#x ;Carga puntero AR1 con x *,AR1 ;Deja activo puntero AR1 #0 ;limpia acumulador (32 bits) #99 ;repite la siguiemte instruccin 100 veces *+ ;ACC + (AR1) = ACC. AR1= AR1 + 1 #y ;carga puntero de direccionamiento directo con y y ;guarda parte alta de ACC en direccin y

X1 x2 . . . . . x100 y

100

34

DSP - Instrucciones/Suma de Productos Avanzada (MAC)


Sintaxis: MAC <pma>,<dma> Equivalente: APAC + LT + MPY Funcin: (PREG) + (ACC) = ACC (ARx) TREG ARx + 1 = ARx (TREG) x (PC) = PREG PC + 1 = PC
LAR MAR MPY LACL RPT MAC AR1,#300h *,AR1 #0 #0 #3 #0FF00h,*+

AR1

Memoria Datos (B1) X1 X2 X3

0300 0301 0302

Memoria Programa FF00 A B C FF01 FF02

PC

APAC

;AR1 = 300h 0303 X4 ;AR1activo ;Limpia PREG ;Limpia ACC ;Repite siguiente instruccin 4 veces ;(PREG ) + (ACC) = ACC ;(AR1) = TREG ;AR1 + 1 = AR1 ;(TREG) * (PC) = PREG ;PC + 1 = PC ;(PREG) + (ACC) = ACC. Suma final

D
Coefn

FF03

35

Algoritmos Tpicos para DSPs: Filtros FIR


x in X0 z1 X1 z1 X2 z1 X3 z1 X4

a0 x

a1 x

a2 x

a3 x

a4 x

y out

y(n) = a0 x(n) + a1 x(n-1) + a2 x(n-2) + a3 x(n-3) + a4 x(n-4)

Y0 = a0 X0 + a1X1 + a2X2 + a3X3 + a4X4


36

Aplicaciones Tpicas con DSPs: FIR - Programa


Seccin filtro FIR
.text LAR AR1,#x+99 MAR *,AR1 LAR AR0,#99 LACL #0 MPY #0 RPT #99 MACD coeff,*;AR1 = x+99. ;Activa puntero AR1 coeff ;AR0 = 99 ;ACC = 0. Limpia acumulador ;PREG = 0. Limpia registro producto ;Repite la sgte instruccin 100 veces ;1. (PREG) + (ACC) = ACC. ;2. (AR1) = TREG. ;3. (coeff) x (TREG) = PREG ;4. Contenido de (AR1) a (AR1+ 1) ;5. Incrementa (coeff) ;6. Decrementa (AR1) ;ACC = (ACC) + (PREG). Suma final ; desplaza ACC 1 bits a la izquierda y ;escribe los 16 bits MSB en Y (resultado) ;saca valor a DAC e incrementa AR1 (x0) ;lee nuevo dato del CDA y lo almacena en x0 ;luego reposiciona AR1 en x99 ;vuelve a aplicar algoritmo

Prog
a99 a98

Data

FIR:

y x

x0 x1

APAC SACH OUT IN B

*,1 *+,PA1 *0+,PA2 FIR

a0

x98 x99
Extra
37

Algoritmos Tpicos para DSPs: Filtros IIR

38

Algoritmos Tpicos para DSPs: PID

39

Algoritmos Tpicos para DSPs: FFT

40

Potrebbero piacerti anche