Apuntes de: Sistemas embebidos (2009) Tema 2 © Benito Úbeda Miñarro ABSTRACT Descripción de los fundamentos en la arquitectura y funcionalidades de los dispositivos MCU, basándonos en la familia dsPIC. FAMILIAS DE PROCESADORES EMBEBIDOS Introducción Los SSEE se diseñan en base a microcontroladores (MCU), procesadores digitales de señal (DSP) y microprocesadores de propósito general. Los diseños basados en microcontrolador son probablemente los mas frecuentes dadas las múltiples aplicaciones que encuentran. Históricamente los fabricantes de semiconductores han desarrollado arquitecturas de microcontroladores de 8 bits, inicialmente bajo la arquitectura Von Newman y posteriormente bajo la arquitectura Harvard, pero a medida que las aplicaciones requerían mayores prestaciones y la tecnología de fabricación de chips avanzaba se consiguió fabricar, a precios reducidos, microcontroladores mas potentes con arquitecturas de 16 bits y de 32 bits. Junto con los microcontroladores, los Procesadores Digitales de Señal (DSP) también han experimentado una gran evolución. Éstos incorporan la filosofía de diseño de los microcontroladores pero incluyen aspectos específicos dentro de su arquitectura para mejorar las tareas del procesado de señales, esto es, máxima velocidad para permitir procesamiento en tiempo real, operaciones muy repetitivas, alta tasa de transferencia por los puerto de E/S y gran cantidad de memoria de datos. Los DSP se suelen construir en formato de 16 bits y 32 bits y emplean aritmética en punto fijo, en punto flotante o ambos. En adelante y en busca de una mayor brevedad, se hará alusión especifica a la familia dsPIC de Microchip, aunque muchos de los términos comentados serán válidos para cualquier otra familia. 2.1.- Microcontroladores de 8 y 16 bits La idea bajo la que se diseñan los microcontroladores es incluir en un chip todo el sistema completo y si no es posible incluir la mayor parte de éste. La estructura fundamental y sus características básicas son muy parecidas en todas las familias de 2 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda Universidad de Murcia microcontroladores. Todos disponen de los bloques esenciales: Procesador, memoria de datos y de instrucciones, líneas de E/S, oscilador de reloj y módulos controladores de periféricos. Sin embargo, cada fabricante intenta enfatizar los recursos más idóneos para las aplicaciones a las que se destinan preferentemente. En este apartado se hace un recorrido de los principales recursos que se hallan en todos los microcontroladores describiendo las diversas alternativas y opciones que pueden encontrarse según el modelo seleccionado. En el punto siguiente veremos algunos de estos recursos tomando como base la familia dsPIC de Microchip. Arquitectura básica Aunque inicialmente todos los microcontroladores adoptaron la arquitectura clásica de von Neumann, en el momento presente se impone la arquitectura Harvard. La arquitectura de von Neumann se caracteriza por disponer de una sola memoria principal donde se almacenan datos e instrucciones de forma indistinta accediendo a ella a través de un sistema de buses único (direcciones, datos y control). En la actualidad, la mayoría de los microcontroladores responden a la arquitectura Harvard, entre ellos, la familia PIC. Figura 2.1. La arquitectura Harvard frente a la Von-Neumann. La arquitectura Harvard dispone de dos memorias independientes una, que contiene sólo instrucciones y otra, sólo datos. Ambas disponen de sus respectivos sistemas de 3 buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) simultáneamente en ambas memorias. Figura 2.2 Figura 2.2. La arquitectura Harvard dispone de dos memorias independientes para datos y para instrucciones, permitiendo accesos simultáneos. En el caso particular de los microcontroladores de Microchip, estos presentan básicamente las siguientes características: Conjunto de instrucciones RISC. Cada instrucción se codifica mediante una palabra de un numero de bits determinado (12, 14, 16, … según la gama). Puertos de entrada salida digitales ( I/O ) a los que se puede acceder pin a pin y configurar como entrada o como salida, mediante software. Varios temporizadores de 8, 16 o 32 bits, según el modelo. Divisores de frecuencia programables (PRESCALER), para uso con los temporizadores u otras utilidades . Temporizador para mantener en reset al conectar (Power-on reset). Temporizador perro guardian (Watchdog timer). Modo ahorro de energía (Power-saving SLEEP). Alta capacidad para entregar o generar corriente en los pines I/O (High source and sink current) Modos de direccionamiento directo, indirecto y relativo. Interfaz para reloj externo (External clock interface). Memoria de datos RAM, en general de tamaño reducido. Memoria de programa Flash de tamaños mas elevados, suficiente para albergar el programa. Además, dentro de la arquitectura, se suelen incluir un conjunto de módulos tales como: 4 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda Universidad de Murcia Canales de entradas analógicas. Comparadores analógicos. Conversores AD Memoria adicional de datos del tipo EEPROM. Capacidad de manejar interrupciones provocadas por fuentes externas e internas. Módulo oscilador interno, que es poco estable pero ahorra tamaño en el circuito. Salidas de señal PWM. Entradas para captura de señales digitales. Modulo de transmisión serie asíncrono, USART. Interfases para buses de comunicaciones CAN, I2C, SPI, USB. Interfaz directa para LCD Módulo para control de motores. … Describimos a continuación algunos de los bloques de mayor interés. El procesador o CPU Es el elemento más importante del microcontrolador y determina sus principales características, tanto a nivel hardware como software. Se encarga de direccionar la memoria de instrucciones, recibir el código de operación de la instrucción en curso, su decodificación y la ejecución de la operación que implica la instrucción, así como la búsqueda de los operandos y el almacenamiento del resultado. Existen tres orientaciones en cuanto a la arquitectura y funcionalidad de los procesadores actuales. CISC: Un gran número de procesadores usados en los microcontroladores están basados en la filosofía CISC (Computadores de Juego de Instrucciones Complejo). 5 Disponen de más de 80 instrucciones máquina en su repertorio, algunas de las cuales son muy sofisticadas y potentes, requiriendo muchos ciclos para su ejecución. Una ventaja de los procesadores CISC es que ofrecen al programador instrucciones complejas que actúan como macros. RISC: Tanto la industria de los computadores comerciales como la de los microcontroladores se han decantado hacia la filosofía RISC (Computadores de Juego de Instrucciones Reducido). En estos procesadores el repertorio de instrucciones máquina es muy reducido y las instrucciones son simples y generalmente, se ejecutan en un ciclo de instrucción. La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software del procesador. La familia PIC emplea este tipo de instrucciones. SISC: En los microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones, además de ser reducido, es “específico”, o sea, las instrucciones se adaptan a las necesidades de la aplicación prevista. Esta filosofía se ha bautizado con el nombre de SISC (Computadores de Juego de Instrucciones Específico). Memoria En los microcontroladores la memoria de instrucciones y datos está integrada en el propio chip. Una parte debe ser no volátil, tipo ROM, y se destina a contener el programa de instrucciones que gobierna la aplicación. Otra parte de memoria será tipo RAM, volátil, y se destina a guardar las variables y los datos. Hay dos peculiaridades que diferencian a los sistemas basados en microcontroladores de los computadores basados en microprocesador: 1.- No existen sistemas de almacenamiento masivo como disco duro o disquetes. 2.- Como el microcontrolador sólo se destina a una única tarea, en la memoria ROM, sólo hay que almacenar un único programa de trabajo. La RAM en estos dispositivos es de poca capacidad pues sólo debe contener las variables y los cambios de información que se produzcan en el transcurso del 6 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda Universidad de Murcia programa. Por otra parte, como sólo existe un programa activo, no se requiere guardar una copia del mismo en la RAM pues se ejecuta directamente desde la ROM. Los usuarios de computadores personales están habituados a manejar Megabytes de memoria, pero, los diseñadores con microcontroladores trabajan con capacidades de ROM comprendidas entre 512 bytes y 48 kbytes y capacidades de RAM del orden de unos pocos bytes a algún Kbyte. Según el tipo de memoria ROM que dispongan los microcontroladores, la aplicación y utilización de los mismos es diferente. Se describen las cinco versiones de memoria no volátil que se pueden encontrar en los microcontroladores del mercado en general y de la familia PIC en particular: 1.- ROM con máscara Es una memoria no volátil de sólo lectura cuyo contenido se graba durante la fabricación del chip. El elevado coste del diseño de la máscara sólo hace aconsejable el empleo de los microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades. 2.- OTP El microcontrolador contiene una memoria no volátil de sólo lectura “programable una sola vez” por el usuario. OTP (One Time Programmable). Es el usuario quien puede escribir el programa en el chip mediante un sencillo grabador controlado por un programa desde un PC. La versión OTP es recomendable cuando es muy corto el ciclo de diseño del producto, o bien, en la construcción de prototipos y series muy pequeñas. Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptación mediante fusibles para proteger el código que contienen. 3.- EPROM Los microcontroladores que disponen de memoria EPROM (Erasable Programmable Read OnIy Memory) pueden borrarse y grabarse muchas veces. La grabación se realiza, como en el caso de los OTP, con un grabador gobernado desde un PC. Si, posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en 7 su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las cápsulas son de material cerámico y son más caros que los microcontroladores con memoria OTP que están hechos con material plástico. Actualmente se encuentran en desuso. 4.- EEPROM Se trata de memorias de sólo lectura, programables y borrables eléctricamente EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la programación como el borrado, se realizan eléctricamente desde el propio grabador y bajo el control programado de un PC. Es muy cómoda y rápida la operación de grabado y la de borrado. Dado que el numero de ciclos de borrado y escritura es muy elevado (100.000 ciclos en dsPIC) la principal aplicación que tiene este tipo de memoria es como memoria de datos que interesa que sean no volátiles pero reescribibles múltiples veces, tal es el caso de parámetros de calibración de sensores. Por otro lado, este tipo de memoria es relativamente lenta. 5.- FLASH Se trata de una memoria no volátil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM pero consume menos y es más pequeña. Es la tecnología que se está imponiendo en la actualidad. A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es más rápida y de mayor densidad que la EEPROM. La alternativa FLASH está recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de programa no volátil. Es más veloz aunque tolera menos ciclos de escritura/borrado (10.000 ciclos en los dsPIC). Las memorias EEPROM y FLASH son muy útiles al permitir que los microcontroladores que las incorporan puedan ser reprogramados “en circuito”, es decir, sin tener que sacar el circuito integrado de la tarjeta. Así, un dispositivo con este tipo de memoria incorporado al control del motor de un automóvil permite que pueda modificarse el programa durante la rutina de mantenimiento periódico, compensando los desgastes y otros factores tales como la compresión, la instalación de nuevas 8 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda Universidad de Murcia piezas, etc. La reprogramación del microcontrolador puede convertirse en una labor rutinaria dentro de la puesta a punto. Puertos de Entrada y Salida digitales La mayor parte de los pines que posee el encapsulado de un chip microcontrolador se dedican a soportar las numerosas líneas de E/S que lo comunican con el mundo exterior. Esta líneas de E/S se destinan a proporcionar el soporte a las señales de entrada, salida y control necesarias en cada diseño. Los pines de E/S se suelen asociar en puertos de 8 bits, de 16 bits o de un numero determinado de pines, dependiendo de cada referencia de chip en concreto. La tensión y la corriente de entrada/salida de cada pin dependerá también de cada chip por lo que siempre es necesario consultar el “data sheet” suministrado por el fabricante. Figura 2.3.- Pin A0 configurado como salida y como entrada. Las líneas digitales de cada uno de los puertos pueden configurarse como Entrada o como Salida, quedando un circuito semejante al que aparece en la figura 2.3. Para ello se necesitará configurar algún registro del microcontrolador. En el caso de la familia PIC se pone un “1” ó un “0” en el bit correspondiente del registro TRISA, TRISB, … según el puerto seleccionado. La máxima corriente que son capaces de entregar a una carga o son capaces de adquirir son parámetros de gran importancia. Cuando el dispositivo sea incapaz de suministrar la suficiente corriente a un determinado dispositivo, será necesario intercalar un DRIVER de corriente adecuado. 9 1.4.8.3 Relay Interface When we want to switch inductive loads such as relays we have to use a diode in the circuit to prevent the transistor from being damaged (see Fig. 1.29). An inductive load can generate a hapter 1 Figure 1.29: Driving an Inductive Load (e.g., a Relay) Figura 2.4. Ejemplo de DRIVER de corriente para poder excitar a un relé electromecánico. PCFG3- AN7 PCFG0 AN6 AN5 AN4 AN3 AN2 AN1 Reloj principal AN0 Vr ef! Vr ef" 0000 A A A A A A A A Vdd Vss 0001 A A A A Vref! A A A RA3 Vss w w w. n e w n e s p r e s s . c o m Todos disponen un circuito oscilador que genera una onda6/29/07 D losA microcontroladores A A A A Vdd de Vss Ch01-H8615.indd 0010 D D35 0011 D D 0100 D D D D A D A A Vdd Vss 0101 D de todas sistema. Dsincronización D D Vref! D lasAoperaciones A RA3 del Vss 0110 D D D D D D D D Vdd Vss 0111 D D D D D D D D Vdd Vss 1000 A Generalmente, el circuito de reloj está incorporado en el microcontrolador y sólo se A A A Vref! Vref" A A RA3 RA2 1001 D Dnecesitan A A 1010 D D A 1011 D D A 1100 D Dcristal D 1101 D D 1110 D D 1111 D 4:58:20 PM D A A A A Vss cuadrada deVref! alta frecuencia, que RA3 configura los impulsos de reloj usados en la A pocos A A A Vdd exteriores Vss unos componentes para seleccionar y estabilizar la A Vref! A A A RA3 Vss A Vref! Vref" A A RA3 RA2 frecuencia de trabajo. Dichos componentes suelen consistir en un resonador del tipo deAcuarzo, RC oRA2 externo. El empleo de un tipo u otro de Vref! cerámico, Vref" A A interno RA3 D D Vref! Vref" A RA3 RA2 resonador dependerá de Alas prestaciones que necesitemos del MCU, medidas en D D de DMillones D D D D D A Vdd Vss Instrucciones por Vref! Vref D Segundo A RA3(MIPS) RA2 u de operaciones por segundo (MOPS). Figure 1.17: ADCON1 Bit Definitions También hay que tener en cuenta que en la tecnología empleada para fabricar los MCU, que habitualmente es CMOS, el aumentar la frecuencia de reloj supone T, or HS modes, an external oscillator can be connected to the OSC1 input as shown disminuir el tiempo en que se ejecutan las instrucciones pero lleva aparejado un 18. This can be a crystal-based oscillator, or simple logic gates can be used to design incremento del consumo de energía. ator circuit. The PIC Microcontroller Family Figure 1.18: Using an External Oscillator Figure 1.19: Crystal Oscillator Circuit Crystal Operation Figura 2.5. Dos posibles formas de aplicar el reloj: a) reloj externo. B) mediante un resonador de cristal de Table 1.6: Capacitor Selection for Crystal Operation n in Fig. 1.19, in this mode of operation an external crystal and two capacitors are Mode Frequency C1, C2 cuarzo.should be d to the OSC1 and OSC2 inputs of the microcontroller. The capacitors LP 32 kHz 68–100 pF LP 200 kHz 15–33 pF s in Table 1.6. For example, with a crystal frequency of 4 MHz, two 22-pF capacitors XT 100 kHz 100–150 pF sed. XT 2 MHz 15–33 pF 10 ewnespress.com XT 4 MHz HS 4 MHz 15–33 pF 15–33 pF HS 10 MHz 15–33 pF 27 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda Universidad de Murcia Recursos especiales Cada fabricante oferta numerosas versiones de una arquitectura básica de microcontrolador. En algunas amplía las capacidades de las memorias, en otras incorpora nuevos recursos, en otras reduce las prestaciones al mínimo para aplicaciones muy simples, etc. La labor del diseñador es encontrar el modelo mínimo que satisfaga todos los requerimientos de su aplicación. De esta forma, minimizará el coste, el hardware y el software. Los principales recursos específicos que suelen incorporan los microcontroladores son: • Temporizadores o “Timers”. Se emplean para controlar periodos de tiempo (temporizadores) y para llevar la cuenta de acontecimientos que suceden en el exterior (contadores). Para la medida de tiempos se carga un registro con el valor adecuado y a continuación dicho valor se va incrementando o decrementando al ritmo de los impulsos de reloj, ciclos de instrucción o algún múltiplo hasta que se desborde y llegue a 0, momento en el que se produce un aviso, generalmente, en forma de interrupción. Cuando se desean contar acontecimientos que se materializan por cambios de nivel o flancos en alguna de las patitas del microcontrolador, el mencionado registro se va incrementando o decrementando al ritmo de dichos impulsos. Para calcular el numero de periodos que habrá que contar para medir un determinado intervalo temporal, habrá que tener en cuenta: La frecuencia de reloj principal. Si empleamos PLL para multiplicar la frecuencia del resonador. Si empleamos algun prescaler para dividir la frecuencia de entrada al contador. El numero de ciclos de reloj que se necesitan para ejecutar una instrucción (4 en la familia PIC). 11 • Perro guardián o “Watchdog”. Cuando un computador personal se bloquea por un fallo del software u otra causa, se pulsa el botón del reset y éste se reinicializa, pero un microcontrolador funciona sin el control de un supervisor y de forma continuada las 24 horas del día. El Perro guardián consiste en un temporizador que, cuando se desborda y pasa por 0, provoca un reset automáticamente en el sistema. Se debe diseñar el programa de trabajo que controla la tarea de forma que refresque o inicialice al Perro guardián antes de que provoque el reset. Si falla el programa o se bloquea, no se refrescará al Perro guardián y, al completar su temporización, provocará un reset del sistema. El perro guardian funciona a partir de un reloj interno, tipo RC, independiente del reloj principal del sistema para conseguir una mayor fiabilidad. • Protección ante fallo de alimentación o “Brownout”. Se trata de un circuito que resetea al microcontrolador cuando el voltaje de alimentación (VDD) es inferior a un voltaje mínimo (“brownout”). Mientras el voltaje de alimentación sea inferior al de brownout el dispositivo se mantiene reseteado, comenzando a funcionar normalmente cuando sobrepasa dicho valor. • Estado de reposo o de bajo consumo. Son abundantes las situaciones reales de trabajo en que el microcontrolador debe esperar, sin hacer nada, a que se produzca algún acontecimiento externo que le ponga de nuevo en funcionamiento. Para ahorrar energía, (factor clave en los dispositivos portátiles alimentados con baterías), los microcontroladores disponen de una instrucción especial (SLEEP en los PIC), que les pasa al estado de reposo o de bajo consumo, en el cual los requerimientos de potencia son mínimos. En dicho estado se detiene el reloj principal y se “congelan” sus circuitos asociados, quedando en estado de mínimo consumo. Al activarse una interrupción ocasionada por el acontecimiento esperado, el microcontrolador se despierta y reanuda su trabajo. 12 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda Universidad de Murcia • Conversores Analogicos/Digitales (ADC) Los microcontroladores que incorporan un Conversor A/D (Analógico/Digital) pueden digitalizar señales analógicas procedentes de sensores u otras fuentes de información. Suelen disponer de un multiplexor analógico que permite aplicar a la entrada del A/D, en forma secuencial, diversas señales analógicas desde determinados pines circuito integrado. The PIC Microcontroller Family Channel 0 Channel 1 Channel 2 Channel 3 Channel 4 Channel 5 Channel 6 Channel 7 A/D Converter del 23 Converted Digital Signal Multiplexer Figure 1.15: Multiplexed A/Daplicadas Structuremediante un multiplexor analógico. Figura 2.6. Un único conversor y varias fuentes de señal chosen by programming converter andmáxima is typically V. Thus, if we are usingde bits Factores claves enthe elA/D ADC son la registers frecuencia de5muestreo, el número a 10-bit converter (1024 quantization levels), the resolution of our converter will be 5/1024 ! de cuantificación así como la tensión de referencia empleada. 0.00488 V, or 4.88 mV; i.e., we can measure analog voltages with a resolution of 4.88 mV. For example, if the measured analog input voltage is 4.88 mV we get the 10-bit digital number “0000000001”; if thelaanalog input voltagedispone is 2 " 4.88 9.76 mV, Por ejemplo, familia dsPIC de!ADC de the 10 10-bit bits yconverted de 12 number bits pero la will be “0000000010”; if the analog input voltage is 3 " 4.88 ! 14.64 mV, the converted frecuencia de muestreo se encuentra en el ámbito de los 100 Ksps. number will be “0000000011”; and so on. In a similar way, if the reference voltage is 5 V and we are using an 8-bit converter (256 Conversores Digitales /Analógicos (DAC) quantization •levels), the resolution of the converter will be 5/256 ! 19.53 mV. For example, if the measured input voltage is 19.53 mV we get the 8-bit number “00000001”; if the analog input voltage is 2 " 19.53 ! 39.06 mV we get the 8-bit number “00000010”; and so on. En ocasiones se incluyen módulos DAC para transforma los datos digitales obtenidos The A/D converter is controlled by registers ADCON0 and ADCON1. The bit pattern of del procesamiento de señales en su correspondiente señal analógica. No obstante, al ADCON0 is shown in Fig. 1.16. ADCON0 is split into four parts; the first part consists of the necesitar externos del are tipoused condensadores e inductancias, highest two bitscomponentes ADCS1 and ADCS0 and they to select the conversion clock. These suelen internal RC oscillator or the external clock can be the conversion as in the emplear conversores D/A externos. Laselected salidaas digital dirigidaclock al DAC puede ser following table: paralelo o serie. 00 External clock/2 01 External clock/8 Una aplicación típica es para el filtrado de señales de audio y en la generación de 10 External clock/32 11señales Internal RC clock de formas de onda arbitraria, síntesis digital directa (DDS), etc. The second part of ADCON0 consists of the three bits CHS2, CHS1, and CHS0. These are the channel select bits, and theyanalógico. select which input pin is routed to the A/D converter. The • Comparador selection is as follows: CHS2:CHS1:CHS0 000 Channel 0 001 Channel 1 010 Channel 2 13 Algunos modelos de microcontroladores disponen internamente de un Amplificador Operacional que actúa como comparador entre una señal fija de referencia y otra variable que se aplica por una de las patitas del chip. La salida del comparador proporciona un nivel lógico 1 ó 0 según una señal sea mayor o menor que la otra. También hay modelos de microcontroladores con un módulo de tensión de referencia que proporciona diversas tensiones de referencia que se pueden aplicar en los comparadores. • Generador de pulsos de anchura variable, PWM. Son módulos denominados Output/Compare que proporcionan en su salida una señal de pulsos de anchura variable, que se ofrecen al exterior a través de las patitas del encapsulado. Variando Su principal aplicación es para controlar la velocidad de giro de motores eléctricos de corriente continua. • Puertos de comunicación. Tienen como objeto el dotar al microcontrolador de la posibilidad de comunicarse con otros dispositivos externos, tales como otros microcontroladores, sensores, actuadores, redes de comunicaciones, etc. mediante el empleo protocolos estándar. Algunos modelos disponen de recursos que permiten directamente esta tarea, entre los que destacan: • UART, adaptador de comunicación serie asíncrona. • SPI, adaptador de comunicación serie síncrona. • Puerto paralelo esclavo para poder conectarse con los buses de otros microprocesadores. • USB (Universal Serial Bus), bus serie para los PC. • Bus I2C, que es un interfaz serie de dos hilos desarrollado por Philips. 14 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda Universidad de Murcia • CAN (Controller Area Network), para permitir la adaptación con redes de conexionado multiplexado desarrollado conjuntamente por Bosch e Intel para el cableado de dispositivos en automóviles. En EE.UU. se usa el J185O. 2.1.2.- Familia dsPIC El fabricante Microchip lanzó la familia dsPIC con el objetivo de cubrir el nicho de mercado existente entre las aplicaciones que les basta con un microcontrolador y aquellas especificas donde los DSP de altas prestaciones son la solución idónea. La idea era conseguir, dentro de un mismo chip, las funciones MCU+DSP=DSC aunque con prestaciones mas limitadas, serían útiles a muchas aplicaciones industriales que emplean procesamiento de señales no muy complejo. dsPIC30F6011/6012/6013 dsPIC30F6011/6012/6013/6014 High Performanc como aparecen en la hoja de datos del fabricante: Digital Signal Controllers A partir de la gama dsPIC30F60xx vamos a comentar algunas de sus prestaciones tal High Performance Modified RISC CPU: • • • • • • • • • • • Modified Harvard architecture C compiler optimized instruction set architecture Flexible addressing modes 84 base instructions 24-bit wide instructions, 16-bit wide data path Up to 144 Kbytes on-chip Flash program space Up to 48K instruction words Up to 8 Kbytes of on-chip data RAM Up to 4 Kbytes of non-volatile data EEPROM 16 x 16-bit working register array Up to 30 MIPs operation: - DC to 40 MHz external clock input - 4 MHz-10 MHz oscillator input with PLL active (4x, 8x, 16x) • Up to 41 interrupt sources: - 8 user selectable priority levels - 5 external interrupt sources - 4 processor traps • I2C™ module supports Multi-Master and 7-bit/10-bit addressing • Two addressable UART modules wi buffers • Two CAN bus modules compliant w standard Analog Features: • 12-bit Analog-to-Digital Converter (A - 100 Ksps conversion rate - Up to 16 input channels - Conversion available during Slee • Programmable Low Voltage Detecti • Programmable Brown-out Detection generation Special Microcontroller Featu • Enhanced Flash program memory: - 10,000 erase/write cycle (min.) fo industrial temperature range, 100 • Data EEPROM memory: DSP Features: - 100,000 erase/write cycle (min.) f Se tratara de una CPU• de altas con arquitectura Harvard modificada, que industrial temperature range, 1M Dual data prestaciones fetch • Modulocada and Bit-reversed modes • Self-reprogrammable under softwar emplea 24 bits para codificar instrucción. • Two 40-bit wide accumulators with optional • Power-on Reset (POR), Power-up T Hay que tener en cuenta, quelogic aunque se disponga de 144 Kb de memoria de Start-up Timer (OST) saturation and Oscillator • 17-bit x 17-bit single hardware fractional/ • Flexible Watchdog Timer (WDT) wit programa, solo podemos direccionar 48Kcycle instrucciones. integer multiplier power RC oscillator for reliable oper • All DSP instructins are single cycle • Fail-Safe Clock Monitor operation: - Multiply-Accumulate (MAC) operation - Detects clock failure and switches low power RC oscillator • Single cycle ±16 shift • Programmable code protection • In-Circuit Serial Peripheral Features: 15 Programming™ (IC • Selectable Power Management mod • High current sink/source I/O pins: 25 mA/25 mA - Sleep, Idle and Alternate Clock m • Five 16-bit timers/counters; optionally pair up 16- • 24-bit wide instructions, 16-bit wide data path Analog Features: • Up to 144 Kbytes on-chip Flash program space • Up to 48K instruction words • 12-bit Analog-to-Digital Converter • Up to 8 Kbytes of on-chip data RAM - 100 Ksps conversion rate • Up to 4 Kbytes of non-volatile data EEPROM - Up to 16 input channels • 16 x 16-bit working register array - Conversion available during Sle • Up tode 30 instrucciones MIPs operation: por segundo e incorpora 41• fuentes Consigue hasta 30 millones de Low Voltage Detec Programmable - DC to 40 MHz external clock input • Programmable Brown-out Detectio interrupción. - 4 MHz-10 MHz oscillator input with generation active (4x, 16x) tipo EEPROM. Incorpora hasta 4 Kbytes dePLL memoria de8x, datos • Up to 41 interrupt sources: Special Microcontroller Fea - 8 user selectable priority levels • Enhanced Flash program memory - 5 external interrupt El fabricante separa las prestaciones como sources microcontrolador y como DSP. - 10,000 erase/write cycle (min.) - 4 processor traps industrial temperature range, 10 • Data EEPROM memory: DSP Features: - 100,000 erase/write cycle (min.) industrial temperature range, 1M • Dual data fetch • Modulo and Bit-reversed modes • Self-reprogrammable under softwa • Two 40-bit wide accumulators with optional • Power-on Reset (POR), Power-up saturation logic and Oscillator Start-up Timer (OST • 17-bit x 17-bit single cycle hardware fractional/ • Flexible Watchdog Timer (WDT) w integer multiplier power RC oscillator for reliable op • I2C™ module supports Multi-Master/Slave mode mance Modified RISC CPU: • All DSP instructins are single cycle • Fail-Safe Clock Monitor operation: and 7-bit/10-bit addressing ard architecture Multiply-Accumulate (MAC) operation Detects clock failure and switch • Two addressable UART modules with FIFO low power RC oscillator timized instruction set architecture • Single cycle ±16 shift buffers • Programmable code protection essing modes • Two CAN bus modules compliant with CAN 2.0B Las prestaciones como DSP las consigue que • In-Circuit Serial Programming™ (I Peripheral Features:mediante un multiplicador hardware uctions standard • Selectable Power Management m structions, 16-bit wide data path High current sink/source I/O pins:de 25multiplicación mA/25 mA realiza en un único ciclo• de instrucción la operación y suma. Analog Features: - Sleep, Idle and Alternate Clock ytes on-chip Flash program space • Five 16-bit timers/counters; optionally pair up 16Emplea un desplazador del tipo Barrel que es capaz de completar un desplazamiento truction words bit timers into 32-bit Converter timer modules • 12-bit Analog-to-Digital (A/D) with: CMOS Technology: s of on-chip data RAM • 16-bit Capture input functions - 100 Ksps conversion rateen un única instrucción. a la derecha o a la izquierda de hasta 16 bits s of non-volatile data EEPROM 16-bit Compare/PWM • Low power, high speed Flash tech - • Up to 16 input channelsoutput functions: para evitar que (DCI) cuando unacommon variable se desborde tome orking register array Emplea lógica de saturación Data Converter Interface supports • Wide operating voltage range (2.5 - • Conversion available during Sleep and Idle 2 audio Codec protocols, including I S and AC’97 s operation: • Industrial and Extended temperatu valores no deseados,• especialmente útilVoltage al trabajar con(PLVD) señales. Programmable Low Detection • 3-wire SPI™ modules (supports 4 Frame modes) Hz external clock input • Low power consumption • Programmable Brown-out Detection and Reset MHz oscillator input with generation (4x, 8x, 16x) rupt sources: Special Microcontroller Features: ctable priority levels • Enhanced Flash program memory: nterrupt sources 2004 Microchip Technology Inc. Advance Information - 10,000 erase/write cycle (min.) for r traps industrial temperature range, 100K (typical) • Data EEPROM memory: es: - 100,000 erase/write cycle (min.) for industrial temperature range, 1M (typical) h it-reversed modes • Self-reprogrammable under software control de accumulators with optional • Power-on Reset (POR), Power-up Timer (PWRT) ic and Oscillator Start-up Timer (OST) single cycle hardware fractional/ • Flexible Watchdog Timer (WDT) with on-chip low lier power RC oscillator for reliable operation ctins are single cycle • Fail-Safe Clock Monitor operation: cumulate (MAC) operation - Detects clock failure and switches to on-chip low power RC oscillator 16 shift • Programmable code protection • In-Circuit Serial Programming™ (ICSP™) eatures: • Selectable Power Management modes: sink/source I/O pins: 25 mA/25 mA - Sleep, Idle and Alternate Clock modes mers/counters; optionally pair up 1632-bit timer modules CMOS Technology: e input functions re/PWM output functions: • Low power, high speed Flash technology er Interface (DCI) supports common • Wide operating voltage range (2.5V to 5.5V) protocols, including I2S and AC’97 • Industrial and Extended temperature ranges modules (supports 4 Frame modes) • Low power consumption dsPIC30F6011/6012/6013/6014 sPIC30F6011/6012/6013/6014 High Performance Digital Signal Controllers 16 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda Universidad de Murcia Las especificaciones como microcontrolador no difieren mucho de lo ya comentado. La memoria de programa admite un mínimo de 10.000 ciclos de escritura/borrado, mientras que la EEPROM admite 10 veces mas. Una característica importante es la capacidad para autoprogramarse permitiendo el acceso a parte de la memoria de programa como si fuese de datos. dsPIC30F6011/6012/6013/6014 Incorpora además del Power-on Reset (POR) el OST y el PWRT para asegurarse que el oscilador está estable en su frecuencia de funcionamiento y el resto de módulos una PIC30F6011/6012/6013/6014 High Performance vez se conecta el dispositivo, se despierta del modo sleep o se recupera debido a una Digital Signal Controllers caída de tensión transitoria. El PWRT genera • un retardo después de que el BOR haya detectado una bajada de I2C™ module supports Multi-Master/Slave mode nce Modified RISC CPU: and 7-bit/10-bit tensión, haya reseteado el microaddressing y tras recuperarse la tensión se mantiene en reset el architecture • Two addressable UART modules with FIFO zed instruction set architecture tiempo programadobuffers en el PWRT. ng modes • Two CAN bus modules compliant with CAN 2.0B ns standard ctions, 16-bit wide data path Analog Features: on-chip Flash program space ion words • 12-bit Analog-to-Digital Converter (A/D) with: on-chip data RAM - 100 Ksps conversion rate non-volatile data EEPROM - Up to 16 input channels g register array - Conversion available during Sleep and Idle eration: • Programmable Low Voltage Detection (PLVD) external clock input • Programmable Brown-out Detection and Reset oscillator input with generation 8x, 16x) sources: Special Microcontroller Features: e priority levels • Enhanced Flash program memory: upt sources El conversor ADC - empleado es decycle 12 (min.) bit yforpermite hasta 100.000 muestras por 10,000 erase/write ps industrial temperature range, 100K (typical) segundo, a repartir entre las 16 entradas. Esto quiere decir que si se conectan todas, • Data EEPROM memory: la máxima frecuencia de muestreo de cycle cada(min.) una for será de 6.5 Kmuestras, suficiente para - 100,000 erase/write industrial temperature range, 1M (typical) una gran gama de sensores pero por supuesto insuficiente para digitalizar video o versed modes • Self-reprogrammable under software control audio. ccumulators with optional • Power-on Reset (POR), Power-up Timer (PWRT) and Oscillator Start-up Timer (OST) gle cycle hardware fractional/ • Flexible Watchdog Timer (WDT) with on-chip low power RC oscillator for reliable operation Encapsulado s are single cycle • Fail-Safe Clock Monitor operation: ulate (MAC) operation - Detects clock failure and switches to on-chip low power RC oscillator shift • Programmable code protection • In-Circuit Serial Programming™ (ICSP™) ures: • Selectable Power Management modes: source I/O pins: 25 mA/25 mA - Sleep, Idle and Alternate Clock modes counters; optionally pair up 16bit timer modules CMOS Technology: ut functions WM output functions: • Low power, high speed Flash technology terface (DCI) supports common • Wide operating voltage range (2.5V to 5.5V) ocols, including I2S and AC’97 • Industrial and Extended temperature ranges ules (supports 4 Frame modes) • Low power consumption 17 Cap PWM Interface 100 Ksps I2 16-bit S Bytes U Bytes Instructions Bytes dsPIC30F6011 64 132K 44K 6144 2048 5 8 8 — 16 ch 2 2 1 2 dsPIC30F6012 64 144K 48K 8192 4096 5 8 8 AC’97, I2S 16 ch 2 2 1 2 dsPIC30F6013 80 132K 44K 6144 2048 5 8 8 — 16 ch 2 2 1 2 dsPIC30F6014 80 144K 48K 8192 4096 5 8 8 AC’97, I2S 16 ch 2 2 1 2 Pin Diagrams 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 RG13 RG12 RG14 C2RX/RG0 C2TX/RG1 C1TX/RF1 C1RX/RF0 VDD VSS OC8/CN16/RD7 OC7/CN15/RD6 OC6/IC6/CN14/RD5 OC5/IC5/CN13/RD4 OC4/RD3 OC3/RD2 EMUD2/OC2/RD1 64-Pin TQFP 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 dsPIC30F6011 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 EMUC1/SOSCO/T1CK/CN0/RC14 EMUD1/SOSCI/T4CK/CN1/RC13 EMUC2/OC1/RD0 IC4/INT4/RD11 IC3/INT3/RD10 IC2/INT2/RD9 IC1/INT1/RD8 VSS OSC2/CLKO/RC15 OSC1/CLKI VDD SCL/RG2 SDA/RG3 EMUC3/SCK1/INT0/RF6 U1RX/SDI1/RF2 EMUD3/U1TX/SDO1/RF3 AN6/OCFA/RB6 AN7/RB7 AVDD AVSS AN8/RB8 AN9/RB9 AN10/RB10 AN11/RB11 VSS VDD AN12/RB12 AN13/RB13 AN14/RB14 AN15/OCFB/CN12/RB15 U2RX/CN17/RF4 U2TX/CN18/RF5 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 RG15 T2CK/RC1 T3CK/RC2 SCK2/CN8/RG6 SDI2/CN9/RG7 SDO2/CN10/RG8 MCLR SS2/CN11/RG9 VSS VDD AN5/IC8/CN7/RB5 AN4/IC7/CN6/RB4 AN3/CN5/RB3 AN2/SS1/LVDIN/CN4/RB2 PGC/EMUC/AN1/VREF-/CN3/RB1 PGD/EMUD/AN0/VREF+/CN2/RB0 Figura 2.7. Descripción del encapsulado y función de cada uno de los pines que lleva un detrminado Note: Pinout subject to change. microcontrolador. Note: For descriptions of individual pins, see Section 1.0. Como vemos, con tal de minimizar el numero de pines, la mayor parte de ellos se encuentran multiplexados, siendo necesario configurarlos para la función deseada. DS70117A-page 2 Advance Information 2004 Microchip Technology Inc. Los pines se encuentran estructurados en puertos, aunque no siempre se encuentran todos sus pines implementados. 18 Y Data Bus X Data Bus 16 16 16 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda 16 Data Latch Data Latch RAM (4 Kbytes) Address Latch RAM (4 Kbytes) Address Latch Universidad de Murcia X Data Y Data PSV & Table Data Access 24 Control Block 8 16 16 16 24 AN0/CN2/RB0 AN1/CN3/RB1 AN2/SS1/LVDIN/CN4/RB2 AN3/CN5/RB3 AN4/CN6/RB4 AN5/CN7/RB5 PGC/EMUC/AN6/OCFA/RB6 PGD/EMUD/AN7/RB7 AN8/RB8 AN9/RB9 AN10/RB10 AN11/RB11 AN12/RB12 AN13/RB13 AN14/RB14 AN15/OCFB/CN12/RB15 16 X RAGU X WAGU Y AGU PCU PCH PCL Program Counter Loop Stack Control Control Logic Logic 16 Effective Address 16 ROM Latch 16 24 PORTB T2CK/RC1 T3CK/RC2 EMUD1/SOSCI/CN1/RC13 EMUC1/SOSCO/T1CK/CN0/RC14 OSC2/CLKO/RC15 IR 16 16 16 x 16 W Reg Array Decode Instruction Decode & Control 16 16 DSP Engine Blocks Power-up Timer Timing neration Oscillator Start-up Timer VDD, VSS AVDD, AVSS N1, N2 Timers 16 Watchdog Timer Low Voltage Detect 12-bit ADC EMUC2/OC1/RD0 EMUD2/OC2/RD1 OC3/RD2 OC4/RD3 OC5/CN13/RD4 OC6/CN14/RD5 OC7/CN15/RD6 OC8/CN16/RD7 IC1/RD8 IC2/RD9 IC3/RD10 IC4/RD11 Divide Unit ALU<16> POR/BOR Reset MCLR PORTC 16 PORTD Figura 2.8. Asociación de pines en puertos en un determinado microcontrolador. Input Capture Module Output Compare Module I2C 2.2.- Familias de 32 bits (ARM) C1RX/RF0 C1TX/RF1 U1RX/RF2 U1TX/RF3 U2RX/CN17/RF4 ARM es SPI1, el fabricante UART1,líder en el suministro a la industria de soluciones basadas en el DCI SPI2 UART2 PORTF empleo de microprocesadores RISC de 16-/32-bits. La empresa otorga licencias de C2RX/RG0 fabricación a los principales fabricantes C2TX/RG1 de semiconductores debido a su tecnología de SCL/RG2 SDA/RG3 alto rendimiento y bajo coste, la eficiencia energética de los procesadores RISC, gama SCK2/CN8/RG6 SDI2/CN9/RG7 de periféricos, y el sistema de diseños SDO2/CN10/RG8 de chips. ARM también proporciona el apoyo SS2/CN11/RG9 necesario para desarrollar un sistema completo. Los cores del microprocesador ARM CSDI/RG12 CSDO/RG13 se están convirtiendo rápidamente en CSCK/RG14 el estándar RISC por volumen en mercados COFS/RG15 tales como los dispositivos PORTG de comunicaciones portátiles, ordenadores portátiles, PDAs, multimedia digital y resto de soluciones embebidas. Advance Information 2004 Microchip Technology Inc. Las diferentes evoluciones en la arquitectura han creado las diferentes familias denominadas como ARM7, ARM9, ARM10. Por ejemplo, veamos un modelo de la familia ARM7: 19 Figura 2.9. Diagrama básico de la arquitectura de un microprocesador ARM7. The ARM7TDMI, has a core based on the fourth version of the ARM architecture. This implementation uses a three stage pipeline – a standard fetch-decode-execute organization. It features a unified cache, as well as the Thumb extension permitting 32bit and 16-bit operation. It is completely forward compatible, meaning that any code written for this core will be compatible with any new core releases, such as ARM9 or ARM10. This core also includes the on-chip debug extension. Para más información visitar: http://www.arm.com/ 2.3.- Procesadores digitales de señal, DSP. A lo largo de los últimos años, la aparición y posterior desarrollo de los dispositivos especializados en el procesado digital de señales o DSPs ha supuesto la apertura de una nueva vía de evolución hacia niveles superiores en el tratamiento de datos. En este corto espacio de tiempo, debido a su bajo coste y gran rendimiento, los DSPs han reemplazado casi por completo a la tecnología analógica tradicional en campos como telecomunicaciones, procesado de audio y vídeo y control industrial. Se ha generalizado el diseño de soluciones en este campo por parte de empresas de primer nivel, desarrolladores independientes y universidades. 20 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda Universidad de Murcia Figura 2.10. Diagrma de un SE que incorpora un nuclo DSP y modulos adicionales . Es necesario un conocimiento de la teoría de tratamiento digital de señales, en la que se basan estos procesadores, para poder comprender el por qué de las arquitecturas que emplean estos procesadores así como disponer de criterios ante la posible la elección del procesador idóneo para un proceso determinado. 2.3.1.- Fundamentos del tratamiento digital de la señal Mientras en la tecnología analógica el procesamiento de señales se implementa mediante cálculo integral, en la tecnología digital esta operación se reduce a sumas acumulativas de productos. Además, es posible procesar digitalmente y a continuación reconstruir señales de toda naturaleza, muestreándolas según el teorema de Nyquist. La mayoría de las aplicaciones digitales comparten cálculos comunes. Las operaciones básicas en el procesamiento digital de la señal como filtrado, correlación, convolución, se reducen a la siguiente estructura matemática de multiplicación acumulación. A=B*C+D Como ejemplo, veamos la típica ecuación de un filtro FIR: 21 2.3.2.- Dispositivos específicos en el tratamiento digital de la señal Se han analizado los procesadores digitales de señal (DSPs), que son los dispositivos encargados del tratamiento digital de señal. Los DSPs comparten unas características comunes para optimizar el cálculo de la estructura matemática de multiplicación acumulación, permitiendo realizar la operación de multiplicación-acumulación y varios accesos a memoria en un solo ciclo de instrucción, por esto el procesador puede buscar una instrucción mientras a la vez está realizando la búsqueda de operandos y/o almacenando el resultado de una instrucción anterior. Para realizar múltiples accesos a memoria, los DSP incluyen unidades generadoras de direcciones, que operan en paralelo con la ejecución de instrucciones aritméticas, y memorias multipuerto e incluso bancos de memoria independientes. Al implicar los algoritmos DSP cálculos repetitivos, la mayoría de los DSP disponen de un conjunto de instrucciones que soportan la ejecución de bucles. Además, incorporan puertos de entrada/salida serie o paralelo, manejo de fuentes externas de interrupciones y accesos directos a memoria sin intervención del procesador. Todas estas características se recogen en la arquitectura Harvard, que dispone de varios buses independientes para datos e instrucciones; frente a la arquitectura Von Neumann, sobre la que se desarrollan los procesadores de propósito general, que al tener un único bus de datos y otro de instrucciones, no permite cargar datos en paralelo con la búsqueda de código, provocando un cuello de botella que ralentiza la ejecución de algoritmos DSP. En función de la empresa fabricante de los chips DSP, existen algunas diferencias en la manera de implementar la arquitectura Harvard. Las empresas con mayor presencia en el mercado de los DSPs son Texas Instruments, Analog Devices y Freescale (Antigua Motorota). Estas empresas fabrican una gran variedad de DSPs que incluyen desde procesadores de 16 bits en coma fija a procesadores de 32 bits en coma flotante. Generalmente los DSPs de coma flotante usan palabras de 32 bits y los de coma fija usan palabras de 16 bits. Se han escogido para el estudio el TMS320C30 de Texas 22 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda Universidad de Murcia Instruments de 32 bits en coma flotante y el ADSP 2100 de Analog Devices de 16 en coma fija. Aunque los procesadores de coma fija suelen ser de 16 bits, Motorola dispone de una familia de procesadores de 24 bits en coma fija para incrementar el rango dinámico, por este motivo, también se ha escogido para el estudio el DSP56000 de Motorola de 24 bits en coma flotante. TMS320C30 El TMS320C30 de Texas Instruments es un procesador de 32 en coma flotante. Dispone de un multiplicador en paralelo con la ALU y de dos unidades generadoras de direcciones, es posible realizar varios accesos a memoria en un ciclo de instrucción, debido a que dispone de memoria multipuerto. La memoria está dividida en tres bloques independientes que pueden soportar dos accesos por ciclo de instrucción, incluye una caché de instrucciones de 64x32bits. El TMS320C30 dispone de buses independientes para instrucciones, datos y DMA. Incorpora 2 temporizadores, 2 puertos serie y un controlador de DMA. El set de instrucciones del TMS320C30 dispone de instrucciones específicas para la repeticiones de secciones del código como RPTS (para repetir una instrucción) y RPTB (para repetir un bloque de instrucciones). ADSP 2100 Los dispositivos de la familia ADSP 2100 de Analog Devices son procesadores de 16 bits de coma fija, aunque están preparados para implementar operaciones con aritmética flotante. Poseen 4 buses internos que se multiplexan en dos externamente: bus de direcciones de datos (14 bits), bus de direcciones de programa (14 bits), bus de datos de datos (16 bits) y bus de datos de programa (24 bits), esto permite acceder independientemente a la memoria de datos y memoria de programa. Otra de sus características básicas es que poseen dos unidades generadoras de direcciones (DAG), que posibilitan el direccionamiento de dos operandos de forma simultánea así como proporcionar direccionamiento circular y de inversión de bit. La unidad MAC permite realizar la operación multiplicar-acumular en un solo ciclo de instrucción, para ello dispones de dos ficheros de registros de entrada conectados a través de los buses correspondientes a zonas de memoria diferentes. 23 DSP56000 El Motorola DSP56000 es un procesador de coma fija de 24 bits. La ALU del DSP56000 implementa en un sólo ciclo de instrucción la operación de multiplicaracumular. La memoria está dividida para aumentar la velocidad al trabajar en paralelo. Hay cuatro buses bidireccionales de datos de 24 bits y 3 de direcciones de 16 bits. La AGU realiza el cálculo de las direcciones efectivas usando aritmética entera, implementa tres tipos de aritmética: lineal, módulo y acarreo inverso. El propósito del set de instrucciones es mantener las tres unidades operativas del DSP56000 (ALU, AGU y unidad de control de programa) ocupadas cada ciclo de instrucción. El DSP56000 tiene dos instrucciones especiales para la ejecución repetitiva de instrucciones y para generar bucles DO y REP. Para mayor detalle visitar: http://focus.ti.com/dsp/docs/dsphome.tsp?sectionId=46&DCMP=TIHomeTracking&HQ S=Other+OT+home_p_dsp 2.3.3.- Implementación de aplicaciones sobre DSP Después de analizar las arquitecturas de los dispositivos, se ha obtenido una visión general del abanico de aplicaciones que soportan los DSPs. Por ejemplo, en el campo militar se utilizan los DSPs para procesamiento de radar, sonar o guía de misiles. En el campo del tratamiento de voz y audio para la codificación, síntesis y reconocimiento de voz. En el sector de las telecomunicaciones para la codificación ADPCM, cancelación de eco, telefonía móvil, televisión digital, etc.. Algunos de los avances de los DSPs en instrumentación médica son las imágenes ultrasónicas, radiografías digitales y varias formas de tomografía (CAT, tomografía asistida por ordenador; PET, tomografía por emisión de positrones; MRI, imágenes por resonancia magnética). 2.3.4.- Parámetros en la elección de un DSP Una vez analizadas las arquitecturas de los dispositivos y las aplicaciones en los que éstos tienen presencia, se consideran los factores que hacen a un DSP adecuado 24 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda Universidad de Murcia para cada tipo de aplicación. Los diseñadores de sistemas DSP utilizan el procesador más simple que se ajusta a las necesidades de su aplicación. El formato aritmético que soporta el dispositivo es un factor importante de cara a seleccionarlo para un proceso en concreto. La aritmética en coma flotante es mucho más flexible que la de coma fija, se dispone de un rango dinámico mucho mayor, con lo que son más fáciles de programar, ya que el programador no ha de preocuparse del rango dinámico ni de la precisión, aunque son más caros porque el procesamiento en coma flotante exige una circuitería más compleja. Por ejemplo se utilizan en la instrumentación científica y médica. Los DSPs de coma fija se usan en muchas aplicaciones debido a que ofrecen grandes prestaciones, para aplicaciones con un rango dinámico pequeño, a muy bajo precio. Por ejemplo, para el tratamiento de señales de voz que tienen un ancho de banda muy reducido. El tamaño del dato tiene una mayor repercusión en el coste, ya que influye notablemente en el tamaño del chip y el número de pins que requiere, así como el tamaño de los dispositivos externos conectados al DSP. Por todo esto, los diseñadores tratan de emplear anchuras de palabras lo mas pequeñas posibles de acuerdo a sus necesidades. Hay que buscar el equilibrio entre el tamaño de palabra y la complejidad de desarrollo. Cada tipo de procesador es ideal para un rango específico de aplicaciones. Los DSPs de 16 bits de coma fija, como por ejemplo la familia de Motorola DSP 56100 son buenos para sistemas de voz, como teléfonos, ya que estos DSP trabajan con el rango relativamente estrecho de las frecuencias del sonido. Las aplicaciones estéreo de alta fidelidad tienen un rango de frecuencias más amplio, un DSP de 24 bits de coma fija como los DSP56002 son los adecuados ya que el DSP ha de ser de 24 bits para poder manipular los valores que se obtienen al procesar la señal. El procesamiento de imágenes, gráficas en 3D y simulaciones científicas tiene un rango dinámico mucho más amplio y necesitan DSPs de 32 bits con aritmética de coma flotante como por ejemplo el 96002 o el TMS320C30. 25 3. Bibliografía Microcontroladores PIC. La Solución en un Chip. J. Mª. Angulo Usategui, E. Martín Cuenca, I. Angulo Martínez Ed. Paraninfo. ( 1997 ) Microcontroladores PIC. Diseño práctico de aplicaciones. J. Mª. Angulo Usategui, I. Angulo Martínez Mc Graw Hill [ 1999 ] Microcontroladores. Vicente Torres. Servicio Publicaciones UPV. Sitios web Microchip. http://www.microchip.com Sagitron: Distribuidor de Microchip en http://www.sagitron.es España. Parallax. http://www.parallaxinc.com Enlaces interesantes sobre PIC. http://www.dontronics-shop.com/links-piclinks.html Dontronics. Pagina principal http://www.dontronics.com The Picmicro Ring. http://members.tripod.com/~mdileo/pmring .html Microcontoladores: Herramientas y Programador. Información, http://www.geocities.com/TheTropics/2174 /micro.html GNUPic “Free Microcontroller Software http://huizen.dds.nl/~gnupic/index.html Tools Mundo Electrónico: Enlaces. http://www.geocities.com/CapeCanaveral/ Campus/9468/mundo.htm The Electronic Projects Page: Algunos http://www.blichfeldt.dk proyectos. 26 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda Universidad de Murcia PICALL PIC programmers http://www.picallw.com/ Proyecto Fin de Carrera de Gaspar Vidal http://www.geocities.com/CapeCanaveral/ que utiliza los Pic como soporte hardware. Campus/8775/proyecto/pfc.htm Otro curso sobre microcontroladores http://usuarios.lycos.es/sfriswolker/pic 27