5.1
Tipos de puertos
PUERTOS
DE ENTRADA / SALIDA EN UN MICROCONTROLADOR Cualquier aplicación de un sistema
digital basado en un microprocesador o microcontrolador requiere la
transferencia de datos entre circuitos externos al microprocesador y él mismo.
Estas transferencias constituyen las operaciones llamadas
ENTRADA
y SALIDA, (input /output ) o ES ( I/O). Los puertos de entrada/salida son
básicamente registros externos o internos. Algunos microprocesadores
proporcionan señales de control que permiten que los registros externos que
forman los puertos de E/S ocupen un espacio de direcciones separada, es decir,
distinto del espacio de direcciones de los registros externos que componen la
memoria. Cuando los puertos tienen asignado un espacio de direcciones separado,
se dice que están en modo de
ENTRADA/SALIDA
AISLADA o E/S ESTÁNDAR. Por el contrario, cuando se ubican dentro del mismo
espacio que la memoria, se dice que están en modo de ENTRADA/SALIDA MAPEADA A
MEMORIA o
PROYECTADA
EN MEMORIA. ENTRADA/SALIDA AISLADA.- Para que un microprocesador pueda
implementar el modo E/S aislada (isolated I/O) son indispensables las
siguientes condiciones:
1.- El microprocesador debe proporcionar
señales de control que permitan distinguir entre una operación con un puerto y
una referencia a memoria.
2.- El código de instrucciones debe tener
instrucciones especiales con las que se pueda leer (entrada) o escribir
(salida) en los puertos.
ENTRADA/SALIDA
MAPEADA.- El modo de E/S mapeada a memoria (Memory mapped I/O) se basa en que
tanto las localidades de memoria como los puertos de E/S se consideran como
registros externos desde el punto de vista del microprocesador. Entonces, las
instrucciones que hacen referencia a la memoria también pueden transferir datos
entre un dispositivo periférico y el microprocesador, siempre y cuando el
puerto de E/S que los interconecta se encuentre dentro del espacio de
direccionamiento de memoria, es decir, controlado por las señales de control
para memoria. De esta forma, el registro asociado con el puerto de E/S es
tratado simplemente como una localidad de memoria más.
PUERTOS
DEL MICROCONTROLADOR 8051 La operación de escritura, utilizando los puertos
puede ser realizada por cualquiera de ellos, no obstante, el puerto PO es el
que presenta una mayor cargabilidad, permitiendo comandar ocho cargas TTL - LS,
mientras que los otros tres permiten cuatro cargas TTL – LS. Para comandar
cargas de mayor consumo energético, como relés, se recomienda utilizar, entre
el puerto y la carga drivers no inversores. Para la operación de ESCRITURA en
el puerto, la instrucción más habitual es la siguiente: MOV PX , ; PX<- dato.
Puertos de comunicación
Con objeto de dotar al
microcontrolador de la posibilidad de comunicarse con otros dispositivos
externos, otros buses de microprocesadores, buses de sistemas, buses de redes y poder adaptarlos con otros elementos bajo
otras normas y protocolos.
Algunos modelos disponen de recursos que permiten directamente esta tarea,
entre los que destacan:
UART, adaptador de
comunicación serie asíncrona.
USART, adaptador de
comunicación serie síncrona y asíncrona
Puerta paralela esclava para
poder conectarse con los buses de otros microprocesadores.
USB (Universal Serial Bus), que es un moderno bus serie para
los PC.
Bus I2C, que es un interfaz
serie de dos hilos desarrollado por Philips.
CAN (Controller Area
Network), para permitir la adaptación con redes de conexionado multiplexado
desarrollado conjuntamente por Bosch e Intel para el cableado de dispositivos
en automóviles. En EE.UU. se usa el J185O.
Uno de los factores que más
importancia tiene a la hora de seleccionar un microcontrolador entre todos los
demás es el soporte tanto software como hardware de que dispone. Un buen
conjunto de herramientas de desarrollo puede ser decisivo en la elección, ya
que pueden suponer una ayuda inestimable en el desarrollo del proyecto.
5.2
Programación de puertos.
u Programación
por puerto serial
u Programación
por puerto paralelo
Las
principales herramientas de ayuda al desarrollo de sistemas basados en
microcontroladores son:
u Ensamblador.
Los fabricantes suelen proporcionar el programa ensamblador de forma gratuita y
en cualquier caso siempre se puede encontrar una versión gratuita para los
microcontroladores más populares.
u Compilador.
Las versiones más potentes suelen ser muy caras, aunque para los microcontroladores
más populares pueden encontrarse versiones demo limitadas e incluso compiladores
gratuitos.
u Depuración:
Debido a que los microcontroladores van a controlar dispositivos físicos, los desarrolladores
necesitan herramientas que les permitan comprobar el buen funcionamiento del microcontrolador
cuando es conectado al resto de circuitos.
u Simulador.
Son capaces de ejecutar en un PC programas realizados para el microcontrolador.
Los simuladores permiten tener un control absoluto sobre la ejecución de un
programa, siendo ideal es para la depuración de los mismos.
u Placas
de evaluación. Se trata de pequeños sistemas con un microcontrolador ya montado
y que suelen conectarse a un PC desde el que se cargan los programas que se
ejecutan en el microcontrolador. Las placas suelen incluir visualizadores LCD,
teclados, LEDs, fácil acceso a los pines de E/S, etc.
u Emuladores
en circuito. Se trata de un instrumento que se coloca entre el PC anfitrión y
el zócalo de la tarjeta de circuito impreso donde se alojará el
microcontrolador definitivo. El programa es ejecutado desde el PC, pero para la
tarjeta de aplicación es como si lo hiciese el mismo microcontrolador que luego
irá en el zócalo.
5.3
Aplicaciones de puertos
OPERACIÓN
DE LECTURA EN LOS PUERTOS DEL MICROCONTROLADOR 8051.
La
operación de lectura o de adquisición de datos no representa ningún tipo de
problema; solamente se deberá cambiar el orden de los operandos en la
instrucción respecto a la de escritura.
Para
la operación de lectura, el formato de la instrucción más habitual es el
siguiente: MOV ,PX ; dato <- PX Los siguientes diagramas muestran cómo se
puede introducir un dato a los puertos para que sirvan de interface.
5.4
Estándares de buses
PC/104
se lanzó en 1992, acercando la tecnología PC a las aplicaciones de control
industrial. El estándar PC/104 usa el bus ISA como un bus portador en el
sistema, sobre el que las unidades se interconectan, semejante al estándar
plug-in o las tarjetas de expansión de la época. En 1994 el estándar se amplió
para incluir el bus PCI y especificó el PC/104 Plus como el estándar. En el
estándar PC/104 Plus, tanto el bus ISA como el bus PCI se declaran como buses
portadores en el sistema y, por lo tanto, disponibles para la expansión del
sistema. Ambos sistemas de conectores ocupan alrededor del 30% del área de la
tarjeta.
La
creciente complejidad de las tarjetas y el énfasis en el bus PCI condujo en el
año 2004 a que el uso de PC/104 con bus ISA comenzara a utilizarse en menor
medida frente al uso del estándar PC/104 Plus. Para aplicaciones en las que el
bus ISA es necesario, están disponibles las tarjetas que hacen de puente entre
PCI e ISA y por tanto permite el uso de expansiones o tarjetas ISA en
soluciones PCI- 104. Existen numerosos desarrollos en el mercado, dentro de
áreas tan diferentes como máquinas herramientas, control de sistemas de riego o
aplicaciones militares. Por este motivo, el estándar PC/104 sigue manteniendo,
gracias a su robustez, una parte alta del mercado embedded.
Más
de 100 fabricantes de tarjetas respaldan actualmente el estándar PC/104 y
ofrecen una solución para casi cada aplicación. En comparación con otras
soluciones, el estándar PC/104 es un estándar real y de ese modo permite el
intercambio seguro de tarjetas de diferentes fabricantes, asegurando una
disponibilidad a largo tiempo.
5.5
Manejo del bus
Selección
del Bus
Con
el objetivo de solucionar los problemas antes mencionados y de poder reusar
nuestros diseños así como también usar diseños realizados por otros grupos
adoptamos el estándar de interconexión Wishbone.
Con
el objetivo de solucionar los problemas antes mencionados y de poder reusar
nuestros diseños así como también usar diseños realizados por otros grupos
adoptamos el estándar de interconexión Wishbone.
En
una primera aproximación creamos un bus de expansión específicamente creado
para el microcontrolador. Esto tiene importantes desventajas, entre ellas:
−
Para conectar periféricos creados por otros grupos de trabajo es necesario
adaptarlos a la señalización del bus en cuestión.
−
Periféricos diseñados para ese bus no servían para ser usados en otros diseños
con buses de otro tamaño. Por ejemplo: no servían para un bus de 16 o 32 bits
sin ser adaptados.
5.6
Aplicaciones de buses
Bus
de Direcciones: Este es un bus unidireccional debido a que la información fluye
es una sola dirección, de la CPU a la memoria ó a los elementos de entrada y
salida. La CPU sola puede colocar niveles lógicos en las n líneas de dirección,
con la cual se genera 2n posibles direcciones diferentes. Cada una de estas
direcciones corresponde a una localidad de la memoria ó dispositivo de E / S.
Los microprocesadores 8086 y 8088 usados en los primeros computadores
personales (PC) podían direccionar hasta 1 megabyte de memoria (1.048.576
bytes). Es necesario contar con 20 líneas de dirección. Para poder manejar más
de 1 megabyte de memoria , en los computadores AT (con procesadores 80286) se
utilizó un bus de direcciones de 24 bits, permitiendo así direccionar hasta 16
MB de memoria RAM (16.777.216 bytes). En la actualidad los procesadores 80386DX
pueden direccionar directamente 4 gigabytes de memoria principal y el
procesador 80486DX hasta 64 GB.
Bus
de Datos: Este es un bus bidireccional, pues los datos pueden fluir hacia ó
desde la CPU. Los m terminales de la CPU, de D0 - Dm-1 , pueden ser entradas ó
salidas, según la operación que se esté realizando ( lectura ó escritura ) . en
todos los casos, las palabras de datos transmitidas tiene m bits de longitud
debido a que la CPU maneja palabras de datos de m bits; del número de bits del
bus de datos, depende la clasificación del microprocesador.
En
algunos microprocesadores, el bus de datos se usa para transmitir otra
información además de los datos (por ejemplo, bits de dirección ó información
de condiciones). Es decir, el bus de datos es compartido en el tiempo ó
multiplexado. En general se adoptó 8 bits como ancho estándar para el bus de
datos de los primeros computadores PC y XT. Usualmente el computador transmite
un carácter por cada pulsación de reloj que controla el bus (bus clock), el
cual deriva sus pulsaciones del reloj del sistema (system clock). Algunos
computadores lentos necesitan hasta dos pulsaciones de reloj para transmitir un
carácter. Los computadores con procesador 80286 usan un bus de datos de 16 bits
de ancho, lo cual permite la comunicación de dos caracteres o bytes a la vez
por cada pulsación de reloj en el bus. Los procesadores 80386 y 80486 usan
buses de 32 bits. El PENTIUM de Intel utiliza bus externo de datos de 64 bits,
y uno de 32 bits interno en el microprocesador.
Bus
de Control: Este conjunto de señales se usa para sincronizar las actividades y
transacciones con los periféricos del sistema. Algunas de estas señales, como R
/ W , son señales que la CPU envía para indicar que tipo de operación se espera
en ese momento. Los periféricos también pueden remitir señales de control a la
CPU, como son INT, RESET, BUS RQ.
Las
señales más importantes en el bus de control son las señales de cronómetro, que
generan los intervalos de tiempo durante los cuales se realizan las
operaciones. Este tipo de señales depende directamente del tipo del
microprocesador.
5.7
Comunicación
Un
conversor ADC puede convertir un voltaje en un numero binario digital. Los
conversores A/D son utilizados en cualquier lugar donde sea necesario procesar
una señal, almacenarla o transportarla en forma digital.
La
resolución del conversor indica el número de valores discretos que se pueden
obtener dependiendo del rango del voltaje de entrada. Usualmente es expresado
en bits. Los microcontroladores típicamente traen incorporado conversores de 8,
10, 12 o 16 bits. Por ejemplo un ADC que codifica una señal análoga de 256
valores discretos (0..255) tiene una resolución de 8 bits, ya que 2^8 = 256.
La
resolución también puede ser definida en términos eléctricos, y expresada en
volts. La resolución de un ADC es igual al mayor voltaje que se pueda medir
dividido por el número de valores discretos, por ejemplo: Para un rango de
medida entre 0 y 10 volts
Resolución
del ADC = 12 bits: 2^12 = 4096 niveles de cuantización resolución del ADC en
volts: (10-0)/4096 = 0.00244 volts = 2.44 mV
No hay comentarios.:
Publicar un comentario