UNIVERSIDAD TECNOLOGICA DE LA COSTA GRANDE DE GUERRERO NOMBRE DEL ALUMNO: JOSE ANGEL FLORES VELEZ NOMBRE DEL MAESTRO: J. JESUS MARTINEZ OLMOS NOMBRE DE LA ASIGNATURA: ELECTRONICA DIGITAL CARRERA: MI5-1 TSU EN: MANTENIMIENTO AREA INSTALACIONES TRABAJO: PORTAFOLIO DE EVIDENCIAS FECHA DE ENTREGA: 03 DE ABRIL DEL 2019 ELECTRONICA DIGITAL - 1.- Lógica digital - 2.- Circuitos combi nacionales - 3.- Circuitos secuenciales - 4.- Memorias prográmales - 5.- Microcontroladores SISTEMA NUMERICO Un sistema de numeración es el conjunto de símbolos y reglas que se utilizan para la representación de datos numéricos o cantidades. Un sistema de numeración se caracteriza por su base, que es el número de símbolo distintos que utiliza y además es el coeficiente que determine cuál es el valor de cada símbolo dependiendo de la posición que ocupe. Dentro de los sistemas de numeración, el sistema binario es el más importante de los sistemas digitales. Pero también hay otros, por ejemplo: el sistema decimal es el que se utiliza para representar cantidades fuera de un sistema digital y viceversa. Hay situaciones donde se deben llevar números decimales a binarios para hacer algún tipo de procesamiento. La computadora, debido a su construcción basada en circuitos electrónicos digitales, almacena y manda la información con el sistema binario. Este es el motivo que obliga a transformar internamente todos los datos, a una representación binaria para que la maquina sea capaz de procesarlos. Pero también existen otros dos dispositivos con los cuales se pueden realizar aplicaciones en los sistemas digitales. Estos son: el sistema octal (base 8) y el sistema hexadecimal (base 16). Estos se vean con la finalidad de ofrecer un eficaz medio de representación de números binarios grandes teniendo la ventaja de poder convertirse fácilmente al y del binario, y por ser los más compatibles con este. SISTEMAS DE NUMERACION DECIMAL. Este sistema se ha utilizado desde tiempos remotos, primero se utilizaba al contar y/o comparar con los dedos de las manos. Este sistema tiene su base en los 10 símbolos (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) que al combinarlos permite representar cantidades imaginables. SISTEMA DE NUMERACION BINARIA Este sistema de base 2 es el más sencillo de todos, por ser de solo 2 dígitos, fue introducido por Leibniz, en el siglo XVII, es el sistema que internamente utilizan los circuitos digitales que configuraban el hardware de las computadoras actuales. “convertir el 63 a numero binario” 6310 = 1111112 63 1 31 1 15 1 7 1 3 1 1 1 Es el sistema binario solo se emplea dos cifras. El cero y el uno Binario Decimal 0 0 1 1 10 2 11 3 NOTA: En el sistema binario, un número Par termina siempre 100 4 un 0 y un número Impar termina siempre en 1. 101 5 110 6 111 7 1000 8 1001 9 1010 10 Convertir el número 4310 en binario. 43 21 10 5 2 0 1 1 0 1 0 1 Se ordena de abajo hacia arriba 1010112 Convertir el número 101011 en decimal. Como el número tiene 6 dígitos, la suma de potencia comienza por el digito de mayor valor, (el situado más a la derecha). 15 04 13 02 11 102 (1x25) + (0x24) + (1x23) + (0x22) + (1x21) + (1x20) 32 + 0 + 8 + 0 + 2 + 1 32 + 8 + 2 + 1 = 4310 BIT.- es la expresión abreviada de las palabras inglesas binary digit. Que expresa por lo tanto un digito binario. Como el sistema de numeración binario solamente emplea las cifras 0 y 1, un bit es el estado individual (0 o 1, un bit es el estado individual (0 0 1) dentro de un numero binario. PALABRA BINARIA Es un grupo de bit que se utiliza conjuntamente para el proceso de datos, calculo con números binarios, conversión de estos números, etc. VARIABLE BINARIA Se define como variable binaria toda variable que solo puede tomar dos (variables) valores, que correspondan a dos estados distintos y exclusivos. COMPUERTAS LOGICAS La compuerta lógica es el circuito más elemental capaz de trabajar con una variable binaria, es decir, con 2 o estados lógicos distintos y excluyentes. Las 2 compuertas lógicas fundamentales son: ADN Y OR. ANALISIS DE VARIABLE BINARIA 1.- Lámpara encendida o apagada: se trata de una variable binaria, puesto que los adjetivos “encendido y apagada” corresponden a dos estados distintos y exclusivos de la lámpara. Si está encendida… no está apagada y viceversa. Una lámpara no puede estar encendida y apagada al mismo tiempo (un estado excluye al otro). INTERRUPTOR ABIERTO O CERRADO Se trata de una variable binaria, puesto que también son dos estados distintos y exclusivos del interruptor. COMPUERTA LOGICA AND. (Y) La puerta lógica and o puerta Y responde a lo fundamental de electrónica digital. Tengo dinero y tengo días libres y tengo trasporte y tengo alojamiento. Objetivo: Realizar un viaje. Realice el circuito eléctrico correspondiente. Dinero días libres transporte alojamiento viaje Viaje Dinero días libres transporte alojamiento + -NOTA: Si una conexión no se cumple, el viaje no se realiza. Compuertas de 1 entrada 1 salida - NOT - YES - BUFFER TABLA DE VERDAD ENTRADAS SALIDA A Y 0 B 0 0 0 1 0 1 0 0 1 1 1 A B - - Y + Las entrada de las compuertas lógicas se designan con las primeras letras del alfabeto (A.B.C.D. etc.) mientras que la salida se designa con la letra “Y”. Para definir cuantas combinaciones tenemos en una tabla de verdad se debe colocar la base (2) y el número de entrada como exponente. Del ejemplo anterior 24 = 2x2x2x2 = 16 combinaciones. Base En la puerta lógica and la salida será 1 cuando todos sus estados estén en 1. Las compuertas lógicas AND, responde al producto lógico AND, este producto lógico. Se representa con cualquiera de los símbolos (x,-, n) Las reglas del algebra de Boole correspondiente al producto lógico and de 2 variables binarias son: 0x0 =0 NOTA: cuando se observe una rayita encima de una o salida de 1x0 =0 una compuerta (A) significa negación: A = 1 0x1 =0 A=0 1x1 =1 SIMBOLO A B Y Normas Mil – STD Norma Din A B Y Norma C.E.I PUERTA LOGICA OR (0) La puerta lógica OR también denominada o, responde a la condición de que una cosa es llevada a cabo si se cumple al menos una condición previa. “tengo dinero o tengo días libres o tengo transporte o tengo alojamiento”. Realice el diagrama eléctrico correspondiente - + Días libres $ Transporte Alojamiento A Y SIMBOLO B A B C D Y 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 COMPUERTA NOT A Y Es una compuerta especial, de una entrada una salida, la cual se encarga de negar toda la entrada que a ello llega. Tabla de verdad NOT A 0 1 Y 1 0 I A I B I Y 0 TABLA DE VERDAD NAND A B Y 0 0 1 0 1 1 1 0 1 1 1 0 Electrónica digital fácil SIMBOLO A A A Norma Mil-STD Y Y 1 Norma DIN Y Norma CEI COMPUERTAS LOGICAS BUFFER Es un circuito de paso o de acoplamiento entre 2 circuitos son circuitos que poseen una entrada y una salida. El buffer tiene como objetivo evitar la reacción que puede provocar un circuito sobre su procedente por lo que su salida es siempre igual a su entrada. A YY A A 1 Y Din Y Norma mil-STD Norma Norma CEI TABLA DE VERDAD A 0 1 Y 0 1 COMPUERTAS LOGICAS NAND La compuerta lógica más elemental es la NAND. La palabra NAND está formada por la contracción de las palabras NOT Y AND. De ello se deduce que una puerta nand está formada por puerta AND más una NOT. A B Y Norma MIL-STD Y Norma DIN A B A Y B A B Y 0 0 1 0 1 1 1 0 1 1 1 0 Norma CEI PUERTA LOGICA NOR Esta compuerta está formada por 2 puertas lógicas, una OR y una inversa. SIMBOLO TABLA DE VERDAD AA A B Y Norma MIL-STD B A B A Y ≥ A B Y 0 0 1 0 1 0 1 0 0 1 1 0 Norma DIN Y Norma CEI B COMPUERTAS EXCLUSIVAS (XOR) Esta compuerta se denomina puerta exclusiva OR. Es una compuerta de auto coincidencia y comparador. La función EOR se aplica solamente a 2 entradas A y B y una salida y cuando una sola de las entradas A o B se le aplica el pulso. SIMBOLO AA A BB TABLA DE VERDAD XOR Y Norma MIL-STD A B Y XOR A B Y 0 0 0 0 1 1 1 0 1 1 1 0 COMPUERTA XNOR Esta es todo lo contrario a la compuerta XOR, ya que cuando las entradas sean iguales se presentara una salida en estado 1 y si son diferentes la salida será un estado 0. Realice las combinaciones de compuertas para obtener la tabla de verdad correspondiente a estas compuestas. TABLA DE VERDAD A B Y A B Y 0 0 1 0 1 0 1 0 0 1 1 1 ¿QUÉ ES EL ÁLGEBRA BOOLEANA? Es una rama especial del álgebra que se usa principalmente en electrónica digital. El álgebra booleana fue inventada en el año 1854 por el matemático inglés George Boole. El álgebra de Boole es un método para simplificar los circuitos lógicos (o a veces llamados circuitos de conmutación lógica) en electrónica digital. Por lo tanto, también se llama como "Cambio de álgebra". Podemos representar el funcionamiento de los circuitos lógicos utilizando números, siguiendo algunas reglas, que son bien conocidas como "Leyes del álgebra de Boole". También podemos hacer los cálculos y las operaciones lógicas de los circuitos aún más rápido siguiendo algunos teoremas, que se conocen como "Teoremas del álgebra de Boole". Una función booleana es una función que representa la relación entre la entrada y la salida de un circuito lógico. La lógica booleana solo permite dos estados del circuito, como True y False. Estos dos estados están representados por 1 y 0, donde 1 representa el estado "Verdadero" y 0 representa el estado "Falso". Lo más importante para recordar en el álgebra de Boole es que es muy diferente al álgebra matemática regular y sus métodos. Antes de aprender sobre el álgebra de Boole, vamos a contar un poco sobre la historia del álgebra de Boole y su invención y desarrollo. LEYES E IDENTIDADES DEL ÁLGEBRA BOOLEANA Al formular expresiones matemáticas para circuitos lógicos es importante tener conocimiento del álgebra booleana, que define las reglas para expresar y simplificar enunciados lógicos binarios. Una barra sobre un símbolo indica la operación booleana NOT, que corresponde a la inversión de una señal. Leyes fundamentales OR A+0=A A+1=1 A+A=A A+A=1 AND A+0=0 A+1=A A+A=A A+A=0 NOT A¨ = A Los dos puntos en la A corresponden a dos barras de negación. Leyes conmutativas A+B=B+A A∙B=B∙A Leyes asociativas (A + B) + C = A + (B + C) (A ∙ B) ∙ C = A ∙ (B ∙ C) Leyes distributivas A ∙ (B + C) = (A ∙ B) + (A ∙ C) A + (B ∙ C) = (A + B) ∙ (A + C) Otras identidades útiles A + (A ∙ B) = A A ∙ (A +B) = A A+( ∙ B) = A + B (A + B) ∙ (A + B) = A (A + B) ∙ (A + C) = A + (B ∙ C) A + B + (A ∙ B) = A + B (A ∙ B) + (B ∙ C) + ( B ∙ C) = (A ∙ B) + C (A ∙ B) + (A ∙ C) + ( Ejemplo: ∙ C) = (A ∙ B) + ( ∙ C) Se va a simplificar la siguiente expresión aplicando las leyes e identidades booleanas mencionadas: E = (X ∙ Y ∙ Z) + (Y ∙ Z) +(X ∙ Y) Es posible aplicar la ley asociativa y la ley fundamental de que A ∙ 1 = A: E = X ∙ (Y ∙ Z) + 1 ∙ (Y ∙ Z) +(X ∙ Y) Ahora es posible factorizar el término (Y ∙ Z): E = (X +1) ∙ (Y ∙ Z) +(X ∙ Y) Dado que A + 1 = 1 según las leyes fundamentales por lo tanto X + 1 = 1: E = 1 ∙ (Y ∙ Z) +(X ∙ Y) Al realizar la operación tendremos ya simplificada la expresión: E = (Y ∙ Z) +(X ∙ Y) Aún podemos simplificar la expresión al factorizar Y: E = Y ∙ (Z +X) LEYES DE MORGAN Las leyes de Morgan son reglas de inferencia usadas en lógica proposicional, que establecen cuál es el resultado de negar una disyunción y una conjunción de proposiciones o variables proposicionales. Estas leyes fueron definidas por el matemático Augustus De Morgan. Las leyes de Morgan representan una herramienta muy útil para demostrar la validez de un razonamiento matemático. Posteriormente fueron generalizadas dentro del concepto de conjuntos por el matemático George Boole. Leyes de Morgan Esta generalización hecha por Boole es completamente equivalente a las leyes de Morgan iniciales, pero está desarrollada específicamente para conjuntos en lugar de para proposiciones. Dicha generalización también es conocida como leyes de Morgan. Repaso de lógica proposicional Antes de ver cuáles son específicamente las leyes de Morgan y cómo se usan, es conveniente recordar algunas nociones básicas de lógica proposicional. (Para más detalles ver artículo de lógica proposicional). En el ámbito de la lógica matemática (o proposicional), una inferencia es una conclusión que se emite a partir de un conjunto de premisas o hipótesis. Esta conclusión, junto con las premisas mencionadas, da lugar a lo que se conoce como un razonamiento matemático. Dicho razonamiento debe poder demostrarse o negarse; es decir, que no todas las inferencias o conclusiones en un razonamiento matemático son válidas. Falacia Una inferencia falsa emitida a partir de ciertas hipótesis que se asumen verdaderas, se conoce como falacia. Las falacias tienen la particularidad de ser argumentos que parecen correctos, pero matemáticamente no lo son. La lógica proposicional se encarga precisamente de desarrollar y proporcionar métodos por medio de los cuales se puede, sin ningún tipo de ambigüedad, validar o refutar un razonamiento matemático; es decir, inferir una conclusión válida a partir de premisas. Estos métodos se conocen como reglas de inferencia, de las cuales forman parte las leyes de Morgan. Proposiciones Los elementos esenciales de la lógica proposicional son las proposiciones. Las proposiciones son afirmaciones sobre las que se puede decir si son válidas o no, pero que no pueden ser verdaderas o falsas al mismo tiempo. No debe haber ambigüedad en este asunto. Así como los números se pueden combinar a través de las operaciones de suma, resta, multiplicación y división, las proposiciones se pueden operar por medio de los conocidos conectivos (o conectores) lógicos: negación (¬, “no”), disyunción (V, “o”), conjunción (Ʌ, “y”), condicional (→, “si…, entonces…”) y bicondicional (↔, “si, y solo si”). Para trabajar de manera más general, en lugar de considerar proposiciones específicas se consideran variables proposicionales que representan proposiciones cualesquiera, y por lo general se denotan con letras minúsculas p, q, r, s, etc. Una fórmula proposicional es una combinación de variables proposicionales por medio de algunos de los conectivos lógicos. En otras palabras, es una composición de variables proposicionales. Se suelen denotar con letras griegas. Se dice que una fórmula proposicional implica lógicamente a otra cuando esta última es verdadera cada vez que la primera lo es. Esto se denota por: Cuando la implicación lógica entre dos fórmulas proposicionales es recíproca —es decir, cuando la implicación anterior es válida también en el sentido contrario— se dice que las fórmulas son lógicamente equivalentes, y se denota por La equivalencia lógica es una especie de igualdad entre fórmulas proposicionales y permite reemplazar una por la otra cuando sea necesario. Las leyes de Morgan consisten en dos equivalencias lógicas entre dos formas proposicionales, a saber: Estas leyes permiten separar la negación de una disyunción o conjunción, como negaciones de las variables involucradas. La primera se puede leer de la siguiente manera: la negación de una disyunción es igual a la conjunción de las negaciones. Y la segunda se lee así: la negación de una conjunción es la disyunción de las negaciones. En otras palabras, negar la disyunción de dos variables proposicionales equivale a la conjunción de las negaciones de ambas variables. Así mismo, negar la conjunción de dos variables proposicionales es equivalente a la disyunción de las negaciones de ambas variables. Como se mencionó anteriormente, la sustitución de esta equivalencia lógica ayuda a demostrar resultados importantes, junto con las otras reglas de inferencia existentes. Con estas se pueden simplificar muchas fórmulas proposicionales, de manera que sean más útiles para trabajar. El siguiente es un ejemplo de una demostración matemática utilizando reglas de inferencia, entre estas las leyes de Morgan. Específicamente, se demuestra que la fórmula: Es equivalente a: Esta última es más simple de comprender y desarrollar DEMOSTRACIÓN Cabe mencionar que la validez de las leyes de Morgan se puede demostrar matemáticamente. Una manera es comparando sus tablas de verdad. Conjuntos Las mismas reglas de inferencia y las nociones de lógica aplicadas a proposiciones, también se pueden desarrollar considerando conjuntos. Esto es lo que se conoce como álgebra booleana, en honor al matemático George Boole. Para diferenciar los casos, es necesario cambiar la notación y trasladar a conjuntos, todas las nociones ya vistas de la lógica proposicional. Un conjunto es una colección de objetos. Los conjuntos se denotan con letras mayúsculas A, B, C, X,… y los elementos de un conjunto se denotan con letras minúsculas a, b, c, x, etc. Cuando un elemento a pertenecer a un conjunto X, se denota por: Cuando no pertenece a X, la notación es: La manera de representar los conjuntos es colocando sus elementos dentro de llaves. Por ejemplo, el conjunto de los números naturales se representa por: MAPA DE KARNAUGH Ejemplo de mapa de Karnaugh Karnaugh (también Un mapa de conocido como tabla de Karnaugh o diagrama de Veitch, abreviado como MapaK o Mapa-KV) es un diagrama utilizado para la simplificación de funciones algebraicas Booleanas. El mapa de Karnaugh fue inventado en 1953 por Maurice Karnaugh, un físico y matemático de los laboratorios Bell. Los mapas de Karnaugh reducen la necesidad de hacer cálculos extensos para la simplificación de expresiones booleanas, aprovechando la capacidad del cerebro humano para el reconocimiento de patrones y otras formas de expresión analítica, permitiendo así identificar y eliminar condiciones muy inmensas. El mapa de Karnaugh consiste en una representación bidimensional de la tabla de verdad de la función a simplificar. Puesto que la tabla de verdad de una función de N variables posee 2N filas, el mapa K correspondiente debe poseer también 2N cuadrados. Las variables de la expresión son ordenadas en función de su peso y siguiendo el código Gray, de manera que sólo una de las variables varía entre celdas adyacentes. La transferencia de los términos de la tabla de verdad al mapa de Karnaugh se realiza de forma directa, albergando un 0 ó un 1, dependiendo del valor que toma la función en cada fila. Las tablas de Karnaugh se pueden fácilmente realizar a mano con funciones de hasta 6 variables, para funciones de mayor cantidad de variables es más eficiente el uso de software especializado. REGLAS DE SIMPLIFICACIÓN 1. Las agrupaciones son exclusivamente de unos. Esto implica que ningún grupo puede contener ningún cero. 2. Las agrupaciones únicamente pueden hacerse en horizontal y vertical. Esto implica que las diagonales están prohibidas. 3. Los grupos han de contener 2n elementos. Es decir que cada grupo tendrá 1, 2, 4,8... Número de unos. 4. Cada grupo ha de ser tan grande como sea posible. Tal y como lo ilustramos en el ejemplo. 5. Todos los unos tienen que pertenecer como mínimo a un grupo. Aunque pueden pertenecer a más 6. Pueden existir solapamiento de grupos. de uno 7. La formación de grupos también se puede producir con las celdas extremas de la tabla. De tal forma que la parte inferior se podría agrupar con la superior y la izquierda con la derecha tal y como se explica en el ejemplo. 8. Tiene que resultar el menor número de grupos posibles siempre y cuando no contradiga ninguna de las reglas anteriores. Esto es el número de grupos ha de ser minimal. ¿QUÉ ES UN FLIP FLOP? El flip flop es el nombre común que se le da a los dispositivos de dos estados (biestable), que sirven como memoria básica para las operaciones de lógica secuencial. Los Flip-flops son ampliamente usados para el almacenamiento y transferencia de datos digitales y se usan normalmente en unidades llamadas “registros”, para el almacenamiento de datos numéricos binarios. Son dispositivos con memoria más comúnmente utilizados. Sus características principales son: Asumen solamente uno de dos posibles estados de salida. Tienen un par de salidas que son complemento una de la otra. Tienen una o más entradas que pueden causar que el estado del Flip-Flop cambie. Los flip flops se pueden clasificar en dos: Asíncronos: Sólo tienen entradas de control. El más empleado es el flip flop RS. Síncronos: Además de las entradas de control necesita un entrada sincronismo o de reloj. Una vez teniendo una idea de lo que es un flip flop vamos a describir los flip flop más usados Flip-Flop R-S (Set-Reset) Utiliza dos compuertas NOR. S y R son las entradas, mientras que Q y Q’ son las salidas (Q es generalmente la salida que se busca manipular.) La conexión cruzada de la salida de cada compuerta a la entrada de la otra construye el lazo de reglamentación imprescindible en todo dispositivo de memoria. Para saber el funcionamiento de un Flip flop se utilizan las Tablas de verdad. Si no se activa ninguna de las entradas, el flip flop permanece en el ultimo estado en el cual se encontraba. Flip-Flop T El Flip-flop T cambia de estado en cada pulso de T. El pulso es un ciclo completo de cero a 1. Con el flip flop T podemos complementar una entrada de reloj al flip flop rs. La siguiente tabla muestra el comportamiento del FF T y del FF S-R en cada pulso de t. Flip-Flop J-K (Jump-Keep) El flip-flop J-K es una mezcla entre el flip-flop S-R y el flip-flop T. A diferencia del flip flop RS, en el caso de activarse ambas entradas a la vez, la salida adquiere el estado contrario al que tenía. La siguiente tabla muestra el comportamiento del flip flop JK Flip-Flop D (Delay) El flip-flop D es uno de los FF más sencillos. Su función es dejar pasar lo que entra por D, a la salida Q, después de un pulso del reloj. La siguiente tabla muestra el comportamiento del flip flop D Para que sirven las entradas Clear y Preset? Cuando se están utilizando flip-flops en la construcción de circuitos, es necesario poder controlar el momento en el que un FF empieza a funcionar y el valor con el que inicia su secuencia. Para esto, los flip-flops cuentan con dos entradas que le permiten al diseñador seleccionar los valores iniciales del FF y el momento en el que empieza a funcionar. Estas entradas son llamadas en Inglés: Clear y Preset. Clear – inicializa Q en cero sin importar entradas o reloj Preset – inicializa Q en 1 sin importar entradas o reloj Para ambas entradas, si reciben el valor de: 0: inicializan el FF en el valor correspondiente. 1: el flip-flop opera normalmente La siguiente figura muestra un FF J-K con entradas de inicialización. Note que tanto la entrada Clear, como la entrada Preset, tienen un círculo. Esto significa que la entrada funciona con un 0. MICROCONTROLADOR Un microcontrolador (abreviado μC, UC o MCU) es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica. Un microcontrolador incluye en su interior las tres principales unidades funcionales de una computadora: unidad central de procesamiento, memoria y periféricos de entrada/salida. Algunos microcontroladores pueden utilizar palabras de cuatro bits y funcionan a velocidad de reloj con frecuencias tan bajas como 4 kHz, con un consumo de baja potencia (mW o microwatts). Por lo general, tendrá la capacidad de mantenerse a la espera de un evento como pulsar un botón o de otra interrupción; así, el consumo de energía durante el estado de reposo (reloj de la CPU y los periféricos de la mayoría) puede ser sólo de nanowatts, lo que hace que muchos de ellos sean muy adecuados para aplicaciones con batería de larga duración. Otros microcontroladores pueden servir para roles de rendimiento crítico, donde sea necesario actuar más como un procesador digital de señal (DSP), con velocidades de reloj y consumo de energía más altos. Cuando es fabricado el microcontrolador, no contiene datos en la memoria ROM. Para que pueda controlar algún proceso es necesario generar o crear y luego grabar en la EEPROM o equivalente del microcontrolador algún programa, el cual puede ser escrito en lenguaje ensamblador u otro lenguaje para microcontroladores; sin embargo, para que el programa pueda ser grabado en la memoria del microcontrolador, debe ser codificado en sistema numérico hexadecimal que es finalmente el sistema que hace trabajar al microcontrolador cuando éste es alimentado con el voltaje adecuado y asociado a dispositivos analógicos y discretos para su funcionamiento. ELEMENTOS INTERNOS EN UN MICROCONTROLADOR - Procesador o Microprocesador. Un procesador incluye al menos tres elementos, ALU, unidad de control y registros. - ALU. También conocida como Unidad Aritmética y Lógica. Está unidad está compuesta por los circuitos electrónicos digitales del tipo combinatorios (compuertas, sumadores, multiplicadores), cuya principal función es el realizar operaciones. Estas operaciones están divididas en tres tipos: - Lógicas. Como las operaciones básicas de las compuertas lógicas, como la suma lógica (OR), multiplicación lógica (AND), diferencia lógica (XOR) y negación (NOT). Una operación lógica sólo puede tener como entradas y como salidas una respuesta lógica (0 o 1). Esto dependiendo de los niveles de voltajes de una señal digital. - Aritméticas. Las operaciones aritméticas son la suma, resta, multiplicación y división. Dependiendo del procesador (8, 16, 32 o 64 bits) será la rapidez con la que se pueden hacer dichas operaciones. - Miscelaneas. En estas operaciones caen todas las demás operaciones como la transferencia de bits (<< >>). - Unidad de control. La unidad de control es el conjunto de sistemas digitales secuenciales (aquellos que tienen memoria) que permiten distribuir la lógica de las señales. - Registros. Los registros son las memorias principales de los procesadores, ya que funcionan a la misma velocidad que el procesador a diferencia de otras memorias un tanto más lentas (como la RAM, FLASH o la CACHE). Los registros están construidos por Flip-Flops. Los Flip-Flops son circuitos digitales secuenciales. - Periféricos. Los periféricos son los circuitos digitales que nos permiten una interacción con el mundo “exterior” al microcontrolador. Su función es la de poder habilitar o deshabilitar las salidas digitales, leer sensores analógicos, comunicación con terminales digitales o sacar señales analógicas de una conversión digital. - Puertos de entrada/salida pararelos. Los puertos están relacionados al tamaño del procesador, es decir que un puerto de 8 bits es porque el procesador es de 8 bits. Un procesador de 64 bits, tiene la capacidad de tener un puerto de 64 bits. - Puertos seriales. Nos permiten transformar la información digital pararela (bytes de información) en tramas que se pueden transferir por una o varias líneas de comunicación. Existen por ejemplo: puerto serial, i2c, SPI, USB, CAN, etc. - Periféricos analógicos. Como los que convierten señales analógicas a digitales (ADC) o señales digitales a analógicas (DAC) o comparadores analógicos. - Memoria. La memoria está dividida en tres. La memoria para el programa (FLASH), la memoria para los datos o variables del programa (RAM) y la memoria para configuraciones o no volátil (EEPROM). DIFERENCIA ENTRE UN MICROCONTROLADOR Y UN MICROPROCESADOR La diferencia entre un microcontrolador y un microprocesador son los elementos que lo componen. Por ejemplo, un microcontrolador contiene un microprocesador y un microprocesador al menos incluye: una alu, memoria y una unidad de control. Lo podemos ver de la siguiente forma, un microcontrolador tiene un microprocesador pero un microprocesador no puede contener un microcontrolador. ¿QUÉ ES LA ARQUITECTURA DE UN MICROCONTROLADOR? La arquitectura de un microcontrolador se puede referir a dos cosas. Se puede clasificar la arquitectura de un microcontrolador de acuerdo a la organización de sus memorias o al ancho de su bus de memoria y/o datos. ARQUITECTURA HARDVARD VS VON NEUMMAN La primera puede ser la forma en la que está organizada la memoria. Entonces, de acuerdo a como está organizada la memoria, podemos hablar de dos tipos de arquitecturas. La Arquitectura Harvard y la arquitectura Von Neumann. Cronológicamente hablando, la primera arquitectura fue la Von Neumann, en esta organización el bus de datos y el bus de memorias son el mismo. Por lo tanto el proceso para ejecutar una instrucción es más lento. ARQUITECTURA POR EL TAMAÑO DE BITS DEL PROCESADOR La segunda clasificación de la arquitectura de un microcontrolador es por el ancho o tamaño en bits de sus buses de datos y/o memoria. Por ejemplo, una arquitectura de 64bits puede significar que el procesador puede hacer operaciones con operadores o variables de un tamaño de 64 bits e incluso que puede direccionar o guardar hasta 2^64 localidades de memoria tanto de programa como de datos. Entonces por lo general, un procesador de más bits puede hacer operaciones matemáticas complejas en un menor tiempo. MICROCONTROLADOR INCLUYE UN MICROPROCESADOR Para el Microcontrolador, un Microprocesador es el conjunto de tres sistemas digitales: ALU, unidad de control y registros. Los microprocesadores fueron los padres de los microcontroladores. Uno de los primeros procesadores comerciales que se enseñaban en las universidades era el Z80. El procesador Z80 requiere de componentes adicional para poder funcionar en alguna aplicación. Por ejemplo, no tiene RAM o FLASH. Estás dos memorias sirven para guardar el contenido de los datos del programa y al programa en si mismo respectivamente. Para ensamblar un circuito mínimo, se tenía que conectar al Z80: memoria externa y controladores para poder tener algún puerto paralelo. No se diga un puerto serial, se tenía que diseñar mediante electrónica reconfigurable (GALs, Compuertas lógicas, Flip-Flops, Multiplexores, etc.). MICROCONTROLADOR Y SUS PERIFÉRICOS En el Microcontrolador los Periféricos son módulos electrónicos digitales que se encuentran embebidos o empotrados en el microcontrolador. Permiten controlar distintas funciones de los puertos. Por ejemplo, conexión de puertos de entrada/salida en paralelo. Adicionalmente, los periféricos pueden cumplir con funciones adicionales o secundarias. Dichas funciones se pueden configurar mediante registros de propósito específico. PERIFÉRICOS DE COMUNICACIÓN UART. Unidad de Recepción y Transmisión Serial Asíncrona. Consiste de dos cables llamados RX y Tx que sirven para enviar mensajes binarios con otros sistemas digitales. I2C. Puerto de comunicación serial síncrono. Permite enviar y recibir datos mensajes con hasta 127 dispositivos conectados al mismo de bus que consiste en dos cables: SDA y SCL. Serial Data y Serial CLock respectivamente. SPI. Serial Peripherical Interface. Interfaz Serial Periférica. Es un puerto de comunicación serial síncrona. Su función es la de enviar información binaria mediante 4 cables de conexión. MISO – Master Input Slave Output. Entrada del Maestro y Salida del Esclavo. MOSI – Master Output Slave Input. Salida del Maestro Entrada del Esclavo. SCK. Serial CLock. Reloj Serial. /CS ó /SS. Chip Select o Slave Select. Selector del Chip o Selector del Esclavo. Permite activar un esclavo. Puerto Paralelo. Se controlan por medio de registros. Generalmente se pueden controlar mediante tres registros. Registro de dirección para configurar entrada ó salida. Registro de estado para la entrada. Nos indica el nivel lógico a la entrada del pin de cada puerto, cuando esté está configurado como entrada. Registro de configuración del estado lógico de salida. Permite escribir 1’s y 0’s a los pines del puerto, cuando esté está configurado como salida. PERIFÉRICOS DE ADECUACIÓN DE SEÑALES ADC. Convertidor de Señales Analógicas a Digitales. Permiten generar una representación binaria para la magnitud de una señal analógica. DAC. Digital to Analog Converter. Lo opuesto a un DAC. También es ideal cuando se quiere generar audio. Una tarjeta de audio no es más que un DAC de muy buena calidad y muy rápido. PERIFÉRICOS GENERALES Timer/Contador. Son circuitos electrónicos digitales y secuenciales. Es decir que funcionan en flancos de una señal de reloj que oscila a una frecuencia determinada. Su función principal es la de contar eventos, ya sea internos (timer) o externos (contador), a una frecuencia que nos permite por ejemplo, contar el tiempo transcurrido de un proceso. Controlador de Interrupciones. Son dispositivos que permiten alterar la secuencia de ejecución del procesador. Esto logra que se pueda interrumpir al procesador para atender el llamado de dispositivos electrónicos de baja velocidad. Por ejemplo, teclados o sensores. Controlador de Oscilador. Permite dividir y/o multiplicar a osciladores internos o externos para poder hacer funcionar a la parte secuencial de la electrónica del microcontrolador. MICROCONTROLADOR Y SUS MEMORIAS La memoria de los microcontroladores puede dividirse en cuatro tipos distintos: para el programa, generalmente es una memoria interna del tipo FLASH. También para las variables de los programas se llama RAM. Los registros de propósito general que utiliza el procesador para guardar los resultados de las operaciones así como los datos que se traen y llevan a la RAM y finalmente la memoria externa que se utiliza para guardar mediciones y/o datos de calibración. MEMORIA DE PROGRAMA – FLASH La memoria de programa es la que se utiliza cuando estamos programando a nuestra aplicación. Cada instrucción del lenguaje ensamblador o de lenguaje C o de un lenguaje de alto nivel, es convertida a instrucciones máquina que requieren de un tamaño particular de bits para ser guardadas. Estos bits o instrucciones se guardan en la FLASH. Si tenemos poca FLASH, entonces sólo podremos hacer programas pequeños. MEMORIA DE DATOS – RAM La memoria de datos se utiliza cada vez que agregamos una variable nuestro programa. Como la variable seguramente se utilizara como entrada para un proceso o calculo, está requiere de estar disponible a una velocidad relativamente rápida. Este tipo de información se guarda en la RAM – Random Access Memory o Memoria de Acceso Aleatorio por sus siglas en ingles. Si tenemos poca RAM, nuestra aplicación no podrá tener muchas variables. MICROCONTROLADOR Y SUS REGISTROS Los registros son las memorias digitales más rápidas. Se construyen con Flip-Flops y generalmente funcionan a una velocidad cercana a la del procesador. En algunos procesadores, también incluyen un tipo de memoria llamada CACHE. Está no puede guardar operaciones y sólo es un puente entre el procesador y la memoria principal. Por ejemplo, se puede ver la estructura del registro 74LS377 el cual puede funcionar como un registro (memoria). MEMORIA EXTERNA La memoria externa se suele utilizar cuando queremos guardar parte de la información que estamos recolectando y/o procesando. Se suelen usar también para procesos de calibración. Existen dos distintos tipos de memorias no volátiles que pueden ser usadas externamente para los microcontroladores. EEPROM – Memoria Eléctricamente Borrable de Solo Lectura. Ojo, también se pueden programar y escribir. FLASH – Como la que tienen internamente los microcontroladores. Pero estas suelen funcionar a una velocidad mucho más lenta a través de protocolos seriales como I2C, Serial o SPI. MICROCONTROLADOR – SU HISTORIA Anterior a los microcontroladores, los sistemas reconfigurables se diseñaban para funcionar como autómatas. Los autómatas también eran llamados máquinas de estado. Para diseñar una máquina de estados, primero se crea una tabla de condiciones lógicas. Esta tabla indica todo el conjunto de las combinaciones lógicas posibles de las entradas y estados actuales de las salidas. El diseño de un autómata involucraba a estas dos condiciones. Cuando se tenían todas las combinaciones posibles, se elegían los estados futuros y se diseñaba el sistema digital. Entonces el proceso es muy lento e involucra una gran cantidad de circuitos digitales secuenciales (flip-flops). Mientras que las máquinas de estado se volvían más complejas, se comenzaron a crear módulos independientes que funcionaban de forma general para múltiples propósitos. Por ejemplo, una ALU – Unidad Aritmética Lógica, es el elemento central en el diseño de un procesador. Sin embargo, este circuito al ser puramente combinacional (sus salidas solo dependen de sus entradas), no es muy útil para ser automatizado. Para esto, se requiere de circuitos secuenciales. Esto dio entrada al diseño de los primeros procesadores.