¿Factores de limitación de velocidad de UART? [duplicar]

-1

Quiero preguntar sobre el uso de UART para enviar datos desde uC a PC. Así que tengo algunas preguntas.

Me pregunto cuál es el máximo de la tasa de bits UART?

¿Qué factores afectan la velocidad de UART? Por ejemplo, ¿el uso de DMA afecta la velocidad de bits?

¿Qué microcontroladores tienen la velocidad de bits UART a más de 30 Mbit / s? Si muchos, como que?

    
pregunta KHK

2 respuestas

3

Hay varias limitaciones en la velocidad de transmisión de UART en su configuración:

  1. Qué tan rápido pueden cambiar las señales. Las salidas UART son simplemente señales digitales ordinarias. Estos podrían ir bastante rápido en el mismo tablero, pero no son apropiados para alta velocidad en su forma nativa.

  2. Chips de convertidor RS-232. El microcontrolador emitirá señales digitales normales, mientras que un puerto COM de PC requiere niveles de señal RS-232. Los chips convertidores comunes generalmente tienen un límite de velocidad superior en el rango de 250 kBaud. Eso no significa que no pueda hacer su propio circuito que vaya más rápido, pero no podrá usar solo un chip de estante.

  3. Cadena de velocidad en baudios en el micro. La mayoría de los micros le permiten dividir su reloj interno por algún número entero, y el resultado será 16 veces la velocidad en baudios. Por ejemplo, si tuviera un micro que funcionara a 30 MHz, entonces la velocidad en baudios más rápida probablemente sería 1.875 MBaud.

    Algunos micros tienen un modo de "alta velocidad" donde se usa un múltiplo inferior a 16. Eso te da una mayor velocidad a expensas de la robustez. Esto es poco común en el mejor de los casos y, a menudo, no es una buena idea.

  4. Las velocidades en baudios disponibles en la PC . Este es probablemente el criterio más limitante. La PC solo puede hacer las velocidades en baudios que están disponibles para el código de usuario, según lo que pueda hacer el hardware de UART en la PC y las políticas codificadas en el controlador.

La conclusión es que los puertos UART y PC COM simplemente no están diseñados para las velocidades que desea, ni siquiera se cierran. Si intentas superar los 115.2 kBaud, estás pidiendo problemas en algún lugar.

Encuentre una mejor manera de obtener datos de un microcontrolador a una PC.

Dicho esto, piensa en lo que esto significa en el micro final. Desea enviar o recibir un nuevo byte cada 33 ns. Muchos microcontroladores ni siquiera pueden ejecutar una sola instrucción en ese momento. Incluso en micros de gama alta, eso es sólo unas pocas instrucciones en el mejor de los casos. Piense en lo que tiene que hacer con esos datos o de dónde se supone que el micro debe obtenerlos con unas 3-5 instrucciones para manejar cada byte.

Su arquitectura en general parece inapropiada. Probablemente debería estar considerando usar un FPGA, o encontrar una mejor manera de abordar el problema en un nivel alto.

    
respondido por el Olin Lathrop
2
  

¿Qué microcontroladores tienen la velocidad de bits UART a más de 30 Mbit / s?

Probablemente ninguno. Por lo general, se toma una muestra de UART a 16x u 8x la velocidad en baudios, por lo que su micro necesitará una fuente de reloj de 240 o 480MHz. Los procesadores a que velocidad rara vez se denominan microcontroladores.

Tenga en cuenta que probablemente no quiera UART en primer lugar: puede obtener todo tipo de efectos negativos de HF a menos que sus huellas sean extremadamente cortas entre fichas.

    
respondido por el Turbo J

Lea otras preguntas en las etiquetas