1. Einleitung und Aufgabenstellung - users.etech.haw

Transcrição

1. Einleitung und Aufgabenstellung - users.etech.haw
Prof. Dr. J. Reichardt
Prof. Dr. B. Schwarz
haw hamburg
UART - CPLD 95108 - C 8052
FACHBEREICH ELEKTROTECHNIK
UND INFORMATIK
1
Einleitung und Aufgabenstellung ..................... 1-2
1.1 UART-Funktion................................................... 1-2
1.2 Serielles Protokoll der asynchronen Datenu bertragung 1-5
1.3 Hardware-U bersicht zum XESS-Board ............... 1-8
1.4 Konzept fu r den CPLD-basierten Empfanger.... 1-10
 B. Schwarz
1-1
Prof. Dr. J. Reichardt
Prof. Dr. B. Schwarz
haw hamburg
UART - CPLD 95108 - C 8052
1
Einleitung und Aufgabenstellung
1.1
UART-Funktion
FACHBEREICH ELEKTROTECHNIK
UND INFORMATIK
•
Zur Kommunikation zwischen Rechnersystemen, Automatisierungskomponenten und einfachen
embedded Mikrocontrollern werden serielle Datenkana le eingesetzt, die sich durch ihren geringen Materialeinsatz auszeichnen.
•
Ein UART (universal asynchronous receiver transmitter) ist ein weitverbreiteter Funktionsbaustein, der als Sender und Empfa nger von seriellen Daten arbeitet. Ein UART setzt parallele Daten byteweise in einen seriellen Datenstrom um und nimmt einen seriellen Datenstrom auf, der
als paralleles Datum von ihm weitergegeben wird.
•
Serielle Daten werden zwischen zwei UARTs ubertragen, die in zwei Gera ten eingebettet sind.
Jedes Gera t benotigt fur diese Kommunikation nur drei Leitungen: Eine Leitung fur die U bertragung, eine fur den Empfang und eine Masseleitung. Diese einfache Verbindungstechnik hat
dazu gefuhrt, dass Mikrocontroller typischerweise einen UART-Block als Peripherieschnittstelle enthalten.
•
Fur die serielle U bertragung eines 8 Bit Zeichens, mussen der Sender und der Empfa nger ein
gemeinsames Protokoll akzeptieren (vgl. Bild 1-1). Wenn keine Daten ubertragen werden ist die
Leitung im High-Zustand. Wird ein Datum gesendet, dann ist es eingerahmt:
 B. Schwarz
1-2
Prof. Dr. J. Reichardt
Prof. Dr. B. Schwarz
-
haw hamburg
UART - CPLD 95108 - C 8052
FACHBEREICH ELEKTROTECHNIK
UND INFORMATIK
Die Leitung nimmt fur die Dauer eines Bits den Low-Pegel an, um ein Startbit zu setzen.
Acht Datenbits folgen mit dem LSB zuerst, jedes Bit steht fur die gleiche Dauer an.
Zur Fehlerprufung durch den Empfa nger kann der Sender ein Parita tsbit anha ngen.
Zum Abschluss geht die Leitung wieder fur die Dauer von mindestens einem Bit in den HighZustand und signalisiert mit diesem Stopbit das Ende des U bertragungszyklus.
Stopbit
Pari- Daten- Daten- Daten- Daten- Daten- Daten- Daten- Datenta tsbit bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
Startbit
Bild 1-1 : Datenformat fur die Ubertragung von ASCII-Zeichen.
•
Der Empfa nger muss dieses Datenformat lesen, ohne dass fur ihn das Taktsignal verfugbar ist,
mit dem das Zeitraster der gesendeten Bits erzeugt wurde. Der Empfa nger arbeitet mit seinem
lokalen Taktsignal und verfugt nur uber die Information der Dauer der einzelnen Bits.
•
Eine grobe U bersicht zu den Komponenten eines UART gibt Bild 1-2
•
Das Ziel des Projektes ist es, eine unidirektionale Datenubertragung zu implementieren. Der
Empfa ngerteil (Receiver) eines UART ist mit dem CPLD 95108 zu realiseren. Der Sender soll
mit dem UART des Mikrocontrollers ß C 8052 gebildet werden, dessen Funktionen mit einem zu
entwerfenden Assembler-Code gesteuert wird.
 B. Schwarz
1-3
Prof. Dr. J. Reichardt
Prof. Dr. B. Schwarz
SER_IN
haw hamburg
UART - CPLD 95108 - C 8052
Datenbus des
Gera tes
UART-Receiver
FACHBEREICH ELEKTROTECHNIK
UND INFORMATIK
SENDEN
Shift-Reg.
Sendersteuerung
Data-Reg.
Data-Reg.
Empfangersteuerung
EMPFANG
UARTTaktGenerator
SYST_CLOCK
Freigabe
1
SER_OUT
Shift-Reg.
UART-Transmitter
Bild 1-2: Blockdiagramm eines UART.
 B. Schwarz
1-4
Prof. Dr. J. Reichardt
Prof. Dr. B. Schwarz
1.2
haw hamburg
UART - CPLD 95108 - C 8052
FACHBEREICH ELEKTROTECHNIK
UND INFORMATIK
Serielles Protokoll der asynchronen Datenubertragung
•
Der UART-Empfa nger nimmt den seriellen Bitstrom mit einem Schieberegister auf, entfernt das
Startbit und la dt das Byte parallel in ein Register, das mit dem Bus der Verarbeitungseinheit verbunden ist. Die seriellen Daten erscheinen mit einer dem Empfa nger bekannten Bitrate (Baudrate;
Bit pro Sekunde), wobei der Empfa nger-Takt (SAMP_CLK) nicht mit dem Sender-Takt
(TRA_CLK) synchronisiert ist, der nicht im Empfa nger verfugbar ist (vgl. Bild 1-3).
•
Zur Erkennung des Bitstroms arbeitet der Empfa nger deshalb mit einer deutlich hoheren lokalen
Taktfrequenz (S_CLK), mit deren Periode die eintreffenden Bits ha ufig genug abgetastet werden
konnen. In dem zu entwickelnden System soll der Empfa nger ein Datenformat mit 10 Bit aufnehmen. Die Abtastung erfolgt in einer Za hlfolge, die sicherstellt, dass die Bits in etwa zur Mitte ihrer
Dauer erfasst werden.
•
Der Zyklus der Signalabtastung muss so erfolgen, dass das Startbit (Low-Pegel) erkannt wird, danach 8 Datenbits durch das Empfa nger-Schieberegister getaktet werden und mit Identifizierung
des anschlie–enden Stopbits (High-Pegel) das Datenregister parallel geladen wird.
 B. Schwarz
1-5
Prof. Dr. J. Reichardt
Prof. Dr. B. Schwarz
haw hamburg
UART - CPLD 95108 - C 8052
FACHBEREICH ELEKTROTECHNIK
UND INFORMATIK
•
Die Synchronisation des Empfa ngers auf den Bitstrom wird
durch den Pollingvorgang des Startbit-Pegelwechsels durchgefuhrt. Je hoher die Taktfrequenz des
Empfa ngers gewa hlt wird, um so zeitlich pra ziser kann der Beginn des Startbits erkannt werden.
•
Den Ablauf einer zu realisierenden Eingangsbit-Abtastfolge zeigt Bild 1-3 prinzipiell auf. Nach dem
der Startbit Low-Pegel festgestellt wurde, werden noch drei weitere Abtastungen zur Besta tigung
des Startbits durchgefuhrt. Danach la uft ein Za hler an, der sichergestellt, dass das LSB in etwa in
der Mitte abgetastet wird. Nach jeder Abtastung, dass hei–t nach jedem Schiebevorgang in das
Empfangsregister beginnt der Abtastza hler wieder bei Null. Parallel dazu registriert ein inkrementierender Bit-Za hler jedes abgetastete Bit. Wenn der Bit-Za hler den Stand 8 erreicht hat und der
High-Pegel des Stopbits abgetastet wird, so kann der Schieberegisterinhalt im Datenregister gepuffert werden.
Start- Daten- Daten- Daten- Daten- Daten- Daten- Daten- Datenbit 0
bit 1
bit 2
bit 3
bit 4
bit 5
bit 6
bit 7
bit
Stopbit
S_CLK
 B. Schwarz
1-6
Prof. Dr. J. Reichardt
Prof. Dr. B. Schwarz
haw hamburg
UART - CPLD 95108 - C 8052
FACHBEREICH ELEKTROTECHNIK
UND INFORMATIK
Bild 1-3: Signalabtastfolge im Empfa nger. Sender-Baudrate (TRA_CLK) und Empfa nger-Abtastrate (S_CLK).
 B. Schwarz
1-7
Prof. Dr. J. Reichardt
Prof. Dr. B. Schwarz
1.3
haw hamburg
UART - CPLD 95108 - C 8052
FACHBEREICH ELEKTROTECHNIK
UND INFORMATIK
Hardware-U bersicht zum XESS-Board
ß C 8032
C PLD XC 95108
X T A L 1 T akt
SY ST _C L O C K
SR A M -Interface
R ST R eset
R E SE T
T X D Sendesignal
T a ktgenerator
¬ P SE N SR A M E nable
¬ R D R ead
E m pfa nger-Steuerung
A L E A ddress-L atch E nable
E m pfangssignalP ufferung
A 0/D 0 „ A 7/D 7 M ultiplexed A ddress/D ata
A 8 -A 15 A ddress-H ighbyte
¬ W R W rite
E m pfangssignalV erarbeitung
¬WE
Siebensegm entA nsteuerung
SR A M 32 kB
A 8 -A 15
D 0 „D 7
A 0 „A 7
¬ O E O utput E nable
¬ C E C hip E nable
Bild 1-4 : Hardware-Komponenten des XESS-Boards. CPLD-Funktionen und Interfacesignale.
 B. Schwarz
1-8
Prof. Dr. J. Reichardt
Prof. Dr. B. Schwarz
haw hamburg
UART - CPLD 95108 - C 8052
FACHBEREICH ELEKTROTECHNIK
UND INFORMATIK
•
Der mit dem CPLD gekoppelte Mikrocontroler ß C8032 ist
eine ROM-lose Version des ß C8052, fur die ein kombinierter Programm- und Datenspeicher
mit 32 kB zur Verfugung steht (vgl. Bild 1-4). Das Low-Byte der Adressen und der Datenbus
werden vom Mikrocontroller zeitlich gemultiplexed uber die Ai/Di-Anschlusse dem CPLD und
den Dateneinga ngen Di des SRAMs mitgeteilt. Damit die 16 Bit Adressen und die Daten zur gleichen Zeit am SRAM Speicher anliegen, ist das Low-Byte der Adressen im CPLD zu “ latchen , d.
h. mit einem taktflanken gesteuerten Register zu speichern. Der “ Latchvorgang wird vom ß C
8052 mit dem Signal ALE Address-Latch-Enable bei jedem Speicherzugriff (Befehls- und Datentransfers) angezeigt (vgl. Kap. 3.3).
•
Diese Adressbus-Zwischenspeicherung sowie die Freischaltung der SRAM-Speicherausga nge
(¬OE) mit den Steuersignalen ¬PSEN und ¬RD, die der ß C 8052 automatisch erzeugt, ist mit
VHDL-Code innerhalb einer Komponente SRAM-Interface zu beschreiben. Ebenso mussen dem
Mikrocontroller das Taktsignal und der highaktive Resetpegel uber das CPLD mitgeteilt werden.
•
Zur Anzeige der vom ß C 8052 empfangenen Bytes ist die Siebensegment-LED des XESS-Boards
uber den bekannten Codeumsetzer anzusteuern. Fur das CPLD ist also eine *.UCF-Datei (UserConstraints-File) zu erzeugen, die den CPLD-Eingangs- und Ausgangssignalen die durch das
Boardlayout vorgegebenen Anschlusspinnummern zuordnet.
 B. Schwarz
1-9
Prof. Dr. J. Reichardt
Prof. Dr. B. Schwarz
1.4
haw hamburg
UART - CPLD 95108 - C 8052
FACHBEREICH ELEKTROTECHNIK
UND INFORMATIK
Konzept fur den CPLD-basierten Empfa nger
•
Die bisher beschriebenen Funktionen des UART-Receivers (vgl. Bild 1-2), der durch das CPLD
realisiert werden soll, sind im Blockdiagramm Bild 1-5 als gekoppelte Module zusammengefasst.
•
Der Steuerautomat FSM (Finite State Machine) bildet den Kern der Empfa ngersteuerung. Das
serielle Eingangssignal TXD wird auf Start- und Stopbit uberwacht. Auf Basis der Za hlersta nde
des Abtastza hlers SAMPLE_COUNT und des Bitza hlers BIT_COUNT werden die Entscheidungen fur die Schiebevorga nge und fur das Laden des Datenregisters getroffen. Zusa tzlich mussen
die genannten Za hler freigegeben und ggf. zuruckgesetzt werden. Fur diesen Steuerautomaten
muss auf Basis der in Kap. 2.3 erla uterten Algorithmic State Machine Chart (ASM Chart) Beschreibungstechnik ein aussagekra ftiges Zustandsdiagramm entworfen werden.
•
Der Block SHIFT_REGISTER realisiert die sogenannte doppelte Pufferung (double buffering)
der Eingangsbits. Solange neue Eingangsbits vom Schieberegister aufgenommen werden, steht
das vorher empfangene Byte am Datenregisterausgang fur die Weiterverarbeitung parallel zur
Verfugung.
•
Alle Blocke erhalten ein gemeinsames Taktsignal S_CLK (Abtastfrequenz), das ein Frequenzteiler als Taktgenerator aus dem Systemtaktsignal SYST_CLOCK ableiten muss. Ein externer
asynchroner Reset ist an alle getakteten Blocke anzuschlie–en.
 B. Schwarz
1-10
Prof. Dr. J. Reichardt
Prof. Dr. B. Schwarz
haw hamburg
UART - CPLD 95108 - C 8052
FACHBEREICH ELEKTROTECHNIK
UND INFORMATIK
Bild 1-5: Module des CPLD-basierten Empfa ngers.
 B. Schwarz
1-11