UART
Die UART (Universal Asynchronous Receiver Transmitter) oder besser gesagt USART (Universal Synchronous/Asynchronous Receiver Transmitter) ist für eingebettete Systeme eine der wichtigsten Kommunikationsschnittstellen. Technisch gesehen verfügen AVR-Mikrocontroller über USART Bausteine oder die noch höher entwickelten USI (Universal Serial Interface), in den meisten Fällen werden diese aber als UART, also asynchron betrieben. Zwischen Controllern erfolgt die Verbindung oft direkt und über größere Entfernungen mit entsprechenden Treiberbausteinen (vgl. RS232/RS485). Das PEC-Framework definiert folgende Signatur einer UART.
Bevor wir beginnen benötigen wir ein neues Klassendiagramm. Dazu müssen Sie zurück in die oberste Ebene gehen (rechte Maustaste / nach oben oder einfach Taste ESC). Dort legen Sie ein neues Klassendiagramm an. Zur Erinnerung:
Das folgende Beispiel zeigt die Anwendung der UART mit dem PEC-Framework. Es soll die Zeichenfolge „Hallo UML“ an den PC gesendet werden.
Gehen Sie wie folgt vor:
- ggf. ein Projekt, und ein neues Klassendiagramm für PEC Anwendungen erstellen
- eine eigene Klasse Konsole anlegen
- die Klasse Konsole in der Klasse Controller aggriegieren
- das Template PecUart an die Klasse Konsole binden
- ein Template für die gewünschte Baudrate an die Klasse Konsole binden
- das Template uart0_avr an die Klasse Konsole binden
Die so vorbereitete Systemstruktur muss jetzt nur noch mit dem gewünschten Verhalten ergänzt werden. Ergänzen Sie in der Operation onWork der Klasse Controller den folgenden Code:
Controller::onWork
konsole.writeString("Hallo UML!\n"); waitMs(300);
Wenn wir die Zeile richtig eingegeben und das Modell korrekt erstellt haben können wir aus dem Klassendiagramm wie gehabt den Quellcode generieren, diesen übersetzen und auf den Controller übertragen. Das erfolgt über das Aktionsmenü in der Objektbibliothek. Wählen sie dort den Menüpunkt Erstellen, Brennen & Ausführen.
Das Testen der Anwendung erfolgt mit dem SiSy-Controlcenter. Beachten Sie, dass die Einstellungen für die Kommunikationsschnittstelle korrekt sind.
Videozusammenfassung
Nächstes Thema
- Analogdaten erfassen (ADC) (nur über eine SiSy-Lizenz verfügbar)