¿Podemos calcular la velocidad en baudios de la comunicación RS232 a partir de la señal de salida TX?


10

¿Podemos calcular la velocidad en baudios o la velocidad de comunicación de la comunicación RS232 a partir de la señal de salida X?

La siguiente imagen es de una señal de salida de comunicación RS232. Tomé esta foto con 0xaa, y el período de tiempo entre máximos es de 100.us.

Escuché que la frecuencia del oscilador externo es de 8Mhz. ¿Podemos calcular la velocidad en baudios a partir de eso?

Osciloscopio que muestra la señal RS232


99
Creo que un EE debería saber eso F=1/T.
Eugene Sh.

2
Esperaba que esto fuera una pregunta sobre la detección de la velocidad en baudios sin el conocimiento de los datos para facilitar la configuración, pero ¿esto? @EugeneSh. es más que correcto: conocer la definición de frecuencia es un conocimiento básico cuando se trabaja con electrónica.
NieDzejkob

1
Sugerencia: si se confunde con algo como esto, haga que su máquina de desarrollo envíe su mejor estimación de lo que cree que está viendo y vea cómo se ve eso en el alcance en comparación. Si está equivocado, refine su conjetura para acercarlos.
Chris Stratton

Sigrok es de código abierto, ¿verdad? ¿Cómo piensa la gente que funciona la "frecuencia de conjetura"?
mckenzm

Respuestas:


21

Parece que tiene aproximadamente 2,4 bits por división, que son 250 µs. Eso pone cada bit time a 104 µs. Inversión que produce 9.6 kBaud. Esa es una de las velocidades de transmisión estándar, por lo que esto suena bastante plausible.


12

100μs


8MHz

Algunos otros pensamientos:

  1. 100μs±2%
  2. 3.5V
  3. Esta señal utiliza un HI para MARK (en RS-232, un MARK es un voltaje negativo), por lo que debe ser una salida de nivel lógico desde una señalización micro y no RS-232.

Si toma el bit de INICIO requerido y el STOP mínimo de un bit, esto significa que probablemente haya al menos siete bits restantes para los datos:

ingrese la descripción de la imagen aquí

Lo anterior se interpretaría como 0x2A independientemente de la resistencia, si estoy prestando atención.

Sin embargo, este sería el gráfico para ocho bits de datos:

ingrese la descripción de la imagen aquí

En este caso, la interpretación sería 0xAA o 0x55, dependiendo de la naturaleza endian de la secuencia. Entonces esto podría representar su 0xAA (little endian, que creo que es más común).

Como puede ver, el transmisor y el receptor deben acordar a priori el número de bits de datos y la naturaleza endian de ellos.

Los resultados del alcance podrían interpretarse como tamaños de palabra en serie aún más largos. Los he visto antes (9, más comúnmente, ya que algunos IC solían soportarlo, pero incluso he visto 10 usados ​​antes).

Sin acuerdo, es difícil estar seguro.


Como una barra lateral:

Recuerdo los días en que los teletipos se movían de 5 bits a 6 bits (DTE de principios de la década de 1960) justo en el momento en que se creó el RS-232 en 1960, ya que mi padre tenía un teletipo de ese tipo sentado en su casa en un espacio de oficina en casa. Las comunicaciones RS-232 de seis bits realmente existieron durante un período de tiempo.

La codificación ASCII se utilizó ampliamente a fines de los años 60 y principios de los 70 y es una codificación de 7 bits. Era muy común que las comunicaciones de datos RS-232 usaran 7 bits de datos.

Más tarde, a medida que los circuitos integrados y los microcontroladores de comunicaciones entraron en uso común y los tamaños de registro de 8 bits estaban abundantemente disponibles, RS-232 a menudo se extendió para transmitir / recibir 8 bits a la vez.

Creo que la mayoría de la gente de hoy solo espera que se use para comunicaciones de 8 bits. Pero ese no fue siempre el caso.


Creo que los datos también podrían ser los dos bytes 0x98 0xE6 a 19,200, desglosados ​​como s00011001Ss01100111S [s = start S = stop]. Algunos caracteres como "A" [0x41] generan patrones de bits que no pueden ser creados por ninguna otra velocidad de transmisión (probablemente por qué Hayes eligió "A" como el primer carácter para la secuencia de autobaud-entrenamiento) pero el patrón de arriba representaría un válido dos secuencia de bytes a 19.200 baudios.
supercat

Solía ​​ser el orgulloso propietario de una máquina de impresora de teletipo mecánico. Era completamente mecánico y funcionaba a 60baudios. Bueno, completamente mecánico si no cuenta los solenoides y un motor síncrono. El bit de inicio soltó un embrague y una rueda selectora comenzó a girar y las cosas sucedieron en secuencia allí para colocar el cabezal de impresión y disparar el martillo. Fue genial verlo. Tuve que dejarlo atrás en el Reino Unido cuando vine a Canadá. Era bastante pesado para enviar.
Trevor_G

Sin embargo, estoy bastante seguro de que esa es una de las principales razones por las que el rs232 tenía voltajes y corrientes de accionamiento tan extremos. No había nada en el medio, solo cable RS232 -> solenoide.
Trevor_G

@ Supercat Sí. También podría dividirse en el tiempo. Sin embargo, estas variaciones están comenzando a llegar al punto donde se requiere un libro. Pero su punto es ciertamente tomado.
jonk

1
@Trevor Nunca tuve uno, pero a menudo había usado el KSR-35 (una máquina mecánica impresionante basada en levas) y las unidades ASR-33 / KSR-33 mucho más baratas. El que tenía mi padre en nuestra casa (antes de morir en un accidente de tráfico) no era ninguno de estos, pero era un dispositivo de código de 6 bits anterior de tamaño similar al ASR-33.
jonk

0

Si esto es para un microcontrolador, no es posible determinar la velocidad en baudios de su oscilador, pero un cristal de 8MHz definitivamente puede crear 9600 baudios.

¿Puedes medir y decirme el tiempo exacto desde el primer mínimo hasta el último máximo? - El primer espacio me parece un poco apagado. Me parece que está utilizando un disparador, ¿puede moverlo un poco más alto porque si se trata de un disparador de borde y está sentado en los picos, el osciloscopio posiblemente tendrá problemas para disparar.


Si muestrea la señal y mide el ancho más pequeño encontrado, es trivial calcular la velocidad. Tarde o temprano, un bit de inicio debe ser seguido por un '1'.
mckenzm

0

A veces es posible determinar la velocidad en baudios a partir de un rastreo de alcance, pero no siempre es posible.

La velocidad en baudios es la inversa del período de bits, pero la señal puede permanecer en el mismo estado durante muchos períodos de bits, por lo que no siempre puede determinar sin ambigüedad el período de bits a partir de la traza del alcance.

Suponiendo datos de 8 bits y sin paridad, su forma de onda podría representar un solo byte con un período de bits de ~ 100ns, pero también podría representar dos bytes con un período de bits de aproximadamente 50ns.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.