AVR Library UART

Diese AVR Library UART von Peter Fleury ermöglicht eine Kommunikation über das Hardware UART Interface von Atmel.  Die UART Library ist nach der Application Note AVR306 für con ATmel für den avr-gcc erstellt. Die Library verwendet Sende- und Empfangs-Interrupts und je einen FIFO Ringbuffer für die Sende und Empfangsroutinen. Dadurch wird nur sehr wenig Rechenleistung des Controllers verbraucht. Unterstützt werden eigentlich alle Controller der Reihe ATmega von ATmel.

UART

Das Universal Synchronous & Asynchronous Receiver & Transmitter Interface, USART, dient dem Senden und Empfangen von Daten über eine Datenleitung und bildet den Standard der seriellen Schnittstellen an PCs und Mikrocontrollern. Im industriellen Bereich ist die Schnittstelle als RS-232 oder RS-485 Interface verbreitet. Eine RS232-Verbindung arbeitet (bit-)seriell mit je einer Datenleitung für beide Übertragungsrichtungen. Somit können Daten Voll-Duplex, also gleichzeitig in beide Richtungen übertragen werden. Aufgrund des hohen Taktsignals, welches bis in den MHz Bereich gehen kann, sind relativ hohe Übertragungsraten möglich. Im Gegensatz zum einfachen UART bietet die USART Schnittstelle die Möglichkeit einer zusätzlichen synchronen Datenübertragung. In dieser Arbeit wird jedoch nur auf die asynchrone Schnittstelle eingegangen.

Funktionsweise

Die Daten werden als serieller digitaler Datenstrom mit einem fixen Rahmen übertragen, der aus einem Start-Bit, fünf bis maximal neun Datenbits, einem optionalen Parity-Bit zur Erkennung von Übertragungsfehlern und einem Stopp-Bit besteht. Um dem Empfänger eine Synchronisationszeit auf den Takt der empfangenen Daten einzuräumen, kann das Stopp-Bit auf das 1,5 oder 2-fache der normalen Übertragungszeit eines Bits verlängert werden. Das wird als 1,5 bzw. 2 Stopp-Bits bezeichnet. Für den Betrieb der asynchronen Datenübertragung wird kein eigenes Taktsignal benötigt. Stattdessen synchronisiert sich der Empfänger durch den Rahmen, bestehend aus dem Start- und Stopp-Bit, und eine bestimmte Bitrate, die manchmal nicht ganz richtig als Baudrate bezeichnet wird. Da der Beginn einer Übertragung mit dem Start-Bit zu beliebigen Zeitpunkten erfolgen kann, wird diese serielle Schnittstelle als asynchron bezeichnet. Um eine Synchronisation gewährleisten zu können, ist die Anzahl der übertragbaren Bits stark eingeschränkt. Bei einem längeren Datenstrom könnte die Synchronisation verloren gehen, was zu Fehlinterpretationen des Datenstromes und somit zu einer fehlerhaften Übertragung führen kann. Serielle Schnittstellen in synchroner Betriebsweise arbeiten mit dem Bittakt aus der Übertragungsleitung und benötigen keinen Rahmen aus Start-/Stopp-Bits.

Software – Beispiel für UART

In dem Beispiel werden Daten mit dem UART 1 des Controllers versendet. Diese können zum Beispiel in einem Terminal Programm wie hTerm und einem UART to USB Converter auf dem PC ausgewertet werden.Daten senden per UART

Anwendungen

Aufbau einer Kommunikation von einem Controllern zum PC, zu einem GPS Modul oder zu einem anderen Controller.

Beispiel

Die Biblitothek enthält ein voll funktionsfähiges Beispiel, inclusive makefile. Das Programm sollte sich ohne Probleme mit dem Programmers Notepad kompilieren lassen.

Viel erfolg!

Links
Produktseite
Forum
Terminal Software
Atmel – UART
www.mikrocontroller.net
Terminal HTerm

Downloads