Una pregunta de comunicación con luz visible sobre una secuencia de preámbulo

3

Tengo una pregunta sobre el preámbulo y el interruptor de preámbulo.

Estoy implementando una comunicación de luz visible simple usando arduino. He utilizado un esquema de codificación de Manchester. Si bien he entendido que se requiere un preámbulo para tener una sincronización en el nivel de palabra / paquete ya que la codificación Manchester solo es útil a nivel de bit y no a nivel de palabra o paquete, no estoy seguro de qué propiedades debe tener el preámbulo. .

En este punto, he intentado enviar un mensaje simple como "Hello World" usando un preámbulo de 10101010. Envié esto sin entender mucho una secuencia adecuada para el uso como preámbulo. He enviado dos preámbulos como ese, un "interruptor de preámbulo" y un inicio de byte de cuadro antes de la transmisión de datos reales, finalizando todo el cuadro con el ETX (Fin de cuadro)

Justo antes de enviar el STX (inicio del cuadro), para el interruptor de preámbulo seleccioné 00101010 con solo el último bit diferente.

¿Podría alguien explicarme la elección de un preámbulo adecuado y también si tal interruptor de preámbulo es necesario porque ya hay un inicio de byte de trama (0x02 en mi caso) antes de que se transmitan los datos reales?

Gracias.

Edite los dos bits adicionales en el preámbulo para convertirlo en un byte.

    
pregunta Anne

2 respuestas

2

Los preámbulos se utilizan para la sincronización a nivel de bytes en la capa Ethernet, que es básicamente un protocolo orientado a bytes, a diferencia de HDLC un protocolo orientado a bits funciona en marcos / paquetes de tamaño byte.

En todos los protocolos desarrollados, la sincronización de los bits, bytes y paquetes sigue siendo un tema a tratar y se han desarrollado varios algoritmos para una eficiente generación de sobrecarga. En los protocolos orientados a bits se utilizan indicadores que se representan como 01111110 secuencia de bits que ayuda a identificar el inicio de la trama, cuando esta secuencia se identificó en la carga útil, fue reemplazada por el receptor. Para obtener más información vea relleno de bits .

En el caso de los protocolos de relleno de bytes, de modo que el preámbulo de Ethernet se usa para sincronizar los bytes, puede surgir el mismo problema para el relleno de bytes, donde también pueden aparecer datos como el patrón del preámbulo dentro de la carga útil, para evitar este tipo de algoritmos. se utilizan como indicado , y los bytes especiales de la ESC se rellenan cuando la bandera o la ESC adicional aparecen en los datos.

Teniendo en cuenta su caso, depende del tipo de compatibilidad que desee su sistema, puede diseñar un preámbulo variable, pero la idea principal será limitar su aparición, es decir, usar un patrón menos probable que reduzca las veces que el receptor encontrará datos tan similares a los de tu preámbulo.

Es una llamada puramente dependiente del sistema, puede simplificar su diseño, si sus datos están limitados al contexto alfabético y numérico, entonces cualquier carácter especial en ASCII extendido se puede usar como preámbulo, pero si involucra tipos de datos complejos y formatos. Luego, por supuesto, deberá generar un código de preámbulo de manera inteligente, y también se sugiere ir según los estándares IEEE.

    
respondido por el MaMba
1

NEC creó un protocolo de transmisión por infrarrojos para sus controles remotos de TV. Aquí está su formato de paquete:

  • una ráfaga de impulsos inicial de 9 ms (16 veces la longitud de la ráfaga de impulsos utilizada para un bit de datos lógicos)
  • un espacio de 4.5ms
  • la dirección de 8 bits para el dispositivo receptor
  • el inverso lógico de 8 bits de la dirección
  • el comando de 8 bits
  • el inverso lógico de 8 bits del comando
  • una ráfaga de impulsos final de 562.5µs para indicar el fin de la transmisión del mensaje.

Es difícil decir qué es exactamente lo que necesita sin entender todos los factores de su sistema. Espero que esto ayude.

    
respondido por el petEEy

Lea otras preguntas en las etiquetas