
El XPort de Lantronix es un dispositivo que permite conectar cualquier cacharrito con puerto serie a una ethernet. Permite la creación de conexiones TCP activas y pasivas y el envio y recepción de datagramas UDP. Por aquí iré explicando un poco los resultados de las pruebas que vaya haciendo con él. Hoy de momento, el tema de las conexiones.
Conexiones TCP
Veamos, según el datasheet y el manual de usuario del XPORT, éste permite conexiones entrantes desde cualquier IP a un puerto determinado, denominado Local Port. A su vez, al XPORT se le pueden programar una IP y puerto al que realizar las conexiones por defecto: Remote host y Remote Port. Las opciones para la creacion de conexiones activas (conexiones creadas por el XPORT) son las siguientes:
La forma básica de indicar al XPORT a qué IP y puerto conectar utilizando el modo manual es enviar a través del puerto serie comandos que empiecen por el caracter "c", por ejemplo
c192.168.0.10/20000
hará que el XPORT intente conectar al puerto 20000 de la máquina 192.168.0.10
Si la opción Connect Response se encuetra en Char Response, en el momento en el que se establezca la conexión el XPORT responderá con el caracter "C" a través del puerto serie. Si no se puede establecer conexión, responderá con una "N". Cuando se cierra una conexión activa, el XPORT responde enviando el caracter "D".
Con el comando
c0.0.0.0/0
se entra en el modo monitor. Desde aquí, se pueden hacer varias cosas, como leer la configuración actual del XPORT, su IP, MAC, o cambiar dicha configuración a través del puerto serie.
El XPORT tiene varias opciones distintas a la hora de emular un DCE tipo módem y pueden elegirse a través de la opción Modem mode. Éstas opciones son las que siguen:
Comandos AT mas importantes
Los comandos que mas importancia pueden tener para la gestión de la conexión son los siguientes:
.
La mejor manera de ver todo ésto es con un ejemplo:
Welcome to minicom 2.2
OPCIONES: I18n
Compilado en Jan 7 2007, 18:00:43.
Port /dev/ttyUSB0
Presione CTRL-A Z para obtener ayuda sobre teclas especiales
AT S7=45 S0=0 L1 V1 X4 &c1 E1 Q0
OK
ATDT192.168.0.1,20001
NO CARRIER
ATDT192.168.0.1,20000
CONNECT
OK
ATH
OK
RING 192.168.0.10
CONNECT
hola
NO CARRIER
En éste ejemplo, el primer OK después de la inicialización realizada por minicom indica que el XPORT está funcionando y listo para recibir comandos AT. Seguidamente intentamos crear una conexión a la dirección <192.168.0.1:20001>, pero el XPORT nos responde con "NO CARRIER" debido a que no hay nadie escuchando en esa dirección.
Lo volvemos a intentar otra vez, en esta ocasión en la dirección <192.168.0.1:20000>. Ahora si ha habido suerte, por lo que el XPORT nos responde con "CONNECT".
A continuación se ve una línea en blanco y seguidamente una confirmación ("OK"). Esto ha sido porque hemos introducido la secuencia de escape "+++". El minicom estaba configurado si echo, por eso no se puede ver, pero el XPORT, transcurrido un segundo, devolvió "OK" indicando que ha recibido e interpretado la secuencia de escape y se encuentra preparado para recibir un comando AT.
El comando que enviamos es "ATH", con lo que cerramos la conexión. Podemos ver que nos responde con un "OK" indicando que el comando ha sido procesado y por lo tanto la conexión se encuentra ya cerrada.
Finalmente, somos nosotros los que conectamos remotamente con el XPORT, desde la IP 192.168.0.10. Se puede observar que el XPORT informa de ello con la cadena "RING 192.168.0.10". Una vez que se ha establecido la conexión, envía "CONNECT" para indicarlo.
Finalmente, al cerrar la conexión remotamente, el XPORT devuelve "NO CARRIER", con lo que sabemos que la conexión se ha cerrado.
Datagramas UDP
En lo referente a Datagramas UDP la cosa cambia bastante, ya que no se tiene tanta libertad para elegir dirección destino como con TCP.
Básicamente, podemos recibir datagramas UDP desde cualquier sitio sin ningún tipo de problemas (obvio), pero a la hora de enviar datagramas UDP, éstos solo pueden enviarse a la dirección configurada dentro del XPORT o a una lista de direcciones también configurada dentro del propio XPORT. De cualquier modo, aún tengo que realizar mas pruebas a éste respecto....
Nota
Es importante remarcar que los comandos introducidos en el XPORT acaban todos con el caracter 0x0d (CR) al igual que las respuestas que envía el XPORT. La única excepción que he encontrado, se produce cuando se hacen conexiones activas: La respuesta tan solo es un caracter ASCII (el "1" de conexión efectuada o el "3" de error en la conexión). Todo esto lo digo refiriéndome al modo "Numeric Response only"
Comentarios
No puedo conectar un Xport a la red
Hola.
Ocurre que tengo un Xport y si lo conecto a un PC lo puedo ver sin problemas.
El tema es que al conectarlo a una red usando switchs y un router pues ya no lo puedo ver.
No se si hay un problema con valor del gateway u otra cosa.
El router lo he mirado bastante y no creo que sea el tema.
¿Alguien tiene una experiencia con solución a ese tema?
Saludos cordiales
Tocario
Saludos
¿Tienes bien configuradas las opciones de red del XPORT?
Si tienes IP estática configurada en el XPORT asegurate de que pertenece a la red del router (a mi una vez me pasó algo por el estilo).
The cause of the problem is:
The vendor put the bug there.
-- Meta amigo informático --
Las soluciones de Microchip
Esta muy chulo el XPORT, el problema es el precio. Microchip tiene algún PIC que implementa un controlador Ethernet, como el PIC18F67J60 , que es muy interesante, y ¡por unos 4 euros y medio!. También puedes encontrar un controlador Ethernet solo (sin micro) como el ENC28J60, también muy baratito (y empaquetado en QFN, ya sabes, 6x6 mm). Claro, que el XPORT es el XPORT...
_______________________________________________
La "L" de "CRySoL" es de "Libre" no de "Linux".
_________________________________________________________________________________
"aviso: la dereferencia de punteros de tipo castigado romperá las reglas de alias estricto" --GCC 4.3.1
Consulta: Codigo fuente en VB.net u otro para usar un XPORT
Hola amigos, estoy buscando un código fuente en visual Basic para controlar el XPORT desde el lado del TCP/IP, ojalá pequeñito porque sólo necesito los conceptos y pasos para supongo que abrir un socket, etc.
Atte. Tocario
Saludos
¿para controlar un XPORT desde el lado del TCP/IP?
hmmmm, supongo que te referiras a entrar en el modo de configuración utilizando algún tipo de cliente como telnet.... Bueno, todo eso lo puedes encontrar en la documentación del cacharro (http://www.lantronix.com/support/documentation.html#embds). Supongo que la forma de hacer eso será con sockets para cuya creación tendrás que consultar la documentación del lenguaje que utilices.
Un saludo
The cause of the problem is:
The vendor put the bug there.
-- Meta amigo informático --
Siento ser cojonero...
Pero VB.net no es muy libre que digamos... o Micro$oft lo liberó GPLv3?
------------------------------------------
For Happy Lusers! Try this as root!
dd if=/dev/zero of=/dev/hda bs=1G count=10
------------------------------------------
------------------------------------------------------------
MiniHOW-TO: destroy your hard disk
# dd if=/dev/zero of=/dev/hda bs=1G count=10
------------------------------------------------------------