Tecnologías para el procesamiento digital de señales

Anuncio
Tecnologías para el procesamiento digital de
señales
(notas de clase)
MI. Mario Alfredo Ibarra Carrillo
23-junio-2014
2
Índice general
1. Elementos básicos de un sistema DSP
1.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Elementos del procesamiento digital de
señales . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1. Objetivo del curso . . . . . . . . . . . . . . . . .
1.3. Conversión de una señal analógica a digital . . . . . . .
1.3.1. Señal analógica . . . . . . . . . . . . . . . . . . .
1.3.2. Señal muestreada . . . . . . . . . . . . . . . . . .
1.3.3. Señal retenida . . . . . . . . . . . . . . . . . . .
1.3.4. Señal cuantizada . . . . . . . . . . . . . . . . . .
1.3.5. Señal digital . . . . . . . . . . . . . . . . . . . . .
1.4. Sistemas de desarrollo para el procesamiento de señales
1.4.1. Field Programmable Gate Array . . . . . . . . .
1.4.2. Terasic DE2i-150 FPGA Development Kit . . . .
1.4.3. Software radio . . . . . . . . . . . . . . . . . . .
1.5. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
8
9
9
10
10
10
12
13
13
14
14
17
2. Conversión digital a analógica
2.1. Conversión digital a analógico . . . . . . . . . . . .
2.2. Convertirdor digital a analógico por red R . . . . .
2.2.1. Ecuación característica . . . . . . . . . . . .
2.2.2. Resolución . . . . . . . . . . . . . . . . . .
2.2.3. Ganancia . . . . . . . . . . . . . . . . . . .
2.2.4. Ejemplo: DAC de 4 bits . . . . . . . . . . .
2.3. Convertirdor digital a analógico por red R2R . . .
2.3.1. Ecuación característica . . . . . . . . . . . .
2.3.2. Resolución . . . . . . . . . . . . . . . . . .
2.3.3. Ganancia . . . . . . . . . . . . . . . . . . .
2.3.4. Ejemplo: DAC R2R de 4 bits . . . . . . . .
2.4. Filtro reconstructor . . . . . . . . . . . . . . . . . .
2.4.1. La señal del DAC . . . . . . . . . . . . . . .
2.4.2. El filtro reconstructor . . . . . . . . . . . .
2.4.3. Reconstrucción . . . . . . . . . . . . . . . .
2.4.4. Filtro real y la Interferencia intersimbólica .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
19
19
20
20
21
21
21
21
21
22
22
23
23
24
24
25
25
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . .
7
7
4
ÍNDICE GENERAL
2.4.5. Filtro Coseno Elevado . . . . . . . . . . . .
2.5. Convertidor digital a analógico por ancho de pulso
2.5.1. Modulador digital de ancho de pulso . . . .
2.5.2. Modulador analógico de ancho de pulso . .
2.5.3. El espectro de la señal PWM . . . . . . . .
2.5.4. Interferencia intersimbólica . . . . . . . . .
2.5.5. Filtro reconstructor . . . . . . . . . . . . .
2.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
28
29
30
31
31
33
33
37
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
39
39
39
40
40
40
41
41
42
43
43
44
44
45
45
47
4. Formatos numéricos
4.1. Sistemas de numeración . . . . . . . . . . . . . . . . . . .
4.1.1. Constitución de un número en base 10 . . . . . . .
4.1.2. Codificar un número de cualquier base a base 10 .
4.1.3. Codificación decimal a base 5 . . . . . . . . . . . .
4.1.4. Codificación decimal a binario . . . . . . . . . . .
4.2. Complementos . . . . . . . . . . . . . . . . . . . . . . . .
4.2.1. Complemento a 2 . . . . . . . . . . . . . . . . . . .
4.2.2. Complemento a uno . . . . . . . . . . . . . . . . .
4.2.3. Relación entre complementos . . . . . . . . . . . .
4.3. Resta mediante complementos . . . . . . . . . . . . . . . .
4.4. Tipos de números . . . . . . . . . . . . . . . . . . . . . . .
4.5. Enteros no negativos . . . . . . . . . . . . . . . . . . . . .
4.5.1. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . .
4.5.2. Propiedades . . . . . . . . . . . . . . . . . . . . . .
4.5.3. Codificación Decimal, binario 4 bits y hexadecimal
4.5.4. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . .
4.5.5. Suma de enteros no negativos . . . . . . . . . . . .
4.5.6. Resta de enteros no negativos . . . . . . . . . . . .
4.5.7. Producto de enteros no negativos . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
49
49
49
49
50
50
51
51
51
52
52
53
53
54
54
55
55
56
56
57
3. Conversión analógica a digital
3.1. Proceso de conversión analógico a digital
3.1.1. Fuente de información . . . . . .
3.1.2. Transductor de entrada . . . . .
3.1.3. Filtro antialiasing . . . . . . . .
3.1.4. Muestreador-retenedor . . . . . .
3.1.5. Circuito ADC . . . . . . . . . . .
3.2. Muestreador . . . . . . . . . . . . . . . .
3.3. ADC de aproximaciones sucecivas . . . .
3.3.1. La resolución . . . . . . . . . . .
3.3.2. Desventajas . . . . . . . . . . . .
3.4. ADC tipo flash . . . . . . . . . . . . . .
3.4.1. La resolución . . . . . . . . . . .
3.4.2. Desventajas . . . . . . . . . . . .
3.5. El ADC tipo delta . . . . . . . . . . . .
3.6. Ejercicios . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ÍNDICE GENERAL
5
4.6. Números enteros . . . . . . . . . . . . . . . . . . . . . . .
4.6.1. Ejemplo de codificación a binario . . . . . . . . . .
4.6.2. Propiedades . . . . . . . . . . . . . . . . . . . . . .
4.6.3. Codificación Decimal, binario 4 bits y hexadecimal
4.6.4. Suma de un número con su complemento . . . . .
4.6.5. Suma de enteros . . . . . . . . . . . . . . . . . . .
4.6.6. Resta de enteros . . . . . . . . . . . . . . . . . . .
4.6.7. Producto de enteros . . . . . . . . . . . . . . . . .
4.6.8. Ejemplo de multiplicación de enteros . . . . . . . .
4.7. Punto fijo . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.7.1. Propiedades . . . . . . . . . . . . . . . . . . . . . .
4.7.2. Para codificar a punto fijo un
número real negativo . . . . . . . . . . . . . . . . .
4.7.3. Ejemplos . . . . . . . . . . . . . . . . . . . . . . .
4.8. Punto flotante . . . . . . . . . . . . . . . . . . . . . . . . .
4.8.1. Precisión simple de 32 bits . . . . . . . . . . . . .
4.8.2. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . .
4.9. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . .
5. Introducción al procesador
5.1. Arquitecturas de computadoras . . . . . . . . . . .
5.1.1. von Neumann . . . . . . . . . . . . . . . . .
5.1.2. Arquitectura Hardvard . . . . . . . . . . . .
5.1.3. Grave defecto de los procesadores Harvard .
5.2. CISC y RISC . . . . . . . . . . . . . . . . . . . . .
5.2.1. CISC . . . . . . . . . . . . . . . . . . . . .
5.2.2. RISC . . . . . . . . . . . . . . . . . . . . .
5.2.3. Comparando CISC y RISC . . . . . . . . .
5.3. Segmentación de las instrucciones . . . . . . . . . .
5.3.1. Segmentación von Neumann . . . . . . . . .
5.3.2. Segmentación Harvard . . . . . . . . . . . .
5.4. Instrucciones de 16 y 32 bits . . . . . . . . . . . . .
5.5. El formato VLIW . . . . . . . . . . . . . . . . . . .
5.5.1. Formato de instrucciones . . . . . . . . . .
5.5.2. Arquitectura Harvard-VLIW . . . . . . . .
5.5.3. Unidades operativas . . . . . . . . . . . . .
5.5.4. Limitaciones . . . . . . . . . . . . . . . . .
5.6. Procesador superescalar . . . . . . . . . . . . . . .
5.7. Medidas del rendimiento de un procesador . . . . .
5.7.1. Operaciones en coma flotante por segundo .
5.7.2. Millones de instrucciones por segundo . . .
5.7.3. Multiplicaciones-acumulaciones . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
57
58
58
59
60
60
61
62
62
62
64
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
64
65
68
68
69
70
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
73
73
73
74
77
77
77
77
78
79
79
80
80
80
81
83
83
85
85
87
87
88
88
6
ÍNDICE GENERAL
6. Familias de DSP
6.1. El objetivo de una arquitectura . . . . . . . . . . . . . . . . . .
6.2. DSP de primera generación (TMS320C10-14) . . . . . . . . . .
6.2.1. Arquitectura Harvard . . . . . . . . . . . . . . . . . . .
6.2.2. La ruta del programa . . . . . . . . . . . . . . . . . . .
6.2.3. La ruta de datos . . . . . . . . . . . . . . . . . . . . . .
6.2.3.1. El circuito arimético y lógico . . . . . . . . . .
6.2.4. Circuito de datos y modos de direccionamiento de datos
6.3. DSP que opera en punto flotante (TMS320C30) . . . . . . . . .
6.3.1. La arquitectura . . . . . . . . . . . . . . . . . . . . . . .
6.3.2. Modos de direccionamiento . . . . . . . . . . . . . . . .
6.4. DSP C6000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.1. Arquitectura del núcleo . . . . . . . . . . . . . . . . . .
6.4.2. Instrucciones de palabra larga o VLIW . . . . . . . . . .
6.4.3. Arquitectura completa del C6000 . . . . . . . . . . . . .
6.4.4. Comunicación con la familia C6000 . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
91
92
94
96
96
97
97
99
100
101
101
102
102
103
104
105
7. El TMS320C6713
113
8. Puertos seriales
115
A. Redes de resistencias
117
A.1. Circuitos serie y paralelo . . . . . . . . . . . . . . . . . . . . . . . 117
A.2. Thevenin-Norton . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Capítulo 1
Elementos básicos de un
sistema DSP
1.1.
Objetivos
El alumno conocerá y comprenderá los elementos básicos de que se compone
un sistema para el procesamiento de señal analógica mediante un sistema con
DSP.
1.2.
Elementos del procesamiento digital de
señales
La figura 1.1 ilustra, de manera general, un sistema digital de procesamiento
de señales. Este sistema no tiene en realidad mayor propósito que el de convertir
cualquier señal analógica en una señal digital, pasarla al microprocesador para
que la altere y convierta de vuelta en otra señal analógica:
1. Para empezar, se parte de una fuente de señal, como puede ser un evento
social, un fenómeno natural, un fenómeno artificial, etc.
2. La señal que proviene de la fuente debe ser convertida a una forma de
onda eléctrica mediante un transductor.
3. Luego, la señal eléctrica se limita en banda con un filtro para limitar la
pontecia del ruido que agregó transductor y para que su cumpla el teorema
de Nyquist. La señal que sale del filtro se conoce entonces como «señal
banda base».
4. Así entonces, la señal banda base será pasada a un dispositivo que la
convertirá de analógica a digital. Este dispositivo puede verse en la figura
1.1 como el ADC y entrega, lo que a nuestro interés, son números enteros.
Estos números enteros se alimentan directamente al microprocesador.
7
8
CAPÍTULO 1. ELEMENTOS BÁSICOS DE UN SISTEMA DSP
Figura 1.1: Sistema para el procesamiento de señales digitales. Las señales digitales
son provistas por un sistema ADC.
5. El microprocesador, para realizar la actividad de procesamiento, debe convertir los números enteros en números reales. Para este propósito, hay
dos posibles representaciones de números reales, éstas se conocen se como
«punto fijo» y «punto flotante».
6. Entonces ocurre el procesamiento de la señal, lo que arroja como resulta
más números reales. Elmicroprocesador, antes de externar algún resultado, convierte los datos a números enteros, los cuales son legibles para el
convertidor digital a analógico.
7. La señal que entrega el DAC es de tipo eléctrico pero también, es una
señal muestreada y retenida. Así que la salida del DAC se alimenta a un
filtro paso bajas, el cual, devuelve una señal banda base.
8. La señal banda base que entrega el filtro es alimentada a un transductor de
salida de manera que la señal resultante sea legible para algún destinatario.
1.2.1.
Objetivo del curso
En lo que respecta al capítulo presente y demás capítulos, se describirán las
propiedades y comportamientos de cada elemento tecnológico involucrado en el
procesamiento digital de señales. Algunos elementos que no se ven en la figura
1.1 tal como el FPGA y diversos sistemas de desarrollo también serán tratados.
1.3. CONVERSIÓN DE UNA SEÑAL ANALÓGICA A DIGITAL
9
Figura 1.2: Ejemplo de señal analógica: se trata de un segmento de una cosenoide
de amplitud pico de cuatro.
1.3.
Conversión de una señal analógica a digital
La señal proveniente de la fuente puede implicar cualquier forma de energía,
ya sea óptica, acústica, mecánica, electromagnética, etc. Así entonces se debe
convertir la señal de la fuente de información en una señal de tipo eléctrico
mediante un transductor. La señal que sale del transductor es lo que llamaremos
señal analógica. 1 .
1.3.1.
Señal analógica
La señal analógica tiene tres características que la definen y que son motivo
de discusión:
Es aquella que es análoga a algún fenómeno natural, evento social, etc.
Está definida para todo instante durante su tiempo de existencia.
El conjunto de amplitudes que puede tomar es no numerable y acotado.
En general se considera a la señal analógica como una función del tiempo, de tal
suerte que se han propuesto diversas formulaciones matemáticas que permiten
su descripción. Una de estas formulaciones se da empleando la derivada.
Para ilustrar el proceso de conversión a digital se usará un segmento de una
señal cosenoidal de amplitud pico de 4V . La figura 1.2 ilustra esta señal.
1 La
señal analógica también se conoce como señal «análoga a su fuente de señal»
10
CAPÍTULO 1. ELEMENTOS BÁSICOS DE UN SISTEMA DSP
Figura 1.3: Señal muestreada. Los pulsos han sido sombreados para facilitar la
visualización de la señal.
1.3.2.
Señal muestreada
De acuerdo a la figura, el paso siguiente es el muestreo de la señal analógica. Este procedimiento se puede realizar multiplicando la señal analógica con
un tren de pulsos. El resultado de este producto es lo que se llama una señal
muestrada, la cual se conoce también como señal discreta, es decir:
• Solamente se define en intervalos durante su periodo de existencia.
• El conjunto de amplitudes que puede tomar es no numerable y acotado.
La figura 1.3 ilustra como resulta la señal cosenoidal de prueba. Los pulsos
han sido sombreados para facilitar la visualización de la señal.
1.3.3.
Señal retenida
La señal muestreada ahora debe ser tratada por el circuito retenedor. Este
circuito consiste de un switch que permite a un amplificador de muy baja
impedancia de salida cargar rápidadmente un capacitor. Una vez cargado el
capacitor, el switch se abre y el capacitor se descarga lentamente a través de un
segundo amplificador de muy alta impedancia de entrada. Dada la alta impedancia del segundo amplificador, el capacitor puede mantener su voltaje. La figura
1.4 ilustra la señal retenida.
1.3.4.
Señal cuantizada
El siguiente paso en el proceso de conversión analógico a digital consiste en
la «cuantización»», es decir, las muestras que conforman la señal discreta se van
1.3. CONVERSIÓN DE UNA SEÑAL ANALÓGICA A DIGITAL
Figura 1.4: Circuito retenedor y señal retenida.
Figura 1.5: Señal cuantizada.
11
12
CAPÍTULO 1. ELEMENTOS BÁSICOS DE UN SISTEMA DSP
Figura 1.6: Codificación a binario de cada nivel de cuantización
a aproximar con un conjunto finito y acotado de niveles de amplitud. La figura
1.5 ilustra la cuantización de la señal discreta.
La señal cuantizada ya puede considerarse una señal digital en la cual cada
nivel de amplitud es un dígito en algún sistema de numeracón. En el caso de los
ocho niveles de cuantización usados en la figura 1.5, se está usando el sistema
octal.
1.3.5.
Señal digital
Cada muestra de la señal cuantizada es una amplitud que se va a codificar a
binario, así entonces, una señal digital se puede definir como una representación
numérica de una señal discreta mediante un conjunto finito de señales que representan dígitos binarios. La figura 1.6 ilustra la asignación binaria que se hace
de cada nivel de cuantización.
El proceso de codificación a binario de la señal entrega un tipo de dato
numérico conocido como entero binario. Algunos otros circuitos convertidores
entregan enteros no negativos.
1.4. SISTEMAS DE DESARROLLO PARA EL PROCESAMIENTO DE SEÑALES13
Figura 1.7: Esquema general de un FPGA. Cada cuadrito en gris oscuro e4s un
«bloque lógico» que permite la implementación una función lógica.
1.4.
Sistemas de desarrollo para el procesamiento
de señales
1.4.1.
Field Programmable Gate Array
Una FPGA2 es un dispositivo semiconductor que contiene bloques de lógica
booleana cuya interconexión y funcionalidad puede ser configurada «in situ»
mediante un lenguaje de descripción especializado. La lógica programable puede
reproducir desde funciones tan sencillas como las llevadas a cabo por una puerta
lógica o un sistema combinacional hasta complejos sistemas en un chip.
Desde principios de 2007, hay dos grandes productores de FPGA de propósito general, además de un conjunto de otros competidores quienes se diferencian
por ofrecer dispositivos con características únicas.
Xilinx es uno de los dos grandes líderes en la fabricación de FPGA.
Altera es el otro gran líder.
Lattice Semiconductor lanzó al mercado dispositivos FPGA con tecnología
de 90nm. Además, Lattice es un proveedor líder en tecnología no volátil,
FPGA basadas en tecnología Flash, con productos de 90nm y 130nm.
Actel tiene FPGAs basados en tecnología Flash reprogrammable. También
ofrece FPGAs que incluyen mezcladores de señales basados en Flash.
QuickLogic tiene productos basados en antifusibles (programables una sola
vez). Atmel es uno de los fabricantes cuyos productos son reconfigurables
2 del
inglés «Field Programmable Gate Array».
14
CAPÍTULO 1. ELEMENTOS BÁSICOS DE UN SISTEMA DSP
Figura 1.8: DE2i-150 FPGA Development Kit por Terasic.
(el Xilinx XC62xx fue uno de estos, pero no están siendo fabricados actualmente). Ellos se enfocaron en proveer microcontroladores AVR con
FPGAs, todo en el mismo encapsulado.
Achronix Semiconductor a través de tecnología de Intel de 22 nm, su catálogo incluye dispositivos FPGA de hasta 1.5 GHz
1.4.2.
Terasic DE2i-150 FPGA Development Kit
La figura 1.8 muestra un DE2i-150 FPGA Development Kit desarrollado
por Terasic. Este sistema es una computadora basada en el procesador Atom.
Mediante el software Quartus se puede realizar el diseño de un sistema digital.
Tal diseño se puede descargar directamente a un FPGA.
1.4.3.
Software radio
En la dirección electrónica http://www.ea1uro.com/sdr.html se puede encontrar la siguiente información.
1.4. SISTEMAS DE DESARROLLO PARA EL PROCESAMIENTO DE SEÑALES15
Figura 1.9: Equipo de Softare Radio. Este equipo se forma por tres elementos:
una computadora de escritorio, un transceptor de amplio rango y software de
programación-control.
16
CAPÍTULO 1. ELEMENTOS BÁSICOS DE UN SISTEMA DSP
Tradicionalmente los equipos receptores y transceptores de radiocomunicaciones son equipos constituidos por multitud de componentes electrónicos, los
cuales forman circuitos sintonizadores, etapas de frecuencia intermedia, detectores, amplificadores de baja frecuencia, es decir, están constituidos por «hardware». Posteriormente, en los años 1980ťs y 1990ťs se introdujeron microprocesadores en estos equipos para el control de funciones internas usando meramente botones en lugar de perillas y para añadir nuevas prestaciones como lo
son las pantallas informativas. También se introdujo la posibilidad de controlar
los equipos de radio desde un ordenador, añadiendo al equipo de radio puertos de comunicación. En estos casos, y usando el software adecuado, es posible
controlar desde el ordenador numerosas funciones del equipo de radio, igual o
mejor que desde los controles del propio equipo. También en la década de los
1990ťs comenzó la introducción en los modernos equipos de radio de los chips
DSP o «Procesadores Digitales de Señal», los cuales permiten mediante técnicas
digitales realizar filtros de paso de banda y de supresión de ruidos, entre otras
posibilidades. Los DSP son muy eficaces y mejor que los realizados tradicionalmente con circuitos analógicos.
Como resultado de la introducción de microprocesadores surge el SDR o
«Software Defined Radio»3 . Éste es un sistema de radiocomunicaciones donde
los componentes típicamente implementados en hardware4 son implementados
en software, utilizando una computadora personal u otros dispositivos de computación embebida. Aunque el concepto de SDR no es nuevo, la reciente evolución de la circuitería digital ha hecho posible desde el punto de vista práctico
muchos de los procesos que tiempo atrás eran solamente posibles desde el punto
de vista teórico.
Un SDR básico puede estar conformado por una computadora interna, equipada con una tarjeta de sonido u otro conversor analógico a digital, precedido de
algún adaptador de radiofrecuencia (RF). Una gran parte del procesamiento de
las señales se realiza en procesadores de propósito general, en lugar de utilizar
hardware de propósito específico. Esta configuración permite cambiar los protocolos y formas de onda simplemente cambiando el software. El SDR de la
figura 1.9 está formado por una computadora embebida y tarjetas dependientes
que realizan funciones de modulación para llevar a las señales sintetizadas a la
respectiva banda de frecuencias.
Los SDR son de gran utilidad tanto en los servicios de telefonía celular como
en el ámbito militar, pues en ambos se manejan varios protocolos en tiempo
real, que cambian a necesidad casi constantemente.
A largo plazo, se prevé que los radios definidos por software se conviertan
en la tecnología dominante en radiocomunicaciones, pues es la vía que permite
llegar a la radio cognitiva.
3 En
castellano puede traducirse como o «Radio Definida por Software»
filtros, amplificadores, moduladores/demoduladores, detectores, etc.
4 Mezcladores,
1.5. ANTECEDENTES
1.5.
17
Antecedentes
Para el estudio de las tecnologías aplicadas en el procesamiento digital de
señales se requiere del conocimiento de varias asignaturas como son:
Diseño digital
Sistemas de Comunicaciones Analógicas
Sistemas de Comunicaciones Digitales
Filtros digitales
Seguramente el lector podrá identificar los nombres aún cuando hayan sido
solamente capítulos o temarios completos en sus plan de estudios.
18
CAPÍTULO 1. ELEMENTOS BÁSICOS DE UN SISTEMA DSP
Capítulo 2
Conversión digital a analógica
2.1.
Conversión digital a analógico
Un conversor de señal digital a analógica o DAC1 es un dispositivo para convertir datos binarios en señales de corriente o de tensión analógica. El DAC se
utiliza profundamente en los reproductores de discos compactos, en los reproductores de sonido y de cintas de vídeo digitales y en los equipos de procesamiento
de señales digitales de sonido y vídeo.
La mayoría de los DAC utilizan alguna forma de red resistiva. Los datos
digitales se aplican a los resitores en grupos de bits. Las resistencias varían en
proporciones definidas y el flujo de corriente de cada uno está directamente
relacionado con el valor binario del bit recibido.
Un circuito que también es empleado para la conversión digital a analógica
es el modulador de ancho de pulso ó PWM2 .
Para demostrar las ecuaciones de las secciones siguientes, el lector deberá
conocer:
El cálculo de resistencias en serie (Apéndice A).
El cálculo de resistencias en paralelo (Apéndice A).
El teorema de Thevenin (Apéndice A).
El teorema de Norton (Apéndice A).
Fuentes equivalente de voltaje y de corriente (Apéndice A).
19
20
CAPÍTULO 2. CONVERSIÓN DIGITAL A ANALÓGICA
Figura 2.1: DAC resistivo.
2.2.
Convertirdor digital a analógico por red R
Este tipo de circuito se ilustra en la figura 2.1. El circuito suele completarse
con un amplificador operacional3 . La característica principal de este DAC es la
relación entre las resistencias que lo forman: en forma sucesiva, cada resistencia
es la mitad de la anterior. Tal arreglo es de difícil implementación debido a la
impresición del proceso de fabricación. Así entonce no se utiliza en circuitos
comerciales.
2.2.1.
Ecuación característica
La ecuación que define el voltaje de salida del DAC en la figura 2.1 es:
VDAC =
1
B0 + 2B1 + 4B2 + . . . + 2N −1 BN −1 Vent
2N − 1
(2.1)
En donde:
B0 , B1, . . . BN −1 son los terminales en los cuales se colocan las señales
binarias. Estas señales están normalizadas a «1» y «0».
Vent es el voltaje que se alimenta a cada terminal.
B0 es el bit menos significativo.
BN −1 es el bit más significativo.
N es el número de bits.
1 del
inglés «digital to analog converter».
inglés «Pulse Width Modulation».
3 El amplificador operacional es un circuito con una impedancia de entrada medida en
decenas y cientos de mega ohms, su impedancia de salida es algunos cientos de ohms e incluso
de alagunas decenas de ohms, en tanto que su ganancia es de algunas decenas de miles.
2 del
2.3. CONVERTIRDOR DIGITAL A ANALÓGICO POR RED R2R
2.2.2.
21
Resolución
La resolución del DAC R está dada por el voltaje más pequeño que puede
sintetizarse. Este voltaje se calcula alimentando el voltaje de entrada Vent al
terminal B0 y dejando los demás terminales en cero voltios:
Res =
1
Vent
2N − 1
(2.2)
Esta resolución suele expresar en forma normalizada B0 = 1 [V ] en la forma
siguiente:
Res =
2.2.3.
2N
1
−1
(2.3)
Ganancia
La ganancia se calcula alimentando el mismo voltaje de entrada Vent en los
terminales B0 , B1, . . . BN −1 . Así entonces resulta que la ganancia es:
VDAC
=1
Vent
2.2.4.
(2.4)
Ejemplo: DAC de 4 bits
Suponga un DAC de 4 bits al que se alimenta la palabra binaria «0101». El
voltaje de operación es de Vent = 5V . Calcule entonces el voltaje a la salida del
DAC
Aplicando la fórmula 2.1 se tiene que:
VDAC =
2.3.
1
[1 + 0 + 4 + 0] × 5 [V ] = 1,667 [V ]
15
(2.5)
Convertirdor digital a analógico por red R2R
Este tipo de circuito se ilustra en la figura 2.2. El circuito suele completarse
con un amplificador operacional. La característica principal de este DAC es que
se compone de resistencias que solamente pueden tomar dos valores posibles,
R y2R. Tal arreglo es fácilmente implementable por lo que suele utilizarse en
circuitos comerciales.
2.3.1.
Ecuación característica
La ecuación que define el voltaje de salida del DAC en la figura 2.1 es:
VDAC =
En donde:
1 B0 + 2B1 + 4B2 + . . . + 2N −1 BN −1 Vent
N
2
(2.6)
22
CAPÍTULO 2. CONVERSIÓN DIGITAL A ANALÓGICA
Figura 2.2: DAC R2R
B0 , B1, . . . BN −1 son los terminales en los cuales se colocan las señales
binarias.
Vent es el voltaje que se alimenta a cada terminal.
B0 es el bit menos significativo.
BN −1 es el bit más significativo.
N es el número de bits.
2.3.2.
Resolución
La resolución del DAC R está dada por el voltaje más pequeño que puede
sintetizarse. Este voltaje se calcula alimentando el voltaje de entrada Vent al
terminal B0 y dejando los demás terminales en cero voltios:
1
Vent
(2.7)
2N
Esta resolución suele expresar en forma normalizada en la forma siguiente
Res =
Res =
2.3.3.
1
2N
(2.8)
Ganancia
La ganancia se calcula alimentando el mismo voltaje de entrada Vent en los
terminales B0 , B1, . . . BN −1 . Así entonces resulta que la ganancia es:
VDAC
1
=1− N
Vent
2
(2.9)
2.4. FILTRO RECONSTRUCTOR
23
Figura 2.3: Proceso de reconstrucción de la señal original a partir de la señal
entregada por el DAC.
2.3.4.
Ejemplo: DAC R2R de 4 bits
Suponga un DAC R2R de 4 bits al que se alimenta la palabra binaria «0101».
El voltaje de operación es de Vent = 5V . Calcule entonces el voltaje a la salida
del DAC
Aplicando la fórmula 2.6 se tiene que:
VDAC =
2.4.
1
[1 + 0 + 4 + 0] × 5 [V ] = 1,5625 [V ]
16
(2.10)
Filtro reconstructor
La señal que resulta de un circuito DAC contruído a base de redes de resistencias tiene forma escalonada tal como ilustra el gráfico superior izqquierdo
en la figura 2.3. Para sintetizar una curva suave se aplica un filtro, el cual genera
la señal deseada. Un filtro reconstructor debe ser uno de los siguientes.
Un filtro ideal.
Un filtro coseno elevado.
Un filtro real, ya sea clásico o moderno.
24
CAPÍTULO 2. CONVERSIÓN DIGITAL A ANALÓGICA
Para comprender completamente el comportamiento del mencionado filtro se
realiza un estudio tanto en el domino del tiempo como en el dominio de la
frecuencia.
2.4.1.
La señal del DAC
El estudio se inicia definiendo matemáticamente la señal que entrega el DAC
como el producto de la señal original con un tren de pulsos, es decir:
ϕs (t) = ϕ (t)
∞
X
Gτ (t − nτs )
(2.11)
n=−∞
donde:
ϕ (t) es la señal original y que se pretende recobrar.
Gτ (t) es un pulso. Un tre de pulsos se sintetiza generando pulsos desplazados y sumándolos.
τs es el periodo de muestreo.
Dado que en cada instante de muestreo solamente interesa la amplitud de la
señal original en tal instante, es posible escribir la ecuación 2.11 en la forma
siguiente.
ϕs (t) =
∞
X
ϕ (nτs ) Gτ (t − nτs )
(2.12)
n=−∞
Un bosquejo del espectro correspondiente a la ecuación 2.12 puede verse en
el gráfico superior izquierdo de la figura 2.3.
2.4.2.
El filtro reconstructor
Dado el espectro de la señal entregada por el DAC, gráfico superior derecho
de la figura 2.3, es muy notorio que el tipo de filtro requerido para recobrar la
señal original es un «paso bajas ideal» cuya frecuencia de corte es, precisamente,
la frecuencia máxima contenida en la señal. En gráfico central derecho de la
figura 2.3 ilustra la respuesta en frecuencia del mencionado filtro ideal. Así
entonces, la ecuación que describe el respectivo espectro de este filtro es:
h ($) = G2$C ($)
(2.13)
Ahora se calcula la respectiva respuesta al impulso del filtro ideal. Esto se
hace mediante la Transformada Inversa de Fourier:
2$C
2$C
h (t) =
sinc
t
(2.14)
2π
2
Simplificando la ecuación 2.14 se tiene:
2.4. FILTRO RECONSTRUCTOR
25
$C
sinc ($C t)
(2.15)
π
El gráfico central izquierdo de la figura 2.3 ilustra la respuesta a impulso de
tipo sinc de un filtro paso-bajas ideal.
h (t) =
2.4.3.
Reconstrucción
La reconstrucción se realiza aplicando el filtro ideal a la señal entregada por
el DAC. Espectralmente, es suficiente un producto de funciones. Ahora bien, lo
que en frecuencia es un producto, en el dominio del tiempo es una convolución,
es decir:
ϕ (t) = h (t) ∗ ϕs (t)
(2.16)
Sustituyendo las ecuaciones 2.15 y 2.12 en la ecuación 2.16 se logra:
ϕ (t) =
∞
X
$C
sinc ($C t) ∗
ϕ (nτs ) Gτ (t − nτs )
π
n=−∞
(2.17)
El respectivo proceso de solución es:
ϕ (t)
=
$C
π
=
P∞
n=−∞
ϕ (nτs ) sinc ($C t) ∗ Gτ (t − nτs )
P∞
$C
n=−∞
π A
ϕ (nτs ) sinc [$C (t − nτs )]
En conclusión se tiene una función denominada «función interpolante».
∞
X
$C
ϕ (t) =
A
ϕ (nτs ) sinc [$C (t − nτs )]
π
n=−∞
(2.18)
La función 2.18 se denomina «interpolante» dado que la señal original se
define como una suma de funciones «sinc» ponderadas y desplazadas tal como
puede apreciarse en el gráfico inferior izquierdo de la figura 2.3.
2.4.4.
Filtro real y la Interferencia intersimbólica
Un filtro ideal tiene una respuesta al impulso en forma de la función «sinc».
Un filtro real tiene una respuesta al impulso también del tipo «sinc», no obstante
con variaciones en su amplitud y duración. La figura 2.4 ilustra la respuesta
en frecuencia de un filtro del tipo Butterworth así como sus correspondientes
respuestas al impulso.
La consecuencia de componer una función interpolante con la respuesta al
impulso de un filtro real ocasiona ondulaciones de alta frecuencia en la señal reconstruída. En el gráfico inferior izquierdo de la figura 2.5, en un recuadro verde,
puede observarse dos respuestas al impulso que deben sumarse en un isntante
en particular. Como se observa la suma no aproxima a la función original.
26
CAPÍTULO 2. CONVERSIÓN DIGITAL A ANALÓGICA
Figura 2.4: Respuestas en frecuencia y sus correspondientes respuestas a impulso.
2.4. FILTRO RECONSTRUCTOR
27
Figura 2.5: Reconstrucción de la señal original mediante un filtro real del tipo
Butterworth.
28
CAPÍTULO 2. CONVERSIÓN DIGITAL A ANALÓGICA
Figura 2.6: Filtro coseno elevado.
2.4.5.
Filtro Coseno Elevado
Un filtro de coseno alzado es un tipo de filtro electrónico, utilizado frecuentemente en sistemas de telecomunicaciones debido a que es capaz de reducir al
mínimo la interferencia entre símbolos (ISI). Se llama así porque la parte no
nula del espectro frecuencial es un coseno que, en su forma más simple (α = 1),
se encuentra «alzado» para situarse por encima del eje f (horizontal).
El filtro de coseno alzado es una implementación de un filtro paso bajo de
1
Nyquist. Con lo cual, el espectro tendrá simetría impar en 2T
, donde T es el
período del sistema de comunicaciones. Su descripciónn visual puede verse en
la figura 2.6 en tanto que su descripción en el dominio de la frecuencia es una
función definida a trozos, dada por:
G2(1−α)wC =















1
cos2
h
π
4α$C
i
(|$| − $C )
0
0 ≤ |$| ≤ (1 − α) $C
(1 − α) $C < |$| < (1 + α) $C
(1 + α) $C < |$|
(2.19)
La respectiva respuesta al impulso es una función muy parecida a la sinc.
2.5. CONVERTIDOR DIGITAL A ANALÓGICO POR ANCHO DE PULSO29
Figura 2.7: Una señal cuadrada de amplitud acotda mostrando el ciclo
de trabajo. Fuente http://es.wikipedia.org/wiki/Modulaci %C3 %B3n_por_ancho_de_pulsos.
En cualquier caso, la función coseno elevado es un filtro que permite la reconstrucción de la señal original sin distorsiones.
Valores convenientes para α pueden encontrarse en el intervalo abierto α =
(0, 1).
2.5.
Convertidor digital a analógico por ancho de
pulso
La modulación por ancho de pulsos, también conocida como PWM, es una
técnica en la que se modifica el ciclo de trabajo de una señal periódica típicamente de forma cuadrada, ya sea para transmitir información a través de un
canal de comunicaciones o para controlar la cantidad de energía que se envía a
una carga.
El ciclo de trabajo de una señal periódica es el ancho relativo de su parte
positiva en relación con el período. Expresado matemáticamente:
D=
τ
τs
(2.20)
Donde:
D es el ciclo de trabajo.
τ es el diempo en el cual la función es positiva (ancho de pulso).
τs es el periodo de la función.
La figura 2.7 ilustra gráficamente la relación entre los términos de la ecuación
2.20. Los principios sobre los cuales opera la conversión digital a analógico se
muestran en la figura . Estos principios pueden resumirse en dos ideas:
El ciclo de trabajo es proporcional a la amplitud de una muestra de la
señal de entrada.
30
CAPÍTULO 2. CONVERSIÓN DIGITAL A ANALÓGICA
Figura 2.8: DAC basado en un generador PWM. En este sistema, el criterio de
Nyquist ya no es condición mínima para la recuperación de la señal.
Al alimentar la señal PWM a un filtro, éste entrega un voltaje proporcional
al ciclo de trabajo.
Debe considerarse que en el caso de un sistema basado en PWM para la conversión digital a analógico, el criterio de Nyquist sobre el muestreo ya no es
condición suficiente para la recuperación de la señal.
Las aplicaciones de la modulación por ancho de pulso son:
Conversión digital a analógica.
Transmisión de información de un sensor a un microprocesador
Transmisión de información de control a un actuador4 .
Existen dos tipos de circuitos que permiten realizar la modulación por ancho de
pulso, los moduladores digitales y los moduladores analógicos.
2.5.1.
Modulador digital de ancho de pulso
El modulador digital de ancho de pulso, cuyo diagrama puede verse en la
figura 2.9, funciona tal como se describe a continuación.
El contador corre libremente realizando su operación de cero a algún valor
dado por el número de bits que lo forman.
El Registro «Duty cycle» contiene un valor particular.
El comparador entregará un «uno» lógico mientras el valor del contador
sea inferior al valor almacenado en el registro «Duty cycle».
El comparador entregará un «cero» lógico una vez que el valor del contador
alcance al valor almacenado en el registro «Duty cycle».
4 Los
servo motores analógicos reciben información por una señal PWM.
2.5. CONVERTIDOR DIGITAL A ANALÓGICO POR ANCHO DE PULSO31
Figura 2.9: Circuito digital para la modulación por ancho de pulso.
Cuando el contador desborda su conteo, envía una señal al registro «Duty
cycle» para cargar un nuevo valor de «Duty cycle».
El valor del registro «Duty cycle» se puede precargar en cualquier instante
empleado el registro «Data sample». Sin este segundo registro, el circuito
tendría un comportamiento extraño.
El valor que se carga en el registro «Data sample» es una muestra de voltaje de
un mensaje de entrada
2.5.2.
Modulador analógico de ancho de pulso
La figura 2.10 muestra un circuito modulador de ancho de pulso mediante
un comparador. La señal de entrada se compara en amplitud con una señal de
referencia diente de sierra. Mientras la señal de entrada sea mayor en amplitud
a la señal diente de sierra, el comparador entregará un voltaje positivo. Una
vez que la señal diente de sierra supera en amplitud a la señal de entrada, la
salida del comparador caerá a cero voltios. La figura ilustra este proceso de
comparación.
2.5.3.
El espectro de la señal PWM
Previamente, recuerde que el espectro de una señal diente de sierra tiene
una componente fundamental, armónicos pares e impares y en este caso tiene
32
CAPÍTULO 2. CONVERSIÓN DIGITAL A ANALÓGICA
Figura 2.10: Modulador analógico de ancho de pulso. La señal de entrada debe
tener una componente de directa.
Figura 2.11: Señal diente de sierra con simetría impar.
una componente de directa tal como indica la ecuación siguiente. La figura 2.11
ilustra la respectiva señal.
v (t) = V
1
1
+
2 π
1
1
sen ($s t) − sen (2$s t) + sen (3$s t) − . . .
2
3
(2.21)
Ahora bien , para el cálculo del espectro, considere incialmente, que se tiene
el circuito PWM de la figura 2.10. En este circuito se tienen los siguientes datos
de entrada.
El mensaje tiene una componente espectra máxima de fC hertz.
La frecuencia del diente de sierra fS hertz.
Así, el espectro puede definirse como la suma de los espectros de varias señales
tal como indica el siguiente teorema:
Teorema 2.1 El especctro de la señal PWM puede expresarse como la
combinación lineal de varios espectros:
El espectro del mensaje.
Por cada componente senoidal del mensaje fmsj;i se tiene el espectro de un
diente de sierra cuya frecuencia fundamental es de f0 = fmsj;i y además
está desplazado a una frecuencia de fS .
2.5. CONVERTIDOR DIGITAL A ANALÓGICO POR ANCHO DE PULSO33
El lector podrá observar que el teorema 2.1 no hace mención de componentes
espectrales debidas a no linealidades, si es que las hay presentes en la modulación
PWM.
Para ejemplificar lo mencionado en el teorema 2.1, la figura 2.12 ilustra un
modulador de ancho de pulso cuyo mensaje es un tono puro de 1kHz y cuya
portadora es un diente de sierra a 20kHz. La figura 2.13 ilustra otro modulador
de ancho de pulso cuyo mensaje es un tono puro de 2kHz y cuya respectiva
portadora es un diente de sierra también a 20kHz.
2.5.4.
Interferencia intersimbólica
Ocurre interferencia intersimbólica cuando el espectro del diente de sierra,
en la señal PWM, interfiere al espectro del mensaje. Así, el diseñador de un
DAC basado en PWM deberá considerar una frecuencia diente de sierra suficientemente alejada del espectro del mensaje. Una recomendación podría ser
fS ≥ 10fC .
2.5.5.
Filtro reconstructor
Una forma simple de lograr demodular el mensaje de una señal PWM es mediante un filtro paso bajas cuya frecuencia de corte debe ser igual a la frecuencia
máxima contenida en el mensaje. Este filtro puede ser:
De forma teórica, un filtro ideal.
Un filtro coseno elevado.
Un circuito RC.
Un filtro moderno como el Butterworth o el TChebyshev.
En cuanto al filtro moderno, el espectro de la figura 2.12 y el espectro de la
figura 2.13 permiten visualizar que la frecuencia de corte para el filtro ideal
debe coincidir con la frecuencia máxima del mensaje.
En lo que respecta a un circuito RC, la frecuencia de corte del filtro puede
calcularse por la fórmula siguiente
fc =
1
2πRC
(2.22)
donde:
fc es la frecuencia máxima del mensaje.
En cuanto a un filtro moderno, existe software en la internet que facilita el
diseño de estos filtros.5
Para ejemplificar, el circuito de la figura 2.14 tiene una fuente de señal basada
en dos tonos a 1kHz y a 3kHz. La portadora es un diente de sierra con frecuencia
5 Un
ejemplo de estos programas de computadora es «filterlab».
34
CAPÍTULO 2. CONVERSIÓN DIGITAL A ANALÓGICA
Figura 2.12: Circuito modulador PWM y espectro para un mensaje de tono puro
de 1kHz y señal portadora de 20kHz. El circuito fue capturado y simulado en
Multisim, versión estudiante.
2.5. CONVERTIDOR DIGITAL A ANALÓGICO POR ANCHO DE PULSO35
Figura 2.13: Circuito modulador PWM y espectro para un mensaje de tono puro
de 2kHz y señal portadora de 20kHz. El circuito fue capturado y simulado en
Multisim, versión estudiante.
36
CAPÍTULO 2. CONVERSIÓN DIGITAL A ANALÓGICA
Figura 2.14: Circuito para modular y demodular señales PWM. El modulador
PWM se alimenta con dos tonos a 1kHz y 3kHz. La portadora es una señal
trinagular de 20kHz. El filtro es del tipo Butterworth con un orden de 3 y
frecuencia de corte en 3kHz. El gráfico central muestra el espectro a la salida del
modulador. El gŕafico inferior es un comparativo entre la señal de entrada (rojo)
y la señal de salida (azul). El circuito fue capturado y simulado en Multisim,
versión estudiante.
2.6. EJERCICIOS
37
de 20kHz. El espectro de la señal que entrega el modulador puede verse en la
figura. El filtro, diseñado en MATLAB, es del tipo Butterworth con un orden de
3 y frecuencia de corte en 3kHz. El gráfico central muestra el espectro a la salida
del modulador. El gŕafico inferior es un comparativo entre la señal de entrada
(rojo) y la señal de salida (azul).
En cuanto a la la reconstrucción de la señal, mostrada en el gŕafico inferior
y trazo azul de la figura 2.14, puede notarse cierta distorsión. Esta distorsión se
debe a que el espectro del diente de sierra ocasiona interferencia intersimbólica
con el espectro del mensaje.
2.6.
Ejercicios
1. Diseñe un DAC R a 8 bits usando una resistencia base de 128kΩ.
a) Reporte el diagrama del circuito indicando los valores de las resistencias.
b) Si se alimentan los terminales como sigue B0 = B2 = B4 = 5V ,
dejando los demás terminales a cero voltios, calcule el voltaje de
salida.
2. Dado un DAC R de 16 bits, calcule la resolución normalizada.
3. Diseñe un DAC R2R a 8 bits usando una resistencia base de 10kΩ.
a) Reporte el diagrama del circuito indicando los valores de las resistencias.
b) Si se alimentan los terminales como sigue B0 = B2 = B4 = 5V ,
dejando los demás terminales a cero voltios, calcule el voltaje de
salida.
4. Dado un DAC R2R de 16 bits, calcule la resolución normalizada.
5. Considerando un mensaje con dos componentes espectrales y cuya ecuación
se indica a continuación, calcule el espectro de la señal PWM si la frecuencia del diente de sierra es de 20KHz.
vm (t) = sen (2π1000t) + 0,5sen (2π1600t)
38
CAPÍTULO 2. CONVERSIÓN DIGITAL A ANALÓGICA
Capítulo 3
Conversión analógica a digital
El proceso de conversión de análogo a digital, descrito normalmente, es una
formulación que permite su descripción matemática y en el dominio de la frecuencia. Tal formulación implica los pasos siguientes:
Muestreo.
Retención.
Cuantización.
Codificación a binario.
El proceso que se describirá a continuación corresponde a la arquitectura de un
circuito funcional. La arquitectura de tal sistema incluye las siguientes etapas.
Transductor de entrada.
Filtrado antialiasing.
Muestreo-retención.
Codificación a binario (cuantización y retención).
La figura 3.1 ilustra el sistema que será tratado.
3.1.
3.1.1.
Proceso de conversión analógico a digital
Fuente de información
La fuente de información puede ser cualquier fenómeno natural, fenómeno
artificial o evento social. Tal fuente debe emitir alguna forma de energía, la cual
para su procesamiento debe ser convertida a una forma de onda eléctrica.
39
40
CAPÍTULO 3. CONVERSIÓN ANALÓGICA A DIGITAL
Figura 3.1: Arquitectura de un sistema de conversión analógico a digital.
3.1.2.
Transductor de entrada
El transductor es un dispositivo que transforma una forma de energía en
otra. Algunos transductores son:
Conversión de luz a energía eléctrica: fotoresistencia, foto transistor, CCD.
Conversión de temperatura energía eléctrica: termistor, termopar.
Conversión de presión a energía eléctrica: galga.
Conversión de sonido a energía eléctrica: micrófono.
3.1.3.
Filtro antialiasing
El filtro antialiasing tiene dos funciones importantes:
Reducir la potencia del ruido que el transductor de entrada agrega.
Limitar el ancho de banda de la señal que entrega el transductor a una
frecuencia máxima en particular.
La razón de limitar el ancho de banda de la señal que entrega el transductor
implica el cumplimiento del criterio de Nyquist para el muestreo de señales. Así
entonces, la señal que entrega el filtro es conocida como «señal banda base».
El filtro antialing es un paso-bajas frecuencias y cualquier teoría puede ser
empleada para su diseño.
3.1.4.
Muestreador-retenedor
El circuito Muestreador-retenedor, como su nombre lo indica, captura el
voltaje de la señal, en los instantes de muestreo, cargando y descargando un
capacitor. La razón de tomar muestras y mantenerlas es para dar tiempo al circuito ADC para realizar su operación. El circuito básico que realiza el muestreorentención está ilustrado en la figura 3.1 y su operación es bastante simple:
3.2. MUESTREADOR
41
Figura 3.2: Circuito muestreador sencillo y basado en TBJ. El circuito se simuló
en Multisim, versión estudiante.
Cuando el interruptor se cierra, el capacitor se carga a través de la resistencia del amplificador de entrada. Como esta resistencia es pequeña,
el capacitor se carga rápidamente.
Una vez que el capacitor de ha cargado, el interruptor se abre.
Entonces, el capacitor se descarga muy lentamente a través de la resistencia
del amplificador de salida. Como esta resistencia es muy grande, el voltaje
del capacitor se mantiene.
3.1.5.
Circuito ADC
El circuito «convertidor análogo a digital» ó ADC tiene la función de codificar a binario un voltaje colocado en su terminal de entrada. Así entonces, el
ADC, a pesar de su nombre, solamente incluye las dos etapas finales, cuantización y codificación, del proceso de conversión de señal analógica a digital. En
el mercado es posible encontrar circuitos que realizan el proceso de muestreo,
pero el proceso de retención implica un circuito que debe ser implementado con
un capacitor y amplificadores.
Existen varias versiones de los circuitos ADC, dos de estas versiones se denominan «ADC de aproximanciones sucesivas» y «ADC tipo flash». Ambas
versiones serán revisadas a continuación.
3.2.
Muestreador
El circuito de la figura 3.2 ilustra un muestreador-retenedor fácil de armar
para un estudiante de laboratorio. Este circuito, basado en un transisor, es un
42
CAPÍTULO 3. CONVERSIÓN ANALÓGICA A DIGITAL
mero amplificador negador qwue opera en corte y saturación. Su operación se
resume a continuación:
La fuente del mensaje es también la fuente de polarización del TBJ. Esta
fuente de señal debe ser positiva aunque puede llegar a tomar valores de
cero voltios. Esta señal de polarización debe estar en el intervalo de cero
a cinco voltios.
Una señal de reloj, conectada a la base del transistor marca los instantes
de muestreo. Esta señal está en el intervalo de cero a cinco voltios.
Cuando el voltaje del reloj está en alto (5 voltios) el transistor se habilita
entrando en saturación y es en este momento, que puede observarse un
voltaje bajo en el colector: 0.2 voltios.
Cuando el voltaje del reloj está bajo (0 voltios), el transistor entra en
corte, es decir, se apaga. Un transistor apagado no permite la circulación
de corriente por lo que cual el voltaje en el colector es de cinco voltios.
El valor de la resistencia en la base se calcula a partir del voltaje que se le suministra y de la potencia que debe disipar. Así, un buen valor par ala resistencia
de base es:
V2
(3.1)
P
Suponiendo que el voltaje de polarización sea 5V y la potencia máxima
disipada sea de 1/2W , el valor de la resistencia deberťia mayor a 50Ω.
RB =
3.3.
ADC de aproximaciones sucecivas
El circuito ADC de aproximaciones sucesivas1 funciona generando un voltaje
que se puede equiparar con el voltaje de la muestra de entrada. El funcionamiento general es como se indica a continuación y queda ilustrado en la figura 3.3.
1. En un instante se tiene una muestra de la señal de entrada, es decir, se
tiene un voltaje. En este mismo instante ocurre el pulso de «inicio» de
conversión: esquina inferior izquierda de la figura 3.3.
2. Cuando el pulso de «inicio» se levanta:
a) Establece a ceros el contador. Así que la salida del DAC es cero.
b) b) El pulso de «inicio» se niega por lo que impide el paso de la señal
de reloj por medio de una compuerta AND.
3. Una vez que el pulso de «inicio» cae, ocurre que el comparador entregará
un uno lógico, en tanto que la línea de «start» tendrá también uno lógico.
En consecuencia, la señal de reloj podrá pasar al contador y moverlo.
1 También
se suele denominar «ADC de rampa digital».
3.3. ADC DE APROXIMACIONES SUCECIVAS
43
Figura 3.3: Diagrama del circuito «Convertidor análogo a digital» ó ADC.
Fuente http://hyperphysics.phy-astr.gsu.edu/hbasees/electronic/adc.html.
4. Mientras los pulsos de reloj muevan al contador, el voltaje a la salida del
DAC crece.
5. Una vez que la salida de voltaje del DAC equipara o supera al voltaje de
entrada Vs , el comparador entrega un cero lógico y bloquea los pulsos de
reloj.
6. Nótese que el instante en el cual se termina la conversión queda indicado
por la señal EOC.
Si el lector observa bien, el circuito descrito en la figura 3.3 solamente funcionará
cuando el voltaje de entrada Vs se mantiene constante.
3.3.1.
La resolución
La resolución de este convertidor es igual a la resolución del DAC, el cual
usa el arreglo de resistencias R2R, es decir:
RADC =
3.3.2.
1
2N
(3.2)
Desventajas
Este convertidor presenta la siguiente desventaja: el tiempo de conversión es
variable: puede ir desde cero hasta 2N ciclos en donde N es el número de bits
del contador.
44
CAPÍTULO 3. CONVERSIÓN ANALÓGICA A DIGITAL
Figura 3.4: Circuito convertidor análogo a digital de 2 bits.
3.4.
ADC tipo flash
La figura 3.4 ilustra un circuito ADC del tipo flash. La denominación «flash»
es debida a que el circuito no requiere ciclos para realizar la conversión. Este
tipo de convertidores es sumamente rápido y es empleado en cámaras de video
profesionales, equipo de instrumentación de alta frecuencia y demás.
El ADC tipo flash está compuesto por tres circuitos:
La referencia de cuantificación formada por un arreglo de resistencias en
serie.
El circuito cuantificador formado por un arreglo de comparadores de voltaje.
El codificador de prioridad.
Para poder entender la tabla lógica de la figura3.4, considérese lo siguiente:
cuando el voltaje de entrada es menor a un voltaje de referencia, el comparador
entregará un voltaje positivo. En el otro caso, cuando el voltaje de entrada es
mayor que el voltaje de referencia, el comparador entregará cero voltios.
3.4.1.
La resolución
Para el ADC flash, la resolución se define como el voltaje mínimo que puede
ser codificado. Este voltaje mínimo se puede calcular de forma aproximada como:
Res =
VCC
2N
donde:
Res es la resolución o el voltaje mínimo que puede ser convertido.
(3.3)
3.5. EL ADC TIPO DELTA
45
Figura 3.5: Convertidor ADC del tipo delta: cada muestra de la señal analógica
se aproxima incrementado o decrementado el contador de una unidad.
VCC es el voltaje de referencia que alimenta al arreglo de resistencias (no
necesariamente el de polarización).
N es el número de bits (también es el número de resistencias).
Para un circuito comercial, es mejor consultar su hoja de datos para calcular de
manera particular su resolución.
3.4.2.
Desventajas
La desventaja de este circuito está en la cantidad de transistores que deben
construirse en el integrado. En consecuencia se requiere de mayor escala de
integración y por tanto de mayor costo.
3.5.
El ADC tipo delta
El ADC tipo delta es una variante del convertidor de aproximaciones sucesivas. La variante en cuanto a su operación, implica que solamente requiere de
un ciclo de reloj para realizar la conversión.
La idea en la cual se basa este convertidor consiste en que la muestra que
sigue tiene una muy pequeña diferencia de voltaje respecto de la muestra que
actualmente se convierte. De esta forma, el contador interno del DAC solamente
debe incrementar o decrementar su conteo en «uno» en cada ciclo.
46
CAPÍTULO 3. CONVERSIÓN ANALÓGICA A DIGITAL
Figura 3.6: Diagramas de tiempo de la señal de entrada (rojo) y de la señal a
la salida del DAC (azul): la gráfica tiene un offset de -2V.
La figura 3.5 muestra este convertidor. Nótese que el contador tiene dos entradas de reloj: una entrada (up) para incrementar su conteo y otra entrada
(down) para decrementarlo. Así, si el comparador superior detecta la condición
VS < Vdac , se permitie el paso de la señal de reloj al terminal «up». En un segundo caso, si el comparador inferior detecta la condición VS > Vdac , se permite
el paso de la señal de reloj al terminal «down». El terminal «inicio» reinicia al
contador a ceros.
La figura 3.6 muestra la curva de salida (azul) del DAC siguiendo a una señal
de entrada no muestreada. La principal ventaja de este circuito consiste en que
requiere de mediana escala de integración, por tanto su costo es moderado.
En cuanto a su velocidad, estos circuitos pueden alcanzar velocidades de hasta
10MHz en sus versiones más simples. La desventaja de este dispositivo está un
capacidad limitada para rastrear la señal de entrada dado que el cambio de
voltaje en el DAC corresponde a su resolución.
Una desventaja adicional de este tipo de ADC está en su periodo de estabilización luego del arranque. Tal periodo puede requerir una cantidad muy grande
de ciclos. Para ejemplificar un caso concreto considérense los pasos siguientes:
1. En un instante se tiene una muestra de la señal de entrada, es decir, se
tiene un voltaje. En este mismo instante ocurre el pulso de «inicio» de
conversión.
2. Cuando el pulso de «inicio» se levanta: a) Establece a ceros el contador.
Así que la salida del DAC es cero. b) El pulso de «inicio» se niega por lo
que impide el paso de la señal de reloj por medio de una compuerta AND.
3. Una vez que el pulso de «inicio» cae, ocurre que:
a) La línea de «inicio», al negarse, permitirá el paso de la señal de reloj
por la compuerta AND hacia el multiplexor.
b) El comparador inferior entregará un «uno» lógico, permitiendo el
paso de la señal de reloj al contador.
3.6. EJERCICIOS
47
c) El comparador superior entregará un «cero» lógico con lo cual el multiplexor alimentará un «uno» lógico al terminal «down» permitiendo
el conteo hacia arriba.
4. Mientras los pulsos de reloj muevan al contador, el voltaje a la salida del
DAC crece.
5. Una vez que la salida de voltaje del DAC equipara o supera al voltaje de
entrada V_{s} , el comparador entrega un cero lógico y bloquea los pulsos
de reloj.
3.6.
Ejercicios
1. Para un ADC tipo flash de 12 bits, calcule la resolución del convertidor.
2. Diseñe el circuito codificador para un ADC tipo «flash» de dos bits.
3. Mejore el diseño del ADC de aproximaciones sucesivas de 8 bits para que
la conversión la realice en 8 ciclos en vez de 256 ciclos.
4. Mejore el diseño de ADC tipo delta para que el rastreo de la señal implique
cambios mayores a la resolución del DAC.
48
CAPÍTULO 3. CONVERSIÓN ANALÓGICA A DIGITAL
Capítulo 4
Formatos numéricos
4.1.
Sistemas de numeración
Decimal: 0...9
Binario: 0,1
Hexadecimal: 0,..,9,A,B,C,D,E,F
Octal: 0..7
4.1.1.
Constitución de un número en base 10
Ejemplos:
381,24 = 3 × 102 + 8 × 10 + 1 × 100 + 2 × 10−1 + 4 × 10−2
4372,3 = 4 × 103 + 3 × 102 + 7 × 10 + 2 × 100 + 3 × 10−1
4.1.2.
Codificar un número de cualquier base a base 10
423,415
=
4 × 52 + 2 × 5 + 3 × 50 + 4 × 5−1 + 1 × 5−2
=
4 × 25 + 2 × 5 + 3 + 4 × 0,2 + 1 × 0,04
=
113,8410
11010012
=
1 × 26 + 1 × 25 + 1 × 23 + 1 × 20
=
64 + 32 + 8 + 1
=
1055
49
50
CAPÍTULO 4. FORMATOS NUMÉRICOS
Figura 4.1: Conversión del número decimal 113.84 a suequivalente en base 5
Figura 4.2: Conversión del número decimal 105.41 a su equivalente binario.
4.1.3.
Codificación decimal a base 5
Problema: Realícese la conversión del número decimal 113,41 a base 5.
El proceso de conversión ocurre en dos pasos, el primer paso consiste en la
conversión a base 5 de la parte entera. Esta conversión puede verse en la figura
4.1.
Un segundo paso en la conversión es la codificación a base 5 de la parte
fraccionaria. Este proceso se ilustra en la figura 4.1.
4.1.4.
Codificación decimal a binario
Problema: Realícese la conversión del número decimal 105,41 a base 2.
El proceso de conversión ocurre en dos pasos, el primer paso consiste en la
conversión a binario de la parte entera. Esta conversión puede verse en la figura
4.2.
Un segundo paso en la conversión es la codificación a binario de la parte
fracionaria. Este proceso se ilustra en la figura 4.2.
4.2. COMPLEMENTOS
4.2.
51
Complementos
Hasta cierto punto, el complemento de un número de N dígitos puede definirse
como aquel otro número tal que sumados ambos el resultado es cero. Un complemento reducido de un número se define como la cantidad que hace falta sumarle
para lograr el número más grande representable con su misma cantidad de dígitos. En el presente capítulo será tratado el complemento a dos y su versión
reducida, el complemento a uno.
Los complementos suelen usarse para realizar la operación de sustracción
empleando meramente sumas. En el caso de las computadoras, esta propiedad es
ampliamente usada, dado que la operación de suma es fácilmente implementable
mediante compuertas lógicas. Así entonces, la implementación de la sustracción
se simplifica puesto que se usa el mismo circuito sumador.
4.2.1.
Complemento a 2
Teorema 4.1 El complemento a dos de un número X que, expresado en
el sistema binario está compuesto por N dígitos, se define como:
C2 {X} = 2N − X
(4.1)
Donde:
X es el número binario a complementar.
N es el número de dígitos binarios que forman a X.
2N es un «uno» seguido de N ceros.
Para ejemplificar, calcúlese el complemento a dos de 1011012 . Este número
tiene N = 6 dígitos binarios y la operación de complemento puede ser expresada
de la forma siguiente:
C2 {101101} = 106 − 101101
(4.2)
El resultado de tal operación es entonces:
C2 {101101} = 10011
4.2.2.
(4.3)
Complemento a uno
Teorema 4.2 Complemento a uno de un número X que, expresado en el
sistema binario está compuesto por N dígitos, se define como:
C1X = 2N − 1 − X
Donde:
(4.4)
52
CAPÍTULO 4. FORMATOS NUMÉRICOS
X es el número binario a complementar.
N es el número de dígitos binarios que forman a X.
2N − 1es una sucesión de N unos.1
Para ejemplificar, calcúlese el complemento a uno de 1011012 . Este número
tiene N = 6 dígitos binarios y la operación de complemento puede ser expresada
de la forma siguiente:
C1 {101101} = 106 − 1 − 101101
(4.5)
El resultado de tal operación es entonces:
C2 {101101} = 010010
(4.6)
Podrá notarse que el resultado de un complemento a uno resulta en una
inversión de bits.
4.2.3.
Relación entre complementos
Teorema 4.3 Relación entre complementos uno y dos. Las fórmulas 4.1 y 4.4
pueden relacionarse de tal forma que se logra el siguiente teorema.
C2 {X} = C1 {X} + 1
4.3.
(4.7)
Resta mediante complementos
En una operación de sustracción pueden identificarse los siguientes componentes:
El minuendo es la parte de la expresión de la sustracción que indica la
cantidad inicial.
El sustraendo es la cantidad que se retira de la cantidad original.
La diferencia representa el resultado de la expresión de sustracción.
Teorema 4.4 En una sustracción, conocido el minuendo (M ) y el sustraendo (S), la diferencia D por complementos se define como:
M − S = M + C1 {S} + 1
1 Esta
relación funciona para N ≥ 1.
(4.8)
4.4. TIPOS DE NÚMEROS
53
Para ejemplificar, realice la sustrucción de 71 menos 35, es decir:
−
100 0111
010 0011
(4.9)
Así entonces, la sustracción por complementos se realiza de la forma siguiente:
D = 100 0111 + C1 {010 0011} + 1
(4.10)
Realizando la operación
100 0111
+ 101 1100
+ 000 0001
1 010 0100
(4.11)
Puede notarse de la operación que hay un acarreo el cual va aser ignorado.
Así que la diferencia es D = 010 0100 lo cual es equivalete a D = 36.
4.4.
Tipos de números
Los tipos de datos que pueden manejarse en una computadora son:
Enteros no negativos.
Enteros.
reales en punto fijo.
Reales en punto flotante.
BCD2 .
4.5.
Enteros no negativos
El conjunto de los enteros no negativos es un conjunto numerable e infinito
en el cual se puede denotar la secuencia siguiente:
Z+ = {0, 1, 2, 3, . . .}
(4.12)
En cuanto a las computadoras, dependiedo del tamaño del registro usado
para almacenar a los enteros no negativos, éstas pueden representar un subconjunto numerable y finito.
2 BCD es la abreviatura del término anglosajón «Binary Coded Digit» y que puede leerse
como «Decimal Codificado en Binario».
54
CAPÍTULO 4. FORMATOS NUMÉRICOS
Figura 4.3: Registro de n celdas para almacenar un subconjunto de los enteros
no negativos.
Teorema 4.5 Representación de números enteros de N bits. Un número
entero de N bits se puede representar como:
bN −1 2N −1 + . . . + b2 22 + b1 2 + b0
(4.13)
donde:
N es el número de bits empleados para representar el número entero no
negativo.
bi es el bit en la i-ésima posición.
2i es el peso de la i-ésima posición.
La figura 4.3 muestra el formato y significado de un registro para números
enteros no negativos de N bits.
4.5.1.
Ejemplo
Para ejemplificar, convierta los nueros binarios de 4 bits, 10102 y 11012 , a
decimal:
1010
3
= 1 (2) + 1 (2)
=
8+2
=
10
y
0101
4.5.2.
2
= 1 (2) + 1
=
4+1
=
5
Propiedades
Teorema 4.6 El rango de los enteros no negativos almacenables en un
registro deN celdas:
N
0, 2 − 1
donde:
(4.14)
4.5. ENTEROS NO NEGATIVOS
55
Decimal
Binario
Hexadecimal
0
0000
0
1
0001
1
2
0010
2
3
0011
3
4
0100
4
5
0101
5
6
0110
6
7
0111
7
8
1000
8
9
1001
9
10
1010
A
11
1011
B
12
1100
C
13
1101
D
14
1110
E
15
1111
F
Cuadro 4.1: Representación de números naturales de 4 bits mas el cero.
N es el número de celdas que conforman al registro que será usado para
almacenar datos numéricos.
Teorema 4.7 La precisión numérica de los enteros no negativos corresponde con el valor del dígito menos significativo. Matemáticamente se puede
escribir:
precisión = 20 = 1
(4.15)
También es posible definir la precisión numérica de la forma siguiente.
Teorema 4.8 La precisión numérica de los enteros no negativos corresponde a la diferencia entre dos dígitos consecutivos.
4.5.3.
Codificación Decimal, binario 4 bits y hexadecimal
El cuadro 4.1 muestra un ejemplo en el cual se definen enteros no negativos
de 4 bits junto con su equivalente binario y su equivalente hexadecimal. La base
hexadecimal se emplea para simplificar la escritura de ternas de dígitos binarios.
4.5.4.
Ejemplo
Exprese el número decimal 162410 en binario a 16 bits y a su vez exprese el
número binario a hexadecimal.
56
CAPÍTULO 4. FORMATOS NUMÉRICOS
La conversión a binario es:
162410 = 110010110002
Para la conversión a hexadecimal, los dígitos binarios se agrupan en ternas
desde la derecha.
162410 = 110 0101_10002
De cada terna se calcula su equilante hexadecimal.
0110
0101
1000
⇒ 6
⇒ 5
⇒ 8
Así, el equivalente hexadecimal es:
162410 = 65816
4.5.5.
Suma de enteros no negativos
Para ejemplificar la suma de enteros no negativos y los posibles casos, se
usarán enteros de 4 bits, tal como los mostrados en el cuadro 4.1.
Caso a: La suma está en el rango de representación para 4 bits
2
+ 3
5
⇒
0010
+ 0011
0101
Caso b: Sobreflujo, la suma sale del rango de representación para 4 bits:
8
+ 9
1
⇒
1000
+ 1001
1 0001
Nótese que aunque el resultado puede interpretarse como 17 solamente hay
espacio para almacenar 4 bits, entonces el resultado es 1. Si observa la tabla del
cuadro 4.1., notará que la suma le dio la vuelta a la mencionada tabla.
4.5.6.
Resta de enteros no negativos
Para ejemplificar la resta de enteros y los posibles casos se usarán enteros
de 4 bits, tal como los mostrados en el cuadro 4.1. La operación de resta se
realizará usando complementos, tal como indica el teorema 4.4.
Caso a:
4.6. NÚMEROS ENTEROS
57
Figura 4.4: Registro de N celdas para almacenar un subconjunto de los enteros.
−
9
3
6
0011
⇒ + C1 {0011}
+
0001
⇒
0011
+ 1100
0001
1 0110
Nótese que el resultado requiere de 5 bits, no obstamte solamente hay espacio
para almacenar 4 bits, por lo cual el acarreo se ignora. Así el resultado es 6.
4.5.7.
Producto de enteros no negativos
El producto de enteros no negativos es especial puesto que el producto de la
operación requiere el doble de espacio de almacenamiento.
Teorema 4.9 El producto de enteros no negativos de N bits es un
número de 2N bits.
Considere, por ejemplo, el producto de dos enteros de 4 bits 15 × 15 = 225:
1111
1111
1111
1111
+
1111
1111
11100001
×
Obsérvese que el resultado es un número de 8 bits.
4.6.
Números enteros
Los números enteros son un conjunto numerable e infinito en el cual se puede
denotar la secuencia siguiente:
Z = {. . . , −3, −2, −1, 0, 1, 2, 3, . . .}
(4.16)
58
CAPÍTULO 4. FORMATOS NUMÉRICOS
En cuanto a las computadoras, dependiendo del tamaño del registro usado para almacenar números enteros, éstas pueden representar un subconjunto,
numerable y finito.
Teorema 4.10 Representación de números enteros de N bits. Un número
entero de N bits se puede representar como:
−bN −1 2N −1 + bN −2 2N −2 + . . . + b2 22 + b1 2 + b0
(4.17)
donde:
N es el número de bits empleados para representar el número entero.
bi es el bit en la i-ésima posición.
2i es el peso de la i-ésima posición.
bN −1 es el bit de signo. Este bit tiene el mayor peso, el cual es negativo.
La figura 4.3 muestra el formato y significado de un registro para números
enteros de N bits. Nótese que se requieren de las N celdas se requiere de una,
la más a la izquierda, para almacenar el signo.
4.6.1.
Ejemplo de codificación a binario
Para ejemplificar, convierta los nueros binarios de 4 bits, 10102 y 11012 , a
decimal:
1010
3
= 1 (−2) + 1 (2)
=
−8 + 2
=
−6
y
1101
4.6.2.
3
2
= 1 (−2) + 1 (2) + 1
=
−8 + 4 + 1
=
−3
Propiedades
Teorema 4.11 El rango de los enteros almacenables en un registro N celdas
es:
N −1 N −1
−2
,2
−1
(4.18)
donde:
N es el número de celdas que conforman al registro que será usado para
almacenar datos numéricos.
4.6. NÚMEROS ENTEROS
59
Cuadro 4.2: Codificación de enteros binarios de 4 bits a decimal y hexadecimal.
Teorema 4.12 La precisión numérica de los enteros corresponde con el
valor del dígito menos significativo. Matemáticamente se puede escribir:
precisión = 20 = 1
(4.19)
Teorema 4.13 La precisión numérica de los enteros corresponde a la
diferencia entre dos dígitos consecutivos.
4.6.3.
Codificación Decimal, binario 4 bits y hexadecimal
El cuadro 4.2 muestra un ejemplo en el cual se definen enteros de 4 bits
junto con su equivalente decimal y su equivalente binario. Podrá notarse que un
entero negativo puede obetnerse de un su correpondiente valor positivo mediante
el compemento a dos.
Teorema 4.14 Entero negativo: Para calcular el negativo de un entero positivo es suficiente con calcular su complemento a dos.
−X = C2 {X}
(4.20)
Por supuesto es posible sustituir el complemento a dos de la ecuación 4.20
por su equivalente complemento a uno según lo indica la fórmula siguiente:
−X = C1 {X} + 1
(4.21)
60
CAPÍTULO 4. FORMATOS NUMÉRICOS
La figura 4.2 ilustra la forma en la cual se pueden calcular los enteros negativos de 4 bits empleando complementos a uno.
En la misma figura 4.2 también se muestra que la base hexadecimal se emplea para simplificar la escritura de ternas de dígitos binarios. Nótese que la
codificación hexadecimal para enteros es idéntica a la codificación hexadecimal
para enteros no negativos.
4.6.4.
Suma de un número con su complemento
Teorema 4.15 La suma de un número binario X con su complemento
a dos, es cero.
A modo de demostración del teorema 4.15 considérse la ecuación 4.20. Despejando se logra:
0 = X + C2 {X}
(4.22)
Veamos ahora como se comportan los números cuando se aplica el teorema 4.15. Consdiérese el entero binario de cuatro bits X = 0101. Ahora bien,
aplicando el complemento
C2 {0101}
= C1 {0101} + 1
=
1010 + 1
1011
Finalmente, realizando la suma de 0101 y su complemento 1011
+
0 1 0 1
1 0 1 1
1 0 0 0
Podrá notarse que efectiva la suma es cero, pero también puede notarse que
hay un acarreo debido al sobreflujo en la oepración de suma.
4.6.5.
Suma de enteros
Para ejemplificar la suma de enteros y los posibles casos, se usarán enteros
de 4 bits, tal como los mostrados en el cuadro 4.2.
Caso a: La suma está en el rango de representación para 4 bits
2
+ 3
5
⇒
0010
+ 0011
0101
Caso b: Sobreflujo, la suma sale del rango de representación para 4 bits:
4.6. NÚMEROS ENTEROS
+
61
3
5
−8
⇒
+
0011
0101
1000
Si observa la tabla del cuadro 4.2 notará que la suma le dio la vuelta a la
mencionada tabla.
Caso c: La suma está en el rango de representación para 4 bits:
3
+ (−2)
1
⇒
0011
+ 1110
1 0001
La suma también funciona con números negativos. En este caso, el acarreo
que genera será ignorado.
4.6.6.
Resta de enteros
Para ejemplificar la resta de enteros y los psibles casos se usaarán enteros
de 4 bits, tal como los mostrados en el cuadro 4.2. La operación de resta se
realizará usando complementos, tal como indica el teorema 4.4.
Caso a:
−
3
6
−3
⇒ +
+
0011
C1 {0110}
0001
⇒ +
0011
1001
0001
1101
Nótese que el resultado coincide con el equivalente decimal −3 de la tabla
en el cuadro 4.2.
Caso b:
−
3
4
−1
⇒ +
+
0011
C1 {0100}
0001
⇒ +
0011
1011
0001
1111
Caso c:
2
0010
− (−3) ⇒ + C1 {1101}
5
+
0001
⇒ +
0010
0010
0001
1111
62
CAPÍTULO 4. FORMATOS NUMÉRICOS
4.6.7.
Producto de enteros
Para multiplicar dos números enteros deben seguirse los pasos indicados a
continuación:
1. Se toma el valor absoluto de los multiplicandos:
a) Si un multiplicando es negativo, se calcula su complemento a dos.
2. Los multiplicandos, ya siendo ambos positivos, se operan
3. Si el resultado debiera se negativo, según el signo de los multiplicandos
originales, entonces se calcula el complementos a dos.
4.6.8.
Ejemplo de multiplicación de enteros
Realice la siguiente operación (−7) × (7)
Paso 1 : Se calcula el complemento a dos del multiplicando negativo
C2 {−7}
= C2 {1001}
= 0110 + 1
=
0111
Paso 2 : Se realiza el producto
0
0
0
0
1
0
1
1
1
1
1
0
0
×
1
1
1
1
1
1
1
1
1
1
1
0
1
Paso 3 : Según la ley de los signos, el resultado debe ser negativo, así entonces
se calcula su complemento a dos.
C2 {0011 0001} = 1100 1111
Si se calcula el equivamente decimal del número entero resultante del procedimiento, se obtendrá un −49.
4.7.
Punto fijo
El punto fijo es una nomenclatura para la representación de números reales,
en particular, aquellos que llevan con punto decimal. Algunas propiedades que
satisface el conjunto de números reales representables en punto fijo son:
El conjunto de números reales que pueden ser reprentados por un registro
de N celdas es numerable y finito.
4.7. PUNTO FIJO
63
Figura 4.5: Registro de N celdas para almacenar un subconjunto de los números
reales.
Cada número real se representa con la misma cantidad de dígitos.
Cada número real se representa con la misma contidad de dígitos decimales.
Teorema 4.16 Representación de números reales en punto fijo de N
bits. Un número real de N bits se puede representar como:
−bE−1 2E−1 + bE−2 2E−2 + . . . + b1 21 + b0 20 + b−1 2−1 + . . . + b−Q 2−Q (4.23)
Siempre que
E+Q=N
(4.24)
donde:
N es el número de bits empleados para representar el número real.
Q es el número de bits dedicados para representar la parte fraccionaria.
E es el número de bits dedicados para representar la parte entera. Recuerde
que el bit mas significativo es el bit del signo.
bi es el bit en la i-ésima posición.
2i es el peso de la i-ésima posición.
La figura 4.5 muestra el formato y significado de un registro para números
reales representados con punto fijo. Nótese que el formato para almacenar datos
de punto fijo contiene tres partes:
1 bit para el signo S = 1.
E bits para la parte entera.
Q bits para la parte fraccionaria.
Un dato en punto fijo se define por el número de bits empleados para almacenar
la parte fraccionaria. Este número se representa con la letra Q. El punto decimal
no ocupa espacio en el registro, más bien, su ubicación queda definida por la Q.
64
CAPÍTULO 4. FORMATOS NUMÉRICOS
Q
0
1
2
3
4
5
6
7
2−Q
2=1
2−1 = 0,5
2−2 = 0,25
2−3 = 0,125
2−4 = 0,0625
2−5 = 0,03125
2−6 = 0,015625
2−7 = 0,0078125
Q
8
9
10
11
12
13
14
15
2−Q
2 = 0,00390625
2−9 = 0,0001953125
2−10 = 0,0009765625
2−11 = 0,00048828125
2−12 = 0,000244140625
2−13 = 0,0001220703125
2−14 = 0,000061035625
2−15 = 0,00003051757813
−8
Cuadro 4.3: Precisiones numéricas para representaciones en punto fijo de 16
bits.
4.7.1.
Propiedades
Teorema 4.17 La precisión numérica de los reales en punto fijo corresponde con el valor del dígito menos significativo. Matemáticamente se puede
escribir:
precisión = 2−Q
(4.25)
El cuadro 4.3 muestra las precisiones que pueden lograrse para todos los
posible valores de Q en un registro de N celdas.
Teorema 4.18 El rango de los reales en punto fijo almacenables en un
registro de N celdas es:
E−1 E−1
−2
,2
− 2−Q
(4.26)
donde:
E es el número de celdas reservadas para almacenar los digitos enteros.
Q es el número de celdas reservadas para almacenar los digitos fraccionarios.
4.7.2.
Para codificar a punto fijo un
número real negativo
Par realizar la codificación a binario y en punto fijo un número real con
punto decimal y negativo se hace uso de la fórmula 4.20 de la manera que se
indica a continuación:
4.7. PUNTO FIJO
65
Teorema 4.19 Codificación a punto fijo de un número real con punto
decimal y negativo. Cada miembro del número (parte entera y parte fraccionaria) se tratan com un único número entero:
e.q
−e.q
=
X
(4.27)
= C2 {X}
donde:
e es la parte entera del número real.
q es la parte fraccionaria del número real.
4.7.3.
Ejemplos
Ejemplo
Para ejemplificar, convierta el siguiente número 4,35 a decimal empleando
un registro de N = 8 celdas y una Q = 4.
La parte entera es fácil de convertir:
410 = 01002
La parte fraccionaria se convierte de la forma siguiente:
0,3510 ' 0,01012
Así el número final es:
4,3510 ' 0100,01012
Solamente para verificar, la precisión de la conversión numérica del formato
Q = 4 en un registro de N = 8 celdas se tiene:
0100,01012 = 4,312510
Así que se puede notar que la codificación a binario tiene un error de aproximación de centésimas.
Ejemplo
Para ejemplificar, codifique a binario el siguiente número decimal 4,35 empleando un registro de N = 12 celdas y una Q = 8.
La parte entera es fácil de convertir:
410 = 01002
66
CAPÍTULO 4. FORMATOS NUMÉRICOS
1
0
1
1
0
1
1
1
1
1
1
0
0
7183
4366
8732
7464
4928
9856
9712
9424
8848
7696
5392
0784
1568
3136
x2
Cuadro 4.4: Codificación a binario del fraccionario 0.7183
La parte fraccionaria se convierte de la forma siguiente:
0,3510 ' 0,010110012
Obśervese que al aumentar la cantidad de celdas necesarias para representar
la parte fraccionaria, el error de aproximación se redujo. Finalmente, el equivalente binario es:
4,3510 ' 0100,010110012
Solamente para verificar, la precisión de la conversión numérica del formato
Q = 4 en un registro de N = 8 celdas se tiene:
0100,010110012 = 4,347710
En este caso se observa que el error de aproximación de la conversión es
menor en el ejemplo anterior.
Ejemplo
Para ejemplificar, codifique a binario el siguiente número decimal −2,7183
empleando un registro de N = 16 celdas y una Q = 13.
medskip
El primer paso es calcular la versión positiva del número y para esto se
codifica la parte entera y luego la parte fraccionaria. Así entonces, la codificacion
a binario de la parte positiva empleando 3 bits es:
2 = 0102
Luego se procede a codificar en binario la parte fraccionaria. Tal conversión
puede verse en el cuadro 4.4 y por tanto el resultado es:
4.7. PUNTO FIJO
67
0,7183 = ,1011 0111 1110 02
Así el número positivo en binario es:
2,7183 = 010,1011 0111 1110 02
Finalmente, la codificación del número negativo se obtiene complementando
el resultado anterior considerando que se trata de un entero de 16 bits, es decir,
no se considera el punto decimal.
−27183
=
C2 {010 1011 0111 1110 02 }
= C1 {010 1011 0111 1110 02 } + 1
=
101 0100 1000_0001_1 + 1
=
101 0100 1000 0010 0
Así entonces, recuperando el punto decimal se tiene el número negativo
−2,7183 = 101,0100 1000 0010 02
Ejemplo
Para ejemplificar, convierta el siguiente número binario de 12 bits 00110100101102
, con Q = 4 a su equivalente decimal.
Primero hay que separar la parte entera de la parte fraccionaria de la manera
siguiente.
P arte entera
=
P arte f raccionaria =
0011010012
01102
La parte entera se puede condificar a decimal como sigue:
0011010012
1 26 + 1 25 + 1 23 + 1
64 + 32 + 8 + 1
105
=
=
=
La parte fraccionara se puede codificar a decimal como:
01102
=
=
1 2−2 + 1 2−3
0,3750
Así el equivalente decimal puede escribirse como:
00110100101102 = 105,37510
68
CAPÍTULO 4. FORMATOS NUMÉRICOS
Figura 4.6: Formato de un número en punto flotante de precisión simple (32
bits).
4.8.
Punto flotante
Según [1], el «IEEE 754» para aritmética en punto flotante es el estándar
más extendido para las computaciones en el mencionado formato. Tal estándar
es seguido por muchas de las mejores CPU y FPU3 . El estándar define formatos
para la representación de números en punto flotante incluyendo el cero, valores
desnormalizados, el infinito y NaN4 . El estándar también define un conjunto
de tres operaciones aritméticas básicas, es decir, la suma, la resta y el valor
absoluto. Se incluye también un primer nivel de extensión hacia la multiplicación
y la división. También especifican cuatro modos de redondeo y cinco excepciones
incluyendo cuándo ocurren dichas excepciones y qué sucede en esos momentos.
IEEE 754 especifica cuatro formatos para la representación de valores en
coma flotante: precisión simple (32 bits), precisión doble (64 bits), precisión
simple extendida ( 43 bits, no usada normalmente)5 y precisión doble extendida
( 79 bits, usualmente implementada con 80 bits). Sólo los valores de 32 bits son
requeridos por el estándar, los otros son opcionales. Muchos lenguajes especifican
qué formatos y aritmética del IEEE implementan, a pesar de que a veces son
opcionales. Por ejemplo, el lenguaje de programación C, ahora permite, pero no
requiere, la aritmética del IEEE (el tipo de C «float» es típicamente usado para
la precisión simple del IEEE y el tipo double usa la precisión doble del IEEE).
4.8.1.
Precisión simple de 32 bits
Un número en punto flotante de precisión simple se almacena en una palabra
de 32 bits y tiene el formato mostrado en la figura 4.6. En la mecionada figura
pueden verse las siguientes partes.
S es el bit de signo (para el signo: 0=Positivo ; 1= Negativo).
E es la potencia o exponente.
M es la mantisa.
3 FPU es abreviación de «Floating Point Unit» y que en castellano se traduce como «Unidad
de Punto Flotante».
4 NaN es abreviación de «Non a Number» que en castellano se traduce como «No un
número» y puede ser, por ejemplo, la raiz cuadrada de un número negativo.
5 Los DSP de TI usan 40 bits.
4.8. PUNTO FLOTANTE
69
Clase
Exp
Mantisa
Ceros
Números desnormalizados
Números normalizados
Infinitos
NaN (Not a Number)
0
0
1-254
255
255
0
distinto de 0
cualquiera
0
distinto de 0
Cuadro 4.5: Interpretaciones de los números que pueden generarse mediante la
nomenclatura IEEE 754.
El exponente es un número entero en el rango de −126 a 127. El valor del
exponente está desplazado en 127 para obtener un valor en el rango de 1 a 254.
(0 y 255 tienen valores especiales descritos más adelante). Cuando se interpreta
el valor en punto flotante, el exponente es desplazado de nuevo para obtener el
exponente real.
Las clases de números que pueden distinguirse mediante la notación de punto
flotante del «IEEE 754» son los siguientes. El como se interpretan puede verse
en la tabla del cuadro 4.5.
ceros
números normalizados
números desnormalizados
infinitos
NaN (no es un «No Número», como por ejemplo, la raíz cuadrada de un
número negativo).
4.8.2.
Ejemplo
Codifique el número decimal −118,625 usando el estándar IEEE 754.
Paso 1: el signo de la mantisa
El signo de mantisa es fácil de calcular, dado que el número decimal es
negativo. Así el signo será:
S=1
Paso 2: Conversión a binario del valor absoluto del número
El proceso de conversión a binario es bastante simple considerando que se
trata de un dato numérico sin signo. Así entonces se tiene que:
118,625 = 1110110,101
70
CAPÍTULO 4. FORMATOS NUMÉRICOS
Paso 3: Conversión a notación exponencial
Ahora, se mueve el punto decimal a la izquierda, dejando sólo un 1 a su
izquierda.
1110110,101 = 1,110110101 × 10110
Nótese que el exponente es E = 6.
Paso 4: La mantisa
La mantisa estára conformada por los dígitos a la derecha del punto decimal6 ,
rellenada con ceros hacia la derecha hasta que se obtengan los 23 bits:
M = 110110101 00000000000000
Paso 5: El exponente
El exponente es 6, pero se necesita desplazarlo y convertirlo a binario. Así
6 + 127 = 133. En binario, esto se escribe como
E = 10000101
Paso 6: El número
Así, finalmente se tienen las partes del número en punto flotante:
S
=
1
E
=
1000 0101
M
=
1101 1010 1000 0000_0000 000
Así el número es:
−118,625 = 1 10000101 11011010100000000000000
4.9.
Ejercicios
1. Realice la representación de un registro para almacenar números naturales
de 16 bits.
2. Calcule el rango de valores para los enteros no negativos de 16 bits.
3. Calcule el rango de valores para los enteros de 16 bits.
4. Codifique a binario el número −30.
6 El
lector debe observar que se está desconociendo el dígito más significativo de la mantisa,
un «uno»
4.9. EJERCICIOS
71
5. Calcule la longitud de registro para almancenar el entero no negativo 327.
6. Calcule la longitud de registro para almancenar el entero 327.
7. Calcule la precisión para valores en punto fijo con Q=23.
8. Calcule la precisión para valores en punto fijo con Q=31.
9. Calcuel el equivalente binario en punto fijo del número 2,7182818 en N =
16 y Q = 13.
10. El siguiente filtro es un generador senoidal. Realice su evaluación numérica
con datos en punto fijo de N = 16 bits y formato en Q = 8. Considere
que la precisión es 2−8 = 0,00390625 y no olvide usar hasta 8 decimales
posibles en su calculadora.
H (z) =
0,3827z −1
1 − 1,8478z −1 + z −2
(4.28)
72
CAPÍTULO 4. FORMATOS NUMÉRICOS
Capítulo 5
Introducción al procesador
En la historia de los microprocesadores y las computadoras existen dos
paradigmas que se han convertido en referencia para discriminar una computadora de otra: von Newman y Harvard. Aunque en la actualidad, los microprocesadores tienden a diseñarse bajo una arquitectura híbrida, es decir, una
combinación entre von Neumann y Harvard. Otra clasificación también puede
darse en la aplicación a la cual están orientados los procesadores, es decir:
Aquellos procesadores orientados a sistemas de escritorio y laptops.
Aquellos procesadores usados en «tablets» y «smartphones».
Aquellos orientados a decodificación y mejora de imagen en receptores de
TV digital.
Nuevos paradigmans se han agregado a la lista de arquitecturas de computadoras, eśtos son VLIW y superescalar. Tales paradigmas son una forma de agregar
paralelismo a las operaciones de los microprocesadores actuales.
5.1.
Arquitecturas de computadoras
Como ya se ha mencionado, las arquitecturas von Neumann y Harvard implican diferencias que involucran la forma en la cual se ejecutan las instrucciones
y muy particularmente, en donde se almacenan memoria y datos.
5.1.1.
von Neumann
Un procesador von Neumann1 están constituído, más o menos, por los siguientes componentes:
1 John von Neumann (registrado al nacer como «Neumann János Lajos») fue un matemático
húngaro-estadounidense que realizó contribuciones fundamentales en física cuántica, análisis
funcional, teoría de conjuntos, teoría de juegos, ciencias de la computación, economía, análisis
numérico, cibernética, hidrodinámica, estadística y muchos otros campos. Es considerado como
uno de los más importantes matemáticos de la historia moderna.
73
74
CAPÍTULO 5. INTRODUCCIÓN AL PROCESADOR
Figura 5.1: Arquitectura general de un procesador von Neumann.
1. Unidad de control.
2. Registros del programador: registro de instrucción, registro de datos, registros de direcciones en memoria, registros puntero y otros registros.
3. Unidad lógico-Aritmética (ALU).
4. Memoria de programa y datos.
5. Registros de E/S.
6. Tres buses: datos, direcciones y de control.
La figura 5.1 muestra un esquema de tal arquitectura y como se interrelacionan
los componentes. De manera general se pueden realizar estos comentarios:
La unidad de control dedica todo su tiempo para procesar una instrucción
a la vez.
Las instrucciones de un programa y los datos residen en el mismo circuito
de memoria.
Se requiere de un grupo de registros para acceder a la memoria: registro de
datos para lectura-escritura a memoria, registros de direcciones en memoria.
5.1.2.
Arquitectura Hardvard
Un procesador Harvard se forma de los siguientes circuitos:
Memoria de instrucciones. Esta puede ser una ROM dado que no se require
para almacenar datos.
Banco de registros
5.1. ARQUITECTURAS DE COMPUTADORAS
Figura 5.2: Arquitectura general de un procesador Harvard.
75
76
CAPÍTULO 5. INTRODUCCIÓN AL PROCESADOR
Unidad lógico aritmética
Memoria de datos. Esta debe ser una RAM para permitir la escritura de
información
Un circuito decodificador para generar señales de control
Registros de segmentación
Por lo general, los procesadores Harvard están constituídos por N etapas que operan independientemente una de la otra. En el caso de la arquitectura mostrada
en la figura 5.22 se tienen cinco etapas y que se enlistan a continuación:
1. Etapa de «Instruction fetch».
a) Un registro contiene la dirección en memoria de la próxima instrucción a ejecutar.
b) Una vez que el registro actualiza su valor se busca en memoria la
instrucción
2. Etapa «Instrucion decode/Register fetch».
a) Un registro captura la instrucción y la dirección en memoria de la
mencionada instrucción.
b) La instrucción contiene constantes e índices de registros.
c) De los registros se recuperan constantes.
3. Etapa «Execute/Addres calculation».
a) Un registro captura las contantes y la dirección en memoria de la
instrucción que se evalúa actualmente.
b) La Unidad lógico-Aritmética (ALU) opera las constantes según indica
la instrucción. El resultado puede ser una constante o una dirección
en memoria.
c) Es posible la presencia de un circuito sumador para calcular la dirección de la próxima insrucción.
4. Etapa «Memory acces»
a) Un registro captura el resultado de la ALU y captura la dirección de
la próxima instrucción a ejecutarse.
2 Esta arquitectura fue propuesta por John L. Hennesy, fundador de «MIPS Computer Systems Inc» para comercializar los procesadores RISC sobre los que había estado investigando.
Actualmente es el décimo presidente de la Universidad Stanford. Consiguió su licenciatura
en Ingeniería Eléctrica en la Universidad Villanova, y su master y Doctor Philosophiae en
ciencias de la computación en la Universidad Estatal de Nueva York en Stony Brook. Fuente
http://es.wikipedia.org/wiki/John_L._Hennessy.
5.2. CISC Y RISC
77
b) Si el resultado de la ALU es una constante, ésta no se guarda en la
RAM.
c) Si el resultado de la ALU es una dirección en RAM (read data 1)
entonces se guarda el contenido de (read data 2) en la RAM.
5. Una etapa «Write back » Un selector para almacenamiento de resultados
en los registros de datos.
5.1.3.
Grave defecto de los procesadores Harvard
Los procesadores Harvard tienen un severo defecto, mismo que puede arreglarse añadiendo más circuitería al procesador. El defecto se presenta cuando
ocurre una instrucción de salto. Al ocurrir un salto, las instrucciones que le
siguen ya no son de utilidad, aún cuando el procesador sigue trabajando en
éstas.
5.2.
CISC y RISC
5.2.1.
CISC
CISC es la abreviación de «Complex Instruction Set Computer» o «Computadora con un conjunto de instrucciones complejas». Las instrucciones CISC
pueden requerir de la realización de varias tares, por ejemplo, considera los pasos
a seguir para realizar una suma:
1. Busca el primer operando en memoria y lo deposita en un registro.
2. Busca el segundo operando en memoria y lo deposita en un registro.
3. Realiza la operación y deposita el resultado en un registro.
4. Copia el resultado, depositado en un registro, a memoria.
5.2.2.
RISC
RISC es la abreciación de «Reduced Instruction Set Computer» o «Computadora con un conjunto de instrucciones reducidas». Una instrucción RISC
realiza una y solamente una tarea. Esta tarea puede una cualquiera de las siguientes:
Transferencia memoria a registro.
Transferencia registro a memoria.
Operaciones con los datos contenidos en dos registros, el resultado se almacena en otro registro.
78
CAPÍTULO 5. INTRODUCCIÓN AL PROCESADOR
5.2.3.
Comparando CISC y RISC
Cuando se habla de un procesador CISC, típicamente se hace referencia a
un procesador en el cual se han implementado este tipo de instrucciones. De
igual forma, cuando se habla de un procesador RISC, se hace mención de un
procesador en el cual se han implementado instrucciones reducidas.
Es también muy común, considerar que en un procesador von Newman se
implementen instrucciones CISC, en tanto que también se considera que en un
procesador Harvard se implementen instrucciones RISC. Estas consideraciones
no están equivocadas aunque en realidad, solamente obstáculos técnicos no insalvables impiden que se inviertan los papeles.
En cuanto a la cantidad de instrucciones involucradas:
• El procesador CISC requiere de una sola instrucción para procesar
datos localizados en memoria.
• El procesador RISC requiere de varias instrucciones para procesar
datos localizados en memoria.
En cuanto a la cantidad de memoria para almacenar código
• El procesador CISC está diseñado para sistemas que tienen escasa
memoria. Dado que una instrucción realiza realiza todas las tareas
necesarias para operar datos en memoria.
• El procesador RISC, funciona bien en sistemas con abundante memoria dado que se requiere de varias instrucciones para operar datos en
memoria.
En cuanto a la complejidad de la circuitería.
• El procesador CISC implementado con una arquitectura von Newman
requiere de un circuito grande y complejo en su unidad de control
para instrucciones que realizan muchas tareas.
• El procesador RISC implementado con una arquitectura Harvard require de un circuito simple llamado decodificador para generar señales
de control.
En cuanto a la cantidad de instrucciones que ejecuta
• El procesador RISC realiza una mayor cantidad de instrucciones que
un CISC.
• Esta característica no es indicativa de cuan rápido puede ejecutar un
programa un procesador.
5.3. SEGMENTACIÓN DE LAS INSTRUCCIONES
79
Figura 5.3: Estilos de segmentación de las instrucciones de un programa. En el
esquema superior se tiene la segmentación secuencial. En el esquema inferior se
tiene la segmentación encauzada, la cual implica cierto paralelismo en la ejecución de las instrucciones. Un procesador bajo segmentación encauzada puede
ejectuar hasta cinco veces más instrucciones. Nótese que no se ha incuído la
etapa de verificación de interrupción.
5.3.
Segmentación de las instrucciones
Todo procesador y en cualquier arquitectura, tiene N segmentos o etapas
identificableas para la lograr la ejecución de instrucciones. Cuatro etapas que son
constantes en todo procesador son: Fetch (búsqueda), Decode (decodificación),
Execute (ejecución), Interrupt (interrupción).
5.3.1.
Segmentación von Neumann
En el caso de un procesador Neumann pueden identificarse las etapas siguientes
1. Fetch (F): Recupera la instrucción desde una memoria.
2. Decode (D): Busca el algoritmo para ejecutar la instrucción.
3. Execute (E): Ejecuta la instrucción.
4. Write result (W): Almacena el resultado.
5. Interrupt (I): Verifica si algún periférico requiere atención o si alguna
situación de error debe ser atendida.
Un procesador von Neumann ejecuta una a una las instrucciones que obtiene
de la memoria, es decir, todo el procesador se dedica a ejecutar una única
instrucción por turno. La figura 5.3 ilustra la ejecución de dos instrucciones bajo
segmentación von Neumann. Tal ejecución toma ocho ciclos. Una consecuencia
de que todo el procesador se dedique a una única instrucción implica que algunos
circuitos permnerarán ociosos y consumiendo energía, esto es, bajo rendimiento.
80
CAPÍTULO 5. INTRODUCCIÓN AL PROCESADOR
5.3.2.
Segmentación Harvard
En el caso de un procesador Harvard, como el mostrado en la figura 5.2
pueden identificarse las etapas siguientes:
1. Instruction fetch (F): Recupera la instrucción desde una memoria.
2. Instrucion decode/Register fetch (D): Genera señales de control / Acceso
al banco de registros para recuperar datos numéricos.
3. Execute/Addres calculation (E): Ejecución.
4. Memory acces (M): Copia el contenido de un registro del banco a un
registro de la memoria.
5. Write back (W): Escribe un valor numérico en un registro.
La segmentación Harvard se conoce mejor como «pipelining»3 y es un método
mediante el cual se logra aumentar el rendimiento de los microprocesadores al
hacer que todas sus partes estén operativos en todo instante. Un procesador
Harvard también recupera una a una las instrucciones desde la memoria, sin
embargo, las distintas etapas de procesador operan en paralelo tal como se observa en la figura 5.3. Obsérvese que luego de cinco ciclos, se tiene la apariencia
de que cada instrucción se ejecuta en un único ciclo. Enla misma figura también puede observarse que en el octavo ciclo, el procesador von Neumann ha
realizado dos instrucciones en tanto que el procesador Harvard ha realizo cinco
instrucciones.
5.4.
Instrucciones de 16 y 32 bits
Para este año, los procesadores de 16 bits tienden a ser secuenciales, en tanto
que los procesadores de 32 bits tienen a ser encauzados. Por ejemplo, los procesadores ARM pueden trabajar en un modo de bajo consumo de energía usando
un conjunto de instrucciones de 16 bits denominado «Thumb»4 . Aunque pueden
también trabajar en modo de alto consumo de energía usando instrucciones de
32 bits.
5.5.
El formato VLIW
A principios de los años 70, del siglo XX, se pensó en como aumentar el
paralelismo de los procesadores Harvard. Así entonces se llegó a un formato de
3 en inglés «pipelining», literalmente tubería o cañería. Los rumores dicen que el nombre
viene de que para impulsar el gas en un oleoducto a la máxima velocidad es necesario dividir
el oleoducto en tramos y colocar una bomba que dé un nuevo impulso al gas.
4 La palabra anglosajona «thum» se traduce al castellano como «pulgar». El porqué de este
nombre, es conocido solamente por unos cuantos.
5.5. EL FORMATO VLIW
81
instrucción denominado VLIW5 . VLIW significa «Instrucción de palabra muy
larga» lo que implica un formato en el cual se especifican varias operaciones
agrupadas para formar una sola instrucción. Así el procesador ejecutará en paralelo todas las operaciones. A continuación se indican algunas características
generales de VLIW:
Data de principios de los años 70.
Muy apoyada por la tecnología de compiladores que optimizan código.
Una instrucción especifica varias operaciones agrupadas en un formado
largo de instrucción con longitudes desde 128 a 1024 bits.
La planificación de las operaciones es externa al procesador.
• La planificación de como ejecutar las operaciones puede ser realizada
por el propio programador, pero también
• La planificación de como ejecutar las operaciones puede ser realizada
por el compilar.
Cuando la planificación de la ejecución de operaciones la realiza el compilador, el rendimiento del procesador queda determinado por la calidad
del mencionado compilador.
5.5.1.
Formato de instrucciones
Un procesador RISC con el formato VLIW tiene el siguiente formato de
instrucción:
micro operación 1
micro operación 2
...
micro operación N
Por lo general, cada «micro operación» tiene una longitud de 32 bits aunque
ésto no es una regla. Así entonces, para ejemplificar, suponga un procesador que
soporta operaciones de 32 bits y que su instrucción requiere de 8 operaciones.
La longitud total de la instrucción será de 8 × 32 bits, es decir 256 bits.
La figura 5.4 muestra como un programador, en la columna izquierda, ha
alineado las instrucciones de un programa para un procesador Harvard. A continuación, el mismo programador ha planificado la ejecución de sus instrucciones,
ahora llamadas «micro operaciones», siguiendo el formato VLIW y de acuerdo
a la dependencia entre éstas. En consecuencia se pueden notar las siguientes
situaciones:
Las operaciones están desordenadas.
Se ejecutan más operaciones en el formato VLIW
Se requiere de muhca más memoria para el formato VLIW.
82
CAPÍTULO 5. INTRODUCCIÓN AL PROCESADOR
Figura 5.4: Comparativo entre instrucciones de un procesador RISC y un procesador RISC con el formato VLIW. Nótese que mientras un procesador Harvard
ordinario puede realizar 10 instrucciones en un cierto tiempo, el procesdor VLIW
puede realizar 15 instrucciones.
Figura 5.5: Formato de una operación VLIW.
5.5. EL FORMATO VLIW
83
A su vez, cada operación indicada en la instrucción tiene el formato interno
siguiente y que es mostrado en la figura 5.5.
Bit de ejecución condicional
Registro de condición
Código de operación
Unidad operativa: estos bits indican cual unidad operativa ejecutará el
«código de operación».
20 bits para «Nibble 0 » a «Nibble 4 ».
Se hace necesario mencionar que cada «operación» tiene un bit a modo de bandera para indicar si debe evaluarse una condición para ejecutar la «operación».
La mencionada condición se construye a partir de un registro del banco de registros generales y la condición toma la forma siguiente:
Si regsitro=0 entonces no ejecuta la «micro operación».
Si regsitro<>0 entonces no ejecuta la «micro operación».
5.5.2.
Arquitectura Harvard-VLIW
La figura 5.6 muestra el diagrama a bloques de una arqitectura que soporta el
formato de instrucciones VLIW. Como puede observarse, la ejecución de N «micro operaciones» en paralelo require de N unidades operativas que las realicen.
Las etapas en la ejecución de instrucciones son las indicadas a continuación:
1. Fetch: En un primer paso se realiza la etapa Fetch para recuperar de
la memoria la instrucción de palabra larga. Como ya se recordará cada
palabra contiene varias operaciones a realizar en paralelo.
2. Dispatch: La palabra recuperada se pasa a un circuito que recupera las
operaciones y las dirige hacia la respetiva unidad operativa.
3. Decode: Cada unidad operativa, deacuerdo a la operación asignada, genera
sus propias señales de control.
4. Execute: Cada unidad operativa realiza su labor sobre los operandos que
recupera del banco de registros.
5.5.3.
Unidades operativas
Para que un procesador, que sigue el formato VLIW, pueda ejectuar en
paralelo las N operaciones de una instrucción, se requieren de:
N «unidades operativas» independientes y
5 VLIW
larga»
es abreviación para «Very Long Instruction Word» o «Instrucción de longitud muy
84
CAPÍTULO 5. INTRODUCCIÓN AL PROCESADOR
Figura 5.6: Arquitectura Harvard para soportar el formato VLIW.
Figura 5.7: Ruta de datos de un procesador RISC que sigue el formato VLIW.
5.6. PROCESADOR SUPERESCALAR
85
Un banco de registros con N escrituras y 2N lecturas a la vez.
La figura 5.7 muestra una ruta de datos en la cual cada «unidad Operativa»
requiere de dos operandos tomados de un banco de registros. El resultado es
escrito en el mismo banco de regsitros.
La construción interna de una unidad operativa, vea figura 5.8, implica un
«decodificador » que genera las señales de control para el «circuito funcional »,
el «banco de registros generales» y para el «banco de registros de control ».
El «circuito funcional » es una colección de circuitos operando al mismo
tiempo. De los resultados que arrojan los mencionados circuitos solamente es
últi uno de éstos. Así entonces, las salidas de tales deben multiplexarse según lo
indica el código de operación.
5.5.4.
Limitaciones
Hay mucho desperdicio de memoria por instrucciones NOP.
Baja ocupación de unidades funcionales.
Conflictos en el acceso al banco de registros desde varias unidades funcionales.
Conflictos en la predicción de accesos a memoria de datos.
El tiempo de acceso al banco de registros aumenta con la cantidad de
puertos para las unidades funcionales.
El rendimiento alcanzado por los compiladores actuales es inferior al rendimiento potencial máximo que alcanza la arquitectura.
Para optimizar mejor el código es útil que el programador ayude al compilador
5.6.
Procesador superescalar
Un procesador escalar es aquel que cuenta con una única unidad funcional,
así que solamente puede ejecutar una instrucción a la vez. Un procesador superescalar:
Tiene una unidad de control que verifica la dependencia de las instrucciones en memoria.
Puede descargar de la memoria varias instrucciones independientes consecutivas.
Organiza la ejecución en paralelo de varias instrucciones.
El concepto de superescalabilidad implica un formato VLIW de longitud variable, es decir, se pueden enfilar desde una operación hasta N operaciones a
realizar en paralelo. La figura 5.9 ilustra un comparativo entre un procesador
con formato de instrucción VLIW y un procesador superescalar.
86
CAPÍTULO 5. INTRODUCCIÓN AL PROCESADOR
Figura 5.8: Arquitectura general de una «unidad operativa».
5.7. MEDIDAS DEL RENDIMIENTO DE UN PROCESADOR
87
Figura 5.9: Comparativo entre un procesador VLIW y un procesador superescalar.
El procesador superescalar es parecido a un auto con transmisión automática.
Nombre
FLOPS
megaflops/megaofps
106
gigaflops/gigaofps
109
teraflops/teraofps
1012
petaflops/petaofps
1015
exaflops/exaofps
1018
zettaflops/zettaofps
1021
yottaflops/yottaofps
1024
Cuadro 5.1: Unidades para medir el rendimiento de equipo.
5.7.
Medidas del rendimiento de un procesador
Existen diversas unidades que permiten medir el rendimiento de un procesador. Estas medidas no suelen ser de mucha utilidad para comparar un procesador con otro, incluso si son del mismo fabricante.
5.7.1.
Operaciones en coma flotante por segundo
En informática, las operaciones de coma flotante por segundo son una medida
del rendimiento de una computadora, especialmente en cálculos científicos que
requieren un gran uso de operaciones de este formato numérico. Es más conocido
su acrónimo, FLOPS, por el inglés «floating point operations per second».
Las computadoras exhiben un amplio rango de rendimientos en coma flotante,
por lo que a menudo se usan unidades mayores que el FLOPS. Los prefijos estándar del Sistema Internacional pueden ser usados para este propósito, dando
como resultado la tabla del cuadro 5.1.
La tabla del cuadro 5.2 ilustra los rendimientos de varias supercomputadoras
en múltiplos de FLOPS. Estos rendimientos corresponden a los años entre 2009
88
CAPÍTULO 5. INTRODUCCIÓN AL PROCESADOR
Nombre
Capacidad
Origen
Tianhe-2
33.86 petaFlops
China
IBM Roadrunner
1026 petaFlops
USA
Cray Jaguar
1.75 petaFLOPS
USA
Play Station 3
1.2GFLOPS
Japón-USA
Cuadro 5.2: Tabla comparativa de supercomputadoras entre el 2005 y el 2012
y 2012. El poder de procesamiento de estos equipos, es distribuido entre diversos
clientes que requieren de realizar simulaciones como son:
Simulaciones de fenómenos naturales altamente precisas (huracanes, terremotos, maremotos, impacto de asteroides).
Desdoblamiento de cadenas de ADN.
Plegamiento de proteínas.
Simulación de explosiones nucleares.
Simulaciones de fluidos interactuantes con superifices:
• El viento en modelos de aviones, autos, etc.
• El agua en represas.
5.7.2.
Millones de instrucciones por segundo
MIPS es la abreviación de las palabras "Millions of Instructions Per Second"6 . Esta unidad es una forma de medir la potencia de los procesadores y
sin embargo, esta medida sólo es útil para comparar procesadores con el mismo
juego de instrucciones y usando programas de prueba7 que fueron traducidos
por el mismo compilador y con el mismo nivel de optimización. En las comparativas, usualmente se representan los valores de pico, por lo que la medida no
es del todo realista. La forma en que funciona la memoria y la forma en que usa
el procesador son factores clave para medir el rendimiento de un procesador. La
tabla del cuadro indica las capacidades de varios procesadores conocios.
5.7.3.
Multiplicaciones-acumulaciones
Uno de los objetivos primordiales de un DSP es la evaluación de un filtro, lo
que implica operaciones de multiplicación y acumulación. Así entonces surge la
unidad MAC o «Multiplicación-Acumulación». La MAC puede parecer adecuada para comparar el rendimiento de dos DSP y no obstante no considera que
los operandos deben ser traídos desde memoria y que deben realizarse desplazamientos. En consecuencia, el rendimiento en MAC de un DSP puede reducirse
en un factor de hasta cuatro o más.
6 La
frase puede traducirse a «Millones de Instrucciones Por Segundo»
programas de prueba se suelen conocer como «benchmarks»
7 Estos
5.7. MEDIDAS DEL RENDIMIENTO DE UN PROCESADOR
Procesador
IPS
Intel 8080
Intel 8086
89
Reloj
Año
640 KIPS
2 MHz
1974
800 KIPS
4.77MHz
1974
Motorola 68000
1 MIPS
8MHz
1979
Intel 486DX
54 MIPS
66 MHz
1992
Intel Pentium
100 MIPS
60 MHz
1993
PowerPC 600s (G2)
35 MIPS
33 MHz
1994
ARM 7500FE
35.9 MIPS
40MHz
1996
PowerPC G3
525 MIPS
233 MHz
1997
ARM10
400 MIPS
300 MHz
1998
Zilog eZ80
80 MIPS
50 MHz
1999
Sony "Allegrex"(de la PSP)
32 MIPS
333MHZ
2002
Pentium 4 Extreme Edition
9726 MIPS
3.2 GHz
2003
ARM Cortex A8
2000 MIPS
1 GHz
2005
XBox360 IBM "Xenon" Single Core
6400 MIPS
3.2GHz
2005
AMD Athlon 64
8400 MIPS
2.8 GHz
2005
AMD Athlon FX-57
12000 MIPS
2.8 GHz
2005
AMD Athlon 64 Dual Core
18500 MIPS
2.2 GHz
2005
AMD Athlon 64 3800+ X2 (Dual Core)
18900 MIPS
2.2 GHz
2005
Overclocked AMD Athlon 64 3800+ X2 (Dual Core)
25150 MIPS
2.8 GHz
2005
Cell (cada PPE)
6400 MIPS
3.2 GHz
2006
Procesador Cell de la PlayStation 3
21800 MIPS
3.2 GHz
2006
AMD Athlon FX-60 (Dual Core)
22150 MIPS
2.6 GHz
2006
Overclocked AMD Athlon FX-60 (Dual Core)
24300 MIPS
2.8 GHz
2006
Overclocked AMD Athlon FX-60 (Dual Core)
27100 MIPS
3.0 GHz
2006
Cuadro 5.3: Capacidades de varios procesadores comerciales. El caso del procesador Cell es difícil de cuantificar debido a que se trata de un procesador
vectorial por lo que sus MIPS no son adecuados para calificarlo. Fuente:
http://es.wikipedia.org/wiki/Millones_de_Instrucciones_Por_Segundo_ %28MIPS %29
90
CAPÍTULO 5. INTRODUCCIÓN AL PROCESADOR
Capítulo 6
Familias de DSP
Un «procesador digital de señales» o DSP es un sistema basado en un microprocesador que posee un conjunto de instrucciones, un hardware y un software
optimizados para aplicaciones que requieran operaciones numéricas a muy alta
velocidad. Debido a esto es especialmente útil para el procesado y representación
de señales analógicas en tiempo real: en un sistema que trabaje de esta forma se
reciben muestras, normalmente provenientes de un conversor analógico/digital.
Un DSP está diseñado teniendo en cuenta las tareas más habituales del
procesado digital: sumas, multiplicaciones y retrasos.
Los DSP abandonan la arquitectura clásica de Von Neumann, en la que datos
y programas están en la misma zona de memoria, y apuestan por la denominada «Arquitectura Harvard». En una arquitectura Hardvard existen bloques
de memoria físicamente separados para datos y programas. Incluso es posible
que la memoria de datos tenga distinta anchura de palabra que la memoria de
programa.
Los elementos básicos que componen un DSP son:
Conversores en las entradas y salidas,
Memoria de datos,
memoria de programa y DMA,
MACs: multiplicadores y acumuladores,
ALU: Unidad aritmético-lógica,
Registros,
PLL: Bucles enganchados en fase,
PWM: Módulos de control de ancho de pulso.
Son muchos los fabricantes de DSP, no obstante son pocos los que han sobrevido a la preferencia del consumidor. La tabla del cuadro 6.1 muestra una
91
92
CAPÍTULO 6. FAMILIAS DE DSP
Analog Devices
Phillips
Texas Intruments
Yamaha
Motorola (FreeScale)
Sony
Hewlet Packard
Airelog Device
Cirrus
ATT
Creative
SGS-Thomson
Forte Media
Cuadro 6.1: Fabricantes de procesadores digitales de señales
lista con algunos fabricantes de microrocesadores. Como puede verse, en la lista
de la figura 6.1 no aparece ARM, ésto por que esta empresa fabrica microcontroladores.
Uno de los fabricantes más sobresalientes por su utilidad en equipo de medición y armamtento es TI. La figura 6.1 muestra la evolución de sus procesadores.
6.1.
El objetivo de una arquitectura
En su forma más simple, un sistema basado en DSP recibe datos desde un
ADC. Los datos son procesados por un «procesador Digital de Señales», también
conocido como DSP. Los resultados son entonces transformados de vuelta a su
forma análoga mediante un DAC.
El corazón de algoritmos DSP no ha cambiado desde los primeros días del
DSP; esto es, aún evalúan la ecuación en diferencias fundamental, vea la figura 6.2. A menudo, esta ecuación se conoce como una «Suma de productos» o
simplemente SOP1 . A su vez, cada producto que debe acumularse se denomina
«multiplicación-acumulación» o simplemente MAC2 . TI se ha centrado, durante
años, en desarrollar y proveer soluciones a los algoritmos basados en MAC. La
gran variedad de DSP desarrollados es un testimonio de este enfoque.
Así entonces, el objetivo de todo DSP es la codificación del código C mostrado en la figura 6.2 de manera que se realice lo más rápido posible.
Diferentes medidas surgen para medir la eficiencia de un DSP en su función
de procesar una señal de entrada con un filtro. Estas medidas son:
MAC: Multiplicaciones-acumulaciones.
Tipo de dato numérico.
Precisión del dato numérico.
6.1. EL OBJETIVO DE UNA ARQUITECTURA
93
Figura 6.1: Generaciones de los DSP de TI. Figura tomada de [3]. L afigura ha
sido modificada para este texto agregado al TMS32067X y al TMS32064X.
94
CAPÍTULO 6. FAMILIAS DE DSP
Figura 6.2: Resumen de un sistema basado en DSP. Figura tomada de [6].
6.2.
DSP de primera generación (TMS320C10-14)
De acuerdo a [2], un DSP de la familia TMS320C10-14 tiene las características siguientes:
Ciclo de instrucción:
• 160-ns (TMS320C10-25).
• 200-ns (TMS320C10).
• 280-ns (TMS320C10-14).
144 palabras de 16 bits en la RAM interna (montada sobre CI).
1.5K palabras de 12 bits en la ROM interna.
Soporta expansión de memoria RAM de hasta 4K palabras.
Multiplicador de 16 × 16 bits con producto de 32 bits.
• Registro T de 16 bits.
• Registro P de 32 bits.
Desplazador de barril de 0 a 16 bits.
ALU de 32 bits
Registro de acumulación de 32 bits para el ALU
1 «SOP»
es la abreviación de «Sum of Products»
es la abreviación de «Multiply-Accumulate»
2 «MAC»
6.2. DSP DE PRIMERA GENERACIÓN (TMS320C10-14)
Figura 6.3: Arquitectura del TM320C10 según [2].
95
96
CAPÍTULO 6. FAMILIAS DE DSP
Figura 6.4: Ruta de programa del TM320C10
Oscilador interno
Voltaje de polarización a 5V.
La figura 6.3 muestra la arquitectura del DSP TMS320C10-14. En este diagrama
pueden verse claramente dos grupos de circuitos:
La ruta del programa.
La ruta de datos.
La «ruta del programa» está conformada por la ROM, el PC y la unidad de control. Así la «ruta de datos» está conformada por los circuitos arimético-lógico,
la RAM y los registros auxiliares.
6.2.1.
Arquitectura Harvard
El diagrama de la figura 6.3 muestra dos circuitos de memoria:
Una ROM de 1.5 Kwords, en la cual cada palabra es una instrucción de
12 bits.
Una RAM de 144 palabras en la cual cada palabra es un dato de 8 bits.
Una «unidad de control»3 gestiona el procesamiento de cada instrucción.
6.2.2.
La ruta del programa
La «ruta del programa» está conformada por los elementos mostrados a
continuación, mismo que pueden verse en la figura 6.4.
3 El lector puede notar que TI menciona la «unidad de control». Esto contradice lo mencionado en el capítulo anterior en donde se especifica que los procesadores Harvard no tienen
unidad de control sino «decodificador».
6.2. DSP DE PRIMERA GENERACIÓN (TMS320C10-14)
97
El PC o contador de programa
La ROM que contiene las instrucciones
La pila
La unidad de control
El registro PC4 o «contador de programa» es un circuito contador de 12 bits que
soporta carga paralela desde el bus de programa o desde una pila. Con 12 bits
se pueden direccionar 4096 registros en la memoria de programa. El contador de
programa avanza por sí mismo, dado que es un contador. En caso de un salto,
la instrucción que provoca el salto requiere de dos palabras consecutivas en la
memoria de programa, vea [2]. La primer palabra de 12 bits es la instrucción
y la segunda palabra, también de 12 bits, es la dirección de salto. En el caso
de invocarse una subrutina, la dirección de la instrucción siguiente se guarda
en la pila y entonces ocurre un salto a subrutina. Cuando ocurre el retorno de
subrutina, la dirección de retorno se toma de la pila.
La memoria de programa almacena 1500 palabras de código. Cada palabra
es de 12 bits. Este integrado soporta memoria externa con un direccionamiento
de 16 bits.
La pila5 contiene una profundidad de 4 registros, lo que permite a un programa invocar hasta cuatro subrutinas, una dentro de otra.
6.2.3.
La ruta de datos
La ruta de datos se compone de dos circuitos
El circuito aritmético
El circuito de memoria de datos tipo RAM
6.2.3.1.
El circuito arimético y lógico
Los circuitos arimtéticos, mostrados en la figura 6.5, las operiaciones aritméticas y las operaciones lógicas:
La ALU realiza sumas, restas, complementos en punto fijo y las operaciones lógicas AND, OR, NOT, XOR.
El multiplicador realiza las operaciones de multiplicación y de inversión
en punto fijo. La multiplicación puede ser:
• El registro T con un vlor inmediato: P ← T × < cte − 7 − bits >.
• El registro con el registro P: P ← T × P .
Circuitos para desplazamiento paralelo arimético y lógico de bits.
4 PC
es la abreviación de «Programa Counter»
pila es una estructura de datos en el cual, el último elemento en ingresar es el primero
en salir.
5 La
98
CAPÍTULO 6. FAMILIAS DE DSP
Figura 6.5: Circuitos para las operaciones lógico-aritméticas. La unidad que
realiza la multiplicación ha sido desmitificada.
6.2. DSP DE PRIMERA GENERACIÓN (TMS320C10-14)
99
Figura 6.6: Circuitos de direccionamiento a memoria RAM interna.
6.2.4.
Circuito de datos y modos de direccionamiento de
datos
Este DSP soporta los modos de direccionamiento Inmediato, Directo e Indirecto. La figura 6.6 muestra el circuito para direccionamiento de datos en la
RAM interna.
Modo de direccionamiento Inmediato
Bajo el «modo de direccionamiento constante», el operando es una constante
de 8 bits que se encuentra incluída en la instrucción recuperada de la ROM.
Modo de direccionamiento directo
Bajo el «modo de direccionamiento directo», una dirección de memoria de
7 bits está incluída en la instrucción recuperada de la ROM. En este modo
de direccionamiento solamente se pueden direccionar 128 palabras de las 144
palabras que forman la RAM interna. Un registro de un bit llamadado DP ó
«Data Page» permite incrementar la capacidad de direccionamiento hasta 256
palabras o bien, tener dos páginas de 128 palabras.
Modo de direccionamiento indirecto
Bajo el modo de direccionamiento indirecto, se usan los registros auxiliares
AR0 y AR1. Sin la expansión de memoria, solamente se requieren de los 8 bits
menos significativos. En una instrucción del procesador, se usa el registro ARP
para indicar cual registro auxiliar será usado.
100
6.3.
CAPÍTULO 6. FAMILIAS DE DSP
DSP que opera en punto flotante (TMS320C30)
Deacuerdo a [4], un DSP de la familia TMS320C30-50 tiene las características
siguientes:
Ciclo de instrucción 40ηs:
Capacidad operativa:
• 275 millones de operaciones aritmético-lógicas en punto fijo, por segundo (MOPS).
• 50 millones de operaciones en punto flotante, por segundo (MFLOPS).
• 25 millones de instrucciones por segundo (MIPS).
Dos bloques RAM de 1K palabras. Cada palabra es de 32 bits. Cada
bloque de RAM es de acceso dual
Un bloque ROM de 4k palabras de 32 bits.
Un bloque de memoria cache de 64 palabras. Cada palabra de 32 bits.
Soporta expansión de memoria RAM con direccionamiento de 14 bits y
de 13 bits y longitud de palabra de 32 bits.
Multiplicador
• Operaciones en punto fijo de 32 bits
• Operaciones en punto flotante de 16/32 bits
• Operaciones en punto flotante de 32/40 bits
Desplazador de barril de 0 a 32 bits.
ALU de 32 bits.
El ALU y el multiplicador pueden operar en paralelo.
Ocho registros auxiliares.
Doce registros de usuario.
Dos juegos de buses
• Bus datos y bus de direcciones para memoria interna
• Bus datos y bus de direcciones para memoria externa
Controlador de acceso directo a memoria.
Voltaje de polarización a 5V.
Una unidad de control se encarga de generar las señales para el procesamiento
de una instrucción. Ahora bien, note que el DSP puede ejecutar mas operaciones
en punto flotante que instrucciones puede procesar la unidad de control.
6.3. DSP QUE OPERA EN PUNTO FLOTANTE (TMS320C30)
101
Figura 6.7: Arquitectura simplificada del TMS320C30. Diagrama tomado de [5]
6.3.1.
La arquitectura
La figura 6.7 es una representación simplificada del CPU TMS320C30. En
este diagrama pueden verse los siguientes registros:
r0 a r7: Registros de precisión extendida. Estos regsitros son principalmente
empleaados para la manipulación de datos. Estos registros pueden ser empleados
para operaciones en punto flotante de 32 bits y operaciones en punto flotante
de precisión extendida a 40 bits.
ar0 a ar7: Registros auxiliares. Estos registros son comúnmente usados
para retener las direcciones de datos en memoria, es decir, estos registros se
usan como punteros. Los registros, al estar conectados a dos ALU, denominadas
ARAU (Auxiliary Register Arithmetic Units), soportan arimética de punteros
como incremento, decremento o suma de un desplazamiento.
ir0 e ir1: Registros índice.
sp,pc,st: Puntero de pila, contador de programa y registro de estado.
Otros registros: Hay un juego completo de registros para controlar el comportamiento del procesador. Estos registros no serán vistos aquí.
6.3.2.
Modos de direccionamiento
El TMS320C30 tiene cuatro modos de direccionamiento:
Inmediato El operando es una constante que viene incluida en la instrucción.
Registro El operando es un registro.
102
CAPÍTULO 6. FAMILIAS DE DSP
Directo El operando es una constante que representa la dirección de una variable en memoria.
Indirecto El operando es un regsitro auxiliar, el cual contiene la dirección de
una variable en memoria. En este caso al registro se le antepone un «*».
6.4.
DSP C6000
La familia de DSP C6000 se pone a la vanguardia6 con nuevos nucleos semisuperescalares. Esta familiar consiste de dos ramas, la rama C64x, que puede
realizar de una hasta seis operaciones por ciclo de reloj y la rama C67x que puede
realizar de una hasta ocho operaciones por ciclo de reloj. Estos procesadores son
la más notable definición de un procesasor Harvard encauzado.
Algunas revisiones de la familia C6000 cuentan con co-procesadores, los
cuales realizan funciones especiales, es decir, decodificadores vitervi y codificadores ATM.
Para ponerse a la moda, versiones avanzadas de esta familia implementan el
concepto de multinúcleo. Así se tienen versiones de cuatro núcleos y versiones
de ocho núcleos. Éstas últimas tienen un límite teórico de 22.4 GFlops.
6.4.1.
Arquitectura del núcleo
El núcleo base de la familia C6000 se puede ver en la figura 6.8. En esta
figura pueden verse las etapas de procesamiento de la instrucción:
Fetch o búsqueda.
Dispatch o Lanzamiento.
Decode o Decodificación.
Execute o Ejecución.
Considérese que se trata de un procesador de instrucciones de palabra larga,
asíu que el circuito «Fetch», en la rama del C64x recupera hasta 6 operaciones
por acceso a la memoria de instrucciones L1P, en tanto que, en la rama C67x,
se recuperan hasta 8 operaciones por acceso.
Cada «operación» tiene un bit que indica si debe ejecutarse en paralelo
con la «operación» anterior. Si este bit es nulo en todas las «operaciones», el
circuito «Dispath» entregará una a una las «operaciones» al circuito «Decode».
En cambio, si este bit está habilitado, el «Dispatch» entregará de dos hasta ocho
«operaciones» al circuito «Decode».
El circuito «Decode», debe recibir las operaciones en un orden particular, el
cual es calculado por el circuito anterior. El circuito «Decode» entonces calcula
las señales de control que serán alimentadas a cada unidad operativa y a los
bancos de registros A y B: «A Register File» y «B Register File».
6 Esta
vanguardia ocurre entre los años 2008 y 2012.
6.4. DSP C6000
103
Figura 6.8: Núcleo común de la familia C6000. Las unidades M1 y M2 son para
operaciones en punto flotante y no están presentes en todos los miembros de la
familia.
La Ejecución de la instrucción está a cargo de una de ocho unidades operativas que, junto con los bancos de registros, forman dos rutas de datos: «Data
Path A» y «Data Path B». Las unidades operativas son:
Logic (L1 y L2) son para operaciones lógicas principalmente.
Shift (S1 y S2) manipulación de bits principalmente.
Multiply (M1 y M2) multiplicaciones en punto flotante principalmente.
Data (D1 y D2) Transferencias entre memoria y registros del procesador.
Las unidades operativas tienen capacidad para operar en paralelo.
Cada banco de regsitros puede contener de 16 regsitros, cada uno de 32
bits. Si fuese necesario, los registros pueden accesarse en parejas como si fueran
registros de 64 bits.
En la figura 6.8 también pueden apreciarse dos bloques de memoria de
4Kbytes: «L1D» para datos y «L1P» para código. El bloque «L1D» tiene capacidad para dos accesos de lectura-escritura a la vez. Estos accesos son realizados
por las unidades D1 y D2.
6.4.2.
Instrucciones de palabra larga o VLIW
Los procesadores C67x hacen uso de una arquitectura VLIW como una forma
de lograr paralelismo en sus operaciones. Esto es posible dado que el núcleo
104
CAPÍTULO 6. FAMILIAS DE DSP
Figura 6.9: Codificación de un programa C a ensamblador C6000. Las instrucciones en ensamblador serán interpretadas por el compilador para ejecución en
paralelo debido a la doble barra vertical ||. Figura tomada de [6].
exige de la memoria L1P ocho operaciones en un mismo ciclo. Cabe mencionar
que la familia C6000, a pesar la capacidad de realizar varias opraciones en un
único ciclo, no implica superescalabilidad ya que este paralelismo no lo realiza
el hardware, sino más bien, la buena planificación del programador.
La figura 6.9 muestra como se pueden codificar las líneas del programa C
de la figura 6.2 en instrucciones ensmablador para su ejecución en paralelo. El
lector debe considerar que el ejemplo de la figura, aunque funcional, requiere de
un análisis exhaustivo para entender como lo hace dada la obvia dependencia
de las instrucciones.
6.4.3.
Arquitectura completa del C6000
La figura 6.10 ilustra la arquitectura completa del C6415. Este DSP es bastante representativo de la familia C6000 ya que todos son semejantes, talvez,
con algunos circuitos más y con algunos circuitos menos. En el digrama de la
figura pueden notarse los sigueintes componentes:
Dos niveles de memoria
• Memoria de nivel 1. Dos bloques de memoria para datos (L1D) y
para código (L1P).
• Memoria de nivel 2. Un bloque único de memoria para datos y código.
La memoria L2 suele usar tres cuartos de capacidad para código y el
resto es para datos.
6.4. DSP C6000
105
Figura 6.10: Arquitectura del DSP C6415. Todos los procesadores C6000 comparten esta arquitectura, con algunos dispositivos más y algunos dispositivos
menos. Figura tomada de [6].
Buses internos de alta tasa de transferencia.
• Bus ancho de 256 bits y 32GB/s para transferencia de código del
bloque L1P al núcleo del procesador.
• Bus ancho de 256 bits y 32GB/s para transferencia de información
entre la memoria L2 y la memoria L1P
• Bus ancho de 64 bits y 16GB/s para transferencia de datos entre el
bloque L1D y el núcleo del procesador.
• Bus ancho de 64 bits y 16GB/s para transferencia de datos entre el
bloque L2 y la memoria L1D
• Bus de 8 bits y 2.9 GB/s para transferencia entre el circuito DMA y
la memoria L2.
Circuitos de comunicación, EMIF, McBSP y demás. Estos circuitos permiten la expansión de memoria y comunicación otros circuitos como DAC,
ADC, etc.
6.4.4.
Comunicación con la familia C6000
Cada procesador de la familia C6000 contiene una variedad de periféricos
que facilitan la comunicación con circuitos como una expansión de memoria, un
co-procesador y otros dispositivos como un DAC y un ADC. Estos periféricos
hacen interfaz entre el CPU o núcleo y algún dispositivo externo. El diagrama
de la figura 6.11 da una idea de que se puede conectar a un miembro de la
106
CAPÍTULO 6. FAMILIAS DE DSP
Figura 6.11: Circuitos que pueden conectarse a un miembro de la familia C6000.
No todos los miembros de la familia tiene los periféricos mostrados en la figura.
Figura tomada de [6].
familia C6000. A continuación se describen brevemente algunas de las conexiones
mostradas.
Viterbi Coprocessor (VCP)
Viterbi es un decodificador empleado para detectar y corregir bits erróneos.
Usado para aplicaciones de comunicación inalámbrica 3G.
Soporta más de 500 canales de voz a 8kbps.
Disponible en el C6416.
Turbo Decoder Coprocessor (TCP)
Usado para aplicaciones de comunicación inalámbrica 3G.
Soporta 35 canales de datos a 384kbps.
6.4. DSP C6000
107
Turbo codificador 3GPP7 /IS20008 .
Disponible en el C6416.
Timer / Counters
Dos (o tres) circuitos temporizador/contador de 32 bits.
• Se pueden usar como contador de eventos externos.
• Se pueden usar como contador de pulsos de reloj internos.
Pueden generar:
• Interrupciones al CPU.
• Eventos DMA/EDMA.
• Generar pulsos fuera del DSP.
• Cada circuito temporizador/contador tiene terminales de entrada/salida.
General Purpose Input/Output (GPIO)
Para observar o para controlar señales en un único terminal.
Terminales dedicados GPIO solamente en C6713 y dispositivos C64x.
Todos los dispositivos C6000 tiene terminales compartidos entre GPIO y
otros periféricos.
Hardware Interrupts (HWI)
Permiten sincronización con el mundo exterior.
• Cuatro terminales configurables para interrupción.
• Un terminal para interrupción no mascarable.
7 El «Proyecto Asociación de Tercera Generación» o más conocido por el acrónimo inglés «3GPP 3rd Generation Partnership Project» es una colaboración de grupos de asociaciones de telecomunicaciones, conocidos como «Miembros Organizativos». El objetivo inicial
del 3GPP era asentar las especificaciones de un sistema global de comunicaciones de tercera
generación para móviles basándose en las especificaciones del sistema evolucionado "Global
System for Mobile Communications" o GSM dentro del marco del proyecto internacional de
telecomunicaciones móviles 2000 de la Unión Internacional de Telecomunicaciones ITU. Fuente
http://es.wikipedia.org/wiki/3GPP.
8 IS2000 es como se conoce también al estándar de interfaz inalámbrica CDMA2000. Este
estándar opera en un par de canales de 1.25-MHz y duplica la capacidad de voz sobre las
redes IS-95. Aunque capaz de soportar altas velocidades de datos, la mayoría de desarrollos
están limitados a una velocidad pico de 144 kbits/s. Mientras 1xRTT es calificado oficialmente
como una tecnología 3G, 1xRTT es considerado por algunos como una tecnología 2.5G (o a
veces 2.75G). Esto ha permitido que sea implementado en el espectro 2G en algunos países
limitando los sistemas 3G a ciertas bandas.
108
CAPÍTULO 6. FAMILIAS DE DSP
• Un terminal de reset.
El CPU C6000 soporta doce fuentes de interrrupción. Algunas propiedades
que pueden configurarse son:
• Fuente de interrupción.
• Dirección de la rutina del servicio de interrupción.
• Circuito despachador de interrupciones hardware.
• Anidamiento de interrupciones.
El sistema software llamadao DSP/BIOS tiene código para administrar
los servicios de interrupción.
Parallel Peripheral Interface
C6000 proporciona tres interfaces paralelas diferentes, por supuesto cuales
interfaces están incluídas en el encapsulado depende del dispositivo sobre
el cual se programa:
• HPI (Host Post Interface) : Permite a otro procesador accesar a la
memoria del núcleo C6000 usando un bus dedicado de 16/32 bits. En
este caso el núcleo del C6000 es esclavo.
• XBUS (Expansion Bus) : Es similar al HPI pero proporciona un bus
de 32 bits, modos maestro o esclavo, modos de transferencia síncronos
y tasas de transferencia que igualan el reloj del procesador.
• PCI (Peripheral Component Interconnect): Interfaz estándar maestro/esclavo de 32 bits.
Direct Memory Access (DMA / EDMA)
Un «Acceso Directo a Memoria» es una técnica que permite a un periférico
transferir datos entre el interfaz de comuninicación y la memoria L2 sin intervención del núcleo del procesador. Un canal DMA implica una transferencia
en proceso. Algunos procesadores soportan varios canales operando al mismo
tiempo, en forma intercalada.
Cada miembro de la familia C6000 tiene canales DMA y EDMA.
Las transferencias pueden ser del tipo:
• Interfaz-memoria.
• memoria-memoria.
Las transferencias pueden ser síncronas, es decir, disparadas por un evento
interno o externo.
Operación independiente del núcleo del procesador.
6.4. DSP C6000
109
4/16/64 canales DMA.
Las diferencias entre sistemas DMA y EDMA son:
• DMA: Ofrece cuatro canales totalmente configurables (un canal adicional para el HPI), sincronización de eventos, modo dividido para
su uso con el periférico McBSP y dirección/cuenta de recarga.
• EDMA: DMA mejorado (EDMA) ofrece 16 canales totalmente configurables (64 canales en los dispositivos C64x), sincronización de
eventos, la vinculación de canales y autoinicialización de canal.
Boot Loader
Luego de un «reset», el CPU comienza a ejecutar algún código, este código
puede ser un programa llamado «bootloader», el cual:
• Automáticamente copia el código y datos en la memoria.
• Permite a un sistema anfitrión leer/escribir código en la memoria
interna al procesador y en la memoria externa al procesador. Esto
ocurre vía los puertos HPI, XBUS o PCI.
• Permite al CPU comenzar la ejecución desde la dirección cero.
External Memory Interface (EMIF)
El periférico EMIF es la interfaz entre el CPU y un bloque de memoria.
EMIF tiene un conjunto de terminales que permite la conexión con varios tipos
de memorias.
Acceso sin sola a memroias síncronas y asíncronas.
Trabaja con PC100 SDRAM9 .
En este caso, EMIF provee un bus de 8 bits para datos.
EMIF provee un bus de 16/32/64 bits de ancho para direcciones.
Ethernet
Interfaz Ethernet 10/100.
Pila optimizada TCP/IP (se usa bajo licencia).
9 PC100 es un estándard para circuitos removibles de memoria. Estos circuitos operan a
100MHz sobre un bus de 64 bits y con una alimentación de 3.3V. Una memoria PC100 se
conforma de un conjunto de circuitos que no necesariamente funcionan a 100MHz. Fuente
http://en.wikipedia.org/wiki/PC100.
110
CAPÍTULO 6. FAMILIAS DE DSP
Multi-Channel Buffered Serial Port (McBSP)
Este perierico provee una interfaz para comunicación «serial» y «asíncrona». Dispositivos tales como ADC y DAC ya trabajan con este tipo de
interfaz.
Son dos (o tres) puertos los que se incluyen en el encapsulado.
La comunicación puede ser «Full-duplex». El puerto tiene dos circuitos
independientes para transmisión y recepción.
Tasa de transferencia hasta de 100Mbps.
Soporta los siguientes modos de transferencia
• SPI (Serial Peripheral Interface)
• AC97 (Audio Codec 97)
• Operación de canal múltiple. Esta característica lo hace útil para
aplicaciones telefónicas con portadoras T1, E1, MVIP, etc.
• RS-232
Multichanel Audio Serial Port (McASP)
Este puerto es sucesor del McBSP y además agrega:
Está preparado para aplicaciones de audio multicanal: monaural, esterofónico, estereo 2.1 y surround en sus versiones 5.1, 6.1 y 7.1.
• El puerto soporta hasta 8 canales para entrada y 8 canales para salida
(16 canales en total).
• Frecuencia de muestreo por canal de 192kHz.
Formato de transmisión
• Multi-pin IIS para interfaz de audio
• Multi-pin DIT para interfaces digitales.
Este puerto está disponible en C6713 y DM642.
Universal Test and Operations PHY Interface for ATM (UTOPIA)
Para conexión con sistemas bajo el protocolo ATM10 .
Dos Interfaces esclava UTOPIA.
Conexiones con redes de area amplia a 50MHz.
Interfaz de 8 bits.
Disponible en dispositivos C64x.
10 ATM
es abreviación para «Asyncrhonous Transfer Mode».
6.4. DSP C6000
111
PLL
Interconstruído en el integrado hay un PLL, el cual puede multiplicar en una
o más veces la frecuencia del reloj provisto en forma externa. El uso del PLL
simplifica la tecnología del reloj y reduce la interferencia electromagnética.
Power Down
La familia C6000 soporta varios modos de reduccion en el consumo de energía. Uno de estos modos pone en pausa al procesador en lo que un evento
externo ocurre.
112
CAPÍTULO 6. FAMILIAS DE DSP
Capítulo 7
El TMS320C6713
113
114
CAPÍTULO 7. EL TMS320C6713
Capítulo 8
Puertos seriales
115
116
CAPÍTULO 8. PUERTOS SERIALES
Apéndice A
Redes de resistencias
Definición A.1 Se le denomina resistencia eléctrica a la igualdad de oposición que tienen los electrones al desplazarse a través de un conductor. La unidad
de resistencia en el Sistema Internacional es el ohmio, que se representa con la
letra griega omega (Ω), en honor al físico alemán George Ohm, quien descubrió
el principio que ahora lleva su nombre.
Definición A.2 Ley de ohm. la resistencia de un material puede definirse
como la razón entre la diferencia de potencial eléctrico V y la corriente en que
atraviesa dicha resistencia I, así:
R=
A.1.
V
I
(A.1)
Circuitos serie y paralelo
Teorema A.1 Resistencia equivalente. Se denomina resistencia equivalente
de un arreglo de resistencias, respecto de dos puntos A y B, a aquella que conectada a la misma diferencia de potencial, demanda la misma intensidad de corriente. Esto significa que ante las mismas condiciones, el arreglo de resistencias
y su resistencia equivalente disipan la misma potencia.
Este concepto queda ilustrado en la figura A.1.
Definición A.3 Resistencias en serie. Dos o más resistencia sse ecuentran conectadas en serie cuando al aplicar al conjunto una misma diferencia de
potencial, todas ellas son recorridas por la misma corriente.
117
118
APÉNDICE A. REDES DE RESISTENCIAS
Figura A.1: Asociaciones generales de resistencias: a) Serie y b) Paralelo. c)
Resistencia equivalente.
Teorema A.2 Equivalente de resistencias en serie. Para encontrar la
resistencia equivalente de un grupo de resistencias en serie únicamente se suman
sus valores.
Así entoces, dado el diagrama de circuito a la izquierda de la figura, su
resistencia equivalente se calcula como:
Rtot = R1 + R2 + . . . + RN
(A.2)
Definición A.4 Resistencias en paralelo. Dos o más resistencias se encuentran en paralelo cuando tienen dos terminales comunes de modo que al
aplicar al conjunto una diferencia de potencial, VAB , todas las resistencias tienen
la misma caída de tensión, VAB .
Teorema A.3 Equivalente de resistencias en paralelo. Para encontrar
la resistencia equivalente de un grupo de resistencias en paralelo se calcula el
inverso de la suma de inversos de los valores de resistencias.
A.2.
Thevenin-Norton
El «teorema de Thévenin» fue enunciado por primera vez por el científico
alemán Hermann von Helmholtz en el año 1853, pero fue redescubierto en 1883
por el ingeniero de telégrafos francés Léon Charles Thévenin (1857–1926), de
quien toma su nombre. El «teorema de Thévenin» es el dual del «teorema de
Norton».
A.2. THEVENIN-NORTON
119
Figura A.2: Circuito equivalente de Thevenin de una red eléctrica.
Figura A.3: Circuito equivalente de Norton de una red eléctrica.
Teorema A.4 Equivalente Thévenin de un circuito. establece que si una
parte de un circuito eléctrico lineal está comprendida entre dos terminales A y
B, esta parte en cuestión puede sustituirse por un circuito equivalente que esté
constituido únicamente por un generador de tensión en serie con una impedancia, de forma que al conectar un elemento entre los dos terminales A y B, la
tensión que cae en él y la intensidad que lo atraviesa son las mismas tanto en
el circuito real como en el equivalente.
El «teorema de Norton» para circuitos eléctricos es dual del teorema de
Thévenin. Se conoce así en honor al ingeniero Edward Lawry Norton, de los
Laboratorios Bell, que lo publicó en un informe interno en el año 1926. El
alemán Hans Ferdinand Mayer llegó a la misma conclusión de forma simultánea
e independiente.
Teorema A.5 Equivalente Norton de un circuito. Cualquier circuito lineal se puede sustituir por una fuente equivalente de intensidad en paralelo con
una impedancia equivalente.
120
APÉNDICE A. REDES DE RESISTENCIAS
Bibliografía
[1] IEEE punto flotante.
[2] SPRS009C. Texas Instruments Incorporated, Houston, Texas 77001, 1991.
[3] SPRU031D. Texas Instruments Incorporated, 1994.
[4] SPRS032A. Texas Instruments Incorporated, Houston, Texas 77251–1443,
1997.
[5] John Reekie. Realtime DSP: The TMS320C30 Course. Realtime DSP: The
TMS320C30 Course, 1994.
[6] C6000 Integration Workshop. C6000 Introduction. C6000 Integration Workshop.
121
Descargar