Uart para Atmega32

0

¿Se puede implementar la codificación de Manchester usando UART?

Si no, qué tipo de modulación puedo usar, usar UART en el Atmega32. Estoy haciendo un sistema de comunicación de luz visible. Si utilizo el UART de forma normal, me da un parpadeo del LED, porque hay largas cadenas de cero y uno. Quiero usar UART porque me resulta difícil diseñar mi propio protocolo de comunicación. Pero necesito encontrar una manera de modular mis datos usando UART.

    
pregunta Joey

3 respuestas

4
  

Si utilizo el UART de manera normal, parpadeo el LED

Si la tasa de datos no es un problema y solo estás tratando de lidiar con el parpadeo visible, podrías considerar enviar dos bytes en lugar de uno.

Es decir, en lugar de

transmitbyte(x)

Hacer

transmitbyte(lo(x));
transmitbyte(hi(x));

Donde lo(x) intercala los 4 bits inferiores con sus inversos, como Manchester. Así que los bits hgfedcba = > DdCcBbAa , donde A es inverso del bit a ; hi(x) toma hgfedcba = > %código%. Así obtendrá una transición cada poco tiempo. Si el receptor lo desea, puede verificar la consistencia de cada byte.

Si no tiene otra forma de permanecer sincronizado, envíe HhGgFfEe y lo(x)&0x7f .

Verá que si transmite de forma consecutiva en 8N1, teniendo en cuenta los bits de inicio y parada, tendrá el mismo número de 1s y 0s en la salida, uno de los principales beneficios de Manchester codificacion Además, tiene una transición garantizada dentro de dos bits.

0DdCcBbAa10HhGgFfEe1

O si usa el bit alto para decir qué mordisco es, entonces todavía tiene 1s y 0s iguales, y una transición garantizada dentro de tres bits.

00dCcBbAa101hGgFfEe1
    
respondido por el jonathanjo
1
  

¿Se puede implementar la codificación de Manchester usando UART?

Normalmente no.

  

Si no es así, ¿qué tipo de modulación puedo usar?

La codificación Manchester en su forma básica "mezcla" el flujo de datos (desde un UART, por ejemplo) con un reloj asociado con esos datos. Se "mezcla" mediante el uso de una puerta OR exclusiva y, siempre que extraiga con éxito el reloj de los datos codificados de Manchester en su receptor, puede utilizar otra puerta OR exclusiva para extraer los datos.

Es muy relacionado con una señal de banda base y una onda portadora para un sistema de RF. Lo que se produce es la señal de banda base, pero se eleva en frecuencia para formar un espectro alrededor de la frecuencia de la onda portadora.

No tienes que usar el reloj de datos. Por ejemplo, si elige un reloj arbitrariamente alto (mucho más alto que la velocidad de datos), aún puede utilizar un EXOR para producir datos modulados y decodificar de la misma manera.

Alternativamente, puedes usar un codificador de datos - esto usa una serie de chanclas y puertas EXOR para eliminar las longitudes largas de ceros o unos. Se puede usar prácticamente el mismo circuito para descifrar los datos en el receptor.

    
respondido por el Andy aka
0

Si conecta un LED (y una resistencia adecuada) entre el pin de salida de UART y tierra, el LED parpadeará cuando la salida de UART alterne entre los niveles alto y bajo.

Si puede ver este parpadeo o no, depende de la velocidad de datos de UART y del patrón de bits que está enviando. Si el LED no parpadea, no puede enviar ningún dato utilizando la luz del LED.

    
respondido por el Peter Bennett

Lea otras preguntas en las etiquetas