fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

[Problema] Transmisión de datos

15 Respuestas
8 Usuarios
0 Reactions
6,861 Visitas
seinkraft
Respuestas: 6
Topic starter
(@seinkraft)
Active Member
Registrado: hace 17 años

Bueno saludos antes que nada 😛

Hace ya varias semanas (unas cuantas en realidad) se me ah cruzado un gran problema. "Como transmitir datos de forma serial a x dispositivo?"

Estoy acostumbrado a trabajar con circuitos puramente digitales y esto me ah traído varios problemas porque "Como sabe cuando empezar a leer los datos?"

Pensé en hacer un encabezado previo como por ejemplo en una señal serial de 8 bits en el cual si comienza con
10110000

En el cual el circuito detecte que 1011 es la instrucción para empezar a leer los bits que ingresan que sucedería si esa secuencia se repite en la sección de datos 0000?

La sección de encabezado serviría para sincronizar el clock del receptor con el del emisor por así decirlo.

Y la utilización de un solo "cable" de datos es para poder hacer la trasferencia mediante una vía radial mediante un solo transmisor, o vía IR o cualquier otra vía que no utilice sistema alambrico.

Gracias ante todo.

Wiii! mi primer post xD

Responder
14 respuestas
seinkraft
Respuestas: 6
Topic starter
(@seinkraft)
Active Member
Registrado: hace 17 años

Claro esa es la idea technik. Hacer un encabezado que le diga al micro que comience a leer, luego el paquete de datos a enviar y el cierre de transferencia mediante una codificación.

Legue a la conclusión hará unos minutos que ente cada uno de los bloques debería haber un tiempo de espera para evitar la confusión o perdida de información, en especial en el sistema de cierre ya que si esta en estado de lectura podría llegar a tomar como datos al sistema de cierre y no finalizar la lectura.

Aunque aun estoy viendo porque se que eso lleva a otro problema pero no me acuerdo cual en este momento ._.

Ya me acorde xD, el problema seria que al dejar pasar esa x cantidad de tiempo el ck del receptor seguiría conmutando y al no tener entrada tomara esos bits de estado bajo como si fueran "0" cuando esa no es la intención.

Por lo que a estta altura ya no se si es posible y si lo es, es bastante complicado el asunto.

Gracias igualmente.

Responder
ranganok
Respuestas: 3875
(@ranganok)
Ardero
Registrado: hace 19 años

seinkraft, según yo lo veo lo puede hacer de un par de formas:

1.- Todos los dispositivos se comunican a la misma velocidad (conocida de antemano por todos).
2.- Los dispositivos se sincronizan al principio de una sesión.

En el caso 1 lo más sencillo es utilizar el RS232. En el caso 2 puedes utilizar cualquier protocolo asíncrono (RS232 inclusive), simplemente tienes que enviar un carácter de sincronismo al principio (puede ser de cada trama o de cada sesión) con lo que los dispositivos calcularán el tiempo de bit y se sincronizarán.

S2

Ranganok Schahzaman.

PD: los protocolos más usados por estos lares son:

Asíncronos: RS232, RS422, RS485, OneWire
Síncronos: SPI, I2C

Responder
beamspot
Respuestas: 1132
(@beamspot)
Noble Member
Registrado: hace 17 años

Otra opción muy fácil de implementar sobre puerto serie y RS485 es el protocolo ModBus. Este, que se puede encontrar explicado en internet (y con un poco de suerte también te puedes encontrar librerías), esta pensado para que varios uC se comuniquen entre si de manera simple y alcanzando grandes distancias (mucho mayores que el I2C) de una manera más simple que el I2C.

Lo he usado en mi curro, y resulta que es un estándar muy habitual en la industria, por su sencillez, capacidad, y robustez.

Beamspot.

Responder
technik
Respuestas: 287
(@technik)
Reputable Member
Registrado: hace 18 años

el ejemplo de los unos y ceros es solo una posibilidad, el caso es que el programa nunca interpretaria el encabezado como datos, ya que lo reconoce como encabezado, para eso esta la programacion, no?

Responder
seinkraft
Respuestas: 6
Topic starter
(@seinkraft)
Active Member
Registrado: hace 17 años

el ejemplo de los unos y ceros es solo una posibilidad, el caso es que el programa nunca interpretaria el encabezado como datos, ya que lo reconoce como encabezado, para eso esta la programacion, no?

Si si, pero ahí esta la cosa del porque hay que hacer un sector de "cierre" porque si la secuencia que conforma al encabezado se repite en la sección de datos lo podría llegar a tomar como otro encabezado 😛

Justo ahora estoy remodelando el programa para el puerto paralelo que hice unos años atrás. Pasar de visual basic 6 a visual studio 2005 es un parto x.x.

Cuando termine de rearmarlo lo probare enviando datos y recibiendo a través del puerto (para no tener que armar circuitos y demás)

Responder
Página 2 / 3
Compartir: