Estructura de una microcomputadora
Las computadoras constan de tres secciones: la unidad central de proceso (CPU, por sus siglas en inglés), la cual reconoce y ejecuta las instrucciones de un programa; los circuitos de interfase de entrada y salida, los cuales controlan las comunicaciones entre la computadora y el mundo exterior, y la memoria, donde se almacenan las instrucciones y datos de un programa.
Las señales digitales se desplazan de una sección a otra a través de vías llamadas buses. En sentido físico, el bus consta de varios conductores a través de los cuales se transportan diversas señales eléctricas. Estos pueden ser las pistas de una tarjeta de circuito impreso, o los alambres de un cable plano.
Los datos necesarios para las instrucciones de procesamiento de la CPU se transportan a través del bus de dalos. la dirección de una localidad de memoria específica para accesar a los datos almacenados se transporta por el bus de dirección y las señales de las acciones de control viajan por el bus de control.
En ocasiones el chip del microprocesador sólo contiene la CPU, mientras que en otros casos en un chip están todos los componentes necesarios de una computadora. A los microprocesadores que tienen memoria y diversas configuraciones de entrada/salada en un mismo chip se llaman microcontroladores.
Buses
El bus de datos se utiliza para transportar palabras a o desde la CPU, la memoria o las interfases de entrada-salida. La longitud de las palabras puede ser de 4, 8, 16, 32 o 64 bits. En cada línea del bus viaja una señal binaria, es decir, un 0 o un 1. Así, en un bus de cuatro líneas se podría transportar la palabra 1010; en cada cable se transporta un bit, es decir:
Entre más líneas tenga el bus de datos, más larga podrá ser la palabra que se utilice. El rango de valores que puede adoptar un elemento de datos está restringido al espacio correspondiente a una determinada longitud de palabra.
El bus de dirección transporta señales que indican dónde se pueden encontrar los datos mediante la selección de alguna localidad de memoria o los puertos de entrada y salida. Cuando una determinada dirección es seleccionada, colocándola en el bus de dirección, dicha ubicación será la única que estará abierta a la comunicación que se envía desde la CPU.
El bus de control es el medio a través del cual se envían las señales que sincronizan cada uno de los elementos. Las señales del reloj del sistema se transportan en el bus de control.
CPU
Es la sección del procesador en la que se procesan los datos, se traen instrucciones de la memoria que se decodifican y se ejecutan. Se puede decir que consta de una unidad de control, una unidad lógica y aritmética (ALU, por sus siglas en inglés,) y de registros. Es la parte que constituye el microprocesador.
La unidad de control define la duración y secuencia de las operaciones. Produce las señales de reloj utilizadas para traer de la memoria una instrucción del programa y ejecutarla. El microprocesador 6800 de Motorola tiene un reloj con frecuencia máxima de 1 MHz, es decir, el reloj tiene un periodo de 1 fis; además, sus instrucciones necesitan de dos a doce ciclos de reloj para ejecutarse.
Existen diversos tipos de registros; la cantidad, dimensión y tipo de éstos varía de un microprocesador a otro. Los siguientes son los registros más comunes:
1. Acumulador
El registro de acumulación (A o Acc) es donde en forma temporal se guardan los resultados de la unidad aritmética y lógica. Para que la CPU pueda habilitar el acceso, es decir, hacer uso de las instrucciones o datos guardados en la memoria, es necesario que proporcione la dirección de memoria del dato requerido, utilizando el bus de direcciones. Una vez hecho lo anterior, la CPli podrá hacer uso de las instrucciones o datos necesarios a través del bus de datos.
2. Registro de estado, o registro de código de condición o registro de banderas
Este registro contiene información relacionada con el resultado de la última operación realizada en la unidad aritmética y lógica. El registro contiene bits individuales, los cuales tienen un significado especial. Estos bits se conocen como banderas y sirven para indicar el estado de la última operación; el estado de dichas banderas se ajusta o se restablece, según sea el caso, para indicar un estado determinado, por ejemplo, para indicar si el resultado de la última operación es negativo, es cero, si hay acarreo (por ejemplo, el resultado de la suma de los números binarios 101 y 110 es (1)011, el cual es mayor que el tamaño de la palabra del microprocesador, por lo que se acarrea un 1 de sobreflujo ), si hay desbordamiento, o si existe la posibilidad de interrumpirir el programa para permitir que se realice un evento externo. Las siguientes son las banderas más comunes:
3. Registro contador del programa (PC por sus siglas en inglés) o indicador de instrucciones (IP, por sus siglas en inglés)
Mediante este registro la CPU controla su posición en un programa. En este registro se encuentra contenida la dirección de la localidad de memoria en donde se encuentra la próxima instrucción del programa. Cada vez que se ejecuta una instrucción, el registro contador del programa se actualiza y de esta forma siempre contiene la dirección de la localidad de memoria donde está almacenada la siguiente instrucción que se va a ejecutar.
4. Registro de direccionamiento de memoria (MAR)
Este contiene la dirección de los datos. Por ejemplo, al sumar dos números, el registro de direccionamiento de memoria almacena la dirección del primer número. Los datos en esa dirección se transfieren al acumulador. Después el segundo número se almacena en el registro de direccionamiento de memoria. El dato de esta dirección se suma al dato en el acumulador. El resultado se guarda en una dirección la cual es direccionable por el registro de direccionamiento de memoria.
5. Registro de instrucciones (IR por sus siglas en inglés)
Este registro guarda instrucciones. Una vez leída la instrucción de la memoria, la CPU la guarda en el registro de instrucciones, la instrucción puede entonces decodificarse y usarse para ejecutar una operación.
6. Registros de propósito general
Estos registros sirven para almacenar datos o direcciones en forma temporal y se utiliza en operaciones de transferencias entre varios registros.
7. Registro de apuntador depila (SP por sus siglas en inglés)
El contenido de este registro almacena una dirección que define el tope de la pila en la memoria RAM. La pila es un área especial de memoria donde se almacenan los valores del contador de programa y datos cuando se ejecuta una subrutina.
Memoria
En la unidad de memoria se guardan datos de tipo binario; físicamente está formada por uno o varios circuitos integrados. Los datos pueden ser códigos de instrucciones de un programa, o números con los que se realizan operaciones.
Los elementos de la unidad de memoria están formados en esencia por grandes cantidades de celdas de memoria, cada una de las cuales guarda un bit 0 o 1. Las celdas de memoria se agrupan por localidades, y cada una de ellas tiene capacidad para guardar una palabra.
Existen varios tipos de unidad de memoria:
1. ROM
Las memorias ROM se programan con el contenido que se requiere durante la fabricación del circuito integrado. Mientras el chip de memoria esté en la computadora no es posible escribirle ningún dato, sólo se permite la lectura, y se utiliza para programas que no se van a modificar, como el sistema de arranque o "boof' de una computadora y programas para aplicaciones específicas en las que se utilizan mi-croprocesadores. Aun cuando se suspenda la alimentación eléctrica, esta memoria no pierde su contenido. En la figura 15.5 se muestran las conexiones de un chip ROM típico capaz de guardar un 1K x 8 bits.
2. PROM
El término ROMprogramable (PROM por sus siglas en inglés) se refiere a las memorias ROM que puede programar el usuario. En un principio, las celdas de memoria tienen un fusible como eslabón que mantiene su memoria en 0. Al hacer pasar una corriente a través del fusible, éste se abre de manera permanente, y así el valor cambia de 0 a 1. Una vez que el eslabón ha quedado abierto, los datos se guardan en forma permanente en la memoria y ya no es posible modificarlos.
3. EPROM
El término ROM borrable y programable (EPROM por sus siglas en inglés) se refiere a las memorias ROM que es posible programar y modificar. Un chip de EPROM típico contiene una serie de pequeños circuitos electrónicos, celdas, donde se almacena una carga. Para almacenar el programa se aplican voltajes a las terminales del circuito integrado y se produce una configuración de celdas cargadas y no cargadas. Esta configuración queda guardada de manera permanente en el chip hasta que la borra un haz de luz ultravioleta que pasa por una ventana de cuarzo ubicada en la parte superior del dispositivo.
4. EEPROM
La PROM eléctricamente borrable (EEPROM por sus siglas en inglés) es similar a las EPROM, pero para el borrado se utiliza un voltaje relativamente alto, en vez de la luz ultravioleta.
5. RAM
Los datos temporales, es decir, aquellos con los que en un momento dado se realizan operaciones, se guardan en una memoria de lectura/escritura conocida como memoria de acceso aleatorio (RAM por sus siglas en inglés), es la que se puede leer y escribir. La figura 15.6 muestra las conexiones típicas del chip de una RAM de 1 K x 8 bits.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7g-X4Z5MGsH5Wbmkc9SLoJK1MpOpAt-Ckt_91NjwwoBJYGmQsBoQmVMHW6Mqk5vJATPu5Epcszdeicj2gA1gbDA4ip0bm04dECCl4Ay8157iSc5jm_vJGyPkqMdtruFbyBI499IGNrPzv/s320/ram.png)
Entrada/salida
La operación de entrada/salida se define como la transferencia de datos entre el microprocesador y el mundo exterior. El término dispositivos periféricos se refiere a las piezas de equipo que intercambian datos con una arquitectura de microprocesador.
Dado que las velocidades y características de los dispositivos periféricos pueden ser muy distintas a las del microprocesador, se conectan a través de circuitos de interfase.
Una de las funciones más importantes de uno de estos circuitos es sincronizar la transferencia de datos entre el microprocesador y el dispositivo periférico. En las operaciones de entrada, el dispositivo de entrada coloca los datos en el registro de datos del circuito de interfase; estos datos permanecen ahí hasta que los lee el microprocesador. En las operaciones de salida, el micro-procesador coloca los datos en el registro hasta que los lee el dispositivo periférico.
Para que el microprocesador pueda introducir datos válidos en un dispositivo de entrada necesita estar seguro de que el circuito de interfase ha retenido en forma conecta los datos de entrada. Para ello realiza un muestreo o una interrupción. En el primer caso, el chip de interfase recurre a un bit de estado definido como 1 para indicar que los datos son válidos. El microprocesador tiene que esperar a que aparezca este bit de estado. El problema con este método es que el microprocesador debe esperar hasta que se muestre el bit de datos.
Microcontroladores
Para que un microprocesador pueda funcionar como un sistema de microcomputadora aplicado al control, son necesarios chips adicionales.
El microcontrolador consiste en la integración en un chip de un microprocesador con memoria, interfases de enfrada'salida y otros dispositivos periféricos como temporizadores.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwmqqDNr93zLcfGWLeBD_fYEWO9Zu103SDQHLiDB1YZdw7ixhVgI7RL9_2xHY7Oln2y3WZBf0LCFsyneaBNZy0pOXeSyCgjRfbMin_j9Qz5k6dP5ELpHVsule6OPlfvvHTQC3RXExjCdpX/s320/sss.png)
El M68HC11 de Motorola
Motorola cuenta con dos familias básicas de microcontroladores de 8 bits: el 68HC05, que es la versión económica, y el 68HC11, que es la versión con rendimiento superior. La familia M68HC11 de Motorola (figura 15.9), se basa en el microprocesador 6800 de Motorola, el cual es muy utilizado para sistemas de control. Hay diversas versiones, las diferencias se deben al tipo de RAM. ROM, EPROM, EEPROM y las características del registro de configuración.
1.Puerto A
El puerto A tiene sólo tres líneas de entrada, cuatro líneas de salida y una linea que funciona como entrada o salida.
2. Puerto B
El puerto B sólo funciona como salida, y tiene ocho líneas.
3. Puerto C
El puerto C puede ser tanto entrada como salida.
4. Puerto D
El puerto D contiene sólo seis líneas, que pueden ser tanto de entrada como de salida.
5. Puerto E
El puerto E es un puerto de 8 bits sólo de entrada que se puede utilizar como puerto de entrada de propósito general, o para las entradas del convertidor interno analógico-digital. Las dos entradas, Frh y Frl proporcionan voltaje de referencia al ADC.
6. Modos
MODA y MODB son dos terminales que se pueden usar para definir, durante el encendido, el funcionamiento del microcontrolador en uno de cuatro modos posibles: inicio especial, prueba especial, un solo chip y ampliado.
7- Terminales del oscilador
Las terminales del sistema oscilador XTAL y EXTAL son conexiones necesarias para accesar al oscilador interno. E es el bus temporizador y funciona a un cuarto de la frecuencia del oscilador y se puede emplear para sincronizar eventos externos.
8. Controlador de interrupción
Este controlador permite al microcontrolador interrumpir un programa. Por las lincas IRQ y XIRQ entran las señales de interrupción. RESET es para el restablecimiento.
9.Temporizador
El M68HC11 contiene un sistema de temporización. Éste cuenta con un contador de ejecución libre, una función de comparación de cinco salidas, la capacidad para capturar el tiempo cuando se produce un evento externo, una interrupción periódica en tiempo real y un contador, denominado acumulador de impulsos para eventos externos.
10. COP
Otra función de temporización es la función de la operación correcta de la computadora (COP). Consiste en un temporizador que detecta cuando ya ha transcurrido el intervalo de retardo y restablece el sistema en caso de que no se haya logrado llevar a cabo una determinada operación dentro de un lapso razonable. También se le conoce como temporizador del controlado/- de secuencia.
11. PWM
Con la modulación de ancho de pulso (PWM por sus siglas en inglés) se controla la velocidad de los motores de cd mediante una señal de onda cuadrada; al variar la cantidad de tiempo durante la cual la señal está presente, se modifica el valor promedio de la señal.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaoJknUI-IrTD-eFViuOreKoR5npjcaf9inCZCD7LW3mhtrePs1mIN9eSmDjhXjaFMXBsCE63dSdOg2XVHmW2cVl9tx257l44pH8TbUsFP3XrG945noLfAO5D9kOCLAKQAC4fF977c1Hmu/s320/xxx.png)
El 8051 de Intel
Existen otras familias similares de microcontroladores, y entre las más comunes está la 8051 de Intel. El 8051 tiene cuatro puertos de entrada/salida en paralelo: los puertos 0, 1,2 y 3. Los puertos 0,2 y 3 también desempeñan funciones alternas. La versión 8051AH tiene una memoria ROM de 4 K, una memoria RAM de 128 bytes, dos temporizadores y un control de interrupción para cinco fuentes.
1. Puerto O
Este puerto se utiliza tanto como puerto de entrada como de salida. También se puede emplear para acceder a memoria externa.
2. Puerto 1
Este puerto se utiliza tanto como puerto de entrada como de salida.
3. Puerto 2
El puerto 2 se usa tanto como puerto de entrada como de salida. También se puede emplear para accesar a memoria externa.
4. Puerto 3
Se utiliza tanto como puerto de entrada como de salida, o como puerto de entrada/salida para propósitos especiales.
5. ALE
La conexión para la activación de la memoria de bloqueo (ALE por sus siglas en inglés) produce un impulso de salida para capturar el bytc de orden inferior (menos significativo) de la dirección durante el acceso a la memoria externa. Esto permite utilizar direcciones de 16 bits.
6. PSEN
La terminal para la activación del almacenamiento del programa (PSEN por sus siglas en inglés) es la terminal de la señal de lectura de la memoria de programa externa y está activa cuando su valor es bajo. Está conectada con la terminal de activación de salida de una ROM o una EPROM externas.
7. EA
El microprocesador loma el valor bajo de la terminal de acceso externo (EA por sus siglas en inglés) cuando sólo quiere acceder al código de programa externo; cuando toma su valor alto, en forma automática accede al código interno o externo, dependiendo de la dirección.
8. XTAL1.XTAL2
Son las terminales de conexión de un oscilador de cristal o externo.
9. RESET
Cuando en esta conexión hay una señal alta se reinicia el microcontrolador.
Selección de un microprocesador
Al elegir un microcontrolador se deben considerar los siguientes factores:
1. Número de puertos de entrada/salida
¿Cuántos puertos de entrada/salida son necesarios para realizar la tarea respectiva?
2. Interfaces necesarias
¿Qué interfaces se van a necesitar? Por ejemplo, ¿se necesita una modulación por ancho de pulso? Muchos microcontroladores proporcionan salidas PWM, por ejemplo, el PIC 17C42 tiene dos.
3. Necesidades de memoria
¿Qué capacidad de memoria se necesita para llevar a cabo una tarea?
4. Cantidad de interrupciones necesarias
¿Cuántos eventos de interrupción se necesitan?
5. Velocidad de procesamiento requerida
El microprocesador requiere de tiempo para ejecutar una instrucción, tiempo que está definido por el reloj del procesador.
Sistema para medición de temperatura
.El sensor de temperatura produce un voltaje proporcional a la temperatura (por ejemplo, un termotransistor como el LM35. La salida del sensor de temperatura se conecta a la línea de entrada del CAD del microcontrolador.
Éste se programa para convertir la temperatura en una salida DCB con la que se conmutan los elementos de un display de dos dígitos de siete segmentos. Sin embargo, dado que la temperatura puede fluctuar, es necesario utilizar un registro de memoria para guardar los datos el suficiente tiempo para permitir su lectura en el display. El registro de almacenamiento, el 74HCT273, es un flip-flop octal tipo D cuyo reinicio se produce durante el siguiente flanco de elevación positiva de la entrada de reloj del microcontrolador.
Programación
Un método de uso común para diseñar programas es el siguiente:
1. Definir el problema, indicando con toda claridad qué función se espera que ejecute el programa, las entradas y salidas requeridas, cuáles son las restricciones de la velocidad de operación, exactitud, capacidad de memoria, etcétera.
2. Definir el algoritmo que se va a utilizar. Un algoritmo es la secuencia de pasos que definen el método de solución del problema.
3. En sistemas con menos de mil instrucciones, es útil representar el algoritmo mediante un diagrama de flujo.
4. Traducir el diagrama de flujo/algoritmo a instrucciones que el microprocesador sea capaz de ejecutar. Para ello, se escriben las instrucciones en determinado lenguaje, por ejemplo, lenguaje ensamblador o en C, y luego éstas se convierten ya sea en forma manual o mediante un programa ensamblador, en código de máquina.
5. Probar y depurar el programa. A los errores del programa se les conoce como defecto o error de programa, y al proceso de rastreo y eliminación se le denomina depuración.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7vWxEmYGYOCgvJgF2sf5uOzN_kT_oJXCcgpYvdJEwCH_LhP5fPAGwKEMEY7F6t-xA8FqwKjR4GSG-G8wA-4Wz10sJM1FcFip4DRmvLEebLWMnHp9SXeF4Gn9106nk5J6Jpn9sU1shMEtE/s320/dio.png)
Seudocódigo
Consiste en dibujar un diagrama e implica elaborar un programa como una secuencia de funciones u operaciones en las que se recurre al elemento IF-THEN-ELSE (SÍ-ENTONCES-0) y al elemento de repetición WHILE-DO (EN TANTO (QUE)-HACER).