Post on 06-Apr-2015
transcript
Microcontroller
Dipl-Inf. Swen Habenberger
11.02.2009
Dipl.Inf. Swen Habenberger - Microcontroller
211.02.2009
Datentransport
Ein Mikrocontroller benötigt zum arbeiten Daten.
Diese Daten stammen von Internen Quellen z.B. von Timern
(Signalgeneratoren) Externen Quellen z.B. andere Microcontroller
Dipl.Inf. Swen Habenberger - Microcontroller
311.02.2009
Datenübertragung
ParallelMehrere Bits gleichzeitigEine Leitung pro BitMeist interne Kommunikation
SeriellEin Bit hinter dem anderenEine Leitung reicht ausMeist externe Kommunikation
Dipl.Inf. Swen Habenberger - Microcontroller
411.02.2009
Parallele Kommunikation
Das interne Bussystem ist eine parallele KommunikationsstrukturJe nach Busbreite (8, 16, 32 Bit) werden
entsprechend viele Bits übertragen Die Datenraten sind bei gleicher Taktrate
um das Vielfache der Busbreite höher als bei serieller Übertragung
Dipl.Inf. Swen Habenberger - Microcontroller
511.02.2009
Parallele externe Schnittstelle
Fa. Centronics entwickelte in den 70er Jahren einen Stecker zur Parallelen Datenübertragung von PC zu PeripheriegerätenUrsprünglich 36 Pins IBM brachte beim IBM-PC abgespeckte
Version mit 25 Pin Stecker heraus, der sich zum Standard entwickelte
Dipl.Inf. Swen Habenberger - Microcontroller
611.02.2009
Pinbelegung
36 Pins am Drucker17 Pins für Daten und Handshake19 Pins für Masse
25 Pins am PC17 Pins für Daten und Handshake8 Pins für Masse
Dipl.Inf. Swen Habenberger - Microcontroller
711.02.2009
Bild der Anschlüsse
Dipl.Inf. Swen Habenberger - Microcontroller
811.02.2009
Parallele Schnittstelle
Es war nur die Kommunikation zwischen 1 PC und einem Peripheriegerät (Drucker/Plotter) möglich
Rückmeldung nur z.B. BUSY, ERROR, ONLINE Enhanced Parallel Port
Bidirektionale Datenübertragung Extended Capabilities Port
4 MByte pro Sekunde Microsoft und HP entwickeln Standard
Dipl.Inf. Swen Habenberger - Microcontroller
911.02.2009
General Purpose Interface Bus (GPIB) IEC-625-Bus
Standard: IEEE 488 bzw. IEEE 60488 Standard wurde Anfang der 70er Jahre verabschiedet
Datenrate bis zu 1MByte/s Anbindung von bis zu 15 Messgeräten 24 Pin-Centronics Stecker bei IEE488
(Standard) oder 25 Pin-Centronics Stecker bei IEC-625
Dipl.Inf. Swen Habenberger - Microcontroller
1011.02.2009
Fragen?
Dipl.Inf. Swen Habenberger - Microcontroller
1111.02.2009
Externe Serielle Datenübertragung
Für die serielle Datenübertragung gibt es 3 gebräuchliche StandardsRS 232RS 485RS 422, wobei dieser Standard sehr ähnlich
zum Standard RS485 ist
Dipl.Inf. Swen Habenberger - Microcontroller
1211.02.2009
Hardware / Software
Neben der Spezifikation der Hardware d.h. der Signalcodierung ist auch die Spezifikation der Softwareschnittstelle des Datenübertragungsprotokoll wichtig Wie erkennt man das eine Übertragung anfängt oder
aufhört? Datenempfang oder Datensendung? Wer ist Empfänger? Ist wichtig wer der Sender ist? Korrektheit der übermittelten Daten
Dipl.Inf. Swen Habenberger - Microcontroller
1311.02.2009
Prinzipielle Arten in der Datenübertragungstechnik Strombasierte Übertragung
Der übertragene Strom wird kurzfristig unterbrochen und so ein Flankenwechsel generiert
Spannungsbasierte ÜbertragungDie übertragene Spannung wird kurzfristig
erhöht/erniedrigt um einen Flankenwechsel zu generieren
Dipl.Inf. Swen Habenberger - Microcontroller
1411.02.2009
Strombasierte Übertragung
Die Strombasierte Übertragung ist über 100 Jahre alt: Fernschreiber und Morsegeräte arbeiten nach diesem Prinzip
20mA (Ruhezustand) logisch 1, idle, mark
0mA logisch 0, break, space
Dipl.Inf. Swen Habenberger - Microcontroller
1511.02.2009
TeleTypeWriter (TTY)
Dipl.Inf. Swen Habenberger - Microcontroller
1611.02.2009
Spannungsbasierte Übertragung
Es wird zwischen 2 Spannungen gemessen um den Zustand zu ermittelnAktuelle Spannung zu MasseSpannung Leitung 1 zu Spannung Leitung 2
Differenz größer als ein bestimmter Wert => logische 1
Differenz kleiner als ein bestimmter Wert => logische 0
Dipl.Inf. Swen Habenberger - Microcontroller
1711.02.2009
Single-Ended Übertragung
Die Daten werden über eine einzige Leitung versendet
Die (De-)codierung erfolgt immer im Bezug zur Masse des Senders bzw. Empfänger
Dies kann zu Problemen führen, da die Masse evtl. nicht immer gleich ist.
Äußere Störfelder können die Spannung der Datenleitung ändern und dadurch ein falsches Signal erzeugen
Dipl.Inf. Swen Habenberger - Microcontroller
1811.02.2009
Differentielle Übertragung
Es werden 2 Leitungen benötigt. Für logisch 0 oder 1 sind hier nicht die Absolutwerte,
sondern die Differenz von 2 Pegeln maßgeblich. 5V an + und –5V an – ergibt +10 V -5V an + und 5V an – ergibt -10V
Ist das +Signal in einem Leitungspaar positiver als das -Signal, dann entspricht das dem Zustand WAHR.
Ist das +Signal negativer als das -Signal, dann ist das der Zustand FALSCH und gleichzeitig der Ruhezustand.
Äußere Einflüsse beeinflussen beide Leitung gleich, so dass sich eine Potentialverschiebung nicht auf das Signal auswirkt
Dipl.Inf. Swen Habenberger - Microcontroller
1911.02.2009
Weitere Begriffe
Pseudodifferentielle Übertragung: Anstelle der invertierenden Spannung kann als zweites Signal auch die Masse übertragen werden.
Twisted-Pair: Werden beide Leitungen miteinander verdrillt, d.h. ineinander gedreht, nennt man das Twisted-Pair Dies ermöglicht eine größere Schirmung gegen
externe Störeinflüsse
Dipl.Inf. Swen Habenberger - Microcontroller
2011.02.2009
Prinzipielle Arten in der Datenübertragungstechnik Punkt zu Punkt
RS232 Ein Sender, mehrere Empfänger
RS422 Mehrere Sender, mehrere Empfänger
RS485
Dipl.Inf. Swen Habenberger - Microcontroller
2111.02.2009
Punkt zu Punkt
Bei der Punkt zu Punkt Kommunikation wird nur zwischen 2 Geräten kommuniziert
Einsparung der Empfänger- und Sendercodierung im Übertragunsgprotokoll ermöglicht eine Erhöhung der Geschwindigkeit
Dipl.Inf. Swen Habenberger - Microcontroller
2211.02.2009
Bussystem
Mehrere Sender und mehrere Empfänger werden im allgemeinen als Bussystem bezeichnet
Erfordert im Übertragungsprotokoll eine entsprechende Codierung des Senders und des Empfängers
Dipl.Inf. Swen Habenberger - Microcontroller
2311.02.2009
Prinzipielle Arten in der Datenübertragungstechnik Synchrone Datenübertragung
Ein Taktsignal wird parallel zu den Daten über eine eigene Leitung übermittelt.
Asynchrone DatenübertragungDas Datenübertragungsprotokoll muss eine
Regulierung zur Synchronisation beinhalten
Dipl.Inf. Swen Habenberger - Microcontroller
2411.02.2009
Synchrone Datenübertragung
Bei der Synchronen Datenübertragung wird die Übertragung einzelner Bits zwischen Sender und Empfänger mit einem Taktsignal zeitlich synchronisiert.
Dieses Taktsignal kann über eine eigene Schnittstellenleitung gesendet werden
Taktrückgewinnung: Empfänger gewinnt Taktsignal aus dem Datensignal zurück
Dipl.Inf. Swen Habenberger - Microcontroller
2511.02.2009
Asynchrone Datenübertragung
Bei diesem Verfahren werden die Zeichen asynchron, d.h. zu beliebigen Zeiten, übertragen.
Einzelne Bits werden plesiochron übertragen Das Verfahren wird auch Start-Stopp-Verfahren
genannt, da jeweils mindestens ein Start und Stopp Bit gesendet werden muss.
Durch diese mindestens 2 Bits ist die Datenrate geringer als bei synchroner Datenübertragung
Dipl.Inf. Swen Habenberger - Microcontroller
2611.02.2009
Universal Synchronous and Asynchronous serial Receiver and Transmitter (USART) Die USART Schnittstelle eines
Microcontrollers ist die universelle Schnittstelle zur seriellen Schnittstelle
Durch Einstellungen in den Registern kann die Schnittstelle den Anwendungseinstellungen entsprechend konfiguriert werden
Dipl.Inf. Swen Habenberger - Microcontroller
2711.02.2009
Fragen?
Dipl.Inf. Swen Habenberger - Microcontroller
2811.02.2009
Konfiguration der USART Schnittstelle Synchrone oder asynchrone
Datenübermittlung Datenrate
BaudrateAnzahl Datenbits
In Abhängigkeit vom Protokoll nochFehlererkennung und Anzahl Stoppbits
Dipl.Inf. Swen Habenberger - Microcontroller
2911.02.2009
Kommunikation mit RS232
Startbit, Datenbits, Paritybit, StoppbitSynchrone oder Asynchrone Übertragung?
Zwischen 5 und 9 Datenbits Paritätsbit
Keins, gerade, ungerade, 0, 1 1 oder 1,5 oder 2 Stoppbits
Dipl.Inf. Swen Habenberger - Microcontroller
3011.02.2009
RS232
Sender und Empfänger müssen zunächst sich darüber einig werden wie die Bits der Übertragung interpretiert werden
5 -9 DatenbitsÜblicherweise 8 Bit (gelegentlich 7 Bit)9 Bits erfordern zusätzliche Betrachung von
Registern
Dipl.Inf. Swen Habenberger - Microcontroller
3111.02.2009
Partität / Parity
Es kann zur Fehlererkennung ein Bit angehängt werden. Häufig wird dieses Bit nicht verwendet (none) Even/Gerade: Es wird auf eine gerade Anzahl 1
ergänzt Odd/Ungerade: Es wird auf eine ungerade Anzahl an
1 ergänzt Mark: Immer 1 Space: immer 0
Es kann maximal ein 1-Bitfehler erkannt werden
Dipl.Inf. Swen Habenberger - Microcontroller
3211.02.2009
Beispiel Parity
00101010EvenParity: ergänze 1OddParity: ergänze 0MarkParity: ergänze 1SpaceParity: 0
Dipl.Inf. Swen Habenberger - Microcontroller
3311.02.2009
Stoppbits
Nach übermittlung von Startbit, Datenbits und evtl. Paritybit wird das Stoppbit übermittelt
Die Dauer des Stoppbits beträgt entweder 1 oder 1,5 oder 2 mal der Zeitdauer (Länge) eines DatenbitsMan spricht aber von 1, 1,5 oder 2 Stoppbits
Dipl.Inf. Swen Habenberger - Microcontroller
3411.02.2009
Hardwaredaten vs. Softwaredaten
Der Benutzer bestimmt im allgemeinen nur den Inhalt der Datenbits
Die Berechnung des Paritybits sowie das Senden des Startbits und des Stoppbits übernimmt in der Regel die HardwareEinstellungen aus den Registern ermöglichen
die Konfiguration
Dipl.Inf. Swen Habenberger - Microcontroller
3511.02.2009
Fragen?
Dipl.Inf. Swen Habenberger - Microcontroller
3611.02.2009
Übertragungsgeschwindigkeit
Die Übertragungsgeschwindigkeit wird in Baud angegeben.1 Baud entspricht 1 Symbol pro Sekunde
1 Symbol entspricht nicht immer 1 Bit 1 Symbol entspricht einer Änderung des
Signals
Dipl.Inf. Swen Habenberger - Microcontroller
3711.02.2009
Modulation
Durch Einsatz von mehreren Spannungen können mit einem Symbol mehrere Zustände übermittelt werden.2 Spannungen: 2 Bits (0 und 1)4 Spannungen: 0, 1V, 2V, 3V (00, 01, 10, 11)Usw.
Hierdurch können in einem Symbol auch mehrere Bits codiert sein
Dipl.Inf. Swen Habenberger - Microcontroller
3811.02.2009
Typische Baudraten bei RS232
Häufige Baudraten 9600 19200 115200 57600 38400
Seltene Baudraten 28800 14400 4800 2400 1200 300 75
Dipl.Inf. Swen Habenberger - Microcontroller
3911.02.2009
Baudgenerator
Als Taktgenerator dient ein Quarz mit der Taktrate von 1,8432 MHz oder Ganzzahlige Vielfache davon Als Alternative: 2,4567 MHz (4/3*1,84) oder 6,144
MHz (10/3*1,84 MHZ) oder ganzzahlige Vielfache
Baudrate = Taktfrequenz / (8*(2-Over)*CD) Over = 0 oder 1: Multiplikation mit 8 oder 16 CD = CounterDivider / ClockDivider
Dipl.Inf. Swen Habenberger - Microcontroller
4011.02.2009
Baudratenberechnung mit Teiler 16
Clock Baud-rate
Ergebnis CD Baud-rate
Fehler
12 MHz 38400 19,53 20 37500 2,40%
12,288 38400 20 20 38400 0,00%
18,432 38400 30 30 38400 0,00%
24 Mhz 38400 39,06 39 38461 0,16%
40 Mhz 38400
50 Mhz 38400
60 Mhz 38400
Dipl.Inf. Swen Habenberger - Microcontroller
4111.02.2009
Beispielübertragung
TXD ist die Transmit eXchange Data Line (Übertragungsleitung)
Dipl.Inf. Swen Habenberger - Microcontroller
4211.02.2009
Non-Return to Zero (NRZ)
Die Daten werden beim NRZ-Modus übertragen wie sie anfallen, d.h.1 = Hoher Pegel0 = Niedriger Pegel
Zwischen 2 oder mehr Einsen wird nicht auf den Grundpegel zurückgegangen
Problem: Übermittlung von 0en kann nicht unterschieden werden von Leitungsbruch
Dipl.Inf. Swen Habenberger - Microcontroller
4311.02.2009
Manchester Encoding
Anstelle die Daten als reiner Pegel zu übertragen, werden die Daten bei der asynchronen Datenübertragung häufig als Manchester-Codierung übertragen
Hierbei wird in der Mitte des Taktes das Signal invertiert
Zu Beginn wird bei einer 0 das Signal invertiert und bei einer 1 das Signal beibehalten
Dipl.Inf. Swen Habenberger - Microcontroller
4411.02.2009
Daten und Manchesterencoding
Dipl.Inf. Swen Habenberger - Microcontroller
4511.02.2009
Preamble = Lernen der Bits
Dipl.Inf. Swen Habenberger - Microcontroller
4611.02.2009
Empfang von Daten
Der Datenempfang wird durch eine oversampelte Clock überwacht Die Receiveclock arbeitet mit der 8- oder 16- Fachen
Geschwindigkeit der Baudrate
Bei Empfang des Stoppbits wird automatisch auf den Beginn des nächsten Startbits gewartet Es ist egal ob 1, 1,5 oder 2 Stoppbits eingestellt sind
Dipl.Inf. Swen Habenberger - Microcontroller
4711.02.2009
Empfang von Daten
Dipl.Inf. Swen Habenberger - Microcontroller
4811.02.2009
Synchroner Empfang
Empfang bei jeder steigenden Taktflanke
Dipl.Inf. Swen Habenberger - Microcontroller
4911.02.2009
Handshaking DTE-DCE
DTE - data terminal equipment : PC/ComputerTerminal (schnell)
DCE - data communication equipment: MODEM (langsam)
Einführung von Steuerleitungen:RTS: Request to Send: Darf Ich?CTS: Clear To Send: Ja du darfst!
Dipl.Inf. Swen Habenberger - Microcontroller
5011.02.2009
Hardwarehandshake
µC: Setzt des RTS Empfänger: Setzt CTS µC: Sendet Datenbits, Start und Stop Empfänger
Verarbeitet DatenFalls zu schnell Daten kommen, Rücksetzung
des CTS-Signals
Dipl.Inf. Swen Habenberger - Microcontroller
5111.02.2009
Timeguard
Mit Hilfe des Time-Guards können Verzögerungszeiten nach jedem Datenblock eingesetzt werden.
Dies verlängert de facto das Stoppbit um eine gewisse Zeit
Wird benötigt falls der Empfänger sehr viel langsamer arbeitet als der Sender und so ein Überlaufen des Empfangsbuffers zu vermeiden Wirkungsvoller ist wahrscheinlich aber die Senkung
der Baudrate
Dipl.Inf. Swen Habenberger - Microcontroller
5211.02.2009
Overrun Error
Nach jedem empfangenen Datum wird das RXRDY-Status Bit gesetzt und die Datenbits in das Empfangsregister kopiert
Beim nächsten Startbit wird das RXRDY-Status-Bit zurückgesetzt
Falls das RXRDY-Bit bereits gesetzt ist werden die Daten überschrieben und das Overrun-Error-Bit gesetzt
Es kann dann ein Interrupt ausgelöst werden, der die Datenkontrolle neuregelt
Dipl.Inf. Swen Habenberger - Microcontroller
5311.02.2009
Drift Compensation
Beim Empfang wird das Signal oversampelt. Hierdurch kann es zu Ungenauigkeiten kommen, z.B. eine Abweichung um 1 Bit nach 10 Durchläufen, dann wird ein zusätzliches Clocksignal in diese Periode eingefügt
Es kann auch ein Clocksignal aus der Periode ausgelassen werden
Dipl.Inf. Swen Habenberger - Microcontroller
5411.02.2009
Framing Error
Der Zeitraum zwischen den Start- und Stopbits ist konstant und hängt vom Baudrate und einer Anzahl Daten- und Paritätsbits ab.
Das Startbit wird immer mit einem Space Niveau angegeben, das Stoppbit mit dem Mark Niveau.
Wenn der Empfänger einen anderen Wert als Mark in dem Moment entdeckt, zu dem das Stopbit hätten empfangen werden müssen,
=> Framing Error aufgetreten ist Neusynchronisation erforderlich
Dipl.Inf. Swen Habenberger - Microcontroller
5511.02.2009
DTR und DSR
DTR: data terminal ready DSR: data set ready Diese beiden Leitungen werden immer auf
ON gehalten um zu signalisieren, dass eine Verbindung besteht
Dipl.Inf. Swen Habenberger - Microcontroller
5611.02.2009
Pegel
Die Pegel werden pseudo-differentiell übertragen, d.h. es werden 2 Leitungen miteinander verglichen, wobei die eine Leitung auf Masse gezogen ist
Die Pegel betragen ca. 12V und ca. -12 VSpezifikation: +5V bis +15V (0), und -5V bis -
15V (1)
Dipl.Inf. Swen Habenberger - Microcontroller
5711.02.2009
Pinbelegung
Dipl.Inf. Swen Habenberger - Microcontroller
5811.02.2009
Anschluss am PC
Dipl.Inf. Swen Habenberger - Microcontroller
5911.02.2009
Dipl.Inf. Swen Habenberger - Microcontroller
6011.02.2009
Nutzdaten / Datenrate
Dipl.Inf. Swen Habenberger - Microcontroller
6111.02.2009
Vergleich Baud / Bitlänge
Datenrate [baud] 300 2400 9600 19200 38400 57600 115200
Bitlänge 3,33 ms 417 µs 104 µs 52,08 µs 26,04 µs 17,36 µs 8,68 µs
Dipl.Inf. Swen Habenberger - Microcontroller
6211.02.2009
ISO7816 protocol
Neben den herkömmlichen Protokollen wie RS232 und RS485 können auch Smartcard, also Chipkarten mit dem USART gelesen und geschrieben werden
Dipl.Inf. Swen Habenberger - Microcontroller
6311.02.2009
IrDA protocol
Es ist auch möglich, Infrarot-Geräte über den USART anzusprechen.
Die Übertragung ähnelt sehr der Übertragung von RS232
Dipl.Inf. Swen Habenberger - Microcontroller
6411.02.2009
Fehlerkorrektur
Paritybits ermöglichen nur die Fehlererkennung einzelner Bits
Zur Fehlerkorrektur müssen in den Datenbits fehlerkorrigierende Codes eingebaut werden.
Ein Beipiel für fehlererkennenden Code ist der CRC
Dipl.Inf. Swen Habenberger - Microcontroller
6511.02.2009
RS485
Ähnlicher Standard wie RS232 Voll differntielle Datenübertragung Abschlusswiderstand notwendig Bis zu 32 Empfänger Leitungslänge bis zu 1200 m
Dipl.Inf. Swen Habenberger - Microcontroller
6611.02.2009
Modbus-Protokoll
Modbus ist ein in der Industrie verbreitetes Standard-Kommunikationsprotokoll zur Kommunikation in einer Master-Slave Umgebung
Ist ein beliebtes Datenprotokoll für die Kommunikation in RS485-Netzen
Dipl.Inf. Swen Habenberger - Microcontroller
6711.02.2009
Fragen?