Lógica de inversión serial asíncrona

2

Estoy usando el analizador lógico Saleae para invertir el puerto de la consola. Saleae puede decodificar exitosamente la señal (serie asíncrona) después de realizar una operación de "inversión" en las señales recibidas.

Estoy tratando de descubrir cómo funciona esta transformación (inversión) para escribir un programa personalizado para interactuar con el puerto de la consola. El protocolo es asíncrono en serie con una velocidad en baudios de 9600, un bit de parada y sin paridad.

invert(0x35) = 0x4E ("N")
invert(0x17) = 0x65 ("e")
invert(0x11) = 0x74 ("t")

¿Es este un algoritmo de inversión estándar para la comunicación en serie asíncrona? Soy un principiante en este campo y por lo tanto un poco confundido.

    
pregunta user1587457

1 respuesta

3

La función 'invertir' hace que el analizador de protocolos interprete un '0' lógico como '1' lógico y viceversa. Esto puede ser necesario para decodificar una forma de onda que está "invertida" en relación con los niveles lógicos "normales" para ese protocolo.

RS232 especifica + 3 ~ 15V para el bit de Inicio y los bits de datos '0', y -3 ~ 15 V para los bits de datos '1' y los bits de parada. Sin embargo, cuando se traduce desde y hacia los niveles lógicos TTL / CMOS, la señal generalmente se invierte. En 'TTL serial' el bit de inicio es bajo y el bit de parada es alto, y los bits de datos coinciden con niveles lógicos TTL positivos (es decir, nivel alto = '1', nivel bajo = '0').

El analizador detecta el inicio de una palabra buscando la transición entre Stop / inactivo y el bit de inicio. El punto de inicio detectado variará según la polaridad de la señal y los datos presentes, por lo que una señal "invertida" mostrará palabras decodificadas en diferentes posiciones y no habrá ninguna relación obvia entre los bits detectados.

Para transformar la señal en su propio programa personalizado, todo lo que tiene que hacer es interpretar el nivel alto como '0' lógico y el nivel bajo como '1' lógico. Tendrá que decodificar la señal usted mismo, buscando el comienzo de un bit de Inicio (transición de '1' a '0') saltando períodos de 1.5 bits para leer el nivel en el medio de cada bit de datos, y finalmente verificando el Pare un poco

    
respondido por el Bruce Abbott

Lea otras preguntas en las etiquetas