Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
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
Te has mirado el protocolo I2c ??
Hola seinkraft,
Por qué no pruebas empleando algún microcontrolador como el PIC16F873?. De esta forma podrías emplear un protocolo estándar como el RS232 que lleva integrado. Si quieres mandar una secuencia de datos asíncrona a muchos receptores, por ejemplo por IR, sólo tendrías que pasar a IR los bits que envíe en emisor por su línea de salida. Los receptores los recogerían por sus líneas de entrada.
Saludos
Si, ese es uno de los problemas, el protocolo I2c usa 2 "canales" uno para enviar la señal de ck y otro para los datos.
En el caso del rs232 es asincrónico y ahí surge el problema. En el supuesto caso que el receptor capte la señal, pero una vez que ya hubiera comenzado la tomaría entrecortada o con una perdida de datos inicial.
Lo que yo necesito o deseo es poder realizar la transmisión de datos sincrónica utilizando un único canal por eso planteo el "encabezado".
Saludos.
Has pensado en usar interrupciones?
Imaginate que usas como encabezado un 1111111...de X duracion. cuando los receptores esten inactivos se mantendran a la espera de que por el canal llegue algun 1, esto activa la interrupcion que empezara a recoger datos en el momento en que el canal pase a nivel bajo. de esta forma tu bloque de informacion se enviaria asi:
1111111111111(señal de sincronia)0(este es el momento en que se acaba el pulso de sincronia)11010001011000101111011....(tu informacion)110010110101(al final deberias poner algunos bits de seguridad para asegurarte de ke la informacion se ha transmitido correctamente, vease paridad, etc)
basicamente seria eso, luego podrias hacerlo un poko mas sofisticado poniendole longitudes fijas a los bloques de informacion, o una señal de fin de transmision, o haciendo mas precisa la señal de comienzo al añadirle subidas y bajadas de bandera para las interrupciones...en fin, currartelo un poco