10 votos

Evitar la confusión entre la entrada y un cero en binario?

Supongo que soy la transmisión de datos a través de FM donde 0 es 2Hz y 1 es de 4 hz. El transmisor es la transmisión de 2Hz cuando no hay ninguna entrada. Si me alimenta el recibido binario a un puerto UART de un microcontrolador, ¿cómo sería el microcontrolador diferenciar entre datos y 0?

Esto se vuelve relevante cuando la transmisión de los caracteres ASCII, por ejemplo. Supongamos la siguiente cadena:

01000110 01101111 01101111 01100010 01100001 01110010

Ya he añadido los espacios, podríamos traducir esto:

Foobar

Pero para una máquina de la cadena tendría este aspecto:

010001100110111101101111011000100110000101110010

Cómo iba a crear "espacios" para que no te caracteres ASCII jodido cuando usted está recibiendo binario?

17voto

Mattias Johansson Puntos 595

Si usted alimenta a algo a un puerto UART de un microprocesador debe seguir el protocolo de comunicación UART si desea que el microprocesador para entender lo que usted está alimentando. Necesita integrar cada uno de los ASCOS personaje en una UART paquete que contiene un bit de inicio, un bit de parada y, posiblemente, un bit de paridad, mucha más información está disponible en la UART de la página de la Wikipedia.

Cuando no está enviando el autobús está inactivo, y se mantiene en una lógica de alta del estado. Cuando usted está comenzando la transmisión de un paquete el primer bit es siempre lógicamente baja. Este es el bit de inicio. Sigue a continuación, ocho bits de datos y, a continuación, un bit de parada que es lógicamente alta. El microprocesador se sabe cuando el siguiente bit es llegar ya que sabe que la velocidad del bus que se han configurado. Por lo tanto, es posible transmitir, por ejemplo, dos ceros uno al lado del otro. Tanto el microprocesador y la unidad de transmisión para el microprocesador necesita ser configurado con la misma velocidad de transmisión, la paridad y el número de bits de parada.

6voto

jns Puntos 449

Hay un montón de técnicas para ello. Usted puede desear mirar en la codificación Manchester o códigos NRZ. O 8b/10b de codificación, que los mapas de cada 8 bits de datos a un 10 bits de la secuencia que permite la recuperación del reloj, de corrección de errores, y en especial de "la coma" de símbolos que pueden ser utilizados para detectar el inicio y el final de una transmisión.

5voto

Simon Puntos 41

Todos los caracteres ASCII de 8 bits de ancho, se puede ver que en una tabla ASCII. Los valores HEXADECIMALES de los caracteres ASCII no ir más allá de FF (1111 1111)

UART puede recibir más de un byte de datos (8bits) al mismo tiempo, también junto a 8 bits de datos hay STOP y START bits, PARIDAD y un par más, que se puede ver en la imagen que se muestra a continuación, y que juntos forman UART paquetes de comunicación.

enter image description here

Así que cuando el envío de caracteres ASCII a UART, usted está enviando uno por uno, y eso es lo que la cadena está hecha. Usted ya sabe que la cadena es simplemente una matriz de caracteres.

0voto

Ronan Paixão Puntos 101

El protocolo UART, como Mattias explicado, es un tiempo-basada en protocolo asíncrono. Lo que define los límites entre los bits es el tiempo que toma desde el comienzo del bit de inicio. Por lo que el microcontrolador se "muestra" el bit (N+half)/baudrate segundos después de que el bit de inicio comienza. La mitad de bits es sólo para la muestra en el medio de los bits de manera que pueda tener la mitad de un poco de diferencia en el tiempo entre el receptor y el transmisor (recuerde que las diferencias son acumulativos y en el peor de los casos ocurre en el último bit de cada marco, que es generalmente, pero no siempre, de 8 bits de ancho, dependiendo de la configuración). La clave para hacer que funcione es tener el receptor y el transceptor con la tasa de baudios tan cerca como sea posible.

Así, el microcontrolador cuenta el tiempo entre cada bit para saber donde está cada bit dentro de un marco. El siguiente personaje tendrá que ir al siguiente fotograma. Cuando cada uno de los extremos de la estructura, el microcontrolador se empieza a escuchar el siguiente fotograma de forma automática, de modo que cuando el siguiente bit de inicio viene ya sabe que debe comenzar un nuevo marco. Eso es cómo los personajes están separados.

Además, añadiré que en realidad no necesita de dos frecuencias para transmitir a una UART-recepción del microcontrolador. Usted puede usar una sola frecuencia como OOK en lugar de las dos frecuencias como FSK. Tiene una mayor eficiencia espectral y los circuitos son mucho más sencillo, ya que sólo necesita una onda portadora switcher como transmisor y un único detector de frecuencia como receptor, casi como código morse. Recuerde que, en general, para utilizar los transportistas con frecuencias que son mucho mayores que la velocidad, de lo contrario el más simple de los circuitos no funcionan correctamente.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X