estándar de trama RS485 (capa física)

0

Estoy intentando implementar un UART en un microcontrolador dsPIC33E para comunicarme con un controlador industrial (cRIO de National Instruments) a través de RS485 (2 cables, semidúplex).

¿Lo que quiero saber es si debo implementar un retraso antes del primer bit de inicio y el último bit de parada del mensaje completo ? En caso afirmativo, ¿hay alguna recomendación (estándar) sobre qué tan "larga" debe ser esta demora?

Aquí hay una forma de onda de un mensaje grabado en un puerto serie del controlador industrial:

Para una referencia más fácil, digamos que la línea vertical de la izquierda denota t = 0 ms, mientras que la división de tiempo se establece en 1 ms. Dado que el puerto serie está configurado en modo semidúplex, la dirección de los datos se puede transmitir o recibir. En t = 1 ms, se puede ver que el puerto está configurado en el modo de transmisión, y en t = 7.2 ms libera el bus de datos, es decir, está configurado en el modo de recepción. Sin embargo, me preocupan estos retrasos antes del primer bit de inicio y el último bit de parada. ¿Debo también implementar estos retrasos en mi microcontrolador? ¿Está definido por algún estándar - hardware o software estándar?

¡Gracias de antemano!

    
pregunta Marko Gulin

2 respuestas

2

Es el estado de salida del controlador habilitado, como el conjunto de pines DE DE ALTO en MAX485. Consulte RS485 en un alcance.

El sentido común indica que el dispositivo debe desactivar el transmisor lo antes posible después de que se envíe el último bit de parada (para liberar el bus): verifique el párrafo "Enlace de cambio automático" en este tutorial de Maxim . Por otro lado, si la calidad de la línea es baja y esta fase es corta, es posible que el transceptor receptor no detecte correctamente el primer bit de datos de start (indicado en el primer enlace).

Además de esto, los protocolos de comunicación sobre RS-485, por ejemplo Modbus, requieren al menos 3.5 caracteres de silencio entre cuadros (o espacio entre cuadros). Entonces, para estar seguro, puede introducir un retardo de, por ejemplo, un bit de 0.5-1 char (en el caso de Modbus) después de habilitar el transmisor pero antes de transmitir (y también después del final del cuadro).

    
respondido por el Flanker
0

Tener rs485 float puede causar bits de inicio falsos. Cuando se cambia de transmisión a recepción, puede ayudar si modifica las líneas a un estado inactivo. Solo haz esto en un punto de la red. Leí una nota de aplicación hace unos 20 años que hizo esto.

    
respondido por el user118055

Lea otras preguntas en las etiquetas