Quiero hacer una comunicación entre mi PIC18F4550 y mi PC, pero me quedo atascado si debo usar UART o USART para larga distancia. ¿Cuándo es más ventajoso usar el uno en lugar del otro?
Quiero hacer una comunicación entre mi PIC18F4550 y mi PC, pero me quedo atascado si debo usar UART o USART para larga distancia. ¿Cuándo es más ventajoso usar el uno en lugar del otro?
Para sus propósitos, UART y USART son la misma cosa. 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 tu caso.
El puerto COM de la PC solo toma un UART para hablar. El hecho de que el USART se haya utilizado de una manera diferente es irrelevante para usted, excepto que quizás tenga algunos bits de configuración adicionales que deben configurarse correctamente.
Respuesta corta: use lo que tenga chip
Para examinar completamente la pregunta, es necesario descifrar las siglas:
A U niversal A síncrono R el receptor T es su "puerto serie" tradicional. Es asíncrono en el sentido de que solo está involucrada una única señal: no se transmite ningún reloj y, en cambio, el receptor debe recuperar un reloj, generalmente mediante un sobremuestreo.
En contraste, una U niversal S ynchronous A síncrona R eceiver T ransmitter es un dispositivo más versátil con modos asíncronos de estilo UART, pero que también puede configurarse opcionalmente para operar en modos síncronos donde se envía un reloj junto con los datos. Dependiendo de la capacidad, esto podría incluir la interoperación con formatos en serie 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 influida por los pines en los que puede operar un periférico determinado, otras necesidades en el sistema, etc. Un cargador de arranque de ROM de fábrica puede funcionar solo en algunos periféricos y no en otros. También puede haber diferencias en el soporte de búfer, longitudes de palabras, soporte de paridad, señales de control asociadas, etc. Y la interfaz del software puede ser completamente diferente entre los dos.
Su microcontrolador (MCU) tiene un receptor / transmisor sincrónico / asíncrono universal (USART). Esta unidad funcional admite un modo de comunicación síncrona y un modo de comunicación asíncrona.
En el modo síncrono, el transmisor Tx está conectado al receptor Rx por un cable RELOJ y un cable DATOS. Una vez por período de RELOJ, Tx envía otro bit en DATOS y Rx toma otro bit de DATOS. El tiempo de transferencia se rige por CLOCK y, por lo tanto, ambos Tx y Rx lo conocen. Por lo tanto, tanto Tx como Rx pueden usar tasas de bits más altas que en modo asíncrono.
Sin embargo, se necesitan dos cables / pines de conector en lugar de uno y un sesgo o fluctuación excesivos entre CLOCK y DATA conducen a que se reciban datos dañados. La sincronización dentro de los controladores de línea y los receptores de línea que llevan CLOCK y DATA deben coincidir estrechamente para reducir este sesgo. Tanto la interfaz como los factores de dos hilos se vuelven más prominentes en distancias más largas, con cables largos y / o múltiples saltos de conexión.
En el modo asíncrono, el transmisor Tx está conectado al receptor Rx por un cable de DATOS. Una vez por período de bit temporizado, Tx envía otro bit en DATOS y Rx toma otro bit de DATOS. El tiempo de transferencia se rige por los osciladores separados de 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 máxima confiable es menor que para el modo síncrono.
Al comienzo de cada nuevo byte, Rx utiliza la transición de bit STOP-START de inicio para volver a sincronizar con 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 viaje y las capacidades de Tx y Rx. Es probable que su PC solo admita el modo asíncrono en un puerto COM estándar, lo que requiere un puerto especial (PCIe o USB, probablemente USB) para el modo síncrono.
Lea otras preguntas en las etiquetas uart