Descargar

Sistema de Control de Dispositivos Sobre TCP/IP e Infrarrojo (página 2)


Partes: 1, 2, 3

La ingeniería en los sistemas de control

Los problemas considerados en la ingeniería de los sistemas de control, básicamente se tratan mediante dos pasos fundamentales como son:

El análisis

El diseño

En el análisis se investiga las características de un sistema existente. Mientras que en el diseño se escogen los componentes para crear un sistema de control que posteriormente ejecute una tarea particular. Existen dos métodos de diseño:

Diseño por análisis

Diseño por síntesis

El diseño por análisis modifica las características de un sistema existente o de un modelo estándar del sistema y el diseño por síntesis en el cual se define la forma del sistema a partir de sus especificaciones.

La representación de los problemas en los sistemas de control se lleva a cabo mediante tres representaciones básicas o modelos:

  • Ecuaciones Diferenciales y otras relaciones matemáticas.
  • Diagramas en bloque.
  • Gráficas en flujo de análisis.

Los diagramas y las gráficas de flujo son representaciones gráficas que pretenden el acortamiento del proceso correctivo del sistema, sin importar si está caracterizado de manera esquemática o mediante ecuaciones matemáticas. Las ecuaciones diferenciales se emplean cuando se requieren relaciones detalladas del sistema. Cada sistema de control se puede representar teóricamente por sus ecuaciones matemáticas.

2.2 Arquitectura de la Internet

Internet es una red mundial de computadoras interconectadas con un conjunto de protocolos, el más destacado, el TCP/IP. Aparece por primera vez en 1960. También se usa este nombre como sustantivo común y por tanto en minúsculas para designar a cualquier red de redes que use las mismas tecnologías que Internet, independientemente de su extensión o de que sea pública o privada.

Cuando se dice red de redes se hace referencia a que es una red formada por la interconexión de otras redes menores.

Al contrario de lo que se piensa comúnmente, Internet no es sinónimo de World Wide Web. Ésta es parte de Internet, siendo la World Wide Web uno de los muchos servicios ofertados en la red Internet. La Web es un sistema de información mucho más reciente (1995) que emplea Internet como medio de transmisión.

Algunos de los servicios disponibles en Internet aparte de la Web son el acceso remoto a otras máquinas (SSH y telnet), transferencia de archivos (FTP), correo electrónico (SMTP), boletines electrónicos (news o grupos de noticias), conversaciones en línea (IRC y chats), mensajería instantánea, transmisión de archivos (P2P, P2M, Descarga Directa), etc

El género de la palabra Internet es ambiguo según el Diccionario de la Real Academia Española. Es común escuchar hablar de "el Internet" o "la Internet". Algunas personas abogan por "la Internet", pues Internet es una red y el género de la palabra es femenino. El artículo se utiliza como calco del inglés, the Internet, sin embargo, tampoco es necesario en castellano.

Cronología

1969, DARPA comienza a planificar la creación de una red que conecte computadores en caso de una eventual guerra atómica que incomunique a los humanos sobre la tierra, con fines principalmente de defensa.

1972, se realizó la Primera demostración pública de ARPANET, una nueva Red de comunicaciones financiada por la DARPA que funcionaba de forma distribuida sobre la red telefónica conmutada. El éxito de ésta nueva arquitectura sirvió para que, en 1973, la DARPA iniciara un programa de investigación sobre posibles técnicas para interconectar redes (orientadas al tráfico de paquetes) de distintas clases. Para éste fin, desarrollaron nuevos protocolos de comunicaciones que permitiesen este intercambio de información de forma "transparente" para las computadoras conectadas. De la filosofía del proyecto surgió el nombre de "Internet", que se aplicó al sistema de redes interconectadas mediante los protocolos TCP e IP.

1983, el 1 de enero, ARPANET cambió el protocolo NCP por TCP/IP. Ese mismo año, se creó el IAB con el fin de estandarizar el protocolo TCP/IP y de proporcionar recursos de investigación a Internet. Por otra parte, se centró la función de asignación de identificadores en la IANA que, más tarde, delegó parte de sus funciones en el Internet registry que, a su vez, proporciona servicios a los DNS.

1986,, la NSF comenzó el desarrollo de NSFNET que se convirtió en la principal Red en árbol de Internet, complementada después con las redes NSINET y ESNET, todas ellas en Estados Unidos. Paralelamente, otras redes troncales en Europa, tanto públicas como comerciales, junto con las americanas formaban el esqueleto básico ("backbone") de Internet.

1989, con la integración de los protocolos OSI en la arquitectura de Internet, se inició la tendencia actual de permitir no sólo la interconexión de redes de estructuras dispares, sino también la de facilitar el uso de distintos protocolos de comunicaciones.

En el CERN de Ginebra, un grupo de Físicos encabezado por Tim Berners-Lee, crearon el lenguaje HTML, basado en el SGML. En 1990 el mismo equipo construyó el primer cliente Web, llamado WorldWideWeb (WWW), y el primer servidor web.

2006, el 3 de enero, Internet alcanzó los mil cien millones de usuarios. Se prevé que en diez años, la cantidad de navegantes de la Red aumentará a 2.000 millones.

En julio de 1961 Leonard Kleinrock publicó desde el MIT el primer documento sobre la teoría de conmutación de paquetes. Kleinrock convenció a Lawrence Roberts de la factibilidad teórica de las comunicaciones vía paquetes en lugar de circuitos, lo cual resultó ser un gran avance en el camino hacia el trabajo informático en red. El otro paso fundamental fue hacer dialogar a los ordenadores entre sí. Para explorar este terreno, en 1965, Roberts conectó una computadora TX2 en Massachusetts con un Q-32 en California a través de una línea telefónica conmutada de baja velocidad, creando así la primera (aunque reducida) red de computadoras de área amplia jamás construida. En los EE.UU. se estaba buscando una forma de mantener las comunicaciones vitales del país en el posible caso de una Guerra Nuclear. Este hecho marcó profundamente su evolución, ya que aún ahora los rasgos fundamentales del proyecto se hallan presentes en lo que hoy conocemos como Internet.

Tecnología de Internet

Internet incluye aproximadamente 5000 redes en todo el mundo y más de 100 protocolos distintos basados en TCP/IP, que se configura como el protocolo de la red. Los servicios disponibles en la red mundial de PC, han avanzado mucho gracias a las nuevas tecnologías de transmisión de alta velocidad, como DSL y Wireless, se ha logrado unir a las personas con videoconferencia, ver imágenes por satélite (ver tu casa desde el cielo), observar el mundo por webcams, hacer llamadas telefónicas gratuitas, o disfrutar de un juego multijugador en 3D, un buen libro PDF, o álbumes y películas para descargar.

El método de acceso a internet vigente hace algunos años, la telefonía básica, ha venido siendo sustituida gradualmente por conexiones más veloces y estables, entre ellas el ADSL, Cable Módems, o el RDSI. También han aparecido formas de acceso a través de la red eléctrica, e incluso por satélite (sólo para descarga).

Internet también está disponible en muchos lugares públicos tales como bibliotecas, hoteles o cibercafés. Una nueva forma de acceder sin necesidad de un puesto fijo son las redes inalámbricas, hoy presentes en aeropuertos, universidades o poblaciones enteras. Grandes áreas de San Francisco, Londres, Filadelfia o Toronto están cubiertas por estas redes, que permiten conectarse a un usuario con cualquier dispositivo eléctrico (portátiles, móviles, PDA…).

Internet y sociedad

Sitios de internet por países.

Internet tiene un impacto profundo en el trabajo, el ocio y el conocimiento. Gracias a la web, millones de personas tienen acceso fácil e inmediato a una cantidad extensa y diversa de información en línea. Un ejemplo de esto es el desarrollo y la distribución de colaboración del software de Free/Libre/Open-Source (SEDA) por ejemplo GNU, Linux, Mozilla y OpenOffice.org.

Comparado a las enciclopedias y a las bibliotecas tradicionales, la web ha permitido una descentralización repentina y extrema de la información y de los datos. Algunas compañías e individuos han adoptado el uso de los weblogs, que se utilizan en gran parte como diarios actualizables. Algunas organizaciones comerciales animan a su personal para incorporar sus áreas de especialización en sus sitios, con la esperanza de que impresionen a los visitantes con conocimiento experto e información libre.

Internet ha llegado a gran parte de los hogares y de las empresas de los países ricos, en este aspecto se ha abierto una brecha digital con los países pobres, en los cuales la penetración de Internet y las nuevas tecnologías es muy limitada para las personas.

Desde una perspectiva cultural del conocimiento, internet ha sido una ventaja y una responsabilidad. Para la gente que está interesada en otras culturas proporciona una cantidad significativa de información y de una interactividad que sería inasequible de otra manera.

  1. El protocolo dentro de una red informática, es el que permite el encaminamiento de la información a través de Internet, o sea, es el que define una red de conmutación de paquetes de información. La información se fragmenta en pequeños trozos o paquetes ( con una capacidad aproximadamente de 1500 caracteres) que se envían independientemente por la red. Cada paquete es enviado con la dirección del ordenador al que va dirigida la información, yendo cada paquete por una ruta distinta hasta alcanzar su objetivo.

    A continuación describiremos el protocolo TCP/IP que será el que utilizaremos en nuestro proyecto.

    TCP/IP: Es un conjunto de protocolos, en total mas de 100 protocolos, que proporcionan las reglas para comunicarse. Un protocolo contiene los detalles de los formatos de los mensajes, y describen como responde una computadora cuando llega un mensaje, especificando como maneja el error un PC u otras condiciones no normales. Permite reflexionar sobre la comunicación por computadora de manera independiente del hardware de red de cualquier marca.

    TCP ( Protocolo de Control de Transmisión) e IP (Protocolo de Internet), el IP se encarga de la transmisión de datos y el TCP asegura que todo funcione correctamente, dividiendo la información a enviar en paquetes, y añadiendo a cada paquete los caracteres de control de errores.

    Estos paquetes, que serian paquetes de información de datos, se envían a la red, y el IP lo transporta hasta el host remoto (destino), al otro extremo, TCP recibe los paquetes y comprueba si no hay errores. Si hubiese un error, TCP pide que se le vuelva a enviar el paquete nuevamente, encargándose de encontrar la mejor ruta y encargándose de que la información llegue en buen estado.

    El conjunto de protocolos que componen el TCP/IP abarca los 7 niveles OSI (Organización Internacional de Estándares), y para la red ARPANET, del Departamento de Defensa de los Estados Unidos, a principios de 1970. Y en 1980 se le incluyo en la versión Unís 4.2 de Barkeley, siendo en 1983 el protocolo militar estándar en Estados Unidos.

    Se hizo popular gracias a su independencia del fabricante, ya que soporta múltiples tecnologías, puede funcionar en maquinas de todo tamaño (multiplataforma), y su uso mayoritario ahora esta en Internet.

  2. Protocolos (TCP/IP)
  3. Redes Lan

LAN es la abreviatura de Local Area Network (Red de Área Local o simplemente Red Local). Una red local es la interconexión de varios ordenadores y periféricos. Su extensión esta limitada físicamente a un edificio o a un entorno de unos pocos kilómetros. Su aplicación más extendida es la interconexión de ordenadores personales y estaciones de trabajo en oficinas, fábricas, etc; para compartir recursos e intercambiar datos y aplicaciones. En definitiva, permite que dos o más máquinas se comuniquen.

El término red local incluye tanto el hardware como el software necesario para la interconexión de los distintos dispositivos y el tratamiento de la información.

En los días anteriores a los ordenadores personales, una empresa podía tener solamente un ordenador central, accediendo los usuarios a este vía terminales de ordenador sobre un cable simple de baja velocidad. Las redes como SNA de IBM (la Arquitectura de Red de Sistemas) fueron diseñadas para unir terminales u ordenadores centrales a sitios remotos sobre líneas alquiladas. Las primeras Lan fueron creadas al final de los años 1970 y se solían crear líneas de alta velocidad para conectar grandes ordenadores centrales a un solo lugar. Muchos de los sistemas fiables creados en esta época, como Ethernet y ARCNET fueron los más populares.

El crecimiento CP/M y DOS basados en el ordenador personal significaron que en un lugar físico existieran docenas o incluso cientos de ordenadores. La intención inicial de conectar estos ordenadores fue, generalmente compartir espacio de disco e impresoras láser, tales recursos eran muy caros en este tiempo. Había muchas expectativas en este tema desde el 1983 en adelante y la industria informática declaró que el siguiente año sería "El año de las Lan".

En realidad esta idea se vino abajo debido a la proliferación de las incompatibilidades de la capa física y la implantación del protocolo de red, y confusión sobre la mejor forma de compartir los recursos. Lo normal es que cada vendedor tuviera tarjeta de red, cableado, protocolo y sistema de operación de red. Con la aparición de Netware surgió una nueva solución, la cual ofrecía: soporte imparcial para los 40 o más tipos que existían de tarjetas y cables y sistemas operativos mucho más sofisticados que los que ofrecían la mayoría de los competidores. Netware dominaba el campo de las Lan de los ordenadores personales desde antes de su introducción en 1983 hasta mediados de los años 1990, cuando Microsoft introdujo Windows NT Advance Server y Windows for Workgroups.

De todos los competidores a Netware, sólo Banyan VINES tenía fuerza técnica comparable, pero Banyan se ganó una base segura. Microsoft y 3Com trabajaron juntos para crear un sistema de operaciones de red simple el cual estaba formado por la base de 3Com's 3+Share, el Gestor de redes Lan de Microsoft y el Servidor de IBM. Ninguno de estos proyectos fue especialmente satisfactorio

Componentes

Algunos Componentes de una red ocal

Servidor: El servidor es aquel o aquellos ordenadores que van a compartir sus recursos hardware y software con los demás equipos de la red. Sus características son potencia de cálculo, importancia de la información que almacena y conexión con recursos que se desean compartir.

Estación de trabajo: Los ordenadores que toman el papel de estaciones de trabajo aprovechan o tienen a su disposición los recursos que ofrece la red así como los servicios que proporcionan los Servidores a los cuales pueden acceder.

Gateways o pasarelas: Es un hardware y software que permite las comunicaciones entre la red local y grandes ordenadores (mainframes). El gateway adapta los protocolos de comunicación del mainframe (X25, SNA, etc.) a los de la red, y viceversa.

Bridges o puentes: Es un hardware y software que permite que se conecten dos redes locales entre sí. Un puente interno es el que se instala en un servidor de la red, y un puente externo es el que se hace sobre una estación de trabajo de la misma red. Los puentes también pueden ser locales o remotos. Los puentes locales son los que conectan a redes de un mismo edificio, usando tanto conexiones internas como externas. Los puentes remotos conectan redes distintas entre sí, llevando a cabo la conexión a través de redes públicas, como la red telefónica, RDSI o red de conmutación de paquetes.

Tarjeta de red: También se denominan NIC (Network Interface Card). Básicamente realiza la función de intermediario entre el ordenador y la red de comunicación. En ella se encuentran grabados los protocolos de comunicación de la red. La comunicación con el ordenador se realiza normalmente a través de las ranuras de expansión que éste dispone, ya sea ISA o PCMCIA. Aunque algunos equipos disponen de este adaptador integrado directamente en la placa base.

El medio: Constituido por el cableado y los conectores que enlazan los componentes de la red. Los medios físicos más utilizados son el cable de par trenzado, par de cable, cable coaxial y la fibra óptica (cada vez en más uso esta última).

Concentradores de cableado: Una LAN en bus usa solamente tarjetas de red en las estaciones y cableado coaxial para interconectarlas, además de los conectores, sin embargo este método complica el mantenimiento de la red ya que si falla alguna conexión toda la red deja de funcionar. Para impedir estos problemas las redes de área local usan concentradores de cableado para realizar las conexiones de las estaciones, en vez de distribuir las conexiones el concentrador las centraliza en un único dispositivo manteniendo indicadores luminosos de su estado e impidiendo que una de ellas pueda hacer fallar toda la red.

3 Interfases

3.1 Puerto Paralelo

A continuación daremos una breve descripción del puerto paralelo para luego entender con mas claridad el funcionamiento de nuestro proyecto

¿QUÉ ES UN PUERTO? :

El puerto es el lugar donde se intercambian datos con otro dispositivo. Los microprocesadores disponen de puertos para enviar y recibir bits de datos. Estos puertos se utilizan generalmente como direcciones de memoria con dedicación exclusiva. Los sistemas completos de computadoras disponen de puertos para la conexión de dispositivos periféricos, como impresoras y aparato de módem.

También nos permiten utilizar una computadora personal para controlar todo tipo circuitos electrónicos utilizados, principalmente, en actividades de automatización de procesos, adquisición de datos, tareas repetitivas y otras actividades que demandan precisión.

Existen dos métodos básicos para transmisión de datos en las computadoras modernas. En un esquema de transmisión de datos en serie un dispositivo envía datos a otro a razón de un BIT a la vez a través de un cable. Por otro lado, en un esquema de transmisión de datos en paralelo un dispositivo envía datos a otro a una tasa de n número de bits a través de n número de cables a un tiempo.

Sería fácil pensar que un sistema en paralelo es n veces más rápido que un sistema en serie, sin embargo esto no se cumple, básicamente el impedimento principal es el tipo de cable que se utiliza para interconectar los equipos. Si bien un sistema de comunicación en paralelo puede utilizar cualquier número de cables para transmitir datos, la mayoría de los sistemas paralelos utilizan ocho líneas de datos para transmitir un byte a la vez, como en todo, existen excepciones, por ejemplo el estándar SCSI permite transferencia de datos en esquemas que van desde los ocho bits y hasta los treinta y dos bits en paralelo. En esta descripción explicaremos las transferencias de ocho bits ya que ésta es la configuración del puerto paralelo de una PC. Un típico sistema de comunicación en paralelo puede ser de una dirección (unidireccional) o de dos direcciones (bidireccional). El más simple mecanismo utilizado en un puerto paralelo de una PC es de tipo unidireccional y es el que analizaremos en primer lugar. Distinguimos dos elementos: la parte transmisora y la parte receptora. La parte transmisora coloca la información en las líneas de datos e informa a la parte receptora que la información (los datos) están disponibles; entonces la parte receptora lee la información en las líneas de datos e informa a la parte transmisora que ha tomado la información (los datos). Observamos que ambas partes sincronizan su respectivo acceso a las líneas de datos, la parte receptora no leerá las líneas de datos hasta que la parte transmisora se lo indique en tanto que la parte transmisora no colocará nueva información en las líneas de datos hasta que la parte receptora remueva la información y le indique a la parte transmisora que ya ha tomado los datos, a ésta coordinación de operaciones se le llama acuerdo ó entendimiento. Podemos decir que en estos ámbitos tecnológicos es recomendable utilizar ciertas palabras en inglés que nos permiten irónicamente un mejor entendimiento de los conceptos tratados. La coordinación de operaciones entre la parte transmisora y la parte receptora se le llama handshaking, que en español es el acto con el cual dos partes manifiestan estar de acuerdo.

El handshaking 

      Para implementar el handshaking se requieren dos líneas adicionales. La línea de estroboscopio (en inglés strobe) es la que utiliza la parte transmisora para indicarle a la parte receptora la disponibilidad de información. La línea de admisión (acknowledge) es la que utiliza la parte receptora para indicarle a la parte transmisora que ha tomado la información (los datos) y que está lista para recibir más datos. El puerto paralelo provee de una tercera línea de handshaking llamada en inglés busy (ocupado), ésta la puede utilizar la parte receptora para indicarle a la parte transmisora que está ocupada y por lo tanto la parte transmisora no debe intentar colocar nueva información en las líneas de datos. Una típica sesión de transmisión de datos se parece a lo siguiente:

Parte transmisora:

  • La parte transmisora chequea la línea busy para ver si la parte receptora está ocupada. Si la línea busy está activa, la parte transmisora espera en un bucle hasta que la línea busy esté inactiva.
  • La parte transmisora coloca la información en las líneas de datos.
  • La parte transmisora activa la línea de strobe.
  • La parte transmisora espera en un bucle hasta que la línea acknowledge está activa.
  • La parte transmisora inactiva la línea de strobe.
  • La parte transmisora espera en un bucle hasta que la línea acknowledge esté inactiva.
  • La parte transmisora repite los pasos anteriores por cada byte a ser transmitido.

Parte receptora:

  • La parte receptora inactiva la línea busy (asumiendo que está lista para recibir información).
  • La parte receptora espera en un bucle hasta que la línea strobe esté activa.
  • La parte receptora lee la información de las líneas de datos (y si es necesario, procesa los datos).
  • La parte receptora activa la línea acknowledge.
  • La parte receptora espera en un bucle hasta que esté inactiva la línea de strobe.
  • La parte receptora inactiva la línea acknowledge.
  • La parte receptora repite los pasos anteriores por cada byte que debe recibir.

Se debe ser muy cuidadoso al seguir éstos pasos, tanto la parte transmisora como la receptora coordinan sus acciones de tal manera que la parte transmisora no intentará colocar varios bytes en las líneas de datos, en tanto que la parte receptora no debe leer más datos que los que le envíe la parte transmisora, un byte a la vez.

El hardware del puerto paralelo 

     El puerto paralelo de una típica PC utiliza un conector hembra de tipo D de 25 patitas (DB-25 S), éste es el caso más común, sin embargo es conveniente mencionar los tres tipos de conectores definidos por el estándar IEEE 1284, el primero, llamado 1284 tipo A es un conector hembra de 25 patitas de tipo D, es decir, el que mencionamos al principio. El orden de las patitas del conector es éste:

Vista del puerto paralelo en el Pc

Pines del Puerto Paralelo

Conectores Macho y Hembra

El segundo conector se llama 1284 tipo B que es un conector de 36 patitas de tipo centronics y lo encontramos en la mayoría de las impresoras; el tercero se denomina 1284 tipo C, se trata de un conector similar al 1284 tipo B pero más pequeño, además se dice que tiene mejores propiedades eléctricas y mecánicas, éste conector es el recomendado para nuevos diseños. La siguiente tabla describe la función de cada patita del conector 1284 tipo A:

Patita

E/S

Polaridad activa

Descripción

1

Salida

0

Strobe

2 ~ 9

Salida

Líneas de datos (BIT 0/patita 2, BIT 7/patita 9)

10

Entrada

0

Línea acknowledge (activa cuando el sistema remoto toma datos)

11

Entrada

0

Línea busy (si está activa, el sistema remoto no acepta datos)

12

Entrada

1

Línea Falta de papel (si está activa, falta papel en la impresora)

13

Entrada

1

Línea Select (si está activa, la impresora se ha seleccionado)

14

Salida

0

Línea Autofeed (si está activa, la impresora inserta una nueva línea por cada retorno de carro)

15

Entrada

0

Línea Error (si está activa, hay un error en la impresora)

16

Salida

0

Línea Init (Si se mantiene activa por al menos 50 micro-segundos, ésta señal auto inicializa la impresora)

17

Salida

0

Línea Select input (Cuando está inactiva, obliga a la impresora a salir de línea)

18 ~ 25

Tierra eléctrica

Configuración del puerto paralelo estándar

Observamos que el puerto paralelo tiene 12 líneas de salida (8 líneas de datos, strobe, autofeed, init, y select input) y 5 de entrada (acknowledge, busy, falta de papel, select y error). El estándar IEEE 1284 define cinco modos de operación:

Modo compatible

Modo nibble

Modo byte

Modo EPP, puerto paralelo ampliado

Modo ECP, puerto de capacidad extendida

El objetivo del estándar es diseñar nuevos dispositivos que sean totalmente compatibles con el puerto paralelo estándar (SPP) definido originalmente por la IBM (en éste artículo trataremos solamente el modo compatible que será el utilizado en el proyecto).

Hay tres direcciones de E/S asociadas con un puerto paralelo de la PC, éstas direcciones pertenecen al registro de datos, el registro de estado y el registro de control. El registro de datos es un puerto de lecturaescritura de ocho bits. Leer el registro de datos (en la modalidad unidireccional) retorna el último valor escrito en el registro de datos. Los registros de control y estado proveen la interfase a las otras líneas de E/S.

La distribución de las diferentes señales para cada uno de los tres registros de un puerto paralelo lo mostramos en las siguientes tablas:

Dirección

Nombre

Lectura/Escritura

BIT #

Propiedades

Base + 0

Puerto de datos

Escritura

BIT 7

Dato 7

Bit 6

Dato 6

Bit 5

Dato 5

Bit 4

Dato 4

Bit 3

Dato 3

Bit 2

Dato 2

Bit 1

Dato 1

BIT 0

Dato 0

Registro de datos

Dirección

Nombre

Lectura/Escritura

BIT #

Propiedades

Base + 1

Puerto de estado

Sólo Lectura

BIT 7

Busy

Bit 6

Acknowledge

BIT 5

Falta de papel

Bit 4

Select In

Bit 3

Error

Bit 2

IRQ (Not)

Bit 1

Reservado

BIT 0

Reservado

Registro de estado

Dirección

Nombre

Lectura/Escritura

BIT #

Propiedades

Base + 2

Puerto de control

Lectura/Escritura

BIT 7

No usado

BIT 6

No usado

BIT 5

Permite puerto bidireccional

BIT 4

Permite IRQ a través de la línea acknowledge

BIT 3

Selecciona impresora

BIT 2

Inicializa impresora

BIT 1

Nueva línea automática

BIT 0

Strobe

Registro de control

Una PC soporta hasta tres puertos paralelo separados, por tanto puede haber hasta tres juegos de registros en un sistema en un momento dado. Existen tres direcciones base para el puerto paralelo asociadas con tres posibles puertos paralelo: 0x3BCh, 0x378h y 0x278h, nos referimos a éstas como las direcciones base para el puerto LPT1, LPT2 y LPT3, respectivamente. El registro de datos se localiza siempre en la dirección base de un puerto paralelo, el registro de estado aparece en la dirección base + 1, y el registro de control aparece en la dirección base + 2. Por ejemplo, para un puerto LPT2 localizado en 0x378h, ésta es la dirección del registro de datos, al registro de estado le corresponde la dirección 0x379h y su respectivo registro de control está en la dirección 0x37Ah. Cuando la PC se enciende el BIOS ejecuta una rutina para determinar el número de puertos presentes en el sistema asignando la etiqueta LPT1 al primer puerto localizado, si existen más puertos entonces se asignarán consecutivamente las etiquetas LPT2 y LPT3 de acuerdo a la siguiente tabla:

Dirección inicial

Función

0000:0408

Dirección base para LPT1

0000:040A

Dirección base para LPT2

0000:040C

Dirección base para LPT3

0000:040E

Dirección base para LPT4

Direcciones base en el BIOS

     Para trabajar con el puerto paralelo necesitamos en primer lugar conocer la dirección base asignada por el BIOS (estamos hablando de una PC compatible con IBM), podemos utilizar un programa llamado Debug.exe que nos indique la(s) dirección(es) asignada(s): en la plataforma Windows vamos al menú inicio, seleccionamos programas y luego MS-DOS para abrir una ventana de Símbolo de MS-DOS y aquí podemos introducir los comandos indicados más abajo. Si se trabaja en ambiente DOS basta con teclear en la línea de comandos la palabra debug, el programa responde colocando un signo de menos en donde tecleamos sin dejar espacios en blanco d040:08L8 y presionamos la tecla entrar, entonces el programa debug.exe nos indica en una serie de números la(s) dirección(es) para el (los) puerto(s) paralelo(s) disponibles en nuestro sistema, la siguiente imagen muestra el resultado obtenido en nuestro pc:

     Se puede observar una serie de números de dos dígitos (ocho en total), se trata del volcado de memoria que empieza en la dirección 40:0008h. Los primeros seis pares de números representan las direcciones base para los puertos paralelo instalados, en la imagen de arriba se aprecia que el único puerto paralelo de mi máquina está en la dirección 0x378h (78 03). Los números están invertidos porque Intel almacena tal información en un formato de "byte de bajo orden – byte de alto orden".

Una vez que obtenemos la información deseada cerramos el programa Debug.exe simplemente tecleando la letra q y presionando la tecla entrar. Para cerrar la ventana de Símbolo de MS-DOS tecleamos la palabra exit y presionamos la tecla entrar.

   Mediante la siguiente rutina podemos conocer la dirección asignada al puerto paralelo, el código fuente escrito es lenguaje c para windows y es el siguiente:

/**********************************************************************

* puerto1.c *

* Proyecto 2006 – Carrera de Ing. Tec en Electrónica *

* Vamos a determinar el valor del Puerto *

**********************************************************************/

#include <stdio.h>

#include <dos.h>

int main()

{

unsigned int __far *puntero_a_direccion;

int i;

puntero_a_direccion=(unsigned int __far *)0x00000408;

for (i=0; i<3; i++)

{

if (*puntero_a_direccion == 0)

printf("No se encontro puerto asignado a LPT%d n", i+1);

else

printf("La direccion asignada a LPT%d es 0x%Xhn",

i+1, *puntero_a_direccion);

puntero_a_direccion++;

}

return 0;

}

 

También mostramos otra rutina que nos permite determinar el número de puertos paralelos instalados en la computadora y almacena sus respectivas direcciones en el arreglo llamado direccion[i], en caso de encontrarse una dirección válida además se establece en 1 el valor del arreglo llamado disponible[i] simplemente como una medida de seguridad adicional. Como resultado de éstas acciones el programa despliega un menú basado en los puertos encontrados, en este punto podemos seleccionar, en caso de que disponga de más de un puerto, el puerto en donde está conectado nuestro dispositivo.

     Una vez seleccionado el puerto podemos escribir un valor cualquiera comprendido entre 0 y 255. Independientemente del puerto seleccionado toda la funcionalidad del programa está encapsulada en la función de tipo int llamada puerto( ) a la cual se le pasa un único parámetro que es la dirección del puerto seleccionado. La función está codificada de tal forma que al escribir un 0 el programa termina, de ésta manera al cerrar el programa las líneas de datos del puerto paralelo están todas en un nivel lógico bajo. Éste programa y el circuito asociado son útiles para entender de forma visual la forma de representar valores en formato binario.

 

/******************************************************************

* puerto2.c *

* Proyecto 2006 – Carrera de Ing. Tec en Electrónica *

* Escribe datos al puerto paralelo de la PC *

*****************************************************************/

#include <stdio.h>

#include <dos.h>

int puerto(int direcc);

int seleccion;

int main()

{

unsigned int __far *puntero_a_direccion;

int i, direccion[3]={0,0,0}, disponible[3]={0,0,0};

puntero_a_direccion = (unsigned int __far *)0x00000408;

printf("Seleccione el puerto:n");

/* ¿Cuantos puertos existen? */

for (i=0; i<3; i++)

{

if (*puntero_a_direccion == 0)

printf("Puerto LPT%d……………no disponiblen", i+1);

else

{

disponible[i] = 1;

direccion[i] = *puntero_a_direccion;

printf("Puerto LPT%d……………%dn", i+1, i+1);

}

puntero_a_direccion++;

}

printf("Salir del programa……..0n");

scanf("%d", &seleccion);

do

{

switch(seleccion)

{

case 0:/* Salir del programa */

printf("Salio del Programa!n");

return 0;

break;

case 1:/* Puerto LPT1 */

if(disponible[0]==1)

puerto(direccion[0]);

else

{

printf("ERROR: PUERTO NO DISPONIBLEn");

return 0;

}

break;

case 2:/* Puerto LPT2 */

if(disponible[1]==1)

puerto(direccion[1]);

else

{

printf("ERROR: PUERTO NO DISPONIBLEn");

return 0;

}

break;

case 3:/* Puerto LPT3 */

if(disponible[2]==1)

puerto(direccion[2]);

else

{

printf("ERROR: PUERTO NO DISPONIBLEn");

return 0;

}

break;

default:

printf("ERROR: OPCION INCORRECTA!n");

break;

}

if(seleccion!=0)

{

printf("Seleccione otra opcionn");

scanf("%d", &seleccion);

}

}

while(seleccion!=0);

return 0;

}

int puerto(int direcc)

{

unsigned char valor; /* Solo valores entre 0 y 255 */

printf("Ahora puede escribir cualquier valorn");

printf("entre 1 y 255, 0 para terminar el programan");

do

{

printf("Valor al puerto?n");

scanf("%d", &valor);

outp(direcc, valor);

printf("Se ha escrito %d al puerton", valor);

}

while(valor!=0);

return seleccion=0;

}

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente