Mostrando entradas con la etiqueta Redes. Mostrar todas las entradas
Mostrando entradas con la etiqueta Redes. Mostrar todas las entradas

miércoles, 26 de septiembre de 2018

Slax, a Live Linux

Slax es una versión del sistema operativo GNU/Linux basada en la distribución Debian -un desarrollo colaborativo en el que intervinieron miles de voluntarios de diversas partes del mundo, que participaban por medio de Internet-.

Fig. 1 Pantalla Principal de Slax

Es “Live” porque no requiere un disco rígido para su instalación ya que puede arrancar y funcionar desde una unidad de CD, DVD o PenDrive. El tema es que la versión básica tiene muy pocos componentes: administrador de archivos, administrador de redes, navegador Chrome denominado Chromium, Video Player, editor de textos, calculadora y archivador/compresor.

Fig. 2 Componentes del "Escritorio"

Para acceder a la red por cable o Wifi se emplea el Administrador de Red que debe ser activado manualmente (éste siempre es el caso en un sistema operativo “live”). En esta ocasión, si bien hay una red Wifi, el equipo está conectado al router a través de un cable RJ-45.

Fig. 3 Administrador de Red

Slax no tiene ninguna herramienta de Xoffice, ni siquiera el clásico GCC (ambos disponibles en el "live" de UBUNTU). Para usos generales, esta versión “live”, se pueden emplear servicios de cloud, por ejemplo, a través de Google Drive que brindan una funcionalidad amplia en herramientas de oficina. Otras operaciones se pueden obtener en línea, por ejemplo OCRs, editores gráficos, etcétera.

Fig. 4 Drives Disponibles

En el ejemplo que se muestra en este artículo, la versión instalada es “live” basada en CD. El equipo tiene un drive NTFS al que se puede acceder como lectura solamente y se le puede montar un PenDrive (Fig. 5) para almacenar archivos permanentes. Al conectar la memoria USB, el Slax lo incluye en la carpeta /drv pero no hace un anuncio visual (como es el caso de UBUNTU) por esta razón, siempre conviene revisar si cargó el Pen por medio del comando "fdisk -l" (Fig. 4). En este caso se observa que el PenDrive (FAT16) está disponible como /dev/sdb1

Fig. 5 Conf. de teclado y "Mount" del Pen

Existen otras modalidades que implican la confección de una instalación “a medida” en la máquina “live” y la generación de un nuevo CD/DVD. Si lo que se busca es una instalación dinámica como la que es habitual en los sistemas operativos convencionales, se puede optar por la instalación en PenDrive.

Fig. 6 Acceso a los Contenidos del PenDrive

La Fig. 6 muestra el acceso a las carpetas del PenDrive que permite un almacenamiento permanente de datos. El Slax es muy recomendable porque permite experimentar con Linux sin hacer ningún cambio en el equipo, así que probá generar el tuyo en slax.org.

FIN

lunes, 26 de diciembre de 2016

Impresores Fiscales Homologados

RG (AFIP) 3561/13

Esta resolución general de la AFIP, define el régimen de emisión de comprobantes mediante la utilización de Controladores Fiscales. A partir de esta resolución, se definen ampliaciones y modificaciones que impactaron las definiciones técnicas de los controladores fiscales. En el caso de la impresora que presentamos en este artículo, la impresora fiscal HASAR SMH/PT-1000(ver Fig. 1), se introdujeron numerosos cambios en los modos de comunicación que son incompatibles con los controles ActiveX (ocx) anteriores. Para evitar problemas, hay que desinstalar todas las versiones anteriores (que tienen el mismo nombre) y emplear el programa de instalación de la última versión.

Fig. 1 Impresora fiscal

Impresora

La impresora viene configurada con la dirección IP 192.168.1.1 (usualmente destinada al router). Tal vez la idea es que el usuario la conecte con un cable RJ45 cruzado (crossover) directamente en la PC (ver Fig. 6). Existe la opción de conectarla por medio del puerto USB, para el cual viene provisto un cable; sin embargo, las herramientas de configuración y prueba, tales como el HFL_TEST.EXE sólo permiten las opciones de conexión "serial" y "ethernet". Esta limitación se resuelve por medio de un puerto USB virtual.

Fig. 2 Conectores USB y RJ45 de Ethernet

Fig. 3 Administrador de Dispositivos

Conexión USB y Ethernet

El pueto USB virtual está implementado a través del driver ELMO GMAS (COM3) que deriva los datos que se envían al puerto COM3 (puede ser otro, según el caso) hacia el puerto USB en el que está conectada la impresora. Para verificar qué puerto COM está asignado se puede consultar el Administrador de Dispositivos (puertos). A partir de allí, el trámite es bastante simple, se trata de ingresar a la ventana MS-DOS y aplicar el comando:

HFL_TEST serial 3

 

 

 

Fig. 4 Configuración

Fig. 5 Parámetros de red

Luego, se busca la sección 3 (configuración) y dentro de esta, se selecciona la opción 32 que permite cargar los parámetros de configuración de red (ver Fig. 4 y 5). Antes de asignarle una dirección IP, se utilizó el comando IPCONFIG.EXE para determinar que direcciones estaban en uso en la red local. En este caso, el router estaba configurado con la dirección IP: 192.168.0.1 por lo que se seleccionó la dirección 192.168.0.200 para la impresora. Se probó con ping para verificar su funcionamiento. A partir de este punto, se desconecta el cable USB, se conecta un cable directo a través del router (ver Fig. 6) y se aplica el comando:

HFL_TEST ethernet 192.168.0.200

 

 

 

Fig. 6 Cableado RJ45

Conclusión

Con el HFL_TEST se probaron operaciones de rutina, cierre X y Z y la emisión de algunos tiques y comprobantes. Luego se verificó el funcionamiento del driver HasarArgentina.ocx con VisualBasic y el funcionamiento en la plataforma NET. Todas las pruebas fueron satisfactorias por lo que se comenzó con el desarrollo de la aplicación.

viernes, 28 de septiembre de 2012

Windows 7: Recuperación de Accesos Directos

Me encontraba alegremente trabajando con unos programas que había compilados con Clipper y como eran varios módulos .obj decidí armar un archivito .lnk para enlazarlos con RTLINK.EXE. Tudo bom, tudo legal, hasta que hice doble clic en el archivito .LNK y le indiqué que lo abriera con el Notepad. Al instante noté que el Explorador de Windows se había puesto durito como tratando de realizar una tarea pesada…y ¡SORPRESA!

Esto

Se Había Convertido en Esto

TODOS los Enlaces se habían convertido en archivos disponibles para ser leídos por Notepad y su función de Acceso Directo había desaparecido. Al hacer clic en "Microsoft Office Excel", por ejemplo, se abría el Notepad con un contenido como el siguiente:

Del enlace, ni noticias.

Me sorprendió bastante esta acción por parte del W7 y google mediante encontré alguien que se había tomado el trabajo de armar archivitos .REG para rescatar enlaces puntuales (cuando uno quiere que al .JPG lo abra Corel, por ejemplo). No me servía, pero, bajé unos cuantos y noté que se recuperaban algunos íconos a sus valores originales. Más aún, a pesar de que TODOS los enlaces del Menú Inicio, incluyendo los de las subcarpetas seguían mostrando al infame NOTEPAD, los enlaces comenzaron a operar como tales.

Solución Definitiva

Luego encontré la indicación para modificar el REGISTRO en forma apropiada, y es como sigue:

Download

El Archivo de RescateLinksW7.rar para Bajar

Con un simple doble clic en el archivo RescateLinksW7.reg se reestblecen los enlaces al instante.

Encabezado de Archivos .LNK

Por curiosidad, con el DEBUG miré varios archivos de Acceso Directo y noté que todos tienen el mismo encabezado, aproximadamente hasta el byte h180.

El que Microsoft tenga algunas cosas sorprendentes en sus productos, no es ninguna novedad. Aunque no es tan sorprendentes como las respuestas que da su personal de soporte, como este "Support Engineer" que a la pobre víctima de turno, al consultarle por este problema de los Accesos Diréctos, le espeta: Welcome to Microsoft Answers Forum... As per your information I feel that the computer is effected with some virus...

¿WTF? No way José, no se trata de ningún virus, es claramente un ERROR en el diseño del W7. Un sistema que es increíblemente restrictivo en algunos aspectos. Por ejemplo, no permite correr programas en modo de consola (DOS) con pantalla completa, ni siguiera virtual. Tampoco permite que en sesiones de consola se pueda abrir un puerto COM o LPT. Ah, eso si, puede convertir todos los Accesos Diréctos del sistema operativo solo por el hecho de que el usuario abrio un archivo con la extensión .LNK (que tradicionalmente se usó con programas enlazadores como el RTLINK.EXE) con algún programa.

Estos problemas de Microsoft me recuerdan a Cervantes: "la razón de la sinrazón que a mi razón se hace, de tal manera mi razón enflaquece". Y también a Willie Colón: "La vida te da sorpresas, sorpresas te da la vida" ay Dios...

¡Sorpéndanse!

Sergio Otaño

viernes, 9 de diciembre de 2011

Conversión a Base64

En términos simples, Base64 permite representar Bytes de cualquier valor (0 a 255) por medio de caracteres de texto. En este artículo me propongo mostrar cómo desarrollar código capaz de realizar la traducción, y al mismo tiempo que puedan hacer el código ustedes mismos.

Como ejemplo muestro el método implementado por medio de Excel que permite visualizar la lógica detrás del proceso, y luego dos programitas en ASP que pueden usar los lectores como punto de partida para realizar su propio programa ya sea en ASP cómo también en Visual Basic, o, con un poco de trabajo, a Java o JavaScript.

Fig. 1 Conversión en Excel


El Proceso de Conversión en Excel

En la Fig. 1 se puede observar el proceso de conversión de manera visual, se parte de una cadena TRES caracteres ACII, en este caso "URL". El hecho de tomar TRES caracteres no es arbitrario, es uno de los requisitos de la conversión, ya que Base64 permite convertir TRES caracteres ASCII (o sus equivalentes valores binarios) en CUATRO caracteres de 6 BITS legibles.

La matemática es clara:

3 * 8 bits = 24 bits
4 * 6 bits = 24 bits



Lo que se debe hacer es armar una ristra de 24 bits concatenando los bits individuales de los 3 caracteres ASCI I y luego extraer 4 grupos de 6 bits de esa ristra. Simple, ¿no es cierto?

Funciones de Excel



En ASP

El ejemplo en Excel es útil para observar el proceso requerido en la traducción, pero no es para nada práctico, excepto que lo implementen en una función de VBA. Por lo tanto aquí va un ejemplo en ASP.

Fig. 2 Conversor ASP


La principal diferencia entre este ejemplo y el anterior, es que no vamos a convertir los valores en una ristra de caracteres 0 y 1 (algo absolutamente ineficiente); en este caso, la ristra consistirá de un número bastante grande (de 24 bits) que contendrá los TRES caracteres requeridos (mas adelante veremos qué pasa cuando hay más o menos de tres caracteres).

La Ristra

La ristra consistirá de la sumatoria de los valores ascii de cada carácter escalándolo para que ocupe su posición relativa dentro de la ristra, según el siguiente esquema:

1) El valor del primer carácter habrá que multiplicarlo por 256^2 para que ocupe su lugar a partir del bit 16 hasta el bit 23 (considerando el número en binario).
2) El valor del segundo carácter habrá que multiplicarlo por 256 para que ocupe su lugar a partir del bit 8 hasta el bit 15 (considerando el número en binario).
3)El valor del tercer carácter se deja como está ya que ocupa los bits 0 hasta el bit 7.

La siguiente instrucción almacena la “ristra” numérica en la variable tmp:



La Extracción

El Segundo tema consiste en la extracción de los grupos de 6 bits, ahora no hay una cadena (string) de ceros y unos, sino que tenemos un valor numérico. Por esta razón debemos emplear una máscara binaria para quedarnos con la parte que nos interesa.

Máscaras en binario

B1 = 111111 000000 000000 000000
B2 = 000000 111111 000000 000000
B3 = 000000 000000 111111 000000
B4 = 000000 000000 000000 111111

Máscaras en decimal

b1=16515072
b2=258048
b3=4032
b4=63

Las máscaras funcionan por medio de las operaciones binarias (bit a bit), por ejemplo:
 Valor10100101
AND
 Máscara11110000
 Resultado10100000


Una vez que se realizó la operación AND con la máscara, tenemos al grupo de 6 bits correspondiente a la máscara utilizada. Sin embargo, antes de poder usarlo para contrastar con la tabla de símbolos Base64 (el vector b64 del ejemplo) tendremos que llevar el valor a ocupar el rango apropiado, desde el bit 0 hasta el bit 5, es decir, hay que cambiarlo de escala.

Para cambiar de escala el valor, debemos realizar una división entera cuyo numerador será el valor extraído por medio de la máscara, dividido por el nivel de escala que corresponde al grupo de bits extraído, por ejemplo r1 que corresponde al nivel más alto de la escala, es decir el que está más a la izquierda, le corresponde el divisor 2^18. Esto se debe a que este grupo está localizado entre el bit 18 y el bit 23. Con el resto de los grupos se procede de manera idéntica, excepto el último grupo que está en la escala correcta (su divisor sería 2^0 = 1).

Luego de la división, el valor quedará localizado entre los bits 0 y 5 que es el rango admisible para los símbolos Base64.Finalmente, se buscan los valores en la tabla de conversión que es el arreglo b64 en nuestro ejemplo y se obtienen la secuencia de caracteres en Base64.



Tratamiento de la cadena

Eso está muy bien, el programa funciona correctamente con cualquier grupo de 3 Bytes que lo alimente. Sin embargo, las cadenas de cualquier elemento, sean de texto o de una secuencia binaria correspondiente a una imagen, por ejemplo, no crecen DE A TRES, lo hacen DE A UNO. Y este es uno de los problemas que hay que resolver.

¿Qué hacer con las cadenas mayores o menores que tres pero no divisibles por 3?

Más adelante, en un programa ASP de ejemplo, presentamos un método para tratar con las cadenas de texto mayores o menores, antes de alimentarlas a la función de conversión (cuya base la aporta el programa Base64.asp), pero antes de ver los detalles, continuemos con las reglas de conversión.

Las reglas de conversión indican que, hay que rellenar la cadena que no se ajuste a la REGLA DE TRES, con caracteres nulos según sea necesario, es decir si yo quisiera traducir solamente la U de URL, simplemente tendría que agregarle 2 caracteres Null detrás.

Podemos probar esto rápidamente con el primer programa

'Cadena de texto a convertir
s="U" & chr(0) & chr(0)

El resultado será
V Q A A

Y con la cadena UR

'Cadena de texto a convertir
s="UR" & chr(0)

El resultado será
V V I A

Obtenemos un resultado, sin embargo, no es del todo correcto, ya que el programa tradujo partes de la cadena que eran inválidas debido a que eran simplemente caracteres de relleno. Por lo tanto, hay otra regla (hay muchas más reglas que se aplican al ámbito de Internet donde pueden surgir conflictos con los símbolos de conversión) que se debe aplicar en estos casos y que dice que en el caso de que sobre 1 carácter (o que falten 2 que es lo mismo) se deben reemplazar los dos últimos caracteres del valor convertido por el símbolo "=" y en el caso de que sobren 2 caracteres, se le debe reemplazar el último.

Si aplicamos esta regla, en el primer caso quedaría VQ== y en el segundo VVI= que son ambas cadenas Base64 válidas.



El programa cadena.asp permite tratar con las cadenas de texto antes detecta si tiene caracteres sobrantes, le aplica los caracteres de relleno (si fuera necesario) y deja la variable sobra con el valor apropiado para realizar el último paso que vimos, es decir, el reemplazo o no de los últimos caracteres.

Para Finalizar

Los ejemplos presentados en el artículo, junto con los programitas permiten, con muy poco trabajo poner en funcionamiento un convertidor propio, según este lineamiento:

1.Procesar la cadena de texto originaria
2.Implementar un ciclo que separe la cadena en grupos de 3
3.Convertir el grupo
4.Acumular las conversiones parciales
5.Agregar los terminadores = si corresponde.

¡Que tengan un gran día!

Sergio Otaño

lunes, 21 de noviembre de 2011

Servidor HTTP Detrás de un Router

A veces me sorprendo con la cantidad de consultas y comentarios sobre algunos artículos antiguos, uno de los destacados en esta categoría es sin dudas el Servidor de HTTP.

Recientemente un estudiante de Colombia me consultó sobre el funcionamiento del servidor detrás de un router. Me pareció una consulta interesante ya que transcurrieron varios años y en el 2011 la mayoría de los usuarios tiene algún tipo de router en sus domicilios, centros de estudio u oficinas.


Fig. 1 Ventana de Configuración


Esta cuestión no es de competencia del programita ServHttp (que fue diseñando con fines didácticos solamente), también se puede aplicar a cualquier servidor que un usuario quiera instalar en una PC que esté conectada a Internet por medio de un router.

A las cosas

Permitir el funcionamiento del servidor, es competencia del ROUTER que debe otorgarle la habilitación para que la petición del cliente pueda perforar la capa de distribución y encontrar la PC con su IP local detrás del router. Como ejemplo voy a mostrar el modo de configurar el router que tengo disponible en mi casa particular, un D-Link.

En la Fig. 1 se puede observar la ventana de configuración particular de D-Link en la que se definen los Servidores Virtuales, en este caso se encuentra seleccionado el servidor de HTTP, pero, de la misma forma se pueden configurar servidores de correo electrónico, FTP, etcétera. Nótese que asigné el puerto 4000 para acceder al ServHttp.


Fig. 2 ServHttp con IP Local

En la Fig. 2 se observa el programa ServHttp corriendo en la PC cuyo IP es 192.168.0.193. La dirección IP WAN es 190.18.134.112 de modo que la configuración de D-Link me permite acceder, desde cualquier PC del mundo a al ServHttp.

Prueba de Funcionamiento



Fig. 3 Respuesta en Google Chrome

Concluyendo: los routers ofrecen por medio de "orificios" (punched holes, en inglés) la posiblidad de brindar servicios viruales instalados en PCs conenctadas detrás de ellos.


¡Que tengan un gran día!

Sergio Otaño

martes, 20 de enero de 2009

Controlar Máquinas y Aparatos con La PC

El Medio Real y el Medio Virtual

La PC nos trae un mundo lleno de posibilidades, en los que podemos ser héroes de combate y salir victoriosos de encuentros con una docena de pandilleros peligrosos, pilotear aviones jet, conducir un Formula 1, y aún viajar a planetas lejanos.

¿Qué tiene eso que ver con la realidad?

¡Mucho! Un 11 de Septiembre nos enteramos que unos terroristas habían demolido dos torres, casi inexpugnables, en el país más seguro del mundo.... y se habían entrenado con un simulador de vuelo de una PC...

Fig. 1 DTR está Desactivado

Pero mas allá de discutir las implicaciones filosóficas de los efectos reales de un entrenamiento virtual informatizado, en este artículo propongo que realicemos un ejercicio concreto que nos permita operar sobre la realidad con nuestra PC, por ejemplo, encender un velador u otro aparato electrodoméstico. En este artículo les voy a mostrar un método muy FÁCIL de utilizar el Puerto Serie de la PC para encender y apagar un aparato.

Fig. 2 DTR está Activado

En otro artículo, les presenté el programa ServHTTP.exe que desarrollé para controlar “aparatos” a través de Internet (ver Control Remoto por Internet). El objetivo de ese artículo es precisamente demostrar prácticamente cómo se puede controlar un dispositivo por medio de la web con costo cero (pueden bajar una copia del programa aqui: Programa Servhttp.zip). Muchos lectores consultaron sobre los posibles usos del programa y algunos estaban muy interesados en ir un paso más adelante y conectar un dispositivo y controlarlo desde la PC.

Una de las dificultades con el Servidor HTTP es que, para controlar un aparato, es necesario agregar un microcontrolador u otro dispositivo que “interprete” la señal RS232 y active, desactive o controle el aparato. Por esta razón, me parece oportuno desarrollar una serie de artículos que conduzcan, paso a paso, en esa dirección, ahora si, con aparatos reales conectados en nuestra computadora. En el ejemplo que aquí les presento, eliminamos todas esas dificultades y trabajamos directamente con una señal de control del propio puerto.

El Hardware

Con unos pocos componentes podremos realizar nuestro primer ejercicio en el uso del puerto serie para controlar un aparato externo:

Componentes

El circuito es muy simple y su costo total es inferior a 1Dólar.

1 Conector DB9 (o DB25) Hembra
1 LED Rojo
1 LED Verde
2 Resistencias de 1K

El Circuito

Los LEDs son diodos, es decir que solamente se encienden cuando están "polarizados" en forma correcta. La rayita del LED corresponde al CÁTODO y va hacia el negativo o 0V y la base del triángulo es el ÁNODO y va hacia el positivo.

Advertencia: Si quieren probar el led, pongan una resistencia, tal como se ve en la Fig. 3 o conéctenlo con UNA SOLA pila AA o AAA (1.2V - 1.5V), o lo quemarán.

Fig. 3 Circuito del Ejercicio 1

Si observan detenidamente la forma en que está configurado el circuito de la Fig. 3, notarán que SG que es la tierra o 0V está en el centro y los LEDS están polarizados en ambas direcciones, es decir, uno de los leds se encenderá cuando el SG (cero volts) sea Positivo y en el otro caso cuando SG sea Negativo. Esto tiene que ver con las señales típicas de RS232 que son +12 y -12 (obviamente 0V es positivo con respecto a -12V). En el caso de la señal DTR, cuando hay un 1 (está activada) hay +12V y cuando hay un 0 (está desactivada) hay -12V. La mayoría de los circuitos electrónicos, incluída la PC, tabajan solamente con valores positivos (la PC, entre 0V y +5V), por ejemplo, una radio, un CD player, un MP3, etcétera.

Fig. 4 Implementación con "Breadboard"

Recibí numerosas consultas con respecto al armado de circuitos y los conocimientos de electrónica que se requieren para realizarlos. La mayoría de los circuitos que publico en estos artículos son básicos y en mi experiencia los pueden realizar sin mayores dificultades. Sin embargo, voy a publicar algunos artículos sobre los fundamentos de la electrónica para facilitar el paso a la práctica que es lo mas importante.

Por ahora, para los interesados, puse un Manual Introductorio de Radio y Electrónica en Inglés desarrollado por Phillips en formato PDF que pueden bajar aquí: Fundamentals of Radio y otro de Electrónica orientada a los sistemas digitales, de McGraw-Hill, también en inglés aquí: Introduction to Electronics.

Conectores DB9 - DB25

La siguiente tabla muestra las señales RS232 presentes en los conectores DB9 y DB25 que son los más frecuentes.

Fig. 5 Tabla de Señales RS232 y sus Pines

Tal como vimos en el caso del Puerto Paralelo, las direcciones del Puerto Serie también las encontramos en el BIOS:

COM1 en 0x0040:0000 es 03F8
COM2 en 0x0040:0002 es 02F8
COM3 en 0x0040:0004 es 03E8
COM4 en 0x0040:0006 es 02E8


La PC puede utilizar 2 o más direcciones alternativas para sus Puertos Serie: 3F8, 2F8, 3E8 y 2E8 (COM1 a COM4) entre otros. Para averiguar el puerto que utiliza la PC, podemos buscar en el Administrador de Sistema de Windows (que se encuentra en el panel de control) o podemos ejecutar el programa de diagnostico MSD (parte de DOS) y seleccionamos COM. También podemos observar los puertos por medio de Debug con el comando D (dump) a partir del segmento 40 entre 0 y 7 (en la línea de comando de Debug –D 40:0,7)

En nuestro caso, vamos a utilizar dos pines del conector del puerto serie: SG (Signal Ground o Tierra) y DTR (Data Terminal Ready). En otro artículo, analizo algunas particularidades del protocolo RS232, pero pueden encontrar mucha información en Internet sobre el tema.

La dirección de control del Puerto Serie, que nos permitirá activar y desactivar la señal DTR, está en la dirección de base + 4. Esto quiere decir que si nosotros vamos a utilizar el puerto COM1, la dirección de base será 03F8 y la dirección de control será 03FC.

Para activar nuestra línea DTR, debemos poner en 1 el último bit, es decir, enviamos un 1, para activar y un 0 para desactivar.

Ejercicio 1

Con este ejercicio vamos a dejar planteado en forma concreta el “Control Externo” del puerto y además, vamos a verificar alguna de las particularidades del puerto serie de la PC.

El primer paso consiste en realizar el "circuito" (en realidad un par de LEDs y un par de Resistencias) que observamos en la Fig. 3 que pueden realizar por medio de soldar los componentes o por medio de un breadboard (ver Fig. 4).

El Software

Les presento dos modalidades, una implementada en Visual Basic que perfectamente pueden realizarla en VBA para Access, Excel, Word, etcétera (en Herramientas/Macro/Editor de Visual Basic o ALT-F11) y otra en Assembler que la pueden implementar con Debug. En mi caso, tenía disponible el COM3, de manera que utilicé las direcciones 3E8 (Base) y 3EC (Control).

Visual Basic

El primer paso, es verificar si disponen del Control de comunicaciones de Microsoft “MsComm”, en caso de que no esté presente, deben agregarlo en la opción Proyecto/Componentes y en el caso de Word, por ejemplo, insertan un Formulario, abren el cuadro de herramientas y hacen clic con el botón derecho y agregan controles adicionales. El nombre del control es Microsoft Communications Control.

Fig. 6 Agregar el Componente MsComm

Agregan dos Botones

Private Sub Command1_Click()
MSComm1.DTREnable = True
Picture1.Picture = LoadPicture("on.gif")
End Sub

Private Sub Command2_Click()
MSComm1.DTREnable = False
Picture1.Picture = LoadPicture("off.gif")
End Sub

Agregan el código de apertura y cierre del puerto en Load() y Unload()

Private Sub Form_Load()
MSComm1.CommPort = 3
If Not MSComm1.PortOpen Then
MSComm1.PortOpen = True
End If
End Sub

Private Sub Form_Unload(Cancel As Integer)
If MSComm1.PortOpen Then
MSComm1.PortOpen = False
End If
End Sub

Assembler

En el caso del assembler, probé generar dos archivos COM que permiten desde Windows activar y desactivar el DTR, se denominan alternativamente 232on.com y 232off.com. También se puede realizar la acción desde Debug y oprimir P (paso a paso). En el caso de utilizar assembler, es importante primero enviar algo a la dirección de base del puerto para activarlo y luego enviar el valor al puerto de control.

N232on.com
A
MOV DX,03E8
MOV AL,1
OUT DX,AL
MOV DX,03EC
OUT DX,AL
MOV AX,4C
INT 21

RCX
12
W
Q

N232off.com
A
MOV DX,03E8
MOV AL,0
OUT DX,AL
MOV DX,03EC
OUT DX,AL
MOV AX,4C
INT 21

RCX
12
W
Q

En la próxima entrega veremos como encender una linterna, una radio, mas adelante un velador y finalmente un motor de Corriente Alterna.

Que tengan un gran día,

Sergio Otaño

martes, 13 de enero de 2009

Interface de Puerto Paralelo

Puerto de 8 Bits

El puerto paralelo de la PC permite la comunicación de 8 bits por vez y, aunque es generalmente utilizado para conectar la impresora, también permite la conexión de otros dispositivos, tales como: discos rígidos, CD-ROM, dispositivos de cinta, cámaras de video e incluso otra computadora. En este artículo propongo utilizar el Puerto Paralelo como un generador de sonido, por medio de una señal de onda cuadrada, en una modalidad similar a la que usa el 8253 (ver Gestión de Entrada/Salida).

Fig. 1 Interface “analógica” en el Puerto Paralelo

Para activar el puerto paralelo utilizaremos un programa sencillo escrito en lenguaje Assembler (ver Ejercicio 2). La PC puede utilizar 3 direcciones alternativas para sus puertos paralelos: 378h, 3BCh o 278h (todos hexadecimales). Para averiguar el puerto que utiliza la PC, podemos buscar en el Administrador de Sistema de Windows (que se encuentra en el panel de control) o podemos ejecutar el programa de diagnostico MSD (parte de DOS) y seleccionamos LPT. También podemos observar los puertos por medio de Debug con el comando D (dump) a partir del segmento 40 entre 8 y F (en la línea de comando de Debug –D 40:8,F ver Fig. 2)

Fig. 2 Debug del Segmento 40

En mi caso dispongo de 3 puertos (ver Fig. 2), pero el que realmente está conectado es 378h, y es el que voy a utilizar.

Conector DB-25

El Conector DB-25 Hembra y sus Pines

Fig.3 Líneas de Entrada y Salida del DB-25

Descripción de los Pines del DB-25

01 Strobe. Este pin está normalmente en 1 (+5V) y cuando hace strobe, es decir, la línea baja a 0 (0V) le indica a la impresora que se está enviando un carácter.
02 Bit de datos 0, es decir, el menos significativo.
03 Bit de datos 1.
04 Bit de datos 2.
05 Bit de datos 3.
06 Bit de datos 4.
07 Bit de datos 5.
08 Bit de datos 6.
09 Bit de datos 7, es decir, el mas significativo.

10 ACK (cuando está en 0).
11 Ocupado (cuando está en 1)
12 Fin de página (cuando está en 1)
12 Seleccionar (cuando está en 1)
14 Autoalimentación del papel (cuando está en 0).
15 Error (cuando está en 0).
16 Iniciar (cuando está en 0).
17 Selección (cuando está en 0).

18 Tierra (Ground), siempre en 0.
19 Tierra (Ground) , siempre en 0.
20 Tierra (Ground) , siempre en 0.
21 Tierra (Ground) , siempre en 0.
22 Tierra (Ground) , siempre en 0.
23 Tierra (Ground) , siempre en 0.
24 Tierra (Ground) , siempre en 0.
25 Tierra (Ground) , siempre en 0.


En nuestro ejercicio sólo utilizaremos el Pin 2 correspondiente a las líneas de datos (DATA 0) y uno de los pines de tierra o Ground (del pin 18 al 25).

Agrupación de Señales

El puerto paralelo dispone (ver Fig. 4) de tres grupos de señales: Datos (solamente para salida o Output), Status (solamente para entrada Input) y Control (solamente para salida Output).

Fig. 4 Las Señales Disponibles

Primero vamos a realizar un retardo por medio de los registros, que es un procedimiento habitual en el trabajo con microprocesadores o microcontroladores. Realizaremos dos loops en los que reduciremos el valor de un registro tantas veces como indique el otro registro, al estar los dos registros en cero, se sale del loop de retardo. Luego determinamos (a ojo) con el reloj de Windows el tiempo que toma ejecutar el programa.

Ejercicio 1

Este ejercicio está destinado solamente a determinar el tiempo que tardan en caer dos contadores de 16 bits, en nuestro caso, los registros BX y CX multiplicados entre sí (debido a que las máquinas actuales son muy rápidas), esto hace que el loop CX se repite BX veces. Como cargamos los registros con valores máximos FFFF, el total de loops que dará el programita es de FFFE0001h o 4294836225 en decimal.

NP.COM
A
MOV BX,FFFF
MOV CX,FFFF
DEC CX
JNZ 106
DEC BX
JNZ 103
MOV AX,4C
INT 21

RCX
11
W
Q

Resultados del Código Precedente

En mi caso, con los programas que se ejecutaban en ese momento, unos 3 segundos. Yo busco el orden de los milisegundos, de modo que divido 65535 (FFFF) por 3000 y lo convierto a hexadecimal, me da una cifra 15h (recuerden que al debug le hablamos en hexadecimal).

Es importante destacar que estos valores son absolutamente empíricos y dependen tanto de la máquina como de los programas que se encuentren en ejecución en el momento de la prueba. En el caso de los microprocesadores y microcontroladores, no hay ningún otro programa en ejecución.

Ejercicio 2

Este ejercicio consiste en utilizar el puerto paralelo como un generador de tono rudimentario de un bit. Este tipo de componente se denomina Convertidor Digital Analógico o CDA debido a que convierte señales digitales (patrones de ceros y unos) en sonido (que es analógico). Hay que destacar que este CDA es absolutamente rudimentario, pero es un buen ejemplo de interface no convencional de la PC.

En base a los datos que obtuve en mi primera prueba, para estar en el orden del milisegundo, debo aplicar un retardo de 15h en BX. Por ejemplo, si quiero realizar una onda cuadrada de 500Hz. debo cambiar entre 0 y 1 mil veces (la mitad del tiempo estará en 1 y la otra mitad estará en 0), es decir que debo enviar un valor cambiado cada milisegundo, y esto explica el retardo de 15h en AX.

NP.COM
A
MOV AL,1
MOV DX,378
MOV BX,15
MOV CX,FFFF
DEC CX
JNZ 10B
DEC BX
JNZ 108
XOR AL,1
OUT DX,AL
JMP 105
MOV AX,4C
INT 21

RCX
1C
W
Q

Muy bien, conecto el circuito que se ve en la Fig. 1 y ¡Voila! Escucho una frecuencia, aunque se parece mas a un sonido de una película de ciencia ficción que a un tono puro. Si queremos un tono puro, podemos emplear el 8253 tal como vimos en nuestra entrega Gestión de Entrada/Salida. En este artículo, la intención es realizar una interfase pseudo analógica.

El transistor está configurado como un simple amplificador para alimentar al parlante. La forma de conexión del transistor está explicitada en la Fig. 1 y el costo total de todos los componentes es de menos de un dólar. Algunos lectores me consultaron respecto de la alimentación; cualquier valor entre los 4V y los 9V debe funcionar. En otras entregas pondré las fotos del "engendro" y ejemplos del sonido que se obtiene.

Que tengan un gran día,

Sergio Otaño

miércoles, 15 de octubre de 2008

Redes y Telecomunicaciones - 0.3

Topologías de Red

Tanto las redes LAN (red de área local) como las redes WAN (red de área extendida) presentan una variedad de formas en las que se pueden interconectar a nivel físico y lógico. Técnicamente se denomina topología a la manera en que se interconectan los diversos componentes de una red. Seguidamente vamos a evaluar las tres Topologías básicas mas comunes: Bus, Ring y Star. Otras Topologías pueden construirse integrando estas topologías básicas.



Esquema de Topología BUS


Esquema de Topología RING

Esquema de Topología STAR

Topología Bus

Bus se refiere a una topología física y lógica (ver nota al pié). Desde el punto de vista lógico un Bus (conexión colectiva) se distingue por el hecho de que los paquetes de datos son diseminados (broadcast) de manera que cada nodo recibe el mensaje al mismo tiempo. Las redes Ethernet son los ejemplos más claros de una topología lógica de Bus. Desde el punto de vista físico, el Bus describe una red en la que cada nodo esta conectado a una línea común. Un Bus usualmente tiene al servidor de archivos en un extremo y se extiende hacia todas las estaciones de trabajo por medio del mismo conductor. El Bus es la configuración más popular tanto por su simpleza como por su costo. Como veremos más adelante, se puede implementar una topología lógica Bus mediante un cableado tipo Star que en lenguaje informático recibe el nombre 10 base T, 100 base T, etcétera.

Las ventajas de la topología de Bus son las siguientes:

- El Bus emplea relativamente poco cable en comparación con las otras Topologías y es el modo de tender los cables mas simple (unir los componentes por medio de los cables).
- Es muy sencillo agregar y quitar nodos de la red ya que todos se conectan sobre el mismo cable o Bus.
- Las arquitecturas basadas en esta topología son simples y flexibles (es decir, se pueden agregar o quitar nodos con facilidad).

Las desventajas son:

- Dificultad para diagnosticar y reparar fallas (es difícil determinar el lugar preciso de una falla).
- En redes muy grandes se producen cuellos de botella cuando el trafico de la red se hace intenso. Esto es debido a que los nodos pueden emplear gran parte de su tiempo tratando de acceder a la red.

Topología Ring (anillo)

La topología Ring o anillo es de tipo lógico y físico. En su aspecto lógico, un Ring se distingue por el hecho de que los paquetes de datos son transmitidos en forma secuencial de nodo a nodo, en un orden predefinido. Los nodos se ubican en un lazo cerrado de modo que el nodo que inicia la transmisión del paquete es el último en recibirlo. El ejemplo más conocido de esta topología son las redes Token Ring.

Desde el punto de vista físico, la topología Ring describe una red en la que cada nodo se conecta a otros dos nodos. Los paquetes de datos fluyen por la red en un solo sentido de manera que un nodo recibe el paquete sólo de un nodo y le transmite el paquete sólo a otro nodo. Un paquete viaja al rededor de la red hasta que retorna al nodo que originalmente envió dicho paquete (con el agregado de alguna información de control como por ejemplo, si el destinatario recibió correctamente el paquete).

Las redes Ring físicas son bastante raras. En cambio, es muy frecuente ver una configuración lógica Ring implementada con una topología física Star.

La ventaja de la topología Ring es que la cantidad de cable requerido es mínima.

Las desventajas son:

- Si un nodo cae (deja de funcionar correctamente), toda la red cae.
- El diagnostico y mantenimiento (determinación de la falla) es bastante dificultoso debido a que la comunicación circula en un solo sentido.
- Agregar o remover nodos produce disrupción en la red.

Topología Star (estrella)

La topología star es de tipo física y se caracteriza por permitir la interconexión de nodos con un componente central llamado Hub. Este Hub a su vez puede estar conectado con un servidor o con otro Hub (ampliando el tamaño de la red). Todas las señales, instrucciones y datos yendo desde y hacia cada nodo deben pasar por el Hub al que dicho nodo está conectado.




Esquema de la aplicación más conocida de una topología estrella: el sistema telefónico
El sistema de cableado de las compañías de teléfono es el ejemplo mas difundido de una topología Star, con líneas que llegan directamente a los aparatos de los usuarios desde una central. En el mundo de las redes LAN, el ejemplo mas conocido de topología Star son las redes ARCnet.

Ventajas:

- El mantenimiento y la determinación de fallas es bastante simple.
- Es fácil agregar o remover nodos y modificar el cableado.

Desventajas:

- Si un Hub falla, la red entera falla.
- Requiere una gran cantidad de cable.

Nota: los términos físico y lógico tienen un significado especial en el marco de la tecnología de redes. Cuando hablamos de nivel físico, nos referimos al hardware, a los cables, a los componentes físicos que conectamos en una red y a las señales eléctricas que circulan por estos componentes. El nivel lógico se refiere al software, en forma abstracta a como circulan los paquetes de datos, sin tomar en cuenta la forma en que están conectados los componentes. Esta distinción es tan notable que incluso hay empresas especializadas en instalaciones físicas de redes que hacen el cableado, conectan los equipos, etc. mientras que otras empresas se dedican a configurar los equipos, instalar el software de comunicaciones, cargar los programas, etcétera.
Que tengan un gran día!
Sergio Otaño

lunes, 5 de mayo de 2008

Redes y Telecomunicaciones - 0.2

Tipos de Redes

Existen numerosos tipos de redes de telecomunicaciones. Sin embargo, desde el punto de vista del usuario, hay dos tipos básicos de redes, las redes de área extendida o WAN (del inglés, wide area network) y las redes de área local o LAN. Las redes que cubren un espacio geográfico amplio, se denominan redes remotas, redes de larga distancia o más popularmente WAN. Las redes que cubren una gran ciudad o un área metropolitana (red de área metropolitana) pueden también incluirse en la categoría WAN. Estas redes extendidas se han convertido en una necesidad para llevar a cavo las actividades diarias de muchas empresas, organismos estatales y sus respectivos usuarios. De esta forma, las WAN son empleadas por industrias, bancos, comercios, distribuidores, compañías de transporte y organismos gubernamentales para transmitir y recibir información entre sus empleados, clientes, proveedores y otras organizaciones a lo largo de ciudades, regiones, países o inclusive, el mundo.

Las redes de área local o LAN integran dispositivos de procesamiento de datos dentro de un área limitada físicamente, como una oficina, un edificio, una planta industrial u otro establecimiento similar. Las LAN se han convertido en un lugar común en muchas organizaciones para proveer las capacidades de las redes de comunicación a los usuarios finales en oficinas, departamentos y otros grupos de trabajo.

Las redes LAN utilizan una gran variedad de medios de comunicación (ver las cinco categorías de componentes) como los cables telefónicos, cables coaxiales y aun sistemas infrarrojos o de radio para interconectar las computadoras y los periféricos (impresoras, scanners, etc.). En general las LAN utilizan una poderosa PC con gran capacidad de disco llamada servidor de archivos o servidor de red que contiene un sistema operativo de red NOS que controla las comunicaciones y el uso de los recursos de la red. Por ejemplo, permite la ejecución de programas y compartir archivos entre varios usuarios en sus estaciones de trabajo y controla el acceso a impresoras láser y otros periféricos. Las LAN se pueden conectar con las WAN mediante procesadores de comunicación conformando una interfase llamada gateway (puerta de salida).

Las LAN permiten que los usuarios se comuniquen entre si electrónicamente; compartir hardware, software y datos; y sumar sus esfuerzos y capacidades cuando forman parte de un proyecto grupal. Los líderes de proyecto de un grupo de trabajo pueden programar los proyectos en ejecución compartiendo programas de administración de proyectos estableciendo el cronograma de los miembros restantes del grupo. Además de emplear el correo electrónico y, aun las llamadas directas en línea pueden tener contacto con otros miembros del grupo sin abandonar sus respectivas oficinas. La flexibilidad que ofrecen las LAN ha llevado a la adopción de las mismas por parte de empresas pequeñas y medianas y las grandes corporaciones las utilizan para las operaciones de los usuarios finales descartando gradualmente el uso de terminales.

A lo largo de este libro, pondremos nuestro foco en las redes LAN, aprenderemos gradualmente los fundamentos teóricos, la instalación y el uso de estas redes. Sin embargo, abordaremos el tema de las WAN al iniciarnos en Internet que por definición es un internetwork, es decir, una interconexión de networks que a su vez son WAN creando lo que podríamos llamar, con cierta licencia poética, un mega-network o mega-WAN.

Tabla de categorías de comunicación de datos de acuerdo a la distancia de las interconexiones.

Esto es todo por ahora.

Hasta la próxima entrega,

Sergio Otaño

miércoles, 30 de abril de 2008

Redes y Telecomunicaciones - 0.1

Comunicación de Datos: Redes Informáticas

Partiendo de las nociones básicas sobre telecomunicaciones esbozadas en la entrega anterior, podemos acercarnos a las definiciones de comunicación de datos y, por último, a la noción de redes. La comunicación de datos es un concepto mas especifico que describe la transmisión y recepción de datos mediante lazos de comunicación entre uno o mas computadoras y una variedad de terminales. Los términos teleprocesamiento y telemática pueden emplearse también ya que indican la integración de las tecnologías de telecomunicaciones y las tecnologías de procesamiento de datos.

La interconexión de computadoras, que en principio se hacia en forma pragmática, simplemente uniendo cables para transmitir y recibir datos, ha conducido en la actualidad al desarrollo de un substancial cuerpo de conocimientos teóricos y tecnológicos. Este marco conceptual permite el diseño sistemático de redes sin importar la dimensión de las mismas, llegando a la concreción del paradigma de un sistema distribuido gigantesco: Internet.

¿Que es una red informática?

Una red consiste de computadoras, llamadas nodos o estaciones de trabajo. Estas computadoras o nodos, están conectadas, o pueden comunicarse, entre sí de alguna forma. Los Nodos trabajan con software (programas) especiales que permite iniciar y administrar las interacciones de la red. Con la ayuda del software de Red, los nodos pueden compartir archivos y recursos.

Las redes ofrecen al diseñador una doble función, permiten crear una computadora virtual muy poderosa y además, permiten compartir recursos costosos. Con respecto a la primera de las funciones función podemos decir que la sumatoria de los recursos informáticos disponibles en una red permite realizar tareas de gran envergadura para las que se requeriría una computadora de gran capacidad y alto costo. La segunda función, consiste en compartir, entre los usuarios de una red, recursos como los siguientes: scanners, generadores de sonido, impresoras láser, cámaras de video, y otros dispositivos, favoreciendo el mejor aprovechamientos de equipos costosos.

Sin importar lo grande y compleja que sea una red, podemos descomponerla en cinco categorías de componentes:

- Estaciones de Trabajo o Terminales.
- Procesadores de Comunicaciones.
- Canales y Medios de Comunicación.
- Servidores o Computadora Central.
- Software de Comunicaciones.

Las estaciones de trabajo pueden ser simples terminales “bobas”, es decir, sin ninguna capacidad de procesamiento propio o computadoras de distinto grado de capacidad, con posibilidad de funcionamiento autónomo (en nuestras prácticas de laboratorio usaremos estas ultimas). En esta definición se incluyen equipos de oficina, terminales de punto de ventas o P.O.S. (cajas de supermercados), etcétera.

Los procesadores de comunicación, cuyo nombre técnico es DCE (Equipo de Comunicación de Datos) facilitan la transmisión y recepción de datos entre las estaciones de trabajo y el servidor. Dependiendo de la complejidad de una red, estos dispositivos pueden ser: módems, tarjetas de red, multiplexores y procesadores “front-end”. Estos dispositivos realizan una variedad de funciones de control y soporte en las redes de telecomunicaciones. Por ejemplo convertir datos analógicos a digitales, codificar y decodificar datos y controlar la precisión y eficiencia del flujo de comunicaciones entre el servidor y las estaciones de trabajo en una red de telecomunicaciones. En nuestras prácticas de laboratorio emplearemos tarjetas de red como procesadores de comunicaciones.

Los canales y medios de comunicación son los elementos físicos que interconectan los componentes y son los medios por los que circulan los datos. Los canales de comunicación emplean diversos medios, tales como cables de cobre, cables coaxiles, fibras ópticas, microondas y satélites para interconectar los distintos componentes de la red. En nuestras prácticas de laboratorio emplearemos cables coaxiales o cables UTP como medios de interconexión.

Los servidores, técnicamente llamados DTE (Equipo de Terminación de Datos) nombre que comparte con las estaciones de trabajo, pueden ser de diversos tamaños y clases. Estos son los dispositivos que llevan a cavo las tareas de procesamiento y administración de datos de la red. Por ejemplo, en una red de gran magnitud, una computadora mainframe (de gran capacidad y alto costo) puede servir de Host (servidor de gran tamaño) y utilizar una minicomputadora (más poderosa que una PC) como front-end (procesador de comunicaciones), mientras que en una red menor, la minicomputadora podría servir de Host y aún, en una red mas pequeña, podríamos emplear una PC como servidor. En nuestra práctica de laboratorio emplearemos una PC como servidor de la red.

El software de comunicaciones consiste de programas que controlan las actividades de comunicación y administran las funciones de la red. Las computadoras grandes (mainframes) usan un programa de software que se denomina monitor de telecomunicaciones mientras que en el ambiente de PC se utilizan los llamados NOS (Sistema Operativo de Redes) ejemplos de este ultimo son Novell Netware, Windows para Grupos de Trabajo, Windows NT, Lantastic, y otros. Nosotros emplearemos el Windows NT en nuestras practicas de laboratorio.

Hasta la próxima entrega,

Sergio Otaño

lunes, 17 de marzo de 2008

Redes y Telecomunicaciones – 0.0

Conceptos Básicos

La Enciclopedia Internacional de Comunicaciones, 1989, volumen 4, página. 201; que dice "la transmisión de señales a distancia". En términos simples podemos decir que se trata de la transmisión electrónica (o mediante luz modulada) de voz, datos, gráficos e información visual a distancia.

Esta definición es suficientemente genérica como para incluir desde las comunicaciones de datos completamente automatizadas, las empleadas por los naturalistas para estudiar el comportamiento de ciertas especies de animales (colocando un emisor de señales en un conjunto de miembros de la especie a estudiar y, mediante el uso de un receptor, analizar los patrones de desplazamiento, etc.) hasta la TV por cable en la que una estación emisora envía las señales que son recibidas por muchos espectadores (broadcasting), quienes no tienen posibilidad de devolver la señal.

La aparición de un espectro tan amplio de posibilidades esta cimentada en la integración de varias tecnologías tales como el sistema telefónico, las omputadoras, televisión, satélites y fibras ópticas, entre otras. La integración entre el sistema telefónico y la computadora tuvo un impacto doble, por un lado, los sistemas telefónicos incorporaron la tecnología digital (mejorando la calidad y la velocidad de las conexiones además de multiplicar los servicios) y por el otro, la posibilidad de interconectar computadoras a través de líneas telefónicas. Esta última aplicación se denomina con frecuencia telemática, termino que puede definirse como el fenómeno técnico-económico que surge en la intersección entre las industrias de la computación y de las comunicaciones.

Para poder analizar las distintas implicancias que obedecen en mayor o menor medida a las telecomunicaciones, es necesario establecer un criterio de categorización adecuado. Esta categorización estará fundamentada en las características funcionales de los sistemas de telecomunicaciones, que pudiendo emplear tecnologías semejantes (hay una marcada tendencia en la actualidad hacia la integración horizontal de las diversas tecnologías) su aplicación es especializada. Es por lo tanto, la función, la que permite una categorización racional para un análisis de riqueza conceptual.

Podemos, entonces, definir las siguientes categorías:

UNO A UNO

UNO A MUCHOS

MUCHOS A UNO

La categoría uno a uno corresponde a aquellos sistemas que permiten la comunicación en dos sentidos (transmisión y recepción) de dos o más participantes (nótese que los participantes pueden ser tanto humanos, como así también computadoras o sistemas de control). Los ejemplos más comunes son: el sistema telefónico, la telefonía celular, las radiocomunicaciones y las redes de computadoras, entre otras.

La segunda categoría, uno a muchos, es indicativa de aquellos sistemas que se comunican en un solo sentido, donde uno de los participantes (por ejemplo, una estación de radio) transmite señales, y muchos participantes (la audiencia) reciben las mismas. Este sistema no ofrece la posibilidad de establecer un retorno de señal por parte de los receptores. Es de destacar, que existen algunas aplicaciones experimentales en las que se puede establecer un retorno por parte de los espectadores (por ejemplo, la televisión interactiva), pero son solo experimentales y no alcanzaron ni la madurez tecnológica ni su difusión es significativa.

Por último, la categoría muchos a uno, donde muchos participantes transmiten señales y un participante es receptor de las mismas. Un ejemplo de este tipo de aplicación, son los sistemas de meteorología, en los que, una estación receptora, recibe señales de numerosos dispositivos (sondas).

Desde una perspectiva económica, el más rentable de los segmentos del mercado de las telecomunicaciones es sin duda el comprendido en la categoría UNO A UNO, es el de crecimiento más explosivo pero, como contrapartida, es donde la competencia de oferentes de servicios es mayor: satélites, fibras ópticas, cables coaxiales, repetidores de radio y telefonía celular, entre otras tecnologías, permiten establecer comunicaciones de uno a uno en un espacio geográfico que abarca todo el globo.

En próximas entregas vamos a analizar aspectos técnicos de las telecomunicaciones tales como el espectro electromagnético, ancho de banda, frecuencias, sistemas de modulación y demás.

Que tengan un gran día!

Sergio Otaño

miércoles, 30 de enero de 2008

Redes: Modelo OSI Entrega I


El Modelo de Referencia OSI de ISO

El Modelo de Referencia Sistema Abierto de Interconexión (OSI) de la Organización Internacional de Estándares (ISO) es un modelo de siete niveles o capas que describe como interconectar una combinación cualquiera de dispositivos con propósitos de comunicación. Este modelo describe las tareas en términos de estas siete capas y especifica las funciones que cada capa debe realizar.


Fig. 1 Esquema de transporte de paquetes OSI

Los principios en que se basó la Organización Internacional de Estándares para arribar al modelo de siete niveles son los siguientes:

- Un nivel distinto debe ser creado cuando se requiera un mayor nivel de abstracción.

- Cada nivel debe realizar una función bien definida.

- La función de cada nivel debe ser escogida con miras a la definición de protocolos estandarizados internacionalmente.

- Los límites del nivel deben seleccionarse para minimizar el flujo de información entre las interfaces.

- El número de niveles debe ser suficiente como para que distintas funciones no deban ser agrupadas en el mismo nivel por simple necesidad y tampoco debe ser excesivo para que la arquitectura no sea inmanejable.

Operación del Modelo

El concepto clave del modelo OSI es el de Paridad, esto implica que cada nivel jerárquico, cada capa de una máquina, se comunica con la misma capa de otra máquina. Dado que quienes establecen comunicación son capas equivalentes de diferentes máquinas, una aplicación en la máquina A se comunica con una aplicación en la máquina B. Del mismo modo, la capa de transporte de la máquina A se comunica con la capa de transporte de la máquina B.

Debido a que no existe una conexión directa entre capas pares, la comunicación debe tomar un camino indirecto. En la practica, ningún datos se transfiere directamente del nivel N de una máquina al nivel N de otra máquina (con excepción del nivel más bajo). En cambio, cada nivel pasa los datos y la información de control al nivel inmediatamente inferior, hasta alcanzar la capa física.

Observe en la Fig. 1 el esquema del modelo OSI y note que para comunicarse, la capa de aplicación de una máquina debe comunicarse con la capa de presentación de la misma máquina. La capa de presentación, a su vez, debe comunicarse con la capa de sesión, y así, hasta llegar a la capa física.

También podemos notar en la Fig. 1 que las capas agregan, al paquete recibido, elementos de control delante y detrás del paquete. Este tipo de proceso es similar al que sufren los tomates, que se almacenan en una lata, luego la lata en una caja, la caja en en un contenedor, etcétera.

En el nivel inferior se establece la comunicación física (mediante señales eléctricas) con otra máquina a diferencia de la comunicación virtual que se establece entre los niveles superiores.

Entre un nivel y el inmediato inferior existe una interfase. Esta interfase define que servicios y operaciones básicos ofrece el nivel inferior al superior. La definición clara de interfaces es fundamental no sólo para minimizar la cantidad de información que debe pasar de un nivel al siguiente, sino también para permitir el reemplazo de un nivel con uno completamente diferente (por ejemplo, el reemplazo de los cables telefónicos por canales satelitales), ya que todo lo que el modelo requiere es que la capa física de reemplazo ofrezca los mismos servicios que ofrecía el viejo a la capa superior.

Hasta la próxima entrega,

Sergio Otaño

sábado, 26 de enero de 2008

Control Remoto por Internet

Introducción

*** NOTICIA ****** NOTICIA ****** NOTICIA ****** NOTICIA ***

Debido a la demanda, puse una copia para bajar en [Nueva Dirección]:

https://sites.google.com/site/guialtsen/archivos/ServHttp.rar


Fig. 1 El Programa HTTPSERV en ejecución

Controlar las instalaciones y empleados de su empresa desde Internet. Monitorear su casa desde cualquier parte del mundo. Encender, apagar y controlar artefactos a distancia. Verificar la temperatura y otros parámetros en lugares remotos. Todas estas cosas son posibles por medio de Internet. Sensores tales como termostatos, estaciones meteorológicas, cámaras de video y sistemas robotizados (actuadores) son ejemplos de dispositivos de control vía Internet.

Serhttp.exe (o HTTPSERV) es un programa que desarrollé para demostrar la posibilidad de controlar cualquier tipo de dispositivo a través de Internet. Luego de ver numerosos equipos costosos que combinan software y hardware para realizar distinto tipo de tareas en forma remota, se me ocurrió que en realidad, se puede demostrar perfectamente la posibilidad de controlar y de recolectar datos sin gastar un centavo.

Fig. 2 Sensores, cámaras de video y robots controlados por Internet

La idéa detrás de este proyecto fué la de realizar un experimento significativo, es decir, que tenga relevancia en el terreno de la realidad y no una simple simulación imaginaria de un hecho. Además, como su destinatario son los alumnos, se trata de no tener que invertir en componentes para realizar las experiencias. Por eso vamos a trabajar con un esquema que permite comandar en forma bidireccional un puerto COM.

El puerto COM de la PC permite que conectemos dispositivos tales como cámaras, sensores, balanzas y actuadores que permiten encender y controlar cualquier clase de aparato. Todo depende de la cantidad de $ que podemos disponer para ello.

Esto significa que todo lo que un programa tiene que hacer es enviar un dato al puerto COM para virtualmente comandar cualquier aparato y que pueda leer un dato del puerto COM para conocer el estado de cualquier aparato conectado en dicho puerto. Esto significa que el programa debe “comprender” el protocolo RS232.

Eso en lo que atañe al puerto COM. Sin embargo el programa debe también reconocer los protocolos TCP/IP y HTTP para poder recibir instrucciones por medio de Internet. El servidor HTTP hace precisamente esto.

Al ejecutar el programa se presenta una pantalla con 7 elementos que nos permiten conocer su estado.

a) El botón que permite seleccionar el puerto COM1 al COM4.

b) El botón que permite iniciar y detener el servidor.

c) Los elementos gráficos que dan a conocer el estado del puerto seleccionado como del funcionamiento del loopback.
d) El puerto de enlace que esta preestablecido en 80 (aunque se puede cambiar por otro) que es como ya deben saber el puerto correspondiente al protocolo HTTP.

e) IP Local nos indica la dirección IP del servidor (la máquina en la que está funcionando). En caso de que estemos conectados a Internet nos mostrará la dirección IP de nuestra conexión.

Ya es suficiente introducción, la mayoría de los conceptos teóricos los pueden encontrar tanto en un texto sobre comunicación de datos o sobre el protocolo TCP/IP específicamente.

Test Run del Programa

Realicemos un recorrido del programa para probar su funcionamiento:

1) Arrancamos el servidor

Fig. 3 El programa luego de “darle arranque”

2) Si todo va bien, se verá el puerto de color verde, en el título de la ventana dirá “Habilitado” y la hora y en IP Local dirá cual es la IP de nuestra PC. En este caso, como tengo banda ancha, aparece la IP que hace varios meses tengo asignada por Fibertel.

3) Ahora abrimos el explorador de Internet y le ingresamos la dirección IP (en mi caso ingreso esta dirección: 200.126.252.9)

Fig.4 Acceso a la “página” del servidor

Si están al día con el material de estudio ya comprenderán que se trata de una dirección IP de uso EXTERNO o PUBLICA y es propia de MI máquina. Si se conectan a Internet por medio de una conexión telefónica, tendrán diferentes direcciones cada vez que se conecten. Ahora bien, como la dirección IP PRIVADA de mi máquina es 192.168.0.1 también podría acceder a través de ella. Y por supuesto que también podría utilizar 127.0.0.1 que es el LOCALHOST.

4) Probamos sin el LOOPBACK, es decir con el puerto COM abierto.


Fig. 5 Prueba de Loopback


Escribimos hola o cualquier texto que se nos ocurra y obtenemos como respuesta:

ENVIADO : 123456789
EL PUERTO COM NO RESPONDE

Esto significa que todo funcionó correctamente ya que el servidor es el que dio esa respuesta.

5) Muy bien, ahora vamos a probar el LOOPBACK.

Conectamos el PIN 2 o RXD o recepción con el PIN 3 o TXD o transmisión. El principio de funcionamiento es bien simple y responde a la capa física del modelo OSI. Se trata de señales eléctricas que salen del puerto COM a través de la línea TXD con rangos de voltaje

Señal = 0 > +3.0V
Señal = 1 < -3.0V


Debido a esta conexión lo que sale por la línea de transmisión o TXD es inmediatamente recibido por la línea de recepción o RXD.

Donde dice Texto escribo: hola e inmediatamente recibo hola. Esto significa que el loopback funcionó correctamente.

Fig. 6 Verificación del Control Remoto

Observen que esta vez puse 192.168.0.1 como dirección IP.

Fig. 7 El Servidor muestra el loopback activo

Además pueden ver que el indicador de Loopback se puso de color verde.

Experiencias prácticas a realizar

Además de reproducir las experiencias detalladas antes, se recomienda fervorosamente a los alumnos que realicen las siguiente experiencias:

1) La experiencia práctica más simple consiste en reproducir el experimento tal como se expuso.
2) Luego variar las direcciones, la dirección de LOCALHOST o 127.0.0.1
3) Si dispone de una IP privada pruebe realizar la conexión por esa vía.
4) Pruebe conectarse a Internet, activar el servidor HTTP y desde otra dirección acceder a la máquina remota.
5) Otra prueba que se puede realizar es la de modificar el puerto, por ejemplo le asignamos 1000 al puerto del servidor. Pero en este caso, para acceder al servidor debo escribir la siguiente dirección: http://200.126.252.9:1000/
6) Para aquellos que realmente quieren experimentar en forma completa los servicios de Internet pueden incluso obtener una dirección DNS gratuita en el sitio http://freedns.afraid.org/ En mi caso, asigné el DNS regi.wftp.org a la dirección IP 200.126.252.9 que tenía asignada en ese momento de manera que puede acceder al servidor por medio de una dirección. El servicio permite cambiar la IP en forma rápida por lo que se adapta perfectamente para cualquier usuario que dispone de acceso a Internet y no tiene IP fija.

Fig. 8 Prueba Remota por medio de DNS

7) Finalmente, prueben algunas direcciones de Internet en la que invirtieron algunos o muchos dólares y observen el funcionamiento del control con dispositivos reales.

Enlaces de Interés

Los enlaces de abajo corresponden a dispositivos que se pueden controlar por Internet, el primero es muy interesante ya que es un brazo robotizado con 6 grados de libertad que permite acomodar objetos en un tablero.

http://telerobot.mech.uwa.edu.au/Telerobot/index.html
http://www.cs.cmu.edu/afs/cs.cmu.edu/Web/People/Xavier/
http://www.hellspark.com/dm/index.html
http://ranier.hq.nasa.gov/telerobotics_page/realrobots.html


Que tengan un gran día!

Sergio Otaño