¿Cómo puedo hacer que un Arduino Due reciba señales RS-232/422?

1

Los antecedentes de esta pregunta están aquí: ¿Qué puedo hacer para reducir la latencia de estos puertos serie que están conectados a una PC a través de un adaptador Serial a USB?

Estoy pensando en comprar un Arduino Due para recibir 3 señales serie (bueno, en última instancia 5, pero actualmente 3), una rs-232 y dos rs-422. El punto sería obtener sellos de tiempo precisos antes de enviarlos a una computadora real para su procesamiento.

El vencimiento tiene un puerto USB, pero presumiblemente tendré que armar algo que podría permitir que el microcontrolador acceda a las señales seriales.

Aunque conozco bupkis sobre hardware, sin embargo. Esto no es un motivo para que alguien me dibuje diagramas de cableado (en realidad no sé si los diagramas de cableado son relevantes para este problema, y no pude leerlos [todavía] si lo hiciste). Simplemente no tengo el lenguaje para investigar esto. ¿Supongo que tendría que soldar cosas juntos? ¿Un puerto serie (x5) a una placa de circuito de algún tipo? ¿Me permitiría el Due hacer tres entradas seriales? ¿Podría soportar cinco? Más importante aún, ¿cómo se puede decir? (Supongo que dado que el Due tiene 54 pines y un puerto serie tiene 9 cada uno, y 5 * 9 = 45, que el Due podría admitir los cinco dispositivos. ¿Estoy en el camino correcto?)

    
pregunta canisrufus

2 respuestas

2

The Due, que en realidad es un Atmel AT91SAM3X8E, solo tiene 4 interfaces seriales de hardware completo (aunque hay un UART adicional que puede funcionar).

Lo primero que recomendaría fuertemente es dejar de pensar en el tablero como un "Arduino" . Las herramientas de Arduino solo cubren el dispositivo real. Es un tablero de desarrollo AT91SAM3X8E.
Dicho esto, el primer lugar para comenzar es leer la página del producto y datasheet(pdf) .

Funcionalmente, RS-422 parece un bus serie asíncrono diferencial. Dependiendo de la implementación, puede ser half-duplex (por ejemplo, los datos solo pueden ir de una manera a la vez), o full-duplex (por ejemplo, los datos pueden ir en ambas direcciones al mismo tiempo). Este modo está determinado por el hardware, ya que el dúplex completo requiere más cables físicos. Half dúplex es un par diferencial (y tierra), el dúplex completo requiere dos pares de diferencias (y una tierra).

Para el dúplex completo en una topología no de bus (por ejemplo, solo dos dispositivos), el hardware requerido para conectar el bus puede ser tan simple como colocar un controlador / receptor de línea diferencial entre el USART de su MCU y el otro dispositivo.

Para las topologías de bus o las conexiones semidúplex, se vuelve más complejo, ya que necesita poder apagar el controlador de línea para permitir que los otros dispositivos hablen sobre las conexiones compartidas.

Además, una nota es que verá muchos controladores de línea "RS-422 / RS-485", etc ... Esto se debe a que las especificaciones de la capa física para los dos son las mismas, por lo que un controlador que funciona para RS-422 generalmente funcionará para RS-485, y viceversa. De hecho, a menudo hay dispositivos que admiten ambos protocolos.

Afortunadamente, el RS-422 se ve exactamente como el RS-232, simplemente con diferentes niveles de señalización física (y uno es diferencial). Como tal, convertir RS232 a RS422 es tan simple como quedarse en un convertidor. (RS485 está más involucrado).

Esto significa que puedes probablemente usar el 5º UART en el AT91SAM3X8E para tu quinto canal sin problema (o simplemente puedes usarlo para la conexión RS232).

Con respecto a cómo hacer que su dispositivo realmente hable RS-422, necesitará un RS422 driver IC . Afortunadamente, allí están lots de opciones . Incluso hay opciones disponible en DIP para crear prototipos fácilmente.

Los tableros de ruptura son más difíciles de conseguir, ya que el RS-422 es bastante inusual en cualquier grado de aficionado. encontré uno , pero se ve bastante mal diseñado (¡no hay terminal de tierra!). Sin embargo, probablemente funcionaría bien para la experimentación.

    
respondido por el Connor Wolf
1

A simple vista, aparece el Due admite 4 puertos serie de hardware. Si desea una quinta serie, siempre puede hacerlo en software en el microcontrolador. Tenga en cuenta que se trata de los datos en serie (rx / tx). No sé cómo maneja CTS y todo eso. Esa es probablemente una pregunta en sí misma. Pero como de todos modos está usando USB con FTDI desde Arduino a la PC, puede que no haya mucha diferencia.

Tendrá que preocuparse por el cambio de nivel , ya que el Dueer solo alcanza 3.3V, por lo que tendrá Para asegurarse de no excederlo.

Buena suerte. :-)

    
respondido por el kmort

Lea otras preguntas en las etiquetas