procesos digitales

Download procesos digitales

If you can't read please download the document

Upload: nestorgonzalez

Post on 06-Dec-2015

7 views

Category:

Documents


1 download

DESCRIPTION

explicacion señales

TRANSCRIPT

Procesamiento digitalparte 2 - aplicaciones Ao 2008Tcnicas Digitales IIIBasado en una publicacin de Rony Ferzli - Digital Signal Processing - LabQu es procesamiento de seal?Seal de Entrada(Analgica o Digital)Operacin, TransformacinProcesamientoSeal de salida(Analgica o Digital) Ejemplo de seales: Analgicas: Voz, msica, fotos, Video, radar, sonar, En el dominio Discreto/Digital: Voz digitalizada, msica, imgenes, video, radar , ...Tcnicas Digitales III2Qu es el procesamiento Digital de la Seal?Entrada digitalProcesamiento digitalSalida digitalOperaciones, Transformaciones sobre seales digitales(usando una computadora o algn otro dispositivoEspecializado en manejo de seales digitales) Y las seales...SealAnalgicaA/DProcesamiento DigitalD/ATcnicas Digitales III3Ejemplos PorquDigital??Tcnicas Digitales III4Aplicacin TpicaPaso 1: Un sensor analgico capta la seal (ej: microfono)Paso 2: Conversin A/DPaso 3: DSP procesa la informacin digital (ej., compresin, supresin de ruido)Paso 4: D/A para recuperar la seal analgica originalTcnicas Digitales III5Qu es procesamiento digital en tiempo real?Entrada DigitalProcesamientoen tiempo realSalida DigitalRequiere un tratamiento, o transformacin de la sealLo ms rapidamente posible para mantener una ciertaSincronizacin 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 III6Procesamiento 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 III7Qu 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 III8Porqu 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 III9Aplicaciones del procesamiento Digital Procesamiento de vozCompresinReconocimientoVerificacin, adecuacin de vozSintesis de vozAmplificacin, Cancelacin de eco Procesamiento de audio Compresion Reproduccin 3-DTcnicas Digitales III10Procesamiento de Imgenes Procesamiento Compresin Reconocimiento de Patrones Cancelacin de fantasmas (Ghost cancellation) Reduccin de ruido Seguimiento de objetos Fusin de imgenesTcnicas Digitales III11Aplicacion DSP a las comunicaciones MODEM Correlacion (filtros de igualcin) Canceladores de eco ecualizadores Telefona Celular Compresin de voz Software de RadioTcnicas Digitales III12DSP : PagerControlado por la unidad de manejo dela potencia (Power Management Unit) RF RFReceiverReceiverMicrocontrollerMicrocontroller Chip Chip Pager PagerPeripherals PeripheralsADCADC Pager PagerProtocol ProtocolDecoderDecoderDSP DSPChip Chip-Decodificacin delespectro- Compresin-Procesamiento de vozDACDACFLEX is a popular pager protocolcreated by Motorolahttp://www.motorola.com/FLEXTcnicas Digitales III13DSP : PagerFLEX is a Pager protocol usingTDMA conceptTcnicas Digitales III14DSP : Telfonos CelularesControlled by Power Management Unit RF RFReceiverReceiverMicroprocessorMicroprocessor Chip Chip Cell CellPeripherals Peripherals RF RFCodec CodecDSP DSPChip Chip-Codificador de voz-Reconocimiento de voz- Ecualizadores- Cancelacin de ruido de antenaVoice VoiceCodec Codec-Tcnicas de mejoramiento de imgenTcnicas Digitales III15DSP : Telfono celularTcnicas Digitales III16DSP: Voz sobre IP Micro Microprocessor processorDSP DSPChip ChipMemory Memory(Card or (Card or Chip) Chip)PeripheralsVoice VoiceCodec CodecAudio Coders-MP3-AC3-AACTcnicas Digitales III17DSP: Voz sobre IPTcnicas Digitales III18Mercado DSP Por CompaaY en el 2002participacin en el mercado en el 200120%24%40%Texas InstrumentsMotorolaAgere8%Analog DevicesOther16%12%43%9%14%14%Tcnicas Digitales III19Mercado DSP Por aplicacinAo 20036%8%4% 3%WIRELESSCONSUMERMULTIPURPOSE11%68%WIRELINECOMPUTERAUTOMOTIVETcnicas Digitales III20Mercado 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 2002Tcnicas Digitales III21En aplicaciones portables es necesario procesadores de alta performanceUltra Low powerAlta performancePerformancePowerCosto efectivoAo: 2003Baja potenciaMediana PerformanceCosto efectivoAo: 1999Tcnicas Digitales IIITiempo22Que 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 realTcnicas Digitales III23Ejemplo: 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] donde h[k] es un array de constantesy[n]=0;For (n=0; n B;R0 + 1 -> R0;R1 + 1 -> R1;Dec N (initially equals to 3);Test for the value;Different than zero loop again;Move result to memoryTcnicas Digitales III25MAC usando un DSP La arquitectura Harvard permite multiples lecturas a memoria11123X11249ClrRepMACAN*(R0)+, *(R1)+, A;Clear Accumulator A; Rep N times the next instructionR244123; Fetch the two memory locations pointed by R0 and R1,multiply them together and add the result to A, the final result isstored back in A; Move result to memoryMovA, *R2Tcnicas Digitales III26Desventajas de un PPG Mas instrucciones/tareas Memoria comn para datos y programa Limitado ancho de banda de bus/memoriaSolucin: Arquitectura DSPTcnicas Digitales III27PPG Slo el camino de los datosMemory Data BusMemoryRegister 1Register 2ALUMisma memoria para datos y programaTcnicas Digitales III28DSPs Slo camino de los datosProgram Memory Data BusData Memory Data BusProgramMemoryUn chip DSP es unmicroprocesorespecialmente diseadopara aplicaciones DSP.Arquitectura optimizadapara proveerprocesamiento veloz deseales discretas en eltiempo, ej: Multiplicar yAcumular (MAC) en unsolo ciclo DataMemoryMultiplexerMultiplexerALUAccumulatorTcnicas Digitales III29Estructura de MemoriaTcnicas Digitales III30DSP vs PPGRISC vs. CISCRISCEmphasis on softwareSingle-clock,reduced instructiononlyIncludes multi-clockcomplex instructionslarge code sizeSpends more transistorson memory registersTransistors used for storingcomplex instructionsCISCEmphasis on hardwareSmall codesizesArquitectura de memoria Arquitectura de memoria Harvard vs. Von Neuman Transferencias de datos concurrentes diferente manejo de la cache Memoria on-chipMAC Multiply ACcumulate instructionInstrucciones de multiplicar y acumularTcnicas Digitales III31DSP vs PPGMultiple unidades en paraleloMultiplicar y acumular (posiblemente varias unidades)Clculos de direcciones en paralelo para procesarRegisto circularALU especial para calculo de direccionesBit reversed addressingDireccionamiento circularSoftware looping: escrito en cdigo assembly para mejorar los saltosHardware looping: hardware dedicado usando lazos con registros contadoresAccesos a memoriaLoops automticos (lazo)Hardware para manejo de cmputo aritmtico(en PPG esnecesario multiples ciclos) Desplazamientos (Shifters) Guard bits Previenen SaturationOverflow!Tcnicas Digitales III32DSP versus PPGEl 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 controllerPerifricos integrados Bit-manipulation unit Enhanced debugging modulePerifricos incluidos en el chip Timer serial port Links de comunicacin DSP a DSP Ethernet ATM host ports input/output pinsAdaptacin para FFT bit reverse addressingInstrucciones especiales Soporta movimientos paralelos (Parallel move support) Instrucciones de lazo Instrucciones especiales de Hardware (ej: FIR)Tcnicas Digitales IIIMemoria de datosDMCorePMMemoria de programa33Mejora 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-procesadoresTcnicas Digitales III34Por qu considerar un DSP como alternativa de diseo? Los sistemas Wireless requieren una muy alta performance y elevado ancho de banda.Performance3G2.5G2G~100MIPS8-13 Kbps~100,000MIPS384-2000 Kbps~10,000MIPS64-384 KbpsLa performance de un DSP podra no ser uficiente para futuras aplicacionesBit RateTcnicas Digitales III35Operaciones aritmticolgicasMultiplicacin y sumapermite una rpida ejecucinde operaciones iterativasDiagrama de bloques de laarquitectura del PIC-12C5XXClculos sobre registros auxiliarespara direccionamientos indirectostanto a memoria de datos comode programa.Tcnicas Digitales IIIdeDiagrama 36bloques del DSP TMS320F241Cules 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 III37ASIC - VentajasVelocidadConsumo de potencia bajocosto/performanceFlexibilidad para diseoTcnicas Digitales III38ASIC- Desventajas Alto costo de desarrollo Lentos ciclos de desarrolo InflexibleOtra solucinFPGATcnicas Digitales III39Qu 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 III40FPGA - Ventajas Mayor flexibilidad que un ASIC Alta Performance en algunas aplicaciones Reusabillidad de Hardware para diferentes aplicacionesTcnicas Digitales III41FPGA - Desventajas Largo ciclo de desarrollo Caro comparado con un DSP Mayor consumo de potencia comparado con un DSPTcnicas Digitales III42Por 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 III43Tipos 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, DSP32XXTcnicas Digitales III44Punto fijo Vs punto flotante Fixed Point/Floating Point Procesadores de punto fijo son :baratopequeoMenos consumoDifcil 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 flotanteTcnicas Digitales III45Punto fijo Vs punto flotantePunto FlotanteAplicacionesModemsDigital Subscriber Line (DSL)Estaciones WirelessCentrales telefnicasImgen digitalGrficos 3DSpeech RecognitionVoice over IPPunto FijoAplicacionesProductos portables2G, 2.5G y 3G tel. CelularesDigital Audio PlayersDigital CamerasElectronic BooksReconocimiento de vozReceptores GPSBiomedicionesReconocimiento de huellasdigitalesTcnicas Digitales III46rbol de la familia MotorolaMotorola DSP Family Tree [2003]Floating Point DSPChips Discontinued!!TI Tree56800DSP56F801DSP56F802DSP56F803DSP56F805DSP56F807DSP56F826DSP56F82756800EDSP56852DSP56853DSP56854DSP56855DSP5685756300DSP56301DSP56303XC56309XC56L307DSP56311DSP56321DSPB56362DSPB56364DSPB56366DSPA56367DSPA56371MSC8100MSC8101MSC8103DSP56858MC56F8322MC56F8323MC56F8345MC56F8346MC56F8356MC56F8357Tcnicas Digitales III4756800 DSP Family, 16-bit Fixed PointSpecifications Processing capability of up to 35 millioninstructions per second (MIPS)Running at 70 MHz Requires only 2.73.6 V of powerFeatures Single-instruction cycle 16-bit x 16-bitparallel multiply-accumulator Two 36-bit accumulators includingextension bits Single-instruction 16-bit barrel shifter Parallel instruction set with unique DSPaddressing modes Low-power wait and stop modes Operating frequency down to DC16-bit Timer ModuleSynchronous serial interface module(SSI)Serial peripheral interface (SPI)Programmable general-purpose I/OApplicationsMotion Control Smart appliances Environmental controls InstrumentationIndustrial Uninterruptable powersupplies Noisecancellation/suppression Temperature control HVAC Inverters and AC-to-DCconversion Lighting AutomationTransportationInstrumentationTcnicas Digitales III4856800E DSP Family, 16-bit Fixed PointSpecifications Processing capability of up to 120million instructions per second (MIPS)Running at 120 MHz Requires only 2.73.6 V of powerFeatures40K x 16-bit Program SRAM24K x 16-bit Data SRAM1K x 16-bit Boot ROMAccess up to 2M words of programmemory or 8M data memorySix (6) independent channels ofDMAApplicationsTelephony Telco interface Codecs LCD and Keypad supportClient-side IP phoneInternet Audio Internet Audio decoding Internet Audio stand-alone playerVoice ProcessingIncludes Also theMC56F300 Serieswhich containson chip FlashmemoryTwo (2) Enhanced SynchronousSerial Interfaces (ESSI)Two (2) Serial CommunicationInterfaces (SCI)Serial Port Interface (SPI)8-bit Parallel Host InterfaceGeneral Purpose 16-bit Quad TimerJTAG/Enhanced On-Chip Emulation(OnCE) for unobtrusive, real-timedebuggingComputer Operating Properly(COP)/Watchdog TimerTime-of-Day (TOD)Up to 47 GPIOTcnicas Digitales III4956300 DSP Family, 24-bit Fixed PointSpecifications Processing capability of up to 480million instructions per second (MIPS)Running at 240 MHz Requires only 1.63.3 V of powerFeaturesObject code compatible with theDSP56000 core with highly parallelinstruction setData Arithmetic Logic Unit (DataALU) with fully pipelined 24 x 24-bitparallel Multiplier-Accumulator(MAC)Direct Memory Access (DMA) withsix DMA channels supportinginternal and external accessesDigital Phase Lock Loop (DPLL)allows change of low-power DivideFactor (DF) without loss of lockHardware debugging supportincluding On-Chip Emulation(OnCETM) module, Joint Test ActionGroup (JTAG) Test Access Port(TAP)Two Enhanced Synchronous SerialInterfaces (ESSI0 and ESSI1Serial Communications Interface(SCI)Triple timer moduleUp to 34 GPIOApplicationsMultimediaTelecommunciationVideo conferencingBase transceiver stationsPacket telephonyTcnicas Digitales III50MSC8100 Family, 16-bit Fixed PointSpecifications Processing capability of up to 4400million instructions per second (MIPS)Running at 300 MHz Requires only 1.63.3 V of powerFeaturesFour 250/275 MHz StarCore SC140DSP extended cores16 ALUs on a chip deliver up to4000/4400 MMACSPerformance equivalent to a 1.0/1.1GHz SC140 CoreIndustry's largest on-chip SRAMmemoryApplications 2.5G Wireless System 3G Wireless SystemIP TelephonyCompression G.7xx speech codersOptimized fornetworkinginfrastructureapplications1436 KB of internal memoryEfficient multi-level memoryhierarchyDual external industry-standard 60x-compatible buses9.6 Gbps peak bus throughputFour independent Time-DivisionMultiplex (TDM) Interfaces400 Mbps peak serial datathroughput Accesses various externalmemories, including SDRAMs,SRAMs, SSRAMs, EPROMs, andFlashTcnicas Digitales III51rbol de la familia TIRef: TI DSP Selection Guidehttp://focus.ti.com/lit/ml/ssdv004m/ssdv004m.pdfTI DSP Family Tree [2003]Motorola TreeC5000C6000C2000C3000C24xF2407, F2406F2403, F2402F2401, C2406C2404, C2402C2401, F243F241, C242F240C28xF2810F2812C3xC33C32C31C30C54x C54x + RISCC5416C5410C5409C5407C5404C5402C5401C549C54CST, C54V90C5470C5471C55xC5510C5509C5502C5501C55x + RISC C62xOMAP5910C6211C6205C6204C6203C6202C6201C64xC6416C6415C6414C6412C6411DM640DM641DM642C67xC6713C6712C6711C6701Tcnicas Digitales III52TMS320C24x DSP Generation, 16-bit Fixed Point - Control Optimized DSPSpecificationsUp to 40-MIPS operationThree power-down modes3.3-V and 5-V designsFeatures 375-ns (minimum conversiontime) analog-to-digital (A/D)converter Dual 10-bit A/D converters Up to four 16-bit general-purposetimers Watchdog timer module Up to 16 PWM channels Up to 41 GPIO pins Five external interrupts Up to 32K words on-chipsectored Flash I/O Modules Controller Area Network(CAN) interface module Serial communicationsinter-face(SCI) Serial peripheral interface(SPI) Boot ROM (LF240x andLF240xA devices)ApplicationsAppliancesCompressorsIndustrial automationUninterruptible power(UPS) systemsAutomotive brakingsteering systemsElectric meteringPrinters and copiersHand-held power toolsElectronic coolingIntelligent sensorsTunable lasersConsumer goodsFuel pumpsIndustrial frequencyRemote monitoringID tag readersTcnicas Digitales III53TMS320C28x DSP Generation, 16-bit Fixed Point Control Optimized DSPSpecifications 32-bit fixed-point C28x DSP core 150-MIPS operation 1.8-volt core and 3.3-voltperipheralsFeatures Ultra-fast 2040 ns service timeto any interrupts 32-/64-bit saturation, single-cycleread-modify-write instructions, and64/32 and 32/32 modulus division High-performance ADC 32 32 single-cycle fixed-pointMAC Dual 16 16 single-cycle fixed-pointMACsOn Chip flash memoryI/O modules: SPI, SCI, CANApplications Lighting Optical networking(ONET) Power supplies Industrial automation Consumer goodsTcnicas Digitales III54TMS320C3x DSP Generation, 32 bit Floating Point First GenerationSpecifications Performance up to 150 MFLOPS 32 bit Floating point Highly-efficient C language engine Large address space: 16 Mwords Fast memory management with on-chip DMAFeatures Parallel multiply andarithmetic/logical operations oninteger or floating-point numbers in asingle cycleEight extended-precision registersApplicationsDigital audioLaser printers, copiers,scannersBar-code scannersVideoconferencingIndustrial automation androboticsVoice/facsimileServo and motor controlTcnicas Digitales III55TMS320C54x DSP Generation, 16-bit Fixed Point Power Efficient DSPSpecifications 16-bit fixed-point DSPs Power dissipation as low as 60 mWfor 100 MIPS Single- and multi-core productsdelivering 30532 MIPS performance 1.2-, 1.8-, 2.5-, 3.3- and 5-V versionsavailable 6-channel DMA controller per coreFeatures Integrated Viterbi accelerator 40-bit adder and two 40-bitaccumulators to support parallelinstructions 40-bit ALU with a dual 16-bitconfiguration capability for dual one-cycle operations 17 17 multiplierallowing 16-bit signed or unsignedMultiplication Four internal buses and dualaddress generators enable multipleprogram and data fetches andreduce memory bottleneck Single-cycle normalization andexponential encoding Eight auxiliary registers and asoftware stack enable advancedfixed-point DSP C compiler Power-down modes for batterypowered applicationsApplications Digital cellular communications Personal communicationssystems (PCS) Pagers Personal digital assistants Digital cordless communications Wireless data communications Networking Computer telephony Voice over packet Portable Internet audio ModemsTcnicas Digitales III56 TMS320C54x DSP + RISC,16-bit Fixed Point System Level DSPSpecifications Dual CPU processor integrating aTMS320C54x DSP core and anARM7TDMI RISC 1.8-volt core and 3.3-voltperipheralsFeaturesTMS320C54x DSP core subsystem 100-MIPS operation 72 kwords RAM Two multi-channel buffered serial ports(McBSPs) Direct memory access (DMA) controller Phase-locked loop External memory interface ARM port interface (API)ARM7TDMI RISC core subsystem 47.5-MHz operation 16 KByte zero-wait-state SRAM Memory interface (SDRAM, SRAM,ROM, Flash) Single-port 10/100 Base-TEthernet Interface (C5471 DSP only) 36 general-purpose I/O (ARMI/O) Two UARTs (one IrDA) Serial peripheral interface (SPI)I 2 C interfaceApplications wireless data Smart pen pads Text-to-speech Voice recognition Vommand control Access point controller Networked security Industrial control and emergencyradioTcnicas Digitales III57TMS320C55x DSP Generation, 16-bitFixed Point Most Power Efficient DSPSpecifications C55x DSP core delivers 300 MHzfor up to 600-MIPS performance 1.6-volt core and 3.3-voltperipheralsFeatures Advanced automatic powermanagement Configurable idle domains toextend your battery life Shortened debug for faster time-to-market 144-MHz/200-MHz clock rate 256-KB RAM, 64-KB ROM Three McBSPs, I 2 C, watchdogtimer, general-purpose timers USB 2.0 full-speed (12 Mbps)10-bit ADCreal-time clock (RTC)Applications Feature-rich, miniaturized per-sonal and portable products 2G, 2.5G and 3G cell phonesand basestations Digital audio players Digital still cameras Electronic books Voice recognition GPS receivers Fingerprint/Pattern recognition Wireless modems Headsets BiometricsTcnicas Digitales III58 TMS320C55x DSP + RISC,16-bit Fixed Point OMAP ProcessorSpecifications Dual CPU processor integrating aTMS320C55x DSP core and anARM925TDMI RISC @150 MHz 1.8-volt core and 1.8-voltperipheralsFeatures150-MHz TI-enhanced ARM925 16 KB instruction cache and 8 KB datacache Data and instruction MMUs 32-bit and 16-bit instruction sets150-MHz TMS320C55x DSP 12 KW (24 KB) instruction cache 80 KW (160 KB) SRAM 16 KW (32 KB) ROM Two 16-bit memory interfacesfor SDRAM and flash Nine-channel system DMAcontroller LCD controller USB 1.1 host and client MMC/SD card interface Seven serial ports plus threeUARTs, Nine timers, Keyboard interface Less than 250 mW at 1.6 VApplications Internet appliances Applications processing Enhanced gaming Webpad Point-of-sale Medical devices Industry-specific PDAs Telematics Digital media processing Military and government cellularTcnicas Digitales III59TMS320C62x DSP Generation, 16-bit Fixed Point High Performance DSPSpecifications 16-bit fixed-point DSPs Up to 2400 MIPSRunning at 300 MhzFeatures C6000 DSP Platform VelociTIadvanced architecture Up to eight 32-bit instructionsexecuted each cycle Eight independent, multi-purposefunctional units thirty-two 32-bitregisters Industrys most advanced Ccompiler and Assembly Optimizermaximize efficiency and performanceApplications Pooled modems Digital Subscriber Line (xDSL) Wireless basestations Central office switches Private Branch Exchange (PBX) Digital imaging Call processing 3D graphics Speech recognition Voice over packetTcnicas Digitales III60TMS320C67x DSP Generation, 32-bitFloating Point High Performance DSPSpecifications 32-bit loating point DSPs Up to 1350 MFLOPSRunning at 225 MhzFeatures C6000 DSP Platform VelociTIadvanced architecture Up to eight 32-bit instructionsexecuted each cycle Eight independent, multi-purposefunctional units thirty-two 32-bitregisters Industrys most advanced Ccompiler and Assembly Optimizermaximize efficiency and performance IEEE floating-point format Up to 1350 MFLOPS at 225 Two new multi-channel serial ports(McASP) (C6713 DSP) can supportup to stereo channels of I2S (Inter ICSound) and compatible with S/PDIFtransmit protocol. Note I2S is aprotocol for transmitting 2 channelsof digital audio over a single serialconnectionApplications Pooled modems Digital Subscriber Line (xDSL) Wireless basestations Central office switches Private Branch Exchange (PBX) Digital imaging Call processing 3D graphics Speech recognition Voice over packetTcnicas Digitales III61TMS320C64x DSP Generation, 16-bit Fixed Point High Performance DSPSpecifications16-bit fixed point processorTMS320C64x DSP high per-formance core provides scalableperformance of up to 1.1 GHz The industrys fastest DSPs withup to 600 MHz (4800 MIPS)performance C64x DSPs are software compatiblewith TIs C62x DSPsFeatures C6000 DSP Platform VelociTIadvanced architecture Up to eight 32-bit instructionsexecuted each cycle Eight independent, multi-purposefunctional units thirty-two 32-bitregisters Industrys most advanced Ccompiler and Assembly Optimizermaximize efficiency and performanceApplicationsDSL and pooled modemsBasestation transceiversWireless LANEnterprise PBXMultimedia gatewayBroadband video transcodersStreaming video servers andclientsHighspeed raster imageprocessing (RIP)Tcnicas Digitales III62TI Families SummaryC24x and C28x families: low performance 16-bit fixed pointused for control purposeC54x family: mid-range performance 16-bit fixed pointC55x family: mid-range performance 16-bit fixed point withreduced power consumption and increased parallelismC5000 + RISC microprocessor: used for embedded applicationssuch as cell phone and PDAsC62x: high-range performance 16-bit fixed point supportingVLIW architectureC64x: very high performance 16-bit fixed point with extensioncapabilities of C62x with higher clock frequency (>2500 MIPS)C3x: first generation low performance 32-bit floating pointC67xx family: very high performance 32-bit floating pointTcnicas Digitales III63Qu chip selecciono?Motorola DSP56858 Family: DSP56800E Kit: DSP56858EVM Software: Metrowerks CodeWarrior Metrowerks is a Motorola company in charge of developing the software ApplicationsTelephonyClient side IP phoneInternet AudioVoice ProcessingTI TMS320C5510Family: TMS320C55xxKit: TMS320C5510DSKSoftware: TI Code Composer Studio v2.1ApplicationsTcnicas Digitales III64Cdigo 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 III65Por 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 III66Pero 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 III67Cmo escribo mejor cdigo C? Usar lazos simples Evitar llamados a subrutinas en lazos Usar subrutinas inlineEl 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 posibleUsar 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 III68DSP56858EVM KitDSP56858 chipUSB interface1 Mbit EEPROM/Data FlashFSRAM (256K)Parallel interfaceOn board 6 debugging LEDBoot Mode SelectorRS232 InterfaceAudio in/out (stereo)Tcnicas Digitales III69Qu 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 deviceTcnicas Digitales III70Aplicaciones del DSP56858ETelefonaLado cliente en telefonia sobre IPInternet AudioProcesamiento de vozTcnicas Digitales III71Modos 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 III72Modos de direccionamiento Direccionamiento indirecto Usado para acceder a una secuencia de nmeros almacenados en una zona consecutiva de la memoria de datos.X=8000HSTMLDADDADDSTL#X, R1 ; carga R1 con la direccin X*R1+, A ; carga acumulador A con 31*R1+, A ; suma -14 to A ->A*R1+,A ; 6 + A ->AA, *R1 ; almacena la salidaTcnicas Digitales III 31-14 6out73Buffer 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 bufferTcnicas Digitales III74Aplicacin del Buffer Circularx[n]{0.5,2,-3}h[n]y[ n] x[ n] h[n]y[ n] k x[k ]h[n k ]75Tcnicas Digitales IIIPseudo 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] porx[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 n0Tcnicas Digitales III76ConvolucinShifting0123450 0 0.2-3 2 0.5-3 2 -30.250.52-30.250.52-30.52-30.52 0.50.2500Tcnicas Digitales III77Buffer 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]X[-1] X[0]-3 20.5Al trmino de cadamuestracomputada vuelveatrs a x[-2]Tcnicas Digitales IIIbuffer Circular = 3h[0]h[1]h[2]h[3] 0 00.250.250.250.25 0 078Cdigo ensamblador.text_main:STM #Inputs,AR5STM #Coeff, AR2STM #Output, AR3STM #3, BKSTM #5, AR4STM #1, AR0; Pone el cdigo en la seccintext localizada en memoria; Comienzo de la subr. Ppal.; Apunta al array de Entradas; Apunta al array Coeff; Apunta a la salida (Output); Define el buffer circular; Define variable contadora; Incremento para el buffercircularTcnicas Digitales III79Cdigo ensambladorloopRPTZ A, #2 ; Borra Acumulador A y repite la sig. instruccion 3 vecesMAC *AR5+0%, *AR2+ ; Multiplica input*coeff + A ->A Incrementa puntero AR2 en uno e incrementa AR5 por AR0 usando el buffer circularSTL A, *AR3+ ; Almacena resultado en memoriaMAR *AR2-MAR *AR2- ; Decrementa 2 veces AR2BANZ loop, *AR4- ; Para que el lazo compute cada salida, saltando seis vecesRETTcnicas Digitales III80