Heat Counter.pdf

59
Fachhochschule Coburg Fachbereich: Elektrotechnik Studienschwerpunkt: Informationstechnik DIPLOMARBEIT Entwicklung und Aufbau eines elektronischen Wärmemengenzählers Diplomand: Markus Stark Betreuer: Prof. Dr. Kollmann Ausgabe: 15.11.1994 Abgabe: 14.04.1995

Transcript of Heat Counter.pdf

Page 1: Heat Counter.pdf

Fachhochschule CoburgFachbereich: ElektrotechnikStudienschwerpunkt: Informationstechnik

DIPLOMARBEIT

Entwicklung und Aufbau eines elektronischen Wärmemengenzählers

Diplomand: Markus Stark

Betreuer: Prof. Dr.Kollmann

Ausgabe: 15.11.1994Abgabe: 14.04.1995

Page 2: Heat Counter.pdf

Inhaltsverzeichnis

1. Vorwort

2. Aufgabe2.1. Problemspezifikation 2.2. Projektplan

3. Software3.1. Entwurfsspezifikation3.2. Codierspezifikation3.3. Programmlisting

4. Hardware4.1. Entwurfsspezifikation4.2. Stromlaufplan4.3. Layout

5. Literaturverzeichnis und Quellennachweis

6. Anhang

Page 3: Heat Counter.pdf

1. Vorwort Seite 1

1. Vorwort

Motivation dieser Diplomarbeit: Entwicklung eines autarken undfernabfragbaren Systems zur Wärmekostenabrechnung (auchHeizkostenverteiler (nach dem Hauptanwendungsgebiet : Verteilung derHeizkosten auf die einzelnen Mietpartien), Wärmezähler oder Wärme-mengenmesser) um bestehende Systeme, wie z.B. das Ver-dunstungsprinzip (rel.hohe Meßungenauigkeit und kostenintensive Ablesung der Meßdaten) zuersetzen.

Es wurde versucht, die Spezifikation in Soft- u. Hardware aufzuteilen. Es zeigtesich aber bald, daß diese Teilung nicht immer möglich war.Es ist nicht alles implementiert worden, was möglich ist (z.B. wurde auf eineEchtzeituhr verzichtet, um z.B. den Zeitpunkt von Betriebsunter-brechungenfestzustellen ...). Die Schaltung ist natürlich weiter optimierbar, vor allem weilbei der Wahl der Bauteile oft die schnelle Verfügbarkeit der Funktionvorgezogen wurde.

Ich bedanke mich bei allen, die die Erstellung dieser Diplomarbeit unterstützthaben, insbesondere bei meinen Betreuer Herrn Prof. Dr. Kollmann und denLeiter des Elektroniklabors Herrn Dipl.-Ing. Wunderlich.

Page 4: Heat Counter.pdf

2. Aufgabenstellung Seite 2

2. Aufgabenstellung

Anforderungen an das System 'elektronischer Wärmemengenmesser':

· autarkes System· Fernabfrage· hohe Meßgenauigkeit· Datensicherheit Ein 'reelles' und professionelles System müßte noch weitere mech. Featuresenthalten. Die beiden Temperatursensoren, die Hardware und derDurchflußmesser müßten verplombt werden. Natürlich lassen sich dadurch'Betriebsstörungen' nicht 100%ig verhindern. Es besteht aber die Möglichkeitdiese Störungen zu erkennen und in einen nicht flüchtigen Speicher abzulegen,bzw. über eine Schnittstelle eine Störung bzw. Manipulation zu melden.

2.1 Problemspezifikation

Die Problemspezifikation definiert das Problem, z.B. wie kann Wärme-mengegemessen werden; physikalischer Hindergrund.. .

2.1.1 Physikalischer Hindergrund

Thermodynamik: [1]

Wird einem Festkörper oder einer Flüssigkeit Wärme zugeführt (abge-führt), soist dies immer mit einer Temperaturerhöhung (T.senkung) ver-knüpft, falls keinPhasenübergang stattfindet. Um die Temperatur T eines Systems um dT zuerhöhen (senken), ist eine Wärmezufuhr (Wärmeabgabe) dQ erforderlich, dieproportional zu dT ist:

µ § (2-1)

Die Proportionalitätskonstante C ist die Wärmekapazität des Systems. Sie hängtvon der Art des Stoffes und von der Menge ab.

Page 5: Heat Counter.pdf

2.1 Problemspezifikation Seite 3

Je nachdem, ob die Wärmemenge C auf die Masse m oder die Teil-chenmenge nbezogen wird, ergibt sich die spezifische Wärmekapazität

µ § (2-2) oder die molare Wärmekapazität µ

§ (2-3) .

Die Wärmekapazität kann nur in bestimmten Grenzen als Konstante an-gesehenwerden. Tatsächlich hängt sie von der Temperatur ab. Bei einer endlichenTemperaturänderung von T1 auf T2 beträgt die übertragene Wärme

µ § (2-4)

Ist das Temperaturintervall klein, kann die Wärmekapazität als konstantangesehen werden, und Gleichung (2-4) vereinfacht sich zu

µ § (2-5)

Gleichung (2-5) gilt auch für einen größeren Temperaturbereich, wenn anstattder wahren eine mittlere Wärmekapazität eingesetzt wird.

Anmerkung:

Genau an diesem Punkt knüpft der Algorithmus im Programm Wärme.Asm an.Die Berechnung eines best. Integrals (bzw. wie in dieser Anwendung einerendlichen Summe) wäre mit einen Microcontroller vom Typ 8051 zuzeitaufwendig. Gleichung (2-5) stellt also die Grundlage desBerechnungsalgorithmus dar, der je nach Temperaturbereich eine andere mittlereWärmekapazität (durch Tabellenzugriff) in (2-5) einsetzt und die Teilwärmenzur Gesamtwärme addiert.

Page 6: Heat Counter.pdf

2.1 Problemspezifikation Seite 4

2.1.2 Meßprinzip

µ §

Bild 2.1 Anwendung am Beispiel eines Heizungssystems

Gleichung (2-5) ist in dieser Form noch nicht nutzbar. Schließlich wird nicht dieMasse, sondern der Volumenstrom mittels eines Durchfluß-messers gemessen.Daraus folgt aber auch, daß die Temperatur-abhängigkeit der Flüssigkeitsdichtemit berücksichtigt werden muß.

µ § (2-6)

Diskretisierung von (2-6):

µ § (2-7)

Gleichung (2-7) gilt auch bei nicht äquidistanten Tk.

DQ12

.. Teilwärmemenge im Meßzeitraum Dt DQnutzDV/Dt.. Volumenstrom

T0

.. Vorlauftemperatur TvorTj .. Rücklauftemperatur Trück

rk .. Flüssigkeitsdichte im Temperaturbereich [T

k+1 ,T

k]

ck

.. spezif. Wärmekapazität im Temperaturbereich [Tk+1

, Tk]

Page 7: Heat Counter.pdf

2.1 Problemspezifikation Seite 5

Sinnvollerweise ist die Vorlauftemperatur immer größer als die Rück-

lauftemperatur -> DQ12

ist negativ (Wärme wird abgegeben), wird aber indieser Anwendung als positiv festgelegt.

Gleichung (2-7) kann beträchtlich vereinfacht werden, wenn (s. An-merkung)

für den gesamten Temperaturbereich (T0..Tj) eine mittlere spez.

Wärmekapazität und mittlere Dichte eingesetzt werden. Diese Werte rm

und cm

unterscheiden sich aber von rk

und ck, da sie die über den gesamten

Temperaturbereich gemittelten Werte von rk

und ck

darstellen und nicht nur fürein kleines Temperaturintervall gelten:

µ § (2-8) µ

§ (2-9)

µ § (2-10)

Um die Teilwärmemenge im Meßzeitraum Dt zu bestimmen, ist es jetzt nur nochnotwendig, die Volumenimpulse im Meßzeitraum Dt zu messen(Volumenstrom), mit der Temperaturdifferenz zwischen Vor- u. Rücklauf und

einer vom Temperaturbereich abhängigen Konstante rm

* cm

zu multiplizieren.Die Teilwärmemenge wird schließlich noch zur Gesamtwärmemenge addiert.

Weitere ableitbare Meßgröße:

P .. Wärmeleistung µ § (2-11)

Page 8: Heat Counter.pdf

2.1 Problemspezifikation Seite 6

2.1.3 wesentl. physikalische Eigenschaften von Wasser

a) Temperaturabhängigkeit der Dichte r [2]:

Temperatur in °C r(T) in g/cm3

0 0.99987

5 0.99999

15 0.99913

25 0.99707

40 0.99224

60 0.983

80 0.972

100 0.95838

Tabelle 2.1

b) Temperaturabhängigkeit der spezifischen Wärmekapazität c [3]:

Temperatur in °C c(T) in J g-1 °C-1

0 4.218

5 4.207

15 4.186

Page 9: Heat Counter.pdf

25 4.180

40 4.178

60 4.183

80 4.197

100 4.216

Tabelle 2.2

Page 10: Heat Counter.pdf

2.2 Projektplanung Seite 7

2.2 Projektplanung

Der Projektplan beschreibt mögliche Lösungen und Vorgehensweisen und stelltklar warum diese Lösung ausgewählt wurde.

Anforderungen an das System 'elektronischer Wärmemengenmesser':

· autarkes System· Fernabfrage der Meßdaten· hohe Meßgenauigkeit· Datensicherheit· Display

a) autarkes System

Ein autarkes System, das z.B. 5 Jahre mit Batterie funktionsfähig sein soll, stelltsehr hohe Anforderungen, an den Energieverbrauch der Hardware. Eine Batteriemit etwa 10Ah und sehr geringer Selbstentladung (z.B: Lithium-Batterien)dürfte nur mit etwa 200uA belastet werden. In der Praxis würde man eine anwenderspezifische integrierte Schaltung (ASIC)für diese Anwendung entwerfen. Die Herstellung lohnt sich aber nur ab einerrelativ großen Stückzahl.Herkömmliche CMOS-Prozessoren sind auch nicht geeignet. Eine Ausnahmestellen z.B. die Prozessoren der Reihe PIC 16C5X von Microchip dar [4].

PIC 16C57 Features:· Harvard Architektur· 2K x 12 OTP EPROM· 80 x 8 RAM· 21 I/O· Watchdog, Timer/Counter· sehr niedriger Energieverbrauch: 50uA bei Vcc=3V 100kHz

<3uA im Standby-Mode80C51 Features:· von-Neumann Architektur· 4K x 8 PROM· 256 x 8 RAM / SFR

Page 11: Heat Counter.pdf

2.2 Projektplanung Seite 8

· 32 I/O· Timer/Counter, UART· Energieverbrauch: 2.2mA bei Vcc=5V 500kHz (intern 42 kHz)

0.9mA im Idle-Mode50uA im Power-Down-Mode

Aufgrund der Verfügbarkeit einer Entwicklungsumgebung (Simulator undMacro-Assembler [5]) habe ich mich, trotz des rel. hohen Energie-verbrauchs,für den 8XC51 entschieden. Daraus folgt aber, das die Forderung nach einemautarken System nicht erfüllt werden kann.

Es wird trotzdem versucht, den Energieverbrauch zu minimieren undenergiesparende Komponenten einzusetzen. Die Taktfrequenz wirdheruntergesetzt, da der Energieverbrauch bei CMOS-Prozessoren ungefähr prop.zur Taktfrequenz ist. Netzausfälle werden entweder mit einer wiederaufladbarenBatterie überbrückt, oder eine Schaltung detektiert und meldet den Netzausfall.Bei Netzausfall läuft näturlich auch keine Umwälzpumpe mehr, d.h. derDurchflußzähler gibt keine Impulse pro Volumeneinheit mehr aus und es kann

auf keine Wärmemenge mehr gemessen werden (DV=0 Þ DQ12

=0). Darausfolgt, daß eigentlich keine Batterie zur unterbrechungsfreien Energieversorgungnotwendig ist. Es muß aber dafür gesorgt werden, daß sich der Prozessor schonin einen def. Zustand befindet (Reset = L), bevor die Versorgungsspannung(Vcc) absinkt.

b) AD-Wandlung

Die rel. großen Zeitkonstanten eines Heizungssystemes (insbesondere der Vor-u. Rücklauftemperatur) lassen eine integrative AD-Wandlung zu. IntegrativeVerfahren haben den Vorteil der Störunterdrückung, d.h. Schwankungen derBetriebs- u. Referenzspannung usw. wirken sich nur wenig auf das Ergebnis derAD-Wandlung aus. Dagegen stellen AD-Wandler nach dem Parallel- o.sukzessiven Approximationsprinzip hohe Anforderungen an die Stabilität derReferenz- u. Betriebsspannungen.

Page 12: Heat Counter.pdf

2.2 Projektplanung Seite 9

Ich habe mich wegen der großen Störunterdrückung für ein abge-wandeltesintegratives Verfahren zur AD-Wandlung entschieden:

Der Meßkondensator C wird auf Vcc aufgeladen und über einVergleichswiderstand entladen. Die Dauer der Entladung (k*Rcomp*C) wirdgemessen. Der Kondensator wird wieder aufgeladen und jetzt über den Temperatursensor entladen. Die Dauer der Entladung (k*Rtemp*C) wirdebenfalls gemessen (s. Schaltplan Kap. 4.1.2).Der Vorteil dieser Methode liegt darin, daß dieser Kalibrierungszyklus alleFehler erster Ordnung (Langzeitstabilität, Genauigkeit undTemperaturabhängigkeit der verwendeten Komponenten undVersorgungsspannung) entfernt (Verfahren wird ausführlich im Kap. 4.1.2erklärt).

c) Fernabfrage der Meßdaten

Implementierung einer RS232-Schnittstelle mit Hilfe des im 80C51 be-findlichen UART. Eine energiesparende Version vom Typ MAX2XX sorgt nochfür die Pegelanpassung. Anwendungsmöglichkeit: Bei einem Mietshaus mit mehreren Partien könnteman die elektronischen Wärmemengenmesser an einen zentralen Datenloggeranschließen, der telefonisch abfragbar ist. Ein Problem stellt der Datenschutz dar, da man das System dazu mißbrauchenkönnte, festzustellen, ob jemand anwesend ist oder nicht (z.B. wird im Winterniemand über einen längeren Zeitraum seine Heizung mit niedrigerWärmeleistung laufen lassen) -> Entweder muß der Datenlogger mit einerZugangsberechtigung versehen werden (Code), oder der Datenlogger läßt sichnur für eine bestimmte Zeitspanne (Wärmekostenabrechnung) fernabfragen.

d) Datensicherung

Anforderung an den nichtflüchtigen Speicher:· Speicherkapazität muß ausreichen, um Meß-, Status-, Zeitdaten ...

aufzunehmen (Bedarfsabschätzung: ca. 20 Byte)· geringe Verlustleistung

Page 13: Heat Counter.pdf

2.2 Projektplanung Seite 10

Möglichkeiten zur Datensicherung:

EEPROM z.B. PCX8582 bzw. 24C02:· Organisation: 256 X 8 bit· geringe Verlustleistung (aktiv: 2mA; standby: 60mA)· geringer Platzbedarf (8-Pin DIL)· begrenzte Anzahl von Schreib- u. Löschzyklen (typ. 100000)· relativ aufwendige Ansteuerung (Nachbildung des I2C-Bus-Interfaces per

Software)

NOVRAM z.B. X22C10:· Organisation: 64 X 4 bit· mittlere Verlustleistung (aktiv: 40mA; standby: 100mA)· einfache und schnelle Ansteuerung

e) Display

Ein alpha-numerisches LCD-Modul wird zur Anzeige der Daten ver-wendet.Ein normales LCD-Display hätte zwar einen beträchtlich gering-erenEnergieverbrauch (vernachlässigbar), stand aber nicht zur Ver-fügung (müßteeigentlich speziell für diese Anwendung gefertigt werden).

f) Temperatursensor

Typen von Temperatursensoren:

Typ K / N / T / J - Thermoelemente:· Genauigkeit (unkalibriert): 0°C bis 300 ± 3°C· geringe Langzeitstabilität

Platinwiderstand (Pt100):· erreichbare Genauigkeit mit Vierleitertechnik: ± 0.05°C· Widerstand bei 0°C: 100 ± 0.1W im Temperaturbereich von -50°C bis 250°C

(-> Verwendung eines ausgemessenen Paares von Sensoren)· Temperaturkoeffizient: 0.385 W/°C· Eigenerwärmungskoeffizient mit unendl. Wärmeableiter: 5 K/W· Zeitkonstante: < 2 Sek. (PT1-Verhalten) in strömender Flüssigkeit· hohe Langzeitstabilität

Page 14: Heat Counter.pdf

2.2 Projektplanung Seite 11

Ich habe mich für Pt100-Sensoren entschieden, da sie eine hoheLangzeitstabilität besitzen. Das Meßzeitintervall Dt habe ich aufgrund dergroßen Zeitkonstanten des Heizsystems auf 60 Sekunden festgelegt. Er könnteaber bei dynamischeren Systemen jederzeit bis auf ca. 1 Sekunde verkürztwerden, ohne die Funktion des Programmes zu beein-trächtigen.

Anmerkung zum Meßzeitraum D t:

Der Meßzeitintervall Dt (= Zeit zwischen zwei Messungen) sollte beiVerwendung von Pt100-Temperatur-Sensoren nicht kleiner als 10 Sekundengewählt werden. Begründung: Die schnellste Möglichkeit zur Temperaturmessung mit Pt100-Sensoren ist die Direktmessug (ohne Tauchhülsen) im Heizmedium (Wasser).Pt100-Sensoren zeigen PT1-Verhalten mit einer Zeitkonstante von ca. 2Sekunden, d.h. bei einem (angenommenen) Temperatursprung benötigt derSensor ungefähr 5*2s=10s um einen der Temperatur entsprechendenWiderstandswert anzunehmen.

Page 15: Heat Counter.pdf

3. Software Entwurfspezifikation Seite 12

3. SOFTWARE

3.1 Entwurfspezifikation

Anforderungen an das System 'elektronischer Wärmemengenmesser':

· Fernabfrage der Meßdaten· hohe Meßgenauigkeit· Datensicherheit· Display

Um den Energieverbrauch mittels Software zu minimieren, bittet die CMOS-Version des 8031 mehrere Möglichkeiten:

· Idle-Modus (OP-Code: ORL PCON,#01HORL PCON,#20H)

· Power-Down-Modus (ORL PCON,#02HORL PCON,#40H)

Weitere Möglichkeit(en):· Nachbildung von Teilsystemen mittels Software (z.B. AD-Wandlung)

Im Power-Down-Modus (der on-chip Oszillator wird gestoppt) nimmt der80C31 nur etwa 60mA Strom auf . Dieser Mode hat aber den Nachteil, das ernur durch einen Reset verlassen werden kann. Daraus folgt, um auf Ereignissereagieren zu können, wäre eine aufwendige externe Interrupthardware nötig, dieverschiedene Ereignisse unterscheiden kann. Dies widerspricht aber derForderung den Energieverbrauch zu minimieren, also möglichst wenig externeKomponenten zu verwenden.

Im Idle-Mode (CPU wird vom Taktsignal getrennt; das Interruptsystem, Timerusw. werden aber weiterhin mit dem Takt versorgt) sinkt der Stromverbrauch aufein Viertel im Vergleich zum Normal-Mode.

Page 16: Heat Counter.pdf

3.1 Software Entwurfspezifikation Seite 13

Betriebsart Normal Idle P-Down

Frequenz [MHz] Stromaufnahme [mA] bei Vcc=5V Ausgänge offen

0.5 2.2 0.9 0.06

3.5 5.7 1.6 0.06

8 11 2.7 0.06

12 16 3.7 0.06

Tabelle 3.1 Stromaufnahme des 80C51 bei verschiedenen Betriebsarten

-> Die Software wird so aufgebaut, das sich der Microcontroller normalerweiseim Idle-Mode befindet, und nur für die Dauer der Interruptserviceroutine inNormal-Mode arbeitet. Alle Events und Tasks werden über Interruptsabgearbeitet (z.B. zeitabhängiger Task (o. Sub-routine) Measure_&_Calculatewird im Timer Interrupt 0 (int. Uhr) aufgerufen). Der Reset (Netzausfall) wirdselbst als Interrupt miß-braucht, d.h. nach einem Reset liest der Microcontrollerdie relevanten Daten aus dem EEPROM (Wärmemenge, Volumen ...) ins interneRAM ein und kann anschließend wieder seinen normalen Betrieb aufnehmen.

Wie zu erkennen ist, erzeugt die interne Uhr alle 0.4 Sekunden einen Interruptum die Zeitregister (s. Kap. 3.2.1) aktuallisieren zu können. Innerhalb des Uhr-Interrupts (Timer Int. 0) werden zeitabhängige Tasks aufgerufen, z.B. alleMinute die Subroutine zur Messung der Temperatur und Berechnung derWärmemenge usw. oder alle Stunde die Subroutine zur Sicherung der Daten insext. EEPROM.

µ §

Bild 3.2 Zeitdiagramm zur Verdeutlichung des Programmablaufs

Page 17: Heat Counter.pdf

3.2 Software Codierspezifikation Seite 14

3.2 Codierspezifikation

3.2.1 Speicherbedarf

Da kein externes RAM verwendet wird, muß mit den 128 Byte des internenRAM des Mikrocontrollers 80C31 sparsam umgegangen werden. Von den 128Byte müssen noch die Registerbank 0 (R0..R7) und der Stack (Bedarf: ca. 32Byte) abgezogen werden. Es stehen also ca. 88 Byte RAM zu Verfügung.

Bestimmung des Speicherbedarfes der Messgrößen, die über einen bestimmtenZeitraum aufsummiert werden müssen:

µ §

Bild 3.3 absolute maximum ratings der zu messenden Größen bzw. Konstanten:

Die maximalen Werte für den Volumenstrom und die Temperatur-differenzwerden in Praxis so gut wie nie auftreten, dennoch wird das Programm für dieseExtremwerte ausgelegt.

Heute übliche Durchflußzähler sind für eine Dauerbelastung von 1m3/h(entspricht ca. 17 Liter/Minute) bzw. 2.5m3/h ausgelegt.Der Wert für die maximale Temperaturdifferenz kommt dadurch zustande, daßder Durchflußzähler einer max. Betriebstemperatur von 90°C ausgesetzt werdendarf (auch wenn er in der Rücklaufleitung eingesetzt wird).(s. Anhang Volumenmessteil)

a) WAERME

µ §

Page 18: Heat Counter.pdf

3.2 Software Codierspezifikation Seite 15

Bei einen Meßzeitraum von 10 Jahren benötigt man also im Extremfall 11Stellen um die Wärmemenge speichern zu können (mit LSB=1kJ). Dasentspricht einem Speicherdedarf von 6 Byte (s. Kap. 3.2.5)

b) VOLUMEN

µ §

Bei einen Meßzeitraum von 10 Jahren benötigt man also im Extremfall 9 Stellenum das Volumen speichern zu können (mit LSB=1Liter). Das entspricht einemSpeicherdedarf von 5 Byte im BCD-Zahlenformat.

3.2.2 Verbesserung der Rechengenauigkeit

Jede Minute wird die Teilwärmemenge DQ zur Gesamtwärmemenge Qaddiert. Aufgrund der endlichen Rechengenauigkeit entsteht ein Ab-schneidefehler. Dieser Fehler ist statistisch gesehen, gleichmäßig zwischen 0und 1 verteilt. Daraus folgt, daß bei jeder Messung durch-schnittlich 0.5 kJ zuwenig zum wahren Ergebnis addiert wird.Den Abschneidefehler kann man dadurch vermeiden, daß bei jeder 2. Messungeine 1 (entspricht 1kJ) zur Wärmemenge addiert wird (convergent rounding).

3.2.3 Variablendefinitionen

Variablenfestlegung der 128 Byte des internen RAM des Micro-controllers80C31:

Der Variablen-Name enthält immer das LSB. Höherwertige Bytes werden durchVariablen-Name+X angesprochen. (Es werden hier nur die Variablen aufgeführt,die unmittelbar zum System Wärme-mengenzähler beitragen, d.h. die Variablender Arithmetikroutinen usw. werden nicht aufgeführt).

RAM-Adresse Variablen-Name Funktion

20H..22H Flag_... Bitsegment -> enthält Status- u.Error-Flags

3.2 Software Codierspezifikation Seite 16

Page 19: Heat Counter.pdf

RAM-Adresse Variablen-Name Funktion

23H Sec_Counter Interne Uhr; wird alle 0.4 Sekundeninkrementiert

24H Mni_Counter Interne Uhr; wird alle 60 Sekundeninkrementiert

25H Counter Tastenentprellung; Display ON/OFF

2CH Vol_Counter enthält Volumenstrom in l/min

2DH EEH enthält Übergabe- bzw. Rückgabe-daten des EEPROMs

2EH EEL "

2FH ADR_EE enthält Adresse des EEPROMs

30H..35H Wärme enthält Wärmemenge in kJ

36H..3BH Volumen enthält Volumen in Liter

3CH..3FH Vorlauf-temperatur

enthält Vorlauftemperatur in 0.01°C

40H..43H Rücklauf-temperatur

enthält Rücklauftemperatur in 0.01°C

44H..47H Temperatur-differenz

enthält Temperaturdifferenz in 0.01 Kelvin

48H..4BH Wärmeleistung enthält Wärmeleistung in W

Page 20: Heat Counter.pdf

68H..6BH T_Comp zur Zeitkonstante R_Compare * Cproportionaler 16-bit Wert

6CH..6FH T_Temp_1 zur Zeitkonstante R_Temp_1 * Cproportionaler 16-bit Wert

70H.. 73H T_Temp_2 zur Zeitkonstante R_Temp_2 * Cproportionaler 16-bit Wert

74H..77H R_Temp_1 Widerstand des Vorlauf-Temperatursensors

78H..7BH R_Temp_2 Widerstand des Rücklauf-Temperatursensors

7CH..7FH Const Zwischenspeicher für Kostanten;wird für Arithmetikprogr. benötigt

Page 21: Heat Counter.pdf

3.2 Software Codierspezifikation Seite 17

3.2.4 Flagdefinitionen

Die Flags sind im Bitsegment 20H .. 22H des Microcontrollers abgelegt.

Flag-Name Funktion

Flag_Vol_Error wird gesetzt, falls keine Volumenimpulsegemessen werden, z.B.: Manipulation desDurchflusszählers

Flag_Temp_Error wird gesetzt, falls Temperaturwerte außerhalb festgelegter Grenzen, z.B.: defekterPt100-Sensor

Flag_Display_Wärme wenn gesetzt, wird Wärmemenge auf LCD-Display ausgegeben

Flag_Display_Volumen "

Flag_Display_Vorlauftemp "

Flag_Display_Rücklauftemp "

Flag_Display_Tempdifferenz "

Flag_Display_Wärmeleistung "

Flag_Display_Off wenn gesetzt, wird Display nach einer Minuteausgeschaltet

Flag_Send_Data wenn gesetzt, wird Datensegment 30H..3BHins EEPROM abgespeichert

Flag_Measure_&_Calculate falls gesetzt, wird Messungs- undBerechnungs-Routine aufgerufen

Page 22: Heat Counter.pdf

3.2 Software Codierspezifikation Seite 18

3.2.5Syntaxdefinitionen

Die Verwendung von BCD-Arithmetikprogrammen spiegelt sich im Aufbau derzu berechnenden Variablen wieder. Ein Byte einer Variable entspricht zweiBCD-Ziffern.

Erklärung der Syntax am Beispiel der Variablen Wärme:

MSB LSBint. RAM 35H 34H 33H 32H 31H 30H

Wärme 00H 12H 34H 56H 78H 90H

-> Wärmemenge = 1234567890 kJ = 1234.56.. GJ

Entsprechendes gilt für die anderen Variablen im Bereich von 30H..4CH und75H..7FH.

Page 23: Heat Counter.pdf

3.2 Software Codierspezifikation Seite 19

3.2.6 Subroutinen und Interruptroutinen

Übersicht:

Subroutine Funktion

Init_Circuit initialisiert Hardware

Init_Display initialisert LCD-Controller

Save_Energy versetzt Microcontroller in Idle-mode und schaltetLCD-Display usw. ab

Save_Data speichert Datenblock vom int. RAM ins EEPROM

Read_Data liest Datenblock vom EEPROM ins int. RAM ein

Send_Data gibt Datenblock über serielle Schnittstelle aus

Measure_and_Calculate

mißt Vorlauf- u. Rücklauftemperatur und berechnetWärmemenge, Wärmeleistung usw.

Interrupt Funktion

Ext. Interrupt 0 wird durch Durchflusszähler ausgelöst und mißt Volumen (inkrementiert Variable Volumen)

Timer Interrupt 0 wird als interne Zeitreferenz benutzt und alle 0.4 sbei einer Quarzfrequenz von 1.8432 MHz ausgelöst

Ext. Interrupt 1 wird durch Tastenbetätigung ausgelöst und zeigtDaten im LCD-Display an

Page 24: Heat Counter.pdf

Timer Interrupt 1 wird durch Fehler bei Temperaturmessung, z.B.Kabelbruch, ausgelöst und dokumentiert Fehler

Serieller Interrupt wird durch Fernabfrage ausgelöst und gibt Daten über ser.Schnittstelle aus

Page 25: Heat Counter.pdf

3.2 Software Codierspezifikation Seite 20

3.2.7 Flußdiagramme

a) Subroutine MEASURE_&_CALCULATE

Dieses Unterprogramm wird in zeitlichen Abständen von 1. Minute aufgerufen(Meßintervall = 60 s). Das Meßprinzip ist im Kapitel 2.1.2 erklärt. Timer1 wirdfür Messung als Pulsbreitenmesser initialisert, sonst wird er alsBaudratengenerator (ser. Schnittstelle) verwendet. Während der Messung ist nurder Timer1-Interrupt (wird durch Überlauf des Timer1 ausgelöst) enabled, d.h.ein Fehler bei Temperaturmessung (z.B. Kabelbruch oder Manipulation an denSensoren) kann festgestellt, im EERPOM zur späteren Auswertungdokumentiert und im Display angezeigt werden. Andere Interrupts würden dasMeßergebnis ver-fälschen. Die Messung der drei Zeitkonstanten dauert ca. 120ms bei fosz=1.8432 MHz. Die Berechnung der Wärmemenge, des Volumen usw.dauert ca. 250 ms.

Beispiel eines Meß- u. Berechnungsvorgangs:(Hardware s. Bild 4.2)

- Kondensator laden- Timer1 löschen und starten- Kondensator über Widerstand R_Comp, R_Temp_1 oder R_Temp_2 entladen,Timer solange zählen lassen bis Kondensatorspannung unter Triggerschwelle sinkt und Komparatorausgang wechselt.- binären Timerwert auslesen und in BCD-Code konvertieren, da BCD- Arithmetikprogramme verwendet werden- Berechnung der Pt100-Widerstände - Berechnung von Vor- u. Rücklauftemperatur, Temperaturdifferenz, Wärmemenge, Wärmeleistung und Volumen

Page 26: Heat Counter.pdf

3.2 Software Codierspezifikation Seite 21

Flußdiagramm zur Subroutine Measure_&_Calculate:

Page 27: Heat Counter.pdf

3.2 Software Codierspezifikation Seite 22

Flußdiagramm zur Subroutine Measure_&_Calculate (Fortsetzung):

Page 28: Heat Counter.pdf

3.2 Software Codierspezifikation Seite 23

b) Reset

Nach Programmstart werden die Hardware und das LCD-Modul initialisiert.Nach einem Netzausfall werden die im EEPROM gesicherten Meßdaten aufDatenkonsistenz (durch Bildung einer Checksum) geprüft und falls gültig insinterne RAM des Mikrocontrollers übertragen. Danach wird der Prozessor inden IDLE-Mode versetzt (s. Kap. 3.1).

µ §

Page 29: Heat Counter.pdf

3.2 Software Codierspezifikation Seite 24

c) Externer Interrupt 0

Der Durchflusszähler (Volumenzähler) gibt pro Liter einen Impuls aus. Dienegative Flanke diese Impulses löst den ext. Interrupt 0 des 80C31 aus. In derInterrupt-Service-Routine wird Volumenstrom-Register um 1 erhöht. DieseRegister wird jede Minute ausgelesen, und enthält zu diesem Zeitpunkt denVolumenstrom in Liter/Minute. Register Vol_Counter enthält den Volumenstromin Liter/Stunde. Falls innerhalb einer Stunde kein Volumenimpuls gemessenwurde, wird Flag_Vol_Error gesetzt (Durchflusszähler defekt bzw. Anlaufgrenzefür Durchflusszähler nicht erreicht, d.h. die Messung des Volumens gilt erst abeinem best. Volumenstrom. Dieser Wert ist von den Betriebsdaten desDurchflusszählers abhängig).

Flußdiagramm zum externen Interrupt 0:

Page 30: Heat Counter.pdf

3.2 Software Codierspezifikation Seite 25

d) Timer Interrupt 0

Wird als Zeitreferenz benutzt und alle 0.4 Sekunden bei einer Quarz-frequenzvon 1.8432 MHz aufgerufen. Steuert zeitabhängige Tasks. Es wird z.B. jedeMinute die Subroutine Measure_&_Calculate und jede Stunde die SubroutineSave_Data aufgerufen.

Flußdiagramm zum Timer Interrupt 0:

µ §

Page 31: Heat Counter.pdf

3.2 Software Codierspezifikation Seite 26

Flußdiagramm zum Timer Interrupt 0 (Fortsetzung):

Page 32: Heat Counter.pdf

3.2 Software Codierspezifikation Seite 27

e) Externer Interrupt 1

Wird durch Tastenbetätigung ausgelöst. Durch erneute Tastenbetätig-ung wirdnächstes Datum im Display angezeigt. Nachdem letztes Datum angezeigt wurde,wird wieder beim ersten Datum fortgesetzt.Wurde eine Minute lang keine Taste gedrückt, wird Display ausge- schaltet.

Flußdiagramm zum externen Interrupt 1:

Page 33: Heat Counter.pdf

3.2 Software Codierspezifikation Seite 28

State Anzeige

0 Wärmemenge in GJ

1 Vorlauftemperatur in °C

2 Rücklauftemperatur in °C

3 Temperaturdifferenz in K

4 Volumen in m3

5 Wärmeleistung in kW

Page 34: Heat Counter.pdf

3.2 Software Codierspezifikation Seite 29

f) Timer Interrupt 1

Flußdiagramm zum Timer Interrupt 1:

Page 35: Heat Counter.pdf

3.2 Software Codierspezifikation Seite 30

g) Serieller Interrupt

Flußdiagramm zum seriellen Interrupt:

Page 36: Heat Counter.pdf

3.2 Software Codierspezifikation Seite 31

h) Subroutine SAVE_DATA

Flußdiagramm zur Datensicherung:

µ §

Page 37: Heat Counter.pdf

3.2 Software Codierspezifikation Seite 32

i) Subroutine READ_DATA

Flußdiagramm zum Auslesen des EEPROMs:

µ §

Page 38: Heat Counter.pdf

3.3 Software Programmlisting Seite 33

3.3 Programmlisting

Page 39: Heat Counter.pdf

4. Hardware Entwurfsspezifikation Seite 34

4. HARDWARE

4.1 Entwurfsspezifikation

Die Entwurfsspezifikation beschreibt die Hardware und enthält z.B.Datenblätter.

4.1.1 Schaltungskonzept

µ §

Bild 4.1 Blockschaltbild 'elektronischer Wärmemengenmesser'

4.1.2 Programmspeicher

Es besteht die Möglichkeit entweder ein externes EPROM 27C64 oder einenmaskenprogrammierten 80C51 bzw. die EPROM-Version 87C51 einzusetzen(Achtung: Jumper 2 richtig setzen).

Page 40: Heat Counter.pdf

4.1 Hardware Entwurfsspezifikation Seite 35

Features EPROM 27C64:· Speichergröße 64K· Organisation 8K x 8· max. Zugriffszeit 150ns· max. Stromaufnahme bei Vcc aktiv (/CE=L und /OE=L): 20mA

stand-by (/CE=H) : 1 mA

Das EPROM ist mit Abstand der größte Energieverbraucher in der Schaltung.Welche Möglichkeiten gibt es nun, um den Energieverbrauch zu reduzieren ?

· CMOS-Version einsetzen· kleine Speichergröße verwenden· stand-by-Mode ausnutzen

Da sich der Prozessor während der Anwendung hauptsächlich im Idle-Mode (s.Kap. 3.1: der Prozessor wird vom Takt getrennt, und kann nur durch einenInterrupt diesen Mode verlassen) befindet, und er während dieser Zeit sein /PSE-Signal auf H legt, folgert daraus, daß man /PSE mit /CE verbindet (/OE=L). DasERPOM wird also automatisch in den stand-by-Mode versetzt und dieStromaufnahme reduziert sich auf ein 20tel.

Nachteil: Die Zugriffszeit verdoppelt sich (2*150ns=300ns). Dies stellt aber beider geringen Taktfrequenz (1 Maschinenzyklus=6.51ms) des Prozessors keinProblem dar.

nicht implementierte Optionen:

Eine weitere Möglichkeit wäre der Anschluß eines Uhrenbausteins an den I2C-Bus, um z.B. den Zeitpunkt der Fernabfragen (Wärmekosten-abrechnung) oderaufgetretener Fehler zu dokumentieren.

Page 41: Heat Counter.pdf

4.1 Hardware Entwurfsspezifikation Seite 36

4.1.3 AD-Wandler

Zur Temperaturmessung werden Pt100-Temperatursensoren und ein integrativesWandlungsverfahren (ähnlich dem Dual-Slope-Verfahren) eingesetzt. DieAuflösung der Temperaturmessung soll mindestens 0.5 K betragen. Umkapazitive und magnetische Einkopplungen des Netzes zu unterdrücken, wirddie Integrationszeit auf ein ganzzahliges Viel-faches von 1/50Hz=20msfestgelegt. Die Intergrationszeit kann aber nur auf etwa n*20ms festgelegtwerden, da sie vom Sensorwiderstand abhängig ist.

Kennlinie des Pt100-Sensors [6]:

µ § (4 - 1)

R0=100W

mit A=3,90802*10-3/°C; B=-5,802*10-7/(°C)2; C=-4.2735*10-12/(°C)4 für -200°C £ J £ 0 °C und C=0 für 0°C £ J £ 850°C

Gleichung (4-1) kann ohne größere Fehler durch lineare Regression vereinfachtwerden zu:µ § (4 - 2) ® µ

§ (4 - 3)

maximaler Fehler durch Linearisierung DJ: µ § für J=50°C mit µ

§

µ § (4 - 4)

Durch die Linearisierung der Temperatursensorkennlinie im Bereich von0°C..100°C (Arbeitsbereich einer Heizungsanlage: ca. von 20°C..90°C) wirdalso ein relativ kleiner Fehler gemacht. Eine Erhöhung der Genauigkeit könnteman z.B. dadurch erreichen, daß man Kennlinienpunkte in einer Tabelle ablegtund Zwischenwerte interpoliert (Näherung der Kennlinie durch einenPolygonzug).

Page 42: Heat Counter.pdf

4.1 Hardware Entwurfsspezifikation Seite 37

Schaltbild AD-Wandler:

µ §

Bild 4.2 Schaltbild des analogen und digitalen (80C51) Teils des AD-Wandlers

R5 / R6 .. Pt100-Temperatursensoren (Software: R_Temp_1/2)R4 .. Vergleichswiderstand (Software: R_Comp)

Funktion AD-Wandler:

µ §

Bild 4.3 Diagramm der Kondensatorspannung Uc

µ § (4 - 5)

Page 43: Heat Counter.pdf

4.1 Hardware Entwurfsspezifikation Seite 38

Der Kondensator C8

wird auf Vcc-Ucesat aufgeladen und anschließend übereinen der 3 Widerstände entladen. Mit Beginn der Entladung wird derrückgesetzte Zähler gestartet. Wenn Uc die Schwelle UTrigger unterschreitet,kippt die Spannung am Ausgang des Komparators von H auf L. Der Zähler wirddadurch gestoppt und der Wert zwischen-gespeichert. Nachdem man das dreimalwiederholt hat, kann man mit Gleichung (4-5) die Widerstände der beiden

Temperatursensoren berechnen. Von diesen Wert müssen noch RDSon

desMOSFETs (laut. Datenblatt ca. 40mW) und der Leitungswiderstand (bei 2mLeitungslänge, 0.25mm2 Querschnitt, Cu ca. 144mW) zu den Sensorenabgezogen werden, um den wirklichen Widerstandwert zu erhalten. MitGleichung (4 - 3) wird dann die Temperatur berechnet.

Vorteil des AD-Wandlers:

Der Kalibrierungszyklus (Entladung von C8 über R4) entfernt alle Fehler ersterOrdnung (Langzeitstabilität, Genauigkeit und Temperatur-abhängigkeit derverwendeten Komponenten und Versorgungsspan-nung). Es sind keineReferenzspannungsquellen notwendig. Nur der Vergleichswiderstand R4 mußmöglichst genau bekannt, temperatur-unabhängig und langzeitstabil sein, da erden Fehler der AD-Wandlung beträchtlich beeinflusst.

Dimensionierung AD-Wandler:

Um eine Auflösung von min. DJ=0.5 Kelvin zu erreichen, muß nach Gl. (4-4)der Temperaturwiderstand mit einer Genauigkeit von mindestens DR=0.19Wgemessen werden.

µ §

d.h. der Zähler muß bis mindestens n=729 zählen, um die geforderte Auflösung

zu erreichen. Bei einer Periodendauer TTakt

=6.51us entspricht dies einer Zeit

Tint:

µ § mit fosz=1.8432MHz und x Î [2,3]

Page 44: Heat Counter.pdf

4.1 Hardware Entwurfsspezifikation Seite 39

Eine gute Störunterdrückung der Netzeinkopplungen wird aber nur erreicht,wenn die Integrationszeit ein ganzzahliges Vielfaches von 20ms (Grund:Mittelwert der Störwechselspannung = 0) beträgt. Daraus folgt, dieIntegrationszeit wird auf etwa 20 ms festgelegt. Damit berechnet sich n zu:

µ §

· Berechnung von C mit Ucesat=0.2V, R3=12kW und R2=47kWgewählt:

µ §

µ § ®

µ §

Der Kondensator C8

wird auf etwa 100mF festgelegt. Es wird einTantal-Kondensator verwendet, da er eine geringere Selbstent- ladung

besitzt.

· Für R4 wird ein Metallschichtwiderstand mit 100W und 0.1% Toleranzverwendet, um min. die geforderte Auflösung von 0.5 Kelvin zu erreichen (s.u. max. Fehler).

· Die Triggerschwelle wird auf etwa 1V festgelegt ->R3/(R2+R3)=1/5 -> R2=47k und R3=12k (sollten wegen Verlust-leistung nicht zu klein gewählt werden)

· Als Komparator wird eine verlustarme Version, z.B. LM 393,verwendet

Page 45: Heat Counter.pdf

4.1 Hardware Entwurfsspezifikation Seite 40

Abschätzung des Leistungsverbrauchs des Analogteils des AD-Wandlers beieiner Messung (3 Lade -u. Entladezyklen) pro Minute:

· Komparator: µ §

· Kondensator: µ §

· R2 / R3: µ §

· MOSFET: Umschaltverluste (Umladung der CGS

..) sind ver-nachlässigbar

® µ §

max. Fehlerabschätzung der Temperaturmessung:

Aus Gleichung (4 - 3) und (4 - 5) folgt:

µ §

4.1.4 RS232-Schnittstelle

Das serielle Interface des 80C51 benötigt eine Taktrate die 16mal die Baudrateist. Bei einer Baudrate von 1.2 KBaud und einer Quarz-frequenz vonfosz=1.8432 MHz beträgt der Reload-Wert des Timer1-High-Registers=252 (s.Gl. 4-6).Als Treiber und zur Pegelanpassung an den RS-232-Standard wird der BausteinMAX220 (ultra low-power) verwendet.

µ § (4 - 6)

Page 46: Heat Counter.pdf

4.1 Hardware Entwurfsspezifikation Seite 41

4.1.5 Bedienteil

Das 'Bedienteil' besteht aus einer einzigen Taste.

Schaltbild:

µ §

Bild 4.4 Schaltbild Bedienteil

Funktion:

Initialisierung: Sense-Line als Eingang (d.h. H in P3.4 schreiben) und Drive-Line als Ausgang initialisieren.Während der Bedienteilabfrage (Tastendruckerkennung) muß die Drive-Line(P1.4) auf L gelegt werden. Bei Tastenbetätigung wird die Sense-Line auf Lheruntergezogen und der ext. Interrupt 0 (handelt Tasten-abfrage) wird durch dienegative Flanke ausgelöst.

Der Ausgang des Operationsverstärkers hat normalerweise H-Pegel(Kondensator geladen). Nur wenn die Kondensatorspannung >Schwellwertspannung UTrigger ist, geht Ausgang auf L-Pegel. -> Während der Temperaturmessung muß der ext. Interrupt 0 disabled werdenund es muß eine Diode o. Widerstand eingesetzt werden, damit durchTastenbetätigung der Port-Transister nicht überlastet wird.

Vorteil dieser Schaltung:

Taste kann deaktiviert werden, indem man H auf Drive-Line ausgibt. Davonwird während der Temperaturmessung gebraucht gemacht, da hier P3.4 zumStoppen des Zählers während der Zeitkonstanten-messung benötigt wird.

Page 47: Heat Counter.pdf

4.1 Hardware Entwurfsspezifikation Seite 42

4.1.6 EEPROM

Die Meßdaten usw. dürfen natürlich durch einen Netzausfall nicht verlorengehenund müssen in einen nichtflüchtigen Speicher abgelegt werden, falls wie indieser Anwendung keine Pufferbatterie verwendet wird.Das EEPROM PCF8582 darf aber pro Byte maximal 100000mal beschrieben /gelöscht werden:

Forderung: Schaltung soll mind. 10 Jahre funktionsfähig bleiben ->

µ §

Die Daten werden einmal pro Stunde im EEPROM abgelegt. Falls nur einkleiner Teil des EEPROMs mit Daten belegt ist, könnte man z.B. nach 10Jahren, den Bereich neu festlegen, in dem die Daten abgelegt werden (nichtimplementiert).

µ §

Bei einem geschätzten Speicherbedarf von 100 byte und einen Speichergrößevon 256 byte, würde die Lebensdauer (Funktions-fähigkeit) des EEPROMsverdoppelt.

Meßfehler durch Netzausfall:

Die Teilwärmemenge und das Teilvolumen von maximal einer Stunde (da jedeStunde die aktuellen Daten ins EEPROM geschrieben werden) gehen durcheinen Netzausfall verloren. Der dadurch entstehende Meß-fehler ist im Vergleichzum gesamten Meßzeitraum der Wärmekosten-abrechnung (z.B. 1 Jahr)vernachlässigbar.

Page 48: Heat Counter.pdf

4.1 Hardware Entwurfsspezifikation Seite 43

Begründung:

Vereinfachung: Heizungsanlage läuft das ganze Jahr mit ungefähr konstanterWärmeleistung ->

maximaler Meßfehler pro Netzausfall bezogen auf Abrechnungszeitraum 1 Jahr:µ §

Dieser Wert ist im Vergleich zur Meßgenauigkeit (s. 4.1.2. unten) des Systemsum den Faktor 29 kleiner.

Der wirklicher Meßfehler pro Netzausfall bezogen auf den Abrechnungs-zeitraum ist natürlich vom Zeitpunkt der letzten Datensicherung abhängig: µ §

Dieser Wert liegt also im Bereich von fast 0% .. 0.011%.

Page 49: Heat Counter.pdf

4.1 Hardware Entwurfsspezifikation Seite 44

4.1.7 Display

Schaltbild LCD-Modul:µ §

Bild 4.5 Anschluß des LCD_Moduls

kurze Funktionsbeschreibung:

Verwendet wird das 16X2 (2 Zeilen mit jeweils 16 Characters) ModulHD44780. Das Modul wird mit dem Anlegen der Versorgungsspannungautomatisch initialisert, aber leider nur für einzeiligen Betrieb. Es muß also fürzweizeiligen Betrieb neu initialisiert werden. Die zwei Register des Moduls, dasInstruction-Register (IR) und das Daten-Register (DR), werden durch das SignalRS ausgewählt. Ob die Register gelesen oder beschrieben werden sollen, legtdas Signal R/W fest.

Ansteuerung:

A1 = R/W A0 = RS Funktion mit E=HA15=H

L L IR <- DB0..7

H L DB0..7 <- IR

L H DR <- DB0..7

H H DB0..7 <- DR

® Schreiben des Akku ins Datenregister durch MOVX @DPTR, A mit DPTR=1XXX XXXX XXXX XX01B. Schreiben des Akku ins Befehlsregister durch MOVX @DPTR, A mit DPTR=1XXX XXXX XXXX XX00B.

Page 50: Heat Counter.pdf

4.1 Hardware Entwurfsspezifikation Seite 45

gefordertes Timing des LCD-Moduls:

µ §

Bild 4.6 Impulsdiagramm einer Schreiboperation

ITEM SYMBOL MIN. MAX. UNIT

Enable Cycle Time t cyc E 1.0 - ms

Enable Pulse Width PW E 450 - ns

Enable Rise/Fall Time t Er, t Ef - 25 ns

Address Set-up Time t AS 140 - ns

Adress Hold Time t AH 10 - ns

Data Start-up Time t DSW 195 - ns

Data Hold Time t H 10 - ns

In dieser Anwendung wird nur die Schreiboperation benötigt. Die Leseoperationläuft ähnlich (Signal R/W=H) und wird deshalb nicht erklärt.Um das geforderte Timing zu erhalten, muß man erst einmal wissen, wie dasTiming des 80C51 bei einem ext. Datenspeicher-Schreibzugriff aussieht.

Bild 4.7 Impulsdiagramm ext. Datenspeicher-Schreibzyklus des 80C51

Page 51: Heat Counter.pdf

4.1 Hardware Entwurfsspezifikation Seite 46

ITEM SYMBOL TIME / ms

Maschinenzyklus tmcyc 6.51

Write Pulse Width PW wr 2.1

Address Set-up Time t3 1.63

Die beiden Signale RS und R//W lassen sich einfach dadurch erzeugen, indemman A0=RS und A1=R//W setzt, d.h. wenn ALE (Address Latch Enable) nach Lgeht, werden die Daten auf Port0 (in diesen Fall DPL (Datenpointer Lowbyte))gelatcht.

Das Enable-Signal läßt sich aus /RD u. /WR des Microcontrollers und einemAdressdecoder-Signal gewinnen:

µ §

d.h. bei einem ext. Datenspeicher-Lese- o. Schreibzugriff auf die passendeAdresse wird das LCD-Modul enabled.Da kein ext. RAM verwendet wird, kann auf einen Adressdecoder verzichtetwerden, indem man z.B. A15 als Adressdecodersignal verwendet.

µ §

® das geforderte Timing wird eingehalten (vor allem aufgrund der niedrigenTaktfrequenz; die Propagation-Delay-Time der Gatter in der kombinatorischenLogik zur Erzeugung des Enable-Signals kann vernachlässigt (max. 80ns beiHC-Typen) werden)

Page 52: Heat Counter.pdf

4.1 Hardware Entwurfsspezifikation Seite 47

komb. Logik:

Es soll nur ein Gater-Typ zur Erzeugung des Enable-Signals verwendet werden(weniger Komponenten, Energieverbrauch ...). Es wird der Typ 74HC00 (4NAND-Gatter) ausgewählt, da sich aus einen NAND- oder NOR-Gatter alleanderen Gatter-Typen ableiten lassen.

µ §

Um das Enable-Signal zu erzeugen, sind also 3 Nand-Glieder aus-reichend:

Bild 4.8 Enable-Logik

Page 53: Heat Counter.pdf

4.2 Hardware Schaltplan Seite 48

4.2 Schaltplan

Page 54: Heat Counter.pdf

4.3 Hardware Layout Seite 49

4.3 Layout

4.3.1 Bestückungsplan

Page 55: Heat Counter.pdf

4.3 Hardware Layout Seite 50

4.3.2 Layout der Komponentenseite

Page 56: Heat Counter.pdf

4.3 Hardware Layout Seite 51

4.3.2 Layout der Lötseite

Page 57: Heat Counter.pdf

5. Literaturverzeichnis / Quellennachweis Seite 52

5. Literaturverzeichnis / Quellennachweis

[1] Hering / Martin /.. : Physik für Ingenieure, S. 1573. Auflage 1989VDI-Verlag, Düsseldorf

[2] Water : Encyclopaedia Britannica, Band 19, S. 63415. Auflage 1983Enc. Br. Inc., Chicago

[3] Bohrmann / Pitka / .. : Physik für Ingenieure, S. 6121. Auflage 1993Verlag Harri Deutsch, Frankfurt an Main

[4] Microchip Ò : PICÒ16C5X Introduction KitMicrochip Technology Incorporated2355 West Chandler Blvd.Chandler, AZ 85224-6199

[5] Feger : Die 8051-Mikrocontroller-FamilieTeil1: Einführung in die SoftwareVerlag: Siemens Aktiengesellschaft,

München 1991

[6] Niebuhr / Lindner : Physikalische Meßtechnik mit Sensoren,S. 184 / 1853. Auflage 1994R. Oldenbourg Verlag , München

[7] ACTRON Application NoteActron Distributor8000 München 82, Dompfaffweg 10

Page 58: Heat Counter.pdf

6. Anhang Seite 53

6. Anhang

(enthält Datenblätter usw.)

Page 59: Heat Counter.pdf