Fascículo 1 1 Procesadores Semestre 6 Procesadores Procesadores Semestre 6 Procesadores Tabla de contenido Página Presentación de la asignatura 1 Competencias generales 2 Contenido mínimo de la asignatura 5 Introducción 9 Conceptos previos 10 Mapa conceptual Fascículo 1 11 Logros 11 Sistemas Numéricos, Principios de Diseño de Lógica Combinatoria y Lógica Secuencial 12 Familias Lógicas 12 Propiedades Álgebra de Boole 14 Mapas de Karnaugh 19 Memorias- Flip Flops 23 Máquinas de Estado 26 Resumen 31 Bibliografía recomendada 32 Nexo 32 Seguimiento al autoaprendizaje 33 Créditos: 1 Tipo de asignatura: Teórico – Práctica Semestre 6 Procesadores Procesadores Copyright©2008 FUNDICIÓN UNIVERSITARIA SAN MARTÍN Facultad de Universidad Abierta y a Distancia, “Educación a Través de Escenarios Múltiples” Bogotá, D.C. Prohibida la reproducción total o parcial sin autorización por escrito del Presidente de la Fundación. La actualización de este fascículo estuvo a cargo de ALEJANDRA CASTILLO Docente tutor – Programa de Ingeniería de Sistemas a Distancia. Sede Bogotá, D.C. Corrección de estilo ADRIANA RODRÍGUEZ VALENCIA. Diseño gráfico y diagramación a cargo de SANTIAGO BECERRA SÁENZ ORLANDO DÍAZ CÁRDENAS Impreso en: GRÁFICAS SAN MARTÍN Calle 61A No. 14-18 - Tels.: 2350298 - 2359825 Bogotá, D.C., Marzo de 2012 Procesadores Semestre 6 Procesadores 1 Presentación General de la Asignatura Hoy, es casi imposible pensar en un equipo electrónico que no posea algún microcontrolador que se encargue de guiar diferentes funciones de un aparato electrónico y programar una buena cantidad de objetos con estos componentes. Por ejemplo, los títulos en pantalla de un TV, el control del mecanismo de carga y descarga de un video, el sistema de apagado automático de un video y hasta el control de tiempos y cocción de un horno-microondas poseen un circuito integrado que se ocupa de comandar éstas y otras muchas funciones. Los microcontroladores realizan estas funciones y hacen parte del sistema de control del aparato. Existen muchos fabricantes de estos componentes como National, Philips, Motorola, Microchip, Texas, etc. Se podría afirmar que gracias a los microcontoladores cualquier sistema de control puede ser reemplazado por su circuito equivalente. Los sistemas informáticos dedicados ó empotrados son cada vez más comunes en todo el mundo, hoy existen más ordenadores de propósito específico que de propósito general; una tendencia que va en aumento si se tiene en cuenta que, la mayoría de electrodomésticos, automóviles y automatismos disponen de este tipo de sistemas. Estas condiciones del mercado contribuyen a que aumente la demanda de profesionales en ingeniería con conocimientos y manejo de sistemas autónomos y con capacidad de explicar el funcionamiento y el diseño equipos electrónicos con microcontroladores. Estos también se utilizan en el diseño de dispositivos periféricos USB incluyendo su conexión con el sistema operativo. El estudio y aplicación de éstos resulta clave en el aprendizaje de la ingeniería, pues con ellos se generan sistemas electrónicos que ofrecen soluciones a diversos problemas sociales, culturales y económicos, al tiempo Fascículo No. 1 Semestre 6 Procesadores Procesadores que se crean espacios para que los Ingenieros hagan aportes prácticos y puntuales a su medio social. El análisis de la arquitectura y el funcionamiento de los microcontroladores le permiten al estudiante crear modelos mentales que contribuyen a estructurar su pensamiento y representan para la estructura organizacional una gran herramienta. Competencias generales de la asignatura Los estudiantes a través del contenido deben alcanzar el desarrollo de las siguientes habilidades y actitudes: Competencia Cognitiva: Esta competencia hace énfasis en la capacidad que tiene cada estudiante en formación de ingeniero de apropiarse del conocimiento para transformar sus ideas y generar comprensión. Reconoce las relaciones entre los elementos, el proceso y salida del sistema de información. Reconoce y diferencia cada uno de los componentes de la arquitectura interna de un microprocesador y un microcontrolador. Comprende el funcionamiento de un microcontrolador y aplica este conocimiento en sus proyectos. Desarrolla habilidades para la utilización de las Tecnologías de la Información y las Comunicaciones. Competencia Comunicativa: El estudiante utiliza el conocimiento adquirido y busca los medios para transmitir ese saber a los demás. Argumenta de forma fluida las diferencias entre los diversos sistemas de procesamiento de la información. Propone diferentes aplicaciones que se le pueden dar a los microproceProcesadores 2 Fascículo No. 1 Semestre 6 Procesadores sadores dependiendo de su arquitectura. Expone de forma fluida la lectura de esquemas de conexión y características del microcontrolador. Capacidad de análisis y diseño de circuitos combinacionales y secuenciales, síncronos y asíncronos, y de utilización de microprocesadores y circuitos integrados. Competencia Valorativa: Abarca todo el proceso valorativo, no sólo ético-moral sino en general, en tanto toda interpretación y comprensión es una valoración desde un marco determinado, desde una particularidad. Investiga y se apropia de la información para realizar disertaciones sobre un tema específico. Aclara sus dudas y acepta con madurez las observaciones que en cuanto a su trabajo se le realizan. Competencia Contextual: En esta competencia se hace referencia a la capacidad de cada individuo para desenvolverse en un contexto social. Investiga con los grupos de trabajo para facilitar el proceso de aprendizaje. Conocimientos básicos sobre el uso y programación de los ordenadores, sistemas operativos, bases de datos y programas informáticos con aplicación en ingeniería. Fascículo No. 1 Semestre 6 3 Procesadores Procesadores Procesadores 4 Fascículo No. 1 Semestre 6 Procesadores Contenido mínimo de la asignatura Fascículo 1 Electrónica Digital y Secuencial. Sistemas Numéricos, Principios de Diseño de Lógica Combinatoria y Lógica Secuencial. Familias Lógicas. Propiedades Álgebra de Boole. Mapas de Karnaugh. Lógica secuencial. Memorias- Flip Flops. Máquinas de Estado. Fascículo 2 Introducción a los Microprocesadores y Microcontroladores. Introducción a la arquitectura microprocesadores y microcontroladores. Evolución de los Microprocesadores. Arquitectura del Procesador. Bus del Sistema. Decodificadores. Puertos. Memorias. El microcontrolador . Microcontroladores disponibles en el mercado. Cómo seleccionar un microcontrolador. Componentes básicos de un microcontrolador. Fascículo 3 Lenguaje Ensamblador del Microprocesador Instrucciones para el ensamble del programa. Simulación del programa. Etiquetas del lenguaje Assembler. Directivas. Fascículo No. 1 Semestre 6 5 Procesadores Procesadores Banderas. Operandos y direcciones. Stack Formato de las instrucciones. Saltos Condicionales e Incondicionales. Convenciones en la escritura del código fuente. Fascículo 4 Descripción interna del microcontrolador Motorola. Arquitectura Interna. Arquitectura Interna del Microcontrolador. Sistemas Embebidos. Puertos de entrada y salida digital. Volúmenes. Entornos de programación. La latencia de interrupción. Fascículo 5 Microcontrolador Motorola Freescale HC08. Características del Microcontrolador Motorola Freescale. Unidad de Procesamiento Central CPU. Características específicas de los Microcontroladores HC908QT/QY. Descripción de pines de I/O. Módulos Disponibles para la familia HC908. Ejecución de Instrucciones. Descripción de Registros de la CPU. Pila CPU08 Contador del Programa Registros de Código de Condición CCR Modos de Direccionamiento Procesadores 6 Fascículo No. 1 Semestre 6 Procesadores Fascículo 6 Consideraciones y direccionamiento del Microcontrolador. Descripción de Registros de la CPU. Consideraciones sobre la pila de la CPU08. Contador del programa. Modos de direccionamiento. Memoria. Descripción funcional. Modulo Oscilador. Sistemas Empotrados. Gestión de Tiempo. Mercado de los Microcontroladores. Fascículo 7 Plataforma CodeWarrior. Entorno de Programación. Introducción al sistema de desarrollo CodeWarrior. Reconocimiento con la interfaz CodeWarrior. Ejecución y compilación de programa prueba. Compilación del sistema y pruebas. Programación para Micro HC8. Fascículo 8 Robot seguidor de línea. Objetivo. Logros. Mapa lógico de diseño del proyecto. Robot e Inteligencia Artificial. Puente H. Sensor Infrarrojo. Diseño Robot. Fascículo No. 1 Semestre 6 7 Procesadores Procesadores Funcionamiento lógico. Mecánica del Robot. Materiales. Procesadores 8 Fascículo No. 1 Semestre 6 Procesadores Introducción El objetivo de la electrónica es la fabricación de circuitos con capacidad para realizar una amplia gama de operaciones. Los circuitos también podrían ejecutarse en otras tecnologías (mecánicas, electromagnéticas, etc.) pero en la actualidad, los electrónicos tienen un menor costo, una alta velocidad de cómputo y una gran capacidad de integración. En un circuito electrónico las magnitudes físicas externas (presión, temperatura, etc.) se transforman en señales eléctricas (voltaje, intensidad) mediante sensores, operan con dichas señales y las transforman o convierten en otras magnitudes físicas. Los sistemas combinacionales se construyen mediante funciones Booleanas de sus variables de entrada. Sin embargo, no todo sistema digital es combinacional sino que existen sistemas en los que la correspondencia entre el vector de entrada y el vector de salida no es unívoca; es decir, no se pueden obtener las salidas como funciones de sólo las entradas. Los sistemas secuenciales necesitan recordar su pasado, la secuencia de vectores de entrada a través de la cual se ha llegado a la situación presente; para ello han de tener memoria, que se configura mediante un vector de estado el cual contiene la información que el sistema necesita sobre su pasado. La memoria se consigue mediante realimentación lógica, en tanto que las variables de estado son, a la vez, variables de salida y de entrada en las funciones de evolución del estado. Tres vectores, entrada, estado y salida, y dos conjuntos de funciones, las de evolución del estado (estado anterior y entradas determinan el nuevo estado) y las de activación de las salidas (que dependen, también, del estado y de las entradas). La evolución de un sistema secuencial puede ser representada mediante un grafo de estados, a partir del cual pueden construirse las funciones de modificación del estaFascículo No. 1 Semestre 6 9 Procesadores Procesadores do. En ocasiones, hay dos formas diferenciadas de configurar el grafo de estados, distinguiendo salidas distintas con estados diferentes (autómata de Moore) o reduciendo el número de estados al mínimo y admitiendo que un mismo estado pueda tener varios vectores de salida. El presente fascículo presenta gradualmente los conceptos básicos necesarios para comprender y describir los sistemas secuenciales. La necesidad de memoria, como recuerdo del pasado de un sistema secuencial, se concreta en el concepto de estado. Pero existe otra perspectiva complementaria que lleva a la memoria a la necesidad de almacenar datos y resultados, es decir, conservar información que puede ser utilizada posteriormente. El biestable como celda capaz de almacenar un bit y el registro La electrónica es la rama de la física y especialización de la ingeniería, que estudia y emplea sistemas cuyo funcionamiento se basa en la conducción y el control del flujo microscópico de los electrones u otras partículas cargadas eléctricamente. (conjunto de biestables) como bloque con capacidad de almacenar una palabra binaria son los elementos básicos de la memoria. Conceptos previos Para iniciar el estudio del fascículo 1. Es primordial repasar algunos conceptos propios de conversiones numéricas (decimal, binario y Hexadecimal) y significados sobre electrónica básica (voltaje, corriente, potencia, resistencia). Así pues, el estudiante debe resolver los ejercicios propuestos a continuación y socializarlos con sus compañeros y con el tutor las inquietudes. 1. Realice las siguientes conversiones de sistema decimal a sistema binario y hexadecimal. 2. Realice las siguientes conversiones de sistema binario a decimal Procesadores 10 Fascículo No. 1 Semestre 6 Procesadores 3. Realiza las siguientes operaciones con números binarios: 101010+111001 111011+011101 4. Describa que es Voltaje, corriente, potencia y resistencia Mapa conceptual fascículo 1. Logros Al finalizar el estudio del presente fascículo, el estudiante debe estar en capacidad de: Retomar los conceptos vistos en electrónica digital e o introducir conceptos básicos para la iniciar el curso en diseño de microprocesadores y microcontroladores. Diseñar con los estados "Enable" y "Disable" para habilitar/deshabilitar una función. Identificar y Reconocer el funcionamiento de los flip-flop y la diferencia entre un "latch" con puertas NOR y uno con puertas NAND. Comprender la diferencia entre un circuito combinacional y uno secuencial. Resolver problemas de interacción lógica aplicada a lógica combinacional. Explicar la diferencia entre los circuitos combinatorios y los secuenciales. Fascículo No. 1 Semestre 6 11 Procesadores Procesadores Sistemas numéricos, Principios de Diseño de Lógica Combinatoria y Lógica Secuencial Familias lógicas Los sistemas digitales representan y manipulan además de números muchos otros elementos discretos de información. Los sistemas digitales pueden representar cualquier elemento discreto de información utilizando el código binario adecuado. Los códigos deben de estar en BINARIO porque los circuitos digitales sólo pueden interpretar y almacenar “unos” y “ceros”. Es importante entender que los códigos binarios simplemente cambian los símbolos, no el significado de los elementos de información que representan, es por esto que si examinamos la información almacenada por ejemplo en una computadora, veremos que la mayor parte de la información representa algún tipo de información codificada en no números binarios. La lógica binaria se ocupa de variables que adoptan dos valores discretos y de operaciones que asumen un significado lógico. Los dos valores que pueden adoptar las variables reciben diferentes nombres. Verdadero, Falso Si, No Alto, Bajo Uno, Cero En este caso es conveniente pensar en ellos en términos de bits y asignarles los valores de 1 y de 0. A este tipo de lógica binaria que se implementa se le conoce como “álgebra Booleana”. Función AND Esta operación se representa con un punto (∙) o bien omitiendo el operador por ejemplo: A ∙ B = Z equivalente a AB = Z Procesadores 12 Fascículo No. 1 Semestre 6 Procesadores Estas operaciones se leen como “A AND B es igual a Z” La operación lógica AND significa que Z = 1 sólo si A = 1 y B = 1, en cualquier otro caso Z = 0 (No olvide que A y B son variables binarias y únicamente pueden tener un valor de 1 ó 0). De estas condiciones se puede obtener una tabla que represente la operación AND. A B Z 0 0 0 0 1 0 1 0 0 1 1 1 El símbolo lógico de la negación Booleana se representa en la siguiente figura A Z Función OR B Esta operación se representa con un signo más (+) por ejemplo: A+B=Z Este ejercicio se lee como “A OR B es igual a Z” En este caso la operación realizada se puede describir como: Z = 0 si A = 0 y B = 0, en cualquier otro caso Z = 1 De la misma manera es posible construir una tabla que represente la operación OR. A B Z 0 0 0 0 1 1 1 0 1 1 1 1 El símbolo lógico de la negación Booleana se representa en la siguiente figura A Z Fascículo No. 1 Semestre 6 B 13 Procesadores Procesadores Función NOT La representación de esta operación se realiza por un apostrofe ( ’ ) ó por una testa ( ‾ ) por ejemplo: A” = Z Ā=Z Se puede observar que esta operación solamente tiene una entrada y una salida. De modo que la operación se lee como “A negada igual a Z” y significa que Z es lo contrario de A, Así si A = 1, entonces Z = 0, y si A = 0, entonces Z = 1. A esta operación también se llama operación de complemento, ya que cambia “1” por “0” y “0” por “1”. La tabla que representa la operación NOT es muy simple y se presenta a continuación: A Z 1 0 0 1 El símbolo lógico de la negación booleana se representa en la siguiente figura A Figura 1: George Boole George Boole (2 de noviembre de 1815 - 8 de diciembre de 1864) fue un matemático y filósofo británico. Como inventor del álgebra de Boole, que marca los fundamentos de la aritmética computacional moderna, Boole es considerado como uno de los fundadores del campo de las Ciencias de la Computación. En 1854 publicó "An Investigation of the Laws of Thought" en el que desarrollaba un sistema de reglas que le permitían expresar, manipular y simplificar problemas lógicos y filosóficos cuyos argumentos admiten dos estados (verdadero o falso) por procedimientos matemáticos. Procesadores 14 Z Propiedades Álgebra de Boole En electrónica digital se trabaja con variables que pueden tener sólo dos valores, 0 ó 1. Por suerte los primeros ingenieros quienes trabajaron con electrónica digital ya encontraron las matemáticas necesarias desarrolladas, pues en 1854, mucho antes de que se diera a conocer el invento del transistor, George Boole definió un álgebra para manipular variables que sólo podían tener los valores verdadero y falso, lo cual permitía según Boole investigar las leyes del pensamiento. En este fascículo se introducen los conceptos básicos de las leyes, reglas y teoremas del álgebra Booleana y sus aplicaciones a los circuitos digitales. (Cfr. Floyd, 2000). Fascículo No. 1 Semestre 6 Procesadores Adición Booleana La suma Booleana es equivalente a la operación OR y sus reglas son: A B X 0 0 0 0 1 1 1 0 1 1 1 1 Ejemplo: 1. Si A = 1 y B = 0 el resultado es: A=1 X=0 B=0 Multiplicación Booleana La multiplicación booleana es equivalente a la operación AND y sus reglas son: A B X 0 0 0 0 1 0 1 0 0 1 1 1 En las reglas básicas de la multiplicación, para que el resultado sea igual a cero (0), es necesario que al menos una de las variables sea igual a cero (0), si las dos variables equivalen a uno (1) el resultado también será uno (1). Ejemplo: Si A = 1 y B = 0 el resultado es: A=1 X=0 Leyes de operación para el algebra Booleana Al igual que en otras áreas de las matemáticas, existe en el álgebra de Boole una serie de reglas y leyes bien determinadas que tienen que seFascículo No. 1 Semestre 6 15 Procesadores Procesadores guirse para aplicarla correctamente. Las leyes básicas del algebra de Boole (la Ley conmutativa de la suma y la multiplicación y la Ley asociativa de la suma y la multiplicación y la Ley distributiva) son las mismas que las del algebra ordinaria. Ley conmutativa La ley conmutativa de la suma se representa con la compuerta lógica OR, para dos variables se escribe de la siguiente manera: A+B=B+A En la terminología de los circuitos lógicos el símbolo = significa “equivalente a”. A A A+B B B+A B La ley conmutativa de la multiplicación se representa con la compuerta lógica OR, para dos variables se escribe de la siguiente manera: AB = BA A AB B B A BA Esta ley establece que el orden en que se aplica a las variables la operación OR y AND es indiferente. Ley asociativa La ley asociativa de la suma para tres variables se escribe de forma algebraica de la siguiente manera: A + (B + C) = (A + B) + C Esta ley establece que al aplicar la operación OR a más de dos variables, el resultado es el mismo independientemente de la forma en que se agrupen las variables. Procesadores 16 Fascículo No. 1 Semestre 6 Procesadores Ejemplo: A A+(B+C) B C Es equivalente a: B A (A + B) + C C La ley asociativa de la multiplicación para tres variables se escribe de forma algebraica de la siguiente manera: A (BC) = (AB) C Esta ley establece que al aplicar la operación AND a más de dos variables, el resultado es el mismo independientemente de la forma en que se agrupen las variables. Ejemplo: B A (BC) A BC C Es equivalente a: A AB B C (AB)C Ley distributiva La ley distributiva establece que al utilizar tres variables, de las cuales primero se sumen dos de estas variables y luego el resultado de estas se multiplique por otra variable aislada o fuera del paréntesis, equivale a mulFascículo No. 1 Semestre 6 17 Procesadores Procesadores tiplicar esta variable aislada por cada una de las variables dentro del paréntesis. A (B + C ) = AB + AC Esta ley también expresa el proceso de sacar factor común. B C B+C A (B+C) A Es equivalente a: A AB B AB + AC A C AC Teoremas o reglas del algebra de Boole El álgebra de Boole, utiliza doce reglas básicas las cuales se utilizan en el proceso de simplificación de las funciones Booleanas. Las nueves primeras reglas estarán en términos a la aplicación a las puertas lógicas. Las tres últimas reglas se obtienen a partir de las reglas más sencillas y de las leyes anteriormente descritas. (Cfr. Floyd, 2000). Regla 1. A+0=A Si se aplica la operación OR a una variable cualquiera y a 0, el resultado es siempre igual a la variable. Regla 2. A+1=1 Si se aplica la operación OR a una variable cualquiera y a 1, el resultado es siempre igual a 1. Regla 3. A∙0=0 Si se aplica la operación AND a una variable cualquiera y a 0, el resultado es siempre igual a 0. Regla 4. A∙1=A Si se aplica la operación AND a una variable cualquiera y a 1, el resultado es siempre igual a la variable. Regla 5. A + A = A Si se aplica la operación OR a una variable cualquiera consigo misma, el resultado es siempre igual a la variable. Procesadores 18 Fascículo No. 1 Semestre 6 Procesadores Regla 6. A + Ā = 1 Si se aplica la operación OR a una variable cualquiera y a su complemento, el resultado es siempre igual a 1. Regla 7. A ∙ A = A Si se aplica la operación AND a una variable consigo misma, el resultado es siempre igual a la variable. Regla 8. A ∙ Ā = 0 Si se aplica la operación AND a una variable cualquiera y a su complemento, el resultado es siempre igual a 0. Regla 9. Ā = A El complemento del complemento de una variable es siempre la propia variable. Regla 10. A + AB = A Esta regla se obtiene aplicando la ley distributiva, reglas 2 y 4, de la siguiente manera: A+AB = A(1+B) =A∙1 =A Regla 11. A + ĀB = A+B Esta regla se obtiene de la siguiente manera: A+ĀB = (A+AB)+ĀB = A+(A+Ā)B = A+1 ∙ B = A+B Regla 12. (A+B)(A+C)= A+ BC Esta regla se obtiene de la siguiente manera: (A+B)(A+C) =AA+AC+AB+BC Mapas de Karnaugh =A+AC+AB+BC Figura 2: Maurice karnaugh =A+BC Ingeniero de telecomunicaciones estadounidense. Graduado en la universidad de Yale en el 1952, es actualmente gobernador emérito del ICCC (International Council for Computer Communication). Ha trabajado como investigador en los Laboratorios Bell desde 1952 a 1966 y en el centro de investigación de IBM de 1966 a 1993. Así mismo, ha impartido de informática en el Politécnico de Nueva York de 1980 a 1999, y desde 1975 es miembro del IEEE Un mapa de Karnaugh es una representación gráfica de una función lógica a partir de una tabla de verdad. El número de celdas del mapa es igual al número de combinaciones que se pueden obtener con las variables de entrada. Los mapas se pueden utilizar para 2, 3, 4 y 5 variables. Mapa de Karnaugh empleando Suma de Productos (SDP) La simplificación de expresiones lógicas mediante el mapa de Karnaugh utiliza un Fascículo No. 1 Semestre 6 19 Procesadores Procesadores método gráfico basado en la Suma de Productos. Mapa de Karnaugh de tres variables: El mapa de Karnaugh se construye a partir de la tabla de verdad de la función lógica. El mapa por medio de una matriz de 8 celdas, representa los ocho mintérminos posibles que se pueden obtener con tres variables, en un arreglo de una matriz de 2x4. Por tanto, la primera fila contiene el primer valor posible ("0") y la segunda fila el valor ("1"). Las variables 2 y 3 se agrupan por columna y se distribuyen en las cuatro columnas de acuerdo a las combinaciones posibles para obtener los mintérminos requeridos. Sus valores son 00, 01, 10 y 11. Por ejemplo, la celda m2 corresponde al mintérmino 2, ubicado en la fila 0 y la columna 10. La unión de estos dos números da el número 010, cuyo equivalente es el término A’·B·C’ ó el decimal 2. Tabla 1 Mapa de Karnaugh de tres variables Tabla 2 Esquema de tres variables La característica de ordenamiento de un mapa de Karnaugh radica en el cambio de un solo bit en los términos de las celdas adyacentes de filas y Procesadores 20 Fascículo No. 1 Semestre 6 Procesadores columnas. Las entradas BC se colocan secuencialmente, cambiando cada vez una sola variable, por eso resulta el orden: 00, 01, 11 y 10. En la interactividad 2.4.1., la pulsación de cada cuadro activa el mintérmino correspondiente. Figura 3 Mapa de Tres Variables Ejemplo: Sea la función del ejemplo anterior, simplificarla por medio del método del mapa. La tabla de verdad del ejemplo anterior es la siguiente, Tabla 3 Tabla de Verdad de la Función F El mapa de Karnaugh se configura de acuerdo a los mintérminos iguales a 1 Figura 4 Mapa De Karnaugh de la Función F Fascículo No. 1 Semestre 6 21 Procesadores Procesadores Mapas de Karnaugh empleando Producto de Sumas (PDS) La simplificación de expresiones lógicas mediante el mapa de Karnaugh también es posible mediante el método de producto de sumas. En este método, cada celda representa un maxtérmino. La construcción del mapa es similar a la suma de productos. La diferencia radica en que cada celda representa un maxtérmino. Figura 5: Mapa de tres Variables Por ejemplo, la celda m2 corresponde al maxtérmino 2, ubicado en la fila 0 y la columna 10. La unión de estos dos números da el número 010, cuyo equivalente es el término A+B’+C. La representación de la función lógica se hace simplemente copiando los ceros de la tabla de verdad en las celdas del mapa. Este método es más apropiado cuando en la columna de resultados de la tabla de verdad predominan los ceros. Condiciones de No Importa Hasta el momento se ha asumido que la función es igual a 0 en los casos donde la función no es igual a 1. En algunas aplicaciones esta suposición no es siempre verdadera ya que existen combinaciones de entrada que no presentan. En un mapa de Karnaugh estas combinaciones de entrada sirven de herramienta para simplificar la función y su representación se hace por medio de una X en la celda del mapa. Según la agrupación que convenga se asume un valor de 1 ó 0 para la X con el fin de obtener la expresión más simple. Procesadores 22 Fascículo No. 1 Semestre 6 Procesadores Ejemplo: Simplificar la función de Boole F5 = S (m0, m4, m7, m9) con condiciones de importa, NI = S (m1, m5, m11, m14). Los mintérminos se marcan con un 1, las condiciones de no importa con una X y las celdas restantes con 0. En suma de productos obtenemos, F5 = A’·C’·D’ + A'·B’·C’ + A’·B·C·D + A·B'·D Figura 6: Mapa De la función Fs Memorias FLIP FLOPS En la lógica secuencial a diferencia de la lógica combinatoria se hace uso de un elemento básico llamado flip-flop. El flip-flop es un elemento de memoria que almacena un bit de información. Algunos textos usan este nombre para referirse a los cerrojos, pero en la mayoría de las publicaciones se hace la diferencia entre flip-flop y latch. Figura 7. Tipo de Circuitos Secuenciales Este último término es el que traducimos como cerrojo. Los circuitos lógicos secuenciales se dividen básicamente en dos grupos: Los circuitos asincrónicos y los circuitos sincrónicos. Los primeros pueden cambiar los estados de sus salidas como resultado del cambio de los estados de las entradas, mientras que los circuitos sincrónicos pueden cambiar el estado Fascículo No. 1 Semestre 6 23 Procesadores Procesadores de sus salidas en instantes de tiempo discretos bajo el control de una señal de reloj. Los flip-flops son dispositivos sincrónicos y el estado de sus salidas es controlado en instantes de tiempo discretos por una señal de reloj. Al igual que los cerrojos los hay de varios tipos y sus aplicaciones son diversas. Los flip-flops son dispositivos que responden una señal de reloj durante los cambios de 1 a 0 lógico o de 0 a 1 lógico, según el tipo de flip-flop. Para lograr que los flip-flops respondan al cambio de la señal del reloj es necesario implementar un circuito que detecte el flanco de subida o bajada de la seña de reloj. En la interactividad 5.5.1 se observa uno de estos circuitos, el cual se conoce como flip-flop D maestro/esclavo. Un flip-flop de este tipo contiene dos cerrojos, uno de ellos actúa como maestro y el otro como esclavo. Durante la transición de la señal de reloj de 1 a 0 lógico las entradas se emplean para determinar la salida del maestro. Cuando la señal de reloj pasa de 0 a 1 lógico el estado del maestro se trasmite al esclavo. De esta forma se garantiza que las salidas Q y Q' del flip-flop cambien cada vez que ocurre una transición de 0 a 1 en la señal de reloj. Haga click sobre la entrada D del cerrojo maestro y observe como se transmite la información al cerrojo esclavo y de este a la salida. Figura 8: Flip-Flop Maestro/Esclavo Flip-Flop S-R (Set-Reset) Este dispositivo es similar al cerrojo S-R de la lección anterior, la diferencia radica en la inclusión de una señal de reloj, que actúa como señal de confirmación del paso de los datos hacia el circuito principal, el cual se encar- Procesadores 24 Fascículo No. 1 Semestre 6 Procesadores ga de memorizar los datos. Este tipo de flip-flop no es muy comercial así que no se darán más detalles sobre este dispositivo en este curso Figura 9: Flip-Flop SR A diferencia de los sistemas combinacionales, en los sistemas secuenciales, los valores de las salidas, en un momento dado, no dependen exclusivamente de los valores de las entradas en dicho momento, sino también dependen del estado anterior o estado interno. El sistema secuencial más simple es el biestable, de los cuales, el de tipo D (o cerrojo) es el más utilizado actualmente. (Cfr. Floyd, 2000). La mayoría de los sistemas secuenciales están gobernados por señales de reloj. A éstos se los denomina "síncronos" o "sincrónicos", a diferencia de los "asíncronos" o "asincrónicos" que son aquellos que no son controlados por señales de reloj. A continuación se indican los principales sistemas secuenciales que pueden encontrarse en forma de circuito integrado o como estructuras en sistemas programados: Contador Registros Flip-Flop D (Data) El flip-flop D es muy similar al cerrojo D, y su diferencia radica en que la señal habilitadora (enable) es reemplazada por el mecanismo del flip-flop maestro/esclavo, el cual actualiza los datos cada vez que la señal de reloj tiene una transición de 0 a 1 o 1 a 0 dependiendo del tipo de flip-flop. Figura 10: Flip Flop tipo D Fascículo No. 1 Semestre 6 25 Procesadores Procesadores La forma de operación de este flip-flop es muy sencilla: Cuando D=0 y se presenta un cambio de 0 a 1 lógico en la entrada de reloj del flip-flop la salida Q=0. Cuando D=1 y se presenta un cambio de 0 a 1 lógico en la entrada de reloj del flip-flop la salida Q=1. En otras palabras, el dato en D se transfiere y memoriza en Q cada vez que se presenta una transición de 0 a 1 lógico en la señal de reloj (CLK); esta condición se conoce con el nombre de transición por flanco positivo. La condición complementaria a la anterior es cuando la transición es de 1 a 0 lógico, en este caso se dice que la transición se da por flanco negativo. Flip-Flop J-K Este flip-flop es una versión modificada del flip-flop D, y su aplicación es muy difundida en el Análisis y Diseño de Circuitos Secuenciales. El funcionamiento de este dispositivo es similar al flip-flop S-R, excepto que en este no se presentan indeterminaciones cuando sus dos entradas se encuentran en 1 lógico, si no que el flip-flop entra en un modo de funcionamiento llamado modo complemento, en el cual, la salida Q cambia a su estado complementario después de cada pulso de reloj. (Cfr. Floyd, 2000). Figura 11: Flip Flop JK Máquinas de Estado La teoría de máquinas de estado es el nombre con el que se conocen los métodos de Análisis y Diseño de Circuitos Secuenciales Sincrónicos. Esta lección constituye una introducción al tema del capítulo, donde se definirá lo que son las máquinas de estado y los conceptos básicos para entender Procesadores 26 Fascículo No. 1 Semestre 6 Procesadores la metodología de Análisis y Diseño de Circuitos Secuenciales. Las máquinas de estado son circuitos secuenciales que se encuentran constituidos por una etapa combinacional y una etapa de memoria, relacionadas de tal forma que conforman un sistema secuencial para algún propósito especial. Los registros y contadores con entradas asincrónicas son ejemplos de este tipo de sistemas secuenciales. Los circuitos secuenciales se clasifican dentro de una categoría conocida como máquinas de estado, de la cual se distinguen comúnmente dos tipos: Máquina de Mealy: En esta máquina de estados las salidas se encuentran determinadas por el estado interno del sistema y por las entradas no sincronizadas con el circuito. Se observa que las salidas del sistema son tanto sincrónicas como asincrónicas. Figura 12: Maquina de Estado de Mealy Máquina de Moore: Las salidas solo dependen del estado interno y de cualquier entrada sincronizada con el circuito, donde las salidas del sistema son únicamente sincrónicas. Figura 13: Maquina de Estado de Moore Fascículo No. 1 Semestre 6 27 Procesadores Procesadores Tablas de Estado Una tabla de estado es un listado que contiene la secuencia de los estados de entradas, estados internos y salidas del sistema, considerando todas las posibles combinaciones de estados actuales y entradas. Las tablas de estado por lo general se dividen en tres partes: estados actuales, estados siguientes y salidas. Tabla 4: Tabla de Estado inicial La tabla de estado para un circuito secuencial con m flip-flops y n entradas tiene filas ( . El estado siguiente tiene m columnas, y el número de columnas depende del número de salidas. Existe una forma más conveniente de organizar la información en la tabla de estado, la cual se muestra en la Tabla 7.1.2, donde los estados se agrupan de tal modo que la tabla se puede traducir a un diagrama de estados. Al igual que la tabla anterior esta tiene tres secciones: estados actuales, estados siguientes y salidas, sin embargo los estados se agrupan dependiendo del valor de las entradas. La sección de estados actuales agrupa los estados que ocurren antes de una transición en la señal de reloj, la sección de estados siguientes lista aquellos que ocurren después de la transición del reloj y la sección de salidas reúne los estados que se dan en el mismo instante de los estados actuales. (Cfr. Amoros, 2001). Procesadores 28 Fascículo No. 1 Semestre 6 Procesadores Tabla 5: Tabla de estado forma simplificada Haciendo un análisis de la operación del circuito de la figura 7.1.3. se puede observar lo siguiente: Cuando la variable X=0 los estados actuales A y B cambian a 0 después de la transición de reloj , y cuando X=1, los estados de las salidas se comportan tal como se resume en la tabla 3. Se plantea como ejercicio verificar la información de la tabla. Diagramas de Estado Un diagrama de estados es una representación gráfica que indica la secuencia de los estados que se presentan en un circuito secuencial, teniendo en cuenta las entradas y salidas. El diagrama se forma con círculos y líneas. Los circulos representan los estados del circuito secuencial y cada uno de ellos contiene un número que identifica su estado. Las líneas indican las transiciones entre estados y se marcan con dos números separados por un (/), estos dos números corresponden a la entrada y salida presentes antes de la transición. A manera de ejemplo observe la línea que une los estados 00 y 01 en el diagrama de estado de la figura 7.1.4. Esta línea marcada como 1/0 indica que el circuito secuencial se encuentra en el estado 00 mientras la entrada X=0 y la salida Y=0, y que después de que ocurra una transición en la señal de reloj el estado cambia a 01. Fascículo No. 1 Semestre 6 29 Procesadores Procesadores Tabla 6 Diagrama de Estados El proceso de diseño de un circuito combinacional consiste en: 1. Determinar el número de variables de entrada y de salida necesarias, identificar las 2. variables de entrada, asignarles un nombre y hacer lo mismo con las variables de salida. 3. Deducir la tabla de verdad que define las relaciones entre las variables de entrada y de salida. 4. Simplificar las funciones representadas en la tabla de verdad. 5. Obtener el circuito a partir de las funciones simplificadas. 1.1. 1. Realice el esquema con compuertas lógicas de las siguientes operaciones aritméticas. a + ab = a + b a (a + b) = ab 2. Hacer el circuito a partir de la siguiente función. F =(a + b) c · d 3. Tenemos una central de alarma que se disparará con la siguiente combinación de sectores activados. Realizar la tabla de la verdad y hacer el diseño del circuito 4. Procesadores 30 A y B activados; C y D en reposo A y D activados; B y C en reposo A, B y D activados; C en reposo A activado y el resto en reposo A, B y C activados; D en reposo A y C activados; B y D en reposo Encuentre la función del montaje del circuito, defina las variables de entrada. Fascículo No. 1 Semestre 6 Procesadores En la lógica combinacional los circuitos producen una respuesta instantánea, es decir, las salidas se pueden calcular a partir de la combinación de los valores de las entradas en el mismo instante. La lógica combinacional no sirve para construir circuitos que con capacidad de memoria, es decir, funciones lógicas cuya salida en el instante presente depende de entradas en el pasado. Es entonces, cuando los circuitos secuenciales aparecen y cobran relevancia conceptos que no eran tan trascendentes para los circuitos combinacionales, algunos de estos conceptos son: instante presente, instante siguiente, estado, retroalimentación, tiempo de propagación, sincronización, memoria, secuencia, conteo, etc. Obsérvese que el principal concepto involucrado en todos los anteriores es el tiempo. Figura 14 Esquema de un circuito Secuencial Fascículo No. 1 Semestre 6 31 Procesadores Procesadores FIGUERES Amorós, Emilio y Benavent, José Manuel y Garcerá Sanfeliu, Gabriel, Simulación de Circuitos Electrónicos de Potencia con Pspice, l. México: Alfa Omega Ed. 2001 FlOYD, Thomas L, Fundamentos de Sistemas Digitales, Séptima Edición. Prentice Hall. España, 2000 MALIK, Norbert R, Desarrollo y Aplicación de Sistemas Digitales, Editorial Paraninfo. 1995 Los planteamientos explicados en este fascículo deben ser tenidos en cuenta para el tratamiento de problemas posteriores. En el siguiente fascículo daremos introducción a las características y principios de diseño con los microprocesadores y microcontroladores. Procesadores 32 Fascículo No. 1 Semestre 6 Procesadores Seguimientoal autoaprendizaje Procesadores - Fascículo No. 1 Nombre_________________________________________________________ Apellidos______________________________Fecha ____________________ Ciudad _______________________________Semestre__________________ Resolver: 1. Realizar la conversión de decimal a hexadecimal de:753, seleccione la respuesta indicada a. 1011110001 b. 1011111001 c. Ninguna de las anteriores 2. Realizar la conversión de hexadecimal a binario de:86BF 3. Minimizar, usando las propiedades del Álgebra del Boole las siguientes expresiones F(x, y, z) = x × y + y × z + x × y × z + x × y × z + x × y × z F = (A + B) × (C + D) × (A + C) 4. Se quiere implementar un sistema con dos luces de alarma (diodos LED) y tres sensores (entradas digitales). Se llamaran a las luces A y B a las luces de alarma, y x2, x1 y x0 a los sensores digitales. El sistema deberá funcionar del próximo modo: La alarma A se dispara si se recibe señal del sensor x2 exclusivamente. La alarma B se dispara si se recibe señal del sensor x0 de forma primordial Las x Falta Dos alarmas se disparan si se recibe señal de al menos dos sensores cualesquiera. a. Realizar una especificación tabular del sistema de alarma. b. Realizar una implementación con puertas. Fascículo No. 1 Semestre 6 33 Procesadores