1.1 Sistemas de numeracin no signado (decimal, binario, octal y hexadecimal)..11
1.2 Conversin de sistemas decimal a cualquier base..14
1.3 Conversin de cualquier base a sistema decimal.16
1.4 Relacin entre los sistemas binarios, octal y hexadecimal.17
1.4.1 Sistema binario octal y hexadecimal 1.4.2 Relacin del sistema binario con el sistema hexadecimal
1.5 Sistemas de numeracin signado (decimal, binario, octal y hexadecimal) y sus conversiones19
1.5.1 Representacin de nmeros con signo 1.5.2 Suma en el sistema de complemento A2 1.5.3 Resta en el sistema de complemento A2 1.5.4 Multiplicacin de nmeros binarios 1.5.5 Divisin binaria
UNIDAD 2: CIRCUITOS DIGITALES Y DISPOSITIVOS DE MEMORIA..38
2.1 Seales analgicas y digitales.39 IPN-ESIME Zacatenco Electrnica III
3
2.1.1 Introduccin a los sistemas 2.1.2 Seal elctrica analgica 2.1.3 Sistemas analgicos y digitales 2.1.4 Seal digital como una seal analgica compuesta 2.1.5 Ruido en seal analgica 2.1.6 Ejemplo de un sistema analgico 2.1.7 Sistemas analgicos que se han vuelto digitales 2.1.8 Sistemas que utilizan mtodos digitales y analgicos
2.2 Compuertas lgicas...45
2.3 Flip-flops..49
2.3.1 FLIP-FLOP (biestable) 2.3.2 Historia del FLIP FLOP. 2.3.4 Aplicacin 2.3.5 Tipos de FLIP FLOPS
2.4 Codificadores..56
2. 4.1 Direccin local de lugar
2.5 Decodificadores..57
2.5.1 Ejemplo decodificador 2.5.2 Aplicaciones del decodificador
2.6 Multiplexores...58
2.7 Circuitos aritmticos..59
2.7.1 Introduccin 2.7.2 Sumadores binarios de 4 bits 2.7.3 Sumadores en cascada 2.7.4 La operacin de resta con el 74LS283 2.7.5 La ALU 74LS381 2.7.6 Circuitos de comparacin binaria
2.8 Estructura y funcionamiento general de las memorias67
2.8.1 Registros
2.9 Clasificacin de las memorias..69
2.10 Conexiones de memorias...71
2.10.1 Evolucin de los CI S 2.10.2 Zona de operaciones 2.10.3 Zona de control 2.10.4 Memoria central l
4
2.10.5 Notas practicas sobre memorias 2.10.6 Dispositivos de entrada y salida E / S 2.10.7 Operaciones de e / s 2.10.8 Lneas de conexin 2.10.9 Lneas compartidas 2.10.10 Mapa de memoria 2.10.11 Ejemplo de mapa de memoria 2.10.12 Direcciones (notacin) 2.10.13 Implementacin de un mapa de memorias
UNIDAD 3: ARQUITECTURA GENERAL DE UNA COMPUTADORA83
Introduccin84
3.1 Diagrama general de una computadora.85
3.1.1 Registros de la unidad central de proceso
3.2 Buses88
3.2.1 Caractersticas de un bus 3.2.1.1 Nivel fsico 3.2.1.2 Lneas 3.2.1.3 Modo de operacin 3.2.2 Jerarqua de buses
3.3 Arquitectura interna de la unidad microprocesadora96
3.3.1 Que es un microprocesador 3.3.2 Arquitectura del microprocesador
UNIDAD 4: PROGRAMACIN BSICA DE LA UNIDAD MICROPROCESADORA...103
4.1 Modos de direccionamiento104
4.1.1 Cuntos modos de direccionamiento existen? 4.1.2 Resumen de modos de direccionamiento IPN-ESIME Zacatenco Electrnica III
5
4.2 Herramientas de programacin.108
4.2.1 Diagrama de flujo 4.2.2 Pseudocdigo 4.2.3 Diagrama N-S
4.3 Instrucciones.114
4.3.1 Desarrollo 4.3.2 Bases numricas de representacin 4.3.3 Instrucciones, modos de direccionamiento y Code Warrior 4.3.3.1 Los modos de direccionamiento
4.4 Ejemplos de programas bsicos...120
UNIDAD 5: PROGRAMACIN DE PERIFRICOS...123
5.1 Puertos Digitales..124
5.1.2 Puertos paralelo 5.1.3 Puertos serie 5.1.4 PCI 5.1.5 PCI-Express 5.1.6 Puertos de memoria 5.1.7 Puerto de rayos infrarrojos 5.1.8 Puerto USB 5.1.9 Puertos Fsicos 5.1.10 Universal Serial Bus 5.1.11 Puertos de entrada/salida
5.2 Adquisicin de seales analgicas...141
5.2.1 Introduccin 5.2.2 Definicin de seal analgica 5.2.3 Conceptos fundamentales en adquisicin de seales 5.2.4 Seales de transmisin analgicas y seales de datos digitales 5.2.5 Transmisin de datos: transmisin analgica 5.2.6 Sistema de adquisicin de datos analgicos 5.2.7 Las seales analgicas en el diseo de sistemas de adquisicin de datos 5.2.8 Conversin analgica-digital
5.3 Interrupciones...149
5.3.1 Introduccin 5.3.2 Entrada-salida e interrupcin 5.3.3 Configuracin de entrada-salida 5.3.4 Instrucciones entrada - salida 5.3.5 Interrupcin del programa l
6
5.3.6 Tipos de interrupciones 5.3.7 Ciclo de interrupcin 5.3.8 La instruccin SWI 5.3.9 Modulo de interrupcin por teclado (KBI) 5.3.10 Registro de habilitacin de interrupciones de teclado (KBIER) 5.3.11 Inicializacin del teclado
UNIDAD 6: APLICACIN DE MICROCONTROLADORES EN INGENIERA ELCTRICA.....162
6.1 Planteamiento del proyecto163 6.2 Aceptacin del proyecto..164 6.3 Supervisin165 6.4 Pruebas de aceptacin167 6.5 Demostracin y exhibicin del proyecto...170
REFERENCIAS BIBLIOGRFICAS..171
ANEXO....172 IPN-ESIME Zacatenco Electrnica III
7
INTRODUCCIN
Estos apuntes se realizaron para cubrir el temario de la asignatura Electrnica III, del Departamento de Ingenieria Elctrica en el Instituto Politcnico Nacional que se imparte en el sexto semestre de la Escuela Superior de Ingeniera Mecnica y Elctrica, unidad Zacatenco.
La informacin incluida en estos apuntes se obtuvo de fuentes que se citan al final en la bibliografia y la experiencia de varios aos de impartir esta materia, adems se hace el uso de imgenes y tablas que ejemplifican de una mejor manera los temas desarrollados, para su mejor entendimiento y transmisin del conocimiento. Igualmente se mencionan problemas resueltos con los que el alumno puede guiarse y estudiar de una mejor manera.
El curso de electrnica III tiene ciertos niveles de aprendizaje, comenzando desde los diversos sistemas numricos, hasta la programacin de perifricos, cada uno de los temas fue desarrollado con la informacin suficiente que se requiere para el entendimiento del mismo. Al final del documento encontrar ejemplos de prcticas realizadas en el laboratorio, con los cuales puede expandir el conocimiento hacia el uso de programas virtuales y de simulacin tales como Digital Works y Code Warrior.
l
8
UNIDAD I
SISTEMAS DE NUMERACIN
IPN-ESIME Zacatenco Electrnica III
9
INTRODUCCIN
El Nmero es un ente matemtico abstracto usado para indicar cantidad y es independiente de la forma de representarlo.
La expresin numrica, conocida como numeral o numero; es representada en diversos sistemas diferenciados por sus bases para uso particular. Un nmero N se expresa en un sistema as:
+
Donde: b es la base Cualquier ; Tomando valores entre 0 y b-1 Dominio de la parte entera n a 0 Dominio de la parte fraccionaria -1 a m En el factor posicional a i , el subndice (i) indica posicin relativa en que se debe colocar cada a as:
El punto , punto raz; en particular en el sistema decimal llamado punto decimal.
La magnitud de a i depende de la posicin con respecto al punto y su valor mximo ser b-1, es decir en el sistema decimal b = 10; la a i mxima =10-1 =9; su inexistencia se denota con cero.
l
10
Sistema de nmeros comunes
Sistema Decimal Binario Octal Hexadecimal Base 10 2 8 16
1.1 SISTEMAS DE NUMERACION NO SIGNADO (decimal, binario, octal y hexadecimal)
El Sistema Binario: Es el sistema de numeracin que utiliza internamente el hardware de las computadoras actuales. Se basa en la representacin de cantidades utilizando los dgitos 1 y 0. Por lo tanto, es base 2 (Numero de dgitos del sistema).
Cada dgito de un nmero representado en este sistema se denomina BIT (Contraccin de Binary Digit).
Ejemplo: Suma Binaria: Es semejante a la suma decimal, con la diferencia de que se manejan solo 2 dgitos (0 y 1), y que cuando el resultado excede de los smbolos utilizados se agrega el exceso (acarreo) a la suma parcial siguiente hacia la izquierda. Las tablas de sumar son:
Se observa que no se ha tenido ningn acarreo en las sumas parciales. Sumar 11001 (25) y 10011 (19).
El Sistema Octal: Es un sistema de numeracin cuya base es 8, es decir, utiliza smbolos para la representacin de cantidades, estos smbolos son:
01234567
Este sistema tambin es de los llamados posicionales y la posicin de sus cifras se mide con relacin a la coma decimal que en caso de no aparecer se supone implcitamente a la derecha del nmero.
La aritmtica en este sistema es similar a la de los sistemas decimal y binario, por lo tanto entraremos en su estilo.
Ejemplo:
Qu numero decimal representa el numero octal 4 701 utilizando el TFN? l
12
4*8 3 + 7*8 2 +1*8 0 = 2048+ 448+ 0+ 1= 2497.
El Sistema Decimal: Es uno de los denominados sistemas posicionales, utilizando un conjunto de smbolos cuyo significado depende fundamentalmente de su posicin relativa al smbolo coma (,), denominado coma decimal, que en caso de ausencia se supone colocada implcitamente a la derecha.
Utiliza como base el 10, que corresponde al nmero de smbolos que comprende para la representacin de cantidades; estos smbolos (tambin denominados dgitos) son:
123456789
Una determinada cantidad, que denominaremos nmero decimal, se puede expresar de la siguiente forma:
N= (dgito)i X (base)i Donde: Base= 10 I= Posicin respecto a la coma, D= nde dgitos a la derecha de la coma, N= nde dgitos a la izquierda de la coma -1, Dgito= cada uno de los que componen el nmero.
La representacin de cantidades 1992 y 3, 1416 es:
1992= 1*10 3 + 9*10 2 + 9*10 1 + 2*10 0
3.1416= 3*10 0 + 1*10 1 + 4*10 2 + 10 3 + 6*10 4
Teorema Fundamental de la Numeracin. (TFN).
Se trata de u teorema que relaciona una cantidad expresada en cualquier sistema de numeracin con la misma cantidad expresada en el sistema decimal.
Ejemplo: Supongamos la cantidad 201.1 expresada en el sistema de numeracin de base tres que utiliza los dgitos para la representacin de cantidades0, 1 y 2, Cul ser la representacin de la misma cantidad en el sistema decimal?
2*3 2 + 0*3 1 + 1*3 -1 = 18+0+1+0.333=19.333
El Sistema Hexadecimal: Es un sistema posicional de numeracin en el que su base es 16, por tanto, utilizar 16 smbolos para la representacin de cantidades. Estos smbolos son:
0123456789ABCDEF
Se le asignan los siguientes valores absolutos a los smbolos A, B, C, D, E, F:
IPN-ESIME Zacatenco Electrnica III
13
SIMBOLO VALOR ABSOLUTO A 10 B 11 C 12 D 13 E 14 F 15
La suma aritmtica es similar a las anteriores.
Ejemplo: Qu nmero decimal representa el nmero hexadecimal 2CA utilizando el TNF?
1.2 CONVERSION DE SISTEMAS DECIMAL A CUALQUIER BASE.
La conversin del sistema numrico decimal a cualquier base, realiza con los siguientes pasos:
1.-Dividir el nmero decimal entre la base que se desea convertir
2.-Al residuo de la operacin (al numerador del quebrado que indica la parte fraccionaria), llmese a 0 en el nuevo sistema.
3.-Tomese el cociente entero y divdase nuevamente entre la base.
4.-A este residuo (al numerador del quebrado que indica la parte fraccionaria) llmese a 1
en el nuevo sistema.
5.-Este proceso se repite hasta agotar el numeral, obtenindose el ultimo residuo (al numerador del quebrado que indica la parte fraccionaria) a n. En el nuevo sistema.
Ejemplos:
27 10 = # 2
27 10 = 11011 2
Comprobacin:
| 10
Comprobacin: IPN-ESIME Zacatenco Electrnica III
15
| 10
Comprobacin:
| 10 | 10
l
16
1.3 CONVERSION DE CUALQUIER BASE A SISTEMA DECIMAL
Conversin de un numero de base b a base 10(decimal).
Escrbase el numeral en forma expandida y evalu la polinomial en aritmtica decimal, para obtener la conversin correspondiente. Los subndices de las expresiones contenida en los ejemplos siguientes, nos indica la base del sistema numrico en que se expresa el numeral.
A) | 10
| 10
| 10
B) | 10
| 10
| 10
C) | 10
D) | 10
IPN-ESIME Zacatenco Electrnica III
17
1.4 RELACION ENTRE LOS SISTEMAS BINARIOS, OCTAL Y HEXADECIMAL
1.4.1 Sistema binario octal y hexadecimal
Sistema Octal. (Base 8)
En el sistema Octal (base 8), slo se utilizan 8 cifras (0, 1, 2, 3, 4, 5, 6,7).
Este Sistema de numeracin una vez que se llega a la cuenta 7 se pasa a 10, etc.
Cuenta hecha en octal: 0,1,2,3,4,5,6,7,10,11,12,13,14,15,16,17,20,21,.. se puede observar que en este sistema numrico no existen los nmeros: 8 y 9.
Para pasar del un sistema binario al octal se utiliza el siguiente mtodo:
Se divide el nmero binario en grupos de 3 empezando por la derecha. Si al final queda un grupo de 2 o 1 dgitos, se completa el grupo de 3 con ceros (0) al lado izquierdo.
Se convierte cada grupo en su equivalente en el Sistema octal y se reemplaza. Ejemplo. 10110111 2 pasarlo a octal
Nmero en binario convertido a grupos de 3: 010 110 111 Equivalente en base 8 2 6 7
Resultado: 10110111 2 = 267 8
Sistema Hexadecimal. (Base 16)
El sistema hexadecimal, a diferencia del sistema decimal, necesita 16 cifras y/o letras (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E.F). Si se cuentan las letras y nmeros anteriores se tienen 16.
Comparacin de los nmeros superiores a 9 en hexadecimal con su equivalente en decimal.
A B 5 16 2 16 1 16 0
Donde:
A,B,5= Multiplicador (015)
Y
16 2 ,16 1 ,16 0 = Potencia de 16 l
18
Entonces para formar el nmero AB5 16 : (el nmero 2741 en hexadecimal) A x 16 2 = 10 x 1056 = 2560 B x 16 1 = 11 x 16 = 176 5 x 16 0 = 5 x 1 = 5
Equivalente decimal = 2560+176+5 = 2741
Relacin entre el Sistema Binario y el Hexadecimal
El Sistema hexadecimal es una abreviacin del Sistema Binario. Si a cada cifra de un nmero Hexadecimal se lo reemplaza por su equivalente en binario, se habr convertido el nmero en hexadecimal a nmero binario.
Ejemplo:
9B 16 = 1001 2 1011 2 . Donde 9 16 = 1001 2 y B 16 = 1011 2
1.4.2 Relacin del sistema binario con el sistema hexadecimal Cuatro (4) cifras binarias se reemplazan por una (1) cifra hexadecimal. De esta manera se puede convertir un nmero en base 16 a uno en base 2. Tambin se puede convertir un nmero binario en uno hexadecimal de la siguiente manera. Se separa el nmero binario en grupos de 4 dgitos empezando por la derecha. Si al final queda un grupo de 3 dgitos o menos, se completa el grupo de 4 con ceros (0) al lado izquierdo. - Se busca el equivalente en base 16 de cada uno de los grupos y se reemplaza. Si a cada cifra de un Nmero en Hexadecimal se lo reemplaza por su equivalente Nmero en binario, se habr convertido el nmero en hexadecimal a nmero binario. Cuatro (4) cifras binarias se reemplazan por una (1) cifra hexadecimal. IPN-ESIME Zacatenco Electrnica III
19
1.5 SISTEMAS DE NUMERACION SIGNADO (decimal, binario, octal y hexadecimal) y SUS CONVERSIONES
1.5.1 Representacin de nmeros con signo
En las computadoras digitales, los nmeros binarios se representan mediante un conjunto de dispositivos de almacenamiento binario (por ejemplo, fiip.flops). Cada dispositivo representa un bit. Por ejemplo, un registro FF de seis bits puede almacenar nmeros binarios que varan desde 000000 hasta 111111 (de O a 63 en decimal). Esto representa la magnitud del nmero. Debido a que la mayora de las computadoras y calculadoras digitales maneja nmeros tanto negativos como positivos, se requiere de algn medio para representar el signo del nmero (+ o -). Por lo general lo que se hace es agregar otro bit al nmero; a este bit se le llama bit de signo. En general, la convencin comn es que un O en el signo representa a un nmero positivo y un 1 en el bit de signo representa a un nmero negativo. Esto se ilustra en la figura 6-1. El registro A contiene los bits 0110100. El O en el bit ms a la izquierda (A6) es el bit de signo que representa al signo +. Los otros seis bits son la magnitud del nmero 1101002, el cual es equivalente al 52 decimal. Entonces, el nmero almacenado en el registro A es + 52. De manera similar, el nmero almacenado en el registro B es -52 ya que el bit de signo es 1, que representa al (--).
El bit de signo se utiliza para indicar la naturaleza positiva o negativa del nmero binario almacenado. Los nmeros de la figura 6-1 consisten de un bit de signo y de seis bits de magnitud. Los bits de magnitud son el equivalente binario real del valor decimal que se est representando. A ste se le conoce como sistema de signo-magnitud para representar nmeros binarios con signo.
Aunque el sistema de signo-magnitud es simple, las calculadoras y computadoras no lo utilizan de manera usual porque la implementacin del circuito es ms compleja que en otros sistemas. El sistema ms comn que se utiliza para representar nmeros binarios con signo es el sistema de complemento a 2.Antes de ver cmo se hace esto, primero debemos ver cmo se forma el complemento a 1 y el complemento a 2 de un nmero binario. Figura 6-1 representaciones de nmeros con signo en la forma de signo magnitud.
A 6 A 5 A 4 A 3 A 2 A 1 A 0 =+52 10
Bit de signo (+) magnitud =+52 10 B 6 B 5 B 4 B 3 B 2 B 1 B 0 =-52 10
0 1 1 0 1 0 0 0 1 1 0 1 0 0 l
20
Bit de signo (-) magnitud =-52 10 Forma de complemento a 1 El complemento a 1 de un nmero binario se obtiene al cambiar cada O por un 1 y cada 1 por un O. En otras palabras, se cambia cada uno de los bits en el nmero por su complemento. El proceso se muestra a continuacin.
1 O 1 1 O 1 nmero binario original
O 1 O O 1 O se complementa cada bit para formar el complemento a 1
Por lo tanto, decimos que el complemento a 1 de 101101 es 010010.
Forma de complemento a 2
El complemento a 2 de un nmero binario se forma al tomar el complemento a 1 de ese nmero y sumarIe 1 a la posicin del bit menos significativo. El proceso se ilustra a continuacin para el nmero 101101 2 = 45 10'
1 0 1 1 0 1 equivalente binario de 45 0 1 0 0 1 0 se complementa cada bit para formar el complemento a 1 + 1 se le suma 1 para formar el complemento a 2
0 1 0 0 1 1 complemento a 2 del nmero binario original
Entonces, decimos que 010011 es la representacin en complemento a 2 de 10110l. He aqu otro ejemplo de cmo convertir un nmero binario a su representacin en complemento a 2:
1 0 1 1 0 0 nmero binario original 0 1 0 0 1 1 complemento a 1 + 1 se le suma1 0 1 0 1 0 0 complemento a 2 del nmero original
Representacin de nmeros con signo mediante el complemento a 2
El sistema de complemento a 2 para representar nmeros con signo funciona as:
-Si el nmero es positivo, la magnitud se representa en su forma binaria real y se coloca el bit de signo 0 enfrente del MSB. Esto se muestra en la figura 6-2 para el nmero +45 10
-Si el nmero es negativo, la magnitud se representa en su forma de complemento a 2 y se coloca el bit de signo 1 enfrente del MSB. Esto se muestra en la figura 6.2 para el nmero -45 10,
=+45 10
0 1 0 1 1 0 1 IPN-ESIME Zacatenco Electrnica III
21
Bit de signo (+) binario real
=-45 10
Bit de signo (-) complemento a 2
El sistema de complemento a 2 se utiliza para representar nmeros con signo ya que, como veremos, nos permite realizar la operacin de la resta, a partir de una operacin de suma. Esto es importante ya que significa que una computadora digital puede utilizar los mismos circuitos tanto para sumar como para restar, lo cual redunda en un ahorro en el hardware.
Extensin del signo
En el ejemplo 6-1 tuvimos que utilizar un total de cinco bits para representar los nmeros con signo. El tamao de un registro (nmero de fIip-fIops) determina el nmero de dgitos binarios que se almacenan para cada nmero. La mayora de los sistemas digitales hoy en da almacenan nmeros en registros con tamaos en mltiplos pares de cuatro bits. En otras palabras, los registros de almacenamiento estn compuestos de 4, 8, 16,32 o 64 bits. En un sistema que almacena nmeros de ocho bits, siete de ellos representan la magnitud y el MSB representa el signo. Si necesitamos almacenar un nmero positivo de cinco bits en un registro de ocho bits slo basta con agregar ceros a la izquierda. El MSB (bit de signo) sigue siendo 0,lo
0000 1001
0s a la izquierda que se agregaron valor binario para el 9 cual indica un valor positivo.
Qu Ocurre si tratamos de almacenar nmeros negativos de cinco bits en un registro de ocho bits? En la seccin anterior vimos que la representacin binaria en 10111
complemento a 2 de cinco bits para el -9 es 10111.
Si anexramos Os a la izquierda, ste ya no sera un nmero negativo en el formato de ocho bits. La manera apropiada de extender un nmero negativo es anexando 1s a la izquierda. As, el valor almacenado para el 9 negativo es
111 1 0111
magnitud en complemento a 2 signo en formato de 5 bits extensin del signo al formato de 8 bits
1 0 1 0 0 1 1 l
22
Negacin
La negacin es la operacin de convertir un nmero positivo en su equivalente negativo, o un nmero negativo en su equivalente positivo. Cuando los nmeros binarios con signo se representan en el sistema de complemento a 2, para realizar la negacin slo basta con realizar la operacin de complemento a 2. Para ilustrar esto empecemos con el +9 en su forma binaria de ocho bits. Su representacin con signo es 00001001. Si sacamos su complemento a 2 obtendremos 11110111, el cual representa al valor con signo -9. De igual forma podemos empezar con la representacin de -9, que es 11110111, y sacar su complemento a 2 para obtener 00001001, el cual representa a +9. A continuacin se muestran estos pasos en un diagrama.
Empezamos con complemento 00001001 +9 a 2 (se cambia el signo) 11110111 -9 se niega otra vez 00001001 +9
Por lo tanto, para cambiar el signo de un nmero binario con signo lo complementamos a 2.
Esta negacin cambia el nmero a su equivalente con signo opuesto. En los pasos (d) y (e) del ejemplo 6-1 utilizamos la negacin para convertir los nmeros positivos en sus equivalentes negativos.
1.5.2 Suma en el sistema de complemento A2
Ahora investigaremos cmo se realizan las operaciones de suma y resta en los equipos digitales que utilizan la representacin de complemento a 2 para los nmeros negativos. En los diversos casos a considerar, es importante observar que el bit de signo de cada nmero se opera sobre la misma forma que los bits de magnitud. Caso 1: dos nmeros positivos. La suma de dos nmeros positivos es simple. Considere la suma de +9 y +4:
Observe que los bits de signo del primer sumando y del sumando son ambos 0 y que el bit de signo de la suma es 0, lo cual indica que la suma es positiva. Observe, adems, que el primer sumando y el sumando se ajustan para tener el mismo nmero de bits. Esto debe hacerse siempre en el sistema de complemento a 2. IPN-ESIME Zacatenco Electrnica III
23
Caso 2: nmero positivo y nmero negativo ms pequeo. Considere la suma de+9 y -4. Recuerde que el -4 estar en su forma de complemento a 2. Por lo tanto, +4 (00100) debe convertirse en -4 (11100).
Este acarreo se descarta; el resultado es 00101(suma =+5)
En este caso el bit de signo del sumando es 1. Observe que los bits de signo tambin participan en el proceso de la suma. De hecho, se genera un acarreo en la ltima posicin de la suma. Este acarreo siempre se descarta, por lo que la suma final es:00101, que equivale a +5.
Caso 3: nmero positivo y nmero negativo ms grande. Considere la suma de
-9 y +4:
-9 10111 +4 00100 11011 suma =-5
Bit de signo negativo
Aqu la suma tiene un bit de signo en 1, lo cual indica un resultado negativo. Como el resultado de la suma es negativo se encuentra en su forma de complemento a 2, por lo que los ltimos cuatro bits (1011) en realidad representan el complemento a 2 del resultado. Para encontrar la magnitud real, debemos negar (complementar a 2) el 11011; el resultado es 00101 = +5. De esta forma, 11011 representa a-S.
-9 10111 -4 11100 1 10011
Bit de signo
Este acarreo se descarta; el resultado es 10011(suma =-13)
Nuevamente el resultado final es negativo y est en forma de complemento a 2 con un bit de signo de 1. Al cambiar de signo (complementar a 2) este resultado se produce 01101 = + 13.
Caso IV: dos nmeros negativos
l
24
-9 10111 -9 01001 0 1 00000
se descarta; el resultado es:00000(suma =+0)
1.5.3 Resta en el sistema de complemento A2
La operacin de resta mediante el uso del sistema de complemento a 2 en realidad implica la operacin de la suma y no es distinta de los diversos casos para la suma del crculo numrico en sentido de las manecillas del reloj, segn el nmero de espacios en el sumando. Por ejemplo, para sumar 2 + 3 se empieza en 2 (0010) Y despus se avanza en sentido de las manecillas del reloj tres espacios ms para llegar al 5(0101). El desbordamiento ocurre cuando la suma es demasiado grande como para caber dentro del formato con signo de cuatro bits, lo cual significa que nos hemos excedido del valor mximo de 7. En el crculo numrico esto se indica cuando al sumar dos valores positivos tenemos que cruzar la lnea entre 0111 (mximo positivo) y 1000 (mximo negativo).
El crculo numrico puede ilustrar tambin cmo funciona en realidad la resta con complemento a 2. Por ejemplo, vamos a restar S de 3. Desde luego que sabemos que la respuesta es - 2, pero vamos a hacerlo con el crculo numrico. Primero empezamos en el nmero 3 (0011) del crculo numrico. La manera ms aparente de restar es avanzar en sentido contraro a las manecillas del reloj alrededor del crculo por cinco espacios, para quedar en el nmero 1110 (- 2). La operacin menos obvia que ilustra la aritmtica con complemento a 2 es sumar -S al nmero 3. El cinco negativo (el complemento a 2 de 0101) es 1011, que si se interpreta como nmero binario sin signo representa el valor 11 (once) en decimal. Empiece en el nmero 3 (0011) Y avance en sentido a favor de las manecillas del reloj alrededor del crculo 11 espacios y se encontrar una vez ms en el nmero 1110 (- 2), que es el resultado correcto.
Cualquier operacin de resta entre nmeros de cuatro bits con signos opuestos que produzca un resultado mayor de 7 o menor de -8 es un desbordamiento del formato de cuatro bits y produce una respuesta incorrecta. Por ejemplo, 3 menos -6 debe producir la respuesta 9, pero si avanzamos en sentido de las manecillas del reloj seis espacios a partir del 3, quedaremos en el nmero con signo -7: se ha producido una condicin de desbordamiento, la cual nos proporciona una respuesta incorrecta.
1.5.4 Multiplicacin de nmeros binarios
La multiplicacin de nmeros binarios se realiza de la misma forma que la multiplicacin de nmeros decimales. En realidad el proceso es ms simple, ya que los dgitos multiplicadores son 0 o 1, por lo que siempre estamos multiplicando por 0 o 1 y ningn otro dgito
Multiplicacin en el sistema de complemento a 2 IPN-ESIME Zacatenco Electrnica III
25
En las computadoras que utilizan la representacin en complemento a 2, la multiplicacin se lleva a cabo en la manera antes descrita, siempre y cuando tanto el multiplicando como el multiplicador se coloquen en forma binaria natural. Si los dos nmeros a multiplicar son positivos, ya se encuentran en la forma binaria natural y se multiplican como estn. Desde luego que el producto resultante es positivo y se le asigna un bit de signo de 0. Cuando los dos nmeros sean negativos, debern estar en forma de complemento a 2. Se saca el complemento a 2 de cada uno para convertirlo en un nmero positivo y despus se multiplican esos dos nmeros. El producto se mantiene como un nmero positivo y recibe un bit de signo de 0.
Cuando uno de los nmeros es positivo y el otro negativo, primero se convierte el nmero negativo en una magnitud positiva, sacando su complemento a 2. El producto se encontrar en forma de magnitud real. No obstante, el producto debe ser negativo ya que los nmeros originales son de signos opuestos. Como consecuencia, el producto se cambia a su forma de complemento a 2 y se le asigna un bit de signo de 1.
1.5.5 Divisin binaria
El proceso para dividir un nmero binario (el dividendo)entre otro (el divisor) es el mismo que el que se utiliza para los nmeros decimales, al cual, por lo general, se le conoce como "divisin larga". El proceso actual es ms simple en binario, ya que cuando estamos comprobando cuntas veces "cabe" el divisor en el dividendo slo hay dos posibilidades: 0 o 1.
En la mayora de los equipos digitales modernos, por lo general, las restas que son parte de la operacin de divisin se llevan a cabo mediante el uso de la resta con complemento a 2; es decir, se saca el complemento a 2 del sustraendo y despus se suma.
La divisin de nmeros con signo se maneja de la misma forma que la multiplicacin. Los nmeros negativos se convierten en positivos mediante su negacin y despus se lleva a cabo la divisin. Si el dividendo y el divisor tienen signos opuestos, el cociente resultante se cambia a nmero negativo, para lo cual se saca su complemento a 2 y se le asigna un bit de signo de 1. Si el dividendo y el divisor son del mismo signo, el cociente se deja como nmero positivo y se le asigna un bit de signo de 0. l
26
1.6 ARITMTICA BINARIA Y HEXADECIMAL
1.6.1 Aritmtica binaria SUMA BINARIA: Las operaciones de suma binaria se realizan de la siguiente forma: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 Llevo 1
Multiplicacin binaria La multiplicacin binaria es tan sencilla como la decimal, y es que funcionan de la misma manera. Aqu tienen un ejemplo de multiplicacin binaria. Supongamos que multipliquemos 10110 por 1001:
Ejemplo de Multiplicacin Binaria
Divisin binaria Divisin: Se hace igual como el sistema decimal. Al igual que las operaciones anteriores, se realiza de forma similar a la divisin decimal salvo que las multiplicaciones y restas internas al proceso de la divisin se hacen en binario.
1.6.2 Aritmtica hexadecimal En el sistema hexadecimal, al igual que en el sistema decimal, binario y octal, se pueden hacer diversas operaciones matemticas. Entre ellas se encuentra la resta entre dos nmeros en sistema hexadecimal, la que se puede hacer con el mtodo de complemento a 15 o tambin utilizando el complemento a 16. Adems de stas, deberemos manejar adecuadamente la suma en sistema hexadecimal, explicada a continuacin: Hexadecimal Decimal A 10 B 11 C 12 D 13 E 14 F 15 l
28
Suma La adicin de los nmeros hexadecimales se efecta de manera similar a la adicin decimal, siempre y cuando recuerde que el mayor digito hexadecimal es (F) y no 9 para realizar esta operacin se sugiere el siguiente procedimiento: 1.-sume los dos dgitos hexadecimales en decimal, insertando mentalmente el equivalente decimal para nmeros mayores de 9. 2.-Si la suma es 15 o menos, esta puede expresarse directamente como un digito hexadecimal. 3.-Si la suma es mayor o igual a 16, reste 16 y acarree un 1 hacia el digito de la siguiente posicin. Ejemplo. 9 + 7 = 16 (16 16 = 0 y nos llevamos 1) En este caso la respuesta obtenida, 16, no est entre el 0 y el 15, por lo que tenemos que restarle 16. Por lo tanto, la respuesta obtenida ser 10 (sistema hexadecimal). Hay que tener cuidado de utilizar correctamente las letras, ya que operar a la vez con letras y nmeros puede crear confusiones. A + 6 = 16 (16 - 16 = 0 y nos llevamos 1) Ocurre lo mismo que en el ejemplo anterior. A + A = 20 ( 20 16 = 4 y nos llevamos 1) La respuesta es 20 y no est entre el 0 y el 15, por lo que tenemos que restarle 16. Por lo tanto, la respuesta obtenida ser 14 (sistema hexadecimal). Hay que tener cuidado de utilizar correctamente las letras, ya que operar a la vez con letras y nmeros puede crear confusiones. F + E = 29 ( 29 16 = D y nos llevamos 1) La respuesta es 29 y no est entre el 0 y el 15, por lo que tenemos que restarle 16. Por lo tanto, la respuesta obtenida ser 1D (sistema hexadecimal). Hay que tener cuidado de utilizar correctamente las letras, ya que operar a la vez con letras y nmeros puede crear confusiones. A + B + C = 33 ( 33 32 = 1 y nos llevamos 2) La respuesta es 33 y no est entre el 0 y el 15, por lo que tenemos que restarle 32. Por lo tanto, la respuesta obtenida ser 21 (sistema hexadecimal). IPN-ESIME Zacatenco Electrnica III
29
En esta operacin hemos tenido que restar 32, y no 16 como hacamos anteriormente. Esto ha ocurrido porque si a 33 le restamos 16 seguiramos estando fuera del sistema hexadecimal, con un nmero que no se encuentra entre el 0 y el 15. Hay que tener cuidado de utilizar correctamente las letras, ya que operar a la vez con letras y nmeros puede crear confusiones. Ahora haremos una operacin ms complicada: A83F + 24CC
CD0B La haremos paso a paso: F + C = 27 (27 16 = B y nos llevamos 1) 3 + C = 15 + 1 (acarreo) = 16 (16 16 = 0 y nos llevamos 1) 8 + 4 = 12 + 1 (acarreo) = 13 (13 corresponde a D) A + 2 = 12 (12 corresponde a C) Ten en cuenta que puedes comprobar los resultados utilizando una calculadora cientfica. 1.6.3 Resta Hexadecimal Antes de entrar en esta parte se recomienda aprender la suma hexadecimal, ya que ser necesaria durante los procesos explicados a continuacin. Las restas Hexadecimales se pueden resolver fcilmente utilizando el complemento a 15 o el complemento a 16. Estos procesos hacen que una resta se convierta en una suma en sistema hexadecimal. 1.6.4 Complemento C15 Podemos hacer la resta de dos nmeros hexadecimales utilizando el complemento a 15. Para ello tendremos que sumar al minuendo el complemento a quince del sustraendo, y finalmente sumarle el bit de overflow (bit que se desborda). Para entender la resta en complemento a 15 lo analizaremos con un ejemplo. Esta es la resta que tenemos que resolver: Aunque no estoy muy seguro que digamos, pero algo es algo. A4FC9 - DE8
l
30
Primero tenemos que hacer que el minuendo y el sustraendo tengan la misma cantidad de nmeros. Para ello, aadiremos ceros al sustraendo hasta que sean suficientes. A4FC9 - 00DE8
Despus, crearemos un nuevo nmero con la misma cantidad de nmeros que el nuevo sustraendo. Como en el sistema hexadecimal el mayor nmero que tenemos es el 15, que corresponde a la letra F, tendremos que escribir la F tantas veces como nmeros tiene el sustraendo. FFFFF - 00DE8
FF217 La resta se hace siguiendo las normas generales de la resta comn. La diferencia obtenida se denomina el complemento a 15. Recuerda el valor correspondiente a cada letra al operar. Ahora tendremos que sumar el minuendo y el complemento a 15 utilizando la suma en sistema hexadecimal, mencionada anteriormente. A4FC9 + FF217
1A41E0 Con la suma obtenemos el resultado 1A41E0, pero no es la respuesta final. Te habrs dado cuenta que este nuevo nmero tiene ms cifras que los nmeros inciales que tenamos que restar. Tenemos que quitar el nmero de la izquierda (en este caso, el 1) y sumarlo.
A41E0 + 1
A41E1 La respuesta es A41E1. Ten en cuenta que puedes comprobar los resultados utilizando una calculadora cientfica. 1.6.5 Complemento C16 Tambin podemos hacer la resta de dos nmeros hexadecimales utilizando el complemento a 16, siguiendo un proceso similar que en el caso del complemento a 15. Para resolver la resta, tendremos que sumar al minuendo el complemento a diecisis del sustraendo. IPN-ESIME Zacatenco Electrnica III
31
Para entender la resta en complemento a 16 lo analizaremos con el ejemplo anterior. Esta es la resta que tenemos que resolver: A4FC9 - DE8
Primero tenemos que hacer que el minuendo y el sustraendo tengan la misma cantidad de nmeros, al igual que ocurre en el proceso del complemento a 15. Para ello, aadiremos ceros al sustraendo hasta que sean suficientes. A4FC9 - 00DE8
Despus, crearemos un nuevo nmero con la misma cantidad de nmeros que el nuevo sustraendo. Como en el sistema hexadecimal el mayor nmero que tenemos es el 15, que corresponde a la letra F, tendremos que escribir la F tantas veces como nmeros tiene el sustraendo. FFFFF - 00DE8
FF217 La resta se hace siguiendo las normas generales de la resta comn. Ahora tenemos que sumarle 1 a la diferencia obtenida. Este paso es muy importante, ya que es la diferencia entre hacer la resta en complemento a 15 u 16, y se suele olvidar fcilmente. Adems, recuerda que ests sumando en sistema hexadecimal, siguiendo el mismo proceso explicado anteriormente. FF217 + 1
FF218 A la diferencia obtenida y sumarle uno le denominaremos el complemento a 16. Ahora tendremos que sumar el minuendo y el complemento a 16 A4FC9 + FF218
1A41E1 l
32
Con la suma obtenemos el resultado 1A41E1 . Te habrs dado cuenta que este nuevo numero tiene ms cifras que los nmeros inciales que tenamos que restas, cosa imposible en una resta (que la diferencia sea mayor que el minuendo y el sustraendo). Por eso, y estando en complemento a 16, tendremos que despreciar (eliminar) el nmero de la izquierda. En este caso es el 1. La respuesta, por lo tanto, es A41E1. En ambos casos la respuesta obtenida deber ser la misma, ya que hemos resuelto la misma resta en sistema hexadecimal. Por lo tanto, podremos comprobar que hemos operado bien comparando las respuestas obtenidas en complemento a 15 y en complemento a 16 para una misma resta. IPN-ESIME Zacatenco Electrnica III
33
1.7 CDIGOS
1.7.1 Cdigos numricos
Los cdigos numricos sirven para representar nmeros con fines de procesamiento y almacenamiento. Los nmeros de punto fijo y de punto flotante son ejemplos de estos cdigos.
Nmeros de punto fijo. Se utilizan para representar tantos enteros con signo como fracciones con signo. En ambos casos se usan los mismos sistemas de magnitud y signos de complemento a dos o de complemento a uno para representar los valores con signo. Los enteros de punto fijo tienen un punto binario implcito a la derecha del bit menos significativo; las fracciones de punto fijo tienen un punto binario implcito entre el bit de signo y el bit ms significativo.
Ejemplo 1.
Dar dos posibles interpretaciones del nmero de punto fijo de ocho bits 01101010 usando el sistema de complemento a dos.
Como el bit de signo es 0, el nmero representa el entero positivo 1101010, o bien la fraccin positiva 0.1101010.
Ejemplo 2.
Dar dos posibles interpretaciones del nmero de punto fijo de 8 bits 11101010, usando el sistema de complemento a dos.
El bit del signo es 1, por tanto el nmero representa a -0010110, o bien -0.0010110.
Representaciones con exceso o sesgadas. Una representacin con exceso K de un cdigo C se forma sumando el valor K a cada palabra del cdigo C. Las representaciones con exceso se utilizan a menudo para representar los exponentes de los nmeros de punto flotante.
La representacin con exceso 8 de la tabla siguiente, se obtiene al sumar (1000) 2 al cdigo de 4 bits.
Nmeros de punto flotante. Un nmero de punto flotante es un nmero N que se escribe como, N = M r E donde M, la mantisa, es un nmero de punto fijo que contiene los dgitos significativos de N y E, el exponente o caracterstica, es un entero de punto fijo.
Al deducir la representacin de un nmero de punto flotante, la mantisa y la caracterstica se codifican por separado. La base es implcita y no se incluye en la representacin. La mantisa, muchas veces, se codifica con magnitud y signo, por lo general como una fraccin. Los ms utilizados, en circuitos digitales combinacionales son el cdigo BCD, Exceso 3, Aiken o 2421, 5421, Biquinario, Dos de Cinco. Existen otros cdigos de tipo secuencial cclicos, dos de ellos es son cdigo Jhonson y el cdigo Gray. En la tabla 1.6 se describen algunos de ellos con sus respectivos equivalentes decimales. Decimal BCD Exceso 3 2421 5421 Biquinario Dos de cinco Gray 0 0000 0011 0000 0000 0100001 00011 0000 1 0001 0100 0001 0001 0100010 00101 0001 2 0010 0101 0010 0010 0100100 01001 0011 3 0011 0110 0011 0011 0101000 10001 0010 4 0100 0111 0100 0100 0110000 00110 0110 5 0101 1000 1011 1000 1000001 01010 0111 6 0110 1001 1100 1001 1000010 10010 0101 7 0111 1010 1101 1010 1000100 01100 0100 8 1000 1011 1110 1011 1001000 10100 1100 9 1001 1100 1111 1100 1010000 11000 1101 10 0001 0000 0100 0011 0001 0000 0001 0000 0100010 0100001 00101 00011 1111 11 0001 0001 0100 0100 0001 0001 0001 0001 0100010 0100010 00101 00101 1110 12 0001 0010 0100 0101 0001 0010 0001 0010 0100010 0100100 00101 01001 1010 IPN-ESIME Zacatenco Electrnica III
35
13 0001 0011 0100 0110 0001 0011 0001 0011 0100010 0101000 00101 10001 1011 14 0001 0100 0100 0111 0001 0100 0001 0100 0100010 0110000 00101 00110 1001 15 0001 0101 0100 1000 0001 1011 0001 1000 0100010 1000001 00101 01010 1000 Tabla de Equivalencia desde cero hasta quince de algunos cdigos numricos ms utilizados. 1.7.2 Cdigo BCD (Binario Codificado en Decimal): La conversin con el sistema decimal se realiza directamente, en grupos de cuatro bits por cada dgito decimal con ponderacin 8421. Este cdigo tiene aplicacin en visualizadores (displays) hechos con diodos led o LCD, los cuales poseen previamente convertidores que transforman el grupo de cuatro bits BCD en otro especial, llamado 7 segmentos. Por ejemplo, para transformar el nmero decimal 78905 10 en cdigo BCD se toman los equivalentes en grupos de cuatro bits cada uno; ver tabla 1.6: 7 8 9 0 5 10
Para realizar la equivalencia del BCD con el sistema binario se debe tomar la precaucin de realizar primero la transformacin decimal y posteriormente la conversin al BCD. Ejemplo: Transformar en BCD los siguientes nmeros: a) 1011101111111 2 ; b) 5F3C,B 16
1.7.3 Unidades de informacin; bit, byte, kilobyte, megabyte, gigabyte y terabyte: definicin:
a. Bit: Dgito binario. Es el elemento ms pequeo de informacin del ordenador. Un bit es un nico dgito en un nmero binario (0 o 1). Los grupos forman unidades ms grandes de datos en los sistemas de ordenador siendo el Byte (ocho Bits) el ms conocido de stos.
l
36
b. Byte: Se describe como la unidad bsica de almacenamiento de informacin, generalmente equivalente a ocho bits, pero el tamao del byte del cdigo de informacin en el que se defina. 8 bits. En espaol, a veces se le llama octeto. Cada byte puede representar, por ejemplo, una letra.
c. Kilobyte: Es una unidad de medida utilizada en informtica que equivale a 1.024 Bytes. Se trata de una unidad de medida comn para la capacidad de memoria o almacenamiento de las microcomputadoras.
d. Megabyte: es una unidad de medida de cantidad de datos informticos. Es un mltiplo binario del byte, que equivale a 220 (1 048 576) Bytes, traducido e efectos como 106 (1 000 000) bytes.
e. Gigabyte: Es la unidad de medida ms utilizada en los discos duros. Tambin es una unidad de almacenamiento. Debemos saber que un byte es un carcter cualquiera. Un gigabyte, en sentido amplio, son 1.000.000.000 bytes (mil millones de bytes), tambin, cambiando de unidad, 1.000 megas (MG megabytes). Pero con exactitud 1 GB son 1.073.741.824 bytes 1.024 MB. El Gigabyte tambin se conoce como "Giga"
f. Terabyte: Es la unidad de medida de la capacidad de memoria y de dispositivos de almacenamiento informtico (disquete, disco duro CD-ROM, etc). Una unidad de almacenamiento tan desorbitada que resulta imposible imaginrsela, ya que coincide con algo ms de un trilln de bytes (un uno seguido de dieciocho ceros). El terabyte es una unidad de medida en informtica y su smbolo es el TB. Es equivalente a 240 bytes. Se destaca que todava no se han desarrollado memorias de esta capacidad aunque s dispositivos de almacenamiento. Conversiones entre las Unidades de Informacin: o Cuatro bits se denominan cuarteto (ejemplo: 1001). o Ocho bits octeto o byte (ejemplo: 10010110). o Al conjunto de 1.024 bytes se le llama Kilobyte o simplemente K. o 1.048.576 Bytes equivalen a un Megabyte. o Mil millones de bytes equivalen a un Gigabyte. o 1.024 Kilobytes forman el llamado Megabyte. o 1.024 Megabytes se denominan Gigabyte. Por tanto podemos establecer las siguientes igualdades relacionadas al dgito binario (bit): o 1 Cuarteto 4 Bits. o 1 Byte= 8 Bits. o 1 Kilobyte= 1.024*8 bits= 8192 Bits. o 1 Megabyte= 1.024*1.024*8= 8388608 Bits. o 1 Gigabyte= 1.024*1.024*1.024*8= 8589934592 Bits. IPN-ESIME Zacatenco Electrnica III
37
EJERCICIO
2 10 =1024 =1k =400 H =0100 0000 0000 B +400 800
2 11 =2048 =2k =800 H =1000 0000 0000 B +800 1000 H
2 12 =4096 =4k =1000 H =0001 0000 0000 0000 B
2 13 =8192 =8k =2000 H =0010 0000 0000 0000 B
EJERCICIO: CALCULAR
RESULTADO = E000
Solucin 2
a) 8K = 2000 H - 1 1FFF H l
38
b) FFFF -1FFF E000
RESULTADO= E000
EJERCICIO
Un Programa tiene una extensin de 1400 bytes y empieza en la direccin 1AAA H Dnde termina?
En una primera aproximacin se puede decir que un sistema es un conjunto de elementos que guardan algn tipo de relacin. Esta definicin es tan poco concreta que sirve para cualquier tipo de sistema. Los elementos de un sistema pueden tener a su vez estructura de sistema. En este caso seran subsistemas del sistema al que pertenecen. De lo anterior se desprende que segn la escala que se emplee en la observacin de un elemento, ste puede ser considerado como un sistema o subsistema Una primera clasificacin de los sistemas podra ser la siguiente.
Existen sistemas naturales (los generados por la naturaleza) y sistemas artificiales (hechos por el hombre). Est claro que los sistemas electrnicos se encuentran dentro de los sistemas artificiales.
Un tema importante al hablar de sistemas es la comunicacin entre sistemas que se produce por medio de una transferencia o intercambio de energa. Un ejemplo es la radio, donde el emisor, a travs de una antena, emite energa en forma de ondas electromagnticas que son detectadas por el receptor; en definitiva se ha producido un intercambio energtico.
2.1.2 Seal elctrica analgica
Seal elctrica analgica es aquella en la que los valores de la tensin o voltaje varan constantemente en forma de corriente alterna, incrementando su valor con signo elctrico positivo durante medio ciclo y disminuyndolo a continuacin con signo elctrico negativo en el medio ciclo siguiente. El cambio constante de polaridad de positivo a negativo provoca que se cree un trazado en forma de onda senoidal.
2.1.3 Sistemas analgicos y digitales
Los sistemas electrnicos procesan la informacin que les llega a sus entradas. En general, la informacin que llega a estas entradas proviene de magnitudes fsicas del mundo real en el que vivimos.
Estas magnitudes son temperatura, presin, longitud, velocidad, tensin, intensidad, etc. que tienen un carcter continuo o analgico. La utilizacin de alguna de estas magnitudes depender de la aplicacin especfica para la que est diseando mi sistema electrnico. Lo que s parece lgico pensar es que estas magnitudes fsicas entrada deben llegar en forma de seal elctrica. Por este motivo se suelen utilizar sensores o transductores que captan la magnitud fsica y la transforman en seal elctrica para que pueda ser procesada en mi sistema electrnico. IPN-ESIME Zacatenco Electrnica III
41
Fig. 2.1 Se ve un ejemplo de esta situacin en un sistema de adquisicin de datos de laboratorio.
Por tanto, podemos definir una seal elctrica como una representacin de la variacin de una magnitud elctrica (tensin o intensidad) frente al tiempo. La magnitud ms utilizada es la tensin. Segn la naturaleza de la informacin que lleva la seal elctrica, esta puede clasificarse en:
2.1.4 Seal digital como una seal analgica compuesta
Basndose en el anlisis de Fourier, una seal digital es una seal analgica compuesta. El ancho de banda es infinito, se puede llegar a este concepto si se estudia una seal digital. Una seal digital, en el dominio del tiempo, incluye segmentos horizontales y verticales conectados. Una lnea vertical en el dominio de tiempo significa una frecuencia cero (no hay cambio en el tiempo). Ir de una frecuencia cero a una frecuencia infinito (y viceversa) implica que todas las frecuencias en medio son parte del dominio. El anlisis de Fourier se puede usar para descomponer una seal. Si la seal digital es peridica, lo que es raro en comunicaciones, la seal descompuesta tiene una representacin en el dominio de frecuencia con un ancho de banda infinito y frecuencias discretas. Si la seal digital es peridica, la seal descompuesta todava tiene un ancho de banda infinito, pero las frecuencias son continuas.
2.1.5 Ruido en seal analgica
Las seales de cualquier circuito o comunicacin electrnica son susceptibles de ser modificadas de forma no deseada de diversas maneras mediante el ruido, lo que ocurre siempre en mayor o menor medida. Para solucionar esto la seal suele ser acondicionada antes de ser procesada.
La gran desventaja respecto a las seales digitales es que en las seales analgicas cualquier variacin en la informacin es de difcil recuperacin, y esta prdida afecta en gran medida al correcto funcionamiento y rendimiento del dispositivo analgico. Un sistema de control no tiene capacidad alguna para trabajar con seales analgicas, de modo que necesita convertirlas en seales digitales para poder trabajar con ellas.
2.1.6 Ejemplo de un sistema analgico l
42
Un ejemplo de sistema electrnico analgico es el altavoz, que se emplea para amplificar el sonido de forma que ste sea odo por una gran audiencia. Las ondas de sonido que son analgicas en su origen, son capturadas por un micrfono y convertidas en una pequea variacin analgica de tensin denominada seal de audio. Esta tensin vara de manera continua a medida que cambia el volumen y la frecuencia del sonido y se aplica a la entrada de un amplificador lineal. La salida del amplificador, que es la tensin de entrada amplificada, se introduce en el altavoz. ste convierte, de nuevo, la seal de audio amplificada en ondas sonoras con un volumen mucho mayor que el sonido original captado por el micrfono.
2.1.7 Sistemas analgicos que se han vuelto digitales
FOTOGRAFAS: La mayora de las cmaras todava hacen uso de pelculas que tienen un recubrimiento de haluros de plata para grabar imgenes. Sin embargo, el incremento en la densidad de los microcircuitos o "chips" de memoria digital ha permitido el desarrollo de cmaras digitales que graban una imagen como una matriz de 640 x 480, o incluso arreglos ms extensos de pxeles donde cada pxel almacena las intensidades de sus componentes de color rojo, verde y azul de 8 bits cada uno.
Esta gran cantidad de datos, alrededor de siete millones de bits en este ejemplo puede ser procesada y comprimida en un formato denominado JPEG y reducirse a un tamao tan pequeo como el equivalente al 5% del tamao original de almacenamiento dependiendo de la cantidad de detalle de la imagen. De este modo las cmaras digitales dependen tanto del almacenamiento como del procesamiento digital.
GRABACIONES DE VIDEO: Un disco verstil digital de mltiples usos (DVD por las siglas de digital versatile disc) almacena video en un formato digital altamente comprimido denominado MPEG-2. Este estndar codifica una pequea fraccin de los cuadros individuales de video en un formato comprimido semejante al JPEG y codifica cada uno de los otros cuadros como la diferencia entre ste y el anterior.
La capacidad de un DVD de una sola capa y un solo lado es de aproximadamente 35 mil millones de bits suficiente para grabar casi 2 horas de video de alta calidad y un disco de doble capa y doble lado tiene cuatro veces esta capacidad.
GRABACIONES DE AUDIO: Alguna vez se fabricaron exclusivamente mediante la impresin de formas de onda analgicas sobre cinta magntica o un acetato (LP), las grabaciones de audio utilizan en la actualidad de manera ordinaria discos compactos digitales (CD. Compact Discs).
Un CD almacena la msica como una serie de nmeros de 16 bits que corresponden a muestras de la forma de onda analgica original se realiza una muestra por canal estereofnico cada 22.7 microsegundos.
Una grabacin en CD a toda su capacidad (73 minutos) contiene hasta seis mil millones de bits de informacin.
IPN-ESIME Zacatenco Electrnica III
43
2.1.8 Sistemas que utilizan mtodos digitales y analgicos
Existen sistemas que utilizan mtodos digitales y analgicos, uno de ellos es el reproductor de disco compacto (CD). La msica en forma digital se almacena en el CD. Un sistema ptico de diodos lser lee los datos digitales del disco cuando ste gira y los transfiere al convertidor digital-analgico (DAC).
El DAC transforma los datos digitales en una seal analgica que es la reproduccin elctrica de la msica original. Esta seal se amplifica y se enva al altavoz. Cuando la msica se grab en el CD se utiliz un proceso que, esencialmente, era el inverso al descrito, y que utiliza un convertidor analgico digital (ADC, analog-to-digital converter). SEAL ANALGICA: Una seal analgica es un tipo de seal generada por algn tipo de fenmeno electromagntico y que es representable por una funcin matemtica continua en la que es variable su amplitud y periodo en funcin del tiempo. En la naturaleza, el conjunto de seales que percibimos son analgicas, as la luz, el sonido, la energa etc. son seales que tienen una variacin continua. Incluso la descomposicin de la luz en el arco iris vemos como se realiza de una forma suave y contina.
Una onda senoidal es una seal analgica de una sola frecuencia. Los voltajes de la voz y del video son seales analgicas que varan de acuerdo con el sonido o variaciones de la luz que corresponden a la informacin que se est transmitiendo. El modelo matemtico que la describe es una funcin continua, por tanto transporta una informacin analgica. Por lo tanto, puede tomar infinitos valores frente al tiempo. (Ver Fig. 2.2)
Fig. 2.2 Seal analgica
SEAL DIGITAL: El modelo matemtico que la describe es una funcin que slo puede tomar un conjunto finito de valores, por transporta una informacin digital. El tipo de seal con la que trabajaremos en electrnica ser un caso particular de la seal digital, la seal digital binaria, en la que slo son significativos los valores de tensin comprendidos en dos intervalos de tensin diferentes. A todos los valores dentro de cada uno de los intervalos se le asocia un mismo valor lgico, normalmente uno y cero (ver Fig. 2.3) l
44
Fig. 2.3. Seal digital binaria
Por tanto podemos concluir que:
Un sistema en el que todas sus seales son analgicas se denomina SISTEMA ANALGICO. Un sistema en el que todas sus seales son digitales se denomina SISTEMA DIGITAL.
Ya hemos visto que las magnitudes fsicas con las que convivimos son esencialmente analgicas o continuas (si no entramos en el mbito de la fsica cuntica). Las variables que modelizan estas magnitudes pueden ser analgicas o digitales dependiendo de la codificacin o modelo matemtico de las mismas. (Ver Fig. 2.4, Reloj digital y analgico).
Fig. 2.4. Codificacin analgica y digital
El proceso que consiste en convertir una seal o variable analgica en digital se denomina digitalizacin.
La mayora de los sistemas electrnicos construidos procesan seales digitales, pero el mundo fsico es fundamentalmente analgico como hemos visto. En consecuencia un sistema digital muy a menudo debe tratar con seales analgicas en su punto de contacto con el mundo exterior (sus entradas), por lo que con frecuencia es necesario digitalizar una seal analgica o a la inversa, transformar una seal previamente tratada digitalmente en analgica, emplendose para ello conversores A/D y D/A.
IPN-ESIME Zacatenco Electrnica III
45
Fig. 2.5 Conversin analgica / digital
Para terminar este apartado solo queda decir que los sistemas digitales tienen infinitas aplicaciones y se pueden encontrar, por ejemplo, en el diseo de computadores, instrumentacin, control de procesos industriales, control de semforos, electrnica de automviles (ABS, encendido electrnico, etc.), simuladores para pilotos de aviones, aplicaciones en medicina, electrnica de consumo (sonido y vdeo digital, TV, PC, telefona mvil digital, etc.), l
46
2.2 COMPUERTAS LOGICAS
Las computadoras digitales utilizan el sistema de nmeros binarios, que tiene dos dgitos 0 y 1. Un dgito binario se denomina un bit. La informacin est representada en las computadoras digitales en grupos de bits. Utilizando diversas tcnicas de codificacin los grupos de bits pueden hacerse que representen no solamente nmeros binarios sino tambin otros smbolos discretos cualesquiera, tales como dgitos decimales o letras de alfabeto. Utilizando arreglos binarios y diversas tcnicas de codificacin, los dgitos binarios o grupos de bits pueden utilizarse para desarrollar conjuntos completos de instrucciones para realizar diversos tipos de clculos.
La informacin binaria se representa en un sistema digital por cantidades fsicas denominadas seales, Las seales elctricas tales como voltajes existen a travs del sistema digital en cualquiera de dos valores reconocibles y representan una variable binaria igual a 1 o 0. Por ejemplo, un sistema digital particular puede emplear una seal de 3 volts para representar el binario "1" y 0.5 volts para el binario "0". La siguiente ilustracin muestra un ejemplo de una seal binaria.
Fig. 2.6 Seal binaria
Como se muestra en la figura, cada valor binario tiene una desviacin aceptable del valor nominal. La regin intermedia entre las dos regiones permitidas se cruza solamente durante la transicin de estado. Los terminales de entrada de un circuito digital aceptan seales binarias dentro de las tolerancias permitidas y los circuitos responden en los terminales de salida con seales binarias que caen dentro de las tolerancias permitidas. La lgica binaria tiene que ver con variables binarias y con operaciones que toman un sentido lgico. La manipulacin de informacin binaria se hace por circuitos lgicos que se denominan COMPUERTAS.
Las compuertas son bloques del hardware que producen seales en binario 1 0 cuando se satisfacen los requisitos de entrada lgica. Las diversas compuertas lgicas se encuentran comnmente en sistemas de computadoras digitales. Cada compuerta tiene un smbolo grfico diferente y su operacin puede describirse por medio de una funcin algebraica. Las relaciones entrada - salida de las variables binarias para cada compuerta pueden representarse en forma tabular en una tabla de verdad. A IPN-ESIME Zacatenco Electrnica III
47
continuacin se detallan los nombres, smbolos, grficos, funciones algebraicas, y tablas de verdad de las compuertas ms usadas.
COMPUERTA AND: Cada compuerta tiene dos variables de entrada designadas por A y B y una salida binaria designada por x. La compuerta AND produce la multiplicacin lgica AND: esto es: la salida es 1 si la entrada A y la entrada B estn ambas en el binario 1: de otra manera, la salida es 0.
Estas condiciones tambin son especificadas en la tabla de verdad para la compuerta AND. La tabla muestra que la salida x es 1 solamente cuando ambas entradas A y B estn en 1. El smbolo de operacin algebraico de la funcin AND es el mismo que el smbolo de la multiplicacin de la aritmtica ordinaria (*). Las compuertas AND pueden tener ms de dos entradas y por definicin, la salida es 1 si todas las entradas son 1.
Fig. 2.7 AND
http://www.profesormolina.com.ar/electronica/componentes/int/comp_log/image004.png COMPUERTA OR: La compuerta OR produce la funcin sumadora, esto es, la salida es 1 si la entrada A o la entrada B o ambas entradas son 1; de otra manera, la salida es 0. El smbolo algebraico de la funcin OR (+), es igual a la operacin de aritmtica de suma. Las compuertas OR pueden tener ms de dos entradas y por definicin la salida es 1 si cualquier entrada es 1.
Fig. 2.8 OR
l
48
COMPUERTA NOT: El circuito NOT es un inversor que invierte el nivel lgico de una seal binaria. Produce el NOT, o funcin complementaria. El smbolo algebraico utilizado para el complemento es una barra sobra el smbolo de la variable binaria. Si la variable binaria posee un valor 0, la compuerta NOT cambia su estado al valor 1 y viceversa. El crculo pequeo en la salida de un smbolo grfico de un inversor designa un inversor lgico. Es decir cambia los valores binarios 1 a 0 y viceversa.
Fig. 2.9 NOT
COMPUERTA SEPARADOR (YES): Un smbolo tringulo por s mismo designa un circuito separador, el cual no produce ninguna funcin lgica particular puesto que el valor binario de la salida es el mismo de la entrada. Este circuito se utiliza simplemente para amplificacin de la seal. Por ejemplo, un separador que utiliza 5 volt para el binario 1, producir una salida de 5 volt cuando la entrada es 5 volt. Sin embargo, la corriente producida a la salida es muy superior a la corriente suministrada a la entrada de la misma. De sta manera, un separador puede excitar muchas otras compuertas que requieren una cantidad mayor de corriente que de otra manera no se encontrara en la pequea cantidad de corriente aplicada a la entrada del separador.
Fig. 2.10 YES
http://www.profesormolina.com.ar/electronica/componentes/int/comp_log/image008.png Compuerta NAND: Es el complemento de la funcin AND, como se indica por el smbolo grfico, que consiste en una compuerta AND seguida por un pequeo crculo (quiere decir que invierte la seal). La designacin NAND se deriva de la abreviacin NOT - AND. Una designacin ms adecuada habra sido AND invertido puesto que es la IPN-ESIME Zacatenco Electrnica III
49
funcin AND la que se ha invertido. Las compuertas NAND pueden tener ms de dos entradas, y la salida es siempre el complemento de la funcin AND.
Fig. 2.11 NAND http://www.profesormolina.com.ar/electronica/componentes/int/comp_log/image010.png Compuerta NOR: La compuerta NOR es el complemento de la compuerta OR y utiliza el smbolo de la compuerta OR seguido de un crculo pequeo (quiere decir que invierte la seal). Las compuertas NOR pueden tener ms de dos entradas, y la salida es siempre el complemento de la funcin OR.
Fig. 2.12 NOR l
50
2.3 FLIP FLOPS.
2.3.1 FLIP-FLOP (biestable)
Los Flip-Flop o Biestable, como tambin se le conoce, son circuitos secunciales constituidos por puertas lgicas capaces de almacenar un bit, que es la informacin binaria ms elemental. Un flip-flop es controlado generalmente por una o dos seales de control y/o una puerta o seal de reloj. La salida incluye a menudo el complemento as como la salida normal. Mientras que los flip-flop se ejecutan electrnicamente, requieren energa y las conexiones de tierra.
2.3.2 Historia del FLIP FLOP.
El primer flip-flop electrnico fue inventado en 1918 por William Eccles y FW Jordania. Fue llamado el circuito de disparador de Eccles-Jordania constaba de dos elementos activos (radio tubos). El nombre de flip-flop ms tarde fue derivado del sonido producido en un altavoz conectado junto a una de las salidas de los amplificadores durante el proceso de activacin en el circuito. Este circuito electrnico original flip flop es un circuito biestable con doble entrada sin dedicar ningn reloj (o compuerta), la seal era transparente, y as un dispositivo que sera etiquetado como " latch" en muchos crculos hoy.
Los tipos de flip-flop discutidos abajo (D, RS, JK, T) primero fueron discutidos en un curso de 1954 en la UCLA en un curso de diseo de computadora por Montgomery Phister, y en su libro Lgica de diseo de las computadoras digitales. El autor trabajaba en ese entonces en los aviones de Hughes bajo la direccin del Dr. Eldred Nelson, que haba acuado el trmino JK para un flip-flop que paso cuando ambas entradas estaban en estado encendido. Los otros nombres fueron acuados por Phister. Difieren ligeramente de algunas de las definiciones que figuran a continuacin.
El origen del nombre para el flip-flop JK es detallado por P.L. Lindley, un ingeniero de JPL, en una carta a EDN, una revista electrnica de diseo. La carta est fechada el 13 de junio de 1968, y fue publicada en la edicin de agosto de la revista. En la carta, el Sr. Lindley explica que oy la historia del flip-flop JK del Dr. Nelson Eldred, quien es el responsable de acuar el trmino mientras que trabaja en los aviones de Hughes. Los Flip-flops que se utilizan en Hughes en el momento son todos del tipo que vino a ser conocido como JK. En el diseo de un sistema lgico, el Dr. Nelson asign letras a las entradas del flip-flop como sigue: #1: A & B, #2: C & D, #3: E & F, #4: G & H, #5: J & K.
2.3.4 Aplicacin
Los flip-flops pueden ser simples (transparente) o de reloj. Los flip-flop simples se pueden construir alrededor de un par de elementos de inversin interconectados: los tubos de vaco, transistores bipolares, transistores de efecto de campo, inversores, y la inversin de las puertas de lgica todos han sido utilizados en circuitos prcticos. Los IPN-ESIME Zacatenco Electrnica III
51
dispositivos registrados (o no transparentes) ms avanzados se disean especialmente para los sistemas (tiempo-discretos) sncronos; tales dispositivos por lo tanto no hacen caso de sus entradas excepto en la transicin de una seal de reloj dedicada (conocida como la hora, pulsante, o strobing). Esto hace que el flip-flop, ya sea para cambiar o conservar su seal de salida basado en los valores de las seales de entrada en la zona de transicin. Algunos flip-flops cambio el aumento de la produccin en el borde de reloj, otros en el borde de la cada.
Fig. 2.13 Flip Flop
2.3.5 Tipos de FLIP FLOPS BIESTABLE RS: Dispositivo de almacenamiento temporal de dos estados (alto y bajo), cuyas entradas principales, R y S, a las que debe el nombre, permiten al ser activadas:
R: el borrado (reset), puesta a 0 nivel bajo de la salida. S: el grabado (set), puesta a 1 nivel alto de la salida.
Fig. 2.14 Cronograma del biestable RS
Si no se activa ninguna de las entradas, el biestable permanece en el estado que posea tras la ltima operacin de borrado o grabado. En ningn caso deberan activarse ambas entradas a la vez, ya que esto provoca que las salidas directa (Q) y negada (Q') queden con el mismo valor: abajo, si la bscula est construida con puertas NO-O (NOR), o a alto, si con puertas NO-Y (NAND).
El problema de que ambas salidas queden al mismo estado est en que al desactivar ambas entradas no se podr determinar el estado en el que quedara la salida. Por eso, en las tablas de verdad, la activacin de ambas entradas se contempla como caso no deseado (N. D.).
BIESTABLE RS ASNCRONO: Slo posee las entradas R y S. Se compone internamente de dos puertas lgicas NO-Y o NO-O, segn se muestra en la siguiente figura: l
52
Fig. 2.15 Biestables RS con puertas NO-O, a) NO-Y, c), y smbolos normalizados respectivos b) y d).
Su tabla de verdad es la siguiente (Q representa el estado actual de la salida y q el estado anterior a la ltima activacin):
TABLA DE VERDAD BIESTABLE RS R S Q (NO O) Q (NO Y) 0 0 Q N.D 0 1 1 0 1 0 0 1 1 1 N.D Q N. D. = ESTADO NO DETERMINADO
BIESTABLE RS SNCRONO: Adems de las entradas R y S, posee una entrada C de sincronismo cuya misin es la de permitir o no el cambio de estado del biestable. En la siguiente figura se muestra un ejemplo de un biestable sncrono a partir de una asncrona, junto con su esquema normalizado:
Fig. 2.16 Circuito Biestable RS sncrono a) y esquema normalizado b). IPN-ESIME Zacatenco Electrnica III
53
Su tabla de verdad es la siguiente:
TABLA DE VERDAD BIESTABLE RS C R S Q (NO O) 0 X X q 1 0 0 q 1 0 1 1 1 1 0 0 1 1 1 N.D. X= NO IMPORTA
BIESTABLE D: Dispositivo de almacenamiento temporal de dos estados (alto y bajo), cuya salida adquiere el valor de la entrada D cuando se activa la entrada de sincronismo, C. En funcin del modo de activacin de dicha entrada de sincronismo, existen dos tipos de biestables D:
Activo por nivel (alto o bajo), tambin denominado registro o cerrojo (latch en ingls). Activo por flanco (de subida o de bajada).
La ecuacin caracterstica del biestable D que describe su comportamiento es:
Fig. 2.17 Smbolos normalizados: Biestables D a) activo por nivel alto y b) activo por flanco de subida
Su tabla de verdad: D Q Q SIQUIENTE
0 X 0 1 X 1 X = NO IMPORTA
BIESTABLE T: Dispositivo de almacenamiento temporal de dos estados (alto y bajo). El biestable T cambia de estado ("toggle" en ingls) cada vez que la entrada de sincronismo o de reloj se dispara. Si la entrada T est a nivel bajo, el biestable retiene el nivel previo. Puede obtenerse al unir las entradas de control de un biestable JK, unin que se corresponde a la entrada T. l
54
Fig. 2.18 Smbolo normalizado: Biestable T activo por flanco de subida.
La ecuacin caracterstica del biestable T que describe su comportamiento es:
Su la tabla de verdad: T Q Q SIGUIENTE
0 0 0 0 1 1 1 0 1 1 1 0
BIESTABLE JK: Dispositivo de almacenamiento temporal de dos estados (alto y bajo), cuyas entradas principales, J y K, a las que debe el nombre, permiten al ser activadas:
J: El grabado (set), puesta a 1 nivel alto de la salida. K: El borrado (reset), puesta a 0 nivel bajo de la salida.
Si no se activa ninguna de las entradas, el biestable permanece en el estado que posea tras la ltima operacin de borrado o grabado. A diferencia del biestable RS, en el caso de activarse ambas entradas a la vez, la salida adquirir el estado contrario al que tena.
Fig. 2.19 Cronograma de la bscula JK
La ecuacin caracterstica del biestable JK que describe su comportamiento es:
Su tabla de verdad es: IPN-ESIME Zacatenco Electrnica III
55
J K Q Q SIGUIENTE
0 0 0 0 0 0 1 1 0 1 X 0 1 0 X 1 1 1 0 1 1 1 1 0 X = NO IMPORTA
Una forma ms compacta de la tabla de verdad es (Q representa el estado siguiente de la salida en el prximo flanco de reloj y q el estado actual):
J K Q 0 0 q 0 1 0 1 0 1 1 1
BIESTABLE JK ACTIVO POR FLANCO: Junto con las entradas J y K existe una entrada C de sincronismo o de reloj cuya misin es la de permitir el cambio de estado del biestable cuando se produce un flanco de subida o de bajada, segn sea su diseo. De acuerdo con la tabla de verdad, cuando las entradas J y K estn a nivel lgico 1, a cada flanco activo en la entrada de reloj, la salida del biestable cambia de estado. A este modo de funcionamiento se le denomina modo de basculacin (toggle en ingls).
Fig. 2.20 Smbolo normalizado Biestable JK
BIESTABLE JK MAESTRO-ESCLAVO: Aunque an puede encontrarse en algunos equipos, este tipo de biestable, denominado en ingls J-K Flip-Flop Master-Slave, ha quedado obsoleto ya que ha sido reemplazado por el tipo anterior. Su funcionamiento es similar al JK activo por flanco: en el nivel alto (o bajo) se toman los valores de las entradas J y K y en el flanco de bajada (o de subida) se refleja en la salida. l
56
Fig. 2.21 Smbolo normalizado Biestable JK Maestro - Esclavo
Otra forma de expresar la tabla de verdad del biestable JK es mediante la denominada tabla de excitacin: q Q J K 0 0 0 X 0 1 1 X 1 0 X 1 1 1 X 0
Siendo q el estado presente y Q el estado siguiente.
Ejemplo con componentes discretos
Fig. 2.22 CIRCUITO MULTIVIBRADOR BIESTABLE
IPN-ESIME Zacatenco Electrnica III
57
2.4 CODIFICADORES
Es un circuito combinacional con 2 N entradas y N salidas, cuya misin es presentar en la salida el cdigo binario correspondiente a la entrada activada. Existen dos tipos fundamentales de codificadores: codificadores sin prioridad y codificadores con prioridad.
En el caso de codificadores sin prioridad, puede darse el caso de salidas cuya entrada no pueda ser conocida: por ejemplo, la salida 0 podra indicar que no hay ninguna entrada activada o que se ha activado la entrada nmero 0. Adems, ciertas entradas pueden hacer que en la salida se presente la suma lgica de dichas entradas, ocasionando mayor confusin. Por ello, este tipo de codificadores es usado nicamente cuando el rango de datos de entrada est correctamente acotado y su funcionamiento garantizado.
Fig. 2.23 Codificador binario
2.4.1 Direccin local de lugar
Para evitar los problemas anteriormente comentados, se disean los codificadores con prioridad. En estos sistemas, cuando existe ms de una seal activa, la salida codifica la de mayor prioridad (generalmente correspondiente al valor decimal ms alto). Adicionalmente, se codifican dos salidas ms: una indica que ninguna entrada est activa, y la otra que alguna entrada est activa. Esta medida permite discernir entre los supuestos de que el circuito estuviera deshabilitado por la no activacin de la seal de capacitacin, que el circuito no tuviera ninguna entrada activa, o que la entrada nmero 0 estuviera activada.
Tambin entendemos como codificador (cdec), un esquema que regula una serie de transformaciones sobre una seal o informacin. Estos pueden transformar una seal a una forma codificada usada para la transmisin o cifrado o bien obtener la seal adecuada para la visualizacin o edicin (no necesariamente la forma original) a partir de la forma codificada. En este caso, los codificadores son utilizados en archivos multimedia para comprimir audio, imagen o vdeo, ya que la forma original de este tipo de archivos es demasiado grande para ser procesada y transmitida por los sistema de comunicacin disponibles actualmente. Se utilizan tambin en la compresin de datos para obtener un tamao de archivo menor.
Segn esta nueva definicin, podemos dividir los codificadores en cdecs sin prdidas y cdecs con prdidas, segn si la informacin que se recupera coincide exactamente con la original o es una aproximacin. l
58
2.5 DECODIFICADORES
Un decodificador o descodificador es un circuito combinacional, cuya funcin es inversa a la del codificador, esto es, convierte un cdigo binario de entrada (natural, BCD, etc.) de N bits de entrada y M lneas de salida (N puede ser cualquier entero y M es un entero menor o igual a 2 N ), tales que cada lnea de salida ser activada para una sola de las combinaciones posibles de entrada.
Estos circuitos, normalmente, se suelen encontrar como decodificador / demultiplexor. Esto es debido a que un demultiplexor puede comportarse como un decodificador.
Si por ejemplo tenemos un decodificador de 2 entradas con 2 2 =4 salidas, en el que las entradas, su funcionamiento sera el que se indica en la siguiente tabla, donde se ha considerado que las salidas se activen con un "uno" lgico:
Fig. 2.24 Ejemplo decodificador
2.5.1 Ejemplo decodificador
TABLA DE VERDAD PRA EL DECODIFICADOR 2 A 4 ENTRADAS SALIDAS A B D3 D2 D1 D0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0
Un tipo de decodificador muy empleado es el de siete segmentos. Este circuito decodifica la informacin de entrada en BCD a un cdigo de siete segmentos adecuado para que se muestre en un visualizador de siete segmentos.
2.5.2 Aplicaciones del decodificador
Su funcin principal es la de direccionar espacios de memoria. Un decodificador de N entradas puede direccionar 2 N espacios de memoria. Para poder direccionar 1kb de memoria necesitara 10 bits, ya que la cantidad de salidas seria 2 10 , igual a 1024. De esta manera: Con 20 bits => 2 20 = 1Mb; Con 30 bits => 2 30 = 1Gb, etc. IPN-ESIME Zacatenco Electrnica III
59
2.6 MULTIPLEXORES
En el campo de las telecomunicaciones el multiplexor se utiliza como dispositivo que puede recibir varias entradas y transmitirlas por un medio de transmisin compartido. Para ello lo que hace es dividir el medio de transmisin en mltiples canales, para que varios nodos puedan comunicarse al mismo tiempo. Una seal que est multiplexada debe desmultiplexarse en el otro extremo.
Segn la forma en que se realice esta divisin del medio de transmisin, existen varias clases de multiplexacin:
Multiplexacin por divisin de frecuencia Multiplexacin por divisin de tiempo Multiplexacin por divisin de cdigo Multiplexacin por divisin de longitud de onda
2.6.1 Electrnica digital
Fig. 2.25 Esquema de un multiplexor 2 a 1. Puede ser comparado a un conmutador controlado
En electrnica digital, un multiplexor, es un circuito usado para el control de un flujo de informacin que equivale a un conmutador. En su forma ms bsica se compone de dos entradas de datos (A y B), una salida de datos y una entrada de control. Cuando la entrada de control se pone a 0 lgico, la seal de datos A es conectada a la salida; cuando la entrada de control se pone a 1 lgico, la seal de datos B es la que se conecta a la salida. El multiplexor es una aplicacin particular de los decodificadores, tal que existe una entrada de habilitacin (EN) por cada puerta AND y al final se hace un OR entre todas las salidas de las puertas AND.
La funcin de un multiplexor da lugar a diversas aplicaciones:
SELECTOR DE ENTRADAS. SERIALIZADOR: Convierte datos desde el formato paralelo al formato serie.
Transmisin multiplexada: Utilizando las mismas lneas de conexin, se transmiten diferentes datos de distinta procedencia. Realizacin de funciones lgicas: Utilizando inversores y conectando a 0 1 las entradas segn interese, se consigue disear funciones complejas, de un modo ms compacto que con las tradicionales puertas lgicas. l
60
2.7 CIRCUITOS ARITMETICOS
2.7.1 Introduccin
Los circuitos integrados ms representativos para la realizacin de operaciones aritmticas bsicas tales como la suma y la comparacin. Adicionalmente, se analiza una ALU en circuito integrado con la cual se pueden llevar a cabo una variedad de operaciones de lgica y aritmtica.
La forma ms simple de realizar una operacin aritmtica electrnicamente, es usando un circuito llamado semi-sumado (Haft Adder). Este dispositivo permite que sean aplicados 2 bits de entradas (A,B) para producir dos salidas: uno correspondiente a resultado de la suma (S) y la otra correspondiente a acarreo (C) segn se muestra en la siguiente tabla:
A B S C 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 Tabla de verdad el circuito semi-sumador
Como se puede notar, la salida S es el resultado de una EX-OR entre A y B como entradas: por otro lado C es el resultado de una AND entre las mismas entradas. En la figura 2.26 se muestra el circuito de semi-sumador. Este semi-sumador presenta la limitacin de que no posee uno entrada para el acarreo de la etapa previa, en caso de que desee sumar ms de 2 bits. Se debe recurrir entonces a sumador total b sumador completo (Full Adder). Este tipo de circuito acepta 3 bits de entrada por separado, llamados sumando, consumando y acarreo de entrada A, B y Cin respectivamente, mientras que las salidas son S y Cout.
Fig. 2.26 El semisumador
2.7.2 Sumadores binarios de 4 bits
Las operaciones aritmticas se presentan con tal frecuencia que se han desarrollado un nmero de circuitos integrados especiales para llevarlas a cabo. El 74LS283 es un buen exponente de esta clase de dispositivos, siendo, en esencia, un sumador hexadecimal de 4 bits, Por lo tanto, acepta como entradas dos nmeros de 4 bits de cada uno, A y B, y un bit de acarreo previo, CO. Los 4 bits correspondientes al nmero A se conectan a las entradas A l, A 2 , A 3 y A 4 . Las cuatro entradas del dato B se conecta de manera similar. IPN-ESIME Zacatenco Electrnica III
61
El sumador genera como resultado un nmero de 4 bits correspondientes a la suma de los dos datos, A y B, adems de un bit de acarreo, C4. En la figura 2.27 se muestra la configuracin de pines del 74LS283.
Fig. 2.27 Configuracin de pines del 74lS283
La operacin del circuito integrado puede describirse en forma resumida de la siguiente manera:
Si la suma de los dos datos de entrada ms el acarreo previo arroja un resultado entre O y 15, la suma aparecer en las salidas de suma y el bit de acarreo de salida, C4 se hace igual a cero. Si el resultado de la suma se sita entre 16 y 31, el bit de acarreo C4 se pone en 1 y las salidas correspondientes a los bits de suma se hacen iguales al valor del resultado menos 16. Observe que en el sumador de 4 bits, el bit de acarreo resultante posee un peso binario igual a 16.
Ejemplo:
Suponga entradas a un sumador como el siguiente:
A 4 A 3 A 2 A 1 = 0111 2 (7 16 ) B 4 B 3 B 2 B 1 = 1010 2 (A 16 ) CO = 1
En este caso, la suma de los tres datos de entrada, 0111 + 1010 + 1 resulta ser igual 18. De acuerdo a las reglas anteriores, se produce un bit de acarreo igual 1 y las salidas adoptan un valor de 2 (esto es, 18 menos 16). Por lo tanto, C4 = 1 y 4 3 2 1=0010.
2.7.3 Sumadores en cascada
Es posible implementar sumadores para palabras de tamao superiores a 4 bits si se disponen varios 74LS283 en cascada. Para el efecto, basta simplemente con conectar la salida C4 del sumador de menor peso a la entrada CO del sumador siguente. En la figura N 3 se muestra como se conectaran dos 74LS283 en cascada para con formar l
62
un sumador de 8 bits. Los dos sumadores se muestran recibiendo como datos a dos nmeros binarios de 8 bits cada uno cuyos valores son: A=11001010, B = 11100111, CO=0. El resultado de la operacin, mostrado tambin en la misma figura es 10110001 y C4= 1.+
Fig. 2.28 Configuracin en cascada 74LS283
2.7.4 La operacin de resta con el 74LS283
El mismo circuito integrado descrito anteriormente puede ser utilizado para llevar a la prctica operaciones de resta. Ms an, tanto la suma como la resta son, desde el punto de vista digital, muy similares, por lo cual resulta fcil la implementarla de circuitos digitales que permitan seleccionar una u otra operacin. En la figura N 4 se muestra la forma como podra alambrarse, con la ayuda de 4 compuertas XOR auxiliares, un circuito sumador que permita, segn la posicin de un conmutador de seleccin, ejecutar la suma o la resta de dos datos binarios de 4 bits cada uno.
Fig. 2.29 Configuracin 74LS283 Como restador/sumador de 4 bits unidades de lgica y aritmtica, ALU
Las ALU (Arithmetic Logic Units), o unidades de lgica y aritmtica, son dispositivos muy verstiles que pueden programarse para llevar a cabo una gran variedad de operaciones aritmticas y lgicas entre dos palabras binarias. En la figura N 5 se muestra e! diagrama de pines de 74LS181, una ALU de 4 bits en tecnologa TTL. Como se observa de la figura, el positivo consta de dos grupo lneas de entrada A 3 A 2 A 1 A 0 y B 3 B 2 B 1 B 0 , un grupo lneas neas de salida F 3 F 2 F 1 F 0 , un grupo de lneas selectoras de funcin S 3 S 2 S 1 S 0
IPN-ESIME Zacatenco Electrnica III
63
una lnea selectora de modo M, una entrada de acarreo previo Cn una salida de acarreo resultante Cn+4, una salida de comparacin A=B y dos salidas de expansin P,G.
Fig. 2.30 Configuracin de pines de una ALU 74LS181
Programando adecuadamente las lneas de seleccin, S 3 S 2 S 1 S 0 y la de modo M junto con la de acarreo previo, Cn, Ia ALU puede ejecutar 16 operaciones lgicas y 32 operaciones aritmticas diferentes con los datos A = A 3 A 2 A 1 A 0 B = B 3 B 2 B 1 B 0 .
Estas operaciones, con sus respectivos cdigos de seleccin, se relacionan en la tabla de la figura N 6. Se asume que tanto las entradas como las salidas son activas en alto. Para programar el dispositivo como generador de funciones lgicas, la entrada se- lectora de modo, M, debe estar a nivel alto.
La operacin lgica deseada se programa mediante un cdigo de 4 bits de la forma S3S2SISO aplicado a las entradas selectoras de funcin. El estado de la entrada de acarreo Cn es indiferente por lo cual puede fijarse en cualquier nivel. Por ejemplo, para realizar la operacin lgica A XOR B A=1011 y B= 000l, la lnea M debe estar en 1 lgico y en las lneas S3S2S1S0 debe aplicarse el cdigo 0110.
Cada bit de la palabra de salida F = F 3 F 2 F 1 F 0 es el resultado de la operacin XOR de cada bit de la palabra A con el correspondiente bit de la palabra B. Es decir, P3 =A3 XOR B3, F2 = A2 XOR B2 y as sucesivamente. Por tanto, F = 1010. Para programar la ALU como generadora de funciones aritmticas, la lnea M debe llevarse a nivel bajo con el fin de habilitar los acarreos internos. La suma de A y B, por ejemplo, se realiza cuando el cdigo de las entradas de seleccin es 1001. La entrada de acarreo Cn es activa en bajo.
Si la suma produce un acarreo de salida igual a 1, est tambin ser activo en bajo. La ALU utiliza un sistema interno de generacin de acarreos conocido como carry look ahead (acarreo en adelanto), que no requiere que la suma sea calculada en su totalidad antes de establecer la naturaleza del acarreo resultante. l
64
Fig. 2.31 Tabla de las funciones del 74LS181
2.7.5 La ALU 74LS381
Muchas de las funciones disponibles en la 74LS181 son de poco valor prctico. En respuesta a esto, los fabricantes de ALUs han introducido al mercado el circuito integrado 74LS381, el cual implementa a una ALU un poco ms pequea y sencilla. En la figura N 7 se muestra su configuracin de pines, la asignacin de funciones de cada uno de ellos y su tabla de funciones. Observe que solo se dispone de tres lneas de seleccin y que no existe un pin de seleccin de modo, M, por lo cual este dispositivo solo puede desollarse ocho funciones en total. Estas corresponden a las operaciones aritmticas y lgicas de ms frecuente uso. IPN-ESIME Zacatenco Electrnica III
65
Fig. 2.32 Configuracin de pines, asignacin de funciones y tabla de operacin de una ALU 74LS381
2.7.6 Circuitos de comparacin binaria
Un comparador de magnitud es un circuito lgico, por lo general combinacional, que compara dos palabras binarias e informa, en lneas de salida independientes, cundo la una es mayor, menor o igual que la otra. Un ejemplo clsico de este tipo de circuitos es el 74LS85.
Este dispositivo compara dos cdigos binarios de 4 bits A y B aplicados en paralelo a las entradas A 3 A 2 A 1 A 0 y B 3 B 2 B 1 B 0 respectivamente, e indica en tres lneas de salida activas en alto sus magnitudes relativas. Es decir, cundo A es mayor, menor o igual a B. En la figura N 8 se muestra su configuracin de pines, su diagrama funcional y su tabla de verdad. Especficamente, la salida A>B, pin 5, se activa cuando A es mayor que B, la salida A=B cuando A es igual a B y la salida A<B cuando A es menor que B. Las salidas no activas permanecen en bajo. Por ejemplo, si A= 1101 2 (13 10 ) y B = 0101 2 (5 10 ), se activa la Salida A>B, indicando que 13 10 (A 16 ) es mayor que 5 (B 16 ). l
66
Fig. 2.32 Configuracin de pines, asignacin de funciones y tabla de operacin de 74LS85
El 74LS85 tambin cuenta con tres lneas de entrada adicionales que le permiten conectarse en cascada a unidades similares para comparar nmeros de mayor longitud. Las entradas son A < B, pin 2, A = B, pin 3, y A > B, pin 4. En la figura N 9 se muestra la manera como se conectaran dos de estos. IPN-ESIME Zacatenco Electrnica III
67
Fig. 2.33 74LS85 Conectado en cascada
Dada la importancia de las operaciones aritmticas bsicas en el diseo de circuitos digitales, se ha realizado un recuento de los principales circuitos integrados que las implementan. En particular, se examinaron los sumadores de 4 bits y la forma como pueden conectarse en cascada para aumentar el tamao de los nmeros procesados. Adicional- mente, se demostr el uso de sumadores que con una pequea cantidad de lgica adicional permiten obtener fcilmente la operacin de resta.
Las ALUs, o unidades de lgica y aritmtica, tan interesantes como verstiles, fueron introducidas mediante el anlisis del circuito integrado 74LS181 que las representa bien. Sin embargo, para aplicaciones menos exigentes, se plante la posibilidad de una implementacin alterna a travs de la 74LS381, que aunque menos poderosa que la 181, es mucho ms sencilla de utilizar.
Finalmente, el tema de los circuitos comparadores de magnitud se discuti en algn de talle a travs de la explicacin de la operacin de un comparador de magnitud de 4 bits tpico como es el 74LS85. La disponibilidad de pines de control adicionales en este dispositivo hace posible extender el proceso de comparacin a nmeros binarios de mayor tamao, mediante el artificio de la conexin en cascada de tantos comparadores como sea necesario para alcanzar los objetivos planteados. l
68
2.8 ESTRUCTURA Y FUNCIONAMIENTO GENERAL DE LAS MEMORIAS
La parte de la unidad central de sistema que almacena la informacin en programas y datos, que se va a procesar seguidamente o va a servir de apoyo a las diferentes operaciones que se van a efectuar por la computadora, es la memoria principal.
CELDA X CELDA Y SITUACION INICIAL CELDA X CELDA Y PRIMER CICLO DE RELOJ
Fig. 2.34 En este esquema podemos ver la forma que tiene la memoria de almacenar los cdigos binarios e ir pasndolos de una celda a otra segn los impulsos de reloj
IPN-ESIME Zacatenco Electrnica III
69
2.8.1 Registros
Los registros proporcionan un medio de ayuda a las operaciones realizadas por la unidad de control y la unidad aritmtica y lgica. Permiten almacenar informacin, temporalmente, para facilitar la manipulacin de los datos por parte de la CPU. Los registros se dividen en tres grupos:
Registros de propsito general. Registros de segmento de memoria. Registros de instrucciones.
De los distintos registros que se agrupan en estos anteriores, es conveniente destacar por sus importancias algunas de ellos.
As, el registro puntero de instrucciones o contador de programa (PC), que es uno de los registros de instrucciones, indica el flujo de las instrucciones del proceso en realizacin, apuntando la direccin de memoria en que se encuentra la instruccin a ejecutar.
El registro acumulador es el registro donde se almacenan los resultados obtenidos en las operaciones realizadas por la unidad aritmtica y lgica.
El registro de estado o registro de flags (FL) se utiliza para indicar cambios de estados y condiciones en los otros registros existentes en el sistema informtico; por ello es un registro de instrucciones.
El registro puntero de la pila (SP) es un registro de propsito general que almacena la direccin de la zona de la memoria donde est situada la parte superior de la pila. La pila es una zona de los registros de segmento de memoria que la unidad aritmtica y lgica utiliza para almacenar temporalmente los datos que este manipulando. l
70
2.9 CLASIFICACION DE LAS MEMORIAS
Las memorias se clasifican fsicamente en tres partes:
Soporte de almacenamiento de la informacin Elemento de escritura y lectura Mecanismo de direccionamiento
La parte destinada al almacenamiento de la informacin es generalmente de naturaleza magntica. Est compuesta por pequeos dipolos (elementos de dos polos) que pueden tomar dos estados en los que la informacin toma un valor en cada uno de ellos. Cada uno de estos estados se obtiene por medio de la aplicacin de una seal elctrica exterior generada por el elemento de lectura y escritura.
El elemento de escritura y lectura es un dispositivo que introduce y obtienen la informacin de la memoria. Para escribir, el dispositivo produce una corriente elctrica local que provoca un cambio estable en el campo magntico de la celda de memoria. Para leer, el dispositivo determina el campo magntico de la celda de memoria para saber cul es el valor existente en esa celda de memoria. El mecanismo de direccionamiento puede ser de dos tipos, dependiendo de que las memorias sean estticas o dinmicas. En las memorias estticas el direccionamiento es un cableado directo a la celda de memoria. Sin embargo, en las memorias dinmicas se utiliza una informacin de control almacenada con los datos que configuran el circuito para direccionar la lectura o escritura al lugar donde se almacena la informacin. La memoria se divide en varios niveles con una estructura cuya forma puede recordarnos a una estructura piramidal.
El vrtice de la pirmide seria una pequea cantidad de memoria, los registros, que se caracterizan por una capacidad de almacenamiento de informacin muy pequea, pero que poseen la ventaja de tener un tiempo de acceso muy reducido, inferior a los 10 nanosegundos. La base de esta hipottica pirmide es la memoria principal, donde existe una mayor cantidad de espacio, pero que tiene una desventaja debido a que el tiempo de acceso es muy superior, lo que la convierte en mucho mas lenta que los registros. Entre ambas se situara una zona de memoria que sirve para optimizar los tiempos de acceso a la memoria RAM por mtodos estticos.
Existen dos mtodos distintos de accesos a la memoria:
Acceso por palabras Acceso por bloques
1.- ACCESO POR PALABRAS: Tambin se le denomina acceso aleatorio. La operacin de acceso se realiza sobre una sola palabra de informacin. Reacurdese que la palabra es la cantidad de bits que maneja el sistema informtico al mismo tiempo. Este tipo de acceso nicamente se utiliza con memorias estticas (RAM).
IPN-ESIME Zacatenco Electrnica III
71
2.- ACCESO POR BLOQUES: Es el mtodo de acceso utilizado en las memorias dinmicas. Consiste en empaquetar en un bloque un conjunto de datos al que se aade una cabecera para identificarlo. El acceso se realizara a la cabecera del bloque y una vez en ella se acceder a la informacin que contiene.
Memoria de acceso aleatorio (RAM).- Son memorias en las que se puede leer y escribir informacin. Permiten el acceso a cualquier informacin que contenga con la misma velocidad. Contrasta en ello con las memorias secunciales, por ejemplo una cinta magntica, donde la facilidad de acceso a una informacin est condicionada por el lugar de la cinta donde esta almacenada. l
72
2.10 CONEXIONES DE MEMORIAS
Estructura funcional para un microprocesador
EL MICROPROCESADOR
Circuito Integrado capaz de ejecutar un programa y controlar unidades necesarias para dicha ejecucin.
2.10.1 Evolucin de los CI S
Mayor integracin. La aparcicion del microprocesador, EPROM, EEPROM y DRAM lleva a la microelectronica a los productos de consumo.
C. P. U MEMORIA DE PROGRAMA MEMORIA DE DATOS ENTRADAS Y SALIDAS BUS DE DIRECCIO NES B U S D E C O N T R O L B U S
D E
C O N T R O L
CONEXIONES A CTOS EXTERIORES IPN-ESIME Zacatenco Electrnica III
73
2.10.2 Zona de operaciones
FUNCION: o EJECUTAR OPERACIONES DEL PROGRAMA ELEMENTOS: o UNIDAD LOGICO ARITMETICA (ALU). o REGISTROS CON CUALIDADES ESPECIALES (INCREMENTABLES, DE DESPLAZAMIENTO). o REGISTROS AUXILIARES (DE PROPOSITO GENERAL).
2.10.3 Zona de control
FUNCION o COORDINAR EL FUNCIONAMIENTO DEL CPU ENVIANDO ORDENES A TODOS LOS ELEMENTOS QUE INTERVENGAN ELEMENTOS (BLOQUE SECUENCIAL) o CONTROLADOR INTERNO REGISTRO OPERANDO A ALU REGISTRO OPERANDO B ACUMULADOR B U S
D E D A T O S
I N T E R N O S Entradas de control l
74
o REGISTRO DE ESTATUS (BITS DE ACARREO, SIGNOS, DESBORDAMIENTO, ETC.)
REGISTRO DE INSTRUCCIN
2.10.4 Memoria central
MEMORIA CENTRAL SOLO LECTURA: ROM (READ ONLY MEMORY). CONTENIDO PERMANENTE. PROGRAMABLES (PROM, EPROM, EEPROM). TERMINALES. BUS DE DIRECCIONES. BUS DE DATOS (SOLO SALIDA). HABILITACION CS (CHIP SELECT). MEMORIA DE DATOS LECTURA / ESCRITURA: RAM (RANDOM ACCES). CONTENIDO VOLATIL.
1
2
3 CONTROLADOR INTERNO
N RELOJ STATUS INSTRUCCION SALIDAS IPN-ESIME Zacatenco Electrnica III
75
DINAMICAS: DRAM. TERMINALES. BUS DE DIRECCIONES. BUS DE DATOS (BIDIRECCIONAL). LECTURA / ESCRITURA: R/W (READ / WRITE). HABILITACION CS (CHIP SELECT). 2.10.5 Notas practicas sobre memorias
DISTINCION ENTRE RAM Y ROM. A TRAVES DEL TERMINAL R /W (SOLO EN RAM). A TRAVES DE LOS TERMINALES DE DATOS (EN ROM SOLO SALIDAS). TERMINALES ACTIVO A NIVEL ALTO 1
ACTIVO A NIVEL BAJO 0
CS =
l
76
2.10.6 Dispositivos de entrada y salida e / s
DISPOSITIVOS DE E /S = INTERFAZ = PUERTO FUNCION: Permitir la entrada de datos entre los circuitos externos (perifricos) y los circuitos internos del sistema, sin intervenir en la actividad sncrona de estos (reloj interno). En el puerto de entrada hay latches en el perifrico (opcionalmente).
SEALES INTERNAS DE DATOS SEALES ACCESIBLES DESDE EL EXTERIOR INTERIOR EXTERIOR D 0
D 1 D 2
D 3
D 4
D 6
D 5
D 7
Q 0 Q 1
Q 2
Q 3
Q 4
Q 5
Q 6
Q 7
ORDEN DE CARGA DE REGISTRO HABILITACION IPN-ESIME Zacatenco Electrnica III
77
2.10.7 Operaciones de E / S
ENTRADA DE DATOS = LECTURA DE UNA POSICION DE MEMORIA (DIRECCION). SALIDAD DE DATOS = ESCRITURA EN UNA POSICION DE MEMORIA (DIRECCION). DIRECCIONAMIENTO DE UN PUERTO Las lneas de direcciones son las mismas que se utilizan para acceder a una memoria La direccin que identifica a un perifrico conectado a un puerto depende del fabricante l
78
2.10.8 Lneas de conexin
FUNCION Permitir la conexin de los distintos componentes del sistema microprocesador. Buses de datos, de direccin y de control. BUS DE CONTROL: Lneas diversas (R /W, lneas de interrupciones, peticin DMA, etc.) BUS UNIDIRECCIONAL: DIRECCIONES Y CONTROL DIRECCIONES
LOGICA DE SELECCI ON
PUER TO EXTERIOR A 0
A n
E DATOS INTERIOR IPN-ESIME Zacatenco Electrnica III
79
BUS UNIDIRECCIONAL: DATOS
2.10.9 Lneas compartidas
TRANSMISION POR BUS COMPARTIDO Hay que evitar conflictos o colisiones Control mediante buffers tri estado: Estados: 0 y 1 alta impedancia (Z).
BUS TRANSMISO R 1 TRANSMISO R 2 TRANSMISO R 3 CONECTORES
A
B TRANSMISOR
RECEPTOR
RECEPTOR
TRANSMISOR
A
B TRANSMISOR RECEPTOR l
80
RECEPCION DESDE BUS COMPARTIDO Hay que evitar cargar el bus (fanin - fanout). Solucin mediante buffer o bus driver.
BUFFER BIDIRECCIONAL DATOS CPU: (DI 0 DI 1 ) Y (DO 0 DO 3 ). DATOS PERIFERICO: (DB 0 DB 3 ). CONTROL: SEALES ACTIVAS A NIVEL BAJO. DIEN # CS # FUNCION 0 0 DI>>>DB 1 0 DB >>>DO 0 1 ALTA IMPEDANCIA 1 1 ALTA IMPEDANCIA
BUS TRANSMISOR 1 TRANSMISOR 2 TRANSMISOR 3 CONECTORES IPN-ESIME Zacatenco Electrnica III
81
2.10.10 Mapa de memoria
MARGEN DE MEMORIA DIRECCIONABLE: Por el microprocesador = 2 N LINEAS DE DIRECCION MARGEN DE MEMORIA MEMORIA FISICA MAPA DE MEMORIA: Distribucin de la memoria direccionable por el microprocesador MAPA FUNCIONAL O SOFTWARE: Distribucin funcional de las posiciones de memoria (programas, datos, tablas E / S). MAPA FISICO O HARDWARE: Distribucin fsica de las posiciones de la memoria (RAM, ROM, E / S). 2.10.11 Ejemplo de mapa de memoria
l
82
2.10.12 Direcciones (notacin)
DIRECCIONES DE MEMORIA DECIMAL HEXADECIMAL $ BUS DE DIRECCIONES A 0 : BIT DE MENOR PESO A 15 : BIT DE MAYOR PESO CONVERSION DECIMAL A HEXADECIMAL DIVISIONES SUCESIVAS POR 16 0000 1023 0000 03FF VARIABLES DEL SISTEMA Y STACK PASTILLA N 1 RAM TIPO X 1K X8 1024 2047 0400 07FF DATOS TEMPORALES PASTILLA N 2 RAM TIPO X 1K X8
40960 45055 A000 AFFF ENTRADAS SALIDAS MEMORIA RELACIONADA DIVERSAS PASTILLAS 57344 61439 E000 EFFF TABLAS Y DATOS FIJOS PASTILLA N 3 ROM TIPO Y 4K X8
61440 65535 PASTILLA N 4 ROM TIPO Y 4K X8
PROGRAMA F000 FFFF DECIMAL HEXADECIMAL FUNCIONAL FISICO Z O N A
N O
U T I L I Z A D A IPN-ESIME Zacatenco Electrnica III
83
4 64 16 64 1024 16
( ) ( ) $400 400 1024 16 10 = =
CONVERSION HEXADECIMAL A DECIMAL SISTEMA DE NUMERACION EN BASE 16 AFFF (16) = A x 16 3 + F x 16 2 + Fx 16 1 + F x 16 0
=10 x 16 3 + 15 x 16 2 + 15 x 16 1 + 15 x 16 0
=45055 (10) CONVERSION HEXADECIMAL A BINARIO GRUPOS DE 4 BITS AFFF (16) = 1010 1111 1111 1111 (2)
2.10.13 Implementacin de un mapa de memorias
OBJETIVO: Diseo de un circuito combinacional que active cada pastilla cuando se accede a alguna direccin (bus de direcciones) perteneciente a dicha pastilla. CRITERIO REAL EN EL DISEO SOLUCION MAS ECONOMICA: Que no tiene por que ser la solucin con menos puertas
HILOS DE DIRECCIONES C S 1
C S 2
C S 3
CS 4
C S 4
NOTAS 0 0 0 0 0 0 x x x x x x x x x x 0 1 1 1 1 PASTILLA N 1 0 0 0 0 0 1 x x x x x x x x x x 1 0 1 1 1 PASTILLA N 2 1 0 1 0 x x x x x x x x x x x x 1 1 1 1 1 PASTILLA DE E / S 1 1 1 0 x x x x x x x x x x x x 1 1 0 1 1 PASTILLA N 3 1 1 1 1 x x x x x x x x x x x x 1 1 1 0 1 PASTILLA N 4
SIN OPTIMIZAR ( ) 12 13 14 15 12 13 14 15 4 12 13 14 15 3 10 11 12 13 14 15 2 10 11 12 13 14 15 1 * * * * * * * A A A A CS A A A A CS A A A A CS A A A A A A CS A A A A A A CS A + = = = + + + + + = + + + + + =
l
84
UNIDAD III
ARQUITECTURA GENERAL DE UNA COMPUTADORA IPN-ESIME Zacatenco Electrnica III
85
INTRODUCCIN
Las arquitecturas de las computadoras digitales simples se clasifican en arquitecturas de 0, 1, 2 o 3 direcciones, de acuerdo con los operandos que se utilizan en las operaciones aritmticas y lgicas. En forma general, una operacin aritmtica o Lgica puede definirse como:
Resultado = operando1 operacin operando2
Donde la operacin puede ser cualquier operacin aritmtica o lgica que realice la computadora a nivel de instruccin de mquina. Tpicamente, todas las computadoras digitales efectan operaciones de suma, resta y operaciones lgicas. Algunas computadoras tienen tambin operaciones de multiplicacin y divisin como parte de su repertorio de instrucciones de mquina.
En las arquitecturas de 0 direccin, los operandos se toman siempre de una pila y el resultado de la operacin se deja en la pila. Por tanto, en las instrucciones aritmticas y lgicas de estas mquinas no se especifica ninguna direccin para los operandos ni para el resultado.
En las mquinas que tienen arquitectura de una direccin, uno de los operandos es siempre el registro acumulador y el otro corresponde a un operando en memoria. El resultado se deja en el registro acumulador. Estas mquinas tienen solamente un acumulador y las instrucciones aritmticas y lgicas solamente especifican la direccin en memoria del segundo operando.
Las mquinas que tienen una arquitectura de dos direcciones cuentan con instrucciones aritmticas en las cuales se especifica de dnde se va a tomar cada uno de los dos operandos de la instruccin. El resultado se deja en el lugar de donde se tom el primer operando. Por ejemplo, en una mquina que tenga varios registros acumuladores, se especifica como primer operando uno de estos registros acumuladores y, como segundo operando, direccin de memoria. El resultado se deja en el acumulador de donde alguna se tome el primer operando.
Por ltimo, en las mquinas con arquitectura de tres direcciones, se especifican tanto el lugar de donde se tomarn los operandos como aqul donde se dejara el resultado. Cualquiera de las direcciones corresponde a una direccin de memoria o a un registro del procesador.
Arquitectura bsica
La computadora que se utilizar como ejemplo en esta unidad usa palabras de 8 bits. La memoria est organizada en bytes y puede tener hasta 65,536 bytes, numerados del 0 al 65,535. Para seleccionar cualquier byte de Ia memoria se necesitan 16 bits.
l
86
En Ia figura 3.1 se presenta la arquitectura de Ia mquina utilizada en esta unidad. A continuacin se describen algunas de sus generalidades. IPN-ESIME Zacatenco Electrnica III
87
3.1 DIAGRAMA GENERAL DE UNA COMPUTADORA.
Fig. 3.1 Diagrama general de una computadora
Esta unidad central de procesamiento (CPU) tiene dos buses externos que se conectan a los registros MDR y MAR. El bus conectado al registro MAR es de 16 bits, lo cual permite que Ia memoria tenga como mximo 65,546 palabras. El bus conectado al registro MDR es de 8 bits, que corresponden al tamao de una palabra de memoria.
La mquina tambin cuenta con instrucciones de entrada/salida y puede hacer referencia a 256 direcciones de dispositivos perifricos, comprendidas stas de 0 a 255, para lo cual se usan 8 bits. Sin embargo, el nmero de dispositivos perifricos que se maneja es menor ya que cada dispositivo tpicamente utiliza cuatro direcciones para entrada/salida. l
88
Internamente se tienen varios buses. El BusH es de 8 bits, los cuales corresponden a los ocho bits ms significativos del Bus16. El BusL tambin es de 8 bits y stos corresponden a los ocho bits menos significativos del Bus16.
3.1.1 Registros de la unidad central de proceso
Los registros que contiene su unidad central de procesamiento se describen a continuacin.
Acumulador A (A) El acumulador A (A) es un registro de propsito general de 8 bits que se utiliza para realizar operaciones aritmticas y lgicas.
Acumulador B (B) El acumulador B (B) es un segundo registro de propsito general de 8 bits. Tambin se utiliza para realizar operaciones aritmticas y lgicas.
Registro ndice (X) El registro ndice (X) se utiliza en algunas instrucciones para generar la direccin efectiva del operando. Tiene 16bits.
Registro apuntador a la pila (SP) La funcin del registro apuntador a la pila (SP) es mantener la direccin del siguiente lugar de memoria disponible en la pila. Este registro es de 16bits.
Registro contador de programa (PC) El registro contador de programa (PC) contiene la direccin de la siguiente instruccin a ejecutar. Tiene 16 bits para seleccionar cualquier direccin de memoria.
Registro de instruccin (IR) El registro de instruccin (IR) recibe la instruccin que se ejecutar y tiene 8 bits.
Registro de direccin de memoria (MAR) El registro de direccin de memoria (MAR) contiene la direccin de memoria a la cual se hace referencia durante las operaciones de lectura o escritura a memoria o a la direccin de un dispositivo perifrico, cuando se trata de una operacin de entrada/salida. Tiene 16 bits.
Registro de datos de memoria (MDR) En el registro de datos de memoria (MDR) queda el dato obtenido de la unidad de memoria durante una operacin de lectura a memoria. O bien, queda el dato obtenido de un dispositivo perifrico durante una operacin de entrada. Dicho registro debe contener el dato que se desea guardar en la unidad de memoria durante una operacin de escritura a memoria o, en su caso, el dato a enviar a un perifrico durante una operacin de salida. Este registro tiene 8 bits.
Registro de banderas (FR) El registro de banderas (FR) es de 8 bits y contiene las seis banderas que utiliza esta mquina: I (Interrupt), Z (Zero), N (Negative), C (Carry), H (Hal! carry) y V (Overflow). El formato del registro es11IVCHNZ. Ntese que sus dos bits ms significativos siempre tienen el valor de 1. La bandera I permite interrupciones cuando est encendida y no se permiten interrupciones cuando est apagada. Las dems banderas reflejan el estado de la ltima operacin que se ejecut y las modific. Una bandera que no se haba utilizado anteriormente es el Half Carry. Esta bandera se IPN-ESIME Zacatenco Electrnica III
89
enciende cuando se realiza alguna operacin aritmtica sobre algn acumulador y se genera un acarreo sobre el bit 4. El bit menos significativo es el 0 y el ms significativo es e17. La bandera H se utiliza cuando se realizan operaciones con nmeros en formato BCD, su funcin se detallar ms adelante. En la descripcin de cada instruccin se indica cules banderas se modifican durante su ciclo de ejecucin.
Registro auxiliar (AUX) El registro auxiliar (AUX) contiene 8 bits y es utilizado internamente por el procesador para realizar algunas operaciones. El registro AUX no est disponible para el programador pero s existen micro operaciones que lo utilizan en la ejecucin de las instrucciones.
La unidad aritmtica acta sobre operandos de 8 bits que representan nmeros enteros consigno en representacin de complementos a 2. Es posible realizar operaciones aritmticas sobre operandos dems bits, pero se tiene que realizar mediante la programacin de rutinas que lo efecten.
En ciertas ocasiones, los registros de 16 bytes se representarn en dos partes: los 8 bits ms significativos, que se identificarn con la letra H, y los 8 bits menos significativos, para los cuales se utilizar la letra L. Por ejemplo, el registro ndice (X)se identificar como XH y XL. El registro contador de programa (PC) se denotar como PCH y PCL. Lo mismo se tendr para el apuntador a la pila, SPH y SPL y para el registro de direccin de memoria MARH y MARL. Cuando se haga referencia a todo el registro completo no se usarn las letras H y L. Por ejemplo, X solamente implica XH y XL. l
90
3.2 BUSES
El intercambio de informacin se produce de forma continua entre el procesador y la memoria, para acceder a las instrucciones y realizar las lecturas y escrituras de los datos. De manera adicional, el procesador tambin realiza un intercambio de informacin con el exterior a travs de los dispositivos de E/S y los controladores de DMA acceden a la memoria para intercambiar bloques de datos con algn controlador de forma autnoma.
Toda esta comunicacin entre dispositivos se realiza mediante la transmisin de seales elctricas a travs de cables o de pistas de un circuito impreso. Cada lnea es capaz de transmitir un nivel de tensin, que representa un 'l' un '0' binario. Esta estructura forma lo que se denomina bus, donde adems de las caractersticas elctricas y fsicas tambin se definen un conjunto de protocolos que hacen posible la comunicacin entre los diferentes subsistemas.
Habitualmente los buses estn compartidos por los dispositivos. Es, por tanto, necesaria la implementacin de mecanismos que aseguren que nunca va a haber ms de un dispositivo controlando el estado (el nivel de tensin) de las lneas del bus. Si varios dispositivos tratan de transmitir informacin por el mismo bus en el mismo instante de tiempo, las seales se solaparan producindose un error llamado contencin del bus.
En todas las transferencias siempre existe un elemento emisor, o dispositivo origen, que enva informacin a uno o varios elementos receptores o dispositivos destino.
Todos los elementos conectados a un mismo bus deben ser capaces de interpretar de manera correcta la informacin que se transmite por el bus. Para conseguir que diferentes mdulos de distintos fabricantes puedan interactuar entre ellos sin problemas, todos los buses deben estar estandarizados, cumpliendo una serie de requisitos elctricos (niveles de tensin en el bus), mecnicos (tipos de conectores) y de protocolo (cmo se enva la informacin).
Por otro lado, el principal inconveniente que plantea el uso de buses para la interconexin de los elementos de un computador es que puede convertirse en un cuello de botella que limite las prestaciones del sistema.
Esta situacin se produce si las necesidades que tienen los diferentes elementos conectados a un mismo bus (CPU, memoria y E/S) de transferir informacin, supera la capacidad de transferencia, producindose mltiples estados de espera que degradan el rendimiento del sistema. La mxima velocidad en las comunicaciones vendr dada por el ancho de banda del bus que indica la cantidad de datos que se pueden transferir por unidad de tiempo (habitualmente en bytes/s). Si la velocidad del bus no es suficiente para evitar la degradacin del rendimiento, se puede aumentar el nmero de buses del sistema construyendo una jerarqua que permita realizar transferencias simultneas.
3.2.1 Caractersticas de un bus IPN-ESIME Zacatenco Electrnica III
91
Las caractersticas bsicas que define el estndar del bus son el nivel fsico, nmero y funcin de las lneas elctricas y el modo de operacin.
3.2.1.1 Nivel fsico
La primera propiedad de los buses es el soporte fsico que utiliza. Dentro de la estructura jerrquica de los buses que tiene un sistema informtico, hay buses que conectan dispositivos rpidos cuyas lneas son de reducida longitud y estn formadas por pistas del circuito impreso. Estas lneas conectan directamente pines de los circuitos integrados, ya sean del procesador, la memoria o de algn controlador. En contraposicin, los buses que enlazan externamente con los chips perifricos se componen a menudo de mltiples hilos, recogidos en mangueras o en los denominados cables planos. En una zona intermedia se sitan los buses de expansin que conectan diferentes placas de circuitos impresos. En estos casos se dispone de un circuito impreso especial que contiene las lneas del bus y diversos conectores dispuestos de forma regular.
A estos conectores se les denomina ranuras o slots. Los circuitos impresos normalmente se colocan sobre una estructura metlica con guas que permite la insercin de otras tarjetas y la colocacin de fuentes de alimentacin. La estructura recibe el nombre de rack y todas las tarjetas conectadas a la misma estructura comparten el mismo bus. Cada uno de los componentes del sistema ocupa una o varias ranuras de esta estructura. Para que todas las tarjetas sean compatibles, el estndar del bus debe definir perfectamente la forma y el tamao de los conectores, tanto de las ranuras como de las placas que se introducen en la estructura.
La longitud de las lneas de un bus y el nmero de dispositivos que se conectan a l est limitado. En funcin de los valores de estos parmetros el dispositivo que fija el estado de las lneas debe suministrar ms o menos corriente al bus. Para poder conectar cualquier dispositivo se utilizan circuitos integrados especiales llamados drivers de bus que convierten las seales elctricas locales de los integrados en seales adecuadas al estndar del bus. Estos integrados suministran la suficiente intensidad de corriente para que la seal se reciba correctamente en el otro extremo.
Tambin se caracterizan por consumir poca corriente de entrada y tener mrgenes de tensin apropiados para evitar el ruido cuando actan como receptores. Un ejemplo es la familia BTL (Backplane Transceiver Logic) que utiliza niveles de tensin entre 1'9 y 2'1 voltios para transmitir un Ilgico y entre 0'75 y l' 10 voltios para el 0 lgico.
La longitud de las pistas individuales que forman un bus en un circuito impreso puede no ser la misma. Este hecho no tiene importancia para bajas frecuencias, pero llega a ser un factor crtico a medida que aumenta la frecuencia de funcionamiento del sistema. Las pequeas diferencias en la longitud de las pistas provocan pequeas diferencias temporales de propagacin de la seal. Este retraso de las seales se denomina skew y puede producir la prdida de sincronizacin entre varios dispositivos. Este problema es especialmente crtico en la seal de reloj y para evitarlo se incluyen drivers especiales, l
92
que generan la misma seal de reloj pero con diferentes retrasos para que llegue al mismo tiempo a todos los dispositivos.
Por ltimo, tambin es necesario especificar los niveles de tensin que acepta el bus y los tipos de salida de los drivers de bus. Esta especificacin es necesaria, para que los dispositivos conectados no interfieran elctricamente sobre el nivel de tensin de las seales del bus, nicamente aquel que posea permiso en un determinado instante debe controlar el nivel elctrico de las seales. Esto se consigue utilizando los siguientes tipos de salida en los drivers de bus:
1. Totem-Pole: Es el tipo de salida que siempre est activa, tomando corriente cuando est a nivel bajo y suministrando corriente en el caso contrario. Se utilizan para las seales que slo tienen conectado un driver por lnea como son: las seales de interrupcin o de arbitraje encadenadas daisy chan que se describirn a continuacin.
2. OC (Colector Abierto): El driver toma corriente cuando est a nivel bajo, pero no suministra cuando est a nivel alto. Debe incluirse en la lnea una resistencia de pull-up para conseguir el estado alto definido cuando ningn driver est activo. Como el estado de la lnea cambia cuando uno o ms drivers se activan (enviando un nivel bajo) se dice que implementa una or-cableada. Se utilizan para seales que pueden ser activadas por varios dispositivos a la vez (lneas de peticin de interrupciones o de peticin de bus). Estas puertas se usaron mucho en buses antiguos, pero debido a su alto consumo de corriente es preferible usar puertas triestado.
3. TS (Triestado): Funcionan de forma similar a las totem-pole, pero se diferencian en que se pueden desactivar pasando la lnea a un estado de alta impedancia. Para ello tienen un transistor que habilita o deshabilita la salida, dependiendo del estado de una entrada de control. Se utilizan para lneas que pueden ser activadas en varios puntos diferentes del bus (lneas de direcciones o de datos) pero nunca simultneamente.
3.2.1.2 Lneas
Una de las propiedades que describe el estndar es el nmero de lneas elctricas que posee el bus, que pueden ser desde solamente dos hasta a varios cientos. Cada una de las lneas tiene asignada una funcin o un significado en particular y en general se pueden agrupar en los siguientes cuatro tipos de lneas:
1. Alimentacin: +12 V, +5 V, + 3 V Y tierra (GND).
2. Datos: Llevan informacin (pueden ser instrucciones, datos o paridad) entre los mdulos del sistema. El nmero de lneas representa el ancho del bus de datos y por tanto define la cantidad de informacin que se puede transmitir en paralelo en un instante de tiempo determinado, influyendo enormemente en el rendimiento del sistema.
IPN-ESIME Zacatenco Electrnica III
93
3. Direcciones: Se utilizan para designar el origen o el destino de los datos que hay en el bus. Sirven para habilitar dispositivos o posiciones de memoria y su anchura (nmero de lneas) determina la mxima capacidad de memoria fsica del sistema.
4. Control: Transmiten informacin sobre el tipo de ciclo que est teniendo lugar (lectura, escritura...), informacin de sincronizacin (informacin temporal que indica la validez de la informacin en las lneas del bus),interrupciones y seales de arbitraje. Entre las distintas lneas de control tpicas estn:
Escritura y lectura de memoria. Escritura y lectura de E/S. Reconocimiento de una transferencia. Peticin y concesin de bus. Peticin y reconocimiento de interrupcin. Reloj. Reset.
Existen buses donde las mismas lneas fsicas se utilizan para llevar informacin tanto de datos como de direcciones. El ciclo de bus se divide en dos, en primer lugar se envan las direcciones y se validan.
A continuacin, por las mismas lneas se envan o se leen los datos dependiendo del tipo de ciclo. A los buses que presentan esta caracterstica se les denomina buses multiplexados y tienen la ventaja de utilizar menos lneas, lo que abarata su coste. Como desventaja se tiene que el control del bus es ms complejo.
3.2.1.3 Modo de operacin
El estndar tambin regula el modo de operacin del bus que indica la forma en la que se realiza una transferencia, incluyendo protocolo, ordenacin y temporizacin de las seales. Se distingue entre buses sncronos, donde todas las acciones se realizan en instantes de tiempo determinados en funcin de la seal de reloj perteneciente al bus, y asncronos, que utilizan seales de control para indicar la realizacin de determinadas acciones.
Dentro de los elementos conectados se pueden diferenciar los maestros y los esclavos de bus. Un dispositivo maestro es aquel capaz de iniciar una transferencia de datos en el bus, mientras que un esclavo slo puede enviar datos como respuesta a una peticin de un maestro. Hay buses en los que se permite la existencia de varios maestros de bus. Como dichos dispositivos se conectan en cualquier instante de tiempo, para evitar la contencin del bus, slo uno de ellos puede estar seleccionado en cada momento.
3.2.2 Jerarqua de buses
Por regla general cada uno de los dispositivos conectados a un bus tendr una determinada velocidad de funcionamiento. Tambin es habitual que la necesidad de ancho de banda en las transferencias que realiza cada dispositivo sea diferente. Dado l
94
que la incorporacin de elementos lentos puede retrasar las transferencias de los elementos ms rpidos, necesitados de mayor ancho de banda, los dispositivos dentro de un computador se suelen agrupar por sus velocidades y necesidades de ancho de banda. Los dispositivos dentro de un grupo comparten un mismo bus y el conjunto de todos los buses forman una jerarqua dentro del sistema. Con la separacin de los buses se consigue reducir los retrasos de las seales, al reducir la capacidad de las lneas debida a la conexin de mltiples elementos. Tambin se reduce el riesgo de que el bus pueda llegar a constituirse como un cuello de botella del sistema si la demanda de transferencia de datos alcanza el ancho de banda mximo del bus. Un esquema de la jerarqua de buses se muestra en la figura 3.2. Normalmente en una jerarqua de buses se encuentran los siguientes niveles:
. Bus del procesador: Se utiliza para conectar el procesador a la cache o a una serie de dispositivos muy especficos y rpidos. Tiene poca longitud y alta velocidad, y utilizan las propias seales del procesador, por lo que son especficos para cada sistema.
. Bus local: A medida que se incrementa la velocidad de los dispositivos de E/S, sobre todo los terminales de vdeo, se necesita un bus de alta velocidad estrechamente ligado al sistema para permitir transferencias a gran velocidad. Este bus es independiente del procesador, por lo que diferentes sistemas con procesadores distintos pueden usar las mismas especificaciones. Si el sistema de memoria est conectado a este bus tambin se le puede denominar bus de memoria.
. Bus de expansin: Conecta los controladores de E/S ms lentos con el procesador. A este bus se conectan muchos dispositivos, por lo que suele tener un ancho de banda variable. Normalmente suelen estar estandarizados para que se puedan acoplar mltiples dispositivos distintos. A esta clase de buses tambin se les denomina buses de E/S.
. Bus del sistema: Conecta las diferentes tarjetas procesadoras y perifricas que forman un mismo sistema. Habitualmente un computador personal se caracteriza por estar compuesto de una placa base donde se dispone de ranuras de expansin para conectar perifricos. Estos sistemas tienen una flexibilidad limitada y no son fciles de expandir. Otros sistemas ms complejos (como multiprocesadores) estn compuestos por mltiples tarjetas que se conectan entre s mediante un bus nico, el bus de sistema. Estos sistemas son ms flexibles y escalables y pueden estar compuestos por tarjetas de distintos tipos y de diferentes fabricantes.
IPN-ESIME Zacatenco Electrnica III
95
Fig. 3.2 Esquema de la jerarqua de buses
MICROCONTROLADOR
l
96
Clasificacin Tamao de datos:
4 bits 8 bits 16 bits 32 bits 64 bits
Segn la arquitectura interna:
IPN-ESIME Zacatenco Electrnica III
97
Segn la arquitectura del procesador:
CISC (Complex Instruction Set Computer)->>64 instrucciones RISC (Reduced Instruction Set computer)< ->33 Instrucciones SISC (Specific Instruction Set Computer )<<- 33 Instrucciones
Segn las unidades vendidas:
Nota: el PC siempre tiene la direccin de la instruccin a ejecutar
98
3.3 ARQUITECTURA INTERNA DE LA UNIDAD MICROPOCESADORA.
3.3.1 Que es un microprocesador
El microprocesador es la parte de la computadora diseada para llevar acabo o ejecutar los programas. Este viene siendo el cerebro de la computadora, el motor, el corazn de esta mquina. Este ejecuta instrucciones que se le dan a la computadora a muy bajo nivel haciendo operaciones lgicas simples, como sumar, restar, multiplicar y dividir. El microprocesador, o simplemente el micro, es el cerebro del ordenador. Es un chip, un tipo de componente electrnico en cuyo interior existen miles (o millones) de elementos llamados transistores, cuya combinacin permite realizar el trabajo que tenga encomendado el chip.
3.3.2 Arquitectura del microprocesador
El microprocesador tiene una arquitectura parecida a la computadora digital. En otras palabras, el microprocesador es como la computadora digital porque ambos realizan clculos bajo un programa de control. Consiguientemente, la historia de la computadora digital nos ayudar a entender el microprocesador.
El microprocesador hizo posible la manufactura de poderosas calculadoras y de muchos otros productos. El microprocesador utiliza el mismo tipo de lgica que es usado en la unidad procesadora central (CPU) de una computadora digital. El microprocesador es algunas veces llamado unidad microprocesadora (MPU). En otras palabras, el microprocesador es una unidad procesadora de datos.
En un microprocesador podemos diferenciar diversas partes:
1. El encapsulado: es lo que rodea a la oblea de silicio en s, para darle consistencia, impedir su deterioro (por ejemplo, por oxidacin por el aire) y permitir el enlace con los conectores externos que lo acoplaran a su zcalo a su placa base.
2. La memoria cache: es una memoria ultrarrpida que emplea el micro para tener a mano ciertos datos que prediciblemente sern utilizados en las siguientes operaciones sin tener que acudir a la memoria RAM reduciendo el tiempo de espera. Por ejemplo: en una biblioteca, en lugar de estar buscando cierto libro a travs de un banco de ficheros de papel se utiliza las computadora, y gracias a la memoria cache, obtiene de manera rpida la informacin. Todos los micros compatibles con PC poseen la llamada cache interna de primer nivel o L1; es decir, la que est ms cerca del micro, tanto que est encapsulada junto a l. Los micros ms modernos (Pentium III Coppermine, Athlon Thunderbird, etc.) incluyen tambin en su interior otro nivel de cach, ms grande aunque algo menos rpida, la cach de segundo nivel o L2.
IPN-ESIME Zacatenco Electrnica III
99
3. Coprocesador Matemtico: o correctamente la FPU (Unidad de coma flotante). Que es la parte del micro especializada en esa clase de clculos matemticos, antiguamente estaba en el exterior del micro en otro chip. Esta parte est considerada como una parte "lgica" junto con los registros, la unidad de control, memoria y bus de datos.
4. Los registros: son bsicamente un tipo de memoria pequea con fines especiales que el micro tiene disponible para algunos usos particulares. Hay varios grupos de registros en cada procesador. Un grupo de registros est diseado para control del programador y hay otros que no son diseados para ser controlados por el procesador pero que CPU los utiliza en algunas operaciones en total son treinta y dos registros.
5. La memoria: es el lugar donde el procesador encuentra sus instrucciones de programa y sus datos. Tanto los datos como las instrucciones estn almacenados en memoria, y el procesador los toma de ah. La memoria es una parte interna de la computadora y su funcin esencial es proporcionar un espacio de trabajo para el procesador.
6. Puertos: es la manera en que el procesador se comunica con el mundo externo. Un puerto es parecido a una lnea de telfono. Cualquier parte de la circuitera de la computadora con la cual el procesador necesita comunicarse, tiene asignado un nmero de puerto que el procesador utiliza como un nmero de telfono para llamar al circuito o a partes especiales.
Existen caractersticas fundamentales que son esenciales para identificar un microprocesador, a parte del nombre que se le dan y marca o compaa por la que fue fabricada. Los cuales son:
Su ancho de bus (medido en bits).
La velocidad con que trabajan (medida en hertzios): existen dos tipo de velocidades de los micros hoy en da, velocidad interna la velocidad a la que funciona el micro internamente (200, 333, 450... MHz); y velocidad externa o del bus o tambin "velocidad del FSB"; la velocidad a la que se comunican el micro y la placa base, para poder abaratar el precio de sta. Tpicamente, 33, 60, 66, 100 133 MHz.
100
3.4 MODELO DE PROGRAMACION
3.4.1 Lenguaje ensamblador El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas informticos, y constituye la representacin ms directa del cdigo mquina especfico para cada arquitectura de computadoras legible por un programador.
Fue usado ampliamente en el pasado para el desarrollo de software, pero actualmente slo se utiliza en contadas ocasiones, especialmente cuando se requiere la manipulacin directa del hardware o se pretenden rendimientos inusuales de los equipos. 3.4.2 Caractersticas Programar en lenguaje ensamblador es difcil de aprender, entender, leer, escribir, depurar y mantener, por eso surgi la necesidad de los lenguajes compilados.
A pesar de perder rendimiento en un proceso de compilacin, en la actualidad la mayora de las computadoras son suficientemente rpidas.
El lenguaje ensamblador no es portable.
Programar en lenguaje ensamblador lleva mucho tiempo.
Los programas hechos en lenguaje ensamblador son generalmente ms rpidos. Al programar cuidadosamente en lenguaje ensamblador se pueden crear programas de 5 a 100 veces ms rpidos que con lenguajes de alto nivel.
Los programas hechos en lenguaje ensamblador generalmente ocupan menos espacio. Un buen programa en lenguaje ensamblador puede ocupar casi la mitad de espacio que su contrapartida en lenguaje de alto nivel.
Con el lenguaje ensamblador se pueden crear segmentos de cdigo imposibles de formar en un lenguaje de alto nivel.
Un ensamblador crea cdigo objeto traduciendo instrucciones mnemnicas a cdigos operativos e interpretando los nombres simblicos para direcciones de memoria y otras entidades. El uso de referencias simblicas es una caracterstica bsica de los ensambladores, evitando tediosos clculos y direccionamiento manual despus de cada modificacin del programa. La mayora de los ensambladores tambin incluyen facilidades para crear macros, a fin de generar series de instrucciones cortas que se ejecutan en tiempo real, en lugar de utilizar subrutinas.
Los ensambladores son por lo general ms fciles de programar que los compiladores de lenguajes de alto nivel, y han estado disponibles desde la dcada de 1950. Los IPN-ESIME Zacatenco Electrnica III
101
ensambladores modernos, especialmente para arquitecturas basadas en RISC, como por ejemplo MIPS, SPARC y PA-RISC optimizan las instrucciones para explotar al mximo la eficiencia de segmentacin del CPU.
3.4.3 Lenguaje
Un programa escrito en lenguaje ensamblador consiste en una serie de instrucciones que corresponden al flujo de rdenes ejecutables que pueden ser cargadas en la memoria de una computadora. Por ejemplo, un procesador x86 puede ejecutar la siguiente instruccin binaria como se expresa en cdigo de mquina: Binario: 10110000 01100001 (Hexadecimal: 0xb061) La representacin equivalente en lenguaje ensamblador es ms fcil de recordar: MOV al, 061h Esta instruccin significa: Asigna el valor hexadecimal 61 (97 decimal) al registro "al". El mnemnico "mov" es un cdigo de operacin u "opcode", elegido por los diseadores de la coleccin de instrucciones para abreviar "move" (mover, pero en el sentido de copiar valores de un sitio a otro). El opcode es seguido por una lista de argumentos o parmetros, completando una instruccin de ensamblador tpica.
La transformacin del lenguaje ensamblador en cdigo mquina la realiza un programa ensamblador, y la traduccin inversa la puede efectuar un desensamblador. A diferencia de los lenguajes de alto nivel, aqu hay usualmente una correspondencia 1 a 1 entre las instrucciones simples del ensamblador y el lenguaje de mquina. Sin embargo, en algunos casos, un ensamblador puede proveer "pseudo instrucciones" que se expanden en un cdigo de mquina ms extenso a fin de proveer la funcionalidad necesaria. Por ejemplo, para un cdigo mquina condicional como "si X mayor o igual que, un ensamblador puede utilizar una pseudoinstruccin al grupo "haga si menor que, y "si = 0" sobre el resultado de la condicin anterior. Los ensambladores ms completos tambin proveen un rico lenguaje de macros que se utiliza para generar cdigo ms complejo y secuencias de datos.
Cada arquitectura de computadoras tiene su propio lenguaje de mquina, y en consecuencia su propio lenguaje ensamblador. Los ordenadores difieren en el tipo y nmero de operaciones que soportan; tambin pueden tener diferente cantidad de registros, y distinta representacin de los tipos de datos en memoria. Aunque la mayora de las computadoras son capaces de cumplir esencialmente las mismas funciones, la forma en que lo hacen difiere y los respectivos lenguajes ensamblador reflejan tal diferencia.
102
Pueden existir mltiples conjuntos de mnemnicos o sintxis de lenguaje ensamblador para un mismo conjunto de instrucciones, instanciados tpicamente en diferentes programas ensamblador. En estos casos, la alternativa ms popular es la provista por los fabricantes, y usada en los manuales del programa.
3.4.4 Cdigo mquina El cdigo mquina, o lenguaje de mquina, est formado por instrucciones sencillas, que -dependiendo de la estructura del procesador- pueden especificar: Registros especficos para operaciones aritmticas, direccionamiento o control de funciones. Posiciones de memoria especficas (offset). Modos de direccionamiento usados para interpretar operandos. Las operaciones ms complejas se realizan combinando estas instrucciones sencillas, que pueden ser ejecutadas secuencialmente o mediante instrucciones de control de flujo. Las operaciones disponibles en la mayora de los conjuntos de instrucciones incluye: Mover o llenar un registro con un valor constante o mover datos de una posicin de memoria a un registro o viceversa o escribir y leer datos de dispositivos Computar o sumar, restar, multiplicar o dividir los valores de dos registros, colocando el resultado en uno de ellos o en otro registro o realizar operaciones binarias, incluyendo operaciones lgicas (AND/OR/XOR/NOT). o comparar valores entre registros (mayor, menor, igual) Afectar el flujo del programa o saltar a otra posicin en el programa y ejecutar instrucciones all. o saltar si se cumplen ciertas condiciones (IF). o saltar a otra posicin, pero guardar el punto de salida para retornar (CALL, llamada a subrutinas). Algunas computadoras incluyen instrucciones complejas dentro de sus capacidades. Una sola instruccin compleja hace lo mismo que en otras computadoras puede requerir una larga serie de instrucciones, por ejemplo: salvar varios registros en la pila de una sola vez mover grandes bloques de memoria operaciones aritmticas complejas o de punto flotante (seno, coseno, raz cuadrada) IPN-ESIME Zacatenco Electrnica III
103
El nivel de lenguaje ensamblador tiene aspectos importantes de los niveles de micro arquitectura, en los cuales se encuentra (ISA y sistema operativo) estos dos se utilizan para la traduccin en lugar de la interpretacin. Algunas caractersticas del lenguaje se describen a continuacin Los programas que sirven para traducir algn programa para el usuario se llama traductores, el lenguaje en que est escrito el programa original se llama lenguaje fuente, el lenguaje original que sea modificado se llama lenguaje objeto. Se usa la traduccin cuando se cuenta con un procesador (ya sea hardware o un intrprete) para el lenguaje objeto pero no para el lenguaje fuente, Si la traduccin se realiza correctamente, la ejecucin del programa traducido dar exactamente los mismos resultados que habra dado la ejecucin del programa fuente. Hay dos diferencias entre traduccin e interpretacin, en la traduccin no se ejecuta directamente el programa original, en el lenguaje fuente se convierte en un programa equivalente llamado programa objeto o programa binario ejecutable y este funciona solo cuando se ha acabado la traduccin. El cdigo mquina, un simple patrn de bits, es hecho legible reemplazando valores crudos por smbolos denominados mnemnicos. Se invent para facilitar la tarea de los primeros programadores que hasta ese momento tenan que escribir directamente en cdigo binario. Inicialmente el cdigo de ceros y unos (el programa) deba introducirse en una tarjeta perforada. La posicin ocupada por cada punto equivala a un "1" o a un "0" segn hubiera o no una perforacin. Lo cual supona una forma casi idntica en la que hoy se escriben los datos binaros en soportes tales como los CDs y DVDs. Mientras que una computadora reconoce la instruccin de mquina IA-32 10110000 01100001 para los programadores de microprocesadores x86 es mucho ms fcil reconocer dicha instruccin empleando lenguaje ensamblador : movb 0x61,%al (Que significa mover el valor hexadecimal 61 (97 decimal) al registro 'al'). Cada instruccin de la mquina se transforma en una nica instruccin en cdigo simblico. Pero adems, para mejorar la legibilidad del programa, el cdigo simblico introduce instrucciones adicionales, que no corresponden a ninguna instruccin de la mquina y que proporcionan informacin. Se llaman "pseudoinstrucciones". El cdigo simblico puede parecer de difcil acceso, pero es ms fcil de recordar e interpretar que el binario o el hexadecimal. Los lenguajes simblicos no resuelven definitivamente el problema de cmo programar un ordenador de la manera ms sencilla posible. Para utilizarlos, hay que conocer a
104
fondo el microprocesador, los registros de trabajo de que dispone, la estructura de la memoria, y muchas cosas ms. Adems, el lenguaje ensamblador est muy ligado al microprocesador para que sea posible escribir programas independientes de la mquina en que van a ejecutarse.
Este cdigo simblico no puede ser ejecutado directamente por un ordenador, por lo que es preciso traducirlo previamente. Pero la traduccin es un proceso mecnico y repetitivo, que se presta a su realizacin por un programa de ordenador.
Los programas que traducen cdigo simblico al lenguaje de mquina se llaman ensambladores ("assembler", en ingls), porque son capaces de ensamblar el programa traducido a partir de varias piezas, procedimientos o subrutinas a cdigo binario ("1" y "0") que entiende el procesador. IPN-ESIME Zacatenco Electrnica III
105
UNIDAD IV
PROGRAMACIN BSICA DE LA UNIDAD MICROCONTROLADORA
106
4.1 MODOS DE DIRECCIONAMIENTO
Se les llama modos de direccionamiento a las distintas formas de combinar los operandos segn el acceso que se hace a memoria. Dicho de otra manera, un modo de direccionamiento ser una forma de parmetro para las instrucciones. Una instruccin que lleve un parmetro, por lo tanto, usar un modo de direccionamiento, que depender de cmo direccionar (accesar) al parmetro; una instruccin de dos parmetros, combinar dos modos de direccionamiento.
4.1.1 Cuntos modos de direccionamiento existen?
Hay infinidad de formas de calcular la direccin de un operando. Cada procesador implementa un subconjunto de formas posibles. Tanto los operandos involucrados en el clculo como las diferentes formas de calcular esta direccin estn todos codificados en la instruccin. Cuanto ms compleja sea la tarea de clculo de la direccin efectiva, o ms operandos incluya, ms compleja ser la decodificacin y ejecucin de la instruccin.
DIRECCIONAMIENTO IMPLCITO
Depende solamente de la instruccin, es decir, la instruccin no lleva parmetros. Particularmente en instrucciones que no accesan memoria, o bien que tienen una forma especfica de accesarla.
Ejemplos: PUSHF, POPF, NOP
MODO REGISTRO
Usa solamente registros como operandos. Es el ms rpido, pues minimiza los recursos necesarios (toda la informacin fluye dentro del EU del CPU)
Ejemplo: MOV AX, BX
MODO INMEDIATO
Tiene dos operandos: un registro y una constante que se usa por su valor. El valor constante no se tiene que buscar en memoria, pues ya se obtuvo al hacer el fetch de la instruccin. Por tanto, es rpido aunque no tanto como el modo registro; requiere ir al BIU por el dato.
Ejemplo: MOV AH, 9
MODO DIRECTO
IPN-ESIME Zacatenco Electrnica III
107
Uno de los operandos involucra una localidad especfica de memoria. El valor constante se tiene que buscar en memoria, en la localidad especificada. Es ms lento que los anteriores, pero es el ms rpido para ir a memoria, pues ya sabe la localidad, la toma de la instruccin y no la tiene que calcular.
Ejemplos: MOV AH, [0000], MOV AH, Variable
Estas dos instrucciones seran equivalentes, si Variable est, por ejemplo, en la localidad 0 de memoria. En la forma primitiva del lenguaje de mquina, como el primer ejemplo, se tiene que indicar mover a AH el contenido (indicado por los corchetes), de la localidad 0 de los datos (lo de los datos es implcito). El lenguaje Ensamblador, sin embargo, nos permite la abstraccin del uso de variables, pero como una variable tiene una localidad determinada en memoria, para el procesador funciona igual. La nica diferencia consiste en que el programador no tiene que preocuparse por la direccin, ese manejo lo hace automticamente el Ensamblador.
MODO INDIRECTO
Se usan los registros SI, DI como apuntadores. El operando indica una localidad de memoria, cuya direccin (slo la parte desplazamiento) est en SI o DI. Es ms lento que los anteriores, pues tiene que calcular la localidad
Ejemplos: MOV AL, [SI]
MOV BL, ES: [SI]
Aqu se dice que se usa un segment override, donde se indica que en vez de usar el segmento de datos por defecto, se use en su lugar como referencia el segmento extra.
MODO INDEXADO DE BASE
Formato: [ BX o BP + SI o DI (opcionales) + constante (opcional) ]
BX o BP indica una localidad base de la memoria
A partir de BX o BP, se puede tener un desplazamiento variable y uno constante. La diferencia es el segmento sobre el que trabajan por defecto:
BX por defecto en el segmento de datos BP por defecto en el segmento de pila.
Existen dos espacios posibles de direcciones de operandos:
DIRECCIN DE REGISTRO: Para aquellos operandos que estn almacenados en registro. DIRECCIN DE MEMORIA: Para aquellos operandos que estn almacenados en memoria. Nos referiremos a los diferentes campos de la instruccin como CI 1 , CI 2 , etc. La expresin (CI 1 ) significa el contenido del campo CI 1 de la instruccin, o lo que es lo mismo, el nmero codificado en dicho campo. La expresin (R i ), donde R i es el nombre de un registro, significa el contenido del registro. La expresin dato! R significa que se carga en el registro R el dato dato.
MODO REGISTRO
Los registros pueden almacenar operandos. La direccin de registro es diferente a la direccin de memoria.
o Las operaciones deben de obtener sus operados, ya sea de los registros o de la memoria.
o Para acceder a estos operndos se precisa especificar un modo de obtenerlos.
o Los procesadores permiten especificar la posicin de un operando de mltiples maneras.
o Modo de Direccionamiento:
o Dado uno o varios campos de la instruccin, calcular la direccin efectiva de un operando.
o La Direccin Efectiva no tiene por que ser una direccin en memoria.
4.1.2 Resumen de modos de direccionamiento
REGISTRO: Operando en registro de = (ci).
REGISTRO INDIRECTO: Operando en direccin de memoria en registro de = ((ci)). IPN-ESIME Zacatenco Electrnica III
109
AUTOINCREMENTO: Como el Registro indirecto, pero el registro se incrementa despus de ser usado de = ((ci)); (Ri)+ {1, 2, 4} ! Ri, donde Ri es el registro codificado en el campo ci.
AUTODECREMENTO: Como el Registro indirecto, pero el registro se decremento antes de ser usado. de = (Ri) {1, 2, 4}; ((ci)) {1, 2, 4} ! Ri, donde Ri es el registro codificado en el campo ci.
ABSOLUTO: La direccin est codificada en la propia instruccin de = (ci).
MODO BASE + INDICE ESCALADO + DESPLAMIENTO: La direccin se puede codificar hasta con cuatro operandos, permitindose todas las combinaciones (ndice y escala se tratan como un parmetro) de = (Registro Base) + [(Registro ndice) _ Escala] + Desplazamiento
110
4.2 HERRAMIENTAS DE PROGRAMACIN
Entre otras herramientas de programacin encontramos libreras y componentes, dados por algunos lenguajes de programacin como son el C++ y delphi. Otras herramientas de programacin son los lenguajes de programacin, que nos permiten crear rutinas, programas y utilitarios. Entre algunas de estas herramientas de programacin tenemos:
o BASIC Y PASCAL: Que son herramientas de programacin, idneas para la inicializacin de los programadores. o C y C++: Que sirven para la programacin de sistemas. o COBOL: Que es una herramienta de programacin orientada hacia sistemas de gestin empresarial como nominas y contabilidad. o FORTRAN: Que son lenguajes especficos para clculos matemticos y/o numricos. Herramientas de programacin para ambientes grficos como son Visual Basic, Delphi y Visual C. Html y Java, que permiten la creacin de paginas Web para Internet. ALGORITMO
o Mtodo que permite la resolucin de un problema en forma secuencial y ordenada.
o Conjunto de procesos debidamente ordenados y concatenados que permite resolver un problema de computadora.
o Conjunto de tcnicas y procedimientos debidamente organizados que posibilita la representacin ordenada de los procesos que se siguen para resolver un problema. LENGUAJES DE PROGRAMACIN
IPN-ESIME Zacatenco Electrnica III
111
TRADUCTORES DE LENGUAJE
DATOS
CLASIFICACIN
INTERPRETES COMPILADORES
TIPOS ALTO NIVEL BAJO NIVEL LENGUAJE ENSAMBLADOR
LENGUAJE MQUINA
112
EXPRESIONES ARITMTICAS
Operador Significado Tipo de op Resultado _,**,^ Potencia Entero o real Entero o real + Suma Entero o real Entero o real - Resta Entero o real Entero o real * Multiplicacin Entero o real Entero o real / Divisin Real Real DIV Divisin Entera Entero Entero MOD Divisin Entera Entero Entero
EXPRESIONES BOOLEANAS DE RELACIN
OPERADOR RESULTADO > Mayor que < Menor que = Igual que Mayor o igual que Menor o igual que <> Diferente
EXPRESIONES BOOLEANAS LGICAS
NUMRICOS CADENA ENTEROS REALES LGICOS NUMRICOS
ESPECIALES FALSO ALFABTICO S VERDADERO IPN-ESIME Zacatenco Electrnica III
113
Operador Lgico Expresin Lgica Significado no (not) no p (not p) Negacin de p y (and) p y q (p and q) Conjuncin de p y q o (or) p o q (p or q) Disyuncin de p o q
FASES DE RESOLUCIN DE PROBLEMAS
RESOLUCIN DE PROBLEMAS RESOLUCIN DEL PROBLEMA POR COMPUTADORA
DISEO DEL ALGORITMO ANALISIS DEL PROBLEMA
114
FASE DE ANLISIS DEL PROBLEMA
FASE DE DISEO DEL ALGORITMO
DISEO DEL ALGORITMO HERRAMIENTAS DE PROGRAMACIN
REFINAMIENTO POR PASOS DISEO DESCENDENT E ANALISIS DEL PROBLEMA ESPECIFICAC IONES DE SALIDA ESPECIFICACIO NES DE ENTRADA DEFINICIN DEL PROBLEMA IPN-ESIME Zacatenco Electrnica III
115
FASE DE RESOLUCIN DEL PROBLEMA MEDIANTE LA COMPUTADORA
HERRAMIENTAS DE PROGRAMACIN
4.2.1 Diagrama de flujo
Tcnica de representacin de algoritmos que utiliza smbolos grficos para representar cada uno de los procesos de la resolucin de un problema, las mismas que estn unidas por flechas denominadas lneas de flujo. Los diagramas utilizados representan un determinado proceso y tienen un smbolo definido para cada caso.
4.2.2 Pseudocdigo DIAGRAMA DE FLUJO DIAGRAMA N - S PSEUDOCDIGO
RESOLUCIN DEL PROBLEMA POR COMPUTADORA COMPROBACIN DEL PROGRAMA
EJECUCIN DEL PROGRAMA CODIFICACIN DEL PROGRAMA
116
Es un lenguaje de especificacin de algoritmos, a partir del cual se traduce directamente a un lenguaje de programacin cada uno de las instrucciones establecidas. Se le considera como un primer borrador, porque el programador se puede concentrar en la lgica y las estructuras de control no siendo necesarias las reglas de sintaxis del lenguaje a utilizar.
4.2.3 Diagrama N-S
Conocido como diagrama de Chapn, su representacin es similar a un diagrama de flujo en el que se omiten las lneas de flujo y donde cada proceso es representado por cajas sucesivas en las cuales se pueden escribir diferentes acciones. IPN-ESIME Zacatenco Electrnica III
117
4.3 INSTRUCCIONES
4.3.1 Desarrollo
Un programa est constituido por un conjunto ordenado de instrucciones, que constituyen el cuerpo principal del programa y uno o ms bloques de datos iniciales necesarios para una correcta ejecucin. El proceso bsico de ejecucin de un programa requiere por parte del microprocesador, la repeticin de los siguientes pasos:
o LEER DE LA MEMORIA UNA INSTRUCCIN DEL PROGRAMA. o INTERPRETAR LA INSTRUCCIN LEDA. o EJECUTAR DICHA INSTRUCCIN. Debemos considerar adems que los microprocesadores trabajan solamente con lenguaje de bajo nivel, es decir, trabajan con lenguaje mquina. Cada microprocesador o familia de microprocesadores, posee su propio lenguaje mquina que determina las capacidades propias de cada familia. Las instrucciones mquina son almacenadas en la memoria en forma de bytes, es decir, en forma de unos y ceros empleando por tanto el sistema binario de numeracin. Sin embargo este sistema es muy complejo para trabajar directamente en l, por lo que se emplean otros sistemas como el hexadecimal, BCD, etc. para la representacin de datos.
Para construir los programas, normalmente se emplean lenguajes de alto nivel, y luego se transforman los programas as escritos a lenguaje mquina asequible para el microprocesador. No obstante en nuestro caso emplearemos un lenguaje de bajo nivel (ensamblador) que trabaja con abreviaturas alfabticas denominadas mnemnicos que constituyen las operaciones e instrucciones que ejecutar el microprocesador. Durante el desarrollo de este tema veremos las principales bases numricas de representacin, as como los diferentes tipos de instrucciones, modos de direccionamiento y se realizar un estudio de todo el repertorio de instrucciones propio del microprocesador 8085. Es conveniente leer todas y cada una de las instrucciones para ir familiarizndose con ellas y entender su modo de funcionamiento. Todo lo tratado aqu, son aspectos bsicos de la programacin que nos permiten crear programas ejecutables en el sistema electrnico presentado en esta serie de artculos.
4.3.2 Bases numricas de representacin
Ya se ha comentado que es el lenguaje mquina el nico que el microprocesador es capaz de tratar, es decir, solamente trabaja con unos y ceros. Este lenguaje resulta inapropiado para las personas, por lo que se desarrollan otros sistemas de representacin ms sencillos o ms cmodos de manejar. En primer lugar debemos fijarnos en que el microprocesador trabaja con bloques de informacin normalizados. Podemos destacar en este terreno:
118
EL BIT: Como unidad de informacin ms elemental que adopta dos nicos estados, el uno o el cero.
EL OCTETO O BYTE: Constituido por una cadena de ocho bits.
LA PALABRA: Es el tamao de informacin que el microprocesador puede manejar en paralelo. En funcin de la potencialidad del microprocesador tendremos palabras de 8 bits, 16 bits, 32 bits, etc.
Estableciendo ya el tipo de informacin con el que se va a trabajar, pasamos ahora a ver las bases numricas o de representacin que emplearemos durante la programacin. Las ms comunes son:
SISTEMA DECIMAL: Es el sistema que habitualmente empleamos en nuestra vida diaria, y por tanto ser el sistema que se emplear normalmente para introducir datos y sacar datos del sistema. Lgicamente este sistema de representacin numrico dispone de diez dgitos (0, 1, 2, 3, 4, 5, 6, 7, 8 y 9).
SISTEMA BINARIO: Solo emplea dos unidades bsicas de representacin (0 y 1). Para encontrar la expresin decimal de cualquier nmero binario, se procede de forma similar al sistema decimal, pero empleando el 2 como base del sistema. Por ejemplo:
Para realizar el proceso contrario, es decir para transformar un nmero decimal a binario, puede emplearse un mtodo muy sencillo que consiste en dividir sucesivamente dicho nmero por la base binaria 2. El nmero binario se construye tomando el ltimo cociente y poniendo a continuacin de forma consecutiva los restos obtenidos en todas las divisiones de la ltima a la primera.
SISTEMA DECIMAL CODIFICADO EN BINARIO (BCD): Se trata de un caso particular del binario que emplea cuatro bits para representar los nmeros decimales del 0 al 9. Por tanto para transformar un nmero decimal, no tendremos ms que tomar cada una de sus cifras y transformarla a binario empleando 4 bits. Por ejemplo: 279 = 0010 0111 1001
SISTEMA EXCESO A TRES: Toma como referencia el sistema BCD, sin ms que aadir a cada digito el valor 3, es decir sumar:
SISTEMA HEXADECIMAL: Es uno de los ms empleados en programacin. Sus diez primeros dgitos se corresponden con los del sistema decimal y los seis restantes son las seis primeras letras maysculas del alfabeto (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F). La base de este sistema es el 16 y todas sus cifras pueden ser expresadas con IPN-ESIME Zacatenco Electrnica III
119
cuatro bits. Para convertir un nmero binario a hexadecimal, agruparemos sus dgitos o bits de cuatro en cuatro y transformaremos cada uno de ellos de forma individual, obteniendo as la representacin hexadecimal. Por ejemplo:
SISTEMA DE REPRESENTACION ASCII: Se trata de un sistema de representacin de datos empleado para facilitar intercambios de informacin. Es uno de los sistemas ms empleados en la actualidad (junto al sistema EBCDIC). La codificacin se lleva a cabo empleando una palabra de 8 bits, es decir, un octeto para cada carcter de informacin. Para encontrar el valor de un carcter numrico de una representacin ASCII, es suficiente con restar el valor 48 y al contrario para encontrar la representacin ASCII de un digito decimal habr que sumar 48.
LOS TIPOS DE INSTRUCCIONES:
Despus de haber tratado de forma superficial los sistemas de representacin, vamos a ver los distintos tipos de instrucciones que utiliza un microprocesador. Bsicamente puede decirse que el bloque de instrucciones debe ser completo y eficaz de modo que podamos realizar todos los clculos necesarios de forma ms rpida y precisa posible.
Una de las principales caractersticas de todo microprocesador es disponer de un buen conjunto de instrucciones que le den la mayor versatilidad posible. Se establecen los siguientes grupos, tipos o conjuntos de instrucciones:
ARITMETICAS: Son las instrucciones que realizan operaciones de tipo aritmtico como sumas, restas, incrementos, decrementos, etc. Todas las operaciones de este tipo afectan al registro de estado, es decir a los flags. MOVIMIENTO DE DATOS: Este tipo de instrucciones de movimiento o transferencia de datos, permiten realizar una copia del contenido de un registro o direccin de memoria (origen), en otro registro o direccin de memoria (destino), sin alterar el contenido del origen. INTRUCCIONES LOGICAS: Realizan operaciones lgicas entre los operandos. Afectan a los flags segn sea el caso y las operaciones se realizan bit a bit entre los datos. INSTRUCCIONES DE COMPARACION: Son operaciones de restar o operaciones XOR entre dos operandos. Afectan a los flags pero no se almacena el resultado. INSTRUCCIONES DE SALTO: Son instrucciones de modificacin de secuencia que alteran la ejecucin normal del programa, cargando el contador de programa con la
120
nueva direccin en la que deseamos contine ejecutndose el programa. Los saltos o bifurcaciones pueden ser: o CONDICIONALES: Cuando son controlados por el estado de un indicador o flag, y basndose en dicho estado se decide si se salta o no. o INCONDICIONALES: Cuando modifican el contador de programa sin condicin previa. Dentro de cada uno de estos tipos, podemos encontrar adems la particularidad de que al efectuar los saltos se realicen con posibilidad de retorno o no.
INSTRUCCIONES DE ENTRADA/SALIDA: Son en realidad instrucciones de transferencia, pero no entre registros o posiciones de memoria, sino con elementos perifricos que permiten la comunicacin del microprocesador con el exterior. INSTRUCCIONES DE CONTROL: Sirven para actuar internamente sobre el microprocesador, provocando detenciones en la ejecucin del programa, etc. INSTRUCCIONES DE BIT: Trabajan o tratan bits independientes. INSTRUCCIONES DE DESPLAZAMIENTO: Desplazan o rotan hacia la izquierda o hacia la derecha los bits de un registro (acumulador). 4.3.3 Instrucciones, modos de direccionamiento y Code Warrior
4.3.3.1 Los modos de direccionamiento
Los modos de direccionamiento son aquellos procedimientos empleados por el microprocesador para poder acceder a determinados operandos, instrucciones, posiciones de memoria, registros de entrada/salida, etc. Por tanto el objeto del direccionamiento es un valor o dato que se encuentra en un lugar de la memoria, en algn registro o en la propia instruccin. Los diferentes modos de direccionamiento que pueda emplear un microprocesador le proporcionan un determinado nivel de potencialidad, permitindole manejar datos y realizar operaciones con mayor facilidad. En general podemos diferenciar los siguientes tipos o modos de direccionamiento:
DIRECCIONAMIENTO INMEDIATO: En este caso el objeto (un operando) se encuentra incluido en la instruccin, es decir, a continuacin del cdigo de la instruccin se aade el operando propiamente dicho. Las instrucciones que emplean este direccionamiento pueden ser de dos o tres bytes y son instrucciones de ejecucin rpida y sencilla. DIRECCIONAMIENTO IMPLICITO: Las instrucciones que emplean este modo de direccionamiento tienen un solo byte y es la propia instruccin la que indica qu registro o direccin de memoria se va a utilizar en la operacin. DIRECCIONAMIENTO ABSOLUTO: En este caso las instrucciones incluyen la direccin de memoria donde se encuentra el dato con el que se va a operar. En este tipo de direccionamiento pueden darse tres supuestos: IPN-ESIME Zacatenco Electrnica III
121
La instruccin apunta a un registro que contiene la informacin deseada (direccionamiento tambin llamado de registro). La instruccin contiene la direccin completa en la que se encuentra el dato, empleando para ello tres bytes. Cuando la instruccin se refiere solo a una parte de la memoria (pgina). En este caso el byte ms alto lo suministra el contador de programa y el byte ms bajo se expresa a continuacin del cdigo de instruccin, por tanto solo se emplean dos bytes (Este direccionamiento tambin se llama de pgina base). o DIRECCIONAMIENTO DIRECTO RELATIVO: La instruccin en este caso contiene un valor determinado al que podemos llamar V. La direccin total se calcula sumando a V el valor que est almacenado en un registro alq ue haga referencia la instruccin. El valor de V puede ser tanto positivo como negativo.
o DIRECCIONAMIENTO INDIRECTO: La instruccin contiene una direccin a la que llamaremos D1. El contenido de D1 no es el objeto directo de nuestra instruccin, sino que contiene otra direccin que llamaremos D2. Esta nueva direccin D2 es la que contiene el dato que s es objeto de la instruccin. Expresados ya los modos de direccionamiento con carcter general, pasamos ahora a ver los modos de direccionamiento que utiliza el microprocesador 8085 en particular, que son los cuatro siguientes: o DIRECCIONAMIENTO DIRECTO ABSOLUTO: La instruccin contiene la direccin exacta y completa donde se encuentra el dato. Por ejemplo: o LHLD A716H o DIRECCIONAMIENTO POR REGISTRO: La instruccin lleva el registro en el que est el dato que va a ser tratado. Como por ejemplo: o MOV A, B o MOV B, C
o DIRECCIONAMIENTO POR REGISTRO INDIRECTO: En la instruccin se especifica un registro cuyo contenido apunta a una direccin de memoria en la que se encuentra el dato. Por ejemplo: o MOV A, M o M: Es una referencia simblica a una direccin apuntada o sealada por el par de registros HL.
o DIRECCIONAMIENTO INMEDIATO: La instruccin contiene el dato con el que se desea operar, pudiendo ser el dato de uno o dos bytes:
122
LXI H, A0B7H ADI 3AH
D A B DIRECCION IX IY PC SP CCR
INSTRUCCIONES BASICAS:
DECIMAL HEXADECIMAL LDDAA # 10 INMEDIATO A
LDAB # $ 10 HEXADECIMAL INMEDIATO B
CLRA INHERENTE O IMPLICITO A
LDAA # %0001000 IMEDIATO A
ABA INHERENTE O EXPLICITO A
STAA $0800 EXTENDIDO 0800
SWI IPN-ESIME Zacatenco Electrnica III
123
4.4 EJEMPLOS DE PROGRAMAS BSICOS
SUMA LDAA $0800 ADDA $0801 STAA $0802 SWI
RESTA LDAA $0800 SUBA $0801 STAA $0802 SWI
MULTIPLICACIN LDAA $0800 LDAB $0801 MUL STAA $0802 STAB $0803 SWI
RAIZ CUADRADA MOVB #1,$0801 CLR $0802 LDAA $0800 REPITE: CMPA $0801 BMI FIN SUBA $0801 INC $0802 INC $0801 INC $0801 BRA REPITE FIN: STAA $0803 SWI
124
RETARDO
LDAA #$03 VAGO: DECA BNE VAGO SWI
NUMERO PAR O IMPAR
LDAA $0800 ANDA #1 BEQ PAR MOVB #1,0801 BRA FIN PAR: CLR $0801 FIN: SWI
SERIE DE FIBONACCI LDAB $0800 BEQ FIN LDX #$0804 MOVB #1,$0801 MOVB #1,$0802 REPITE: LDAA $0801 STAA 0,X ADDA $0802 MOVB $0802,$0801 STAA $0802 NX DECB BNE REPITE FIN: SWI
METODO DE LA BURBUJA
LDX #$0808 LDY #$0809 MOVB #$9,$0800 DNUEVO: MOVB $0800,$0801 REPITE: LDAA X LDAB Y CBA BMI SALTA INY IPN-ESIME Zacatenco Electrnica III
125
DEC $0801 BNE REPITE BEQ SIGUE SALTA: MOVB Y,X STAA Y INY DEC $0801 BNE REPITE BEQ SIGUE SIGUE: INX LEAY 1,X DEC $0800 BNE DNUEVO SWI
ENTRADA DE UN DATO
CLR COPCTL CLR DDRB OTRO: LDAA PORTB BRA OTRO SWI
SALIDA DE UN DATO
CLR CPOCTL MOVB #$FF, DDRB LDAA #$55 STAA PORTB SWI
126
UNIDAD V
PROGRAMACIN DE PERIFRICOS IPN-ESIME Zacatenco Electrnica III
127
5.1 PUERTOS DIGITALES
La forma de realizar la transferencia hace referencia al nmero de seales binarias utilizadas para transferir la informacin. Segn la forma de realizar la transferencia los circuitos de interfaz se pueden clasificar en dos grandes grupos:
Transferencia de informacin en paralelo
Como su nombre indica se caracteriza por recibir la informacin en paralelo (perifricos de salida) o proporcionarla en paralelo (perifricos de entrada) a travs del bus de datos del procesador. Se utiliza cuando el perifrico est situado cerca del procesador y se quier hacer la transferencia a la mxima velocidad posible. En este caso el circuito de interfaz recibe el nombre de puerto paralelo (Parallel port).
Transferencia de informacin en serie
Como su nombre indica se caracteriza porque la informacin se transfiere a travs de un nico canal de comunicacin. Para ello el interfaz debe realizar la tarea de comunicar en serie el procesador con el perifrico y por ello se le suele denominar puerto serie (Serial port). Se utiliza cuando el perifrico est situado a una distancia elevada del procesador y tambin cuando se quiere simplificar la conexin entre el perifrico y el procesador de lo que es un ejemplo la conexin o bus USB.
Tanto los puertos paralelo como los puertos serie bsicos poseen un esquema de bloques como el representado en la siguiente figura, y se divide en dos partes:
Figura 5.1 Esquema de bloques de circuito de interfaz entre un procesador y un perifrico
Un circuito de seleccin de perifrico, que detecta la combinacin binaria que lo identifica. Mediante este circuito el procesador decide con cul de las diferentes interfaces conectadas al bus de datos ejecuta la transferencia de informacin. La salida del circuito de seleccin solo se activa cuando a su entrada se aplica la
128
combinacin binaria correspondiente al perifrico. Se puede realizar de diferentes formas, una de las cuales es la representada en la figura siguiente que consiste en un decodificador que genera la seal de transferencia de los diferentes circuitos de interfaz conectados al procesador. La seal de control de la transferencia o impulso de disparo (trigger), generada por este ltimo se aplica a la entrada de inhibicin G del decodificador para que solo aparezca en la salida correspondiente a la direccin aplicada a sus entradas.
Figura 5.2 Esquema de bloques del interfaz de la figura 1 en el que el circuito de seleccin esta implementado con un decodificador
Un circuito de interfaz, propiamente dicho, que ejecuta las acciones adecuadas para que se lleve a cabo la transferencia as como el proceso necesario para que la interfaz realice un conjunto de tareas que minimizan el tiempo que el procesador debe dedicar al acoplamiento con el perifrico. La complejidad de este circuito depende del tipo de perifrico y del tiempo de que dispone el procesador para realizar tareas de acoplamiento, pero hay unos recursos mnimos, que todos los interfaces deben tener, que se conocen bajo la denominacin antes citada de puertos paralelo y serie se describen posteriormente.
5.1.2 Puertos paralelo
Los puertos paralelo pueden ser de entrada (input port) o de salida (output port). Un puerto de entrada en paralelo es un circuito electrnico que contiene los elementos necesarios para que las informaciones generadas por un perifrico de entrada (interruptores, teclados, etc.) se transfieren en paralelo a la memoria del procesador digital.
Un puerto de salida en paralelo es un circuito electrnico que contiene los elementos necesarios para que los resultados del proceso llevado a cabo por el procesador digital se transfieren en paralelo a los perifricos de salida (visualizadores, impresoras, etc). En la figura 5.3 se representa el hardware mnimo de un puerto de salida en paralelo.
El circuito de seleccin de perifrico esta realizado mediante un decodificador que genera las seales de transferencia de los distintos circuitos de interfaz conectados al IPN-ESIME Zacatenco Electrnica III
129
procesador. EL circuito de interfaz mnimo es un registro (buffer) de entrada y salida en paralelo cuya entrada C de control o disparo por nivel (match) se conecta a la salida del decodificador asignada al perifrico. Este circuito memoriza temporalmente la informacin que se transfiere al perifrico. En la figura 5.4 se representa un ejemplo de aplicacin de un puerto de salida en paralelo que conecta un procesador digital a un visualizador (display) esttico.
Figura 5.3 Esquema de bloques de un puerto de salida en paralelo
130
Figura 5.4 Ejemplo de aplicacin de un puerto de salida en paralelo que conecta un procesador
IPN-ESIME Zacatenco Electrnica III
131
Figura 5.5 Ejemplo de aplicacin de un puerto de entrada en paralelo que conecta un procesador digital y un conjunto de interruptores
5.1.3 Puertos serie
Un puerto serie es una interfaz que realiza la tarea de comunicar en serie el procesador y el perifrico a travs de un canal d comunicaciones. En la figura 6 se representa el esquema de bloques en el que se puede observar que un puerto serie combina un puerto paralelo con un procesador de comunicaciones que realiza dos tareas principales:
Convierte la informacin del formato paralelo al serie.
A la informacin se le aade una informacin adicional para establecer un protocolo de comunicacin de acuerdo con alguna de las normas establecidas, como ejemplo los buses de campo y CAN o las normas de comunicacin serie RS-232 (UART) y USB, a fin de asegurar que otro procesador se comunicaciones situado prximo al perifrico es capaz de interpretarla.
La interfaz entre el RS-232 y el microprocesador generalmente se realiza mediante el integrado 82C50. El RS-232 original tena un conector tipo D de 25 pines, sin embargo la mayora de dichos pines no se utilizaban, por lo que IBM incorpor desde su PS/2 un conector ms pequeo de solamente 9 pines que es el que actualmente se utiliza. En Europa la norma RS-422 de origen alemn es tambin un estndar muy usado en el mbito industrial.
132
Uno de los defectos de los puertos serie iniciales era su lentitud en comparacin con los puertos paralelos, sin embargo, con el paso del tiempo, estn apareciendo multitud de puertos serie con una alta velocidad que los hace muy interesantes ya que tienen la ventaja de un menor cableado y solucionan el problema de la velocidad con un mayor apantallamiento; son ms baratos ya que usan la tcnica del par trenzado; por ello, el puerto RS-232 e incluso multitud de puertos paralelos estn siendo reemplazados por nuevos puertos serie como el USB, el Firewire o el Serial ATA. Los puertos serie sirven para comunicar al ordenador con la impresora, el ratn o el mdem; Sin embargo, especficamente, el puerto USB sirve para todo tipo de perifricos, desde ratones, discos duros externos, hasta conexin bluetooth.
Los puertos SATA (Serial ATA): tienen la misma funcin que los IDE, (a stos se conecta, la disquetera, el disco duro, lector/grabador de CD y DVD) pero los SATA cuentan con mayor velocidad. Un puerto de red puede ser puerto serie o puerto paralelo.
Figura 5.6 Esquema de bloques de un puerto serie de un procesador digital
Figura 5.7 Acoplamiento en paralelo por paro o por consulta de un perifrico a un procesador IPN-ESIME Zacatenco Electrnica III
133
Figura 5.8 a) La transmisin paralela utiliza una lnea por bit, y todos se transmiten en forma simultnea. b) la transmisin serial emplea solo una lnea de seal, cada bit se transmite en forma consecutiva (uno por uno).
5.1.4 PCI
Puertos PCI (Peripheral Component Interconnect): son ranuras de expansin en las que se puede conectar tarjetas de sonido, de vdeo, de red etc. El slot PCI se sigue usando hoy en da y podemos encontrar bastantes componentes (la mayora) en el formato PCI. Dentro de los slots PCI est el PCI-Express. Los componentes que suelen estar disponibles en este tipo de slot son:
1. Capturadoras de televisin
2. Controladoras RAID
134
3. Tarjetas de red, inalmbricas o no.
4. Tarjetas de sonido
5.1.5 PCI-Express
PCI-Express (anteriormente conocido por las siglas 3GIO, 3rd Generation I/O) es un nuevo desarrollo del bus PCI que usa los conceptos de programacin y los estndares de comunicacin existentes, pero se basa en un sistema de comunicacin serie mucho ms rpido que PCI y AGP. Este sistema es apoyado principalmente por Intel, que empez a desarrollar el estndar con nombre de proyecto Arapahoe despus de retirarse del sistema Infiniband. Tiene velocidad de 16x (8GB/s) y es utilizado en tarjetas grficas. Adems de todo esto el 501 se pueden poner las tarjetas graficas.
5.1.6 Puertos de memoria
A estos puertos se conectan las tarjetas de memoria RAM. Los puertos de memoria, son aquellos puertos en donde se puede agrandar o extender la memoria de la computadora. Existen diversas capacidades de memorias RAM, por ejemplo, aquellas de 256MB (Megabytes) o algunas de hasta 4GB (Gigabytes), entre ms grande, ms almacenamiento tiene la computadora.
El almacenamiento de la memoria RAM, es para que el sistema tenga rpidamente datos solicitados o programas. la RAM no se debe confundir con el disco duro, el disco duro una vez apagada la computadora no pierde los datos, mientras que la RAM al apagar la computadora stos se borran completamente; la RAM fue diseada por que el acceso a ella es ms rpido que el disco duro lo que hace que la computadora sea ms rpida pudiendo ejecutar una mayor cantidad de procesos.
5.1.7 Puerto de rayos infrarrojos
En este tipo de puertos, puede haber de alta velocidad, los infrarrojos sirven para conectarse con otros dispositivos que cuenten con infrarrojos sin la necesidad de cables, los infrarrojos son como el Bluetooth. La principal diferencia es que la comunicacin de Infrarrojos usa como medio la luz, en cambio el Bluetooth utiliza ondas de radio frecuencia.
Especificaciones: para pasar la informacin por medio de infrarrojos se necesita colocar los infrarrojos pegados uno con el otro y as mantenerlos hasta que todos los datos se pasen de un puerto infrarrojo al otro, esto lleva un poco ms de tiempo que si lo hiciramos con el bluetooth.
Muchas computadoras cuentan con un puerto de rayos infrarrojos de alta velocidad, que agiliza que los archivos, datos, imgenes, etc. se pasen ms rpido.
5.1.8 Puerto USB IPN-ESIME Zacatenco Electrnica III
135
Permite conectar hasta 127 dispositivos y ya es un estndar en los ordenadores de ltima generacin, que incluyen al menos dos puertos USB 1.1, o puertos USB 2.0 en los ms modernos. Es totalmente Plug & Play, es decir, con slo conectar el dispositivo y en caliente (con el ordenador encendido), el dispositivo es reconocido e instalado de manera inmediata. Slo es necesario que el Sistema Operativo lleve incluido el correspondiente controlador o driver, hecho ya posible para la mayora de ellos sobre todo si se dispone de un Sistema Operativo como por ejemplo Windows XP, de lo contrario el driver le ser solicitado al usuario.
Posee una alta velocidad en comparacin con otro tipo de puertos, USB 1.1 alcanza los 12 Mb/s y hasta los 480 Mb/s (60 MB/s) para USB 2.0, mientras un puerto serie o paralelo tiene una velocidad de transferencia inferior a 1 Mb/s. El puerto USB 2.0 es compatible con los dispositivos USB 1.1
El cable USB permite tambin alimentar dispositivos externos a travs de l, el consumo mximo de este controlador es de 5 voltios. Los dispositivos se pueden dividir en dispositivos de bajo consumo (hasta 100 mA) y dispositivos de alto consumo (hasta 500 mA) para dispositivos de ms de 500 mA ser necesario alimentacin externa. Debemos tener en cuenta tambin que si utilizamos un concentrador y ste est alimentado, no ser necesario realizar consumo del bus. Hay que tener en cuenta que la longitud del cable no debe superar los 5 m y que ste debe cumplir las especificaciones del Standard USB iguales para la 1.1 y la 2.0
5.1.9 Puertos Fsicos
Los puertos fsicos, son aquellos como el puerto "paralelo" de una computadora. En este tipo de puertos, se puede llegar a conectar: un monitor, la impresora, el escaner, etc. Ya que estos artculos cuentan con un puerto paralelo para la computadora, con el cual se puede conectar y empezar su labor. En si el puerto paralelo es una conexin ms para la impresora.
5.1.10 Universal Serial Bus
El Universal Serial Bus (bus universal en serie) o Conductor Universal en Serie, abreviado comnmente USB, es un puerto que sirve para conectar perifricos a una computadora. Fue creado en 1996 por siete empresas: IBM, Intel, Northern Telecom, Compaq, Microsoft, Digital Equipment Corporation y NEC.
El estndar incluye la transmisin de energa elctrica al dispositivo conectado. Algunos dispositivos requieren una potencia mnima, as que se pueden conectar varios sin necesitar fuentes de alimentacin extra. La gran mayora de los concentradores incluyen fuentes de alimentacin que brindan energa a los dispositivos conectados a ellos, pero algunos dispositivos consumen tanta energa que necesitan su propia fuente de alimentacin. Los concentradores con fuente de alimentacin pueden proporcionarle corriente elctrica a otros dispositivos sin quitarle corriente al resto de la conexin (dentro de ciertos lmites).
136
El diseo del USB tena en mente eliminar la necesidad de adquirir tarjetas separadas para poner en los puertos bus ISA o PCI, y mejorar las capacidades plug-and-play permitiendo a esos dispositivos ser conectados o desconectados al sistema sin necesidad de reiniciar. Cuando se conecta un nuevo dispositivo, el servidor lo enumera y agrega el software necesario para que pueda funcionar.
El USB puede conectar los perifricos como ratones, teclados, escneres, cmaras digitales, telfonos mviles, reproductores multimedia, impresoras, discos duros externos, tarjetas de sonido, sistemas de adquisicin de datos y componentes de red. Para dispositivos multimedia como escneres y cmaras digitales, el USB se ha convertido en el mtodo estndar de conexin. Para impresoras, el USB ha crecido tanto en popularidad que ha desplazado a un segundo plano a los puertos paralelos porque el USB hace mucho ms sencillo el poder agregar ms de una impresora a una computadora personal.
En el caso de los discos duros, es poco probable que el USB reemplace completamente a los buses (el ATA (IDE) y el SCSI), pues el USB tiene un rendimiento ms lento que esos otros estndares. Sin embargo, el USB tiene una importante ventaja en su habilidad de poder instalar y desinstalar dispositivos sin tener que abrir el sistema, lo cual es til para dispositivos de almacenamiento externo. Hoy en da, una gran parte de los fabricantes ofrece dispositivos USB porttiles que ofrecen un rendimiento casi indistinguible en comparacin con los ATA (IDE). Por el contrario, el nuevo estndar Serial ATA permite tasas de transferencia de hasta aproximadamente 150/300 MB por segundo, y existe tambin la posibilidad de extraccin en caliente e incluso una especificacin para discos externos llamada eSATA. IPN-ESIME Zacatenco Electrnica III
137
5.1.11 Puertos de entrada/salida
Introduccin
Los puertos del microcontrolador son el punto de comunicacin entre el microcontrolador y el mundo exterior; a travs de ellos se puede efectuar procesos de control electrnico sobre dispositivos de potencia, instrumentacin, telemetra, etc. Adems, permiten tambin recibir seales del mundo exterior como, por ejemplo, seales provenientes de transductores, amplificadores, transmisores, actuadores, etc.
En otras palabras, los puertos del microcontrolador se pueden ver como los brazos con los que interacta el microcontrolador con otros sistemas electrnicos.
En el microcontrolador, 23 pines pueden ser configurados de manera bidireccional (I/O) a travs de tres puertos paralelos. Todos los pines pueden ser configurados como entrada o salida.
Se debe tener en cuenta que en la gran mayora de familias de microcontroladores los puertos de entrada/ salida no solamente cumplen funciones de envo y recepcin de seales digitales, sino que adems comparten recursos internos con el microcontrolador; es decir, que si por un pin en especial se pueden manipular datos digitales ("1" y "O"), segn la estructura interna, tambin podra cumplir, por ejemplo, funciones de conversin A/D o funciones de PWM, o funciones de comparacin analgica, entre otras funciones adicionales propias de cada familia de microcontroladores a utilizar.
Estos mdulos alternos o compartidos presentes en el microcontrolador se pueden conocer para cualquier familia de microcontroladores en el manual de referencia propio de cada uno; para el caso del JK1/JK3/JL3, se puede observar en el captulo 2 del presente libro.
Nota: Antes de comenzar con la descripcin de cada uno de los puertos existentes en la familia JK1/JK3/JL3, se recomienda el montaje del siguiente circuito, el cual no solamente le ayudar a la verificacin de los ejercicios resueltos sino que adems podr servirle de gua para desarrollar otros programas sencillos y visualizar posibles resultados que al procesarse internamente en el microcontrolador sera imposible visualizarlos a simple vista, pero con la ayuda de este circuito podr visualizar el resultado, por ejemplo, de una operacin matemtica, lgica o el resultado de algn proceso en particular, gracias al banco de LEDS presentes en el esquema.
A continuacin se ilustra cada uno de los registros correspondientes al uso y configuracin de cada uno de los puertos existentes en esta familia especial de microcontroladores.
138
REGISTRO PORT A (PTA)
Direccin $0000
Bit 7 Bit 6 Bit5 Bit 4 Bit3 Bit 2 Bit1 BitO Leer 0 Escribir PTA 6 PTA 5 PTA 4 PTA 3 PTA 2 PTA1 PTAO
Este registro posee sus 8 bits, de los cuales slo 7 pueden ser configurados como pines de entrada o salida de manera independiente a travs del registro DDRA. Adems de permitir manejar independientemente las salidas de cada uno de sus bits, tiene la funcin especial de interrupcin por teclado, efectundose esta configuracin mediante el registro KBI, lo cual se explicar en detalle ms adelante. Una de las principales caractersticas de este puerto es que cada pin del puerto A posee configuracin por software de las resistencias de Pull-Up a travs del registro PTAPUE. Estas resistencias tienen un valor de 30 k.
Fig. 5.9 Circuito recomendado para la verificacin de rutinas, ejemplos resueltos y propuestos IPN-ESIME Zacatenco Electrnica III
139
Una resistencia de Pull-Up consiste en una resistencia que se encuentra conectada internamente entre un pin en particular del puerto A y el terminal positivo de alimentacin o VDD, que en nuestro caso sera +5 V.
Para comprender mucho mejor este concepto, supongamos que se desea conocer cmo estara conectada la resistencia del Pull-Up presente en el pin O del puerto A (PTAO). En la grfica siguiente se ilustra este concepto con gran detalle.
Fig.5.10 Conexin interna de una resistencia de Pull-Up a travs de pin PTA0.
REGISTRO DE CONFIGURACIN DEL PORT A (DDRA)
Direccin $0004
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Leer 0 Escribir
DDRA 6 DDRA 5 DDRA 4 DDRA 3 DDRA 2 DDRA1 DDRA 0
Mediante este registro de 8 bits, de los cuales slo se puede acceder a 7 bits, se efecta la configuracin de los bits del registro PORT A, ya sea como entradas o como salidas. Tal como se mencion en el captulo 2, el registro PORTA permite visualizar el estado actual de los diferentes niveles presentes en el puerto; sin embargo, el registro DDRA sera el encargado de realizar la configuracin del puerto A, en donde se establece inicialmente qu pines se configurarn para recibir seales de fuentes
140
externas y qu pines funcionarn como salidas del microcontrolador hacia el mundo real. A continuacin se describe qu valores deben establecerse en el registro DDRA para configurar un pin como entrada o como salida.
DDRA[6:0]: bits de configuracin del PORT A
1: El pin correspondiente del PORT A es configurado como salida 0: El pin correspondiente del PORT A es configurado como entrada
REGISTRO PTAPUE
Direccin $OOOD
Bit 7 Bit 6 Bit5 Bit 4 Bit3 Bit 2 Bit 1 Bit 0 Leer Escribir PTA6E N PTAPU E6 PTAPU E5 PTAPUE 4 PTAPU E3 PTAPU E2 PTAPU E1 PTAPUE 0
Este registro es el que permite habilitar o deshabilitar las resistencias de Pull-Up para cada uno de los pines del puerto A. Se debe tener en cuenta que cuando se habilitan las resistencias de Pull-Up, estas resistencias sern vlidas solamente cuando el pin correspondiente es configurado como entrada y dinmicamente deshabilitado cuando este pin es configurado como salida.
A continuacin se explica en detalle el significado de cada bit \5ertetvecietvte al registro PTAPUE y la funcin que desempea cada uno.
PTA6EN: Habilitar el pin PTA6 como OSC2.
La funcin del OSC2 se configura cuando se escoge la opcin de oscilador RC.
1: El OSC2 es configurado para utilizar el pin PTA6 como un pin de I/O, con las funciones de interrupcin y configuracin de resistencias de Pull-Up.
0: El OSC2 es configurado como oscilador de tipo RC.
PTAPUE[6:0]: Habilitacin de resistencias de Pull-Up
1: Habilita las resistencia de Pull-Up correspondiente al pin del puerto A, siempre y cuando este pin est configurado como entrada.
0: Deshabilita la resistencia de Pull-Up correspondiente al pin del puerto A.
IPN-ESIME Zacatenco Electrnica III
141
Ejemplo
Supongamos que se desea configurar en el puerto A los 4 bits de menos peso como entradas y los 4 pines ms peso como salidas; adicionalmente, habilitar las resistencias de Pull-Up para los 4 pines configurac como entrada en el puerto A.
Solucin
MOV #$FO,DDRA MOV #$8F,PTAPUE
Explicacin
En la primera instruccin se almacen en el registro DDRA el valor $FO (F0h) que corresponde al val 11110000 expresado en binario, provocando con ello que los bits en donde se encuentran con valor "O" se configurados como entrada y los bits donde se encuentran "1" sean configurados como salida.
En la segunda instruccin se almacen en el registro PTAPUE el valor $8F (8Fh) que corresponde al val 10001111 expresado en binario, provocando con ello que los bits en donde se encuetan con valor "O" deshabilite el uso de resistencias de Pull-Up y los bits donde se encuentran "1" sean habilitadas; sin embargo en el bit 7 del registro PTAPUE se estableci el valor "1", el cual en este caso no corresponde a la habilitad' de una resistencia de Pull-Up, sino habilitando la opcin de ser utilizado este pin como pin de I/O y no con entrada para un oscilador de tipo RC.
Con las instrucciones anteriores se da solucin al problema, configurando como primera medida los 4 bits de menos peso del puerto A como entradas y los 4 bits de ms peso como salidas; adems se habilit internamente el uso de 4 resistencias de Pull-Up en los pines correspondientes a los 4 bits de menos peso del puerto A.
REGISTRO PORT B (PTB]
Direccin $0001
Bit 7 Bit 6 Bit5 Bit 4 Bit 3 Bit 2 Bit l Bit O Leer Escribir PTB7 PTB6 PTB5 PTB4 PTB3 PTB2 PTB1 PTBO
Bit 7 Bit 6 Bit5 Bit 4 Bit 3 Bit 2 Bit1 BitO
ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADC1 ADCO
142
El registro PORTB permite la manipulacin de seales digitales entre sus terminales, tal como ocurre o el registro PORTA; sin embargo, este puerto comparte adicionalmente recursos con el mdulo de conversin analgico-digital incluido internamente en el microcontrolador, en donde cada pin del puerto corresponde] a un canal de conversin A/D. Cada uno de estos pines puede ser configurado como entrada o como salida de manera independiente a travs del registro DDRB.
REGISTRO DE CONFIGURACIN DEL PORT B (DDRB)
Direccin $0005
Bit 7 Bit 6 Bt5 Bit 4 Bit 3 Bit 2 Bit1 BitO Leer Escribir DDRB7 DDRB6 DDRB5 DDRB4 DDRB3 DDRB2 DDRB1 DDRBO
Mediante este registro de 8 bits se efecta la configuracin de los bits del registro PORT B, ya sea con entradas o salidas, tal como ocurra con el registro de configuracin DDRA.
DDRB [7:0]: bits de configuracin del PORT B
1: El pin correspondiente del PORT B es configurado como salida. 0: El pin correspondiente del PORT B es configurado como entrada.
REGISTRO PORT D Direccin $0003
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit l Bit O Leer PTD7 PTD6 PTD5 PTD4 PTD3 PTD2 PTD1 PTDO Escribir
Bit 7 Bit 6 Bit5 Bit 4 Bit3 Bit 2 Bit1 Bit O Funcin 1 LED LED TCH1 TCHO LED LED Funcin 2 25MA 25MA ADC8 ADC9 ADC10 ADCI1
El registro PORTD posee dos pines destinados para uso del mdulo TIM, 4 pines destinados para canales de conversin A/D (los mdulos TIM y ADC sern tratados en captulos posteriores) y dos pines (PTD6 y PTD7) que poseen drivers de corriente superior a 25 mA y resistencias de Pull-Up programables de 5 k.
Cada uno de estos pines puede ser configurado como entrada o como salida de manera independiente a travs del registro DDRD.
IPN-ESIME Zacatenco Electrnica III
143
REGISTRO DE CONFIGURACIN DEL PORT D
Direccin $0007
Bit 7 Bit 6 Bit5 Bit 4 Bit3 Bit 2 Bit 1 Bit O Leer Escribir DDRD7 DDRD6 DDRD5 DDRD4 DDRD3 DDRD2 DDRD1 DDRDO
Mediante este registro de 8 bits se efecta la configuracin de los bits del registro PORT D, ya sea como entradas o como salidas.
DDRD[7:0]: bits de configuracin del PORT D
1: El pin correspondiente del PORT D es configurado como salida. 0: El pin correspondiente del PORT D es configurado como entrada.
REGISTRO DE CONTROL DEL PORT D (PDCR]
Direccin $OOOA
Bit 7 Bit 6 Bit5 Bit 4 Bit3 Bit 2 Bit1 BitO Leer 0 0 0 0 Escribir SLOWD 7 SLOWD 6 PTDPU7 PTDPU6
Este registro cumple funciones muy semejantes a las del registro PTAPUE explicado anteriormente, permitiendo habilitar y deshabilitar las resistencias de Pull-Up, y manejo del driver de corriente para los pines PTD7 y PTD6. A continuacin se explica el modo de configuracin de este registro y las funciones que realiza segn los valores establecidos en cada uno de sus bits.
SLOWDx: los bits SLOWD6 Y SLOWD7 permiten habilitar drenador abierto y driver de corriente. 1: El pin est configurado como salida de drenador abierto. 0: El pin est configurado con Push-Pull.
PTDPUx: bits para habilitar resistencias de Pull-Up. 1: Habilitar resistencia de Pull-Up de 5 K. 0: Deshabilitar resistencia de Pull-Up de 5 K.
144
5.2 ADQUISICIN DE SEALES ANALGICAS 5.2.1 Introduccin Una seal analgica es un tipo de seal generada por algn tipo de fenmeno electromagntico y que es representable por una funcin matemtica continua en la que es variable su amplitud y periodo (representando un dato de informacin) en funcin del tiempo. Algunas magnitudes fsicas comnmente portadoras de una seal de este tipo son elctricas como la intensidad, la tensin y la potencia, pero tambin pueden ser hidrulicas como la presin, trmicas como la temperatura, mecnicas, etc. La magnitud tambin puede ser cualquier objeto medible como los beneficios o prdidas de un negocio.
Una onda senoidal es una seal analgica de una sola frecuencia. Los voltajes de la voz y del video son seales analgicas que varan de acuerdo con el sonido o variaciones de la luz que corresponden a la informacin que se est transmitiendo. Basndose en el analisis de Fourier, una seal digital es una seal analgica compuesta. El ancho de banda es infinito, como se podra adivinar. Se puede llegar a este concepto si se estudia una seal digital. Una seal digital, en el dominio del tiempo, incluye segmentos horizontales y verticales conectados. Una lnea vertical en el dominio de tiempo significa una frecuencia cero (no hay cambio en el tiempo). Ir de una frecuencia cero a una frecuencia infinito (y viceversa) implica que todas las frecuencias en medio son parte del dominio. El anlisis de Fourier se puede usar para descomponer una seal. Si la seal digital es peridica, lo que es raro en comunicaciones, la seal descompuesta tiene una representacin en el dominio de frecuencia con un ancho de banda infinito y frecuencias discretas. Si la seal digital es aperidica, la seal descompuesta todava tiene un ancho de banda infinito, pero las frecuencias son contnuas.
Aunque existen mltiples versiones del bus de campo digital, en los sistemas de control industrial se siguen empleando seales analgicas estndar para transmitir datos entre los procesos y los equipos de control. Los transmisores de proceso de una planta de productos, por ejemplo, convierten seales de bajo nivel de presin y temperatura en robustas seales de corriente de 4 a 20 mA que pueden transmitirse con facilidad a lo largo de varios kilmetros.
5.2.2 Definicin de seal analgica
La seal analgica es aquella que presenta una variacin continua con el tiempo, es decir, que a una variacin suficientemente significativa del tiempo le corresponder una variacin igualmente significativa del valor de la seal (la seal es continua).
Toda seal variable en el tiempo, por complicada que sta sea, se representa en el mbito de sus valores (espectro) de frecuencia. De este modo, cualquier seal es IPN-ESIME Zacatenco Electrnica III
145
susceptible de ser representada descompuesta en su frecuencia fundamental y sus armnicos. El proceso matemtico que permite esta descomposicin se denomina anlisis de Fourier.
Un ejemplo de seal analgica es la generada por un usuario en el micrfono de su telfono y que despus de sucesivos procesos, es recibida por otro abonado en el altavoz del suyo.
Es preciso indicar que la seal analgica, es un sistema de comunicaciones de las mismas caractersticas, mantiene dicho carcter y deber ser reflejo de la generada por el usuario. Esta necesaria circunstancia obliga a la utilizacin de canales lineales, es decir canales de comunicacin que no introduzcan deformacin en la seal original.
Fig. 5.11 Seal analgica
Las seales analgicas predominan en nuestro entorno (variaciones de temperatura, presin, velocidad, distancia, sonido etc.) y son transformadas en seales elctricas, mediante el adecuado transductor, para su tratamiento electrnico.
La utilizacin de seales analgicas en comunicaciones todava se mantiene en la transmisin de radio y televisin tanto privada como comercial. Los parmetros que definen un canal de comunicaciones analgicas son el ancho de banda (diferencia entre la mxima y la mnima frecuencia a transmitir) y su potencia media y de cresta.
5.2.3 Conceptos fundamentales en adquisicin de seales El acondicionamiento de las seales de entrada las prepara para la etapa siguiente, que suele ser un procesador digital. Las seales analgicas son continuas en el tiempo y en la amplitud, mientras que los procesadores digitales requieren seales con slo dos niveles de tensin, que representan un cdigo determinado. La conversin analgico- digital se encarga de convertir un tipo de seales en otro, y debe hacerlo conservando la informacin. Es decir, idealmente debiera ser posible, a partir de la salida digital, reconstruir fielmente la seal analgica de entrada. La conversin A/D se puede analizar considerando tres procesos distintos: el muestreo, la cuantificacin y la codificacin. El muestreo obtiene, a partir de la seal continua de entrada, una seal discreta e el tiempo y continua en el dominio de las amplitudes, es decir, una serie temporal. El muestreo es un proceso lineal, no exclusivo de la conversin A/D sino presente tambin, por ejemplo, en sistemas de multiplexado por
146
divisin de tiempo (TDM, time-division multiplexing) y en la comunicacin por impulsos modulados en amplitud (PAM, pulse-amplitude modulation). La cuantificacin es una operacin no lineal que convierte una seal de amplitud continua en otra de amplitud discreta, es decir, con un nmero finito de valores o niveles de amplitud. La codificacin es el proceso de asignar una palabra (o combinacin) de un cdigo digital a cada uno de una serie de niveles de tensin discretos. La informacin adquirida, directamente o tras el procesamiento de las seales, se emplea a veces para actuar sobre el proceso o sistema de donde provienen; adems, es frecuente presentarla, almacenarla, o ambas cosas a la vez. Dichas funciones se suelen realizar directamente con las seales digitales, sin convertirlas de nuevo en analgicas. 5.2.4 Seales de transmisin analgicas y seales de datos digitales
Dentro de este caso la situacin ms conocida es la transmisin de datos digitales a travs de la red telefnica. Esta red se diseo originalmente para recibir, conmutar y transmitir seales analgicas en el rango de frecuencias de vos (300 a 3400Hz). Por lo tanto esta red no era del todo adecuada para la transmisin de seales digitales. No obstante se pueden conectar dispositivos digitales mediante el uso de mdems (modulador-demodulador), los cuales convierten los datos digitales en seales analgicas y viceversa.
Los mdems telefnicos, se utilizan en la red telefnica para producir seales en el rango de frecuencias de voz, los mdems de banda ancha, por ejemplo los mdems ADSL y los mdems de cable o cablemodems, utilizan las mismas tcnicas pero a frecuencias ms altas que las de la voz humana.
Dentro del grupo de transmisiones con seales de transmisin analgicas y datos digitales tenemos los siguientes casos de tcnicas de modulacin o codificacin dependiendo del parmetro de la seal portadora que es afectado.
Desplazamiento de amplitud ASK (Amplitudes-shift keying) Desplazamiento de frecuencia FSK (Frequency-shift keying) Desplazamiento de fase PSK (Phase-shift keying)
5.2.5 Transmisin de datos: transmisin analgica
Los principios de la transmisin analgica
La transmisin analgica que datos consiste en el envo de informacin en forma de ondas, a travs de un medio de transmisin fsico. Los datos se transmiten a travs de una onda portadora: una onda simple cuyo nico objetivo es transportar datos modificando una de sus caractersticas (amplitud, frecuencia o fase). Por este motivo, la transmisin analgica es generalmente denominada transmisin de modulacin de la IPN-ESIME Zacatenco Electrnica III
147
onda portadora. Se definen tres tipos de transmisin analgica, segn cul sea el parmetro de la onda portadora que vara:
Transmisin por modulacin de la amplitud de la onda portadora Transmisin a travs de la modulacin de frecuencia de la onda portadora Transmisin por modulacin de la fase de la onda portadora Transmisin analgica de datos analgicos
Este tipo de transmisin se refiere a un esquema en el que los datos que sern transmitidos ya estn en formato analgico. Por eso, para transmitir esta seal, el DCTE (Equipo de Terminacin de Circuito de Datos) debe combinar continuamente la seal que ser transmitida y la onda portadora, de manera que la onda que transmitir ser una combinacin de la onda portadora y la seal transmitida. En el caso de la transmisin por modulacin de la amplitud, por ejemplo, la transmisin se llevar a cabo de la siguiente forma:
Fig. 5.12 Transmisin analgica de datos digitales
Cuando aparecieron los datos digitales, los sistemas de transmisin todava eran analgicos. Por eso fue necesario encontrar la forma de transmitir datos digitales en forma analgica.
La solucin a este problema fue el mdem. Su funcin es:
En el momento de la transmisin: debe convertir los datos digitales (una secuencia de 0 y 1) en seales analgicas (variacin continua de un fenmeno fsico). Este proceso se denomina modulacin.
Cuando recibe la transmisin: debe convertir la seal analgica en datos digitales. Este proceso se denomina demodulacin.
De hecho, la palabra mdem es un acrnimo para MOdulador/DEModulador...
5.2.6 Sistema de adquisicin de datos analgicos
148
Un sistema de adquisicin de datos analgico consta de algunos o todos los elementos siguientes:
a) Transductores: Para la transformacin de parmetros fsicos en seales elctricas.
b) Acondicionadores de seales Para la amplificacin, modificacin o seleccin de ciertas partes de estas seales.
c) Dispositivos de presentacin visual Para monitoreo continuo de las seales de entrada. Estos dispositivos pueden incluir osciloscopio de varios canales o de un solo canal, osciloscopio de almacenamiento, panel de medidores, desplegados numricos, etctera.
d) Instrumentos de registro de grficas Para obtener un registro permanente de los datos de entrada. Estos incluyen registradores de tinta y plumilla para proporcionar registros continuos en cortes de papel, sistemas de registro ptico como los registradores de galvanmetro de espejo y los registradores ultravioleta. Instrumentacin de cinta magntica para guardar los datos de entrada, conservar su forma elctrica original y reproducirlos posteriormente para un ms detallado.
Los sistemas de adquisicin de datos se utilizan en un gran nmero de aplicaciones (en constante aumento), en una variedad de reas industriales y cientficas, como la industria biomdica, aeroespacial y telemetra. El tipo de sistema de adquisicin de datos, analgica o digital, depende del uso de los datos registrados.
En general, los sistemas de datos analgicos se utilizan cuando se requiere un amplio ancho de banda o cuando se puede tolerar poca exactitud. Los sistemas digitales se aplican cuando el proceso fsico que en estudio vara poco (ancho de banda angosto) y cuando se necesita una exactitud alta y bajo costo por canal.
5.2.7 Las seales analgicas en el diseo de sistemas de adquisicin de datos
Un nuevo artculo dedicado a la que consideramos la mejor estrategia de automatizacin para conseguir aumentar la productividad industrial de una forma sencilla. Nos referimos, a la adquisicin de datos. En este artculo abordamos en detalle las especificaciones de diseo que deben tenerse en cuenta al tratar seales analgicas en los sistemas de adquisicin de datos. Un conocimiento detallado de las seales analgicas y los efectos en la conversin de datos que pueden producirse en un ambiente industrial nos ayudar a conocer con antelacin los problemas que pueden producirse en el proyecto.
El equipamiento de adquisicin analgica es el corazn de cualquier sistema de adquisicin de datos. Microprocesadores, procesadores de seales digitales, memoria, programas originales, drivers de software, sistemas operativos, y aplicaciones de IPN-ESIME Zacatenco Electrnica III
149
software puede formar el cerebro de un sistema, pero su eficiencia no es mayor que la de los circuitos analgicos. Para construir un sistema que tenga la velocidad necesaria, resolucin, y exactitud para una aplicacin dada, es necesario encontrar la combinacin correcta de convertidores de datos analgicos, amplificadores operacionales, multiplexores, y referencias de voltaje.
En un circuito de un sistema de adquisicin de datos, la trayectoria de una seal comienza en los conectores de entrada. La mayora de los sistemas de adquisicin de datos tienen alguna forma de proteccin colocada antes de los circuitos analgicos. Para ello se utilizan componentes tales como fusibles o diodos de bloqueo limitan el voltaje o corriente que entra en un sistema, protegiendo de esta forma a los componentes de posibles daos.
Los sistemas convencionales de adquisicin de datos raramente se disean con un nico canal de medicin. Los multmetros digitales (DMMs), por ejemplo, disponen tpicamente de un solo canal, pero es posible combinar un DMM con un rel e incrementar el recuento de canales. Cualquiera de los sistema de adquisicin de datos, ya sea placa de conexin, mdulos USB, o sistemas autnomos, pueden tener un ADC (convertidor analgico-digital) dedicado por canal, o pueden tener un simple ADCcon un multiplexor (mux) conectado a canales mltiples. El uso de un ADC dedicado para cada canal permite al sistema muestrear simultneamente en todos los canales.
Despus del multiplexor (si est incluido en el sistema), se utiliza un amplificador de ganancia programable (PGA). El PGA amplifica o atena el voltaje de entrada de las fuentes de seales, como por ejemplo los sensores, y de esta forma se consigue un mejor acoplamiento en el rango de voltajes de entrada del ADC. En algunos sistemas de adquisicin de datos se incluye un segundo amplificador operacional que aade voltaje de compensacin, u offset, DC a la seal de entrada. El voltaje de compensacin se utiliza para cambiar la seal de forma que se centre en el rango de entrada admitido por el ADC. El rango del voltaje de entrada del ADC, por lo tanto, tiene una influencia destacable en la eleccin del PGA.
Otra opcin posible es el uso de circuitos de bloqueo para proteger el ADC. Justamente antes del ADCE, la mayora de los diseadores de sistemas de adquisicin de datos aaden un filtro anti-solapamiento de paso bajo. Con este filtro conseguimos limitar el ancho de banda de la trayectoria de la seal y es la ltima opcin para conseguir minimizar el solapamiento antes de que el ADC digitalice la seal.
Para conseguir digitalizar con xito las seales analgicas, los ADC necesitan un voltaje de referencia, Vref. Algunos convertidores ADCs, utilizan referencia interna y otros referencia interna. Algunos ingenieros defienden la utilizacin de referencias de voltaje externas argumentando que son ms estables que las internas. Otra ventaja de las referencias externas es que puede ajustarse la ganancia de la trayectoria de entrada mediante el control del voltaje de la referencia ADC. Si el voltaje es demasiado alto, la solucin es proporcionar Vref mayor.
150
Respecto a la forma de la salida digital de un ADC, sta puede tener forma serie o paralelo. El bus serie proporciona un rendimiento mejorado debido a que son menos las lneas que cambiarn de estado en un momento dado, lo cual minimiza el rebote en las lneas de energa y de tierra y reduce el ruido del sistema. Tambin debemos tener en cuenta que las interfaces serie funcionan con velocidades de reloj ms elevadas que los buses paralelos para el mismo nmero de bits, es necesario direccionar las seales para mantener bajo el ruido.
Eleccin de un ADC
Los procesos industriales difieren mucho entre s: seales, velocidades, condiciones ambientales, etc. Es consecuentemente importante analizar en detalle el proceso para optar por la eleccin correcta del ADC ms adecuado para nuestra aplicacin. La eleccin de ADC lleva a que deban tenerse en cuenta numerosos sacrificios de diseo, y es necesario incluso tener en cuenta en detalle la arquitectura del sistema. Por ejemplo, los sistemas de adquisicin de datos utilizan registro de aproximacin sucesiva (SAR) o arquitectura delta-sigma (). Comparativamente, los sistemas SAR generan ms velocidad que los ADCs (), pero las arquitecturas () producen resoluciones ms finas. Consecuentemente, si la resolucin que necesitamos es mayor de 18-bit, necesitaremos un convertidor . Los niveles de muestreo que requieren nuestro proceso y los voltajes de suministro de energa del ADC determinarn el tipo de circuitos de soportes que podemos usar. Consideremos, por ejemplo, el voltaje de alimentacin. La mayora de los ADCs estn fabricados con procesos CMOS, en vez de con procesos bipolares, y es conocido que los procesos CMOS operan con unos requerimientos de potencia considerablemente menores que los dispositivos bipolares.
Aunque los bajos voltajes reducen el consumo de potencia, tambin comprimen el rango dinmico del ADC. Un ADC que opera a 12 voltios tiene seis veces el rango dinmico de un dispositivo de 0-4 voltios. Consecuentemente, la misma cantidad de ruido impactar en el sistema de 12 voltios mucho menos que un sistema de 4 V. El ruido que entra en un ADC debe mantenerse menor de 1 el bit menos significativo (LSB). Es por ello necesario utilizar un amplificador operacional con un nivel de ruido consistente con el rango dinmico de un LSB en frente del ADC. Eso significa que ser necesario un menor nivel de ruido en un ADC de 24 voltios que en un ADC de 16 bits. Para conseguir el mejor rango dinmico, las seales de nivel alto se extendern en el canal analgico tan lejos como sea posible. El DMMs de Keithley, por ejemplo, proporciona la mejor exactitud en el rango de los 10 voltios, donde no se necesita ni amplificacin ni atenuacin de la seal entrante.
5.2.8 Conversin analgica-digital
Una seal digital vara de forma discreta o discontinua a lo largo del tiempo. Parece como si la seal digital fuera variando a saltos entre un valor mximo y un valor mnimo.
Por otra parte, una seal analgica es una seal que vara de forma continua a lo largo del tiempo. La mayora de las seales que representan una magnitud fsica IPN-ESIME Zacatenco Electrnica III
151
(temperatura, luminosidad, humedad, etc.) son seales analgicas. Las seales analgicas pueden tomar todos los valores posibles de un intervalo; y las digitales solo pueden tomar dos valores posibles.
Digitalizacin
Un ordenador o cualquier sistema de control basado en un microprocesador no pueden interpretar seales analgicas, ya que solo utiliza seales digitales. Es necesario traducir, o transformar en seales binarias, lo que se denomina proceso de digitalizacin o conversin de seales analgicas a digitales.
En la grfica inferior se observa una seal analgica, que para ser interpretada en un ordenador ha de modificarse mediante digitalizacin. Un medio simple es el muestreado o sampleado. Cada cierto tiempo se lee el valor de la seal analgica. Si el valor de la seal en ese instante est por debajo de un determinado umbral, la seal digital toma un valor mnimo (0).
Cuando la seal analgica se encuentra por encima del valor umbral, la seal digital toma un valor mximo (1).
Imagen:
Fig. 5.13 Digitalizacin por muestreado de una seal analgica
El momento en que se realiza cada lectura es ordenado por un sistema de sincronizacin que emite una seal de reloj con un perodo constante. Estas conversiones analgico-digitales son habituales en adquisicin de datos por parte de un ordenador y en la modulacin digital para transmisiones y comunicaciones por radio.
152
5.3 INTERRUPCIONES
(SISTEMA DE INTEGRACION MODULAR)
5.3.1 Introduccin
En esta seccin se explicar el sistema de integracin modular, el cual soporta hasta 24 interrupciones internas y externas, junto con la CPU, los controles SIM y todas las actividades de la MCU. A continuacin se ilustra un diagrama que muestra un resumen de los registros de I/O existentes en la SIM. La SIM es un sistema de control de estados que coordina a la CPU, y es responsable de:
Generacin del reloj de bus, control de la CPU y perifricos Arranque, parada, espera y ruptura de entrada y recuperacin. Control del reloj interno. Control maestro del reset, incluyendo el Power - on- Reset y el tiempo de rebosamiento del COP. Control de interrupciones. Habilitacin y deshabilitacin de tiempos en la CPU.
IPN-ESIME Zacatenco Electrnica III
153
Fig. 5.14 Diagrama del SIM 5.3.2 Entrada-salida e interrupcin
Una computadora no puede tener un propsito til a menos que se comunique con un ambiente externo. Las instrucciones y los datos almacenados en la memoria deben provenir de algn dispositivo de entrada. Los resultados computacionales deben transmitirse al usuario mediante algn dispositivo de salida. Las computadoras comerciales incluyen muchos tipos de dispositivos de entrada y salida. Para mostrar la mayor parte de los requerimientos bsicos para comunicacin de entrada y salida, utilizaremos como ejemplo una unidad terminal con un teclado e impresora.
5.3.3 Configuracin de entrada-salida
La terminal enva y recibe informacin serial. Cada cantidad de informacin tiene ocho bits de un cdigo alfanumrico. La informacin serial del teclado se cambi dentro del registro de entrada INPR. La informacin serial para la impresora se almacena en el registro de salida OUTR. Estos dos registros comunican en forma serial con una interfaz de comunicacin y con el AC en paralelo. La configuracin de entrada-salida se muestra en la figura 5-12. La interfaz que transmite recibe informacin serial del teclado y la transmite a INPR. La interfaz que recibe acepta informacin de OUTR y la enva en forma serial a la impresora.
El registro de entrada INPR consta de ocho bits y contiene informacin de entrada alfanumrica. La bandera de entrada de 1 bit FGI es un flip-flop de control. El bit de la bandera se activa en 1 cuando hay disponible informacin nueva en el dispositivo de entrada y se desactiva a O cuando la computadora acepta la informacin. La bandera es necesaria para sincronizar la diferencia de la velocidad de temporizacin entre el dispositivo de
entrada y la computadora. El proceso de transferencia de informacin e como sigue. Al principio, la bandera de entrada FG se desactiva a 0. Cuando se oprime una tecla en el teclado, se ejecuta un corrimiento sobre un cdigo alfanumrico de 8 bits dentro de INPR y la bandera de entrada FGI se inicia en 1.
154
Fig. 5.15 Configuracin de entrada salida
Mientras la bandera est en uno, no puede cambiarse la informacin en INPR al oprimir otra tecla. La computadora comprueba el bit de la bandera; si es 1, la informacin de INPR se transfiere en paralelo dentro de AC y FGI se reinicia a 0. Una vez que se desactiva la bandera, puede introducirse informacin nueva dentro de INPR al oprimir otra tecla.
El registro de salida OUTR funciona en forma similar pero la direccin del flujo de informacin est invertida. Al principio la bandera de salida FGO se activa en 1. La computadora comprueba el bit de la bandera; si es 1, la informacin de AC se transfiere en paralelo a OUTR y FGO se desactiva a 0. El dispositivo de salida acepta la informacin codificada, imprime el carcter correspondiente, y cuando se termina la operacin activa FGO en 1. La computadora no carga un nuevo carcter en OUTR cuando FGO es O porque esta condicin indica que el dispositivo de salida se encuentra en el proceso de imprimir el carcter.
5.3.4 Instrucciones entrada - salida
Se necesitan instrucciones de entrada y salida para transferir informacin hacia y desde el registro AC, para comprobar los bits de bandera, y para controlar la opcin de interrupcin. Las instrucciones de entrada-salida tienen un cdigo de operacin 1111 que reconoce el control cuando D 7 = 1 e / = 1. Los bits restantes de la instruccin especifican la operacin particular. Las funciones de control y las microoperaciones para las instrucciones de entrad a-sal da se listan en la tabla 5-5. Estas instrucciones se ejecutan con la transicin de reloj asociada con la seal de temporizacin T 3 . Cada funcin de control necesita una relacin booleana D 7 IT 3 , que nosotros representamos por conveniencia con el smbolo p. La funcin de control se diferencia por uno de los bits en IR (6-11). Al asignar el smbolo Bi, al bit i de IR, todas las funciones de control pueden representarse mediante pB para = 6 a 11. El contador secuencial SC se borra a O cuando p = D 7 IT 3 = 1.
La instruccin INP transfiere la informacin de entrada de NPR a los ocho bits de orden menor de AC y tambin desactiva la bandera de entrada a 0. La instruccin OUT transfiere los ocho bits menos significativos de AC al registro de salida de OUTR y desactiva la bandera de salida a 0. Las siguientes dos instrucciones de la tabla 5-5 comprueban el estado de las banderas y producen un salto de la siguiente instruccin si la bandera es 1.
La instruccin que se salta por lo general ser una instruccin de transferencia o brinco para retomar y comprobar una vez ms la bandera. La instruccin de transferencia no se salta si la bandera es 0. Si la bandera es 1, la instruccin de transferencia se salta y se ejecuta una instruccin de entrada o salida. Las ltimas dos instrucciones activan y desactivan un flip-flop de habilitacin de interrupcin /EN. El propsito de IEN se explica junto con la operacin de interrupcin.
IPN-ESIME Zacatenco Electrnica III
155
5.3.5 Interrupcin del programa
El concepto de interrupcin de programa se utiliza para manejar diversos problemas que surgen de la secuencia de programa normal. La interrupcin de programa se refiere a la transferencia del control de programa de un programa que corre en cierto momento a otro programa de servicio, como resultado de una solicitud generada en forma externa o interna. El control retorna al programa original despus de que se ejecuta el programa de servicio.
El procedimiento de interrupcin es, en principio, muy similar a una solicitud de subrutina, excepto por tres diferencias: 1) por lo general la interrupcin se inicia mediante una seal externa o interna ms que por la ejecucin de una instruccin (excepto para una interrupcin de programa, como se explica ms adelante); 2) la direccin del programa de servicio de interrupcin la determina la circuitera y no el campo de direccin de una instruccin; y 3) un procedimiento de interrupcin por lo general almacena toda la informacin necesaria para definir el estado de la CPU en lugar de slo almacenar el contador de programa. Estos tres conceptos de procedi- miento se detallan en seguida.
Despus de que se ha interrumpido un programa y se ha ejecutado la rutina de servicio, la CPU retorna al mismo estado exacto que tena cuando ocurri la interrupcin. Slo de esta manera el programa interrumpido podr reanudar exactamente como si nada hubiera ocurrido. El estado de la CPU al final del ciclo de ejecucin (cuando se reconoce la interrupcin) est determinado por:
1. El contenido del contador del programa. 2. El contenido de todos los registros del procesador. 3. El contenido de ciertas condiciones de estado.
El conjunto de todas las condiciones de bit de estado en la CPU se denomina en ocasiones una palabra de estado de programa o PSW (program status word). La PSW se almacena en un registro de hardware separado y contiene la informacin de estado que caracteriza a la CPU. Normalmente, incluye los bits de estado de la ltima operacin de la ALU y especifica las interrupciones que se han permitido ocurran y si la CPU est operando en un modo supervisor o de usuario. Muchas computadoras tienen un sistema operativo residente que controla y supervisa todos los otros programas en la computadora. Cuando la CPU ejecuta un programa que es parte del sistema operativo, se dice que est en modo de supervisor o de sistema. Ciertas instrucciones tienen privilegios y slo pueden ejecutarse en este modo. Por lo general la CPU est en el modo usuario cuando ejecuta programas de usuario. El modo en el cual est operando la CPU en cualquier momento dado lo determinan los bits de estado especiales en la PSW.
Algunas computadoras slo almacenan el contador de programa cuando responden a una interrupcin. El programa de servicio debe entonces incluir instrucciones para almacenar el contenido de estado y registro antes de que se utilicen estos recursos. Slo unas cuantas computadoras almacenan el contador de programa y todo el
156
contenido de los registros y del registro de estado en respuesta a una interrupcin. La mayora de las computadoras slo almacenan el contador de programa y la PSW. En algunos casos, existen dos conjuntos de registros de procesador dentro de la computadora, uno para cada modo CPU. De esta manera, cuando el programa cambia del modo usuario al supervisor (o viceversa) en respuesta a una interrupcin, no es necesario almacenar el contenido de los registros de procesador porque cada modo utiliza su propio conjunto de registros.
El procedimiento de hardware para procesar una interrupcin es muy similar a la ejecucin de una instruccin de solicitud de subrutina. El estado de la CPU se salva a una pila de memoria y la direccin inicial de la rutina de servicio se transfiere al contador de programa. La direccin inicial de la rutina de servicio la determina la circuitera en lugar de un campo de direccin de una instruccin. Algunas computadoras asignan una localidad de memoria en donde se transfieren siempre las interrupciones. La rutina de servicio debe determinar despus qu fue lo que produjo la interrupcin y proceder a darle servicio. Algunas computadoras asignan una localidad de memoria para cada interrupcin posible. En ocasiones, la interrupcin de hardware proporciona su propia direccin, la cual dirige a la CPU a la rutina de servicio deseada. En cualquier caso, la CPU debe poseer alguna forma de procedimiento de hardware para seleccionar una direccin de transferencia del control para dar servicio a la interrupcin. La CPU no responde a una interrupcin hasta el final de una ejecucin de instruccin. Justo antes de pasar a la siguiente fase de recuperacin, el control comprueba cualquier seal de interrupcin. Si est pendiente una, el control va a un ciclo de interrupcin de hardware. Durante este ciclo el contenido de PC y PSW se salva dentro de la pila. Despus se carga la direccin de transferencia para la interrupcin particular al PC y se carga una nueva PSW dentro del registro de estado. El programa de servicio puede ejecutarse ahora, comenzando de la direccin de transferencia y con un modo CPU segn lo especifica la nueva PSW.
La ltima instruccin en el programa de servicio es una instruccin de retorno de interrupcin. Cuando se ejecuta esta instruccin, se hace leer la pila para recuperar la PSW anterior y la direccin de retorno. La PSW se transfiere al registro de estado y la direccin de retorno al contador de programa. Por lo tanto, se restablece el estado de la CPU y el programa original puede continuar su ejecucin.
5.3.6 Tipos de interrupciones
Existen tres tipos principales de interrupciones que producen una detencin en la ejecucin normal de un programa. Se clasifican de la manera siguiente:
1. Interrupciones externas 2. Interrupciones internas 3. Interrupciones de programa
Las interrupciones externas provienen de dispositivos de entrada y salida (E/S), de un dispositivo de temporizacin, de un circuito que monitorea la fuente de alimentacin o de cualquier otra fuente externa. Algunos ejemplos de lo que produce interrupciones IPN-ESIME Zacatenco Electrnica III
157
externas son dispositivos de E/S que solicitan transferencia de datos, dispositivos de E/S que terminan transferencia de datos, tiempo transcurrido de un evento o una falla de energa. Puede ocurrir una interrupcin por tiempo transcurrido de un programa que est en un ciclo que no termina y que, por lo tanto, excede su tiempo asignado. Una interrupcin por falla de energa puede tener como su rutina de servicio a un programa que transfiere el estado completo de la CPU a una memoria no voltil en los pocos segundos anteriores a una falla de energa.
Las interrupciones internas surgen debido a la utilizacin ilegal o errnea de una instruccin o datos. Las interrupciones internas tambin se llaman trampas. Algunos ejemplos de las interrupciones provocadas por condiciones de error internas son los sobreflujos de registro, intentar dividir entre cero, un cdigo de operacin no vlido, desbordamiento de pila, y violacin de la proteccin. Por lo general, estas condiciones de error ocurren como resultado de una terminacin prematura de la ejecucin de una instruccin. El programa de servicio que procesa la interrupcin interna determina la medida correctiva que se debe tomar.
La diferencia entre las interrupciones interna y externa es que la interna se inicia por alguna condicin excepcional causada por el programa mismo, ms bien que por un evento externo. Las interrupciones internas son sncronas con el programa en tanto que las externas no lo son. Si el programa se vuelve a ejecutar, las interrupciones internas ocurrirn en el mismo lugar cada vez. Las interrupciones externas dependen de condiciones independientes al programa que se ejecuta en ese momento.
Las interrupciones internas y externas se inician a partir de seales que ocurren en la circuitera de la CPU. Una interrupcin de programa se inicia al ejecutar una instruccin. La interrupcin de programa es una instruccin de solicitud especial que se comporta como una interrupcin ms que como una solicitud de subrutina. El programador puede utilizarla para iniciar un procedimiento de interrupcin en cualquier punto que se desee del programa. El uso ms comn de la interrupcin de programa se asocia con una instruccin de llamada de supervisor. Esta instruccin proporciona medios para cambiar el modo de usuario de CPU al modo supervisor. Slo ciertas operaciones pueden asignarse al modo supervisor en la computadora, por ejemplo, un procedimiento de transferencia de entrada o salida complejo. Un programa escrito por un usuario debe correr en el modo usuario. Cuando se necesita una transferencia de entrada o salida, se solicita el modo supervisor mediante una instruccin de solicitud de supervisor. Esta instruccin produce una interrupcin de programa que almacena el estado anterior de la CPU y trae una nueva PSW que pertenece al modo supervisor. El programa que I solicita debe pasar la informacin al sistema operativo con el fin de especificar la tarea particular solicitada.
El proceso de comunicacin que se acaba de describir se refiere a una transferencia de control programada. La computadora comprueba continuamente el bit de bandera, y cuando lo encuentra activo en uno, inicia una transferencia de informacin. La diferencia de la velocidad del flujo de informacin de la computadora y el del dispositivo de entrada-salida hace ineficiente este tipo de transferencia. Para apreciar por qu es ineficiente, pensemos en una computadora que puede recorrer un ciclo de instruccin
158
en un microsegundo. Consideremos que el dispositivo de entrada-salida puede transferir informacin a una velocidad mxima de 10 caracteres por segundo. Esto es equivalente a un carcter cada 100 000 microsegundos. Se ejecutan dos instrucciones cuando la computadora comprueba el bit de bandera y decide no transferir la informacin. Esto significa que a una velocidad mxima la computadora comprobar la bandera 50 000 veces entre cada transferencia. La computadora gasta tiempo en comprobar la bandera en lugar de hacer otra tarea de procesamiento til.
Una alternativa al procedimiento controlado que se programa es permitir que el dispositivo externo informe a la computadora cuando est listo para la transferencia. Mientras tanto, la computadora puede ocuparse con otras tareas. Este tipo de transferencia utiliza la opcin de interrupcin. Mientras la computadora corre un programa, no comprueba las banderas. Sin embargo, cuando se activa una bandera, la computadora interrumpe momentneamente su procedimiento con el programa actual y se le informa que se ha activado una bandera. La computadora deja momentneamente lo que est haciendo para ocuparse de la transferencia de entrada o salida. Despus regresa al programa actual a continuar lo que estaba haciendo antes de la interrupcin. El flip-flop de habilitacin de interrupcin IEN puede habilitarse o deshabilitarse con dos instrucciones. Cuando IEN se borra a O (con la instruccin IOF), las banderas no pueden interrumpir a la computadora. Cuando IEN se activa en 1 (con la instruccin ION), la computadora puede ser interrumpida. Estas dos instrucciones le proporcionan al programador la opcin de decidir si utiliza o no la opcin de interrupcin.
La manera en que la computadora maneja la interrupcin puede explicarse mediante el diagrama de flujo de la figura 5-13. Se incluye un flip-flop de interrupcin R en la computadora. Cuando R = O, la computadora ejecuta un ciclo de instruccin. Durante la fase de ejecucin de la instruccin, el control comprueba el estado de IEN. Si es O, indica que el programador no desea usar la interrupcin, por lo que el control contina con el siguiente ciclo de instruccin. Si IEN es 1, el control comprueba los bits de bandera. Si ambas banderas son O, significa que tanto el registro de entrada como de salida no estn listos para una transferencia de informacin. En este caso el control contina con el siguiente ciclo de instruccin. Si alguna bandera est en 1 mientras IEN = 1, el flip-flop R se inicia en 1. Al final de la fase de ejecucin, el control comprueba el valor de R, y si es igual a 1, va a un ciclo de interrupcin en lugar de un ciclo de instruccin;
El ciclo de interrupcin es una implementacin de hardware de una transferencia de programa y salva la direccin de retorno de la siguiente instruccin. La direccin de retorno disponible en el PC se almacena en una localidad especfica donde pueda encontrarse despus, cuando el programa retorne a la instruccin en la cual fue interrumpido. Esta localidad puede ser un registro de procesador, una pila de memoria, o una posicin de memoria especfica. Aqu escogemos la localidad de memoria en la direccin O como el lugar para almacenar la direccin de retorno. Despus el control inserta la localidad 1 dentro del PC y deshabilita IEN y R para que no puedan ocurrir ms interrupciones hasta que se haya atendido la solicitud de interrupcin de la bandera.
IPN-ESIME Zacatenco Electrnica III
159
Un ejemplo que muestra lo que sucede durante el ciclo de interrupcin aparece en la figura 5.16. Supongamos que ocurre una interrupcin y R se inicia en 1 mientras el control est ejecutando la instruccin en la direccin 255. En este momento, la direccin de retorno 256 est en PC. El programador ha colocado previamente un programa de servicio de entrada-salida en la memoria comenzando en la direccin 1120, y una instruccin BUN 1120 en la direccin 1. Esto se muestra en la figura 5.17(a).
Cuando el control alcanza la seal de temporizacin T 0 y encuentra que R = 1, procede con el ciclo de interrupcin. El contenido del PC (256) se almacena en la localidad de memoria O, PC se inicia en 1, y R se reinicia a 0.
Fig. 5.16 Diagrama de flujo para el ciclo de interrupcin
160
Fig. 5.17 Ejemplo de ciclo de interrupcin
Al comienzo del siguiente ciclo de instruccin, la instruccin que se lee de la memoria est en la direccin 1 porque ste es el contenido de PC. La instruccin de brinco en la direccin 1 hace que el programa se transfiera al programa de servicio de entrada- salida en la direccin 1120. Este programa comprueba las banderas, determina cul bandera est en uno y despus transfiere la informacin de entrada o salida requerida. Una vez que hace esto, se ejecuta la instruccin ION para activar IEN en 1 (para habilitar interrupciones posteriores), y el programa regresa a la posicin en la cual fue interrumpido. Esto se muestra en la figura 5.17 (b).
La instruccin que regresa a la computadora al lugar original en el programa principal es una instruccin de brinco indirecto, con una parte de direccin de 0. Esta instruccin se coloca al final del programa de servicio de entrada-salida. Despus de que esta instruccin se lee de la memoria durante la fase de bsqueda, el control va a la fase indirecta (porque / = 1) para leer la direccin efectiva. La direccin efectiva est en la posicin y es la direccin de retorno que se almacen ah durante el ciclo de interrup- cin previo. La ejecucin de la instruccin BUN indirecta da como resultado la colocacin dentro de PC de la direccin de retorno en la localidad 0.
5.3.7 Ciclo de interrupcin
Ahora estamos preparados para listar los enunciados de transferencia de registros para el ciclo de interrupcin. El ciclo de interrupcin se inicia despus de la ltima fase de ejecucin si el flip-flop R de interrupcin es igual a 1. Este flip-flop se activa en 1 si IEN = 1 y si FGI o FGO son iguales a 1. Esto puede suceder con cualquier transicin de reloj excepto cuando las seales de temporizacin TQ, T l, o T 2 estn activas. La condicin para activar el flip-flop R en 1 puede expresarse con el siguiente enunciado de transferencia de registro:
IPN-ESIME Zacatenco Electrnica III
161
T 0 T 1 T 2 (IEN)(FGI + FGO): R -1
El smbolo + entre FGI y FGO en la funcin de control representa una funcin OR lgica. A esto se aplica la funcin AND con IEN y T 0 T 1 T 2 .
Ahora modificaremos las fases de bsqueda y decodificacin del ciclo de instruccin. En lugar de slo usar las seales de temporizacin T O , T I , y T 2 ) aplicaremos la funcin AND con R' a las tres seales de temporizacin para que las fases de bsqueda y de decodificacin se reconozcan de las tres funciones de control R'TQ, R'Ti y R'T 2 . La razn para hacer esto es que el tiempo en que se ejecuta la instruccin y SC se borra a O, el control recorre una fase de bsqueda slo si R = 0. De otra manera si R = I, el control recorrer un ciclo de instruccin.
El ciclo de interrupcin almacena la direccin de retorno (disponible en PC) dentro de la posicin de memoria O, modifica a la posicin de memoria 1, y desactiva IEN, R y SC a 0. Esto puede hacerse con la siguiente secuencia de microoperaciones:
RT 0 : AR 0, TRPC RT 1: M[AR]TR, PC-0 RT 2 : PCPC + 1, IEN 0, R0, SC-0
Durante la primera seal de temporizacin se borra AR a O, y el contenido de PC se transfiere al registro temporal TR. Con la segunda seal de temporizacin, la direccin de retorno se almacena en la memoria en la posicin O y PC se carga a 0. La tercera seal de temporizacin incrementa PC a 1, desactiva IEN y R, y el control regresa a T 0
a borrar SC a 0. El inicio del siguiente ciclo de instruccin tiene la condicin R'T 0 y el contenido de PC es igual a 1. Despus el control recorre un ciclo de instruccin que busca y ejecuta la instruccin BUN en la localidad 1.
Fuentes de Interrupcin
162
Direcciones de interrupciones Avanzadas
5.3.8 La instruccin SWI
La SWI es una instruccin no enmascarable que causa una interrupcin indiferente del estado que posea el bit I (bit bandera de interrupcin), en la condicin de registro de cdigo.
Una interrupcin por software enva el PC (contador de programa) al stack. Una interrupcin por software no aplica al PC=PC - 1, cosa que s hace una interrupcin por hardware.
RESET
Todas las fuentes de reset son las que tienen igual o mayor prioridad sobre las dems y no pueden ser omitidas de ninguna forma. El reset obliga a que el bit I tome el valor "I" lgico y en "O" lgico todos los bits que permiten la habilitacin de interrupciones locales a fin de prevenir interrupciones durante el proceso de inicializacin. Cuando el bit I est en uno, ninguna interrupcin (excepto SWI) es reconocida. Aunque pueda registrarse a la fuente de interrupcin, su pedido no ser atendido hasta que el bit I se ponga en cero.
IPN-ESIME Zacatenco Electrnica III
163
Se debe tener en cuenta que si se produce una interrupcin mientras la CPU est ejecutando una instruccin, la instruccin ser completada antes de que la CPU responda al pedido de interrupcin. Las interrupciones pueden ser deshabilitadas en conjunto colocando el bit I del CCR en "1" lgico, o colocando en ceros los bits de control de habilitacin de cada fuente de interrupcin.
5.3.9 Modulo de interrupcin por teclado (KBI)
En muchas aplicaciones es comn el uso de dispositivos para introducir informacin, caso particular del teclado, el cual se hace presente en desarrollos como los controles de bandas transportadoras, programacin de tareas, horarios, control de acceso, etc.
El mdulo de interrupcin por teclado tiene siete (7) interrupciones externas manipuladas de manera independiente cada una de ellas, y se encuentran disponibles entre los pines PTA[0:6].
Entre las caractersticas del mdulo de interrupcin por teclado podemos mencionar las siguientes:
Siete pines de interrupcin por teclado habilitadas por separado cada una y un solo bit indicador de la interrupcin.
Configuracin de resistencias de Pull-Up. Interrupcin programable por flanco o flanco/ nivel. Salida en modo de bajo consumo.
Direccion $001A
Los bits del 7 al 4 no son utilizados, y siempre son ledos como 0 lgico.
KEYF: bit de bandera de teclado
Este bit es de slo lectura y toma el valor 1 lgico cuando la interrupcin por teclado ha ocurrido y se encuentra pendiente por atender.
1: Interrupcin de teclado pendiente 0: Interrupcin de teclado no pendiente ACKK: bit de reconocimiento de teclado
Este bit es ledo siempre como 0 lgico, pero cuando se escribe en l un 1 lgico se est indicando que la interrupcin por teclado ya fue atendida y, por ende, el bit KEYF retorna a 0 lgico.
IMASKK: bit de habilitacin de interrupcin por teclado
164
1: Deshabilita la interrupcin por teclado 0: Habilita la interrupcin por teclado
MODEK: Configuracin de sensibilidad de activacin del teclado
1: Interrupcin activada por flanco descendente y nivel lgico bajo 0: Interrupcin activada por flanco descendente solamente
5.3.10 Registro de habilitacin de interrupciones de teclado (KBIER)
Direccin $001B
Este registro habilita o deshabilita independientemente los pines del puerto A para utilizar la interrupcin por teclado.
1: El bit KBIx es habilitado para interrupcin por teclado 0: El bit KBIx es deshabilitado para interrupcin por teclado
Cuando se habilita la interrupcin en un pin especfico, la resistencia de Pull-Up es habilitada tambin en el pin correspondiente.
5.3.11 Inicializacin del teclado
Cuando un pin de interrupcin por teclado es habilitado, le toma un tiempo interno a la resistencia de Pull-Up alcanzar un 1 lgico. Por tanto, una interrupcin falsa puede ocurrir tan pronto como el pin es habilitado. Para prevenir una falsa interrupcin en la inicializacin del teclado se debe efectuar lo siguiente:
IMASKK = 1 Asignar los valores a cada uno de los KBIx. ACKK = 0 IMASKK = 0
Otra forma de evitar una interrupcin falsa es la siguiente:
Configurar todo el puerto A como salida, esto se hace colocando cada uno de los bits del registro DDRA en 1 lgico. Escribir un 1 lgico en cada uno de los bits correspondientes al puerto A. Asignar los valores a cada uno de los KBIx.
IPN-ESIME Zacatenco Electrnica III
165
Los teclados pueden tener varias configuraciones, unos pueden ser matriciales y otros lineales.
Los teclados lineales son los que poseen tantos pines como teclas presenten y dos pines ms para alimentacin. Cada vez que se pulse una tecla, esta enviar a su respectivo pin un nivel bajo, identificando con ello la tecla pulsada.
Los teclados matriciales, los cuales son los ms utilizados en la gran mayora de aplicaciones electrnicas se encuentran configurados, como su nombre lo indica, como una matriz.
Para identificar una tecla, sta se encuentra direccionada por una fila y una columna, y la interseccin de ellas encasilla la tecla. En nuestro caso se explicar un ejemplo de interrupcin por teclado, mediante un teclado matricial de 12 teclas (teclado de telfono), el cual enviar el valor de la tecla pulsada a una pantalla de cristal liquido. Segn el circuito, la tecla que sea pulsada presentar tanto en la fila como en la columna que la direcciona un O lgico, este cero ser rotado por las columnas del teclado y cuando la tecla sea pulsada, ste ser enviado directamente a la fila que la preside provocando con ello la interrupcin por teclado.
La forma de configurar el teclado es la siguiente:
Configuramos los pines para el manejo del teclado, en nuestro caso los bits de PTA[6:3] sern entradas (filas) y los bits PTA[2:0] sern salidas (columnas).
MOV #$FF,PORTA MOV #%10000111,DDRA
Configuramos las resistencias de Pull-Up para los pines PTA[6:3] y habilitamos el pin PTA6 como un pin de I/O y no como una funcin del oscilador de tipo RC, colocando en 1 lgico en bit 7 del registro PTAPUE.
MOV #%11111000,PTAPUE
Para evitar una interrupcin falsa, efectuamos lo siguiente:
IMASKK = 1 Asignar los valores a cada uno de los KBIx. ACKK = 0 IMASKK = 0
APLICACIN DE MICROCONTROLADORES EN INGENIERA ELCTRICA IPN-ESIME Zacatenco Electrnica III
167
Nombre del proyecto: Control Automtico de Nivel de Agua para Enfriamiento Tipo OW de Transformadores Sumergidos en Aceite utilizando el microcontrolador HC12
6.1 PLANTEAMIENTO DEL PROYECTO
En ingeniera elctrica se necesitan de procesos que se efecten de manera automtica, uno de estos procesos tiene que ver con el enfriamiento de los transformadores, ya que stos estn propensos a sufrir fallas elctricas si presentan transmisin de calor a travs de sus devanados, lo que provoca que el material aislante se deteriore, existen diversos factores que pueden hacer que el transformador falle debido al calor producido en el mismo:
La masa volumtrica. El coeficiente de dilatacin trmica. La viscosidad. El calor especific. La conductividad trmica.
El calor producido por las prdidas se transmite a travs de un medio al exterior, este medio puede ser aire o bien lquido.
Transformadores con enfriamiento tipo OW: Los transformadores sumergidos en aceite, con enfriamiento por aguar estn equipados con un cambiador de calor tubular colocado fuera del tanque, el agua de enfriamiento circula en el interior de los tubos y se drena por gravedad o por medio de una bomba independiente.
El aceite fluye, estando en contacto con la superficie exterior de los tubos.
El agua que circula a travs de los tubos es drenada a un depsito donde se almacena y se vuelve a enfriar, de manera tal que despus de ser enfriada vuelve a circular por medio de los mismos tubos para enfriar nuevamente el transformador, este proceso se hace de manera constante y no se debe interrumpir.
Objetivo
Controlar en forma automtica el nivel de agua en los depsitos destinados a los transformadores con enfriamiento tipo OW, para el constante proceso de intercambio de calor. Obtener un ptimo proceso de enfriamiento que permita manipular el intercambio
168
de agua en los serpentines del transformador de manera constante mediante un proceso, utilizando el microcontrolador HC12.
6.2 ACEPTACIN DEL PROYECTO
En el tipo de enfriamiento OW (Oil Water) El transformador se encuentra sumergido en aceite, cuyo enfriamiento se realiza en un intercambiador semejante al del tipo anterior, solo que el movimiento del aceite es por conveccin natural y el drenaje del agua es por gravedad.
Fig. 6.1 Transformador sumergido en aceite con enfriamiento tipo OW
La aplicacin de microcontroladores para manipular procesos de control es importante en la ingeniera elctrica, es este caso se implementar un programa con el microcontrolador del HC12 para controlar el suministro de agua en los depsitos destinados al enfriamiento del transformador sumergido en aceite.
El microcontrolador ser utilizado para detectar estados de 0 y 1 que indicarn el inicio del proceso de reabastecimiento del lquido a travs de los tubos, por medio de niveles en los que permita el enfriamiento de agua.
El proceso es el siguiente:
1. El agua drenada por el transformador ser depositada en un contenedor o cisterna de enfriamiento de agua.
2. Los sensores detectarn cuando el contenedor se encuentre lleno y darn paso al llenado de un segundo nivel de agua.
3. Una vez que se ha llenado el segundo nivel, se cerrar el sistema y el lquido frio circular nuevamente por medio de serpentines en el transformador para el enfriamiento del mismo.
4. Una vez que el segundo depsito se vace, se dar paso a drenar nuevamente el agua para el contenedor o cisterna de enfriamiento de agua. IPN-ESIME Zacatenco Electrnica III
169
5. El proceso ser constante.
6.3 SUPERVISIN
SENSORES: Los sensores de nivel consisten en 3 simples conductores para cada depsito sumergidos el agua y un conductor extra conectado a 5V del circuito. El agua se encarga de hacer la conexin elctrica entre los sensores y el conductor de 5V. As, cuando el agua llegu al primer nivel el nivel lgico cambiar de 0 a 1 indicando que ya hay agua en ese nivel. Para los otros sensores es lo mismo, de modo que cuando el depsito este lleno el microcontrolador leer todas las entradas de sensores de ese depsito como "1", Cuando est vaco los leer como 0. Para ms estabilidad en los estados ledos por el micro se recomienda usar resistencia PULL-DOWN conectadas a las entradas del micro.
Fig. 6.2 Diagrama pictrico del sistema controlado
Como se ve en la figura 6.2, hay dos LEDs que indican la falta de agua o una cisterna llena.
Los sensores de la cisterna se conectan a los pines 6, 5 y 4 del puerto A, los sensores del tinaco se conectan a los pines A0, A1 y A2 del mismo puerto A. La bomba de agua y
170
la electrovlvula que controla el llenado de la cisterna son controladas por pines del puerto B.
Fig. 6.3 Diagrama de conexin elctrica
Arriba aparece el diagrama de conexin elctrica. El motor de la bomba y la vlvula electromecnica son activadas por medio de transistores con su respectivo diodo de "marcha libre" para evitar sobrecalentamientos en el transistor. El pin B2 del puerto B controla al motor y al indicador de cisterna vaca por lo que habr poner atencin en los niveles de voltaje, tal vez sea necesario no conectar el LED al mismo pin.
6.4 PRUEBAS DE ACEPTACIN
La tabla 6.4 presenta la lgica de control. Con poca agua no se activa el motor de llenado del nivel dos y se abre la vlvula de llenado de cisterna. Con nivel medio de agua se puede llenar el nivel dos, etc.
El microcontrolador usado es el HC12 en una tarjeta de evaluacin de la empresa RACOM. Como compilador se usa el UTIL12 en ambiente MS-DOS. Se programa en lenguaje ensamblador. El programa se corre en lnea, es decir, el cdigo corriendo en la memoria RAM del microcontrolador. IPN-ESIME Zacatenco Electrnica III
A continuacin se presenta el programa en lenguaje ensamblador para el funcionamiento del microcontrolador HC12
;***************************************************************************** ;Este programa controla el nivel de agua en una cisterna alimentada por una ;vlvula electromecnica y en un nivel 2 alimentado por una bomba de agua para ;el suministro de lquido a los serpentines de un transformador con ;enfriamiento tipo OW ;El nivel de agua se mide por medio de tres sensores en cada deposito ;conectados al Puerto A ;El control se realiza abriendo o cerrando la vlvula y activando o apagando ;la bomba de agua. ;*****************************************************************************
INCLUDE "EQUHC12.ASM" CLR COPCTL ORG $800 MOVB #$00,DDRA ;PUERT A COMO ENTRADAS MOVB #$07,DDRB ;PUERTO B CON TRES SALIDAS INICIO: LDAA PORTA ;LEEE DATOS EN PUERTO A LDAB #$00 CBA ;CISTERNA VACIA Y TODOS LOS CASOS POSIBLES BEQ CASO1 ;EN EL NIVEL 2 LDAB #$01 CBA BEQ CASO1 LDAB #$03
172
CBA BEQ CASO1 LDAB #$07 CBA BEQ CASO1 LDAB #$10 ;CISTERNA EN EL NIVEL MAS BAJO, NECESITA AGUA CBA ;PERO PUEDE FUNCIONAR LA BOMBA BEQ CASO2 LDAB #$11 CBA BEQ CASO2 LDAB #$13 CBA BEQ CASO1 LDAB #$17 CBA BEQ CASO1 LDAB #$30 ;CISTERNA CON EL NIVEL >= QUE LA MITAD, NO ES CBA ;NECESARIO ABRIR LLAVE PARA LLENAR LA CISTERNA BEQ CASO3 LDAB #$31 CBA BEQ CASO3 LDAB #$33 CBA BEQ CASO4 LDAB #$37 CBA BEQ CASO4 LDAB #$70 ;CISTERNA LLENA, ENCIENDE LED VERDE, ES DECIR CBA ;EL NIVEL DEL AGUA ESTA EN SU MAXIMO NIVEL Y ES BEQ CASO5 ;NECESARIO DETENER EL PASO DEL AGUA PARA EVITAR LDAB #$71 ;QUE EL AGUA SE DERRAME. CBA BEQ CASO5 LDAB #$73 CBA BEQ CASO6 LDAB #$77 CBA BEQ CASO6 INICIO1: BRA INICIO CASO1: MOVB #$04,PORTB ;INDICA CISTERNA VACIA, LA BOMBA NO ENCENDERA BRA INICIO1 CASO2: MOVB #$05,PORTB ;INDICA CISTERNA CON POCO LIQUIDO PERO PUEDE BRA INICIO1 ;ABASTECER EL NIVEL 2 CASO3: MOVB #$01,PORTB ;CISTERNA CON NIVEL DE AGUA SUFICIENTE BRA INICIO1 CASO4: MOVB #$00,PORTB ;EL NIVEL 2 Y CISTERNA TIENEN AGUA SUFICIENTE BRA INICIO1 CASO5: MOVB #$03,PORTB ;CISTERNA LLENA MOTOR FUNCIONANDO BRA INICIO1 CASO6: MOVB #$02,PORTB ;CISTERNA LLENA BOMBA APAGADA BRA INICIO1 SWI IPN-ESIME Zacatenco Electrnica III
173
6.5 DEMOSTRACIN Y EXHIBICIN DEL PROYECTO
Debido a que la demostracin de este proyecto requiere de elementos tales como transformadores y equipos sofisticados, se puede comprobar el funcionamiento implementando una simulacin con materiales accesibles.
Se puede utilizar un motor de pecera para simular la bomba.
La vlvula electromecnica se puede representar mediante un LED que indique su activacin.
Los sensores pueden ser pequeos trozos de cable con la punta descubierta.
Los depsitos de agua pueden ser contenedores tales como cubetas o recipientes que contengan la cantidad indispensable de agua para el suministro.
Se puede simular el enfriamiento del transformador mediante tubos de cobre en forma de serpentn, siendo calentado con ayuda de mecheros en la parte central del tubo.
174
REFERENCIAS BIBLIOGRFICAS
Rodrguez, Luis (1999). Electrnica digital Moderna. Compaa Editorial Tecnolgica CEKIT.
LDAA $0800 ANDA #1 BEQ PAR MOVB #1,0801 BRA FIN PAR: CLR $0801 FIN: SWI
SERIE DE FIBONACCI
LDAB $0800 BEQ FIN LDX #$0804 MOVB #1,$0801 MOVB #1,$0802 REPITE: LDAA $0801 STAA 0, X ADDA $0802 MOVB $0802, $0801 STAA $0802 NX DECB BNE REPITE FIN: SWI
METODO DE LA BURBUJA
LDX #$0808 LDY #$0809 MOVB #$9, $0800 DNUEVO: MOVB $0800, $0801 REPITE: LDAA X IPN-ESIME Zacatenco Electrnica III
185
LDAB Y CBA BMI SALTA INY DEC $0801 BNE REPITE BEQ SIGUE SALTA: MOVB Y, X STAA Y INY DEC $0801 BNE REPITE BEQ SIGUE SIGUE: INX LEAY 1, X DEC $0800 BNE DNUEVO SWI
ENTRADA DE UN DATO
CLR COPCTL CLR DDRB OTRO: LDAA PORTB BRA OTRO SWI
SALIDA DE UN DATO
CLR CPOCTL MOVB #$FF, DDRB LDAA #$55 STAA PORTB SWI