Lade Inhalt...

Weiterentwicklung einer universellen Regelstrecke mit einem 16-Bit Mikrocontroller

©2000 Diplomarbeit 109 Seiten

Zusammenfassung

Inhaltsangabe:Einleitung:
Am Institut für Regelungs- und Prozessleittechnik der FH Mannheim werden für Laborübungen mit digitalen Reglern Regelstrecken durch analoge Rechenschaltungen nachgebildet; diese Analoggeräte sind sehr komplex aufgebaut, störanfällig und in der Bedienung nicht unproblematisch.
Eine Idee war es, diese analoge Regelstrecke durch eine einfach zu bedienende universelle digitale Regelstrecke zu ersetzen, welche im Regelkreis das gleiche Verhalten wie die analoge Regelstrecke zeigt. Um ein quasistationäres Verhalten des Systems zu gewährleisten, muß die maximale Abtastzeit der digitalen Strecke kleiner sein als die minimale Abtastzeit des Reglers (15ms). Dies sollte mit dem 16-Bit Mikrocontroller 80C166 von Siemens erreicht werden.
In zwei vorangegangenen Diplomarbeiten wurde ein voll funktionsfähiges Gerät entwickelt, das allerdings einige Mängel in der Hardware aufweist und dessen Bedienkonzept über keinen Raum für spätere Erweiterungen verfügt.
Im Rahmen einer Diplomarbeit war die bestehende Hardware und Software für die z.Z. bestehende digitale Regelstrecke zu überarbeiten und ein neues Bedienkonzept, das über ein LCD-Display angezeigt werden soll, zu entwickeln.

Inhaltsverzeichnis:Inhaltsverzeichnis:
1.Einleitung6
1.1Allgemeines6
1.2Aufgabenstellung6
2.Grundlagen zur Hardware7
2.1Netzteil und Busplatine7
2.2Wahl des Mikrocontrollers7
2.2.1Mikrocontroller Vergleich7
2.3Der Mikrocontroller 80C1668
2.3.1Speicherorganisation9
2.3.2CPU9
2.3.3Interruptsystem10
2.3.4Externer Bus11
2.3.5Parallele Ports11
2.3.6Serielle Ports12
2.3.7Timer Einheit12
2.3.8Capture-/Compare-Einheit12
2.3.9AD-Wandler des Mikrocontrollers12
2.3.10Watchdog-Timer13
2.4Die LCD-Anzeige14
2.4.1Der Grafikcontroller HD4478015
2.4.1.1Die Register15
2.4.1.2Das Busy-Flag16
2.4.1.3Der Adreßzähler16
2.4.1.4Das Anzeigen-RAM16
2.4.1.5Das Charakter-ROM16
2.4.1.6Das Charakter-RAM16
2.4.1.7Der Befehlssatz17
2.5EAGLE Layout-Editor19
3.Grundlagen zur Software21
3.1Regelstreckengleichungen21
3.1.1Proportionalglied (P-Glied)21
3.1.2Integrierglied (I-Glied)21
3.1.3Verzögerungsglied 1. Ordnung (T1 Glied)21
3.2C166 Standard Developers Kit22
3.3EPROM-Simulator23
4.Die Hardware25
4.1Blockschaltbild der Hardware25
4.2Die Eingangsbeschaltung25
4.3Die Ausgangsbeschaltung27
4.4Die Bargraphanzeigen29
4.5Die Overflow/Underflow Anzeigen31
4.6Eingabetaster32
4.7Das LCD-Display33
4.8Die Mikrocontrollerplatine33
4.8.1Portbelegung des […]

Leseprobe

Inhaltsverzeichnis


ID 4830
Schmidt, Rainer: Weiterentwicklung einer universellen Regelstrecke mit einem 16-Bit
Mikrocontroller / Rainer Schmidt - Hamburg: Diplomica GmbH, 2001
Zugl.: Mannheim, Fachhochschule, Diplom, 2000
Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die
der Übersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und Tabellen,
der Funksendung, der Mikroverfilmung oder der Vervielfältigung auf anderen Wegen und der
Speicherung in Datenverarbeitungsanlagen, bleiben, auch bei nur auszugsweiser Verwertung,
vorbehalten. Eine Vervielfältigung dieses Werkes oder von Teilen dieses Werkes ist auch im
Einzelfall nur in den Grenzen der gesetzlichen Bestimmungen des Urheberrechtsgesetzes der
Bundesrepublik Deutschland in der jeweils geltenden Fassung zulässig. Sie ist grundsätzlich
vergütungspflichtig. Zuwiderhandlungen unterliegen den Strafbestimmungen des
Urheberrechtes.
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem
Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche
Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten
wären und daher von jedermann benutzt werden dürften.
Die Informationen in diesem Werk wurden mit Sorgfalt erarbeitet. Dennoch können Fehler nicht
vollständig ausgeschlossen werden, und die Diplomarbeiten Agentur, die Autoren oder
Übersetzer übernehmen keine juristische Verantwortung oder irgendeine Haftung für evtl.
verbliebene fehlerhafte Angaben und deren Folgen.
Diplomica GmbH
http://www.diplom.de, Hamburg 2001
Printed in Germany

Wissensquellen gewinnbringend nutzen
Qualität, Praxisrelevanz und Aktualität zeichnen unsere Studien aus. Wir
bieten Ihnen im Auftrag unserer Autorinnen und Autoren Wirtschafts-
studien und wissenschaftliche Abschlussarbeiten ­ Dissertationen,
Diplomarbeiten, Magisterarbeiten, Staatsexamensarbeiten und Studien-
arbeiten zum Kauf. Sie wurden an deutschen Universitäten, Fachhoch-
schulen, Akademien oder vergleichbaren Institutionen der Europäischen
Union geschrieben. Der Notendurchschnitt liegt bei 1,5.
Wettbewerbsvorteile verschaffen ­ Vergleichen Sie den Preis unserer
Studien mit den Honoraren externer Berater. Um dieses Wissen selbst
zusammenzutragen, müssten Sie viel Zeit und Geld aufbringen.
http://www.diplom.de bietet Ihnen unser vollständiges Lieferprogramm
mit mehreren tausend Studien im Internet. Neben dem Online-Katalog und
der Online-Suchmaschine für Ihre Recherche steht Ihnen auch eine Online-
Bestellfunktion zur Verfügung. Inhaltliche Zusammenfassungen und
Inhaltsverzeichnisse zu jeder Studie sind im Internet einsehbar.
Individueller Service
­
Gerne senden wir Ihnen auch unseren Papier-
katalog zu. Bitte fordern Sie Ihr individuelles Exemplar bei uns an. Für
Fragen, Anregungen und individuelle Anfragen stehen wir Ihnen gerne zur
Verfügung. Wir freuen uns auf eine gute Zusammenarbeit.
Ihr Team der Diplomarbeiten Agentur

Inhaltsverzeichnis
FH Mannheim
Diplomarbeit Rainer Schmidt
Seite 3
Inhaltsverzeichnis
1
Einleitung ...6
1.1 Allgemeines...6
1.2 Aufgabenstellung...6
2
Grundlagen zur Hardware...7
2.1 Netzteil und Busplatine...7
2.2 Wahl des Mikrocontrollers...7
2.2.1
Mikrocontroller Vergleich...7
2.3 Der Mikrocontroller 80C166...8
2.3.1
Speicherorganisation ...9
2.3.2
CPU ...9
2.3.3
Interruptsystem ...10
2.3.4
Externer Bus ...11
2.3.5
Parallele Ports ...11
2.3.6
Serielle Ports...12
2.3.7
Timer Einheit ...12
2.3.8
Capture-/Compare-Einheit ...12
2.3.9
AD-Wandler des Mikrocontrollers ...12
2.3.10 Watchdog-Timer ...13
2.4 Die LCD-Anzeige...14
2.4.1
Der Grafikcontroller HD44780...15
2.4.1.1 Die Register ...15
2.4.1.2 Das Busy-Flag...16
2.4.1.3 Der Adreßzähler...16
2.4.1.4 Das Anzeigen-RAM...16
2.4.1.5 Das Charakter-ROM ...16
2.4.1.6 Das Charakter-RAM ...16
2.4.1.7 Der Befehlssatz ...17
2.5 EAGLE Layout-Editor...19
3
Grundlagen zur Software ...21
3.1 Regelstreckengleichungen...21
3.1.1
Proportionalglied (P-Glied) ...21
3.1.2
Integrierglied (I-Glied)...21
3.1.3
Verzögerungsglied 1. Ordnung (T1 Glied) ...21
3.2 C166 Standard Developers Kit...22

Inhaltsverzeichnis
FH Mannheim
Diplomarbeit Rainer Schmidt
Seite 4
3.3 EPROM-Simulator ...23
4
Die Hardware ...25
4.1 Blockschaltbild der Hardware ...25
4.2 Die Eingangsbeschaltung ...25
4.3 Die Ausgangsbeschaltung ...27
4.4 Die Bargraphanzeigen...29
4.5 Die Overflow/Underflow Anzeigen ...31
4.6 Eingabetaster ...32
4.7 Das LCD-Display ...33
4.8 Die Mikrocontrollerplatine...33
4.8.1
Portbelegung des Mikrocontrollers...34
4.8.2
Die 80C166 Sockelplatine...35
4.8.3
Hardwarekonfiguration des Controllers ...36
4.8.4
Speicherraumaufteilung...37
4.8.5
Speicherbausteine ...38
4.8.6
Adreßdekodierung...40
4.8.7
Die RS232-Schnittstelle ...40
4.8.8
Die A/D-Wandlung ...41
4.8.9
Die Echtzeituhr ...41
5
Die Software...43
5.1 Blockschaltbild der Software ...43
5.2 Die Struktur 'Streckenmaske': ...43
5.3 Die Tasterabfrage...44
5.3.1
Einlesen der Taster...44
5.3.2
Das Entprellen der Taster ...44
5.3.3
Die switch-Anweisung ...46
5.4 Die LCD-Anzeige...47
5.4.1
Reset des LCD-Displays ...47
5.4.2
Benutzerdefinierte Zeichen...47
5.4.3
Der Anzeigenpuffer...50
5.5 Regelstreckenberechnung ...52
5.5.1
Interrupt-Service-Routine...52
5.5.2
Begrenzen der Stellgröße ...53
5.5.3
Ansteuern der Overflow-/Underflow-LEDs...54
6
Bedienung der Regelstrecke...55
7
Ausblick ...57

Inhaltsverzeichnis
FH Mannheim
Diplomarbeit Rainer Schmidt
Seite 5
Anhang A Quellverzeichnis ...58
Anhang B
Inhalt der beiliegenden CD...59
Anhang C
Klemmenpläne ...60
Anhang C.1 Klemmleiste X1 (Busbelegung)...60
Anhang C.2 Klemmleiste X2 und X3...61
Anhang C.3 Klemmen X4 und X5 ...61
Anhang C.4 Klemme 6 ...61
Anhang D Schaltpläne und Platinenlayouts ...63
Anhang D.1 I/O-Board...63
Anhang D.2 Ansteuerplatine ...67
Anhang D.3 Frontplatte...72
Anhang D.4 Frontplatte (upper) ...76
Anhang D.5 Sockelplatine...80
Anhang D.6 Controller-Board ...82
Anhang E
Software ...87

1 Einleitung
FH Mannheim
Diplomarbeit Rainer Schmidt
Seite 6
1 Einleitung
1.1 Allgemeines
Am Institut für Regelungs- und Prozessleittechnik werden für Laborübungen mit digitalen
Reglern Regelstrecken durch analoge Rechenschaltungen nachgebildet; diese Analoggeräte
sind sehr komplex aufgebaut, störanfällig und in der Bedienung nicht unproblematisch.
Eine Idee war es, diese analoge Regelstrecke durch eine einfach zu bedienende universelle
digitale Regelstrecke zu ersetzen, welche im Regelkreis das gleiche Verhalten wie die analoge
Regelstrecke zeigt. Um ein quasistationäres Verhalten des Systems zu gewährleisten, muß die
maximale Abtastzeit der digitalen Strecke kleiner sein als die minimale Abtastzeit des Reglers
(15ms). Dies sollte mit dem 16-Bit Mikrocontroller 80C166 von Siemens erreicht werden.
In zwei vorangegangenen Diplomarbeiten[2][8] wurde ein voll funktionsfähiges Gerät
entwickelt, das allerdings einige Mängel in der Hardware aufweist und dessen Bedienkonzept
über keinen Raum für spätere Erweiterungen verfügt.
1.2 Aufgabenstellung
Im Rahmen dieser Diplomarbeit ist die bestehende Hardware und Software für die z.Z.
bestehende digitale Regelstrecke zu überarbeiten und ein neues Bedienkonzept, das über ein
LCD-Display angezeigt werden soll, zu entwickeln.
Folgende Punkte sind Bestandteile dieser Diplomarbeit:
·
Planung einer 16-Bit Mikrocontrollerplatine
1
und der Busbelegung unter
Berücksichtigung der Verwendung als Universal Mikrocontrollerplatine
·
Entwicklung einer I/O-Platine mit einer Pegelanpassung für den Eingang und einer 10-Bit
DA-Wandlung mit Pegelanpassung für den Ausgang
·
Entwicklung der Ansteuerung für das LCD-Display, die Taster und der sonstigen
Anzeige- und Bedienelemete auf der Frontplatte
·
Design und Anbindung der Frontplatte mit den Anzeige- und Bedienelementen
·
Entwickeln der Software für die Tasterabfrage und die Ansteuerung des LCD-Displays
·
Anpassung der bestehenden Software für die Regelstreckenalgorithmen
1
Die Entwicklung und Realisierung der Mikrocontrollerplatine war nicht Bestandteil dieser Diplomarbeit,
sondern wurde parallel dazu im Rahmen einer weiteren Diplomarbeit durchgeführt.

2 Grundlagen zur Hardware
FH Mannheim
Diplomarbeit Rainer Schmidt
Seite 7
2 Grundlagen zur Hardware
2.1 Netzteil und Busplatine
Das Netzteil und die Busplatine wurden nicht im Institut für Regelungstechnik entwickelt,
sondern von der Firma Artz&Göpfert ELEKTRONIK bezogen.
Das Netzteil ist mit einem Transformator und einem Linearregler realisiert und stellt folgende
Ausgangsspannungen und Potentialanschlüsse zur Verfügung:
·
+5V/1A für die Versorgung des Mikrocontrollers-ICs, der Speicher-ICs, der Logik-ICs
und die Versorgung sonstiger Hilfsschaltungen und Anwendungen (LCD-Display,
LEDs,...).
·
+15V/315mA für die Versorgung von Operationsverstärkern in den analogen
Schaltungsteilen.
·
-15V/315mA für die Versorgung von Operationsverstärkern in den analogen
Schaltungsteilen.
·
AGND als Masse für analoge Schaltungen
·
DGND als digitale Masse für getaktete Signalleitungen und Digitalschaltungen.
2.2 Wahl des Mikrocontrollers
Die digitale Regelstrecke soll mit einem 16-Bit-Mikroprozessor der 8xC16x-Familie von
Infineon realisiert werden. Die Auswahl des Mikrocontrollers erfolgte nicht nur in Bezug auf
die digitale Regelstrecke, sondern auch auf die Anforderungen für ein 16-Bit-
Mikrocontroller-Universalsystem.
2.2.1 Mikrocontroller Vergleich
Als ROM-lose Variante der 80C16x-Familie stehen die Modelle 80C166, 80C165 und
80C167 zur Verfügung. Diese sind für unterschiedliche Anwendungsgebiete vorgesehen. So
wird der 80C165 in der Datenverarbeitung, Kommunikationstechnik und der Medizintechnik
verwendet, der 80C166 zum Steuern und Regeln in der Industrie und der 80C167 hat sein
Haupteinsatzgebiet in der Automobilelektronik. Die folgende Tabelle zeigt die einzelnen
Leistungsmerkmale der drei Mikrocontroller.
Leistungsmerkmale
80C165
80C166
80C167
Allgemeines
Typbezeichnung
SAB80C165LM
SAB80C166M
SAB80C167LM
Gehäuse
P-MQFP-100
P-MQFP-100
P-MQFP-144
Sockel erhältlich
nein
Nein
nein
günstigster Preis
38,00 DM
30,77 DM
56,60 DM
Speicher
Linearer Adreßraum
16 MB
256 KB
16 MB
On Board ROM
-
-
-
On Board RAM
2 KB
1 KB
2 KB
On-Chip Peripherie

2 Grundlagen zur Hardware
FH Mannheim
Diplomarbeit Rainer Schmidt
Seite 8
Leistungsmerkmale
80C165
80C166
80C167
Ein-/Ausgänge (insgesamt)
77
76
111
AD-Wandler
-
10 x 10 Bit
16 x 10 Bit
Timer/Zähler
5 x 16 Bit
7 x 16 Bit
9 x 16 Bit
Capture/Compare Einheit
-
16
32
PWM-Ausgänge
über Software
realisierbar
über Software
realisierbar
4
Interrupt (Quellen/Ebenen)
28/16
32/16
56/16
Serielle I/O
USART + SSC
2 x USART
USART + SSC
Tabelle 1: Überblick über die 80C166 Mikrocontrollerfamilie
Der 80C165 ist für ein Universalsystem nicht geeignet, da er keinen integrierten A/D-
Wandler besitzt. Die Möglichkeit des Verarbeitens von Analogsignalen ist aber ein wichtiger
Bestandteil eines Universalsystems.
Die Vorteile des 80C167 liegen im Gegensatz zum 80C166 in der größeren Anzahl von Port-
Pins, des größeren Adreßraumes, des größeren internen RAMs und der hardwaremäßigen
PWM-Ausgänge.
Jedoch sind diese Vorteile des 80C167 (viele Ports, großer Adreßraum,...) durch das
Universalsystem begrenzt. Die Busplatine des Universalsystems ist auf 96 Leitungen
begrenzt. Daher ist die große Anzahl von Ports nicht nötig, da diese nicht alle auf dem Bus
bereit gestellt werden können. Auch ein Adreßraum von 16Mbyte ist für das Universalsystem
nicht tragbar, da eine große Anzahl von Adreßleitungen ebenfalls auf den Bus sollten
(memory mapping).
Lediglich der Vorteil der PWM-Ausgänge wäre damit gegeben. Ein PWM-Ausgang kann
allerdings auch softwaremäßig mit der Capture-/Compare-Einheit realisiert und über einen
Port ausgegeben werden. Darum wäre dieser Vorteil teuer erkauft, denn der Preis des 80C167
ist fast doppelt so teuer wie der des 80C166.
Da es für beide Mikrocontroller keine Sockel gibt, ist für die 16-Bit Mikrocontrollerkarte
schließlich auf den Mikrocontroller SAB80C166M zurückgegriffen worden. Dieser ist von
der Anzahl der Ports, der On-Chip-Peripherie und dem Adreßraum ausreichend für das
Universalsystem und die digitale Regelstrecke.
2.3 Der Mikrocontroller 80C166
Der 80C166 der Firma Infineon (ehemals Siemens) ist ein 16-Bit Mikrocontroller in von
Neumann Architektur.

2 Grundlagen zur Hardware
FH Mannheim
Diplomarbeit Rainer Schmidt
Seite 9
Takt Generator
8kB interner ROM
(optional SAB83C166)
Watchdog Timer
1,5kB interner RAM und
Special Function Register (SFR)
16-BIT-CPU
Interrupt & PEC- Controller
Analog/Digital
Wandler
(10x10 Bit)
Timer T0
Capture/Compare-
Einheit
Timer T1
Serielle
Schnittstelle
(ASC0)
Serielle
Schnittstelle
(ASC1)
General Purpose
Timer Einheit
GPT1
General Purpose
Timer Einheit
GPT1
Timer T6
Timer T5
Timer T4
Timer T3
Timer T2
I/O Ports
externer Bus
Controller
Abbildung 1: Übersichtsdiagramm des 80C166
2.3.1 Speicherorganisation
Der 80C166 besitzt 18 Adreßleitungen und kann somit einen linearen Adreßraum von
256kByte adressieren. Entsprechend der Von-Neumann-Architektur sind in diesem
Speicherbereich sowohl internes ROM (falls vorhanden), internes RAM (inklusive der
Special-Function-Register) und externe Speicherbausteine angeordnet.
Obwohl der 80C166 ein 16 Bit-Mikrocontroller ist, ist der Speicher byteweise organisiert,
wodurch nicht nur wortorientierte sondern auch byteorientierte Speicherzugriffe möglich sind.
Wortorientierte Zugriffe beginnen immer mit geraden Adressen; die gerade Adresse
bezeichnet das Low-Byte, die darauffolgende ungerade Adresse das High-Byte.
2.3.2 CPU
Die CPU - das Herz des Mikrocontrollers ­ erreicht im Vergleich zu anderen 16-Bit
Controllern eine Rechenleistung, die deutlich über dem Durchschnitt liegt und sogar mit 32-
Bit CPUs mithalten kann.
Zum Erreichen dieser hohen Rechenleistung trägt vor allem die Befehlspipeline bei. Die
Befehlspipeline splittet den Befehl in 4 Phasen auf und arbeitet diese 4 Phasen hintereinander
ab. Da die Befehlspipeline parallel arbeitet, kann mit dem nächsten Befehl begonnen werden,
sobald der erste Befehl in die nächste Phase übergeht; Somit sind immer 4 Befehle
gleichzeitig in der Pipeline und jeden Maschinenzyklus wird ein Befehl beendet und ein neuer
begonnen. Obwohl die Abarbeitung des Befehls 4 Maschinenzyklen dauert ergibt sich global

2 Grundlagen zur Hardware
FH Mannheim
Diplomarbeit Rainer Schmidt
Seite 10
betrachtet eine Ausführungsgeschwindigkeit von einem Befehl pro Maschinenzyklus. Um die
Effektivität der Pipeline voll ausnützen zu können wurde ein Befehlssatz entworfen, der sich
durch Konsistenz und Regelmäßigkeit auszeichnet.
WRITE BACK
FETCH
DECODE
EXECUTE
Befehl n
Befehl n
Befehl n
Befehl n
Befehl n+1
Befehl n+1
Befehl n+1
Befehl n+1
Befehl n+2
Befehl n+2
Befehl n+2
Befehl n+3
Befehl n+3
Befehl n+4
Befehl n-1
Befehl n-1
Befehl n-1
Befehl n-2
Befehl n-2
Befehl n-3
Systemtakt
Maschinenzyklus
State
Abbildung 2: Befehlspipeline
Die vier Stufen der Befehlsabarbeitung sind folgendermaßen definiert:
·
Fetch (Holen): der Befehl wir durch den Instruction Pointer und den Code-Segment-
Pointer aus dem Speicher geholt.
·
Decode (Dekodieren): der Befehl wird dekodiert und wenn nötig Operandenadressen
berechnet und die Werte in die CPU eingelesen.
·
Execute (Ausführen): Die eingelesenen Operanden werden modifiziert bzw. verknüpft;
die Statusflags im PSW (Processor-Status-Word) und andere Special-Function-Register
werden aktualisiert.
·
Write Back (Zurückschreiben): Schreibvorgänge auf den internen bzw. externen RAM
werden ausgeführt.
2.3.3 Interruptsystem
Der 80C166 verfügt über 32 Interruptquellen, die 16 Interruptebenen zugeordnet werden
können. Jede Interruptebenen ist noch einmal in 4 Gruppenebenen unterteilt. Die
Interruptebene und die Gruppenebene gibt an, ob ein Interrupt von einem anderen Interrupt
unterbrochen werden kann, oder welche Interruptroutine bei mehreren anstehenden Interrupts
zuerst bearbeitet wird.
Der 80C166 besitzt 3 Mechanismen zur Interruptbearbeitung:
·
Klassischer Interrupt
Hierbei handelt es sich um den normalen Interrupt, wie er bei jedem Controller und
Prozessor realisiert ist. Bei einer Interruptanforderung (Interrupt-Request) wird der
normale Programmablauf unterbrochen und statt dessen die Interrupt-Service-Routine
(ISR) ausgeführt. Nachdem die ISR beendet ist, wird das Programm an der Stelle
fortgesetzt, wo es durch den Interrupt unterbrochen wurde.
·
PEC-Transfer
Der PEC-Transfer
1
ist ein Interrupt, bei dem lediglich ein einzelner Datentransfer
durchgeführt wird, d.h. es müssen keine Statusinformationen gesichert werden und der
1
PEC: Peripheral Event Controller

2 Grundlagen zur Hardware
FH Mannheim
Diplomarbeit Rainer Schmidt
Seite 11
Programmablauf wird für höchstens einen Maschinenzyklus unterbrochen. Ein typisches
Beispiel für einen PEC-Transfer wäre z.B. das Speichern von Ergebnissen des AD-
Wandlers in einer Tabelle im RAM.
·
Traps
Traps werden grundsätzlich genauso behandelt wie normale Interrupts; der einzige
Unterschied zu diesen ist, daß Traps direkt durch die CPU aufgerufen werden. Traps
können sowohl durch die Hardware (Reset, Stack-Overflow, NMI), als auch durch die
Software mit dem Befehl TRAP aufgerufen werden.
2.3.4 Externer Bus
Soll der 80C166 mit externem Speicher betrieben werden, muß der externe Bus mit dem Pin
/BUSACT=Low freigeschaltet werden. Um ein flexible Anpassung an externe Bausteine zu
gewährleisten sind 4 verschiedene Busmodi möglich, die hinsichtlich dem Hardwareaufwand,
den Kosten und der Geschwindigkeit eine für die geforderte Applikation optimale
Buskonfiguration bedeuten.
Busmodus
Adreßbus
Datenbus
EBC0
EBC1
8-Bit Datenbus
Demultiplex-Verfahren
P1.0 ­ P1.15,
P4.0 ­ P4.1
P0.0 ­ P0.7
0
0
8-Bit Datenbus
Multiplex-Verfahren
P0.0 ­ P0.15,
P4.0 ­ P4.1
P0.0 ­ P0.7
0
1
16-Bit Datenbus
Multiplex-Verfahren
P0.0 ­ P0.15,
P4.0 ­ P4.1
P0.0 ­ P0.15
1
0
16-Bit Datenbus
Demultiplex-Verfahren
P1.0 ­ P1.15,
P4.0 ­ P4.1
P0.0 ­ P0.15
1
1
Tabelle 2: Busmodi des 80C166
Der Adreßbus ist immer 16 Bit im Not-Segmented Mode, bzw. 18 Bit im Segmented Mode
breit. Im gemultiplexten Bus Modus stehen für die Datenleitungen ein getrennter Port bereit,
während im nicht gemultiplexten Bus Modus zuerst die Adressen in einem Latch
1
gespeichert
werden und im nächsten Takt am gleichen Port die Daten gesendet, bzw. gelesen werden.
2.3.5 Parallele Ports
Der 80C166 verfügt über 5 Port mit insgesamt 76 Ein/Ausgabe-Pins, wobei der 10 Bit breite
Port 5 nur als Eingang oder als Analogeingang für den AD-Wandler zur Verfügung steht.
Da externer Speicher benötigt wird entfallen die Ports P0, P1 und P4, sodaß für die Ein- und
Ausgabe nur Port P2, P3 und P5 zu Verfügung stehen, wobei Teile der Ports 3 für
Sonderfunktionen (z.B. serielle Schnittstellen) reserviert sind. Die genaue Portbelegung ist
Tabelle 8 zu entnehmen.
Die Steuerung der Ports erfolgt über die Port Direction-Control-Register DP0 bis DP4; diese
Register sind bitadressierbar und ermöglichen so die individuelle Programmierung der
Richtungssteuerung jedes einzelnen Pins. Port 5 ist nur ein unidirektionaler Port und besitzt
kein Direction-Control-Register; auch die Verwendung als Analog- oder Digitaleingang muß
1
Latch: Zwischenspeicher für Adressen oder Daten

2 Grundlagen zur Hardware
FH Mannheim
Diplomarbeit Rainer Schmidt
Seite 12
für den Port nicht gesondert festgelegt werden. Das Einlesen der Ausgänge und das Ausgeben
der Ausgänge erfolgt über die Port-Datenregister P0 bis P5.
2.3.6 Serielle Ports
Der 80C166 besitzt 2 serielle Schnittstellen (P3.8 ­ P3.11) zur Kommunikation mit anderen
Mikrocontrollern oder externen Geräten. Dabei kann zwischen asynchroner und synchroner
Betriebsart gewählt werden.
Eine genauere Beschreibung der seriellen Schnittstellen würde hier zu weit führen, zumal der
in µVision implementierte
printf
­ Befehl das Senden von Daten automatisch steuert und
dadurch gut geeignet ist, um über ein Terminal Programm mit dem PC zu kommunizieren.
2.3.7 Timer Einheit
Die Timer-Einheit GPT (General Purpose Timer) dient zur Zeitmessung, Ereigniszählung,
Impulserzeugung etc. Die Timer-Einheit besteht aus 2 Untergruppen (GPT1 und GPT2) und
umfaßt insgesamt 5 Timer (T2 bis T6) mit einer Breite von je 16 Bit.
Jeder Timer kann in den Betriebsarten Timer-Funktion und Counter-Funktion betrieben
werden; des weiteren kann die Zählrichtung (aufwärts, abwärts) und der Reloadwert
eingestellt werden.
·
Im Timer Modus zählen die Register den internen Takt.
·
Im Counter Modus wird ein an einem Pin angelegter externer Signaltakt gezählt.
2.3.8 Capture-/Compare-Einheit
Die Capture-/Compare-Einheit (CAPCOM) ist wie die Timer-Einheit auch auf Timern
aufgebaut (T0, T1). Im Gegensatz zur Timer-Einheit ist die Capture-Compare-Einheit aber
mehr zur Erzeugung und Erfassung von Signalverläufen (Pulsweitenmodulation,
Impulsbreitenmessung, ...) gedacht. Für die Capture-/Compare-Einheit stehen 16 SFRs und
der Port 2 zur Verfügung.
Um eine Vorstellung über Funktion dieser Peripherieeinheit zu bekommen sollen die beiden
Begriffe Capture und Compare näher erklärt werden:
·
Capture: Bei einem externen Ereignis am jeweils zugeordneten Pin wird der Wert eines
Timers in das Capture-Register übernommen; dadurch läßt sich der Zeitpunkt des
Ereigniseintritts exakt festhalten.
·
Compare: Der Inhalt des Compare-Registers wir mit dem Inhalt eines Timers verglichen
und bei Übereinstimmung bestimmte Funktionen ausgelöst; dadurch kann der Zeitpunkt
für den Eintritt eines Ereignisses exakt festgelegt werden.
2.3.9 AD-Wandler des Mikrocontrollers
Der 80C166 besitzt eine 10Bit A/D-Wandlereinheit für maximal 10 Analogsignale (P5.0 -
P5.9). Der AD-Wandler arbeitet nach dem Prinzip der sukzessiven Approximation
(Stufenwandler/Wägeverfahren), das einen guten Kompromiß aus Schnelligkeit und
Genauigkeit aufweist. Diese Eigenschaften machen den Stufenwandler zum am häufigsten
eingesetzten Wandlertyp.
Funktionsweise
Zu Beginn der Wandlung wird das höchstwertige Bit (MSB) auf eins gesetzt und über den
DA-Umsetzer eine Spannung U
c
erzeugt, die mit der zu messenden Spannung U
e
verglichen

2 Grundlagen zur Hardware
FH Mannheim
Diplomarbeit Rainer Schmidt
Seite 13
wird. Ist U
e
größer bleibt das Bit gesetzt, andernfalls wird es zurückgesetzt. Diese Prozedur
wird nun für jedes weitere Bit wiederholt, bis das niedrigste Bit (LSB) feststeht. Die
Wandlung ist also bei einem n-Bit-Wandler, der nach diesem Verfahren arbeitet nach n-
Schritten abgeschlossen. Das Abtasthalteglied ist notwendig, da der Eingangswert sich
während der Wandlungszeit ändern kann und das Ergebnis damit verfälscht werden würde.
Abbildung 3 und Abbildung 4 sollen die Funktionsweise dieses Wandlers verdeutlichen.
Abtast-Halte-
Glied
Successive
Approximation
Register
DA-Umsetzer
Komparator
Logik
U
REF
(+5V)
10 Bit
10 Bit
U
e
U
c
Abbildung 3: Funktionsweise eines AD-Stufenwandlers
Schritt
U
e
1
4
3
2
z3=1
z3=1
z3=0
z2=0
U
max
Abbildung 4: Zeitlicher Signalverlauf beim Stufenwandlers
2.3.10 Watchdog-Timer
Der 80C166 besitzt einen internen Watchdog-Timer, der den Programmablauf des
Mikrocontrollers überwacht und bei einem Fehlverhalten (z.B. durch Aufhängen in einer
Endlosschleife) den Mikrocontroller durch einen Reset zurücksetzt.

2 Grundlagen zur Hardware
FH Mannheim
Diplomarbeit Rainer Schmidt
Seite 14
Der Watchdog Timer funktioniert wie ein Zähler, der bei einem korrekt arbeitenden
Programm kontinuierlich hochgezählt wird und bei Überlauf einen Reset auslöst. Um diesen
Reset zu verhindern muß das Zählregister vor Erreichen des Überlaufs zurückgesetzt werden.
Treten Störungen im Programmablauf auf, ist es unwahrscheinlich - allerdings nicht
unmöglich ­ daß das Programm den Teil durchläuft, der den Rücksetzbefehl des Watchdog-
Timers beinhaltet, sodaß der Timer nach einer gewissen Zeit überläuft.
Der Watchdog Timer ist immer aktiv, es sei denn, er wird vor dem Ende der
Initialisierungsphase des Mikrocontrollers mit dem Befehl DISWDT (Disable Watchdog-
Timer) deaktiviert.
2.4 Die LCD-Anzeige
Der größte Nachteil des schon vorhandenen Systems ist die Komplexität der Ansteuerung und
der hohe Stromverbrauch der 7-Segment LED-Anzeigen. Überlegungen zu diesem Thema
führten zu der Idee anstatt der 7 Segment LED-Anzeigen ein alphanumerisches LCD-Display
zu verwenden. Die Wahl fiel schließlich auf ein 40x4-zeiliges Display mit LED-
Hintergrundbeleuchtung. Da der Grafikcontroller nur ein maximal zweizeiliges Display
ansteuern kann, ist für je 2 Zeilen ein eigener Controller auf dem Display vorhanden. Die
Anzeige verhält sich nach Außen wie zwei parallel geschaltete 40x2-zeilige Displays. Beide
Controller benutzen den gleichen Adreßbus und die gleichen Steuerleitungen, lediglich das
Enable-Signal ist für beide Controller getrennt vorhanden.
Pin Nr.
Symbol
Wert
Funktion
1
D7
H/L
2
D6
H/L
3
D5
H/L
4
D4
H/L
5
D3
H/L
6
D2
H/L
7
D1
H/L
8
D0
H/L
Datenbus
9
EU
H/L
Enable Upper (Zeile 1+2)
10
R/W
H/L
Read/Write (H: Read / L: Write)
11
RS
H/L
Register Select (H: Datenregister / L: Befehlsregister)
12
V
EE
0-5V
Kontrasteinstellung
13
V
SS
0V
14
V
DD
5V
Spannungsversorgung
15
ED
H/L
Enable Down (Zeile 3+4)
16
NC
-
not connected
17
A
5V
LED-Hintergrundbeleuchtung (Anode)
18
K
0V
LED-Hintergrundbeleuchtung (Kathode)
Tabelle 3: Anschlußbelegung LCD-Display

2 Grundlagen zur Hardware
FH Mannheim
Diplomarbeit Rainer Schmidt
Seite 15
2.4.1 Der Grafikcontroller HD44780
In den meisten auf dem Markt befindlichen alphanumerischen LCD-Anzeigen steuert ein
Grafikcontroller vom Typ HD44780 die Anzeige. Auch in dem hier verwendeten Display
findet dieser Controller Anwendung.
Befehls-
dekoder
Adresszähler
7
Charakter
Generator
RAM
(512 Bits)
I/O-Buffer
Befehls-
register
(IR)
Zeittaktsteuerung
8
Daten-
register
(DR)
Busy
8
8
8
RS
R/W
E
Charakter
Generator
ROM
(7200 Bits)
8
8
8
8
8
Charakter
Generator
RAM
(512 Bytes)
7
7
7
Cursor-
kontrolle
7
Anzeigeneinheit
Umwandlung paralleler Daten
in serielle Daten
5
5
56
Abbildung 5: Funktionsdiagramm des Grafikcontrollers HD44780
2.4.1.1 Die Register
Der Grafikcontroller HD44780 besitzt 2 Register ­ das Befehlsregister (IR) und das
Datenregister (DR). Mit dem Register-Select Flag (RS) können die beiden Register
angesprochen werden. RS = 1 greift auf das Datenregister zu, RS = 0 spricht das
Befehlsregister an.
RS
R/W
Vorgang
0
0
Schreiben von Befehlen
0
1
Lesen des Adreßzählers und des Busy-Flags
1
0
Schreiben von Daten
1
1
Lesen von Daten
Tabelle 4: Registerauswahl des LCD-Displays
Das Befehlsregister (instruction Register, IR):
Im Befehlsregister werden Anweisungen abgelegt, die das Verhalten der Anzeige steuern; es
kann nur beschrieben, nicht jedoch gelesen werden.
·
Das Datenregister (DR):
Das Datenregister dient als Zwischenspeicher für Daten die ins Charakter-RAM bzw. ins
Anzeigen-RAM geschrieben werden oder von dort gelesen werden. Anhand des
Adreßzählers trifft der Grafikcontroller automatisch die Auswahl zwischen Charakter-
RAM und Anzeigen-RAM.

2 Grundlagen zur Hardware
FH Mannheim
Diplomarbeit Rainer Schmidt
Seite 16
2.4.1.2 Das Busy-Flag
Da der Grafikcontroller im Vergleich zum dem 80C166 sehr langsam ist, muß der
Mikrocontroller testen, ob der Grafikcontroller für die nächste Dateneingabe bereit ist, oder
ob er noch mit der Ausführung des letzten Befehls beschäftigt ist. Dies geschieht über das
Busy-Flags, das zusammen mit dem Adreßzähler abgefragt werden kann. Wäre es ein aktives
Signal, könnte man die Aktualisierung über einen Interrupt lösen. Da das Busy-Flag aber
passiv ist muß es entweder immer abgefragt werden, oder man wartet mit dem Senden des
nächsten Befehls an das LCD Display länger als die 40µs, die der Grafikcontroller zum
Abarbeiten eines Befehls benötigt.
2.4.1.3 Der Adreßzähler
Um eine Adresse im Anzeigen-RAM oder im Charakter-RAM beschreiben zu können, muß
erst der Adreßzähler mit dieser Adresse beschrieben werden. Er besitzt eine einstellbare
Autoinkrement-/Autodekrement-Funktion, so daß sich bei einem Schreib- bzw. Lesevorgang
der Wert des Adreßzeiger um eins verändert. Dies vereinfacht die Programmierung enorm, da
der Adreßzähler nicht neu beschrieben werden muß, wenn unmittelbar nachfolgende Adressen
angesprochen werden. Bei Abfrage des Busy-Flags kann auch der Adreßzeiger gelesen
werden. Der Grafikcontroller erkennt bei der Dekodierung der Befehle, ob es sich um eine
Adreßangabe handelt und beschreibt dann den Adreßzähler dementsprechend. Hat der
Adreßzähler das Bitmuster 1xxx xxxx werden alle nachfolgend gesendeten Daten in das
Anzeigen-RAM geschrieben, das Bitmuster 01xx xxxx spricht das Charakter-RAM an
2.4.1.4 Das Anzeigen-RAM
Im Anzeigen-RAM stehen die Codes der Zeichen, die auf dem Display angezeigt werden
sollen. Die Daten im RAM bilden Zeiger auf die entsprechenden Adressen des Charakter-
ROMs. Das Anzeigen RAM hat eine unabhängig vom LCD-Display feste Größe von 80
Bytes. Der Adreßbereich geht von 80h (1000 0000) (siehe Kapitel. 2.4.1.3) bis CFh (1100
1111); die ersten 40 Byte beschreiben Zeile 1, die anderen die Zeile 2. Ist eine Zeile kürzer als
40 Zeichen, können die verbleibenden RAM-Plätze für z.B. Laufschriften oder wie ein
normaler RAM-Platz verwendet werden.
2.4.1.5 Das Charakter-ROM
Das Charakter ROM erzeugt die 5x7 Punktmuster für ein Zeichen. In ihm sind 192 Zeichen
gespeichert. Der Zeichensatz umfaßt mit kleinen Ausnahmen den ASCII-Code (Zeichen 20h
bis 7Dh), einige mathematische und physikalische Sonderzeichen und Kana-Zeichen
1
.
2.4.1.6 Das Charakter-RAM
Das Charakter-RAM bietet Platz für 8 selbstdefinierte Zeichen (5x7 Punkte), die mit den
ASCII-Codes 00h bis 07h aufgerufen werden. Die ASCII-Codes 08h bis 0Fh werden
automatisch auf die Adressen 00h bis 07h umgeleitet. Der Adreßbereich des Charakter ­RAM
geht von 40h (0100 0000) (siehe Kapitel.2.4.1.3) bis 7Fh (0111 1111). Eine 5x7 Punktmatrix
besteht immer aus 8 Zeilen, wobei die 8. Zeile für den Cursor reserviert wird. Der Cursor und
die Pixel der 8. Zeile werden mit einer logischen ODER-Funktion verknüpft
Ein selbstdefiniertes Zeichen wird wie folgt programmiert:
1
Kana-Zeichen sind Zeichen, welche die Japaner benutzen um Fremdwörter in ihrer eigenen Schrift
darzustellen.

2 Grundlagen zur Hardware
FH Mannheim
Diplomarbeit Rainer Schmidt
Seite 17
·
Setze RS = 0, R/W = 0;
·
Beschreibe den Adreßzähler mit der Adresse des Charakter-RAM-Platzes;
der Adreßzähler muß nur einmal beschrieben werden, da wegen der Autoinkrement
Funktion der Adreßzähler automatisch erhöht wird;
·
Setze RS = 1, R/W = 0;
·
Schreibe die oberste Zeile des Pixelmusters
die Bits 0 bis 4 beschreiben das Pixelmuster der ersten Zeile; die Werte der Bits 5 bis 7
sind für die Anzeige nicht relevant und werden ignoriert;
·
Schreibe die restlichen Zeilen des Pixelmusters
wird kein Cursor benötigt kann zusätzlich die achte Zeile zur Darstellung des Zeichen mit
verwendet werden;
ASCII-Code
Adresse im Charakter RAM
Bitmuster des Charakter
RAM
Bits
Bits
Bits
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
0
1
0
0
0
0
0
0
x
x
x
0
0
1
0
0
0
1
0
0
0
0
0
1
x
x
x
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
x
x
x
1
0
1
0
1
0
1
0
0
0
0
1
1
x
x
x
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
x
x
x
0
0
1
0
0
0
1
0
0
0
1
0
1
x
x
x
0
0
1
0
0
0
1
0
0
0
1
1
0
x
x
x
0
0
1
0
0
= 00h oder 08h
0
1
0
0
0
1
1
1
x
x
x
0
0
1
0
0
Legende:
x = 0 oder 1
1 = Pixel schwarz
0 = Pixel hell
Tabelle 5: Die Programmierung eigener Zeichen
Eine Liste aller erforderlichen benutzerdefinierten Zeichen befindet sich in Kapitel 5.4.1
2.4.1.7 Der Befehlssatz

2 Grundlagen zur Hardware
FH Mannheim
Diplomarbeit Rainer Schmidt
Seite 18
Befehl
RS
R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 Beschreibung
Zeit
Clear Display
0
0
0
0
0
0
0
0
0
1
Löscht die Anzeige und setzt die Adresse des Display
RAMs auf 0.
1640µs
Return Home
0
0
0
0
0
0
0
0
1
x
Setzt die Adresse des DisplayDaten RAMs (DD) auf 0.
Eine geshiftete Anzeige wird in der Ausgangsposition
angezeigt. Der DD-RAM Inhalt bleibt unverändert.
1640µs
Eingabemodus
0
0
0
0
0
0
0
1
I/D
S
Regelt die Richtung der Cursorbewegung und des
Display Shift. Eine Bewegung erfolgt nur beim
Schreiben oder Lesen von Daten.
40µs
Display ON/OFF
0
0
0
0
0
0
1
D
C
B
Schaltet die Anzeige (Bit D) und den Cursor (Bit C) an
oder aus und kontrolliert das Blinken des Zeichens
unter dem Cursor.
40µs
Shift
0
0
0
0
0
1
S/C
R/L
x
x
Bewegt den Cursor und schiebt die Anzeige ohne
Änderung des Display Daten RAMs.
40µs
Interface
0
0
0
0
1
DL
N
F
x
x
Setzt die Interface Datenbreite (Bit DL), die Zahl der
Zeilen (Bit N) und die Pixel-Matrix (Bit F).
40µs
Charakter RAM
Adresse setzen
0
0
0
1
Adresse Charakter Generator
Setzt die Adresse des Charakter RAMs. Alle
nachfolgenden Daten wandern nach diesem Befehl in
das Charakter RAM.
40µs
Anzeigen RAM
Adresse setzen
0
0
1
Adresse Display Daten
Setzt die Adresse des Display Daten RAMs. Alle Daten
wandern nach diesem Befehl in das Anzeigen RAM.
40µs
Busy Flag und
Adresse lesen
0
1
BF
Adreßzähler
Liest das Busy-Flag (Bit BF). Es zeigt an, ob die
Anzeige für weitere Kommunikation bereit ist. Ließt
den Adreßzähler der Anzeige.
0µs
Write Data
1
0
Daten schreiben
Schreibt Daten in das Anzeigen RAM bzw. in das
Charakter RAM.
40µs
Read Data
1
1
Daten lesen
Liest Daten aus dem Anzeigen RAM bzw. aus dem
Charakter RAM.
40µs
Tabelle 6: Der Befehlssatz des Grafikcontrollers

2 Grundlagen zur Hardware
FH Mannheim
Diplomarbeit Rainer Schmidt
Seite 19
Symbol
Inhalt
Funktion
I/D
0
1
Dekrement
Inkrement
S
0
1
Display Shift aus
Display Shift beim Schreiben/Lesen
D
0
1
Display aus
Display an
C
0
1
Kein Cursor
Cursor wird angezeigt
B
0
1
Kein Blinken
Zeichen an Cursorposition blinkt
S/C
0
1
Bewegung des Cursors
Bewegung des Displays
R/L
0
1
Shift links
Shift rechts
DL
0
1
4-Bit Datenbus
8-Bit Datenbus
N
0
1
Einzeiliges Display
zweizeiliges Display
F
0
1
5 x 7 Punktmatrix
5 x 10 Punktmatrix
BF
0
1
Kommunikation möglich
keine Kommunikation möglich
X
Null oder Eins
Tabelle 7: Legende zum Befehlssatz
2.5 EAGLE Layout-Editor
1
Der EAGLE
2
Layout-Editor der Firma CadSoft ist ein graphischer Editor zur Erstellung von
Schaltplänen und Platinenlayouts.
Sämtliche Schaltpläne und Platinen dieser Diplomarbeit sind mit diesem Programm gefertigt
worden. Es wurde im Institut für Regelungs- und Prozessleittechnik die Version 3.55r für
Windows 95/NT verwendet.
Der EAGLE Layout-Editor besitzt folgende drei wichtige Module:
·
Schaltplan-Editor
·
Layout-Editor
·
Bibliotheks-Editor
1
Kapitel erstellt in Zusammenarbeit mit Horst Ramb[11]
2
Easily Applicable Graphical Layout Editor (Einfach Anzuwendender Graphischer Layout Editor)

2 Grundlagen zur Hardware
FH Mannheim
Diplomarbeit Rainer Schmidt
Seite 20
Im Schaltplan-Editor können Schaltpläne erstellt werden, die als Basis zur Erstellung von
Platinenlayouts benutzt werden können. Die Schaltpläne werden im EAGLE-Layout-Editor
Schematics genannt haben und die Dateiendung .sch.
Im Layout-Editor-Fenster können die Platinenlayouts erstellt werden. Sie können sowohl
separat, als auch in Funktion mit dem Schematics-Schaltplan erstellt werden; dabei ist
gewährleistet, daß Schaltplan und Platine übereinstimmen (Forward-/Back-Annotation). Die
Platinen des Layout-Editors werden als Boards bezeichnet und haben die Dateiendung .brd.
Im Bibliotheks-Editor können Bibliotheken von Bauteilen verwaltet werden. Es können
sowohl vorhandene Bibliotheken geändert, als auch neue erstellt werden. Eine
Bauteilbibliothek wird als Library bezeichnet und ist mit der Dateiendung .lbr versehen.
Eine Bauteilbibliothek kann sich aus mehreren Devices aufbauen. Ein Device ist ein
vollständig definiertes Bauteil, das aus ein oder mehreren (auch unterschiedlichen) Symbolen
sowie einem Package besteht. Als Symbole werden die Schaltzeichen im Schaltplan-Editor
bezeichnet. Diese können Bausteine, Spannungsversorgungen von Bausteinen und auch
Potentiale sein. Als Package ist das Bauteil auf der Platine bezeichnet, das dessen benötigten
Platz, die Gehäuseform, die Größe der Anschlußpins usw. bestimmt.. Symbole und Packages
sind im Device miteinander verknüpft und geben dem Bauteil seine Bezeichnung und seinen
Namen.
Im EAGLE Layout-Editor ist eine große Anzahl von Librarys verschiedenster Bauteile und
Hersteller schon vorhanden. Dennoch mußten im Rahmen dieser Diplomarbeit sowohl
Librarys neu erstellt, als auch schon vorhandene geändert werden. Hier sind zum Beispiel die
Größe der Löt-Pads geändert worden. In der Library Diplom.lbr, die ebenfalls auf der
beigelegten CD zu finden ist, sind alle für die Diplomarbeit neu erstellten Symbole (z.B.
LCD-Display, Bargraph-LEDs, µC-Sockel) zu finden.
Der EAGLE Layout-Editor besitzt auch einen Autorouter, der selbständig kleine Layouts
erstellen kann. Bei größeren Layouts ist der Autorouter nicht sehr effektiv, da er oftmals zu
viele Durchkontaktierungen benutzt. Darum wurde er im Rahmen dieser Diplomarbeit nicht
verwendet.
Zum Ausgeben der EAGLE-Dateien gibt es noch den CAM-Prozessor. Mit ihm können die
Boards und Schematics ausgedruckt oder als Grafikdatei gesichert werden. Der CAM Editor
dient auch zum Erstellen der Fertigungsunterlagen für die Platinen.

3 Grundlagen zur Software
FH Mannheim
Diplomarbeit Rainer Schmidt
Seite 21
3 Grundlagen zur Software
3.1 Regelstreckengleichungen
In diesem Kapitel werden die zur Zeit in der Software vorhandenen Regelstreckengleichungen
für P-Glied, I-Glied und T
1
-Glied erläutert.
3.1.1 Proportionalglied (P-Glied)
Ein Proportionalglied ist eine Multiplikation mit einem konstanten Faktor K
P
. Die Gleichung
eines P-Gliedes lautet:
y
K
x
P
=
Das P-Glied besitzt ein statisches Verhalten und der Ausgang ist somit eindeutig aus obiger
Gleichung bestimmbar.
3.1.2 Integrierglied (I-Glied)
Die allgemeine Funktionalbeziehung eines I-Gliedes lautet:
( )
( )
d
y
K
t
x
t
I
=
0
Häufig wird anstatt des Integrierbeiwertes K
I
die Integratorzeitkonstante
I
I
K
T
1
=
verwendet.
Diese sagt aus, nach welcher Zeit der Ausgang des Integrators auf dem Wert des am Eingang
angelegten Einheitssprungs hochgelaufen ist.
Diskretisiert man obige Gleichung durch numerische Näherung der Integration mittels
Obersumme, erhält man:
(
)
( )
d
y
T
T
k
x
A
T
k
I
A
=
0
1
, mit
( ) (
)
A
T
y
y
=
für
k
K
,
1
=
Das Integralzeichen wird zum Summationszeichen, da es sich bei obiger Gleichung um eine
Addition diskreter Werte handelt.
=
=
k
A
I
k
y
T
T
x
1
1
mit
(
)
A
T
y
y
=
und
(
)
A
k
T
k
x
x
=
Den Geschwindigkeitsalgorithmus erhält man, indem man nicht jedesmal die Summe neu
berechnet, sondern nur deren Änderung ermittelt und zum alten Wert hinzu addiert.
k
A
I
k
k
y
T
T
x
x
+
=
-
1
1
3.1.3 Verzögerungsglied 1. Ordnung (T1 Glied)
Ein Verzögerungsglied 1. Ordnung besteht aus einem rückgekoppeltem Integrator und kann
durch eine Differentialgleichung 1. Ordnung beschrieben werden.
dt
dx
T
x
y
+
=
1

3 Grundlagen zur Software
FH Mannheim
Diplomarbeit Rainer Schmidt
Seite 22
Das Lösen der Differentialgleichung ergibt die Übergangsfunktion
( )
( )
t
e
t
h
T
t
-
=
-
1
1
Durch Multiplikation mit der Signumfunktion wird h(t) für t<0 zu Null.
Zur Berechnung der Regelgröße wird die Differentialgleichung durch Näherung mit dem
Rückwärtsdifferenzenquotienten diskretisiert und man erhält:
t
x
T
x
y
k
k
+
=
1
, mit
1
-
-
=
k
k
x
x
x
und
A
T
t
=
Durch Umstellen der Gleichung nach x
k
, denn das ist ja die zu berechnende Stellgröße, erhält
man:
A
A
T
T
k
T
T
k
k
x
y
x
1
1
1
1
+
+
=
-
Um die Abarbeitung der Gleichung in der Interruptroutine zur Regelstreckenberechnung zu
beschleunigen, können die beiden Terme
A
T
T
1
und
A
T
T
1
1
+
schon im Hauptprogramm
berechnet werden. Dadurch spart man sich die Zeit für 2 Divisionen im
Berechnungsalgorithmus der Regelstrecke.
Die optimierte Gleichung für die Berechnung lautet somit:
b
x
a
y
x
k
k
k
1
-
+
=
, mit
A
T
T
a
1
=
und
a
T
T
b
A
+
=
+
=
1
1
1
3.2 C166 Standard Developers Kit
In diesem Programm der Firma Keil-Software sind alle Tools zum Programmieren eines
Mikrocontrollers der 80C166-Familie vereint. Das C166 ,,Standard Developers Kit"
beinhaltet unter anderem einen ANSI C-Compiler, einen Makro-Assembler, eine
Entwicklungsumgebung (µVision) und einen Source Level Debugger komplett mit CPU und
Peripherie Simulator (dScope), sowie ein Monitorprogramm.
In µVision wird der Mikrocontroller komplett in C programmiert; tiefgreifende Kenntnisse
der Assembler-Programmierung sind nicht nötig. Dennoch ist es möglich auch Assembler
Routinen in ein Projekt zu integrieren. Das hier verwendete C ist ein `aufgebohrtes` ANSI C,
mit speziellen Erweiterungen für die 80C166 Mikrocontrollerfamilie. Da der Compiler
speziell für den 80C166 und deren Familienderivate entwickelt wurden ist eine optimale
Codeübersetzung gewährleistet.
µ
Vision besitzt einen dermaßen guten Compiler und
Interpreter, das der übersetzte Sourcecode nahezu die Schnelligkeit von Assemblercode hat.
Das Benutzen der Sprache C bietet gegenüber der Assembler Programmierung einige
Vorteile:
·
Ein Wissen über den Befehlssatz des 80C166 ist nicht notwendig.
·
Die Register Zuordnung und Adreßmodi werden komplett vom Compiler verwaltet.
·
Die Wartbarkeit von Programmen ist bedeutend besser, da eine Hochsprache besser zu
verstehen ist.

3 Grundlagen zur Software
FH Mannheim
Diplomarbeit Rainer Schmidt
Seite 23
·
Es können viele Bibliotheksfunktionen verwendet werden, wie Sinusfunktion und
formatierte Ausgaben.
·
Man kann strukturiert programmieren.
Da C eine weit verbreitete Programmiersprache ist, können viele Applikationen direkt
übernommen werden.
Die für die Diplomarbeit eingesetzte Version von µVision ist Version1; es gibt zwar eine
neuere Version von
µ
Vision,
µ
Vision2, doch zeichnet sich die Version 1 durch eine bessere
Übersichtlichkeit des Programms aus. In der zweiten Version sind viele Optionen in tieferen
Menüebenen versteckt. Dadurch ist es für einen Anfänger schwer sich schnell einzuarbeiten.
Mit dem dScope Debugger kann man den Mikrocontroller und die ganze On-Chip Peripherie
des 80C166 und seiner Derivate simulieren. Dazu sind für alle Derivate CPU-Driver
vorhanden. Nachdem dieser Treiber geladen wurde, kann man alle On-Chip Funktionen des
gewählten Mikrocontrollers simulieren und seine Projekte austesten. Allerdings ist dies keine
Echtzeitsimulation; Funktionen wie das Entprellen von Tasten oder zeitkritische Aktionen
kann man nur prinzipiell testen. Der eigentlich Test solcher Programmteile muß weiterhin mit
dem Mikrocontroller erfolgen.
3.3 EPROM-Simulator
Auf dem Mikrocontroller-Board sind zwei 8-Bit EPROMs vom Typ 27256 (32kByte)
vorhanden. Um beim Austesten der Software nicht bei jeder Änderung die EPROMs neu
brennen zu müssen, wurde ein EPROM-Simulator der Fa. Phytec Meßtechnik GmbH
verwendet.
Der EPROM-Simulator ES-010 ist ein 16-Bit Simulator, mit dem aber auch eine 8-Bit
Simulation möglich ist.
Die Stromversorgung erfolgt über ein 9V Steckernetzteil. Über Flachbandkabel wird der
EPROM-Simulator mit den Steckplätzen für die zu simulierenden EPROMs verbunden.
Wenn man den Resetausgang des EPROM-Simulators mit dem Reseteingang des Zielsystems
verbindet, wird nach dem Download der Daten vom PC auf den Simulator das Zielsystem
automatisch neu gestartet. 4 LEDs auf der Vorderseite des Simulators zeigen den aktuellen
Systemzustand an.
Die Datensicherheit während der Übertragung erfolgt durch Zeichenspiegelung, d.h. ein
gesendetes Zeichen wird in den RAM des Simulators geschrieben, dann ausgelesen und
wieder zurückgesendet. Dadurch werden Übertragungsfehler vermieden und es ist
gewährleistet, daß alle Daten korrekt im Simulator-RAM stehen.
Die Übertragung der Daten von PC auf den EPROM-Simulator erfolgt über eine der seriellen
Schnittstellen COM1 oder COM2 und mit dem Programm TRANS.COM. Sind
speicherresidente Programme oder Netzwerktreiber geladen oder ist als Betriebssystem
Windows95 installiert, muß das Programm TRAMS_S.COM verwendet werde, da es sonst zu
Übertragungsfehlern kommen kann. Der Aufruf erfolgt mit
TRANS_S.COM (Schnittstellenadresse) (Baudrate) (EPROM Typ) (Resetpolarität)
(Dateiname)
Die zu übertragene Datei muß im Binärformat vorliegen. Ist dies nicht der Fall. Muß sie mit
dem Programm HEX2BIN von Hexformat in Binärformat konvertiert werden. Der Aufruf
erfolgt mit
HEX2BIN [Optionen] HEXFILE[.ext] BINFILE[.ext]

Details

Seiten
Erscheinungsform
Originalausgabe
Jahr
2000
ISBN (eBook)
9783832448301
ISBN (Paperback)
9783838648309
Dateigröße
1.6 MB
Sprache
Deutsch
Institution / Hochschule
Hochschule Mannheim – Automatisierungstechnik / Elektrische Energietechnik
Note
1,3
Schlagworte
regelung regelungstechnik anzeige
Zurück

Titel: Weiterentwicklung einer universellen Regelstrecke mit einem 16-Bit Mikrocontroller
book preview page numper 1
book preview page numper 2
book preview page numper 3
book preview page numper 4
book preview page numper 5
book preview page numper 6
book preview page numper 7
book preview page numper 8
book preview page numper 9
book preview page numper 10
book preview page numper 11
book preview page numper 12
book preview page numper 13
book preview page numper 14
book preview page numper 15
book preview page numper 16
book preview page numper 17
book preview page numper 18
book preview page numper 19
book preview page numper 20
book preview page numper 21
book preview page numper 22
book preview page numper 23
109 Seiten
Cookie-Einstellungen