Quiero establecer una comunicación entre mi PIC18F4550 y mi PC, pero me estoy quedando estancado si debo usar UART o USART para largas distancias. ¿Cuándo es más ventajoso usar el uno en lugar del otro?
Quiero establecer una comunicación entre mi PIC18F4550 y mi PC, pero me estoy quedando estancado si debo usar UART o USART para largas distancias. ¿Cuándo es más ventajoso usar el uno en lugar del otro?
Respuestas:
Para sus propósitos, UART y USART son lo mismo. UART significa receptor / transmisor asíncrono universal . La S adicional en USART significa síncrono . Es solo una pequeña capacidad adicional que Microchip le dio al módulo para que sea más útil en algunos casos. Esa capacidad adicional no se aplica en su caso.
El puerto COM de la PC solo necesita un UART para hablar. El hecho de que el USART podría haberse usado de una manera diferente es irrelevante para usted, excepto que quizás tenga algunos bits de configuración adicionales que deben configurarse de la manera correcta.
Respuesta corta: use el chip que tenga
Para examinar completamente la pregunta, es necesario decodificar los acrónimos:
Un T NIVERSAL Un sincrónica R eceiver T Emisor es el tradicional "puerto serie". Es asíncrono en el sentido de que solo está involucrada una sola señal: no se transmite ningún reloj y, en cambio, el receptor debe recuperar un reloj, generalmente mediante sobremuestreo.
En contraste una U niversal S ynchronous A síncrono R eceiver T Emisor es un más versátil dispositivo con estilo UART asíncronos modos, pero que pueden también opcionalmente ser configurado para operar en síncronos modos en los que un reloj se envía junto con los datos. Dependiendo de la capacidad, esto podría incluir la interoperación con formatos seriales síncronos bien conocidos, por ejemplo SPI o I2S.
Algunas MCU pueden ofrecer ambos tipos de periféricos. Para una necesidad serial asíncrona básica, puede elegir cualquiera de los dos. Sin embargo, su elección puede verse influenciada por los pines en los que puede operar un periférico dado, otras necesidades en el sistema, etc. Un gestor de arranque ROM de fábrica podría funcionar solo en algunos periféricos y no en otros. También puede haber diferencias en el soporte de búfer, longitud de palabras, soporte de paridad, señales de control asociadas, etc. Y la interfaz del software puede ser completamente diferente entre los dos.
Básicamente son lo mismo para su microcontrolador.
USART significa receptor / transmisor universal asíncrono y síncrono. UART significa receptor / transmisor asíncrono universal.
La transmisión de datos asincrónica se usaría la mayor parte del tiempo en este protocolo de comunicación. La transmisión de datos sincrónica rara vez se usa porque tiene un protocolo de comunicación sincrónica mucho mejor, como SPI e I2C.
Su microcontrolador (MCU) tiene un receptor / transmisor síncrono / asíncrono universal (USART). Esta unidad funcional admite un modo de comunicación síncrono y un modo de comunicación asíncrono.
En modo síncrono, el transmisor Tx está conectado al receptor Rx mediante un cable de RELOJ y un cable de DATOS. Una vez por período de RELOJ, Tx envía otro bit en DATA y Rx toma otro bit de DATA. El tiempo de transferencia se rige por CLOCK y, por lo tanto, tanto para Tx como para Rx. Por lo tanto, tanto Tx como Rx pueden usar velocidades de bits más altas que en modo asíncrono.
Sin embargo, se necesitan dos cables / pines del conector en lugar de uno y una distorsión o fluctuación excesiva entre CLOCK y DATA conduce a la recepción de datos corruptos. El tiempo dentro de los controladores de línea y los receptores de línea que llevan RELOJ y DATOS debe coincidir estrechamente para reducir este sesgo. Tanto la interfaz como los factores de dos cables se vuelven más prominentes en distancias más largas, con cables largos y / o múltiples saltos de conexión.
En modo asíncrono, el transmisor Tx está conectado al receptor Rx por un cable DATA. Una vez por período de bit temporizado, Tx envía otro bit en DATA y Rx toma otro bit de DATA. El tiempo de transferencia se rige por los osciladores separados por frecuencia en Tx y Rx, cada uno de los cuales es desconocido para el otro y será ligeramente diferente. Por lo tanto, la tasa de bits confiable máxima es menor que para el modo sincrónico.
Al comienzo de cada nuevo byte, Rx utiliza la transición de bits de STOP-START de inicio para resincronizar con la sincronización de la secuencia de bits entrante. Esto hace que los retrasos de los controladores / receptores de línea, cables y conectores sean irrelevantes para la temporización del período de bits, aunque no para la calidad de los bits. Solo se necesita un cable por señal de comunicación en lugar de dos, lo que reduce el costo en cables, conectores y controladores / receptores de línea.
Por lo tanto, depende de sus costos aceptables, las distancias que viaja y las capacidades de Tx y Rx. Es probable que su PC solo admita el modo asíncrono en un puerto COM estándar, que requiere un puerto especial (PCIe o USB, probablemente USB) para el modo síncrono.