Ich möchte eine Kommunikation zwischen meinem PIC18F4550 und meinem PC herstellen, aber ich stecke fest, ob ich UART oder USART für große Entfernungen verwenden soll. Wann ist es vorteilhafter, das eine anstelle des anderen zu verwenden?
10
Antworten:
Für Ihre Zwecke sind UART und USART dasselbe. UART steht für Universal Asynchronous Receiver / Transmitter . Das zusätzliche S in USART steht für synchron . Es ist nur eine kleine zusätzliche Funktion, die Microchip dem Modul gegeben hat, um es in einigen Fällen nützlicher zu machen. Diese zusätzliche Funktion gilt in Ihrem Fall nicht.
Der PC-COM-Anschluss benötigt nur einen UART, um mit ihm zu sprechen. Die Tatsache, dass der USART auf eine andere Weise hätte verwendet werden können, ist für Sie irrelevant, außer dass Sie möglicherweise einige zusätzliche Konfigurationsbits haben, die richtig eingestellt werden müssen.
quelle
Kurze Antwort: Verwenden Sie den Chip, den Sie haben
Um die Frage vollständig zu untersuchen, müssen die Akronyme dekodiert werden:
Eine U niversal Eine synchrone R eceiver T Messumformer ist Ihre traditionelle „serielle Schnittstelle“. Es ist asynchron in dem Sinne, dass nur ein einziges Signal beteiligt ist - es wird kein Takt gesendet, und stattdessen muss der Empfänger einen Takt wiederherstellen, typischerweise durch Überabtastung.
Im Gegensatz dazu ein U niversal S ynchronous A synchronen R eceiver T Messumformer ist ein vielseitigere Vorrichtung mit UART-style asynchronen Modi, die aber gegebenenfalls auch so konfiguriert werden kann , in dem Betrieb synchrone Modi , in denen eine Uhr zusammen mit den Daten gesendet wird. Je nach Fähigkeit kann dies die Interaktion mit bekannten synchronen seriellen Formaten wie SPI oder I2S umfassen.
Einige MCUs bieten möglicherweise beide Arten von Peripheriegeräten an. Für einen grundlegenden asynchronen seriellen Bedarf können Sie entweder wählen. Ihre Wahl kann jedoch von den Pins beeinflusst werden, an denen ein bestimmtes Peripheriegerät betrieben werden kann, von anderen Anforderungen im System usw. Ein werkseitiger ROM-Bootloader funktioniert möglicherweise nur auf einigen Peripheriegeräten und nicht auf anderen. Es kann auch Unterschiede in der Pufferunterstützung, der Wortlänge, der Paritätsunterstützung, den zugehörigen Steuersignalen usw. geben. Und die Softwareschnittstelle kann zwischen den beiden völlig unterschiedlich sein.
quelle
Sie sind im Grunde dasselbe für Ihren Mikrocontroller.
USART steht für universellen asynchronen und synchronen Empfänger / Sender. UART steht für Universal Asynchronous Receiver / Transmitter.
In diesem Kommunikationsprotokoll wird meistens eine asynchrone Datenübertragung verwendet. Die synchrone Datenübertragung wird selten verwendet, da Sie ein viel besseres synchrones Kommunikationsprotokoll wie SPI und I2C haben.
quelle
Ihr Mikrocontroller (MCU) verfügt über einen universellen synchronen / asynchronen Empfänger / Sender (USART). Diese Funktionseinheit unterstützt einen synchronen Kommunikationsmodus und einen asynchronen Kommunikationsmodus.
Im synchronen Modus ist der Sender Tx über ein CLOCK-Kabel und ein DATA-Kabel mit dem Empfänger Rx verbunden. Einmal pro CLOCK-Periode sendet Tx ein weiteres Bit für DATA und Rx nimmt ein weiteres Bit von DATA. Der Übertragungszeitpunkt wird von CLOCK gesteuert und ist daher sowohl Tx als auch Rx bekannt. Daher können sowohl Tx als auch Rx höhere Bitraten als im asynchronen Modus verwenden.
Es werden jedoch zwei Drähte / Verbindungsstifte anstelle von einem benötigt, und übermäßiger Versatz oder Jitter zwischen CLOCK und DATA führt dazu, dass beschädigte Daten empfangen werden. Das Timing innerhalb von Leitungstreibern und Leitungsempfängern, die CLOCK und DATA tragen, muss genau aufeinander abgestimmt sein, um diesen Versatz zu verringern. Sowohl die Schnittstellen- als auch die Zweidrahtfaktoren spielen bei längeren Kabeln und / oder mehreren Verbindungssprüngen über größere Entfernungen eine größere Rolle.
Im asynchronen Modus ist der Sender Tx über eine DATA-Leitung mit dem Empfänger Rx verbunden. Einmal pro zeitgesteuerter Bitperiode sendet Tx ein weiteres Bit auf DATA und Rx nimmt ein weiteres Bit von DATA. Der Übertragungszeitpunkt wird durch die frequenzgetrennten Oszillatoren in Tx und Rx bestimmt, von denen jeder dem anderen unbekannt ist und sich geringfügig unterscheidet. Daher ist die maximale zuverlässige Bitrate niedriger als im synchronen Modus.
Zu Beginn jedes neuen Bytes verwendet Rx den Start-STOP-START-Bitübergang, um erneut mit dem Timing der eingehenden Bitsequenz zu synchronisieren. Dies macht die Verzögerungen von Leitungstreibern / -empfängern, Kabeln und Steckverbindern für das Bitperioden-Timing irrelevant, jedoch nicht für die Bitqualität. Pro Kommunikationssignal wird nur ein Kabel anstelle von zwei benötigt, wodurch die Kosten für Kabel, Steckverbinder und Leitungstreiber / -empfänger gesenkt werden.
Es hängt also von Ihren akzeptablen Kosten, den Entfernungen, die Sie zurücklegen, und den Fähigkeiten von Tx und Rx ab. Ihr PC unterstützt wahrscheinlich nur den asynchronen Modus an einem Standard-COM-Anschluss, für den ein spezieller Anschluss (PCIe oder USB, wahrscheinlich USB) für den synchronen Modus erforderlich ist.
quelle