Capítulo I – Introducción a los conceptos digitales 1 I. INTRODUCCIÓN A LOS CONCEPTOS DIGITALES. Un sistema puede definirse matemáticamente como un operador o transformación única que hace corresponder o transforma una cierta condición de entrada a una salida específica. Un sistema puede clasificarse atendiendo a las características de la transformación, de las entradas o de las salidas. En concreto, los sistemas digitales son aquellos cuyas entradas y las salidas son magnitudes digitales. El sistema de proceso de información por excelencia actualmente es el computador, que se construye, desde el ENIAC (años 40), con dispositivos electrónicos digitales. Aunque la expresión sistemas digitales podría abarcar muchas otras realidades, en ciencia de computadores se usa como equivalente a electrónica digital. I.1. Magnitudes analógicas y digitales. Dígitos binarios, niveles lógicos y formas de onda digitales. Una magnitud analógica es aquella que toma valores continuos. Una magnitud digital es aquella que toma valores discretos. La mayoría de las magnitudes que pueden medirse en la naturaleza son analógicas: temperatura, tiempo, distancia, etc. Pero en los dispositivos electrónicos, los datos digitales se pueden procesar y transmitir de forma más eficiente y fiable que los datos analógicos. También a la hora de almacenarlos, si los datos son digitales se puede hacer de forma más compacta y luego recuperarse con mayor facilidad. Por eso, cuando los datos pasan del mundo real a un dispositivo digital se necesita un conversor analógico-digital (A/D) y cuando es al contrario, un conversor digital-analógico (D/A). La electrónica digital utiliza dispositivos y circuitos en los que solo existen dos estados posibles. Por lo que cualquier dato habrá de ser representado como una secuencia de esos dos valores. Si a esos dos valores los denominamos 0 y 1 lo que tenemos es un número binario que nos resulta más fácil de tratar que una secuencia de ON- OFF, o abierto-cerrado, o cualquier otra pareja de símbolos. Los dígitos en el sistema binario se denominan bits (como ya hemos mencionado pueden tener valor 0 o 1). Hay dos convenios para asociar los dos niveles de tensión de un circuito a los valores 0 y 1: - lógica positiva: 0 = nivel BAJO (LOW), 1= nivel ALTO (HIGH) - lógica negativa: 1 = nivel BAJO (LOW), 0 = nivel ALTO (HIGH) El más utilizado (y el que usaremos en este curso, si no se menciona lo contrario) es el de lógica positiva. 2 Apuntes de la asignatura Fundamentos de Computadores 1 Curso 2003/2004 Las tensiones que se utilizan para representar los unos y ceros reciben el nombre de niveles lógicos. Lo ideal sería que un nivel de tensión representara el nivel alto (H) y otro nivel de tensión representara el nivel bajo (L). Pero en el caso real, un nivel alto puede ser cualquier tensión entre un mínimo y un máximo especificados. Lo mismo ocurre con el nivel bajo. Por ejemplo, en un circuito que trabaje entre 0 y 5 voltios, un valor de tensión entre 0V y 0.8V podría representar el 0, mientras que un valor entre 2V y 5V representaría el 1, los valores entre 0.8V y 2V serían indeterminados. VH(máx) Figura 1.1 VH(mín) ALTO (HIGH) (1 binario) Indeterminado VL(máx) VL(mín) BAJO (LOW) (0 binario) Un impulso positivo se genera cuando la tensión (o la intensidad) pasa de nivel bajo a nivel alto, y otra vez retorna al nivel bajo. Un impulso negativo se genera cuando la tensión pasa de nivel alto a nivel bajo, y otra vez retorna al nivel alto. Una señal digital está compuesta por una serie de impulsos. Un impulso posee dos flancos: un flanco anterior y un flanco posterior. En un impulso positivo el flanco anterior es un flanco de subida y el flanco posterior es un flanco de bajada. En el impulso negativo es al contrario. Los impulsos de la figura son ideales, ya que los flancos de subida y bajada ocurren instantáneamente. En la práctica, estas transiciones no suceden tan rápido, pero en la mayoría de las situaciones podremos asumir que los impulsos son ideales. Figura 1.2 ALTO (H) Flanco posterior o de bajada Flanco anterior o de subida BAJO (L) ALTO (H) Flanco posterior o de subida Flanco anterior o de bajada BAJO (L) t0 (a) Impulso positivo t1 t0 (b) Impulso negativo t1 Capítulo I – Introducción a los conceptos digitales 3 En la figura 1.3 se muestra un impulso real. Tiempo de subida (tr) es el tiempo requerido para que la señal pase de nivel bajo a nivel alto. Tiempo de bajada (tf) es el tiempo requerido para la transición de nivel alto a nivel bajo. En la práctica, el tiempo de subida se mide como el tiempo que tarda en pasar del 10% al 90% de la amplitud del impulso, y el tiempo de bajada como el tiempo que tarda en pasar del 90% al 10% de la amplitud del impulso. La razón de que el 10% superior y el 10% inferior no se incluyan en los tiempos de subida y bajada se debe a la no linealidad de la señal en estas áreas. La anchura del impulso (tw) es una medida de la duración del impulso y se define como el intervalo de tiempo que transcurre entre los puntos en los que el valor de la señal es el 50% de la amplitud en el flanco de subida y el de bajada. Figura 1.3 90% • • Amplitud 50% 10% • Línea base • tW Anchura del impulso tr Zonas no lineales • • Tiempo de subida tf Tiempo de bajada Existen dos características no deseables en los impulsos que ocurren frecuentemente: los sobreimpulsos y el rizado. Los sobreimpulsos positivos y negativos se producen por un efecto capacitivo del circuito o de los instrumentos de medida y dan lugar a una tensión que sobrepasa los niveles alto y bajo normales, durante un tiempo muy corto, en los flancos de subida o bajada. El rizado en los flancos de subida o bajada de un impulso consiste en una serie de oscilaciones producidas por las capacidades e inductancias del circuito. Ambos efectos desaparecen tras un corto intervalo de tiempo. Figura 1.4 Sobreimpulso positivo Rizado Rizado Sobreimpulso negativo 4 Apuntes de la asignatura Fundamentos de Computadores 1 Curso 2003/2004 Formas de onda. La mayoría de las señales que se pueden encontrar en los sistemas digitales se componen de series de impulsos, trenes de impulsos, que pueden clasificarse en periódicas y no periódicas. Un tren de impulsos periódico es el que se repite a intervalos de tiempo fijo, este intervalo de tiempo se denomina periodo (T). La fre- Figura 1.5 T1 T2 T3 Periodo = T1 = T2 = T3 = T4 = T5 = ... T4 T5 Frecuencia = 1/T (a) Periódica (b) No periódica cuencia (f) es la inversa del periodo y se mide en hertzios (Hz). Una característica importante de una señal digital periódica es su ciclo de trabajo que se define como la razón entre el ancho del impulso (tw) y el periodo (T), expresado como un porcentaje: t Ciclo de trabajo = w 100 % T Figura 1.6 tW T t(ms) La información binaria que manejan los sistemas digitales aparece en forma de señales que representan secuencias de bits. Cuando la señal está a nivel alto representa al 1 binario mientras que cuando está a nivel bajo representa al 0 binario. Cada bit dentro de una secuencia ocupa un intervalo de tiempo definido, denominado periodo de bit. 5 Capítulo I – Introducción a los conceptos digitales El reloj es una señal digital periódica que se utiliza como señal de temporización básica para sincronizar otras señales. Por ejemplo, se usa una señal de reloj para determinar el periodo de bit, el periodo del reloj es el periodo del bit, en este caso los cambios de la señal han de producirse en un flanco de la señal de reloj. Figura 1.7 Período de bit 1 Reloj 0 1 A 0 1 1 0 0 0 1 1 0 0 1 0 Un diagrama de tiempos o cronograma es una gráfica de forma de ondas digitales que muestra la relación temporal entre varias señales, y como varía cada señal en relación con las demás. Un cronograma puede contener cualquier número de señales relacionadas entre sí. Examinando el diagrama de tiempos, se puede determinar el estado (nivel alto, nivel bajo) de cada señalen cualquier instante, y el momento en el que una señal cambia de estado. Figura 1.8 Reloj 1 2 3 4 5 6 7 8 A B C Por datos se entiende un grupo de bits que transporta algún tipo de información. Dentro de un sistema digital, los datos han de transferirse de unos circuitos a otros para poder llevar a cabo una determinada función. Estas transferencias pueden hacerse en serie o en paralelo. En la transmisión serie los datos se envían bit a bit a lo largo de un único conductor. En el intervalo t0 – t1 se transfiere el primer bit, en el intervalo t1 – t2 se transfiere el segundo y así sucesivamente. Para transmitir ocho bits en serie hacen falta ocho intervalos de tiempo. En la transmisión en pa- 6 Apuntes de la asignatura Fundamentos de Computadores 1 Curso 2003/2004 ralelo todos los bits del grupo se envían en paralelo por líneas separadas. Se necesitan más líneas que en la transmisión serie pero es más rápida. I.2. Operaciones lógicas básicas. En su forma más simple, la lógica es la parte del razonamiento humano que nos dice que una determinada propo- sición (sentencia de asignación) es cierta si se cumplen ciertas condiciones. Las condiciones pueden ser tratadas como verdaderas o como falsas. Muchas situaciones, problemas y procesos pueden expresarse como funciones proposicionales o lógicas. Dado que tales funciones son sentencias verdaderas/falsas o afirmativas/negativas, pueden aplicarse a los circuitos digitales ya que estos tienen también dos estados. Hacia 1850, el matemático irlandés George Boole desarrolló un sistema matemático para formular proposiciones lógicas con símbolos, de manera que los problemas puedan ser escritos y resueltos de forma similar a como se hace con el álgebra ordinaria. El álgebra de Boole, como se le conoce hoy en día, se aplica al diseño y análisis de los sistemas digitales. Se tratará con detalle en el capítulo III. El término lógico se aplica a los circuitos digitales que se utilizan para implementar funciones lógicas. A continuación veremos, de forma muy general, las funciones de los circuitos lógicos básicos a partir de los cuales se construyen sistemas más complejos. En el capítulo III se verán con más detalle. En la figura se muestran los símbolos estándar de las cuatro operaciones lógicas básicas. Las líneas conectadas a la izquierda de cada símbolo son las entradas (inputs) y las conectadas a la derecha son las salidas (outputs). Un circuito que realiza una operación lógica determinada (NOT, AND, OR, OR-exclusiva) se llama puerta lógica. Las puertas AND y OR pueden tener cualquier número de entradas. Figura 1.9 o NOT AND OR OR-exclusiva Capítulo I – Introducción a los conceptos digitales 7 En las operaciones lógicas, el “verdadero” se representa como un nivel alto (HIGH) y el “falso” como un nivel bajo (LOW). La operación NOT cambia de un nivel lógico al nivel lógico opuesto. Se implementa mediante un circuito lógico conocido como inversor. Figura 1.10 ALTO (H) o BAJO (L) BAJO (L) o ALTO (H) La operación AND da lugar a un nivel alto en la salida si y solo si todas las entradas están a nivel alto. Se implementa mediante un circuito lógico conocido como puerta AND. Figura 1.11 BAJO BAJO BAJO BAJO ALTO BAJO ALTO BAJO BAJO ALTO ALTO ALTO La operación OR da lugar a un nivel alto en su salida cuando cualquiera de sus entradas está a nivel alto. Se implementa mediante un circuito lógico denominado puerta OR. Figura 1.12 BAJO BAJO BAJO BAJO ALTO ALTO ALTO BAJO ALTO ALTO ALTO ALTO La operación OR-exclusiva da lugar a un nivel alto en su salida cuando una y solo una de sus entradas está a nivel alto. Figura 1.13 BAJO BAJO BAJO BAJO ALTO ALTO ALTO BAJO ALTO ALTO ALTO BAJO 8 Apuntes de la asignatura Fundamentos de Computadores 1 I.3. Curso 2003/2004 Funciones lógicas básicas. A partir del inversor y las puertas básicas se construyen circuitos lógicos más complejos que realizan operacio- nes útiles como comparación, aritmética, conversión de código, codificación, decodificación, almacenamiento, recuento y selección de datos. En esta sección vamos a ver una introducción general a estas funciones y más adelante se verán en detalle. Comparación. La comparación de magnitudes se realiza mediante un circuito denominado comparador. Sus entradas son la representación binaria de dos números, A y B, y tiene tres salidas: A>B, A=B y A<B. Dependiendo de la relación entre las magnitudes de entrada se pondrá a nivel alto la o las salidas apropiadas. Figura 1.14 A>B A Entradas A=B B 4 binario A Salidas 1 binario A<B B A>B ALTO A=B BAJO A<B BAJO Comparador Comparador Aritméticas: suma, resta, multiplicación y división. La adición se realiza mediante un circuito lógico denominado sumador, sus entradas son los dos números binarios a sumar, A y B, y el acarreo de entrada, Cin, y produce como salidas: la suma, Σ, y el acarreo de salida, Cout Figura 1.15 Dos números binarios A Entrada de acarreo Cin Σ Suma B Sumador Cout Salida de acarreo 7 binario A 5 binario B 0 binario Cin Sumador Σ 12 binario Cout 0 binario Capítulo I – Introducción a los conceptos digitales 9 La sustracción se realiza mediante un circuito lógico denominado restador, sus entradas son los dos números binarios a restar y el acarreo negativo (borrow) de entrada y produce como salidas: la diferencia y el acarreo negativo de salida. La multiplicación se realiza mediante un circuito lógico denominado multiplicador cuyas entradas son los dos números a multiplicar, y la salida es el producto. También se puede realizar la multiplicación con un sumador y algunos otros circuitos. La división se realiza mediante un circuito lógico denominado divisor cuyas entradas son los dos números a dividir, y las salidas son el cociente y el resto. También se puede realizar la división con un restador y algunos otros circuitos. Conversión de código. Un código es un conjunto de bits ordenados de acuerdo con un formato y se emplean para representar información específica. Un convertidor tiene como entrada un código en un formato y produce como salida el equivalente en otro formato. Codificación. La función de codificación se implementa mediante un circuito denominado codificador. Cuando se presenta un nivel alto en una de sus entradas (solo una) presenta en su salida el código correspondiente en algún formato. El número de entradas y de salidas depende del formato y cantidad de códigos diferentes que pueda dar como salida. Figura 1.16 ALTO 9 8 7 6 5 4 3 2 1 0 Codificador Código del 7 Código del 5 9 8 7 6 5 4 3 2 1 Decodificador 0 ALTO Decodificación. La función de decodificación se realiza mediante un circuito que recibe el nombre de decodificador. Este circuito tiene como entrada un código en algún formato y como salida tantas señales como códigos distintos puedan presentarse en la entrada. Dependiendo del código que se presente en la entrada, producirá un nivel alto en una (solo una) de las salidas. Selección de datos. Existen dos tipos de circuitos dedicados a la selección de datos: el multiplexor y el demultiplexor. Un multiplexor es un circuito que tiene varias entradas de datos, una única salida de datos y una entrada de control. Dependiendo del valor de la entrada de control, pasa los datos digitales procedentes de una de las entradas de datos a la salida. Se utiliza cuando datos de distintas fuentes se tienen que transmitir a través de una sola línea. Un demultiplexor es un circuito que tiene una única entrada de datos, varias salidas de datos y una entrada de control. Dependiendo del valor de la entrada de control, pasa los datos digitales procedentes de la entrada de datos a una de las salidas. Se utiliza cuando los datos que llegan por una sola línea han de distribuirse entre varios destinos. 10 Apuntes de la asignatura Fundamentos de Computadores 1 Curso 2003/2004 Figura 1.17 Multiplexor Demultiplexor Entrada de control Entrada de control Almacenamiento. La mayoría de los sistemas digitales requieren la función de almacenamiento. Su objetivo es mantener los datos binarios durante un periodo de tiempo. Existen dispositivos de almacenamiento temporal y dispositivos de almacenamiento permanente. Algunos tipos de dispositivos de almacenamiento son: flip-flops, registros, memorias de semiconductores, discos magnéticos, cintas magnéticas, etc. El flip-flop es un circuito lógico biestable (tiene dos estados estables) que puede almacenar un solo bit, la salida del flip-flop indica el valor del bit que tiene almacenado (si es un 1 la salida está a nivel alto y si es un 0 estará a nivel bajo). Un registro se forma combinando varios flip-flop de manera que puedan almacenarse grupos de bits. Los registros pueden emplearse para desplazar los bits de una posición a otra dentro del propio registro o fuera del circuito, en ese caso reciben el nombre de registros de desplazamiento. Las memorias de semiconductores son dispositivos que se utilizan para almacenar gran cantidad de bits. Las hay de dos tipos. Las memorias de solo lectura, ROM (read only memory), en las que los datos se almacenan de forma permanente o semipermanente y no pueden cambiarse instantáneamente. Y las memorias de acceso aleatorio, RAM (random access memory), en las que los datos se almacenan temporalmente y pueden ser fácilmente modificados. Las memorias magnéticas se utilizan para almacenamiento masivo de datos binarios. Ejemplos de estos dispositivos son los disquetes, los discos y las cintas. Recuento. La función de contar (recuento) es muy importante en los sistemas digitales. Existen muchos tipos de contadores digitales, en todos ellos el objetivo básico es contar los cambios de nivel o impulsos que se producen en su entrada, o generar una secuencia de códigos particular en su salida. Para poder contar, el contador debe “recordar” el número actual, para poder pasar correctamente al siguiente de la secuencia. Por tanto, la capacidad de almacenamiento es una característica importante de los contadores y, generalmente, se utilizan flip-flops para su implementación. Capítulo I – Introducción a los conceptos digitales I.4. 11 Circuitos digitales integrados. Todos los elementos lógicos que hemos tratado, y muchos más, están disponibles como circuitos integrados (CI). Un circuito integrado es un circuito electrónico construido enteramente sobre un pequeño chip de silicio. Todos los componentes de que conforman el circuito (transistores, diodos, resistencias, etc.) son parte integrante de un único chip. El chip de silicio está en el interior de un encapsulado de plástico. Las terminales del chip se conectan a los pines del encapsulado para permitir las conexiones de entrada y salida al mundo exterior. Encapsulado de los circuitos integrados. Los encapsulados de los circuitos integrados se clasifican dependiendo de cómo se montan sobre las tarjetas de circuito impreso: de inserción o de montaje superficial. • Encapsulado de inserción: tienen unos pines (o patas) que se insertan en los taladros de la tarjeta y se sueldan a las pistas por la cara opuesta. El más típico de este tipo es el encapsulado DIP (Dual In-line Package). • Encapsulado de montaje superficial, SMT (Surface Mount Technology): es un método más moderno, las patas de los encapsulados se sueldan directamente a las pistas de una cara de la tarjeta, dejando la otra cara libre para otros circuitos. Además, para un circuito con el mismo número de pines, un encapsulado de montaje superficial es mucho más pequeño que un encapsulado DIP. Cuatro tipos comunes de encapsulado SMT son: SOIC (Small Outline IC) con los terminales en forma de “alas de gaviota”, PLCC (Plastic Leader Chip Carrier) con terminales en forma de J, LCCC (Leadless Ceramic Chip Carrier) que no tiene terminales pues los contactos forman parte de la caja y los encapsulado flat-pack cuyos terminales se extienden en línea recta hacia el exterior del encapsulado. Numeración de los pines. Todos los encapsulados de CIs tienen un formato estándar para numerar los terminales (pines). En la parte superior del encapsulado, se designa el pin 1 mediante una pequeña muesca, un punto o una esquina biselada. Si es un punto, está siempre junto al pin 1. Si es una muesca en uno de los lados, el pin 1 es el que está a la izquierda. A partir del pin 1, el número de pin aumenta en sentido contrario a las agujas del reloj mirando la parte superior del encapsulado. El pin de mayor numeración está siempre a la derecha del pin 1. Clasificación de los CI según su complejidad. Según el número de puertas que se integran en un chip los CI se pueden clasificar en SSI, MSI, LSI VLSI y ULSI. - Integración a baja escala (Small Scale Integration, SSI), hasta 12 puertas. - Integración a media escala (Medium Scale Integration, MSI), de 12 a 99 puertas. - Integración a gran escala (Large Scale Integration, LSI), entre 1.000 y 9.999 puertas. - Integración a muy gran escala (Very Large Scale Integration, VLSI), desde 10.000 hasta 99.999 puertas. - Integración a ultra gran escala (Ultra Large Scale Integration, ULSI), más de 100.000 puertas. Tecnologías de circuitos integrados. Existen diferentes tecnologías de circuitos integrados dependiendo de los tipos de transistores con los que se implementan. Actualmente existen dos grupos de tecnologías: las bipolares y las 12 Apuntes de la asignatura Fundamentos de Computadores 1 Curso 2003/2004 MOSFET (Metal-Oxide Semiconductor Field Efect Transistor, abreviado: MOS). Entre las primeras están la TTL y la ECL, y algunos ejemplos de la segunda son CMOS y NMOS. Todas las puertas y otras funciones lógicas pueden implementarse con cualquier tipo de tecnología. Generalmente, los circuitos SSI y MSI están disponibles en TTL y CMOS, y sin embargo los LSI, VLSI y ULSI se implementan con CMOS o NMOS pues estas tecnologías requieren menor superficie del chip y consumen menos potencia. I.5. Instrumentación. Existe una gran variedad de instrumentos que se pueden utilizar en las pruebas y localización de averías en los sistemas digitales, en esta sección se hace una somera descripción de algunos equipos típicos. El osciloscopio permite visualizar varias señales simultáneamente en su pantalla y medir parámetros como la amplitud, tiempo de subida, tiempo de bajada, ancho del impulso, periodo y ciclo de trabajo. El analizador lógico puede presentar datos digitales en distintos formatos: de osciloscopio, cronograma, combinación osciloscopio/cronograma o formato de tabla de estados. La sonda lógica es una herramienta que puede detectar niveles de tensión altos, bajos, impulsos aislados, impulsos repetitivos y circuitos abiertos en un circuito impreso, indicándolo con una luz. El pulsador lógico es un generador de trenes de impulsos repetitivos. La sonda de corriente detecta si existe corriente pulsatoria en la línea. La fuente de alimentación convierte la tensión alterna de la red en una tensión continua regulada. Todos los circuitos digitales funcionan con tensión continua. Generador de funciones. Es una fuente de señales que proporciona trenes de impulsos, señales sinusoidales y triangulares. El multímetro digital se emplea para medir tensión alterna y continua, corriente alterna y continua y resistencias.