SSEE_T02 - OCW - Universidad de Murcia

Anuncio
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
Descargar