Reporte de Investigación - Introducción a Los DSP's

download Reporte de Investigación - Introducción a Los DSP's

of 10

description

Investigación inicial de Procesamiento de Señales

Transcript of Reporte de Investigación - Introducción a Los DSP's

Reporte de investigacin: Introduccin a los DSPsInstituto Tecnolgico de VeracruzReporte de investigacin: Introduccin a los DSPsProcesamiento Digital de Seales

Integrantes del equipo:

Gutirrez Romay Csar Augusto - E11020151 Portilla Gonzles Jess Daniel E11021261 Snchez Ibarra Josu E10020718 Torres Aguilar Miguel Angel E11021270

1. Qu es un DSP y para qu sirve?

Unprocesador de seal digital(DSP) es un tipo de microprocesador que trabaja a altas velocidades. Realiza el procesamiento de datos en tiempo real, esta capacidad de operacin en tiempo real hace de unDSPla opcin perfecta para aplicaciones en las que no hay tolerancia a retrasos.Bsicamente unDSPadquiere una seal digital y la procesa para mejorar la misma. La mejora puede ser un sonido ms claro, imagen ms ntida o datos ms rpidos. Aunque hay muchos procesadoresDSP, la mayora son diseados con las mismas operaciones bsicas en mente, por lo que comparten el mismo conjunto de caractersticas bsicas. Estas caractersticas se dividen en tres categoras: Alta velocidad de clculos aritmticos. Transferencia de datos hacia y desde el mundo real. Arquitecturas de memoria de mltiple acceso.Un dsPIC es un circuito hibrido de un microcontrolador (MCU) y un Procesador Digital de Seales (DSP), cuyo manejo es similar a los clsicos microcontroladores pero que incluye las principales prestaciones de los DSP. Este circuito tambin es denominado Controlador Digital de Seales (DSC), que rene las caractersticas de un microcontrolador PIC y las de un DSP de gama baja.

Fig. 1. Los DSC comparten reas de aplicacin de los MCU y DSP.

El dsPic es un microprocesadorque posee un juego de instrucciones, unhardwarey unsoftwareoptimizados para aplicaciones que requieran operaciones numricas a muy alta velocidad. Debido a esto es especialmente til para el procesado y representacin deseales analgicasen tiempo real: en un sistema que trabaje de esta forma (tiempo real) se reciben muestras, normalmente provenientes de un conversor analgico/digital(ADC). Se puede trabajar con seales analgicas, pero es un sistemadigital, por lo tanto necesitar un conversor analgico/digital a su entrada y digital/analgico en la salida

Fig. 2 Funcionamiento de un DSP.UnDSPpara operar requiere unas simples funciones tpicas: Suma y Multiplicacin. Retrasos. Manejo de Arreglos (vectores).Para realizar la aritmtica simple requerida los procesadoresDSPnecesitan unidades aritmticas de alta velocidad. La mayora de las operaciones requieren sumas y multiplicaciones juntas, por lo cual, existe hardware para suma y multiplicacin que pueden usarse en paralelo con una sola instruccin.APLICACIONES DE LOS dsPICs

A) CONTROL DE MOTORES Bombas industriales. Lavadoras y aspiradoras. Equipos de gimnasia. Tensores de cinturones de seguridad. Calefaccin, ventilacin y aire acondicionado. Refrigeracin. Herramientas elctricas. Apertura de puertas. Control de estabilidad.

B) CONTROL DE SENSORES Sensores de torsin. De presin. De vibraciones. De golpes. De lluvia. De fallos en la red elctrica. De rotura de cristales. Sensores qumicos y de gases. Deteccin PIR avanzada 2-D.

C) AUTOMOCIN Control de potencia. Control de estabilidad y balanceo. Caja de cambios y embrague electrnico. Direccin hidrulica asistida elctricamente. Cancelacin de ruido en el habitculo. Airbag. Control de ignicin. Sensor de presencia de ocupantes. Control del combustible.

D) CONECTIVIDAD EN INTERNET Monitorizacin remota. Contadores automticos de agua y gas. Instrumentacin mdica remota. Sistemas de seguridad. Mquinas expendedoras. Diagnstico industrial remoto.

E) AUDIO Reconocimiento de voz. Altavoces telefnicos. Redes distribuidas de megafona. Efectos especiales en instrumentos musicales. Cancelacin de ruidos. Reproduccin de sonido digital. Auriculares para la eliminacin de ruidos. Puertos de comunicacin para manos libres. Micrfono activado por la voz.

F) GESTIN Y MONITORIZACIN DE SISTEMAS DE ALIMENTACIN Convertidores AC-DC. Convertidores DC-AC. Fuentes de alimentacin ininterrumpibles (UPS). Inversores. Vehculos elctricos. Correccin del factor de potencia. Monitorizacin de la alimentacin en servidores. Gestin de la alimentacin y ahorro de consumo. Deteccin de fallos.

2. Caractersticas importantes de los DSPsLa eleccin de un DSP que posea unas ciertas caractersticas estar muy condicionada a la aplicacin que se quiera destinar. En este apartado se presenta un conjunto de aspectos caractersticos de los DSP sin que se pretenda con ello hacer una lista exhaustiva. Dichos aspectos debern tenerse en cuenta a la hora de su eleccin para una aplicacin en particular.Formato aritmtico:Una de las caractersticas fundamentales de los DSP es el tipo de formato aritmtico utilizado por el procesador.Fig. 3 Tipos de formato aritmtico de los DSPs.

Los DSPs de coma flotante son generalmente ms fciles de programar que los de coma fija, pero son usualmente ms caros. El mayor coste es resultado del requisito de una mayor complejidad circuital que se traduce en un mayor tamao de chip. Sin embargo, el mayor margen dinmico facilita su programacin pues el programador no debe preocuparse por el margen dinmico ni por la precisin. Por el contrario, en los DSPs de coma fija el programador a menudo debe escalar las seales en sus programas para asegurar una adecuada precisin numrica con el limitado margen dinmico de DSPs de coma fija.Ancho de palabra:Los DSPs de coma flotante utilizan un bus de datos de 32 bits. En los DSPs de coma fija, el tamao ms comn es de 16 bits.El tamao del bus de datos tiene un gran impacto en el coste, ya que influye notablemente en el tamao del chip y el nmero de patillas del encapsulado. Por lo tanto, se intenta utilizar el integrado con el menor tamao de palabra que la aplicacin pueda tolerar.La mayora de los DSP utilizan un ancho de la palabra de instruccin igual a la de los datos, pero no todos lo hacen.Velocidad:La medida clave para saber si un DSP es o no apropiado para una aplicacin es su velocidad de ejecucin. Existen varias formas para medir la velocidad de un procesador, aunque quizs el parmetro ms usual es el tiempo de ciclo de instruccin: tiempo necesario para ejecutar la instruccin ms rpida del procesador. Su inverso dividido por un milln da lugar a la velocidad del procesador en millones de instrucciones por segundo (MIPS). En la actualidad todos los DSP ejecutan una instruccin por ciclo de instruccin.El parmetro MIPS, se miden de forma muy precisa aunque su valor no necesariamente dice mucho de lo que un determinado DSP es capaz de hacer. Dichos valores sirven para ubicar cada DSP en una categora amplia en cuanto a prestaciones pero uno se debera preguntar si se trata de valores de pico o sostenidos. Adems, tambin nos deberamos preguntar cmo se ven afectadas las prestaciones del DSP cuando muchos de los datos se encuentran fuera del chip, en la memoria externa.Una solucin a estos problemas consiste en decidir una operacin bsica y utilizarla como referencia al comparar distintos DSP. La operacin que suele tomarse como referencia es la MAC (operacin de multiplicacin y acumulacin). Desafortunadamente, los tiempos de ejecucin de la MAC proporcionan, a veces, poca informacin. La mayora de ellos esta instruccin se ejecuta en un solo ciclo de instruccin.Organizacin de la memoria:La instruccin MAC, as como otras, son fundamentales en muchos de los algoritmos de procesado de seal, una ejecucin rpida de la instruccin MAC requiere que la lectura en memoria del cdigo de la instruccin y de sus dos operando se haga en un ciclo de instruccin. Existe una variedad de formas de hacerlo, utilizando memorias multipuerto para permitir mltiples accesos a memoria en un ciclo de instruccin, mediante memorias de datos e instrucciones separadas (arquitectura Harvard), y memorias caches de instrucciones para permitir el acceso a la memoria para la obtencin de datos mientras que las instrucciones se obtienen de la cache en lugar de la memoria.La mayora de los DSPs de coma fija poseen memorias internas, en el propio chip, de tamao pequeo medio, entre 256 y 32k palabras, y un bus externo de direcciones pequeo, limita la cantidad de memoria externa de acceso directo.Por el contrario, la mayora de los DSPs de coma flotante proporcionan poca o ninguna memoria interna, pero se caracterizan por tener buses de direcciones externos de gran tamao, para soportar una gran cantidad de memoria externaSegmentacin:Pipelining es una tcnica para incrementar las prestaciones de un procesador, que consiste en dividir una secuencia de operaciones en otras de ms sencillas y ejecutar en lo posible cada una de ellas en paralelo. En consecuencia se reduce el tiempo total requerido para completar un conjunto de operaciones. Casi todos los DSPs del mercado incorporan el uso de la segmentacin en mayor o menor medida.Aunque la mayora de los DSPs utilizan la tcnica de segmentacin, su profundidad o nmero de etapas vara de un procesador a otro. En general, cuanto mayor sea el nmero de etapas menor tiempo tardar el procesador en ejecutar una instruccin.Consumo:El uso cada vez ms extendido de los DSPs en aplicaciones porttiles como la telefona celular hace que el consumo sea un factor a tener muy en cuenta en el momento de decidirse por un DSP u otro. Conscientes de esta necesidad, los fabricantes de DSPs ya los fabrican para tensiones bajas de trabajo (3,3 V -3 V) que incorporan prestaciones para la gestin de energa, como pueden ser los modos sleep o idle que inhiben el reloj del DSP a todas o slo algunas partes del mismo, divisores programables del reloj para permitir la realizacin de determinadas tareas a velocidad inferior o en control directo de perifricos, lo que permite la desactivacin de algunos de ellos si no se prev su aplicacin.***En conclusin, podemos decir que un DSP es un microprocesador orientado al procesamiento de seales digitales y a la realizacin de clculos a alta velocidad. Estos microprocesadores se caracterizan por tener arquitecturas especiales, orientadas a la realizacin hardware de los clculos que otro tipo de microprocesadores implementan va software, mediante la ejecucin secuencial de varias instrucciones. El hardware de la CPU de este tipo de sistemas digitales es por ello, generalmente, mucho ms complejo que el de otros microprocesadores o microcontroladores. El rea de silicio es mucho mayor y por ello el coste del producto aumenta respecto a los microprocesadores y microcontroladores.Los DSP's deben manejar rangos dinmicos extendidos y de precisin para evitar overflow y underflow y para minimizar los errores de redondeo. Para acomodarse a esta capacidad, los DSP's incluyen acumuladores dedicados conregistrosms anchos que el tamao nominal de los datos para as conservar la precisin (por ejemplo, DSP's de 16 bits poseen acumuladores de 32 bits para manejar el resultado de las multiplicaciones). Tambin deben soportar el manejo de buffers circulares para la ejecucin de funciones algortmicas, tales como filtros.

3. Fabricantes de DSPs y caractersticas de sus productos.Fig. 4 Distribucin porcentual de las ventas mundiales de DSP en 2004.Algunos de los fabricantes ms importantes de DSPs en la actualidad son: Analog Devices Freescale Semiconductor, Inc. (Motorola) Microchip Philips Semiconductor STMicroelectronics Texas Instruments, Inc.Fig. 5 Tabla de diversos fabricantes sobre algunos de sus modelos MCU usando los programas de prueba basados en el anlisis de frecuencia de instrucciones de EEMBC Automotive.Los diversos fabricantes mencionados en la lista inicial hoy en da elaboran distintos tipos de circuitos integrados que incluyen DSPs para distintas aplicaciones especficas o generales, cada uno con caractersticas segn la necesidad de la aplicacin. El costo de los productos vara segn su aplicacin, ya que cada tipo de DPS vara en su cantidad de memoria, de perifricos, rendimiento, velocidad de procesamiento, entre otras cosas, causando que los destinados para aplicaciones ms especficas y robustas contengan elementos ms sofisticados o una cantidad mayor de estos.

4. Qu es mejor desarrollar en circuito integrado o en tarjeta de desarrollo?Circuito integrado.- Uncircuito integrado(CI), tambin conocido comochipomicrochip, es una pastilla pequea de materialsemiconductor, de algunos milmetros cuadrados derea, sobre la que se fabricancircuitos electrnicosgeneralmente mediantefotolitografay que est protegida dentro de unencapsuladode plstico ocermica. El encapsulado poseeconductores metlicosapropiados para hacer conexin entre la pastilla y uncircuito impreso.

Fig. 6 Apariencia general de un CI.

Ventajas: Costo bajo. De uso fcil. Fcil implementacin. Libertad de creacin de la circuitera para aplicaciones especficas. Desventajas: En caso de que surja algn error deber analizarse y buscarse la fuente de ste, ya sea el circuito integrado o los dems componentes del circuito armado. Los pines de los integrados son sensibles al movimiento y tienden a quebrarse con cierta facilidad. Mayor probabilidad de error al implementar el PIC en un circuito, ya que es armado en su mayora por un humano.Tarjeta de desarrollo.- Una Tarjeta de Desarrollo es, bajo la perspectiva ingenieril, una herramienta para diseo y prototipado rpido de sistemas digitales o analgicos, que se presenta como un elemento muy til para el mejoramiento de los procesos de diseo debido a disminucin del tiempo de validacin de los diseos as como la posibilidad que ofrece de ser una solucin y un producto final. En la actualidad existen tres tarjetas de desarrollo muy conocidas: Arduino y Raspberry Pi y Galileo Intel.Ventajas: Diseadas para diversas aplicaciones, tanto especficas como generales. Lenguajes de programacin accesibles. Ms interaccin con el PIC y el programador dando una mejor visualizacin y comprensin del circuito y la programacin. Menos tiempo de solucin de errores, al tener la circuitera integrada a la tarjeta. Fcil comprobacin de errores en el PIC.

Desventajas: Costos ms elevados. Diseadas bajo cierto rango de aplicaciones, por lo que a pesar de su versatilidad no son modificables en cuanto a hardware se refiere.

Conclusin: Dependiendo de la aplicacin podramos decir en cul de las dos formas es mejor desarrollar algn proyecto, siendo el determinante ms importante que tan especfico es nuestro proyecto, si es tan especfico que ninguna tarjeta de desarrollo cumple con las caractersticas para llevarlo a cabo se ver forzado a tomar el camino del desarrollo tradicional del empleo de circuitos integrados. Si esto no llegase a suceder lo ms prudente sera trabajar con alguna tarjeta de desarrollo con mltiples aplicaciones, ya que a pesar de su costo, puede ahorrarnos mucho tiempo en el armado y en la prueba de errores de nuestro circuito.

5. Existe una mejor manera de implementar o de hacer procesado digital que no incluya DSPs?Cincoparmetros importanteso son los que determinan que manera emplear para el procesado de seales.1. Desempeo Identificar la frecuencia de muestreodel diseo del sistemaenconsideracin.Si esmayor a unos pocos MHz, elFPGAserla eleccin natural. Si la velocidad de datos del sistema es mayor de20 a 30 MBps, unFPGAlo manejarmejor. Si no hay ninguna operacin condicional unFPGAser perfecto.Si hay muchas,una aplicacin en softwarepodra ser mejor. Si el sistema usa punto flotanteste ser un agentea favor de unDSPprogramable. Si hay bibliotecas (toolkits), tanto elDSP como el FPGAofrecen bibliotecasdebloques de construccinbsicas, comoFIR (Finite Impulse Response) oFFT (Fast Fourier Transform). Sin embargo, componentesms complejospueden no estar disponibles, lo quepodrainfluir en tudecisin entreunau otra va.La siguiente tabla muestrauna comparacin directapara elcriterio de desempeo:

Fig. 7 Tabla de criterio de desempeo MMAC para elegir el sistema a utilizar en procesado de seales.MMAC es el nmero de operaciones de multiplicacin y acumulacin de punto flotante, de precisin sencilla o punto fijo de 32 bits, que se pueden ejecutar en unidades de millones por segundo.2. Consumo de energaEn algunas aplicaciones,en las que el procesamiento de seal requiere de altorendimiento,los FPGA pueden tomar ventaja desus arquitecturasaltamente paralelasyofrecer una productividadmuy superior alos DSPs.Como resultado, el consumototal de energa de losFPGApuede ser significativamente menoral delos procesadoresDSPs;pese a que, por elnivel de su chip,el consumo de energaa menudo es mayor.Desafortunadamente,existe una escases de informacin ms precisa, puesto quelosdatos de consumo energticodelosFPGAyde los DSPs estn uno a uno,lo que hace difcilcompararsu eficiencia energtica.3. Factor: forma y tamaoCuando la frecuencia de muestreocrece por encima deunos pocos MHz, elDSPtieneque trabajar muy duropara transferir los datossin ninguna prdida.Esto se debe aque el procesadordebe utilizarlos recursos compartidos, comolos busesde memoriao, incluso,el ncleo del procesador; estose puede evitarhaciendoalgunasinterrupcionesdetiempo.UnFPGA,al contrario,dedicala lgicapara la recepcin delos datos, por lo quepuede manteneraltas frecuencias deE/S.UnDSPest optimizadopara el uso dememoria externa,por lo que ungran conjunto de datospuede ser utilizadodurante el procesamiento. LosFPGAtienen una cantidad limitadade memoria interna,por lo que necesitanoperar con conjuntosde datos ms pequeos; aunque,tambin pueden trabajar con mdulosde memoria externa, lo que le permiteeliminaresa restriccin.UnDSPest diseado para el reso simple delas unidades de procesamiento; por ejemplo,un multiplicador usadopara el clculo deunaFIRpuede ser reutilizado porotra rutinaque calcula laFFT. Esto es mucho msdifcil de lograr enunFPGA, pero en generalhabr msmultiplicadores disponiblesen este ltimo.Siesnecesario realizar un cambio de contextoimportante, elDSPpuede implementarlotomando una ramificacin hacia unanueva partedel programa.Por el contrario,unFPGAnecesita construirlos recursos dedicados paracada configuracin.Si dichas configuracionesson pequeas, entonces pueden coexistir variasdentro delFPGA; si sonms grandes,elFPGAdebe volver a configurarse, proceso que puedetomar algn tiempo.4. Confiabilidad en el diseo y mantenimientosta es un rea en la cualsiempre podremosdebatir qu es msfiable yfcil de mantener.Los expertos dicen quecon la experienciasimilar dedosingenieros, unoenFPGAy el otro enDSP, el sistemabasado en FPGAsera mejoren trminos de fiabilidady mantenimiento.Las razonesdetrs de estose deben a diferenciasdentro delProcesador Digital de Seales (DSP) yen el proceso de desarrollo de la ingeniera delFPGA.Existe un reto fundamentalal desarrollarunsoftwarecomplejo para cualquiertipo de procesador.En esencia, elprocesador digital de sealeses un ncleo deprocesamiento especializado, el cual es constantementereconfigurado paradiversas tareas,algunasrelacionadas conDSP, otras ms, orientadas acontrol oprotocolos.La complejidad decada tareaesms o menos equivalente,sin importarsi el diseousa un procesadordigitalde seales ounFPGA.Ambas rutasofrecenla opcin de utilizarimplementaciones de terceros, ya seanalgoritmoscomunesde procesamiento de seales, interfaces oprotocolos.Cada uno de ellosofrecela posibilidad de reutilizarla propiedad intelectual (IP) existenteenfuturos proyectos.LosFPGAofrecenuna aplicacin msnatural parala mayora de losalgoritmosDSP. A cada tarease le asignansus propios recursos, mismos que se ejecutande forma independiente.Intuitivamente, esto tiene ms sentido parael desarrollode una cadenacontinuade procesamiento de seales,dentrode montaje en lneaconrecursos dedicados para cadapaso.Sin embargo,los diseosFPGAtienden a seractualizadoscon mucha menos frecuenciay, generalmente, esun evento inusualpara un fabricante emitirun reajuste de camposobreun archivo deconfiguracin del FPGA.5. Costo: tiempo de desarrollo, tiempo de mercado y riesgoEste es otro elementopotencial dedebate.Algunos son de laopinin de quela programacin de los FPGAes difcil,ya quepor lo general requierendeun lenguajeorientado ahardwarecomoVerilogo VHDL; adems, las solucionesFPGApueden tomarun orden demagnitud mayorque lasdecdigo DSP, loque afectalos costos de desarrolloyaumenta el tiempodemercado; mientras que elDSP puedetenerun programa estndar deCy ejecutarlo.Este cdigoCpuede tenerun alto grado deramificacin y toma de decisiones;por ejemplo,las pilas de protocolosde sistemas de comunicaciones.Estoes difcil de implementarenunFPGA, pero,al mismo tiempo,se puede argumentarquela mayora de lossistemas de procesamiento deseal inician suvida comoun diagrama de bloquesde algn tipo.En realidad,la traduccin deldiagrama de bloques paraelFPGApuede serms simple que laconversin acdigoCpara elDSP.As que parece quetodo depende dela disponibilidad de conocimientos.ConclusinAl finalla eleccin entreunFPGAyunDSPdepende devarios factores,aparte delos ya mencionados.De hechono hay una recetamundialpara decidirlo, puesto que esun negocio de intercambio.Al final es trabajodel arquitectoelegiruna plataforma quese adapte mejor alos requisitos de un sistema en especfico. Fig. 7 Tabla de criterios de seleccin entre FPGA y DSP.Entonces, Por qu no usa todo el mundo un FPGA para DSP? Falta deexperiencia en el usodeestos dispositivos paraaplicaciones intensivasde cmputo. Los algoritmosdesarrollados paramicroprocesadorespueden ser difciles detraduciren hardware. Las herramientas de diseo an son inmaduraspara el diseoDSPbasado en FPGA. El xitode un diseo deFPGADSPdepende en gran medidadela experienciadel diseador,no sloen la implementacin delos diseosenFPGA,sino tambinen la adaptacin dealgoritmos para la eficiencia del hardware.

Fuentes de informacin: dsPIC Diseo prctico de aplicaciones, Jos Mara Angulo Usategi, McGraw Hill. Ayuda Electrnica: http://ayudaelectronica.com/que-es-un-dsp/ Latin American and Caribbean Conference for Enginieering Technology 2013: http://www.laccei.org/LACCEI2013-Cancun/RefereedPapers/RP157.pdf Instituto Universitario de Microelectrnica Aplicada: www.iuma.ulpgc.es/~nunez/clases-micros.../mpc08-sequeira-DSPs.doc FPGA Journal en espaol: http://espanol.techfocusmedia.net/index.php/articulos/dsp-o-fpga//