Está en la página 1de 18

D.R.

Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2012.

Introduccin al procesamiento digital de seales con dsPIC y compilador C30

Mapa de
contenidos
Fundamentos
DSP

Programacin
dsPIC
Protocolos de
comunicacin

Presentacin
dsPIC

Tutorial MPLAB y
C30

Ecuaciones de
diferencias

Muestreo
Muestreo

Filtros FIR

Librera DSP

Puertos E/S

Seales y
sistemas

Filtros IIR

Interrupciones
Memorias
externas

Convolucin
FFT

Estructuras de
filtros
Compresin

Volumen 1
D.R.

Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2012.

Aplicaciones
avanzadas

Volumen 2

vectoropenstock.com

photolibrary.com/photostogo.com

Introduccin al procesamiento digital de seales con dsPIC y compilador C30

photolibrary.com/photostogo.com

Introduccin del eBook


El rea de Procesamiento Digital de Seales (DSP) est muy vigente en
el desarrollo tecnolgico que vive nuestro pas y el mundo entero. En efecto,
las reas de telecomunicaciones, automotriz, entretenimiento y medicina son
slo algunas de las que se han visto beneficiadas por el avance de DSP y el
desarrollo de circuitos integrados (CI). Telefona digital, televisin 3D, procesamiento de imgenes mdicas y la electrnica automotriz son slo algunas
aplicaciones que se han desarrollado en los ltimos aos gracias a los avances en los algoritmos DSP y microcontroladores de mejor desempeo, mejor
conocidos como procesadores digitales de seales.
El material expuesto en este libro tiene la intencin de facilitar la transicin
entre los aspectos terico/matemticos y la programacin en lenguaje C del
procesador digital de seales dsPIC de Microchip. Los tpicos estn organizados en los siguientes temas:

D.R.

Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2012.

Conceptos de seales, sistemas y frecuencia en tiempo discreto


Principios de muestreo y conversin analgico-digital
Suma de convolucin y ecuaciones de diferencia
Transforma discreta de Fourier y la FFT
Principios de filtrado y tipos de filtros
Tpicos avanzados

Cada tema ser expuesto desde el punto de vista terico y posteriormente


se har nfasis en cmo se puede programar en el dsPIC.

Introduccin al procesamiento digital de seales con dsPIC y compilador C30

Captulo 1. Presentacin de los dsPIC


Organizador temtico

Informacin
Presentacin de los
dsPIC

Qu son los dsPIC?

D.R.

Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2012.

Programacin de
los dsPIC

Aplicaciones de los
dsPIC

Introduccin al procesamiento digital de seales con dsPIC y compilador C30

1.1 Qu son los dsPIC?

Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2012.

Instruccin de bajo nivel que ejecuta la operacin


de multiplicacin y acumulacin en un solo ciclo
de instruccin.
Un ciclo de instruccin es el nmero de ciclos de
reloj que un microcontrolador necesita para ejecutar una instruccin.

FFT.
Siglas en ingls para la transformada rpida de
Fourier (Fast Fourier Transform).

Ligas de inters
Uno de los bloques bsicos digitales que se encuentran
en un procesador digital de seales es el multiplicador/acumulador (MAC). El circuito MAC es capaz de ejecutar una
suma y una multiplicacin, involucrando hasta tres operandos, en un ciclo de instruccin.
El circuito MAC ser mencionado a lo largo de este libro, ya que su operacin se encuentra presente en la realizacin de filtros digitales, la suma de convolucin, ecuaciones de diferencias y la FFT. Ms informacin acerca de las
instrucciones MAC del dsPIC33FJ256GP puede ser obtenida del Manual de Referencia del Programador disponible
en la barra lateral.

Manual de Referencia del Programador

(documento en012820 (Prog Ref Manual).pdf )

Conclusin

MAC

Ciclo de instruccin

Pg. 1 de 2

D.R.

Microcontrolador con arquitectura interna mejorada para la ejecucin de algoritmos con tratamiento matemtico intensivo.

Actividad

En trminos de ejecucin, los procesadores digitales de


seales se diferencian de los microcontroladores de propsito general en que pueden realizar las operaciones de
suma, resta, multiplicacin y acumulacin de una forma rpida y eficiente (ver Figura 1.1).

Figura 1.1 Operacin de acumulacin de un procesador digital de seales

Procesador digital de seales.

Recursos

Esta tendencia ha conducido a que compaas que fabrican circuitos integrados incorporen circuitos digitales
ms complejos en la arquitectura interna de los microcontroladores de propsito general, con la intencin de que
stos sean capaces de cubrir los requerimientos de desempeo del procesamiento de seales multimedia. Estos
circuitos digitales que se incorporan facilitan la realizacin
y rpida ejecucin de algoritmos de procesamiento de seales multimedia que antes eran imposibles de imaginar.
Aquellos microcontroladores que se caracterizan por tales
capacidades de procesamiento son denominados procesadores digitales de seales.

Dichas operaciones aritmticas, como se ir viendo a


lo largo del libro, son las mnimas necesarias para realizar
procesamiento de seales digitales.

Glosario

os avances recientes en la fabricacin de circuitos integrados han permitido que los sistemas electrnicos
digitales sean cada vez ms complejos y de menores
dimensiones. En efecto, la tendencia actual en comunicacin, educacin y entretenimiento es que los dispositivos
sean mviles, de bajo consumo de potencia y que procesen seales multimedia, como voz, internet, audio y video
a la mayor velocidad posible.

GLOSARIO

TEmas CAPtulo 1

Captulo 1. Presentacin de los dsPIC


1.1 Qu son los dsPIC?

Introduccin al procesamiento digital de seales con dsPIC y compilador C30

GLOSARIO
dsPIC
Procesador digital de seales comercializado por
Microchip.

Glosario

Microchip ha entrado al mercado de los procesadores


digitales de seales ofreciendo los dsPIC. Los dsPIC son
microcontroladores de 16 bits que resultan de la combinacin de la arquitectura y la facilidad de programacin de los
microcontroladores de 8 bits y los circuitos digitales avanzados que caracterizan a los procesadores digitales de seales.
Con la introduccin de los dsPIC, la intencin de Microchip es aprovechar su enorme popularidad entre los programadores de micontroladores de 8 bits y su conjunto de
herramientas de programacin gratuitas y de bajo costo.

Ligas de inters

(70286c (dspic datasheet).pdf )

Manual de usuario para la tarjeta


de desarrollo del dsPIC

Actividad

Hoja de especificaciones del dsPIC33FJ256GP

Recursos

Particularmente, en este libro se estar abordando elestudio y la programacin del dsPIC33FJ256GP de la tarjetade Microchip MPLAB Starter Kit for dsPIC. Asimismo, se
asume que el lector tiene una mnima experiencia trabajando con los microcontroladores y las herramientas de Microchip.

TEmas CAPtulo 1

Captulo 1. Presentacin de los dsPIC


1.1 Qu son los dsPIC?

(dsPIC-DSCsStarterKitUsersGuide.pdf)
Conclusin

Pg. 2 de 2

D.R.

Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2012.

Introduccin al procesamiento digital de seales con dsPIC y compilador C30

GLOSARIO

1.2 Programacin de los dsPIC

Ambiente de programacin para


microcontroladores y dsPIC de Microchip.

n trminos de programacin, los dsPIC pueden ser


tratados como cualquier otro microcontrolador de Microchip, compartiendo las siguientes caractersticas

C30

El ambiente de desarrollo integrado MPLAB es la herramienta principal de programacin

Compilador de lenguaje C para la programacin de los procesadores digitales de seales comercializados por
Microchip (Vase tambin dsPIC).

La creacin de un proyecto de programacin en


MPLAB en el cual se indiquen las herramientas de
programacin que sern usadas y el tipo de microcontrolador o dsPIC que se estar programando

Ligas de inters

En particular, en este libro seguiremos la siguiente secuencia de programacin para los dsPIC

Gua de usuario de MPLAB


(51519c (mplab user guide).pdf)

Las herramientas de programacin se encuentran


agrupadas bajo el compilador C30 de Microchip

Conclusin

MPLAB Starter Kit for dsPIC es la tarjeta de desarrollo o entrenador que se estar usando a lo largo del
libro, la cual puede ser programada directamente desde MPLAB
A continuacin se discute con mayor detalle la programacin de los dsPIC
Pg. 1 de 3

Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2012.

Actividad

MPLAB es el ambiente de codificacin, simulacin y


bsqueda de errores

D.R.

Recursos

La programacin misma del microcontrolador o dsPIC


ya sea usando un programador universal o algn programador propietario de Microchip

Glosario

MPLAB

TEmas CAPtulo 1

Captulo 1. Presentacin de los dsPIC


1.2 Programacin de los dsPIC

Introduccin al procesamiento digital de seales con dsPIC y compilador C30

Figura 1.2 MPLAB y sus herramientas

Glosario

MPLAB es un ambiente de desarrollo de aplicaciones


para los microcontroladores y dsPIC de Microchip. MPLAB
integra un editor para cdigo en lenguaje ensamblador o
C, un debugger para la bsqueda de errores y un simulador para verificar la ejecucin correcta de la aplicacin.
As mismo, como ya ha sido mencionado anteriormente,
MPLAB jugar tambin el papel de programador para el
dsPIC con el que se trabajar (Ver Figura 1.2).

TEmas CAPtulo 1

Captulo 1. Presentacin de los dsPIC


1.2 Programacin de los dsPIC

En general, una aplicacin se desarrolla en MPLAB


siguiendo los siguientes pasos:
Desliza el cursor sobre cada crculo.
Recursos

Actividad

Conclusin

Dependiendo de las condiciones y necesidades de la


aplicacin, diferentes herramientas de MPLAB pueden
ser invocadas a lo largo del desarrollo de la aplicacin.
Detalles de cada una de las herramientas disponibles en
MPLAB pueden consultados en su gua de usuario.
Pg. 3 de 3

D.R.

Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2012.

Introduccin al procesamiento digital de seales con dsPIC y compilador C30

Todas las aplicaciones que sern desarrolladas a lo largo del libro sern escritas en lenguaje C. El compilador que
se estar usando es el C30 de Microchip (este compilador
tambin es conocido como MPLAB C Compiler for DSCs).

Su instalacin y una gua paso a paso para la creacin


de proyectos con el compilador C30 se encuentran detalladas en la gua de usuario.
Uno de los principales objetivos de este libro es motivar
al estudiante a verificar en hardware todos los algoritmos
para el procesamiento digital de seales que sern estudiados. Con ese propsito, se usar la tarjeta de desarrollo
o entrenador MPLAB Starter Kit for dsPIC de Microchip.
Las principales ventajas de esta tarjeta son:

DSC
Procesador digital de seales comercializado por Microchip (Vase tambin dsPIC).

Glosario

Animacin.

GLOSARIO

Ligas de inters

Recursos

Completamente integrada con MPLAB y el compilador


C30 en trminos de programacin y debugging
Orientada al procesamiento de audio y voz

TEmas CAPtulo 1

Captulo 1. Presentacin de los dsPIC


1.2 Programacin de los dsPIC

Bajo costo y fcil de usar


Gua de usuario Compilador C30

D.R.

Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2012.

Conclusin

Pg. 2 de 3

(70094E (16-bit Getting Started).pdf )

Actividad

Las aplicaciones al procesamiento digital de seales


que sern demostradas en este libro estn basadas en el
compilador C30 y las libreras antes mencionadas.

Mientras que existen en el mercado tarjetas de desarrollo de mayor capacidad de procesamiento, stas imponen
un mayor nivel de complejidad en su programacin. Las
aplicaciones que se expondrn a lo largo del libro demostrarn que la tarjeta seleccionada es la ms adecuada, ya
que proporciona el balance perfecto entre facilidad de programacin y nivel medio de complejidad, mientras permite
al estudiante visualizar la relacin entre los algoritmos de
procesamiento de seales y su programacin en hardware.

Introduccin al procesamiento digital de seales con dsPIC y compilador C30

GLOSARIO

1.3 Aplicaciones de los dsPIC

as aplicaciones de los dsPIC estn relacionadas con


tareas que involucran la manipulacin de seales
digitales siguiendo algoritmos que se basan en un
tratamiento matemtico intensivo. Una de las ltimas tendencias en procesamiento de seales es el procesamiento
multimedia embebido, el cual involucra una o ms de las
siguientes tareas.

Como ha sido mencionado anteriormente, la tarjeta dsPIC con la que se trabajar a lo largo del libro est enfocada a aplicaciones de procesamiento de audio y voz.
Algunas aplicaciones que sern desarrolladas en captulos
posteriores son listadas a continuacin

Compresin y descompresin de voz

Uso de ecuaciones diferenciales para la generacin de


ecos

Procesamiento de audio y decodificacin MP3

Generadores de formas de onda

Comunicaciones almbricas e inalmbricas

Anlisis espectral usando la FFT

Otra importante rea de aplicaciones es en sistemas de


potencia y control, cuyas tareas requieren

Compresin y descompresin de voz

Control automtico de motores

Mientras que estas aplicaciones se consideran elementales, la particularidad que demuestran es que pueden ser
usadas como tareas bsicas para aplicaciones ms complejas.
Microchip identifica algunas aplicaciones para los dsPIC
en el rea de procesamiento de audio y voz. Estas son
listadas en la seccin Audio and Speech en el apartado
Applications and Markets de su pgina en internet.

Pg. 1 de 1

D.R.

Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2012.

www.microchip.com

Conclusin

Otras reas de aplicacin pueden ser consultadas en


las referencias que se incluyen al final del captulo. Sin embargo, es importante mencionar que en este libro se har
nfasis en las aplicaciones que permite la tarjeta DSP que
se ha seleccionado.

Pgina prinicipal de Microchip


Actividad

Convertidores DC/DC

Ligas de inters

Recursos

Procesamiento de imgenes y decodificacin JPG

Filtros digitales para la eliminacin de algunas frecuencias de inters

Control de sensores

Siglas en ingls para el procesamiento digital de seales (Digital Signal


Processing).

Glosario

DSP

TEmas CAPtulo 1

10

Captulo 1. Presentacin de los dsPIC


1.3 Aplicaciones de los dsPIC

Introduccin al procesamiento digital de seales con dsPIC y compilador C30

Captulo 1. Presentacin de los dsPIC


Ejercicio integrador del captulo 2

Ejercicio integrador del captulo 1

TEmas CAPtulo 1

11

Glosario

Recursos

Actividad

Conclusin

Pg. 1 de 1

D.R.

Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2012.

Introduccin al procesamiento digital de seales con dsPIC y compilador C30

TEmas CAPtulo 1

Captulo 1. Presentacin de los dsPIC


Conclusin del captulo 1

12

Conclusin del captulo 1


Captulo 1. Presentacin de los dsPIC

Pg. 1 de 1

D.R.

Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2012.

Conclusin

En los siguientes captulos se mostrar la filosofa de programacin de los


dsPIC a travs de los perifricos involucrados en el procesamiento de audio
y voz, para que posteriormente se estudien los algoritmos de procesamiento
digital de seales tanto tericamente como su programacin con los dsPIC.

Actividad

Mientras que los procesadores de seales pueden ser usados para el procesamiento de imgenes, audio, voz, comunicaciones inalmbricas, control
de motores y sensores, entre otros, los algoritmos de procesamiento digital
de seales que sern demostrados en este libro estn orientados al procesamiento de audio y voz.

Recursos

La propuesta de programacin de Microchip para los dsPIC son MPLAB


como el ambiente de programacin integrado, el compilador C30 para programar a los dsPIC en lenguaje C y el MPLAB Starter Kit for dsPIC como tarjeta
de desarrollo y evaluacin. Estos tres elementos de programacin sern usados a lo largo del libro para demostrar los diversos algoritmos para el procesamiento digital de seales.

Glosario

os procesadores digitales de seales son microcontroladores cuya arquitectura interna ha sido mejorada para aumentar su desempeo en
la realizacin de algoritmos que requieran tratamientos matemticos
intensivos. Los dsPIC son los procesadores de seales comercializados
por Microchip. Entre las principales ventajas de los dsPIC con respecto a
otros procesadores comerciales son su facilidad de programacin, herramientas de programacin gratuitas y tarjetas de desarrollo de bajo costo.

Introduccin al procesamiento digital de seales con dsPIC y compilador C30

TEmas CAPtulo 1
Glosario

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

C30

DSC

FFT

Compilador de lenguaje C para la programacin


de los procesadores digitales de seales comercializados por Microchip (Vase tambin dsPIC).

Procesador digital de seales comercializado por


Microchip (Vase tambin dsPIC).

Siglas en ingls para la transformada rpida de


Fourier (Fast Fourier Transform).

DSP

CI
Ciclo de instruccin

dsPIC

Nmero de ciclos de reloj que un microcontrolador necesita para ejecutar una instruccin

Procesador digital de seales comercializado por


Microchip.

Pg. 1 of 2

D.R.

Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2012.

MAC
Instruccin de bajo nivel que ejecuta la operacin
de multiplicacin y acumulacin en un solo ciclo
de instruccin.

Conclusin

Siglas para circuito integrado.

Siglas en ingls para el procesamiento digital de


seales (Digital Signal Processing).

Actividad

Recursos

Glosario del captulo 1

Introduccin al procesamiento digital de seales con dsPIC y compilador C30

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

TEmas CAPtulo 1

Glosario del captulo 1


MPLAB

Glosario

Ambiente de programacin para microcontroladores y dsPIC de Microchip


Procesador digital de seales
Microcontrolador con arquitectura interna mejorada para la ejecucin de algoritmos con tratamiento matemtico intensivo.

Recursos

Actividad

Conclusin

Pg. 2 of 2

D.R.

Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2012.

Introduccin al procesamiento digital de seales con dsPIC y compilador C30

TEmas CAPtulo 1
Glosario

Recursos

Recursos del captulo 1


Microchip Technology Inc. (2010). 16-bit Microcontrollers and dsPIC.
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=75
Microchip Technology Inc. (2010).

Actividad

http://www.microchip.com

Conclusin

Pg. 1 de 1

D.R.

Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2012.

Introduccin al procesamiento digital de seales con dsPIC y compilador C30

ndice
Introduccin del eBook
Captulo 1. Presentacin de los dsPIC
1.1 Qu son los dsPIC?
1.2 Programacin de los dsPIC
1.3 Aplicaciones de los dsPIC
Ejercicio integrador del captulo 1
Conclusin del captulo 1
Glosario del captulo 1
Recursos del captulo 1
Captulo 2. Conceptos de datos e informacin
2.1 MPLAB y compilador C30
2.2 Creando proyectos con el Wizard
2.3. Editando el cdigo fuente
2.4 Compilando el cdigo fuente
Ejercicio integrador del captulo 2
Conclusin del captulo 2
Glosario del captulo 2
Recursos del captulo 2
Captulo 3. Programacin de puertos E/S
Ejercicio integrador del captulo 3
Conclusin del captulo 3
Glosario del captulo 3
Recursos del captulo 3
Captulo 4. Interrupciones
4.1 Manejo de interrupciones

D.R.

Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2012.

3
4
5
7
10
11
12
13
15
16
17
19
23
25
31
32
33
35
36
50
51
52
53
54
55

4.2 Registros de configuracin


4.3 Interrupciones INT1 e INT2
4.4 Interrupcin del Timer1
Ejercicio integrador del captulo 4
Conclusin del captulo 4
Glosario del captulo 4
Glosario del captulo 4
Recursos del captulo 4
Captulo 5. Protocolos de comunicacin
Ejercicio integrador del captulo 5
Conclusin del captulo 5
Glosario del captulo 5
Glosario del captulo 5
Recursos del captulo 5
Captulo 6. Memorias externas
Ejercicio integrador del captulo 6
Conclusin del captulo 6
Glosario del captulo 6
Glosario del captulo 6
Recursos del captulo 6
Captulo 7. Librera DSP del compilador C30
7.1 Motor DSP
7.2 Instrucciones DSP
7.3 Librera DSP
Ejercicio integrador del captulo 7
Conclusin del capitulo 7

58
60
63
67
68
69
70
71
72
82
83
84
85
86
87
97
98
99
100
101
102
103
107
109
111
112

Introduccin al procesamiento digital de seales con dsPIC y compilador C30

ndice
Glosario del captulo 7
Glosario del captulo 7
Recursos del captulo 7
Captulo 8. Principios de muestreo 
8.1 Conversin analgico digital
8.2 Teorema de muestreo
8.3 Ejemplo de programacin
Ejercicio integrador del captulo 8
Conclusion del captulo 8
Glosario del captulo 8
Recursos del captulo 8
Recursos del eBook
Glosario
ndice
Aviso legal

D.R.

Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2012.

113
114
115
116
117
120
123
126
127
128
129
130
132
137
139

Introduccin al procesamiento digital de seales con dsPIC y compilador C30

Introduccin al Procesamiento Digital de Seales con dsPIC y C30. Volumen 1. / Torres, David Antonio
p. 139 cm.

Glosario

Antonio Torres, David.

TEmas CAPtulo 1

Aviso legal

1. Derecho informticoMxico 2. Derecho comparadoMxico


LC: TK5102.9 Dewey: 621.3822

Grabacin del video del autor por el Tecnolgico de Monterrey, Campus Puebla.

Recursos

eBook editado, diseado, publicado y distribuido por el Instituto Tecnolgico y de Estudios Superiores de Monterrey.

Se prohbe la reproduccin total o parcial de esta obra por cualquier medio sin previo y expreso consentimiento por escrito del Instituto Tecnolgico y de Estudios
Superiores de Monterrey.
D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico. 2012

ISBN en trmite.

Actividad

Ave. Eugenio Garza Sada 2501 Sur Col. Tecnolgico C.P. 64849 | Monterrey, Nuevo Len | Mxico.

Primera edicin: agosto 2012.

Conclusin

D.R.

Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2012.