29
Unidad central de procesos (CPU): es el cerebro del PC. Se encarga de procesar las instrucciones y los datos con los que trabaja el computador. El procesador es el dispositivo más importante y el que más influye en su velocidad al analizar información. SUS PRINCIPALES PARTES QUE LA CONFORMAN SON: Memoria RAM o memoria principal Memoria ROM Disco duro: es el dispositivo de almacenamiento secundario que usa varios discos rígidos cubiertos de un material magnéticamente sensible. Está alojado, junto con las cabezas de lectura, en un mecanismo sellado en forma hermética, en el que se guardan los programas y todos los archivos creados por el usuario cuando trabaja con esos programas Caché: es una unidad pequeña de memoria ultrarrápida en la que se almacena información a la que se ha accedido recientemente o a la que se accede con frecuencia, lo que evita que el microprocesador tenga que recuperar esta información de circuitos de memoria más lentos. El caché suele estar ubicado en la tarjeta madre, pero a veces está integrado en el módulo del procesador Tarjeta madre: es la tarjeta de circuitos que contiene el procesador o CPU, la memoria RAM, los chips de apoyo al microprocesador y las ranuras de expansión. Estas son las que permiten insertar, por ejemplo, la tarjeta de sonido (que permite al PC reproducir sonido), el módem interno (que hace posible navegar por Internet) o la tarjeta gráfica o de video (que permite mostrar imágenes en la pantalla). Monitor y teclado Al igual que los demás miembros de su familia, el PIC16F84 se caracteriza por: • Tener una arquitectura Harvard. • Su procesador es segmentado o Pipeline. • Su procesador es tipo RISC. • El formato de las instrucciones es ortogonal. • La arquitectura está basada en banco de registros.

Arquitectura Basica de Un Sistema Minimo de Comutadora

  • Upload
    linchmx

  • View
    508

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Arquitectura Basica de Un Sistema Minimo de Comutadora

Unidad central de procesos (CPU): es el cerebro del PC. Se encarga de procesar las instrucciones y los datos con los que trabaja el computador. El procesador es el dispositivo más importante y el que más influye en su velocidad al analizar información.

SUS PRINCIPALES PARTES QUE LA CONFORMAN SON:

Memoria RAM o memoria principal Memoria ROM Disco duro: es el dispositivo de almacenamiento secundario que usa varios

discos rígidos cubiertos de un material magnéticamente sensible. Está alojado, junto con las cabezas de lectura, en un mecanismo sellado en forma hermética, en el que se guardan los programas y todos los archivos creados por el usuario cuando trabaja con esos programas

Caché: es una unidad pequeña de memoria ultrarrápida en la que se almacena información a la que se ha accedido recientemente o a la que se accede con frecuencia, lo que evita que el microprocesador tenga que recuperar esta información de circuitos de memoria más lentos. El caché suele estar ubicado en la tarjeta madre, pero a veces está integrado en el módulo del procesador

Tarjeta madre: es la tarjeta de circuitos que contiene el procesador o CPU, la memoria RAM, los chips de apoyo al microprocesador y las ranuras de expansión. Estas son las que permiten insertar, por ejemplo, la tarjeta de sonido (que permite al PC reproducir sonido), el módem interno (que hace posible navegar por Internet) o la tarjeta gráfica o de video (que permite mostrar imágenes en la pantalla).

Monitor y teclado

Al igual que los demás miembros de su familia, el PIC16F84 se caracteriza por:• Tener una arquitectura Harvard.• Su procesador es segmentado o Pipeline.• Su procesador es tipo RISC.• El formato de las instrucciones es ortogonal.• La arquitectura está basada en banco de registros.

MICROPROCESADOR Y MICROCONTROLADOR

Las figuras 5-1 y 5-2 demuestran las diferencias entre los sistemas digitales basados en microprocesador respecto de los basados en microcontrolador.Un microprocesador es básicamente un chip que contiene la CPU que se encarga de controlar todo el sistema. Finalmente resulta un sistema implementado por varios circuitos integrados dentro de una misma placa de circuito impreso.

Page 2: Arquitectura Basica de Un Sistema Minimo de Comutadora

Un microcontrolador es un sistema cerrado, lo que quiere decir que en un solo circuito integrado se encierra un sistema digital programable completo (figura 5-2). Este dispositivo se destina a gobernar una sola tarea que no se puede modificar. Los microcontroladores disponen de los bloques esenciales: CPU, memorias de datos y de programa, reloj, periféricos de entradas/salidas, etc.

La diferencia fundamental entre ambos es que un sistema digital basado en un microcontrolador está formado por un solo circuito integrado lo que reduce notablemente el tamaño y el coste. Mientras que un sistema basado en un microprocesador, al estar compuesto por varios circuitos integrados para soportar las memorias y los módulos de entrada/salida, tiene mayor tamaño, más coste y menor Habilidad.

ARQUITECTURA DE VON NEUMANN

La arquitectura tradicional de sistemas digitales programables se basa en el esquema propuesto por John Von Neumann. En este modelo la unidad central de proceso o CPU está conectada a una memoria única que contiene las instrucciones del programa y los datos, tal como describe la figura 5-3.

Page 3: Arquitectura Basica de Un Sistema Minimo de Comutadora

El tamaño de la unidad de datos o instrucciones está fijado por el ancho del bus de datos de la memoria exterior utilizada, que es de 8 bits.

Resumiendo, las dos principales limitaciones de la arquitectura tradicional o de Von Neumann son:

• La longitud de las instrucciones está limitada por la unidad de longitud de los datos, por lo tanto el microprocesador debe hacer varios accesos a memoria para buscar instrucciones complejas.• La velocidad de operación está limitada por el efecto de cuello de botella que significa un único bus para datos e instrucciones, que impide superponer ambos tiempos de acceso.

ARQUITECTURA HARVARD

A esta memoria se accede a través de un sistema de buses único. La única ventaja que posee es que simplifica la lógica del microcontrolador

Los microcontroladores PIC utilizan una arquitectura Harvard que dispone de dos independientes a las que se conecta mediante dos grupos de buses separados

•Memoria de datos.•Memoria de programa.

Ambos buses son totalmente independientes y pueden ser de distintos anchos, esto permite que la CPU pueda acceder de forma independiente y simultánea a la memoria de datos y a la de instrucciones, consiguiendo que las instrucciones se ejecuten en menos ciclos de reloj.

Esta dualidad de la memoria de datos por un lado y por otro la memoria de programa permite la adecuación del tamaño de las palabras y los buses a los requerimientos específicos de las instrucciones y los datos.

Page 4: Arquitectura Basica de Un Sistema Minimo de Comutadora

Se puede concluir que las principales ventajas de la arquitectura Harvard son:

• El tamaño de las instrucciones no está relacionado con el de los datos y, por lo tanto, puede ser optimizado para que cualquier instrucción ocupe una sola posición de memoria de programa. Así se logra una mayor velocidad y una menor longitud de programa,• El tiempo de acceso a las instrucciones puede superponerse con el de los datos, logrando una mayor velocidad de operación.

PROCESADOR SEGMENTADO

Un procesador segmentado o Pipeline realiza simultáneamente la ejecución de una instrucción y la búsqueda de código de la siguiente, de esta manera, se puede ejecutar una instrucción en un ciclo. La tabla 5-1 describe el funcionamiento para un ejemplo concreto, donde cada instrucción se ejecuta en el denominado ciclo máquina que está constituido por cuatro ciclos de reloj.

Este sistema acompañado de una estructura Harvard permite que las instrucciones se ejecuten en un solo ciclo máquina (4 ciclos de reloj), salvo en el caso de saltos de programa. Lo que se hace internamente es que mientras se ejecuta la instrucción actual se carga la siguiente instrucción, alcanzando una alta velocidad de ejecución (figura 5-4).

Page 5: Arquitectura Basica de Un Sistema Minimo de Comutadora

PROCESADOR RISC

Las CPU atendiendo al tipo de instrucciones que utilizan pueden clasificarse fundamentalmente en:

• CISC (Complex Instruction Set Computer). Son procesadores con un juego de instrucciones complejo. Su repertorio de instrucciones es elevado y algunas de ellas son muy sofisticadas y potentes. Su problema es que requieren de muchos ciclos de reloj para ejecutar las instrucciones complejas.

• RISC (Reduced Instruction Set Computer). Son microprocesadores con un repertorio de instrucciones reducido. Las instrucciones son muy simples y suelen ejecutarse en un ciclo máquina. Los procesadores RISC suelen tener una estructura Pipeline y ejecutar casi todas las instrucciones en el mismo tiempo. El PIC16F84 es un microcontrolador RISC con sólo 35 instrucciones.

• SISC (Specific Instruction Set Computer). Estos procesadores poseen un juego de instrucciones específico para cada aplicación. Están destinados a aplicaciones muy concretas.

En los microcontroladores RISC las instrucciones complejas se obtienen ejecutando un conjunto de instrucciones disponibles, en lugar de ser una única instrucción como en los CISC.

ARQUITECTURA ORTOGONAL

En un microprocesador con arquitectura ortogonal una instrucción puede utilizar cualquier elemento de la arquitectura como fuente o destino. Esta es una diferencia muy significativa respecto de otros microcontroladores.La figura 5-5 representa un diagrama simplificado de la arquitectura interna del camino de los datos en la CPU de los microcontroladores PIC frente a los tradicionales.

La principal diferencia entre ambos radica en la ubicación del registro de trabajo, que para los PIC se denomina W (Work Register) y para los tradicionales es el "Acumulador".

Page 6: Arquitectura Basica de Un Sistema Minimo de Comutadora

En los microcontroladores PIC la salida de la ALU va al registro W y también a la memoria de datos, así el resultado puede guardarse en cualquiera de los dos destinos. En las instrucciones de doble operando, uno de los dos datos siempre debe estar en el registro W. La gran ventaja de esta arquitectura es que permite un gran ahorro de instrucciones ya que el resultado de cualquier instrucción que opere con la memoria puede dejarse en la misma posición de memoria o en el registro W.

PUERTOS

El PIC16F84 dispone de dos puertos paralelos A y B. Las líneas de estos puertos se pueden programar individualmente como entradas o como salidas, y se utilizan casi de la misma forma. Debido al escaso encapsulado, con sólo 18 pines, determinadas líneas de estos puertos se comparten con otros recursos internos.

Introducción a la transmisión de datos en serie

La transmisión en serie de información binaria consiste en enviar, uno a uno y de forma sucesiva, los bits de una palabra, a través de los mismos terminales. Así, por ejemplo, la palabra de 8 bits B2h=10110010b puede ser representada y eventualmente transmitida mediante una señal de datos que represente el 0 con un nivel de tensión bajo (V*L) y el 1 con un nivel de tensión alto (VH). Esta señal de datos se genera en sincronismo con una señal de reloj cuyo período determina la duración de un bit de la señal de datos, tal como muestra la figura 8.1.

Page 7: Arquitectura Basica de Un Sistema Minimo de Comutadora

La señal de datos se caracteriza mediante la velocidad de transmisión (vT), que se define como el inverso de la duración de un bit. Si cada bit dura x segundos, la velocidad de transmisión es

El término comunicación sincrónica se usa pues para identificar, indistintamente, una transmisión y/o recepción de datos en serie en la cual se transmite la señal de reloj, y una comunicación en la que no se transmite el reloj y la sincronización se hace por bloques de palabras. En cambio, el término comunicación asincrónica se aplica solamente a la transmisión y/o recepción de datos en serie sin transmisión del reloj y donde la sincronización se realiza palabra a palabra.

La coordinación entre el transmisor y el receptor se realiza siguiendo un determinado protocolo de comunicación, que es un conjunto de reglas acordadas entre transmisor y receptor que aseguran la transferencia ordenada de los datos. Hay dos tipos diferentes de protocolos de comunicación:

• Protocolos orientados a bytes, en los que todas las palabras transmitidas son de 8 bits. Ejemplo: el protocolo BISYNC (IBM Binary Synchronous Communications Protocol).

• Protocolos orientados a bits, en los que los bloques de datos transmitidos no están necesariamente formados por palabras de 8 bits, es decir, los bloques de datos son conjuntos de bits más que conjuntos de bytes. Ejemplos: los protocolos HDLC (High -level Data Link Control Protocol), SDLC (Synchronous Data Link Control Protocol), y CSMA/CD (Carrier Sense, Multiple Access with Collision Detection) muy utilizado en redes locales de ordenadores que sigan la norma IEEE 802.3: Ethernet Network Standard.

Comunicación asincrónica

Page 8: Arquitectura Basica de Un Sistema Minimo de Comutadora

La comunicación asincrónica se caracteriza por introducir un elemento de sincronización en cada dato transmitido, que consiste en un bit con valor 0 para indicar el comienzo de cada palabra y otro bit con valor 1 para indicar el final de las palabras. El 0 inicial se denomina bit o pulso de inicio (start) o espacio; el 1 final se denomina bit o pulso de parada (stop) o marca. Cuando el transmisor hace una pausa porque no tiene palabras para transmitir, mantiene en su terminal de salida una secuencia de bits de parada, es decir, la salida permanece en 1 mientras dura la pausa. El formato de la señal asincrónica se muestra en la figura 8.2, donde puede apreciarse que la sincronización del receptor ocurre en cada dato transmitido.

Comunicación sincrónica

La comunicación sincrónica sin transmisión del reloj se caracteriza por la sincronización de datos por bloques de palabras. A diferencia de la comunicación asincrónica, las palabras no son sincronizadas individualmente, sino que para iniciar la transmisión de un bloque de datos (un conjunto de bytes o de bits), el transmisor introduce un elemento de sincronización, que puede ser una palabra o un patrón único de bits, según el sistema utilizado. Cuando el transmisor termina de enviar un bloque de datos y no hay más datos para enviar, se produce una pausa en la que el transmisor debe mantener la línea en un estado determinado. En general, si hay una pausa entre bloques, se transmite continuamente un bit en 1. Las figura 8.3 ilustra el formato general de la señal en la comunicación sincrónica.

Figura 8.2 Formato de la señal en la transmisión asincrónica. El pulso de inicio siempre tiene la duración de un bit; en cambio el pulso de parada puede tener la duración de 1,1 Vi ó 2 bits.

Figura 8.3 Formato de la señal en la comunicación sincrónica. La sincronización se produce al inicio de cada bloque de datos, mediante una secuencia única de bits (FLAG). Como FLAG se utiliza mucho el valor 7Eh. Cada bloque puede estar formado por una secuencia de palabras (bytes) o simplemente ser un conjunto de bits, necesa-riamente múltiplo de 8.

Descripción general

Page 9: Arquitectura Basica de Un Sistema Minimo de Comutadora

El puerto serie USART utiliza los dos terminales TX/ CK y RX/DT del microcontrolador, que generalmente comparten funciones con dos terminales del puerto paralelo C. En modo asincrónico, TX/ CK es el terminal del transmisor por donde sale la señal de datos y RX/DT es el terminal del receptor por donde entra la señal de datos.En modo sincrónico, TX/ CK es el terminal de salida de reloj si el dispositivo ha sido configurado como servidor, o el terminal de entrada de reloj si el dispositivo ha sido configurado como cliente. El terminal RX/DT es bidireccional y por él entra o sale la señal de datos. La figura 8.12 ilustra el uso de estos terminales en la conexión entre dos microcontroladores PIC.

Figura 8.12 Terminales TX/CK y RX/DT utilizados por el puerto serie USART.

(a) Conexión entre dos PIC en modo asincrónico. TX y RX son los terminales de datos que se transmiten y reciben, respectivamente. No se transmite la señal de reloj, (b) Conexión en modo sincrónico. CK es el terminal de reloj, que es salida en el dispositivo servidor y entrada en el cliente. DT es el terminal de datos, que es salida en el transmisor y entrada en el receptor.

El puerto serie USART utiliza los registros de funciones especiales TXREG y RXREG para almacenar el dato que se va a transmitir o el dato recibido, respectivamente. También utiliza los registros TXSTA y RXSTA para controlar el puerto y el registro SPBRG para establecer la velocidad de transmisión. Además se usan algunos bits de los registros PIE y PIR para controlar y señalar las solicitudes de interrupción que puede generar el puerto.

Funcionamiento en modo asincrónico

El funcionamiento del puerto serie USART en modo asincrónico se caracteriza porque permite la comunicación bidireccional simultánea de datos (full duplex). Esto significa que durante la comunicación entre dos dispositivos USART en modo asincrónico , cada dispositivo puede transmitir y recibir datos a la vez.

El puerto serie tiene registros de funciones especiales para manipular los datos que se va a transmitir o recibir: TXREG y RCREG. TXREG es el registro donde debe colocarse el dato que será transmitido por el terminal TX. RCREG es el registro donde queda depositado el dato recibido por el terminal RX. En estos registros no está incluido el noveno bit.

Page 10: Arquitectura Basica de Un Sistema Minimo de Comutadora

El control de la transmisión y la recepción se establece mediante los registros TXSTA y RCSTA, que se muestran en la figura 8.16. Con el registro TXSTA se puede: seleccionar el modo de transmisión entre sincrónico (bit SYNC = 1) o asincrónico (bit SYNC = 0); habilitar la transmisión (bit TXEN = 1); habilitar la transmisión del noveno bit (bit TX9 = 1) y colocar su valor en el bit TX9D; y seleccionar la velocidad de transmisión en modo asincrónico con el bit BRGH (high baud rate select bit) como alta (BRGH = 1) o baja (BRGH = 0). El estado del registro de desplazamiento TSR del transmisor se puede conocer mediante el bit TRMT (transmit shift register status bit); un 1 en este bit indica que TSR está vacío. El bit CSRC (clock source select bit) se utiliza para programar el puerto serie USART como servidor (CSRC = 1) o cliente (CSRC = 0) en modo sincrónico, pero no tiene ningún significado en el modo asincrónico.

Page 11: Arquitectura Basica de Un Sistema Minimo de Comutadora

TXSTA7 6 5 4 co 2 1 0CSRC TX9 TXEN SYNC - BRGH TRMT TX9D7 6 5 RCSTA

4 32 1 0

SPEN RX9 SREN CREN - FERR OERR RX9DFigura 8.16 Registros TXSTA y RCTA, para controlar la transmisión y recepción de datos

por el puerto serie USART, respectivamente.

Con el registro RCSTA se puede: habilitar el puerto serie con el bit SPEN (serial port enable bit) puesto a 1, lo cual implica que los terminales RX y TX quedan configurados como terminales del puerto serie; habilitar la recepción de datos con el bit CREN (continuous receive enable bit) puesto a 1; y habilitar la recepción del noveno bit con RX9 = 1 y obtener su valor en el bit RX9D. El bit FERR (framing error bit) da cuenta de que se ha recibido un dato no válido (el bit de stop no es 0) si toma el valor 1. El bit OERR (overrun error bit) pasa a 1 si se ha dejado de leer un dato recibido. El bit SREN (single receive enable bit) habilita la recepción de un dato único en modo sincrónico, pero no tiene ningún significado en el modo asincrónico.

Page 12: Arquitectura Basica de Un Sistema Minimo de Comutadora

Funcionamiento en modo sincrónico

El funcionamiento del puerto serie USART en modo sincrónico se caracteriza por: (a) la comunicación bidireccional no simultánea de datos (half duplex); (b) la transmisión (o recepción) simultánea de las señales de datos y de reloj; y (c) la comunicación entre dos dispositivos según un esquema servidor - cliente.En el modo sincrónico, la transmisión de datos es bidireccional pero no simultánea (half duplex). Cada dispositivo puede transmitir y recibir datos, pero las dos operaciones no pueden ser simultáneas: mientras el puerto serie está transmitiendo no puede recibir, y viceversa.

La figura 8.17 muestra las señales típicas de reloj y de datos manejados por el puerto serie USART en la transmisión sincrónica. Puede observarse que en este caso no hay los bits de inicio y parada característicos de la señal de datos en el modo asincrónico.El puerto serie USART en modo sincrónico puede funcionar como servidor o como cliente. El servidor es el dispositivo que genera la señal de reloj tanto si es transmisor como si es receptor.

Velocidad de la comunicación.El reloj que determina la velocidad de transmisión por el puerto serie se deriva del oscilador principal del microcontrolador. Su valor se ajusta mediante el registro SPBRG y el bit BRGH del registro TXSTA. La velocidad de transmisión

en el modo asincrónico es donde vT es la velocidad de transmisión (bit/s), fosc es la frecuencia en hertz del oscilador principal del microcontrolador, BRGH es 0 ó 1 y SPBRG es un número entre 0 y 255. La tabla 8.2 da algunos valores calculados .

Page 13: Arquitectura Basica de Un Sistema Minimo de Comutadora

El error se ha calculado mediante

Si el puerto serie USART ha sido programado en modo sincrónico, la velocidad de transmisión se determina mediante

En este caso no interviene el bit BRGH del registro TXSTA.

Tabla 8.2 Valores que deben colocarse en el bit BRGH y en el registro SPBRG para ob-tener, en el modo asincrónico, las velocidades de comunicación deseadas, según la frecuencia del oscilador principal del microcontrolador, y error cometido en la velocidad en cada caso.

A continuación se muestra el listado de instrucciones de las subrutinas para la operación del puerto serie:INIC_SCI: Rutina de iniciación del puerto serie USART en modo asincrónico, 19200 bit/s, habilitando transmisión y recepción por espera.INIC SCI:

Page 14: Arquitectura Basica de Un Sistema Minimo de Comutadora

Interfaz SPIEl puerto serie SSP (o MSSP) programado como interfaz SPI realiza la transmisión y recepción sincrónica y simultánea de datos de 8 bits. La interfaz SPI puede funcionar como servidor (master) o cliente (slave). El servidor es el dispositivo que genera la señal de reloj, sea transmisor o receptor. Para esta comunicación se utilizan fundamentalmente tres terminales del microcontrolador, que generalmente comparten funciones con terminales del puerto paralelo C. Estos terminales son: SDO y SDI para la salida y entrada de datos respectivamente y SCK para el reloj. El terminal de reloj SCK es salida en el servidor y entrada en el cliente. Un cuarto terminal, denominado SS# (slave select) se puede utilizar opcionalmente para que un dispositivo servidor seleccione uno de varios dispositivos programados como clientes. La figura 8.18 ilustra el uso de estos terminales en la conexión entre dos microcontroladores PIC.

Figura 8.18 Conexión entre dos microcontroladores PIC utilizando la interfaz SPI.

El bit SSPEN (SSP enable bit) asigna los terminales SCK, SDO, SDI y SS# al puerto serie sincrónico, aunque deben ser definidos como entradas o salidas mediante la puesta a 1 ó a 0 de los bits correspondientes del registro

Page 15: Arquitectura Basica de Un Sistema Minimo de Comutadora

Conceptos básicos sobre entradas y salidas digitales

Un periférico es un dispositivo externo conectado al microcontrolador. Algunos posibles periféricos son: los interruptores (switches), diodos emisión de luz (LED: Light Emitting Diodes), relés (relevadores), teclados matriciales {keypad), visualizadores (displays) de 7 segmentos o de cristal líquido, convertidores A/D o D/A, y también una impresora, un motor, etc. Por supuesto, todos estos periféricos incluyen el circuito de interfaz necesario para conectarlos a los puertos del microcontrolador.

Un puerto (port) es un circuito que forma parte del microcontrolador sirve de interfaz con algún dispositivo externo (un periférico). La figura 51 muestra el esquema general de la conexión entre un microcontrolador y un periférico a través de un puerto de E/S. .

El elemento básico en un puerto de E/S es el biestable tipo D latch, capaz de almacenar un bit. En un puerto de 8 bits, hay 8 biestables de este tipo. El biestable dispone de una entrada de datos D, una entrada de control G (Gate) y una salida de datos Q. Mientras la señal de control está en '0' (G = '0'), el biestable está 'bloqueado'; cuando G pasa al estado 'Y, el biestable se vuelve transparente y pone en su salida Q el valor de la entrada de datos D (Q = D); cuando G regresa a 'O', el biestable captura el valor de la entrada D y lo mantiene en su salida Q.

En un puerto de entrada, las entradas D vienen del periférico y las salidas triestado o van a las líneas del bus de datos interno del microcontrolador. En un puerto de salida, la conexión es la contraria.

Métodos de transferencia de datos

La transferencia de datos entre un periférico y un puerto se realiza básicamente mediante uno de los dos métodos siguientes:

El elemento básico constitutivo de un puerto de E/S es el biestable tipo D latch, con el cual se puede almacenar un bit. L

DI es la entrada de datos; con la señal STB, el latch captura el dato en DI y la señal OE# habilita la salida tri-estado DO.

• E/S simple.

• E/S controlada.

Page 16: Arquitectura Basica de Un Sistema Minimo de Comutadora

La E/S simple se caracteriza porque entre el puerto y el periférico solamente se transfieren los bits del dato, sin señales de control (figura 5.3A). Por ejemplo, la conexión de interruptores a las líneas de entrada o diodos LED a las líneas de salida de un puerto paralelo, son dos casos típicos de E/S simple.

En la E/S controlada se establece una "conversación" (handshake) entre el puerto y el periférico. Para realizar la E/S controlada se requieren algunas señales de control (al menos dos señales) y algún protocolo o reglas de entendimiento entre uno y otro dispositivo.

La segunda variante de E/S controlada mediante dos señales de control, es la denominada E/S controlada doblemente, e implica un protocolo algo más complejo entre el emisor y el receptor de los datos .En primer lugar, el emisor "avisa" al receptor de que va a enviarle un dato, activando la señal STB (el emisor pregunta: "te voy a enviar un dato, ¿puedo hacerlo?"). Una vez que el receptor detecta esta situación y se halla en condiciones de aceptar el dato, informa de ello al emisor activando la señal ACK (el receptor responde: "envíalo"). El emisor detecta que ACK está activa, lo cual es una indicación de que puede enviar el dato al receptor. Una vez que el emisor pone el dato en los terminales de datos, se lo indica al receptor con el flanco de bajada de la señal STB (el emisor dice: "aquí va el dato"). Entonces el receptor captura el dato y cuando está listo para recibir otro dato, desactiva la señal ACK (el receptor dice: ya recibí el dato, puedes enviar un nuevo dato).

Las señales de control y la lógica de la conversación entre puerto y periférico se pueden manipular por hardware o por software.

Los microcontroladores PIC disponen de puertos paralelos de hasta 8 bits, independientes entre sí. No disponen de puertos especializados para implementar la E/S controlada por hardware; por tanto, la E/S controlada debe implementarse por software.

Técnicas de entrada y salida

Para atender a un periférico conectado a un microcontrolador, se emplea normalmente una de las dos técnicas siguientes:

• E/S programada.

• E/S por interrupción.

La E/S programada es una técnica básicamente de software. Supone la existencia de algún indicador del estado (listo o no listo) del periférico; este indicador no es más que un bit cuyo valor se puede averiguar desde el programa que atiende al periférico.

Page 17: Arquitectura Basica de Un Sistema Minimo de Comutadora

El programa pregunta si el periférico requiere atención; si la respuesta es afirmativa, se hace la acción que corresponda, que en general consiste en la lectura o escritura del dato en el puerto conectado al periférico; si la respuesta es negativa, el programa pasa a otra tarea o simplemente espera a que el periférico esté listo para ser atendido.

La técnica de E/S por interrupción se caracteriza porque el periférico "avisa" cuando necesita atención. Ese aviso se realiza mediante una solicitud de interrupción al microcontrolador. Al recibir una solicitud de interrupción generada por algún periférico, el microcontrolador interrumpe transitoriamente la ejecución del programa en curso y pasa a ejecutar el programa o más bien la subrutina de atención al periférico. Terminada la atención al periférico, se continúa con el programa que había sido interrumpido.

La E/S por interrupción se implementa mediante una combinación de software y hardware. La parte de hardware de esta técnica la constituyen los circuitos necesarios para solicitar y tratar la interrupción. La E/S por interrup¬ción se estudiará con detalle en el capítulo 7.

La memoria en los microcontroladores

Conceptos básicos

La memoria de un microcontrolador es el lugar donde están almacenados el programa que se ejecuta y los datos o variables utilizados por el programa. La memoria es un conjunto de celdas o localizaciones que se identifican por su dirección. En cada celda se almacena una palabra.Una palabra es la unidad lógica de información almacenada en una celda de la memoria. Se utilizan palabras de 1, 8, 12,14 ó 16 bits de longitud. Una palabra de 8 bits es un octeto o byte (B) (figura 3.1).

Page 18: Arquitectura Basica de Un Sistema Minimo de Comutadora

Figura 3.1 Una palabra de 8 bits u octeto o byte. Se indican las posiciones de los bits más significativo (MS) y menos significativo (ms) (o LS, least significant) en la palabra.

La cantidad de celdas de la memoria define su capacidad. La capacidad o tamaño de la memoria se mide en palabras, ya sean bits, bytes o palabras de 12,14 ó más bits. El Sistema Internacional (SI) de unidades establece prefijos para indicar factores de multiplicación que son potencias de 10, como, por ejemplo, kilo, mega, giga y tera. Sin embargo, en computación y electrónica es común usar estos mismos prefijos para indicar factores de multiplicación que son potencias de 2. Para evitar confusiones, la Comisión Electrotécnica Internacional (CEI) introdujo en 1998 otros prefijos para indicar factores de multiplicación que son potencias de 2. En la tabla 3.1 se dan algunos de los prefijos indicadores de potencias de 10 y de 2. Sin embargo, dado que es una costumbre muy extendida utilizar los prefijos que indican potencias de 10 con el significado de ser potencias de 2, en este libro se sigue esa costumbre. Es decir, utilizaremos por ejemplo 1 kB para indicar una capacidad de memoria de 1024 bytes, en lugar de escribir 1 KiB, que sería lo correcto según la CEI. La diferencia es importante sólo cuando se trata de grandes cantidades de memoria.

Tabla 3.1 Algunos de los prefijos, símbolos y factores de multiplicación definidos en el Sistema Internacional de Unidades y por la Comisión Electrotécnica Internacional.

La dirección de una celda es el ente que identifica la celda en la memoria. La forma más simple de identificar las celdas es asignar a cada una un número entero consecutivo. Entonces, la dirección es el número binario que denota la posición de la celda en la memoria (figura 3.2). Si D es la dirección de una celda cualquiera, los valores de las direcciones en una memoria de N celdas son:D = 0, 1,2, (N - 1) (3.1)Lógicamente, la cantidad n de bits necesarios para formar la dirección de una celda es función directa de la capacidad de la memoria y está dada porN = 2n (3.2)Por ejemplo, en una memoria de N = 1 kB se necesitan n = 10 bits para formar la dirección de una celda cualquiera, pues 210 = 1024, que es la cantidad de celdas que componen la memoria. Las direcciones posibles son D = 0, 1, 2,..., 1023. Expresando estos números en el sistema de numeración hexadecimal, tal como es costumbre, se tiene D = 0, 1,2,..., 3FFh.

Page 19: Arquitectura Basica de Un Sistema Minimo de Comutadora

Organización lógica de la memoria

La memoria de los microcontroladores se organiza normalmente como un todo único (organización lineal) o por bloques llamados páginas. En la organización lineal, las direcciones de las celdas son números binarios consecutivos. En este caso, cada celda se identifica por su dirección lineal (D), formada por un número binario único. Las direcciones lineales tienen la forma dada por la expresión (3.1).

Figura 3.2 Direcciones en una memoria de N celdas de 8 bits cada una.Una página es una porción de memoria de tamaño fijo. Las páginas están una a continuación de la otra sin solaparse. Cada página se puede identificar por un número consecutivo denominado número de página. Dentro de una página cualquiera, las celdas se identifican por su posición respecto al comienzo de la página, llamada desplazamiento.

Tipos de memorias

La memoria de programa de los microcontroladores es no volátil y básicamente de sólo lectura. En su fabricación se utilizan varias tecnologías: ROM (Read-Only Memory), EPROM (Erasable Programmable ROM), OTP (One Time Programmable) y FLASH.

Page 20: Arquitectura Basica de Un Sistema Minimo de Comutadora

Figura 3.5 Formación de la dirección lineal a partir de los componentes de la dirección lógica en un sistema paginado, si el tamaño de las páginas es potencia de 2. El desplazamiento (desp) ocupa los k bits menos significativos y el número de la página (npag) ocupa los n-k bits más significativos de la dirección lineal de n bits.La memoria de datos, en cambio, es fundamentalmente de lectura y escritura, y no hace falta que la información permanezca en ella al interrumpir el suministro de energía al microcontrolador; es decir, la memoria es volátil. Se utilizan memorias RAM (Random Access Memory) estáticas. Muchos microcontroladores utilizan cierta cantidad adicional de memoria (externa) de lectura y escritura, no volátil, como parte de la memoria de datos. Se trata de memoria EEPROM {Electrically Erasable Programmable Read-Only Memory), cuyo objetivo es permitir el almacenamiento de datos fijos o poco variables.RAMLa memoria RAM es una memoria de lectura y escritura. Hay dos variantes: la estática y la dinámica. En la memoria RAM estática la información almacenada permanece estable indefinidamente mientras no se suprima la tensión de alimentación. Eso las diferencia de las memorias RAM dinámicas, que requieren un refrescamiento periódico de la información almacenada. Las RAM dinámicas se usan profusamente en los ordenadores personales, pero no en los microcontroladores.ROMEn los microcontroladores que utilizan memoria ROM, la información se graba durante el proceso de fabricación del dispositivo y no puede ser alterada ulteriormente. Por ello, la información que se desea grabar en la memoria, que puede ser el programa y algunos datos, debe haber sido comprobada y depurada minuciosamente antes de encargar la fabricación del microcontrolador. La memoria ROM es la más barata de todas las opciones, siempre que el volumen de dispositivos fabricados sea suficientemente alto como para hacer el proceso rentable.En los microcontroladores PIC, las letras 'CR' en el nombre del dispositivo indican que la memoria de programa es ROM. Ejemplos: PIC16CR65, PIC16CR72.

EPROM y OTPEstas memorias son muy similares pero se diferencian en su encapsulado. Los dispositivos con memoria EPROM tienen una ventana de cristal de cuarzo para poderlos borrar masivamente con luz ultravioleta. Los dispositivos OTP usan la misma memoria interna que las EPROM, pero sin la ventana de cristal, por lo que una vez programados no se puede borrar ni alterar su información.

Page 21: Arquitectura Basica de Un Sistema Minimo de Comutadora

En los microcontroladores PIC, la letra 'C en el nombre del dispositivo indica que la memoria es OTP o EPROM. El PIC16C74B/JW es un dispositivo con memoria EPROM, porque el sufijo JW indica que el encapsulado dispone de una ventana de cuarzo para el borrado. Los dispositivos PIC16C72A/P y PIC16C74B/SO son OTP con encapsulado plástico DIP y SOIC para montaje en superficie, respectivamente.EEPROMLa memoria EEPROM es una memoria no volátil de lectura y escritura. La escritura de la memoria se realiza por medios eléctricos. Las celdas pueden ser escritas individualmente sin una operación previa de borrado. La memoria se puede reprogramar un número finito, aunque muy grande, de veces (del orden de 106).FLASHEn las memorias FLASH se pueden leer y escribir celdas individualmente, aunque, en general, para escribir en una celda hay que borrar primero su información. El borrado de estas memorias se realiza por bloques de celdas de memoria, no celda a celda. Esto las diferencia de las memorias EEPROM. Borrar es poner todos los bits del bloque de celdas en 0. La operación de escritura consiste en poner selectivamente a 1 los bits deseados. Con una operación de escritura se puede poner a 1 un bit que está en 0, pero para poner en 0 un bit que está en 1 hay que borrar el bloque de celdas correspondiente. Entonces, a menudo, una operación de escritura de información en una celda de memoria flash se convierte en una operación de lectura - borrado - escritura del bloque de celdas donde se desea escribir la información. Todas las operaciones de borrado, lectura y escritura se realizan con la tensión de fun-cionamiento normal del dispositivo, sin necesidad de una tensión mayor. La memoria se puede borrar o escribir un número finito, aunque muy grande, de veces (del orden de 105). Por ejemplo, en un PIC16F873A, la memoria flash de programa se puede escribir unas 100 000 veces.El uso de memoria FLASH en los microcontroladores PIC se indica con la letra 'F en el nombre del dispositivo. Ejemplo: PIC16F873.

COMO DIFERENCIAS: La Memoria RAM puede leer/escribir sobre sí misma por lo que, es la

memoria que utilizamos para los programas y aplicaciones que utilizamos día a día

La Memoria ROM como caso contrario, sólo puede leer y es la memoria que se usa para el Bios del Sistema.

En computación, la unidad aritmético lógica, también conocida como ALU (siglas en inglés de arithmetic logic unit), es uncircuito digital que calcula operaciones aritméticas (como suma, resta, multiplicación, etc.) y operaciones lógicas (si, y, o, no), entre dos números.

Page 22: Arquitectura Basica de Un Sistema Minimo de Comutadora

En arquitectura de computadores, el bus es un sistema digital que transfiere datos entre los

componentes de una computadora o entre computadoras. Está formado por cables o pistas en

un circuito impreso, dispositivos como resistencias y condensadores además de circuitos

integrados.

En los primeros computadores electrónicos, todos los buses eran de tipo paralelo, de manera

que la comunicación entre las partes del computador se hacía por medio de cintas o muchas

pistas en el circuito impreso, en los cuales cada conductor tiene una función fija y la conexión

es sencilla requiriendo únicamente puertos de entrada y de salida para cada dispositivo.

Bus en Paralelo:

Es un bus en el cual los datos son enviados por bytes al mismo tiempo, con la ayuda de varias

líneas que tienen funciones fijas. La cantidad de datos enviada es bastante grande con una

frecuencia moderada y es igual al ancho de los datos por la frecuencia de funcionamiento. En

los computadores ha sido usado de manera intensiva, desde el bus del procesador, los buses

de discos duros, tarjetas de expansión y de vídeo, hasta las impresoras.

Un bus paralelo tiene conexiones físicas complejas, pero la lógica es sencilla, que lo hace útil

en sistemas con poco poder de cómputo. En los primeros microcomputadores, el bus era

simplemente la extensión del bus del procesador y los demás integrados "escuchan" las línea

de direcciones, en espera de recibir instrucciones. En el PC IBM original, el diseño del bus fue

determinante a la hora de elegir un procesador con I/O de 8 bits (Intel 8088), sobre uno de 16

(el 8086), porque era posible usar hardware diseñado para otros procesadores, abaratando el

producto.

Bus en Serie:

En este los datos son enviados, bit a bit y se reconstruyen por medio de registros o rutinas

de software. Está formado por pocos conductores y su ancho de banda depende de la

frecuencia. Es usado desde hace menos de 10 años en buses para discos duros, unidades de

estado sólido, tarjetas de expansión y para el bus del procesador.

BIBLIOGRAFIAS:

Page 23: Arquitectura Basica de Un Sistema Minimo de Comutadora

MICRONCONTROLADOR PIC16F84 /Desarrollo de proyectos 3 EDICION/Enrique Palacios Fernando Remiro Lucas J. López/EDITORIAL ALFAOMEGA

MICROCONTROLADORES/ FUNDAMENTOS Y APLICACIONES CON PIC/ Fernando E. Valdés Pérez Ramón Pallás Areny/ EDITORIAL ALFAOMEGA

Para la información de alu y bus utilice las siguientes páginas:

http://www.mathworks.com

http://www.dte.us.es