Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
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. 2 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 Universidad de Murcia 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda 3 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 4 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: Universidad de Murcia 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda 5 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). 6 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 Universidad de Murcia 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda 7 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 8 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 Universidad de Murcia 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda 9 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. 10 Figura 2.4. Ejemplo de DRIVER de corriente para poder excitar a un relé electromecánico. Reloj principal Todos los microcontroladores disponen de un circuito oscilador que genera una onda cuadrada de alta frecuencia, que configura los impulsos de reloj usados en la sincronización de todas las operaciones del sistema. Generalmente, el circuito de reloj está incorporado en el microcontrolador y sólo se necesitan unos pocos componentes exteriores para seleccionar y estabilizar la frecuencia de trabajo. Dichos componentes suelen consistir en un resonador del tipo cristal de cuarzo, cerámico, RC interno o externo. El empleo de un tipo u otro de resonador dependerá de las prestaciones que necesitemos del MCU, medidas en Millones de Instrucciones por Segundo (MIPS) u de operaciones por segundo (MOPS). 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 disminuir el tiempo en que se ejecutan las instrucciones pero lleva aparejado un incremento del consumo de energía. Figura 2.5. Dos posibles formas de aplicar el reloj: a) reloj externo. B) mediante un resonador de cristal de cuarzo. The PIC Microcontroller Family 35 www.newnespress.com 1.4.8.2 Higher Current Load Interface The circuits given in Figs 1.26 and 1.27 work fi ne for an LED, or for anyother device whose current requirement is less than 25 mA. What do we do if we wish to operate a load with a higher current rating (e.g., a 12 V fi lament lamp)? The answer is that we have to use a switching device, such as a transistor or a relay. Figure 1.28 shows how we can drive a small lamp from our port pin using a bipolar transistor. In this circuit, when the port output pin is at logic 1, current fl ows through the resistor and turns the transistor ON, effectively connecting the bottom end of the lamp to ground. It is important to realize that the positive supply to the lamp is not related to the PIC supply voltage and while the PIC is operating from 5 V, the lamp can be operated from a 12 V supply.The current capability depends upon the type of transistor used and several hundred milliamperes can be achieved with any type of small npn transistors. For higher currents, bipolar power transistors, or preferably MOSFET transistors, can be used. 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 Figure 1.28: Driving a Lamp Using a Transistor Figure 1.29: Driving an Inductive Load (e.g., a Relay) Ch01-H8615.indd 35Ch01-H8615.indd 35 6/29/07 4:58:20 PM6/29/07 4:58:20 PM 26 Chapter 1 www.newnespress.com In LP, XT, or HS modes, an external oscillator can be connected to the OSC1 input as shown in Fig. 1.18. This can be a crystal-based oscillator, or simple logic gates can be used to design an oscillator circuit. Figure 1.18: Using an External Oscillator 1.4.4.1 Crystal Operation As shown in Fig. 1.19, in this mode of operation an external crystal and two capacitors are connected to the OSC1 and OSC2 inputs of the microcontroller. The capacitors should be chosen as in Table 1.6. For example, with a crystal frequency of 4 MHz, two 22-pF capacitors can be used. Figure 1.17: ADCON1 Bit Defi nitions PCFG3- AN7 AN6 AN5 AN4 AN3 AN2 AN1 AN0 Vref! Vref" PCFG0 0000 A A A A A A A A Vdd Vss 0001 A A A A Vref! A A A RA3 Vss 0010 D D D A A A A A Vdd Vss 0011 D D D A Vref! A A A RA3 Vss 0100 D D D D A D A A Vdd Vss 0101 D D D D Vref! D A A RA3 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 A A A Vref! Vref" A A RA3 RA2 1001 D D A A A A A A Vdd Vss 1010 D D A A Vref! A A A RA3 Vss 1011 D D A A Vref! Vref" A A RA3 RA2 1100 D D D A Vref! Vref" A A RA3 RA2 1101 D D D D Vref! Vref" A A RA3 RA2 1110 D D D D D D D A Vdd Vss 1111 D D D D Vref! Vref D A RA3 RA2 Ch01-H8615.indd 26Ch01-H8615.indd 26 6/29/07 4:58:16 PM6/29/07 4:58:16 PM The PIC Microcontroller Family 27 www.newnespress.com 1.4.4.2 Resonator Operation Resonators are available from 4 to about 8 MHz. They are not as accurate as crystal-based oscillators. Resonators are usually 3-pin devices and the two pins at either side are connected to OSC1 and OSC2 inputs of the microcontroller. The middle pin is connected to the ground. Figure 1.20 shows how a resonator can be used in a PIC microcontroller circuit. 1.4.4.3 RC Oscillator For applications where the timing accuracy is not important, we can connect an external resistor and a capacitor to the OSC1 input of the microcontroller as in Fig. 1.21. The oscillator frequency depends upon the values of the resistor and capacitor (see Table 1.7), the supply voltage, and to the temperature. For most applications, using a 5 K resistor with a 20-pF capacitor gives about 4 MHz and this may be acceptable in non-time-critical applications. Figure 1.19: Crystal Oscillator Circuit Table 1.6: Capacitor Selection for Crystal Operation Mode Frequency C1, C2 LP 32 kHz 68–100 pF LP 200 kHz 15–33 pF XT 100 kHz 100–150 pF XT 2 MHz 15–33 pF XT 4 MHz 15–33 pF HS 4 MHz 15–33 pF HS 10 MHz 15–33 pF Ch01-H8615.indd 27Ch01-H8615.indd 27 6/29/07 4:58:16 PM6/29/07 4:58:16 PM Universidad de Murcia 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda 11 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). 12 • 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. Universidad de Murcia 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda 13• 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 del circuito integrado. Figura 2.6. Un único conversor y varias fuentes de señal aplicadas mediante un multiplexor analógico. Factores claves en el ADC son la frecuencia máxima de muestreo, el número de bits de cuantificación así como la tensión de referencia empleada. Por ejemplo, la familia dsPIC dispone de ADC de 10 bits y de 12 bits pero la frecuencia de muestreo se encuentra en el ámbito de los 100 Ksps. • Conversores Digitales /Analógicos (DAC) En ocasiones se incluyen módulos DAC para transforma los datos digitales obtenidos del procesamiento de señales en su correspondiente señal analógica. No obstante, al necesitar componentes externos del tipo condensadores e inductancias, se suelen emplear conversores D/A externos. La salida digital dirigida al DAC puede ser paralelo o serie. Una aplicación típica es para el filtrado de señales de audio y en la generación de señales de formas de onda arbitraria, síntesis digital directa (DDS), etc. • Comparador analógico. The PIC Microcontroller Family 23 www.newnespress.com chosen by programming the A/D converter registers and is typically 5 V. Thus, if we are using a 10-bit converter (1024 quantization levels), the resolution of our converter will be 5/1024 ! 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 the analog input voltage is 2 " 4.88 ! 9.76 mV, the 10-bit converted number will be “0000000010”; if the analog input voltage is 3 " 4.88 ! 14.64 mV, the converted 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 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. The A/D converter is controlled by registers ADCON0 and ADCON1. The bit pattern of ADCON0 is shown in Fig. 1.16. ADCON0 is split into four parts; the fi rst part consists of the highest two bits ADCS1 and ADCS0 and they are used to select the conversion clock. The internal RC oscillator or the external clock can be selected as the conversion clock as in the following table: 00 External clock/2 01 External clock/8 10 External clock/32 11 Internal RC clock The second part of ADCON0 consists of the three bits CHS2, CHS1, and CHS0. These are the channel select bits, and they select which input pin is routed to the A/D converter. The selection is as follows: CHS2:CHS1:CHS0 000 Channel 0 001 Channel 1 010 Channel 2 A/D Converter Channel 0 Channel 1 Channel 2 Channel 3 Channel 4 Channel 5 Channel 6 Channel 7 Converted Digital Signal Multiplexer Figure 1.15: Multiplexed A/D Structure Ch01-H8615.indd 23Ch01-H8615.indd 23 6/29/07 4:58:14 PM6/29/07 4:58:14 PM 14 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. Universidad de Murcia 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda 15 • 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. A partir de la gama dsPIC30F60xx vamos a comentar algunas de sus prestaciones tal como aparecen en la hoja de datos del fabricante: Se tratara de una CPU de altas prestaciones con arquitectura Harvard modificada, que emplea 24 bits para codificar cada instrucción. Hay que tener en cuenta, que aunque se disponga de 144 Kb de memoria de programa, solo podemos direccionar 48K instrucciones. ! 2004 Microchip Technology Inc. Advance Information DS70117A-page 1 dsPIC30F6011/6012/6013/6014 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 DSP Features: • Dual data fetch • Modulo and Bit-reversed modes • Two 40-bit wide accumulators with optional saturation logic • 17-bit x 17-bit single cycle hardware fractional/ integer multiplier • All DSP instructins are single cycle - Multiply-Accumulate (MAC) operation • Single cycle ±16 shift Peripheral Features: • High current sink/source I/O pins: 25 mA/25 mA • Five 16-bit timers/counters; optionally pair up 16- bit timers into 32-bit timer modules • 16-bit Capture input functions • 16-bit Compare/PWM output functions: • Data Converter Interface (DCI) supports common audio Codec protocols, including I2S and AC’97 • 3-wire SPI™ modules (supports 4 Frame modes) • I2C™ module supports Multi-Master/Slave mode and 7-bit/10-bit addressing • Two addressable UART modules with FIFO buffers • Two CAN bus modules compliant with CAN 2.0B standard Analog Features: • 12-bit Analog-to-Digital Converter (A/D) with: - 100 Ksps conversionrate - Up to 16 input channels - Conversion available during Sleep and Idle • Programmable Low Voltage Detection (PLVD) • Programmable Brown-out Detection and Reset generation Special Microcontroller Features: • Enhanced Flash program memory: - 10,000 erase/write cycle (min.) for industrial temperature range, 100K (typical) • Data EEPROM memory: - 100,000 erase/write cycle (min.) for industrial temperature range, 1M (typical) • Self-reprogrammable under software control • Power-on Reset (POR), Power-up Timer (PWRT) and Oscillator Start-up Timer (OST) • Flexible Watchdog Timer (WDT) with on-chip low power RC oscillator for reliable operation • Fail-Safe Clock Monitor operation: - Detects clock failure and switches to on-chip low power RC oscillator • Programmable code protection • In-Circuit Serial Programming™ (ICSP™) • Selectable Power Management modes: - Sleep, Idle and Alternate Clock modes CMOS Technology: • Low power, high speed Flash technology • Wide operating voltage range (2.5V to 5.5V) • Industrial and Extended temperature ranges • Low power consumption dsPIC30F6011/6012/6013/6014 High Performance Digital Signal Controllers 16 Consigue hasta 30 millones de instrucciones por segundo e incorpora 41 fuentes de interrupción. Incorpora hasta 4 Kbytes de memoria de datos tipo EEPROM. El fabricante separa las prestaciones como microcontrolador y como DSP. Las prestaciones como DSP las consigue mediante un multiplicador hardware que realiza en un único ciclo de instrucción la operación de multiplicación y suma. Emplea un desplazador del tipo Barrel que es capaz de completar un desplazamiento a la derecha o a la izquierda de hasta 16 bits en un única instrucción. Emplea lógica de saturación para evitar que cuando una variable se desborde tome valores no deseados, especialmente útil al trabajar con señales. ! 2004 Microchip Technology Inc. Advance Information DS70117A-page 1 dsPIC30F6011/6012/6013/6014 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 DSP Features: • Dual data fetch • Modulo and Bit-reversed modes • Two 40-bit wide accumulators with optional saturation logic • 17-bit x 17-bit single cycle hardware fractional/ integer multiplier • All DSP instructins are single cycle - Multiply-Accumulate (MAC) operation • Single cycle ±16 shift Peripheral Features: • High current sink/source I/O pins: 25 mA/25 mA • Five 16-bit timers/counters; optionally pair up 16- bit timers into 32-bit timer modules • 16-bit Capture input functions • 16-bit Compare/PWM output functions: • Data Converter Interface (DCI) supports common audio Codec protocols, including I2S and AC’97 • 3-wire SPI™ modules (supports 4 Frame modes) • I2C™ module supports Multi-Master/Slave mode and 7-bit/10-bit addressing • Two addressable UART modules with FIFO buffers • Two CAN bus modules compliant with CAN 2.0B standard Analog Features: • 12-bit Analog-to-Digital Converter (A/D) with: - 100 Ksps conversion rate - Up to 16 input channels - Conversion available during Sleep and Idle • Programmable Low Voltage Detection (PLVD) • Programmable Brown-out Detection and Reset generation Special Microcontroller Features: • Enhanced Flash program memory: - 10,000 erase/write cycle (min.) for industrial temperature range, 100K (typical) • Data EEPROM memory: - 100,000 erase/write cycle (min.) for industrial temperature range, 1M (typical) • Self-reprogrammable under software control • Power-on Reset (POR), Power-up Timer (PWRT) and Oscillator Start-up Timer (OST) • Flexible Watchdog Timer (WDT) with on-chip low power RC oscillator for reliable operation • Fail-Safe Clock Monitor operation: - Detects clock failure and switches to on-chip low power RC oscillator • Programmable code protection • In-Circuit Serial Programming™ (ICSP™) • Selectable Power Management modes: - Sleep, Idle and Alternate Clock modes CMOS Technology: • Low power, high speed Flash technology • Wide operating voltage range (2.5V to 5.5V) • Industrial and Extended temperature ranges • Low power consumption dsPIC30F6011/6012/6013/6014 High Performance Digital Signal Controllers ! 2004 Microchip Technology Inc. Advance Information DS70117A-page 1 dsPIC30F6011/6012/6013/6014 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 DSP Features: • Dual data fetch • Modulo and Bit-reversed modes • Two 40-bit wide accumulators with optional saturation logic • 17-bit x 17-bit single cycle hardware fractional/ integer multiplier • All DSP instructins are single cycle - Multiply-Accumulate (MAC) operation • Single cycle ±16 shift Peripheral Features: • High current sink/source I/O pins: 25 mA/25 mA • Five 16-bit timers/counters; optionally pair up 16- bit timers into 32-bit timer modules • 16-bit Capture input functions • 16-bit Compare/PWM output functions: • Data Converter Interface (DCI) supports common audio Codec protocols, including I2S and AC’97 • 3-wire SPI™ modules (supports 4 Frame modes) • I2C™ module supports Multi-Master/Slave mode and 7-bit/10-bit addressing • Two addressable UART modules with FIFO buffers • Two CAN bus modules compliant with CAN 2.0B standard Analog Features: • 12-bit Analog-to-Digital Converter (A/D) with: - 100 Ksps conversion rate - Up to 16 input channels - Conversion available during Sleep and Idle • Programmable Low Voltage Detection (PLVD) • Programmable Brown-out Detection and Reset generation Special Microcontroller Features: • Enhanced Flash program memory: - 10,000 erase/write cycle (min.) for industrial temperature range, 100K (typical) • Data EEPROM memory: - 100,000 erase/write cycle (min.) for industrial temperature range, 1M (typical) • Self-reprogrammable under software control • Power-on Reset (POR), Power-up Timer (PWRT) and Oscillator Start-up Timer (OST) • Flexible Watchdog Timer (WDT) with on-chip low power RC oscillator for reliable operation • Fail-Safe Clock Monitor operation: - Detects clock failure and switches to on-chip low power RC oscillator • Programmable code protection • In-Circuit Serial Programming™ (ICSP™) • Selectable Power Management modes: - Sleep, Idle and Alternate Clock modes CMOS Technology: • Low power, high speed Flash technology • Wide operating voltage range (2.5V to 5.5V) • Industrial and Extended temperature ranges • Low power consumption dsPIC30F6011/6012/6013/6014 High Performance Digital Signal Controllers Universidad de Murcia 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda 17 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. 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 vez se conecta el dispositivo, se despierta del modo sleep o se recupera debido a una caída de tensión transitoria. El PWRT genera un retardo después de que el BOR haya detectado una bajada de tensión, haya reseteado el micro y tras recuperarse la tensión se mantiene en reset el tiempo programado en el PWRT. El conversor ADC empleado es de 12 bit y permite hasta 100.000 muestras por segundo, a repartir entre las 16 entradas. Esto quiere decir que si se conectan todas, la máxima frecuencia de muestreo de cada una será de 6.5 Kmuestras, suficiente para una gran gama de sensores pero por supuesto insuficiente para digitalizar video o audio. Encapsulado ! 2004 Microchip Technology Inc. Advance Information DS70117A-page 1 dsPIC30F6011/6012/6013/6014 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 DSP Features: • Dual data fetch • Modulo and Bit-reversed modes • Two 40-bit wide accumulators with optional saturation logic • 17-bit x 17-bit single cycle hardware fractional/ integer multiplier • All DSP instructins are single cycle - Multiply-Accumulate (MAC) operation • Single cycle ±16 shift Peripheral Features: • High current sink/source I/O pins: 25 mA/25 mA • Five 16-bit timers/counters; optionally pair up 16- bit timers into 32-bit timer modules • 16-bit Capture input functions • 16-bit Compare/PWM output functions: • Data Converter Interface (DCI) supports common audio Codec protocols, including I2S and AC’97 • 3-wire SPI™ modules (supports 4 Frame modes) • I2C™ module supports Multi-Master/Slave mode and 7-bit/10-bit addressing • Two addressable UART modules with FIFO buffers • Two CAN bus modules compliant with CAN 2.0B standard Analog Features: • 12-bit Analog-to-Digital Converter (A/D) with: - 100 Ksps conversion rate - Up to 16 input channels - Conversion available during Sleep and Idle • Programmable Low Voltage Detection (PLVD) • Programmable Brown-out Detection and Reset generation Special Microcontroller Features: • Enhanced Flash program memory: - 10,000 erase/write cycle (min.) for industrial temperature range, 100K (typical) • Data EEPROM memory: - 100,000 erase/write cycle (min.) for industrial temperature range, 1M (typical) • Self-reprogrammable under software control • Power-on Reset (POR), Power-up Timer (PWRT) and Oscillator Start-up Timer (OST) • Flexible Watchdog Timer (WDT) with on-chip low power RC oscillator for reliable operation • Fail-Safe Clock Monitor operation: - Detects clock failure and switches to on-chip low power RC oscillator • Programmable code protection • In-Circuit Serial Programming™ (ICSP™) • Selectable Power Management modes: - Sleep, Idle and Alternate Clock modes CMOS Technology: • Low power, high speed Flash technology • Wide operating voltage range (2.5V to 5.5V) • Industrial and Extended temperature ranges • Low power consumption dsPIC30F6011/6012/6013/6014 High Performance Digital Signal Controllers 18 Figura 2.7. Descripción del encapsulado y función de cada uno de los pines que lleva un detrminado microcontrolador. 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. Los pines se encuentran estructurados en puertos, aunque no siempre se encuentran todos sus pines implementados. dsPIC30F6011/6012/6013/6014 DS70117A-page 2 Advance Information ! 2004 Microchip Technology Inc. dsPIC30F6011/6012/6013/6014 Controller Families Pin Diagrams Note: For descriptions of individual pins, see Section 1.0. Device Pins Program Memory SRAM Bytes EEPROM Bytes Timer 16-bit Input Cap Output Comp/Std PWM Codec Interface A/D 12-bit 100 Ksps U A R T S P I ™ I2 C ™ C A N Bytes Instructions 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 1 2 3 4 5 6 7 8 9 10 11 12 13 36 35 34 33 3 2 3 1 3 0 2 9 2 8 2 7 2 6 6 4 6 3 6 2 6 1 6 0 5 9 5 8 5 7 5 6 14 15 16 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 EMUC1/SOSCO/T1CK/CN0/RC14 EMUD1/SOSCI/T4CK/CN1/RC13 EMUC2/OC1/RD0 IC4/INT4/RD11 IC2/INT2/RD9 IC1/INT1/RD8 VSS OSC2/CLKO/RC15 OSC1/CLKI VDD SCL/RG2 EMUC3/SCK1/INT0/RF6 U1RX/SDI1/RF2 EMUD3/U1TX/SDO1/RF3 RG15 T2CK/RC1 T3CK/RC2 SCK2/CN8/RG6 SDI2/CN9/RG7 SDO2/CN10/RG8 MCLR VSS VDD AN3/CN5/RB3 AN2/SS1/LVDIN/CN4/RB2 PGC/EMUC/AN1/VREF-/CN3/RB1 PGD/EMUD/AN0/VREF+/CN2/RB0 O C 8 /C N 1 6 /R D 7 R G 1 3 R G 1 2 R G 1 4 V S S C 2 T X /R G 1 C 1 T X /R F 1 C 2 R X /R G 0 E M U D 2 /O C 2 /R D 1 O C 3 /R D 2 A N 6 /O C F A /R B 6 A N 7 /R B 7 A V D D A V S S A N 8 /R B 8 A N 9 /R B 9 A N 1 0 /R B 1 0 A N 1 1 /R B 1 1 V S S V D D A N 1 2 /R B 1 2 A N 1 3 /R B 1 3 A N 1 4 /R B 1 4 A N 1 5 /O C F B /C N 1 2 /R B 1 5 U 2 T X /C N 1 8 /R F 5 U 2 R X /C N 1 7 /R F 4 SDA/RG3 43 42 41 40 39 38 37 44 48 47 46 5 0 4 9 5 1 5 4 5 3 5 2 5 5 45 SS2/CN11/RG9 AN5/IC8/CN7/RB5 AN4/IC7/CN6/RB4 IC3/INT3/RD10 V D D C 1 R X /R F 0 O C 4 /R D 3 O C 7 /C N 1 5 /R D 6 O C 6 /I C 6 /C N 1 4 /R D 5 O C 5 /I C 5 /C N 1 3 /R D 4 64-Pin TQFP dsPIC30F6011 Note: Pinout subject to change. Universidad de Murcia 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda 19 Figura 2.8. Asociación de pines en puertos en un determinado microcontrolador. 2.2.- Familias de 32 bits (ARM) ARM es el fabricante líder en el suministro a la industria de soluciones basadas en el empleo de microprocesadores RISC de 16-/32-bits. La empresa otorga licencias de fabricación a los principales fabricantes de semiconductores debido a su tecnología de alto rendimiento y bajo coste, la eficiencia energética de los procesadores RISC, gama de periféricos, y el sistema de diseños de chips. ARM también proporciona el apoyo necesario para desarrollar un sistema completo. Los cores del microprocesador ARM se están convirtiendo rápidamente en el estándar RISC por volumen en mercados tales como los dispositivos de comunicaciones portátiles, ordenadores portátiles, PDAs, multimedia digital y resto de soluciones embebidas. 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: dsPIC30F6011/6012/6013/6014 DS70117A-page 8 Advance Information ! 2004 Microchip Technology Inc. FIGURE 1-1: dsPIC30F6011/6012 BLOCK DIAGRAM AN8/RB8 AN9/RB9 AN10/RB10 AN11/RB11 Power-up Timer Oscillator Start-up Timer POR/BOR Reset Watchdog Timer Instruction Decode & Control OSC1/CLKI MCLR VDD, VSS AN4/CN6/RB4 AN12/RB12 AN13/RB13 AN14/RB14 AN15/OCFB/CN12/RB15 Low Voltage Detect UART1, CAN2 Timing GenerationCAN1, AN5/CN7/RB5 16 PCH PCL Program Counter ALU<16> 16 24 24 24 24 X Data Bus IR I2C DCI PGC/EMUC/AN6/OCFA/RB6 PGD/EMUD/AN7/RB7 PCU 12-bit ADC Timers SCK2/CN8/RG6 SDI2/CN9/RG7 SDO2/CN10/RG8 SS2/CN11/RG9 Input Capture Module Output Compare Module EMUC1/SOSCO/T1CK/CN0/RC14 EMUD1/SOSCI/CN1/RC13 T2CK/RC1 PORTB C1RX/RF0 C1TX/RF1 U1RX/RF2 U1TX/RF3 C2RX/RG0 C2TX/RG1 SCL/RG2 SDA/RG3 PORTG PORTD 16 16 16 16 x 16 W Reg Array Divide UnitEngine DSP Decode ROM Latch 16 Y Data Bus Effective Address X RAGU X WAGU Y AGU AN0/CN2/RB0 AN1/CN3/RB1 AN2/SS1/LVDIN/CN4/RB2 AN3/CN5/RB3 OSC2/CLKO/RC15 U2RX/CN17/RF4 AVDD, AVSS UART2SPI2 16 16 16 16 16 PORTC PORTF 16 16 16 16 8 Interrupt Controller PSV & Table Data Access Control Block Stack Control Logic Loop Control Logic Data LatchData Latch Y Data (4 Kbytes) RAM X Data (4 Kbytes) RAM Address Latch Address Latch Control Signals to Various Blocks 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 16 CSDI/RG12 CSDO/RG13 CSCK/RG14 COFS/RG15 T3CK/RC2 SPI1, Address Latch Program Memory (144 Kbytes) Data Latch Data EEPROM (4 Kbytes) 16 20 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 32- bit 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. Universidad de Murcia 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda 21 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: 22 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 Universidad de Murcia 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda 23 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. 24 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 multiplicar- acumular. 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 Universidad de Murcia 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda 25 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. 26 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 España. http://www.sagitron.es Parallax. http://www.parallaxinc.com Enlaces interesantes sobre PIC. http://www.dontronics-shop.com/links-pic- links.html Dontronics. Pagina principal http://www.dontronics.com The Picmicro Ring. http://members.tripod.com/~mdileo/pmring .html Microcontoladores: Información, Herramientas y Programador. http://www.geocities.com/TheTropics/2174 /micro.html GNUPic “Free Microcontroller Software Tools http://huizen.dds.nl/~gnupic/index.html Mundo Electrónico: Enlaces. http://www.geocities.com/CapeCanaveral/ Campus/9468/mundo.htm The Electronic Projects Page: Algunos proyectos. http://www.blichfeldt.dk Universidad de Murcia 07BN.- SISTEMAS EMBEBIDOS (2009) Apuntes del profesor: Benito Úbeda 27 PICALL PIC programmers http://www.picallw.com/ Proyecto Fin de Carrera de Gaspar Vidal que utiliza los Pic como soporte hardware. http://www.geocities.com/CapeCanaveral/ Campus/8775/proyecto/pfc.htm Otro curso sobre microcontroladores http://usuarios.lycos.es/sfriswolker/pic
Compartir