EDE - Einfacher Datenerfasser

1. Übersicht

Ein einfacher Datenerfasser mit folgenden Merkmalen

Einsatzbereich: für alles mögliche.

2. Allgemeines

Befehlsübersicht

Es gibt 16 Befehle (0 .. F)

Jeder Befehl hat ein Argument (0000 ... FFFF)

Jeder Befehl wird durch einen Punkt eingeleitet.

Ein CR ($13) führt einen Befehl aus. Wird nur ein CR gesendet, wird der letzte Befehl wiederholt ausgeführt.

Befehl Argument Bedeutung

0

000X Einzelmessung von Kanal X. Ergebnis sofort senden.

1

0000 Einzelmessung aller Kanäle. Ergebnis sofort senden.

2

0000 Einzelmessung nach Bitmaske. Ergebnis sofort senden.

3

000X Starte Messung in den Speicher. X=0=Stop, X=1=Start

4

00XX Bitmaske für Kanäle setzen.

5

0XXX Messzykluszeit setzen (0..3600 Sekunden).

6

XXXX Setze Zeitzähler High Word

7

XXXX Setze Zeitzähler Low Word (Lädt den Zeitzähler)

8

000X Starte Übertragung aus dem Speicher, X=0=Stop, X=1=Start

9

000X Starte Messung, X=0=Stop, X=1=Start

A

0000 frei

B

0000 frei

C

0000 frei

D

0000 frei

E

0000 frei

F

0000 Versionsnummer abfragen

Messzeit

Die Messzeit ist eine 32 Bit Zahl (4 Bytes = DWord). Sie enthält die Zeit in Sekunden seit dem 1.1.2000 00:00:00.

EDE verfügt nicht über eine RTC, sondern nur über einen 1 Sekunden Interrupt. Dieser Interrupt inkrementiert den Zeitzähler. Wird auf eine korrekte Zeit zu jeder Messung Wert gelegt, dann ist der Zeitzähler entsprechend zu setzen. Im Standalonebetrieb ist dieses natürlich nicht möglich.

Schalter

Es gibt 6 externe Schalter mit folgender Bedeutung

Schalter Bedeutung
S1 Schaltet zwischen externer Spannung und Akkubetrieb um. Nur wenn EDE durch eine externe Spannung versorgt wird, kann der Akku geladen werden.
S2 Schaltet EDE Ein oder Aus.
S3 Nach dem Einschalten fängt EDE sofort an zu messen.
S4 Nach dem Einschalten werden die Messergebnisse in den Speicher abgelegt.
S5 Nach dem Einschalten werden die Messwerte über die serielle Schnittstelle gesendet.
S6 Dieser Schalter hat drei Stellungen und bestimmt den Messzyklus: 1 = 1 Sekunde, 2 = 10 Sekunden, 3 = 1 Minute.
S3 bis S6 werden nur nach dem Einschalten der Versorgungsspannung ausgelesen und bestimmen das Startverhalten von EDE.

Datensatz

Ein Datensatz besteht aus 14 Bytes. Da der PIC nicht über einen Multiplikationsbefehl verfügt, es aber Adressen in einem großen Adressraum berechnet werden müssen, werden für einen Datensatz 16 Bytes reserviert. Bei einem externen Speicher von 32 MB können 2097152 Datensätze gespeichert werden. Jeder Kanal erzeugt einen Datensatz. Daraus ergeben sich folgende Speicherzeiten:

12 Kanäle im 1 Sekunden Takt = 2097152 / 12 = 174762 Datensätze = 1 Tag 00:16:21
1 Kanal im 10 Sekunden Takt = 2097152 / 1 = 2097152 Datensätze = 242 Tage 17:25:20
4 Kanäle im 10 Minuten Takt = 2097152 / 4 = 524288 Datensätze = 9 Jahre 355 Tage 21:20:00

$00 1 Byte Kanalnummer. Maximu = 13 = $0D.
$00000000 4 Byte Uhrzeit. Anzahl Sekunden sein 1.1.2000 00:00:00 Uhr
$000000 3 Byte Messwert. Der Messwert besteht aus der Summe aller Messung im Messzyklus. Der Grundtakt ist eine Sekunde. Bei einem Messzyklus von einer Minute besteht der Messwert also aus der Summe von 60 Einzelmessungen. Maximum = 3600 * 4095 = 14745600 = $E10000.
$0000 2 Byte Anzahl der Messungen im Messzyklus. XXXXXX / NNN ergibt also den Mittelwert im Messzyklus. Maximum = 3600 = 0E10.
$0000 2 Byte. Kleinster Messwert im Messzyklus. Minimum = 0 = $0000.
$0000 2 Byte. Größter Messwert im Messzyklus. Maximum = 4095 = 0FFF.
Bei der Übertragung zum PC wird jedes Byte als Hexadezimale Zahl übertragen. Der Datensatz beginnt mit eine = Zeichen und endet mit einem CR. Es werden also pro Datensatz 27 Bytes übertragen.

Bei 38400 Baud dauert die Übertragung von einem Datensatz ca. 0,625 ms. Die Übetragung von 2097152 Datensätzen dauert dann ca. 22 Minuten.

3. Hardware

4. Software