Unidad 3. UNIDAD CENTRAL DE PROCESO / INTERFACES DE E/S
INTERFACES DE E/S PARALELAS, SERIALES
PUERTO PARALELO
La transmisión de datos paralela consiste en enviar datos en forma simultánea por varios canales (hilos). Los puertos paralelos en los PC pueden utilizarse para enviar 8 bits (un octeto) simultáneamente por 8 hilos.
Los primeros puertos paralelos bidireccionales permitían una velocidad de 2,4 Mb/s. Sin embargo, los puertos paralelos mejorados han logrado alcanzar velocidades mayores, como el EPP (Enhanced Parallel Port, puerto paralelo mejorado) que alcanza velocidades de 8 a 16 Mbps. El puerto ECP (Enhanced Capabilities Port, puerto de capacidad mejorada) desarrollado por Hewlett-Packard y Microsoft, posee las mismas características del EPP, pero incluye soporte Plug and Play que permite que el equipo reconozca los periféricos conectados.
Los puertos paralelos, al igual que los seriales, se encuentran integrados a la placa madre. Los conectores DB25 permiten la conexión con un elemento exterior (por ejemplo, una impresora).
PUERTO SERIAL
Los puertos seriales (también llamados RS-232, por el nombre del estándar al que hacen referencia) fueron las primeras interfaces que permitieron que los equipos intercambien información con el “mundo exterior”. El término serial se refiere a los datos enviados mediante un solo hilo: los bits se envían uno detrás de otro (consulta la sección sobre transmisión de datos para conocer los modos de transmisión).
Originalmente, los puertos seriales solo podían enviar datos, no recibir, por lo que se desarrollaron puertos bidireccionales (que son los que se encuentran en los equipos actuales). Por lo tanto, los puertos seriales bidireccionales necesitan dos hilos para que la comunicación pueda efectuarse.
La comunicación serial se lleva a cabo asincrónicamente, es decir que no es necesaria una señal (o reloj) de sincronización: los datos pueden enviarse en intervalos aleatorios. A su vez, el periférico debe poder distinguir los caracteres (un carácter tiene 8 bits de longitud) entre la sucesión de bits que se están enviando.
Esta es la razón por la cual en este tipo de transmisión, cada carácter se encuentra precedido por un bit de inicio (llamado bit START) y seguido por un bit de fin (llamado bit STOP). Estos bits de control, necesarios para la transmisión serial, desperdician un 20 % del ancho de banda (de cada 10 bits enviados, 8 se utilizan para cifrar el carácter y 2 para la recepción).
Los puertos seriales, por lo general, están integrados a la placa madre, motivo por el cual los conectores que se hallan detrás de la carcasa y se encuentran conectados a la placa madre mediante un cable, pueden utilizarse para conectar un elemento exterior. Generalmente, los conectores seriales tienen 9 o 25 clavijas y tienen la siguiente forma (conectores DB9 y DB25 respectivamente):
Los puertos seriales, por lo general, están integrados a la placa madre, motivo por el cual los conectores que se hallan detrás de la carcasa y se encuentran conectados a la placa madre mediante un cable, pueden utilizarse para conectar un elemento exterior. Generalmente, los conectores seriales tienen 9 o 25 clavijas y tienen la siguiente forma (conectores DB9 y DB25 respectivamente):
Una computadora posee normalmente entre uno y
cuatro puertos seriales.
EMU 8086
El emu8086 es un emulador
del microprocesador 8086 (Intel o AMD compatible) con assembler integrado. A
diferencia del entorno de programación en assembler utilizado anteriormente en
la cátedra (MASM), este entorno corre sobre Windows y cuenta con una interfaz
gráfica muy amigable e intuitiva que facilita el aprendizaje el leguaje de
programación en assembler.
Dado que en un entorno
emulado de microprocesador no es posible implementar una interfaz real de
entrada/salida, el emu8086 permite interfacear con dispositivos virtuales y
emular una comunicación con el espacio de E/S. Para esto, el emu8086 cuenta
con una serie de dispositivos virtuales preexistentes en el software base,
listos para ser utilizados, entre los que se encuentran una impresora, un cruce
de calles con semáforos, un termómetro, un motor paso a paso, etc. No
obstante, la cátedra ha desarrollado dispositivos adicionales con
características particulares para la realización del segundo trabajo
práctico.


CONECTORES DB- 9 DB- 25
Conector DB25
El conector DB25 (originalmente DE-25) es un conector analógico de 25 clavijas de la familia de conectores D-Subminiature (D-Sub o Sub-D).
Al igual que el conector DB9, el conector DB25 se usa principalmente para conexiones en serie, ya que permite una transmisión asíncrona de datos de acuerdo a lo establecido en la norma RS-232 (RS-232C). También se utiliza para conexiones por el puerto paralelo. En un principio se utilizó para conectar impresoras y por este motivo, se le conoce como el "puerto de impresora" (abreviado LTP).
Entonces, para evitar confusiones, los puertos de serie DB25 de los equipos generalmente tienen conectores machos, mientras que los conectores de puerto paralelo son conectores hembra DB25.

El conector DB9 (originalmente DE-9) es un conector analógico de 9 clavijas de la familia de conectores D-Subminiature (D-Sub o Sub-D). Se utiliza principalmente para conexiones en serie, ya que permite una transmisión asíncrona de datos según lo establecido en la norma RS-232 (RS-232C).

Al igual que el conector DB9, el conector DB25 se usa principalmente para conexiones en serie, ya que permite una transmisión asíncrona de datos de acuerdo a lo establecido en la norma RS-232 (RS-232C). También se utiliza para conexiones por el puerto paralelo. En un principio se utilizó para conectar impresoras y por este motivo, se le conoce como el "puerto de impresora" (abreviado LTP).
Entonces, para evitar confusiones, los puertos de serie DB25 de los equipos generalmente tienen conectores machos, mientras que los conectores de puerto paralelo son conectores hembra DB25.

Conector DB9

DIRECCIONES DE PUERTO
El modelo de direccionamiento del PC
ha adoptado dos modelos, según la naturaleza del dispositivo a conectar: Direccionamiento
dedicado para dispositivos de media/baja velocidad. Por
ejemplo, puertos serie y paralelo (impresora), teclado, Etc. y direccionamiento
mapeado en memoria para dispositivos rápidos (típicamente los adaptadores
gráficos). En el apartado dedicado a E/S se explican las diferencias
entre ambas modalidades
Respecto a los dispositivos de direccionamiento dedicado, desde la
introducción del IBM-PC, es costumbre que determinados dispositivos muy comunes
se conecten mediante puertos de direcciones determinadas.
En la tabla adjunta se muestran algunas de estas
direcciones típicas para dispositivos de E/S. Las referencias a los chips
se refieren a los utilizados en los primeros PCs. Actualmente han sido
sustituidos por uno o dos integrados (Chipset) que realizan todas las
funciones.
Puede observarse que para un mismo periférico se
tienen varias direcciones (un "rango"). La razón es que estos
dispositivos tienen varios registros y/o son programables, para lo que disponen
de registros especiales (cada registro de un Byte tiene una dirección, y estas
son correlativas). Por ejemplo, el controlador de puerto serie de los
primeros PCs era un circuito integrado 8250 de
National Semiconductor; que dispone de 8 registros, aunque los datos se reciben
y transmiten por uno de ellos, el resto sirve para programar y controlar el funcionamiento
del chip.
Control de LEDS mediante Bluetooth
Primeramente para hacer un control de LEDS mediante Bluetooth debemos realizar una programación en arduino realizando una conexión sencilla que permita encender tres diodos leds previamente interconectados en un protoboard manejados mediante una aplicación desarrollada en app inventor conectada por un bluetooth, todo estará conectado a un arduino el cual alimenta de energía al protoboard y contiene la programación para que los diodos se enciendan o apaguen según lo que se solicite mediante la aplicación.
Programación
del arduino
La
siguiente función comienza con un if el cual dice que si el serial esta activa
realice el siguiente proceso, comenzamos declarando una variable char esta
variable contendrá los datos que se ingresen al ordenador.
Para
el siguiente if nos dice que si el dato es igual a 1 escriba en el pin 10 que
significa encendido y segundo imprimirá en pantalla según el color del led.
Como
vemos aquí tenemos 6 datos a posible ingreso, a partir del dato 4 en adelante
se realizará el apague de los leds con un liley de 1000 milisegundos.
Creación
de app inventora
Primeramente, como vemos aquí
tenemos un listPicker que se conectará con otro listPikers de elementos y esos
elementos conectaran al bluetooth.
También tenemos un listPicker que
se hace después de hacerle clic la cual su función es prender el bluetooth y lo
conecta al listPicker.
Cuando ejecutamos el botón rojo on
en el bluetooth cliente nos enviará un texto (1), este procedimiento será igual
para el color azul (2) y verde (3) en pocas palabras esto nos permitirá prender
los leds, ahora para apagarlos debemos usar el color que queramos apagar y el
comando off esto nos enviará un texto (4) y así con los demás colores azul (5),
verde (6).
A partir del texto 4 hasta el 6
solo se utilizan principalmente para apagar los leds.
Una
vez finalizada la aplicación la ejecutamos y se visualizará de la siguiente
manera.
Como vemos en la interfaz hay un botón que dice
conexión bluetooth esta conexión nos ayudara a conectar desde el celular al
Arduino para marcar órdenes a distancia como son prender y apagar los distintos
colores a elegir.
A
continuación, se mostrará cómo se hace la conexión bluetooth al Arduino,
primero se conecta los 5 volteos después conectamos a tierra, en ese momento el
bluetooth se encenderá ahora conectaremos la trasmisión que recibe el bluetooth
de lo que trasmite el Arduino.
Ahora
que ya tenemos montado todo perfectamente solo nos faltaría probar el
funcionamiento de prendido y apagado de los leds.
Control de LEDS mediante
Web
La comunicación serial consiste en
el envío de un bit de información de manera secuencial, esto quiere decir que
es un bit a la vez, de tal manera que va un ritmo acordado entre el emisor con
el receptor.
En el siguiente proyecto se pretende
controlar 5 leds usando una página web que contendrá un botón para cada uno,
los botones harán la acción de encender y apagar. Esto es con el fin de
demostrar cómo funciona la comunicación serial y para ello se utilizarán
herramientas electrónicas como un Arduino, los 5 leds, un protoboard,
resistencias, y los cables necesarios para la respectiva conexión. Por otro
lado, también necesitamos softwares para la creación de la página web y la
programación de Arduino.
- Primero se programa el Arduino con los pines para
encender y apagar los leds , para esto se inicializa el puerto serial 9600
y mediante un bucle se inicializa los puertos de salida.
5.Se procede a programar la pagina web
a la cual se la guardo con el nombre de “Index.php” en la cual se inicia
llamando a las paginas web de cada uno de los leds para que asi puedan
encenderse desde la pagina principal.
6. Se definen el puerto en el cual se realizara la pragramacion en este
caso es el COM8 luego se definen las variables que se utilizaran en el codigo
para lo cual se coloca pin1 pin2 pin3 pin4 pin5 y el numero de cada uno de los
pines con los que se encenderan y se apagaran.
7. Se realiza la programacion de cada uno de botones de la pagina para
realizar el respectivo proceso de encendido y apagado de todos los 5 leds para
lo cual se coloca un if el cual permitira que se realice el proceso de encedido
y apagado.
8.Una vez
realizado el proceso de los botones se procede a realizar el diseño del fondo y
colores en la pagina.
9. Luego se
procede a realizar el diseño de los botones como el tamaño y el color.
10. En esta parte se procede a colocar el mensaje de encendido y apagado de
los leds.
11. En la pagina
de arduino se llama a los puertos que se utilizan para los leds.
12. Se codifica
el boton encender apagar el led por
medio de los numeros codificados anteriormente el mismo proceso se realiza con
todoslos botones cambiando el numero ya que para cada boton sera un numero
diferente.
13. Se realiza la verifcacion por medio del Cmd anteponiendo el codigo que
se muestra en la siguiente imagen.
14. En el putty se coloca el puerto serial al que esta conectado al arduino.
16. Como paso final se ejecuta la pagina web terminada y se prueba que
funcionen los botones de forma correcta.





























