Академический Документы
Профессиональный Документы
Культура Документы
Arquitectura de microcontroladores.
Arquitectura Von Neumann La arquitectura tradicional:
MICROCONTROLADOR PIC16F84
Un microcontrolador es un circuito integrado programable que contiene todos
los componentes necesarios para controlar el funcionamiento de una tarea
determinada, como el control de una lavadora, un teclado de ordenador, una
impresora, un sistema de alarma, etc. Para esto, el rnicrocontrolador utiliza muy
pocos componentes asociados. Un sistema con rnicrocontrolador debe
disponer de una memoria donde se almacena el programa que gobierna el
funcionamiento del mismo que una vez programado y configurado, solo sirve
para realizar la tarea asignada. La utilización de un microcontrolador en un
circuito reduce notablemente el tamaño y número de componentes y, en
consecuencia, disminuye el número de averías y el volumen y el peso de los
equipos, entre otras ventajas.
El microcontrolador PIC16F84. Esta encapsulado en un económico DIL de 18
pines (figura siguiente). Debido a sus múltiples aplicaciones y facilidad de uso
es uno de los microcontroladores más utilizados en la actualidad para la
realización de proyectos sencillos.
Microcontrolador PIC16F84A.
El microcontrolador PIC16F84 puede trabajar con una frecuencia máxima de 10
MHz. La versión avanzada PIC16F84A-20 puede llegar hasta los 20 MHz.
Alimentación de un PIC16F84
Normalmente el microcontrolador PIC16F84 se alimenta con 5 voltios aplicados
entre los pines VDD y VSS que son, respectivamente, la alimentación y la
masa del chip.
En la figura siguiente describe un circuito de alimentación que obtiene los 5
voltios a partir de una tensión continua de 12 voltios y de al menos 1 amperio.
Este circuito se basa en el popular regulador de tensión 7805. Dispone de un
diodo en la entrada para proteger en el caso que se aplicaran tensiones con la
polaridad invertida.
El condensador C4 reduce considerablemente el rizado de la tensión de
entrada que finalmente el regulador 7805 se encarga de estabilizar a los 5
voltios de alimentación de todo el entrenador. Por ultimo dispone de un diodo
LED indicador de encendido.
El consumo de corriente para el funcionamiento del microcontrolador depende
de la tensión de alimentación, de la frecuencia de trabajo y de las cargas que
soporten sus salidas, siendo del orden de unos pocos miliamperios.
El circuito de alimentación del microcontrolador debe tratarse como el de
cualquier otro dispositivo digital, debiendo conectarse un condensador de
desacoplo de unos 100 nf lo más cerca posible de los pines de alimentación.
Entrenador para aprendizaje del microcontrolador PIC16F84.
Puertos de entrada/salida.
El microcontrolador se comunica con el mundo exterior a través de los puertos.
Estos están constituidos por líneas digitales de entrada/salida que trabajan
entre 0 y 5 V. los puertos se pueden configurar como entradas para recibir
datos o como salidas para gobernar dispositivos externos.
El PIC16F84 tiene dos puertos.
Puerto A con 5 líneas, pines RA0 a RA4.
Puerto B con 8 líneas, pines RB0 a RB7.
Cada línea puede ser configurada como entrada o como salida,
independientemente unas de otras, según se programe. Así, por ejemplo, en el
circuito de la figura anterior el puerto A es configurado como entrada para leer
los interruptores y el puerto B es configurado como salida para activar la barra
de diodos LEDs y el display de siete segmentos.
Las líneas son capaces de entregar niveles TTL cuando la tensión de
alimentación aplicada en VDD es de 5V. La máxima capacidad de corriente de
cada una de ellas es:
25 ma, cuando el pin está a nivel bajo, es decir, cuando consume
corriente. Sin embargo la suma de las intensidades por las 5 líneas del
puerto A no puede exceder de 80 ma, ni la suma de las 8 líneas del
puerto B puede exceder de 150 ma.
20 ma, cuando el pin está en nivel alto, es decir, cuando proporciona
corriente. Sin embargo la suma de las intensidades por las 5 líneas del
puerto A no puede exceder a 50ma, ni la suma de las 8 líneas del puerto
B puede exceder de 100 ma.
Oscilador
Todo microcontrolador requiere de un circuito que le indique la velocidad de
trabajo, es el llamado oscilador o reloj. Este genera una onda cuadrada de alta
frecuencia que se utiliza como señal para sincronizar todas las operaciones del
sistema. Este circuito es muy simple pero de vital importancia para el buen
funcionamiento del sistema. Generalmente todos los componentes del reloj se
encuentran integrados en el propio microcontrolador y tan solo se requieren
unos pocos componentes externos como un cristal de cuarzo o una red RC,
para definir la frecuencia de trabajo.
En el PIC16F84 los pines OSC1/CLKIN y OSC2/CLKOUT son las líneas
utilizadas para este fin. Permite 5 tipos de osciladores para definir la frecuencia
de funcionamiento.
XT. Cristal de cuarzo.
RC. Oscilador con resistencia y condensador.
HS. Cristal de alta velocidad.
LP. Cristal de baja frecuencia y bajo consumo de potencia.
Externa. Cuando se aplica una señal de reloj externa.
Oscilador XT
Es el más utilizado y está basado en el oscilador a cristal de cuarzo o en un
resonador cerámico. Es un oscilador estándar que permite una frecuencia de
reloj muy estable comprendida entre 100 kHz y 4 MHz.
Oscilador RC
Es un oscilador de bajo coste formado por una red RC. Su principal
inconveniente es la baja precisión, pero como contrapartida esta su bajo precio
lo que hace interesante para muchas aplicaciones en las que no importa la
exactitud del tiempo.
Osciladores HS y LP
El oscilador de cristal o resonador de alta velocidad HS trabaja a una
frecuencia comprendida entre 4 MHz y 20 MHz para el PIC16H84A.
Reset
El llamado reset en un microcontrolador provoca la reinicializacion de su
funcionamiento, un “comienzo a funcionar desde cero”. En este estado, la
mayoría de los dispositivos internos del microcontrolador toman un estado
conocido.
En los microcontroladores se requiere un pin de reset para reiniciar el
funcionamiento del sistema cuando sea necesario. El pin de reset en los PIC se
denomina MCLR (Master Clear) y produce un reset cuando se le aplica un nivel
lógico bajo.
Algunas conexiones para el pin MCLR.
Para tener un control sobre el reset del sistema, se puede conectar un pulsador
y conseguir un reset manual llevando momentáneamente el pin MCLR a masa
cada vez que se presiona el pulsador. El reset permanecerá mientras tengamos
el pulsador presionado y no comenzara la secuencia de arranque hasta que no
lo liberemos, suministrando así un nivel lógico “1” al pin MCLR.
El PIC16F84 también permite el llamado power-on reset (POR) que
proporciona un reset al microcontrolador en el momento de conectar la fuente
de alimentación. El PIC dispone de un temporizador denominado reset PWRT
(power-up timer), que proporciona un retardo de 72 ms desde el momento de la
conexión a la alimentación; un reset se mantiene durante este tiempo,
garantizado que VCC alcance un nivel aceptable de tensión para un arranque
correcto del sistema.
También hay que hacer mención a que el Pin número 3 perteneciente al puerto
“A” (RA4) también tiene otra nomenclatura denominada “TOCKI”, lo cual quiere
decir que esta línea se puede programar como entrada, salida y
temporizador/contador.
CONFIGURACIÓN DE LOS PUERTOS DE ENTRADA/SALIDA
Los bits de cada puerto se configuran mediante los bits correspondientes de un
registro de control asociado que recibe el nombre de TRIS. En realidad cada
puerto soporta dos registros:
1. El registro de datos, al que se denomina Puerto A o B (PortA o PortB).
2º El registro de control TRISA o TRISB, con el que se programa el sentido
(Entrada o Salida) de las líneas de cada puerto.
Los Puertos A y B se corresponden con las posiciones 5 y 6 del área de datos.
Cada uno de sus bits puede programarse como una línea de Entrada o de
Salida, según se ponga un 1 ó un 0 en el bit del registro de control TRIS
correspondiente.
Un 1 en el bit “x” del registro TRISA pone en alta impedancia (Entrada) la línea
asociada “x” del Puerto A. Si en el bit “x” de TRISA hubiese un 0, el contenido
del biestable de datos correspondiente del Puerto A pasaría a la patita de E/S
externa.
Cualquier línea puede funcionar como Entrada o como Salida. Sin embargo, si
actúa como Entrada, la información que se introduce desde el exterior no se
memoriza o graba, pasa simplemente por un dispositivo triestado por lo cual el
valor de dicha información debe mantenerse hasta que sea leída. La lectura se
realiza en “tiempo real”.
Cuando una patita de E/S funciona como salida, el bit que proviene del bus de
datos se guarda en el biestable del dato con lo cual la información que ofrece
esta patita permanece invariable hasta que se reescriba otro bit.
Para configurar la patita como Entrada, hay que cargar un 1 en el biestable de
control de E/S mientras que hay que cargar un 0 si se desea que sea Salida.
Cada línea de E/S de los puertos se programa de forma independiente y puede
ser Entrada o Salida. Cuando se produce un reset, todos los bits de los
registros TRIS pasan a tener el valor 1 y todas las líneas de E/S actúan como
Entrada por evidentes motivos de seguridad para evitar daños irreparables.
Los puertos que contienen entradas y salidas necesitan una atención especial
al escribir el programa. Instrucciones como bsf y bcf comienzan leyendo el
valor del puerto y cargándolo en el registro W; allí ejecutan la puesta a 1 ó a 0
del bit seleccionado y, luego, depositan el registro W en el puerto. También hay
que tener en cuenta las modificaciones que se produzcan en las patitas que
son entrada y pasan a salida, pues pueden estar presentes datos antiguos en
el registro de salida del puerto al ser memorizados.
Hay que prestar mucha atención a las operaciones que, tras una lectura de un
puerto. Sigue una escritura de la misma. Se debe dejar pasar un tiempo
determinado para que se estabilice el voltaje de las patitas. Insertando entre la
lectura y la escritura una instrucción NOP o cualquier otra que no implique a los
puertos, se eliminan estos errores potenciales.
Autor: Mendado Pérez Enrique.
PIC 16F877A
Características:
Este microcontrolador es fabricado por Microchip familia a la cual se le
denomina PIC. El modelo 16F877 posee varias características que hacen a
este microcontrolador un dispositivo muy versátil, eficiente y práctico para ser
empleado en la aplicación que posteriormente será detallada.
Algunas de estas características se muestran a continuación:
Soporta modo de comunicación serial, posee dos pines para ello.
Amplia memoria para datos y programa.
Memoria reprogramable: La memoria en este PIC es la que se denomina
FLASH; este tipo de memoria se puede borrar electrónicamente (esto
corresponde a la "F" en el modelo).
Set de instrucciones reducidas (tipo RISC), pero con las instrucciones
necesarias para facilitar su manejo.
Especificaciones:
Nombre del parámetro Valor
Programa Tipo de memoria flash
Memoria de programa (KB) 14
CPU Speed (MIPS) 5
RAM 368 Bytes
EEPROM de datos (bytes) 256
Digital Periféricos de comunicación 1-UART, 1-A / E / USART, 1-SPI, 1-
I2C1-MSSP (SPI / I2C)
Capture / Compare / PWM Periféricos 2 CCP
Temporizadores 2 x 8 bits, 1 x 16-bit
ADC 8 ch, de 10 bits
Comparadores 2
Rango de temperatura (C) -40 a 125
Rango de Voltaje (V) 2-5,5
Número de pines 40
2.1 ARQUITECTURA DE LOS PUERTOS DE E/S
Lectura de e/s y escritura de e/s son dos líneas de control que especifican una
entrada o salida, respectivamente. Los cuatro registros comunican en forma
directa con un dispositivo de e/s conectado a la interface. Los datos de e/s
hacia y desde el dispositivo pueden transferirse al puerto A o al puerto B. la
interface puede operar con un dispositivo de salida, con un dispositivo de
entrada o con un dispositivo que requiere tanto entradas como salidas.
Arquitectura básica de un computador
Un computador es una máquina que:
acepta información de entrada
La procesa ejecutando paso a paso una secuencia de instrucciones o
programa
Y produce una información de salida.
El computador está por tanto compuesto por un equipo electrónico (hardware) y
un conjunto de programas (software).
El computador puede realizar dos tipos de instrucciones:
Acciones
Decisiones
Estructura de un Computador
Periférico:
Dispositivo que permite al microprocesador su interacción con el
entorno.
Interfaz:
Conjunto de módulos electrónicos que permiten el control de un
periférico adaptando las diferentes velocidades y modos de
funcionamiento del microprocesador y los periféricos.
Bus:
Normalmente se refiere al conjunto de señales con las que se comunica
el microprocesador con el entorno: memoria o periféricos (a través de las
interfaces).
Las principales razones de uso de una interfaz son:
Existen una gran variedad de periféricos con normas de funcionamiento
diferentes y resultaría imposible implementar en el procesador tal
diversidad de controladores
Las diferencias de velocidad de los dispositivos hace que no sea
práctico comunicarse con ellos directamente a través del bus del sistema
En algunos casos incluso la velocidad del dispositivo es mayor que la de
la memoria o el procesador
Los periféricos utilizan datos con formatos y tamaños de palabra
diferentes de los del microprocesador al que se conectan.
Funciones de la interfaz de E/S
Control y temporización
De la transferencia de datos entre el dispositivo y el procesador
Si el sistema utiliza un bus cada interacción de la interfaz de E/S con el
procesador puede requerir uno o más arbitrajes del bus
Comunicación con el procesador
Decodificación de órdenes: la interfaz acepta órdenes del procesador
Datos: intercambio de datos a través del bus
Información de estado: saber si el dispositivo está preparado para
transferir datos o no
Comunicación con los dispositivos
Intercambio de órdenes, información de estado y datos almacenamiento
temporal de datos
Fundamental para equilibrar las diferencias de velocidad del procesador
y de los periféricos
Detección de errores
Defectos mecánicos o eléctricos en el funcionamiento del dispositivo
(atasco de papel, cambio de un bit, etc.).
Conexión de las interfaces de E/S
Conexión mapeada en memoria
El circuito de interfaz se conecta como si fuera memoria
Se accede a los registros leyendo o escribiendo una variable en una
posición de memoria concreta
Conexión mediante puertos de entrada/salida
El circuito de interfaz se conecta mediante líneas especiales
Se accede a los registros mediante instrucciones especiales (in, out),
especificando un número de puerto.
Tipos de E/S
Entrada/salida por consulta o programada
La CPU accede a los registros desde programa
Para saber si el dispositivo está listo, se hace una consulta periódica
Entrada/salida por interrupciones
El dispositivo avisa a la CPU cuando está listo
La entrada/salida se hace mediante una rutina de servicio de
interrupción entrada/salida por acceso directo a memoria
El dispositivo accede directamente a la memoria
avisa a la CPU del inicio o final de la operación