Práctica 3ProgramacionRS232: Programación básica de la RS232



Documentos relacionados
Práctica 4RS232Osciloscopio: Manejo de un osciloscopio vía RS232

WINDOWS : TERMINAL SERVER

SMS Gestión. manual de uso

Herramientas Visuales de Programación

INSTALACIÓN DRIVER USB ST-8500

Programa de Textos FIRECONTROL para centrales ZXCE

Práctica 00: Compilador

Práctica 2NivelFisico: Estudio del nivel físico en la RS232 y en la RS485

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

Uso de Visual C++ Pre-Practica No. 3

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

CONFIGURACION AVANZADA DE OUTLOOK 2003

Prácticas de programación en C con MinGW Developer Studio

INSTALACIÓN DE MÚLTIPLES SUPERVISOR VS EN RED

Notas para la instalación de un lector de tarjetas inteligentes.

Presentaciones. Con el estudio de esta Unidad pretendemos alcanzar los siguientes objetivos:

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

El Entorno Integrado de Desarrollo Dev-C++ (Ayuda básica para las primeras sesiones de prácticas)

Tutorial. Configuración del entorno de programación Code::Blocks.

Práctica: Creación de un programa C# sencillo

Cobian Backup. Inguralde [Enero 2011]

COMO CREAR UNA PÁGINA WEB 2-INTRODUCCIÓN A DREAWEAVER

SINAC - Sistema de Información Nacional de Agua de Consumo MENU PRINCIPAL. Copyright Ministerio de Sanidad y Consumo

Manual básico de Outlook Express

Información sobre la configuración de una aplicación para transmitir datos ASCII por puerto serie, con pantallas terminales Magelis.

Guía de Instalación Proscai

Carlos Castro Grande 1

Instalación. 1. Abrir el panel Configuración del Sistema. 2. En la categoría Sistema, hacer clic sobre Detalles

Tutorial: Cómo realizar tu primer programa en C++ En el Sistema Operativo Windows

Fundamentos de Informática. Primer Curso de Ingenieros Químicos. Práctica 1. Dev C++ Compilador de C para Windows

PROGRAMA DE GESTIÓN LABORATORIO VETERINARIO

MANUAL DE LA APLICACIÓN DE ENVÍO DE SMS

Manual de uso de correo seguro en Microsoft Outlook

PRÁCTICA 7 COPIAS DE SEGURIDAD EN WINDOWS:

EUSKADI PRECIOS NDICE. 1 Definiciones: Base de Precios, Estructura, Precios paramétricos, Precios descompuestos, ámbitos

Manual de uso. Manual de uso - citanet 1

Conceptronic CFULLHDMA Cómo usar Samba/CIFS y NFS

Instalación y Registro Versiones Educativas 2013

Procedimiento de arranque de Aula Virtual Santillana: alumnos

Qué es Skype? Cuáles son las ventajas de Skype?

VideoSoftPHONE Active Contact

Manual de usuario investigador

CONFIGURACION AVANZADA DE MOZILLA THUNDERBIRD

MANUAL DE USUARIO DE UNIFIED IM

Escuela Politécnica Superior de Elche

P2: Configuración Básica de Redes IP con Equipos TELDAT

Programa de encriptación WIFI.

TEMA 4: EMPEZANDO A NAVEGAR ESCUELA UNIVERSITARIA DE INFORMÁTICA. Raúl Martín Martín

PRÁCTICAS. Diseño de. Sistemas Informáticos Industriales

Control de presencia para terminal por huella dactilar

1. El entorno de desarrollo Eclipse

Herramientas Informáticas para la Documentación Práctica 1. Introducción al navegador Netscape

Creando una webquests

Manual de Acceso y Problemas de acceso comunes

Tutorial: Primeros Pasos con Subversion

Este programa se encuentra en el paquete Microsoft Explorer 5.0 y se instala al mismo tiempo que el navegador Microsoft Explorer.

Microsoft Access proporciona dos métodos para crear una Base de datos.

Tutorial 1. Instalación del entorno de desarrollo de Android. Curso de perfeccionamiento: Programación de Android TUTORIAL 1: INSTALACIÓN DEL SOFTWARE

Internet Information Server

Uso básico desde la propia página del sitio

CONFIGURACIÓN TERMINAL SERVER EN WINDOWS 2003

Correo Electrónico: Webmail: Horde 3.1.1

PowerPoint 2010 Manejo de archivos

Kosmo Desktop Manual de desarrollo Instalación y configuración del código fuente de Kosmo en Eclipse

OpenIRS DOCENTIA Módulo de Gestión. Manual de Usuario.

CUALQUIERA, NO ES NECESARIO DISPONER DE ADSL

Manual de usuario Versión 1.0

Traslado de Copias y Presentación de Escritos. Manual de Usuario V.3.1

Manual de software. Dynamic Cloud. 10/2014 MS-Dynamic_Cloud v1.2

Manual del soporte en línea Web

MANUAL BÁSICO CORREO WEB ULPGC ÍNDICE

Gesfincas. INSTALACIÓN DE LA APLICACIÓN (Monopuesto y Red Local)

Práctica de laboratorio: Programación de tareas con la GUI y el comando at en Windows 7

Instalación. Interfaz gráfico. Programación de Backups. Anexo I: Gestión de la seguridad. Manual de Usuario de Backup Online 1/21.

Sección 1: Introducción al Modo Windows XP para Windows 7

DBmessage TM. Manual de usuario

1. Notas sobre la instalación de estas aplicaciones

1. Configuración del entorno de usuario

INTRANET: MANUAL DE INSTALACIÓN

Unidad Didáctica 12. La publicación

1 Introducción. 2 Requisitos del sistema. Control de presencia. V.1.0 Manual de instrucciones. Control de presencia. V.1.0 Manual de instrucciones

Guía de usuario: VPrestamosCA Valoración de préstamos mediante el sistema del coste amortizado

SESIÓN 1: POWER POINT 2013

Enviar archivos mediante FTP

MANUAL DE INICIACIÓN A JOVELLANOS VIRTUAL J. A. Espejo coordinador.tic@iesjovellanos.org 1

Se ha confeccionado una aplicación sencilla para poder probar el interfaz de gestión explotación de MEGA, Modelo Estandarizado de Gestión de Agua.

Llamar a través del PC Visión general

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

ASISTENCIA TÉCNICA A LA SEGURIDAD EN PYMES DE MELILLA MANUAL PUTTY TRAY

APLICATECA. didimo Marketing. Manual de usuario. By DIDIMO Servicios Móviles.

Cómo configurar Microsoft Outlook

Definiciones. Tema 21_Módulos Menú 1

Fundamentos CAPÍTULO 1. Contenido

Plantillas Office. Manual de usuario Versión 1.1

TEMA 2 WINDOWS XP Lección 4 BLOC DE NOTAS

PRÁCTICA 10. Configuración de Correo y Publicar en la Web

Transcripción:

Práctica 3ProgramacionRS232: Programación básica de la RS232 1 Objetivos El objetivo de esta práctica es la iniciación del alumno en la programación de las comunicaciones en un entorno de desarrollo basado en C. El entorno es equivalente para otros lenguajes como visualbasic,.net, java, etc. Al final de la práctica el alumno debería ser capaz de: Utilizar un API sencilla para comunicaciones. Realizar programas sencillos en C para manejar la RS232. Entender y dar soluciones al carácter asíncrono de las comunicaciones en la recepción de datos. 2 Tiempo de laboratorio 1 sesión. 3 Entorno de programación para las comunicaciones serie En este apartado el alumno aprenderá a manejar el entorno de programación para programar la vía serie utilizando C y una API basada en Win32. El primer paso consiste en interconectar el puerto serie 1 (COM1) del ordenador con el puerto 4 (COM4) mediante el cable de RS232 utilizado en la primera práctica (Herramientas básicas para usar la RS232). A continuación comprobar con Windmill la comunicación entre COM1 y COM4. Una vez comprobado el correcto funcionamiento, cerrar las sesiones de Windmill abiertas para liberar los puertos serie y poder realizar el siguiente paso. El segundo paso consiste en arrancar el entorno de programación MinGW y descargar el código colgado de la página web, para comprobar y programar la RS232. Para ello se deben seguir los siguientes pasos: 1. Cree un directorio de nombre PruRS232. 2. Copie al directorio anterior, desde la página web del laboratorio de la asignatura de Fundamentos de Comunicaciones Industriales (http://www.dea.icai.upcomillas.es/jarm), el fichero APIRS232.zip. Descomprímalo a continuación y aparecerán los siguientes ficheros: serie.cpp y serie.h: son la interfaz para poder programar la RS232 cómodamente. Define cuatro funciones: o OpenSerialPort permite establecer la comunicación con un puerto serie como si fuera un fichero. Los argumentos son: el puerto serie, la velocidad, el tamaño del byte, el tipo de paridad, el número de bits de stop y el timeout para las lecturas. Devuelve el identificador de la conexión abierta (Handle). Cada vez que se quiera operar con ese puerto serie habrá que utilizar dicho identificador. o SerialSendByte envía un byte por el puerto serie indicado por el identificador (Handle). Si la operación es correcta devolverá TRUE. o SerialReceiveByte recibe un byte por el puerto serie indicado por el identificador (Handle). Si la operación es correcta devolverá TRUE con Timeout=FALSE. Si se ha sobrepasado el tiempo de timeout especificado en la apertura del puerto, devolverá TRUE con Timeout a TRUE. Si hay problemas en la lectura devuelve FALSE. Práctica 3. 1

o CloseSerialPort cierra la comunicación con el puerto serie indicado por el identificador (Handle). A toda operación correcta de apertura de puerto le debe corresponder una operación de cierre (como en los ficheros). 3. Arranque MinGW: Botón de Inicio -> Programas -> Lenguajes de Programación -> Mingo Developer Studio -> Mingo Developer Studio. En el directorio también se encuentra el fichero de ayuda de la API de windows (Windows API Reference). Aparecerá la siguiente pantalla: MinGW es un entorno de programación en C que utiliza las herramientas de GNU. 4. Cree un proyecto tipo terminal de nombre enviar y directorio PruRS232 : Seleccione Project -> New Project. Seleccione Win32 Console Application; Project name: enviar y Location:..\PruRS232. A continuación pulse OK. Compruebe que aparece el fichero enviar.msp en el directorio de trabajo. Es el fichero donde se guarda la configuración del proyecto en C. Práctica 3. 2

5. Adjunte los ficheros enviar.cpp y serie.cpp como código fuente y serie.h como cabecera (include). Para ello despliegue el proyecto en FileView (parte central izquierda). Aparecen cuatro categorías de ficheros: source, header, resource y other. Posicione el ratón sobre Source Files y pulse el botón derecho para añadir ficheros. En la ventana que emerge seleccione enviar.cpp y serie.cpp. Repita la operación sobre Header Files para añadir serie.h al proyecto. Inspeccione los ficheros enviar.cpp, serie.cpp y serie.h. Para ello, una vez que forman parte del proyecto, haga doble clic directamente sobre ellos. El fichero enviar.cpp es un fichero de prueba para comprobar el funcionamiento de la API de comunicaciones descrita anteriormente. Realiza las siguientes operaciones: Abre el puerto de comunicaciones con configuración COM1, 9600, 8, N, 2. Lee continuamente del teclado carácter a carácter y lo envía por el puerto. Cierra el puerto cuando se pulsa x. En la misma carpeta donde se encuentra MinGW existe un enlace a la ayuda de la API de win32 (Windows API Reference), es decir, la API de Windows. Un API es una biblioteca de funciones que permiten manejar recursos proporcionados por terceros (en nuestro caso todas las posibilidades del sistema operativo Windows) de una manera cómoda y transparente. 6. Compile y cree el ejecutable enviar.exe. Para ello ejecute Build -> Build. Observe que se ha creado un directorio en el directorio PruRS232 de nombre Debug que contiene enviar.exe. Con este programa podrá enviar las teclas pulsadas a través del COM1 con la siguiente configuración: 9600, 8, N, 2 (velocidad, nº bits, paridad, nº de bits de stop). 7. Cierre el proyecto mediante Project -> Close Project. Si se quisiera abrir, utilice Project -> Open Project y elija el fichero enviar.msp. 8. Abra un nuevo proyecto en el mismo directorio, siguiendo los pasos del 1 a 6, y de nombre recibir (se creará recibir.msp). Adjunte como ficheros fuente recibir.cpp y serie.cpp y como cabecera serie.h. Compile y cree el ejecutable recibir.exe que aparecerá en el subdirectorio Debug. Este programa le permite recibir caracteres a través del COM4 con la configuración 9600, 8, N, 2. Práctica 3. 3

Conforme llegan se envían a pantalla. Si pasa un cierto tiempo sin recibir datos, el programa envía un mensaje de timeout a la pantalla. 9. Ejecute ambos programas (directorio Debug ). Escriba en la ventana de enviar.exe (pulsar return al final). Lo enviado se recibe en recibir.exe. Si no funcionase, como el cable ha sido comprobado con Windmill, el problema está en enviar.exe o en recibir.exe o en ambos. 10. Finalice la ejecución de ambos programas. 11. Compruebe que los programas enviar y recibir operan perfectamente con Windmill. Para ello: Arranque enviar y Windmill, con configuración COM4, 9600, 8, N, 2. Compruebe que lo enviado desde enviar se recibe en Windmill. Arranque recibir y Windmill, con configuración COM1, 9600, 8, N, 2. Compruebe que lo enviado desde Windmill se recibe en recibir.exe. Compruebe también qué ocurre cuando se mandan caracteres de control ASCII como 0x07 (ver primera práctica). Resultados a entregar al final de la sesión: Explicación del funcionamiento de la API utilizada. Máximo un folio por las 2 caras. 4 Configuración de las comunicaciones En este apartado el alumno aprenderá a utilizar código ya preparado para mejorar sus prestaciones. Se trata de mejorar el código de los programas de prueba para que se puedan configurar las comunicaciones cuando se ejecuta el programa, sin necesidad de compilar. Siguiendo los pasos del apartado anterior, cree un nuevo directorio llamado PruRS232Conf. Copie a dicho directorio los archivos serie.cpp, serie.h, enviar.cpp (como enviarconf.cpp), y recibir.cpp (como recibirconf.cpp). Arranque la herramienta MinGW y cree el proyecto enviarconf con los archivos enviarconf.cpp, serie.cpp y serie.h. Modifique enviarconf para que pida en el arranque: el puerto de comunicaciones, la velocidad de la comunicación, el número de bits por byte, la paridad y el número de bits de stop. A continuación se da un pequeño ejemplo para la lectura de parámetros en el caso de sólo pedir la velocidad: DWORD dwbaudrate; int lvelocidad; printf("velocidad (9600,19200,...): "); scanf("%d", &lvelocidad); switch (lvelocidad){ case 9600: dwbaudrate = CBR_9600; break; case 19200: dwbaudrate = CBR_19200; break; default: dwbaudrate = CBR_9600; break; } hport = OpenSerialPort("COM1", dwbaudrate, 8, NOPARITY, TWOSTOPBITS, 5000); Práctica 3. 4

Compruebe que el programa funciona correctamente empleando Windmill como receptor. Repita el mismo proceso para recibirconf y compruebe, junto con enviarconf, que se puede trabajar con diferentes parámetros en las comunicaciones sin necesidad de recompilar los programas. El profesor deberá comprobar en el laboratorio el funcionamiento correcto de este apartado. 5 Chat: Receptor y transmisor en el mismo programa En este apartado el alumno profundizará en los problemas que plantean las comunicaciones cuando se quiere recibir y transmitir simultáneamente. Programe una consola que permita transmitir y recibir simultáneamente, en vez de lo programado hasta ahora: una ventana y un puerto para recibir y otra ventana y otro puerto para enviar. Este programa debe permitir la conversación bidireccional entre 2 puertos serie que pueden estar en el mismo o en diferentes ordenadores. Es un ejemplo de un HyperTerminal muy simple o de un simple chat. El programa será la suma de la funcionalidad de enviar y recibir. Un ejemplo de pseudocódigo para dicho programa es el siguiente: Pedir Parámetros de configuración del puerto Abrir Puerto según parámetros de configuración While(1){ Se ha tecleado algo? { Se envía lo tecleado al puerto y a la pantalla } Se ha recibido algo? { Se envía lo recibido a la pantalla } } Para confeccionar el programa puede resultar útil la función kbhit de la biblioteca conio.h y la función getch (más información en www.msdn.com). El profesor deberá comprobar en el laboratorio el funcionamiento correcto de este apartado. Tenga en cuenta el alumno que este programa se utilizará en las prácticas sucesivas. Práctica 3. 5

Práctica 3. 6

Plantilla para resultados 3ProgramacionRS232 Alumno Apartado 3 Explicar el funcionamiento de la API utilizada. Práctica 3. 7

Apartado 4 Entregar copia del código al profesor. Apartado 5 Entregar copia del código al profesor. Práctica 3. 8