sábado, 31 de agosto de 2019

Unidad 3. UNIDAD CENTRAL DE PROCESO / INTERFACES DE E/S

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):
















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.


Conector DB25

Conector DB9

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). 

Conectores 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

En la parte de programación del arduino comenzamos con la función que hará la llamada a los pines de salida que son:




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.
  1. 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.


https://www.youtube.com/watch?v=usulg8rynBA&t=37s












No hay comentarios:

Publicar un comentario