Informatikwerkstatt, Foliensatz 2 Serieller Datenaustausch G. Kemnitzv Institut für Informatik, Technische Universität Clausthal

Informatikwerkstatt, Foliensatz 2 Serieller Datenaustausch G. Kemnitzv Institut für Informatik, Technische Universität Clausthal
Informatikwerkstatt, Foliensatz 2
Serieller Datenaustausch
G. Kemnitzv
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
G. Kemnitzv
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
1/31
Inhalt des Foliensatzes
LCD-Ausgabe
PC-Verbindung über USART/USB-Converter
Drahtlose Kommunikation über Bluetooth
G. Kemnitzv
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
2/31
Zahlen- und Textdarstellung
Das Ausprobieren von Programmteilen, Kontrollausgaben und
die Steuerung des zu entwickelnden Fahrzeugs erfordert die Einund Ausgabe von Zahlen und Texten. Zahlenformate:
Zahlenformate
1 Byte
2 Byte
ohne Vorzeichen
0 bis 255
0 bis
mit Vorzeichen
-128 bis 127
−215
16
2
bis
4 Byte
−1
215 − 1
0 bis
−231
232 − 1
bis
231 − 1
Textdarstellung durch eine Bytefolge (ASCII):
G. Kemnitzv
Zeichen
H
a
l
l
o
!
Zahlenwert
72
97
108
108
111
33
hexadezimal
0x48
0x61
0x6C
0x6C
0x6F
0x20
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
3/31
Kontrollfragen
Wie erfolgt die Umrechnung zwischen Dezimal- und
Hexadezimalzahlen?
Wie lautet die Hexadezimal- und die Binärdarstellung der
folgenden Dezimalzahlen?
1023, 17, 56
Welche Dezimalwert haben die folgenden Hexadezimalzahlen
(vorzeichenfreier Zahlentyp)?
0x20, 0xFF, 0x18
Welche Zeichenfolge stellt die folgende Zahlenfolge dar1 ?
0x54, 0x6E, 0x63, 0x68, 0x6E, 0x69, 0x78
'A' hat den Wert 0x41 und 'a' den Wert 0x61. Weitere Wertezuordnung
in der Reihenfolge der Buchstaben.
1
G. Kemnitzv
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
4/31
Serieller Datenaustausch
Rechner und Rechnerbausteine tauschen ihre Daten oft seriell2
aus. Ein vielgenutztes Protokoll3 für die byteweise Übertragung:
Daten- 1
b0 b1 b2 b3 b4 b5 b6 b7 P
leitung 0
Start-Flanke am Übertragungsbeginn
b∈ {0, 1} Datenbits
P∈{0, 1} Paritätsbit
Stoppbit (Wert 1)
t
Übertragungspause
Bitzeit, z.B. tBit ≈ 0,1 ms
Übertragungsdauer: 12 · tBit
Der Empfänger erkennt den Übertagungsbeginn an der
Start-Flanke und übernimmt die Werte nach 1,5, 2,5 etc.
Bitzeiten. Voraussetzung: Gleich eingestellte Bitzeit, Bitanzahl,
Stoppbitanzahl und Parität bei Sender und Empfänger.
Seriell: Hintereinander über eine, statt parallel über viele Leitungen.
Kommunikationsprotokoll: Vereinbarung, nach der die Datenübertragung
zwischen zwei oder mehr Teilnehmern erfolgt.
2
3
G. Kemnitzv
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
5/31
Daten- 1
b0 b1 b2 b3 b4 b5 b6 b7 P
leitung 0
Start-Flanke am Übertragungsbeginn
b∈ {0, 1} Datenbits
P∈{0, 1} Paritätsbit
Stoppbit (Wert 1)
t
Übertragungspause
Bitzeit, z.B. tBit ≈ 0,1 ms
Übertragungsdauer: 12 · tBit
Erkennbare Protokollfehler:
Frame-Fehler: Dauer des Startbits oder der Stoppbits zu
kurz. Änderung der Bitwerte im Abtastintervall.
Paritätsfehler: bei (un)gerader Parität, Anzahl der
empfangenen Einsen nicht (un)gerade.
Datenüberlauf: Empfangendes Byte wird vor dem Abholen
von Bits des nächsten Bytes überschrieben.
Protokollfehler verursachen oft Empfangsfehler.
Protokollfehlerbehandlung ist extra zu programmieren.
G. Kemnitzv
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
6/31
Serielle Schnittstellen des ATmega64
2x USART (Universal Synchronous and Asynchronous
Receiver and Transmitter)
1x SPI (Serial Peripherial Interface)
Vorgesehener Einsatz in den geplanten Projekten:
USARTs mit dem beschriebenen asynchronen Protkoll:
LC-Display-Ausgabe
Anschluss über einen Seriell/USB-Konverter an den PC
drahtlose Kommunikation mit PC über Bluetooth
SPI-Schnittstelle (mit einem synchronen Protokoll)
G. Kemnitzv
Anschluss eines Joysticks.
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
7/31
1. LCD-Ausgabe
G. Kemnitzv
LCD-Ausgabe
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
8/31
1. LCD-Ausgabe
Anschluss des LC-Displays
serielleVerbindung, genutzt
werden nur drei
Drähte
Mikrorechner
auf CEREBOT
TxD1
VCC
GND
TxD1
RxD
G. Kemnitzv
·
Sendesignal USART1
Empfangssignal LCD
Mikrorechner
PmodLCD
RxD
VCC
GND
VCC Versorgungsspannung
GND Masse (Ground)
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
9/31
1. LCD-Ausgabe
Konguration von USART1 auf CEREBOT
Mit den Jumber-Einstellungen wie auf dem Bild ist im
Mikrokontoller des LCD-Moduls als Protokoll eingestellt:
asynchron, 9600 Baud, 8 Datenbits, 1 Stoppbit, kein Paritätsbit.
USART1 des ATmega64 ist genauso zu kongurieren:
Einstellen des Teilerwerts für die Baudrate
T =
≈ 7,5 MHz
fProz
−1=
− 1 = 49
16 · b · Hz
16 · 9600 Hz
(fProz Taktfrequenz des Prozessors; b Baudrate)
UBRR1H = 0; UBRR1L = 49;
im Register UCSR1B Sender einschalten:
UCSR1B = (1<<TXEN1); // TXEN1 in UCSR1B setzen
asynchron, 8 Daten-, 1 Stoppbit, keine Parität einstellen:
UCSR1C = 0b00000110;
G. Kemnitzv
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
10/31
1. LCD-Ausgabe
Die Kongurationseinstellungen lassen sich in der Debug-IO-View
gut kontrollieren und auch korrigieren:
G. Kemnitzv
Baudrate 9600
Empfang aktivieren1
Senden aktiviert
1
für bidirektionale
Verbindungen
asynchron Übertragung
kein Paritätsbit
1 Stoppbit
8 Datenbits
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
11/31
1. LCD-Ausgabe
Programm zur LCD-Ausgabe des Textes Hallo!
Ein Text ist in C ein Feld von ByteWerten, das mit null abgeschlossen ist.
#include ...//Header einbinden
int main(){
// Vereinbahrung lokaler Variablen
// * Zeichenkette mit Ausgabetext
// * Zeiger auf aktuelles Zeichen
uint8_t Text[] = "\x1b[i Hallo!";
uint8_t *prt = Text;
// wiederhole bis Textende
while (...) {
... // warte bis Sendepuffer frei
... // Sende aktuelles Zeichen
... // Zeiger weiterschalten
}
// Schleifenende
}
// Programmende
G. Kemnitzv
·
Institut für Informatik, Technische Universität Clausthal
Adresse
Text
Text+1
Text+2
Text+3
Text+4
Text+5
Text+6
Text+7
Text+8
Text+9
Wert Bedeutung
0x1B
Anzeige
0x5B
löschen
0x6A
0x48
H
0x61
a
0x6C
l
0xrC
l
0x6F
o
0x21
!
0x00
Ende
28. Oktober 2014
12/31
1. LCD-Ausgabe
Sceenshoot Programms und Anfangswerte der lokalen Variablen.
G. Kemnitzv
... @0x10f
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
13/31
1. LCD-Ausgabe
Aufgabe 2.1: Test der LCD-Ausgabe
Neues Projekt LCD anlegen. Programm von der Folie
zuvor eingeben. Zeilennummern einschalten:
Tools > Options > Text Editor > All languages
√
> General: Display on line numbers
Unterbrechungspunkte wie im Bild setzen.
Start Debug bis zum ersten Unterbrechungpunkt, IO-View
USART-Einstellungen kontrollieren.
Einzelschritt, Locals (lokale Variablen) Test und Zeigerwert
kontrollieren.
Programmfortsetzung bis Unterbrechungspunkt. In Locals
Zeiger und auf dem LCD Ausgabe kontrollieren.
Test wiederholen und schauen, nach welchem übertragenen
Zeichen das LCD gelöscht wird.
Ausgabe modizieren.
G. Kemnitzv
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
14/31
1. LCD-Ausgabe
Aufgabe 2.2: Schaltbare Ausgabe (Fortgeschrittene)
Stecken Sie zusätzlich das Schaltermodul an Port F.
Schreiben Sie ein Programm, das bei unterschiedlichen
Schalterstellungen unterschiedliche Texte ausgibt.
Hinweis: Fallunterscheidung mit Switch-Anweisung
uint8_t sw; DDRF = 0; //
...
sw = PINF & 0xF; // vier
switch (sw){
case 0b00000001: // SW1
<Anweisungen für Fall
break;
case 0b00000010: // SW2
<Anweisungen für Fall
break;
...
}
G. Kemnitzv
·
alle Bits Eingänge
Schalterwerte einlesen
ein, der Rest aus
1>
ein, der Rest aus
2>
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
15/31
2. PC-Verbindung über USART/USB-Converter
G. Kemnitzv
PC-Verbindung über
USART/USB-Converter
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
16/31
2. PC-Verbindung über USART/USB-Converter
Anschluss des PCs über USART-USB-Konverter
CEREBOT
VCC
TxD0
RxD0
GND
UART/USB
VCC
RxD
TxD
GND
gekreuztes Kabel
Auf die Farben achten!
UART/USB
zum PC
Anschluss des USART/USB-Konverters mit beiliegendem
X-Over-Kabel an Stecker JD (USART0).
G. Kemnitzv
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
17/31
2. PC-Verbindung über USART/USB-Converter
Konguration UART0
UBRR0H und UBRR0L: Baudrate 9600 einstellen
UCSR0A: Sender und Empfänger eingeschalten.
UCSR0C: 8 Daten-, 2 Stoppbits und ungerade Parität
G. Kemnitzv
Baudrate 9600
Send., Empf. ein
Baudrate 9600
asynchron
ungerade Parität
2 Stoppbit
8 Datenbit
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
18/31
2. PC-Verbindung über USART/USB-Converter
Echo-Programm
Der Mikrocontroller soll ständig auf Datenbytes warten, deren
Wert + 1 und zurücksendet und ... (Was passiert noch?)
G. Kemnitzv
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
19/31
2. PC-Verbindung über USART/USB-Converter
Gegenstelle auf dem PC vorbereiten
HTerm starten. Übertragungsparameter einstellen.
Verbindung
herstellen
Schnittstelle Schnittstellenliste
auswählen
aktualisieren
Einstellung des Übertragungsformats wie beim Mikrorechner
Show
Errors
Der Port kann variieren. Man erkennt ihn an der Änderung
der Port-Liste, wenn der USB-Stecker angesteckt wird.
Show Errors (Empfangsfehleranzeige) aktivieren.
Empfangene Daten mit Protokollfehlern werden dann rot
dargestellt.
Bei Protokollfehlern Einstellungen überprüfen,
Mikrorechnerprogramm Neustart, ...
G. Kemnitzv
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
20/31
2. PC-Verbindung über USART/USB-Converter
Schicken eines Textes
G. Kemnitzv
Sendetext
·
Abschlussnull
Institut für Informatik, Technische Universität Clausthal
um 1 erhöhte Werte
rot hier würde Protokollfehler bedeuten
28. Oktober 2014
21/31
2. PC-Verbindung über USART/USB-Converter
Sendedaten mit gemischter Zahlendarstellung
hex.dezimal
binär
56 · 256 + 237 = 14573
Dezimalzahlen gröÿer 255 werden als 2-Byte-Zahl
übertragen.
G. Kemnitzv
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
22/31
2. PC-Verbindung über USART/USB-Converter
Wartezeiten zwischen gesendeten Daten
Bei Mikrorechneranwendungen sind Zeitabläufe wichtig.
Möglichkeit:
Wartezeiten zwischen Eingabe-Bytes einzufügen und
die Ausgabe mit Zeitstempel in eine Datei zu speichern, z.B.
zur graphischen Darstellung von Sensorsignalverläufen oder
der Fahrzeugbewegung.
Bytefolge mit 1000 ms Wartezeiten zwischen Bytegruppen:
G. Kemnitzv
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
23/31
2. PC-Verbindung über USART/USB-Converter
Die empfangenen Daten mit Zeitstempel in Datei speichern4 .
Ausgabeformat: Ascii mit Zeitstempel
19:30:06.004: Empfangszeit (h:min:s:ms)
Hal
empfangende Zeichenfolge
Ausgabefile
Hal
19:30:06.020:
lo
19:30:07.009:
Welt,
19:30:08.015:
hier bin
19:30:09.004:
ich
19:30:09.020:
!
Im Beispiel wurde die +1 Erhöhung beim Rücksenden aus dem
Mikrorechnerprogramm entfernt.
4
G. Kemnitzv
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
24/31
2. PC-Verbindung über USART/USB-Converter
Aufgabe 2.3: Test der PC-Kommunikation
Testen Sie die besprochenen Beispiele:
Anschluss des PModUSBUART und des PCs wie auf Folie
17.
Anlegen eines neuene Projekts Echo, Eingabe und Start
des Programms auf Folie 19.
Start und Konguration des HTerms wie auf Folie 20.
Test mit einer Beispielzeichenkette wie auf Folie 21.
Test mit einer gemischten Zahlen/Zeichen-Folge wie auf Folie
22.
Test mit Warteanweisungen wie auf Folie 23 und
Dateiausgabe mit Zeitstempel.
Änderungen der Übertragungsprameter und Wiederholung
einiger Tests. Empfangsfehler beobachten.
G. Kemnitzv
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
25/31
2. PC-Verbindung über USART/USB-Converter
Aufgabe 2.4: PC-LCD-Ausgabe
Stecken Sie zusätzlich das Modul mit dem LC-Display an
USART1 der Mikrorechnerbaugruppe (siehe Folie 9).
Schreiben Sie ein Programm, dass den Eingabetext vom PC
auf das LC-Display ausgibt. In der ersten Version sollen die
Steuerzeichen für das LCD. (Bildschirmlöschen etc. vom PC
gesendet werden.)
Suchen Sie im Internet das Referenzmanual des LCD-Moduls
PmodCLS_rm.pdf. Probieren Sie einige der Steuerbefehle,
z.B. Bildschirm löschen, Cursor bewegen, Scollen,
Hintergrundbeleuchtung ein-/ausschalten etc. 5 .
Schreiben Sie ein Programm mit selbst denierter
Zielfunktion, in dem Sie das Gelernte über die LCD-Ausgabe
und die Kommunikation mit dem PC anwenden.
Bitte ohne vorherige Rücksprache mit dem Übungsleiter keine
Änderungen im EEPROM vornehmen.
5
G. Kemnitzv
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
26/31
3. Drahtlose Kommunikation über Bluetooth
Drahtlose Kommunikation über
G. Kemnitzv
Bluetooth
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
27/31
3. Drahtlose Kommunikation über Bluetooth
Bluetooth-Modul anschlieÿen
Jumper JP4 zur Einstellung
der Übertragungsparameter
9600 Baud 8n1 stecken
MAC-Nummer
USB-Bluetooth-Dongle
G. Kemnitzv
Bluetooth-Modul
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
28/31
3. Drahtlose Kommunikation über Bluetooth
Bluetooth-Verbindung auf PC einrichten
Bluetooth-Symbol
letzte 4 Ziffern der MAC-Nummer
auf dem Bluetooth-Modul, mit dem
sich der Rechner verbinden soll
Unter Windows Doppelklick auf Bluetooth-Symbol.
Bei Bedarf add Device.
Device mit der MAC-Nummer auf dem PMOD auswählen.
Für Enter the Device Pairing Code Eingabe 1234.6
recher Mouseklick > Properties > Hardware > hinterm
Namen COM-Port ablesen.
Protokoll der seriellen Schnittstelle der Bluetooth-Module: 8
Datenbits, 1 Stoppbit, keine Parität, 9600Baud.
G. Kemnitzv
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
29/31
3. Drahtlose Kommunikation über Bluetooth
Zum Test der Kommunikation ist der USART/USB-Converter
durch das Bluetooth-Modul zu ersetzen und im bisher genutzten
Echo-Programm die Stoppbitanzahl auf 1 und die Parität auf
keine zu ändern.
G. Kemnitzv
0 (nur ein Stoppbit)
00 (keine Parität)
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
30/31
3. Drahtlose Kommunikation über Bluetooth
Aufgabe 2.5: Bluetooth-Test
Stecken Sie das Bluetooth-Modul wie auf Folie 28 an USART
0 (Stecker JD) und den USB-Bluetooth-Dongle in den PC.
Stellen Sie in der beschriebenen Weise eine
Bluetooth-Verbindung her.
Ändern Sie die Protokollparameter im PC-Programm und im
HTerm auf 8 Datenbits, 1 Stoppbit, keine Parität, 9600Baud
und önen Sie die Verbindung mit dem COM-Port der
Bluetooth-Verbindung.
Führen Sie änliche Tests wie bei der drahtgebundenen
Kommunikation durch.
G. Kemnitzv
·
Institut für Informatik, Technische Universität Clausthal
28. Oktober 2014
31/31
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement