informe investigacion 3

25
ESCUELA POLITECNICA DEL EJÉRCITO DEPARTAMENTO DE ELECTRICA Y ELECTRONICA INFORME DELTRABAJO DE INVESTIGACIÓN Materia: Tecnología en Software para Electrónica I Tema: Manejo de puerto serie y paralelo en java Fecha de entrega: Jueves, 21 de julio del 2011 Nivel y paralelo: 5to Electrónica “A” Código del curso: 30532 AUTORES: Nombre completo: Yessenia Cristina Sánchez Gómez Firma: Nombre completo: Sebastián Sánchez Firma: Nombre completo: Jorge Suasnavas Firma: Nombre completo:Daniel Lizardo Terán Merchán Firma: 1

Upload: daniel-teran

Post on 05-Dec-2014

66 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Informe Investigacion 3

ESCUELA POLITECNICA DEL EJÉRCITODEPARTAMENTO DE ELECTRICA Y ELECTRONICA

INFORME DELTRABAJO DE INVESTIGACIÓN

Materia:Tecnología en Software para Electrónica I

Tema:Manejo de puerto serie y paralelo en java

Fecha de entrega:Jueves, 21 de julio del 2011

Nivel y paralelo:5to Electrónica “A”

Código del curso:30532

AUTORES:

Nombre completo: Yessenia Cristina Sánchez Gómez

Firma:

Nombre completo: Sebastián Sánchez

Firma:

Nombre completo: Jorge Suasnavas

Firma:

Nombre completo:Daniel Lizardo Terán MerchánFirma:

Nombre completo: Tnte. Com Carlos Sislema

Firma:

Nota: Para ser aceptado el informe debe estar debidamente firmado por cada uno de los integrantes.

1

Page 2: Informe Investigacion 3

EVALUACION DE TRABAJO DE INVESTIGACION

Tema:Manejo de puerto serie y paralelo en java

Autores:Yessenia SánchezSebastián SánchezJorge SuasnavasDaniel TeránTnte. Com Carlos Sislema

Fecha:Jueves, 21 de julio dl 2011

Evaluación:INFORME Max.

Planteamiento del problema 5Objetivos 10Marco teórico 15Explicación de la actividad práctica 15Conclusiones 10Recomendaciones y Aplicaciones 5CD 5Artículo 20Presentación 5Manual de usuario 10

TOTAL 100EQUIVALENCIA 1

DEFENSA Max.Presentación y empleo de recursos 10Congruencia con el informe 10Cumplimiento de requisitos 40Ejecución de ejemplos/funcionamiento/calidad de implementación 20Video resumen 20

TOTAL 100EQUIVALENCIA 2

2

Page 3: Informe Investigacion 3

NOTA DE TRABAJO DE INVESTIGACION Max.Informe 1Defensa 2

TOTAL 3

Observaciones:

Nota: Para ser aceptado el informe debe estar acompañado de la correspondiente parte práctica, caso contrario.

3

Page 4: Informe Investigacion 3

INVESTIGACION FINAL

Table of ContentsMANEJO DE PUERTO SERIE Y PARALELO EN JAVA.......................................................................6

1. PLANTEAMIENTO DEL PROBLEMA.....................................................................................6

2. OBJETIVOS..................................................................................................................................7

2.1. Objetivos generales................................................................................................................7

2.2. Objetivos específicos..............................................................................................................7

3. MARCO TEÓRICO......................................................................................................................7

3.1. Introducción.............................................................................................................................7

3.2. Puerto virtual...........................................................................................................................8

3.3. Puerto serie..............................................................................................................................8

3.4. Puerto paralelo.........................................................................................................................9

3.5. Circuito integrado MAX232....................................................................................................9

3.6. Explicación de la actividad práctica.......................................................................................10

Interfaz serial:......................................................................................................................................10

Interfaz paralela:.................................................................................................................................14

4. DIAGRAMAS..............................................................................................................................15

5. LISTA DE COMPONENTES.....................................................................................................17

Hardware:............................................................................................................................................17

6. MAPA DE VARIABLES.............................................................................................................17

7. EXPLICACIÓN DE LOS MÉTODOS O FUNCIONES..........................................................19

Interfaz serial:......................................................................................................................................19

Interfaz paralela..................................................................................................................................19

Termómetro.........................................................................................................................................19

8. CONCLUSIONES....................................................................................................................20

9. RECOMENDACIONES.........................................................................................................21

10. APLICACIONES.....................................................................................................................21

11. CRONOGRAMA.....................................................................................................................22

12. BIBLIOGRAFÍA.....................................................................................................................22

4

Page 5: Informe Investigacion 3

MANEJO DE PUERTO SERIE Y PARALELO EN JAVA

1. PLANTEAMIENTO DEL PROBLEMA

Dentro del API de Java Communications (COMM) existen librerías óptimas para establecer una comunicación con dispositivos periféricos mediante puerto serie o paralelo.

El puerto de comunicaciones serial RS232, está limitado en cuanto a capacidades ya que la velocidad a la que trabaja y la distancia máxima que puede manejar son muy bajas, sin embargo, actualmente todavía existen muchos dispositivos que se conectan a través de esta interfaz, desde impresoras de tickets hasta lectores de códigos de barras.

Pero, ¿Porque usar comunicación serial si es mucho más lenta que la comunicación paralela?, ¿Qué complicaciones se presentan al querer utilizar cualquiera de estas dos interfaces en la actualidad?

Con la ayuda del API de Java COMMy de los puertos virtuales serie y paralelo que posee la herramienta Proteus se implementara estos dos tipos de interfaces, analizando así las complicaciones y ventajas que se presentan al implementarlas.

2. OBJETIVOS

2.1. Objetivos generales

Implementar una aplicación en Netbeans que establezca una interfaz entre los puertos virtuales de la herramienta Proteus serie y paralelo.

Investigar y analizar el procedimiento para el manejo de puertos serie y paralelo en Netbeans.

2.2. Objetivos específicos

Identificar el funcionamiento y manejo para la programación utilizando Netbeans. Uso de las respectivas librerías de Java y Proteus que permiten estableceruna

interfaz serial o paralela. Fundamentar conceptualmente esas ideas. Comunicar y organizar los nuevos conocimientos o resultados. Acoplar las ideas con las necesidades de la sociedad.

5

Page 6: Informe Investigacion 3

3. MARCO TEÓRICO

3.1. Introducción

Visto que en la vida de un ingeniero es necesario el uso y manipulación de interfaces gráficas, para controlar un hardware también es necesario de una interfaz de conexión entre el software y el hardware, para eso es necesario saber cómo se manejan y manipulan puertos del computador así mismo sus conexiones, en el siguiente texto entrara información de la manipulación de puertos, manejo dentro de Java y como crear un interfaz gráfica y como conectarla a un puerto virtual

3.2. Puerto virtual

En el caso de aplicaciones especiales, es posible que PC con el Drivervirtual instalado trabaje también como el server, la conexión puede ser inicializada del dispositivo externo por enviar unos datos al puerto alejado. El convertidor abre la conexión a PC y envía los datos a COM virtual. Toda la situación se parece a la situación de puerto serie normal, pero nuestro dispositivo puede estar tan lejos como Usted quiera.

El puerto serie virtual HW no se puede usar para conectar dos puertos físicos de dos PC por la red porque el driver de HW VSP siempre trabaja con los puertos series virtuales.

Figura. 1. Interfaz serial, con puerto virtual

3.3. Puerto serie

El puerto en serie de un ordenador es un adaptador asíncrono utilizado para poder intercomunicar varios ordenadores entre sí. Un puerto serie recibe y envía información fuera del ordenador mediante un determinado software de comunicación o un drive del puerto serie.

6

Page 7: Informe Investigacion 3

El Software envía la información al puerto, carácter a carácter, convirtiendo en una señal que puede ser enviada por cable serie o un módem. Cuando se ha recibido un carácter, el puerto serie envía una señal por medio de una interrupción indicando que el carácter está listo. Cuando el ordenador ve la señal, los servicios del puerto serie leen el carácter.

Figura. 2. Pines del puerto serial

3.4. Puerto paralelo

Este puerto de E/S envía datos en formato paralelo (donde 8 bits de datos, forman un byte, y se envían simultáneamente sobre ocho líneas individuales en un solo cable.) El puerto paralelo usa un conector tipo D-25 (es de 25 pin) El puerto paralelo se utiliza principalmente para impresoras.

La mayoría de los software usan el termino LPT (impresor en línea) más un número para designar un puerto paralelo (por ejemplo, LPT1). Un ejemplo donde se utiliza la designación del puerto es el procedimiento de instalación de software donde se incluye un paso en que se identifica el puerto al cual se conecta a una impresora.

Figura. 3. Registros del puerto paralelo

7

Page 8: Informe Investigacion 3

3.5. Circuito integrado MAX232

El circuito integrado max232, es muy útil para comunicar una computadora con un pic o cualquier otro microcontrolador. La computadora maneja voltajes de 8 a -8v, por lo tanto no se puede conectar directamente a un microcontrolador que manejan voltajes TTL. Por lo tanto es necesario este conversor de voltajes.

Figura. 4. Circuito básico del circuito integrado MAX232

3.6. Explicación de la actividad práctica

Se realizó dos aplicaciones que corresponden a una interfaz con los puertos virtuales de Isis Proteus serie y paralelo, respectivamente.

Interfaz serial:

Para esta aplicación realizaremos una conexión con Netbeans y el puerto virtual serie de Proteus para simular el comportamiento de un termómetro

1. Para obtener esta interfaz primero comenzamos por crear nuestro puerto virtual que lo haremos con la instalación del siguiente programa:

Ejecutar el programa de instalación "Vsp2.2.1". Paso1: El Setup Wizard será visualizado. Para continuar la instalación Usted haga click

en el botón "Next", cuando Usted necesite volver al paso uno, hará click en el botón "Back" .

Paso2: La información básica sobre el producto será visualizada.

8

Page 9: Informe Investigacion 3

Paso3: Elige el sitio para instalar el driver. Paso4: Escoge el nombre de la carpeta que será creada en Start menú. Paso5: Decide si Usted quiere crear o no el método abreviado en el escritorio. Paso6: Los datos eligidos serán visualizados, recomendamos controlarlos. Paso7: La instalación del programa será procedido.

En la ventana arriba se puede ver si la instalación tuvo éxito. Cuando Usted comprobe "Launch HW_VSP", el programa se ejecutará, después de acabar la instalación. No es necesario restartear la computadora después de la instalación. HW VSP se ejecuta por hacer el click en el icono „ VSP “ – icono con la flecha roja.

Creamos un puerto Par de puertos virtuales

En Netbeans importaremos una librería para realizar la comunicación , para ello utilizamos la librería: giovynet, esta nos permite realizar comunicaciones seriales utilizando java.

En nuestro programa implementaremos cuatro funciones que son patrón para establecer dicha interfaz que son:

1. Abrir puertos: con esta función lo que hacemos es habilitar los puertos y además verificar cuales de los puertos serie están libres para que se pueda entablar dicha comunicación.

9

Page 10: Informe Investigacion 3

public void abrirpuerto(List<String> portsFree) throws Exception parameters = new Parameters(); parameters.setPort(portsFree.get(0)); parameters.setBaudRate(Baud._9600); com = new Com(parameters);

2. Cerrar puerto: Una vez utilizados los puertos que sean necesarios si se los abre, se los debe volver a cerrar para no crear conflictos de operación, en el futuro con estos puertos.

public void cerrarpuerto(List<String> portsFree) throws Exception com.close();

3. Envio datos: esta funcion se implementa si se desea enviar datos desde el puerto serial hacia elotro extremo de la comunicación.

public void envioDato(List<String> portsFree) throws Exception com.sendSingleData(data);

1. Recibir datos: se la implementa para que el puerto recepte la información que le fue enviada.

public int reciboDato(List<String> portsFree) throws Exception int num = 0; do num = 0; num = com.receiveSingleDataInt(); while (num == 0); return num;

Una vez realizada la programación necesaria en la aplicación se procede a realizar el circuito en el software para simulación Proteus, y lo guardamos.

Y abrimos nuestro Proyecto En Netbeans en conjunto con el circuito realizado en Proteus.

Compilamos a nuestro programa en y nos aparecerá una ventana como esta

10

Page 11: Informe Investigacion 3

Verificamos el puerto

Y por medio del Proteus manipulamos la temperatura a través de sus contactores de pulso

R1

330R2

330R3

330R4

330R5

330R6

330

R7

330

R8

330

ERROR

TXD3

RXD2

CTS8

RTS7

DSR6

DTR4

DCD1

RI9

P1

COMPIM

12345678

2019181716151413

9 1210 11

U3

LED-BARGRAPH-RED

SI10

D011

D112

D213

D314

D43

D54

D65

D76 SO 9

CLK2 QH 7

INH15

SH/LD1

U4

74165

1000110

1

0

U2

NOT

U4(CLK)

0

DIP

SRG8R

C1/->

& 1D1 32

4

5

6

10

8

11

12

9

13

U1

74HC164

U1(CLK)

D03 Q0 2

D14 Q1 5

D27 Q2 6

D38 Q3 9

D413 Q4 12

D514 Q5 15

D617 Q6 16

D718 Q7 19

OE1

CLK11

U5

74HC374

01

11

Page 12: Informe Investigacion 3

Interfaz paralela:

Para esta aplicación hemos realizado la simulación de un semáforo donde el peatón tiene el control para que este cambie de estado.Simularemos en proteus el correspondiente circuito que necesitaremos, utilizando el puerto virtual LPT1, pero el problema de este puerto virtual es que no tiene registro de estado solo de control y dato.

C0C1C2C3

D0D1D2D3D4D5D6D7

LP

T V

IRT

UA

L

23456789

LPT1

LPT02

D1

LED-REDD2

LED-YELLOWD3

LED-GREEN

R1

330

R2

330

R3

330

Para realizar esta comunicación importamos en Netbeans la carpeta jnpout32.* esta nos ofrece una serie de métodos que nos serán de mucha utilidad para entablar dicha interfaz.

Comenzamos por implementar nuestro circuito en protoboard con los elementos necesarios para nuestra aplicación.

Abrimos nuestros dos programas en conjunto, los realizados en java y en Proteus y daremos inicio a nuestra aplicación.

Implementamos nuestra programa en java con herramientas GUI para que el usuario de inicio o cierre a esta comunicación.

12

Page 13: Informe Investigacion 3

Además que se tendrá el control del semáforo por hardware mediante dos pulsadores que se implementaron en l circuito.

4. DIAGRAMAS

Diagramas UML

Interfaz serial

Interfaz paralela

13

Page 14: Informe Investigacion 3

Diagramas eléctricos

Interfaz puerto paralelo:

C0C1C2C3

D0D1D2D3D4D5D6D7

LP

T V

IRT

UA

L

23456789

LPT1

LPT02

D1

LED-REDD2

LED-YELLOWD3

LED-GREEN

R1

330

R2

330

R3

330

Interfaz serial:

14

Page 15: Informe Investigacion 3

R1

330R2

330R3

330R4

330R5

330R6

330

R7

330

R8

330

ERROR

TXD3

RXD2

CTS8

RTS7

DSR6

DTR4

DCD1

RI9

P1

COMPIM

12345678

2019181716151413

9 1210 11

U3

LED-BARGRAPH-RED

SI10

D011

D112

D213

D314

D43

D54

D65

D76 SO 9

CLK2 QH 7

INH15

SH/LD1

U4

74165

1000110

1

0

U2

NOT

U4(CLK)

0

DIP

SRG8R

C1/->

& 1D1 32

4

5

6

10

8

11

12

9

13

U1

74HC164

U1(CLK)

D03 Q0 2

D14 Q1 5

D27 Q2 6

D38 Q3 9

D413 Q4 12

D514 Q5 15

D617 Q6 16

D718 Q7 19

OE1

CLK11

U5

74HC374

01

5. LISTA DE COMPONENTES

Hardware:

EQUIPOS ELEMENTOS1 Protoboard 3 Diodos leds1 Cable puerto paralelo

DB-255 Resistencias:

220Ω1 Batería 9V 2 Pulsadores

|Software:

Netbeans Isis Proteus 7.5 virtual-serial-port-kit

6. MAPA DE VARIABLES

Interfaz serial:

txtpuerto: en esta área de texto se guarda el nombre del puerto serial libre, al momento que el usuario da clic en el botón Mostrar puertos libres.

15

Page 16: Informe Investigacion 3

txtvalor.- guarda el valor del número aleatorio generado, que indica la temperatura del termómetro.

Interfaz Paralela

16

Page 17: Informe Investigacion 3

txtparar: hace que semáforo se detenga, es decir para a HiloSemáforotxtiniciar: hace que el hilo semáforo inicie

7. EXPLICACIÓN DE LOS MÉTODOS O FUNCIONES

Interfaz serial:

Datos:

a. publicDatos(int data, Parametersparameters, Com com).- constructor con parámetros que inicializa los valores de el dato entero data, el objeto de tipo parámetro y el objeto de tipo com.

b. publicDatos().-constructor sin argumentos de la clase Data inicializa el valor del dato entero data a nulo.

c. public void abrirpuerto(List<String> portsFree).- funcion para setear el puerto para habilitarlo

d. public void cerrarpuerto(List<String> portsFree).- siempre luego de abrir el puerto se lo debe cerrar luego de haber culminado con la transferencia o recepción de información.

e. public void envioDato(List<String> portsFree).- funcion que permite el envio de datos por puerto serie.

f. public int reciboDato(List<String> portsFree).- funcion que recepta los datos enviados al puerto serie.

Termómetro

17

Page 18: Informe Investigacion 3

a. public Termometro().- constructor sin parámetros.

b. private void btnSalirActionPerformed(java.awt.event.ActionEvent evt).- botón que permite sair de la aplicacion.

c. public void puertolibre(String libre, List<String> portsFree).- indica que puerto serie se encuentra libre.

d. public void manejotemperatura(int valor).- funcion que tiene como parámetro el valor de la temperatura.

Interfaz paralela:

HiloBoton

a. public Puerto getObj().- inicializa el valor de objeto obj de la clase Puerto.

b. public void run().- método utilizado para que el hilo HiloBoton se active

HiloSemaforo

public void run().- funcion para que se active el hilo correspondiente a semáforo.

Puerto

public void envioDatos().- Accede a la direccion del registro de datos 378 para envio de informacion, contiene una interrupciion que si existe una ejecucion anomal se activa.public short recibirDatos().- Accede a la dirección del registro de datos 379 para recepción de informacion, contiene una interrupción que si existe una ejecución anomal se activa.

Principal

public static void main(String[] args).- metodo main de inicio Semáforoprivate void btnIniciarActionPerformed(java.awt.event.ActionEvent evt).- comienza con el juego de luces del semáforo. private void btnSalirActionPerformed(java.awt.event.ActionEvent evt.- salir de la aplicación totalmente.

8. CONCLUSIONES

18

Page 19: Informe Investigacion 3

Los puertos son conexiones entre los diferentes periféricos los cuales permiten la comunicación entre hardware y software.

Se pudo observar que el manejo de puertos en Java solo está disponible para Linux pero existe otra librería externa para manejar puertos en Windows.

También tenemos la API COMM que está disponible en la página de Oracle que sirve para manejar cualquier puerto excepto el USB.

Aunque de momento solo se dispone de esta API para unix (de Sun) y Windows, se está desarrollando una versión para linux.

Se pudo observar cómo crear un puerto virtual para probar nuestro circuito, para poder probarlo sin gastar muchos recursos.

Los puertos paralelos permiten la transmisión de datos en serie, un bit a la vez. Estos puertos permiten una interfaz con impresoras y módems de baja velocidad.

Se pudo observar que el manejo de puertos en Windows solo es compatible con versiones del JRE y JDK de 32 bits las versiones de 64 bits no están soportadas aun.

Se pudo comprobar que como la señal de pulso del puerto serial a veces no coincide con la señal del dato que enviamos es preferible hacer un bucle hasta que este pueda captar el dato.

Si se quiere implementar el circuito físico es necesario el max 232 ya que la computadora maneja voltajes de 8 a -8v, por lo tanto no se puede conectar directamente a un microcontrolador que manejan voltajes TTL.

9. RECOMENDACIONES

Tener Cuidado a la hora de enchufar los conectores porque son muy delicados y pueden dañarse los pines del puerto serie o paralelo.

Revisar que el CPU no este energizado a la hora de acoplar los conectores al puerto. Antes de manejar un puerto para tu computador solicita una previa orientación ya que

podemos quemar dicho puerto.

10. APLICACIONES

El uso de un termómetro nos puede ser útil para controlar diferentes ambientes industriales como puede ser un criadero de pollos, calderos, climatización, etc., y después en un futuro se puede elaborar una interface con internet para monitorear estos remotamente.

Creando una interfaz entre un sensor de temperatura real y el proyecto desarrollado se los puede implementar en lugares como hospitales, casas para detectar un incendio al elevarse la temperatura considerablemente e incluso en cocinas de restaurantes donde la temperatura es un factor indispensable para la conservación de los alimentos, en fin una serie de lugares ya que se tiene la ventaja de que el manejo es muy amigable y sencillo.

19

Page 20: Informe Investigacion 3

Si bien hasta hace algunos cuantos años los sensores de temperatura únicamente nos servían para indicarnos la temperatura que se registraba en un lugar debemos decir que en la actualidad se han modernizado bastante a tal punto que hoy por hoy no solo podemos tener la certeza de la temperatura que está haciendo en un ambiente sino que al mismo tiempo podemos conocer la temperatura que hará según el sistema de ambientación que estemos utilizando y la temperatura que tendría que hacer en proporción al tamaño de la habitación que estamos revisando.

11. CRONOGRAMA

12. BIBLIOGRAFÍA

URL: http://192.9.162.102/thread.jspa?threadID=5165624&messageID=9633447Fecha y hora: Mayo, 27,2011/15:00URL:http://www.held-mueller.de/Puertoserial/Fecha y hora: Junio, 28, 2011/15:15URL:http://tech.groups.yahoo.com/group/PuertoParalelo/Fecha y hora: Junio, 30, 2011/09:40URL:http://www.mathkb.com/Uwe/Forum.aspx/matlab/94235/GiovynetDriver_1.2_x86Fecha y hora: Julio, 02,2011/17:34URL:http://www.programacion.com/articulo/jdc_tech_tips_22_de_enero_de_2002_160

Fecha y hora: Julio, 05, 2011/22:30

20

Page 21: Informe Investigacion 3

21