Protocolos lógicos y de comunicación para el RS485

1

Tengo un transceptor RS485 (manual de referencia aquí ) adjunto a un FPGA que necesito programar en verilog. Me pregunto cuál es la lógica, por ejemplo, para enviar bytes. Mirando el manual de referencia (página 8), entiendo que podría ser:

  1. Establezca el pin ON (A8) en lógica alta.
  2. Establezca el pin de DE (driver habilitado: A4) pin to logic high.
  3. Comience a escribir bytes en el PIN DI (entrada de controlador: A3), y ¡voilà!

Pero todo esto parece fácil de ser verdad. En particular, me pregunto cuál debería ser el protocolo de comunicación (si corresponde). (Por ejemplo, estoy pensando en iniciar / detener bits).

    
pregunta Randomblue

1 respuesta

4

Todo depende de la aplicación. Las especificaciones como RS-485 y RS-232 son especificaciones sobre niveles de voltaje, niveles de corriente, carga de bus, terminación de bus, etc. No hay orientación sobre el uso de bits de START o bits de STOP o paridad o velocidad de transmisión. La especificación básicamente le dice cómo hacer bits y posiblemente lidiar con la contención del bus, pero de lo contrario todos los dispositivos que se comunican deben estar de acuerdo con lo que significan los bits.

Sé que puede haber algunas referencias de alto nivel sobre temas como este, pero creo que, en general, la mayoría de las personas lo hacen. El 8N1 es muy popular y la mayoría de las personas se apegan a la secuencia de baudios de 1200,2400,4800, etc. habitual y generalmente soportado. En general, si tiene un microcontrolador en un extremo de este enlace de comunicación, es probable que no quiera desviarse fuera del rango de:

  • Un bit de INICIO
  • 1-2 bits de parada
  • Paridad par, impar o nula
  • 1200 baudios - velocidad de datos de 1 Megabaud
  • 7-9 bits de datos

El mantenimiento de estas restricciones generalmente le permite colocar un transceptor RS-485 frente a un UART genérico y obtener una comunicación de bus simple. Por supuesto, tiene que agregar un código para manejar el cambio de dirección del bus de lectura a escritura (si no está utilizando una comunicación dúplex) y posiblemente controlar el bus para la contención. De lo contrario, es un campo abierto.

    
respondido por el AngryEE

Lea otras preguntas en las etiquetas