Ein einfacher Datenerfasser mit folgenden Merkmalen
Einsatzbereich: für alles mögliche.
BefehlsübersichtEs 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 |
MesszeitDie 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. |
SchalterEs 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. | |
DatensatzEin 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 |
|
| $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. |
|