Una pregunta sobre los puertos RS232.

Started by Erkosone, December 02, 2009, 06:55:15 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Drumpi

Yo trabajé en su día comunicando un sistema embebido para obtención de datos con un PC windows a través del puerto serie, y el manejo era muy parecido a Linux: escribir y leer sobre una variable.
Cuando escribíamos se enviaba el byte al dispositivo, y obteníamos respuesta en otra variable, y con este sistema tan sencillo podíamos configurar la velocidad de transmisión, los datos que queríamos recibir, etc, porque primero le indicábamos que le mandábamos un comando (enviamos un 0), luego el comando, y despues los datos que fueran necesarios...
Con Linux era aun más sencillo, porque despues de OPEN, podíamos leer los datos que llegaban con READ (datos que se iban almacenando en un buffer de forma transparente) y mandarlos con WRITE...

Pero claro, esto es a muy bajo nivel, y conociendo el HW específico, por lo que tenemos que saber el protocolo del aparato, pero para eso se crearon los estandars ¿no?
A mi me gustaría conocer el protocolo USB creando un programa para meterlo en la GP2X, que leyese la info que manda el HOST (el PC al que lo conecte) y se la mandase a un mando (SLAVE) para oir su respuesta... vamos, oir y reenviar.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Erkosone

Animanegra escrivió:

La verdad es que yo solo veo util el tema de puerto serie o paralelo para cosas mas pachaneras y hechas por nosotros mismos. Si la idea es la de manejar distintos aparatos optaria por una libreria de comunicacion usb. Eso si, la programacion serie o paralela es relativamente sencilla. pero el usb... a mi me parece casi magia.
Esque el uso de serie ya es solo para hard casi arcaico.

El caso es que existen y existiran miles.. millones de posibles aplicaciones para el puerto serie, el paralelo ya no tanto.. pues es jurasico y poco difundido en informatica.. pero el puerto serie sirve por ejemplo para:     Conectar el puerto serie de nuestros routers, hubs, swicth´s y poder configurarlos por telnet, para poder leed datos de un aparato de lecturas, por ejemplo un osciloscopio, espectrometro, generador de frecuencias portadoras con modulacion seteable, para configurar cuaquier telefono mobil e incluso husarlo y transperiri info, conectarlo a nuestra red, pasarle o leer datos de el, para comunicarnos con maquinas viejas..

El caso es que existen empresas "el 99,9 periodico %" que gastan miles de millones en tecnologia que deve durar muchos años, y por una razon muy obbia, que sond e hace años.. son configurables por puerto serie..

Robots con servomotores por doquier.. que sus controladoras se configuran por puerto serie..


In finidad de casos asi en la industria y en casa.. y en mi caso tengo como unos miles de millones invertidos en tecnologia laser para el guiado de aeronaves al llegar al aeropuerto de barcelona... van por puerto serie.. y no voi a cambiar las maquinas para que tengan el maldito usb hehehe..

Ademas de toda la funcionalidad añadida a la imaginacion de cada uno para poder crear  hardware que trabaje por puerto serie..

En casa de todos seguro que hay algun aparato que tiene el puerto serie para alguna cosa..

El caso es que el puerto serie, ahunque queramos negarlo, esta vigente en todos sitios..

josebita

Acabo de ver que las máquinas de billetes del cercanías de Madrid tienen al lado un pequeño panel con un teclado y un pequeño display que se usa cuando se paga con tarjeta.
Pues por lo que he podido ver, se comunica con el resto del sistema por RS232... :)

osk

Hola, perdonad que insista, pero cada vez veo más útil que Bennu tenga alguna capacidad para comunicarse con el exterior vía el puerto serie. No sé si conocéis Scratch (http://scratch.mit.edu), es un lenguaje de programación para ¿niños? con el que se pueden hacer películas tipo flash y también videojuegos. Bien, pues tiene una librería llamada Catenary (http://scratchconnections.wik.is/User:Chalkmarrow/Catenary) que permite comunicarlo con Arduino, de manera que si éste tiene algún sensor, el programa Scratch pueda reaccionar ante él. Incluso sin esta librería, se puede utilizar un Nunchuck con Scratch (http://scratchconnections.wik.is/User:Sburlappp/Emulating_a_ScratchBoard_with_an_Arduino). Por otro lado, el propio Arduino es capaz de comunicarse con Processing -siempre vía comunicación serie- (http://www.processing.org), el cual es un lenguaje de programación especialmente pensado para artistas, donde generar gráficos es tan simple como llamar a funciones tipo circle(), rect(), etc.
En fin, que viendo las posibilidades que se abren a una plataforma hacia multitud de otros usos solamente con la capacidad de recibir y enviar bits en un determinado orden, creo que merecería la pena ver si se puede adaptar algún módulo de alguna librería que haya ya para estos menesteres, que las debe haber a patadas.
He dicho.
Finit.

josebita

Yo lo miraría, pero mi ordenador no tiene un puerto serie...

osk

...y ¿directamente pasando del puerto serie y programando para el puerto usb? Por ejemplo haciendo un wrapper de libusb:
http://www.libusb.org

josebita

USB también podría ser útil para un uso similar, aún así hay MUCHOS equipos que funcionan por RS232.
Por poner un ejemplo, en la universidad colaboro con uno de los departamentos y muchos de los equipos de adquisición de datos (que vienen de sensores tipo acelerómetros) funcionan a través del puerto serie.
Pero no sólo eso: casi todos los routers, placas base y equipamiento electrónico en general llevan un puerto serie, aunque muchas veces no se encuentra disponible para el usuario final.

Aún así ambas cosas parecen muy interesantes. Puede que en algún momento le eche un ojo.

Drumpi

A eso le podemos sumar que el estandar bluetooth añade un modo de funcionamiento que simula un puerto serie... y la verdad es que me iría de perlas un módulo para obtener datos via serie para el proyecto, pues dada la capacidad para manejar gráficos de bennu me simplificaría mucho la investigación (necesito ver las formas de onda).

De todas formas, creo que ya lo dije anteriormente: en Linux es un simple wrapper a las funciones open, close, read y write del sistema sobre los ficheros de dispositivos correspondientes (para aquellos que sepan hacer módulos).
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

osk

He visto que hay una librería para comunicarse via Usb específicamente con determinados microcontroladores. Lo malo es que hay varios bindings, pero no para C, sólo para C++ y otros. Es Firmdata: http://www.firmata.org

osk