Funkamateur 01/88 |
Das Programm mißt Frequenzen im Bereich von etwa 10 bis 40000 Hz.
Sein systematischer Fehler ist kleiner als
3 * 10-5. Je Sekunde werden in Abhängigkeit von der zu
messenden Frequenz und der Rechnertaktfrequenz
bis zu vier Meßwerte ermittelt. Zur Messung höherer
Frequenzen kann man einen dekadischen Vorteiler mit dem im
Bild 1 angegebenen Abschluß verwenden. Bild 2 zeigt die auf diese Weise durch 1000
geteilte Taktfrequenz des Rechners.
Technische Voraussetzung sind ein Kassettenspeichereingang über
einen PIO und zwei in der Numerierung aufeinanderfolgende
kaskadierte CTC-Kanäle. Das Programm besteht aus den Abschnitten
Meßprogramm, Frequenzberechnungsprogramm und
Anzeigeprogramm. Alle Abschnitte sind an verschiedene Lagen im
Hauptspeicher anpaßbar.
Das Meßprogramm ist an verschiedene Peripherieadressen, das
Frequenzberechnungsprogramm an die gebräuchlichen
Taktfrequenzen von 1,0; 1,75; 2,0 und 2.4576 MHz anzupassen. Das
Anzeigeprogramm ist für "AC1"-kompatible Rechner eingerichtet. Es
benutzt die "AC1"-Graphiksymbole und stellt die Frequenz als
fünfstellige Gleitkommazahl
mit dem angefügten Zeichen "Hz" auf einem 16- oder 32-zeiligen
Bild (64 Zeichen je Zeile) dar. Die Arbeit des
Programms wird mit einem blinkenden Balken über dem "z" angezeigt.
Für andere Mikrorechner ist das Anzeigeprogramm
durch ein dem Bildformat des verwendeten Rechners angepaßtes
Programm zu ersetzen. Bis auf den Stack und den
Bereich für das Ergebnis können die ersten beiden Programme
in ROMs verwendet werden. Deshalb ließe sich auch
der Bau eines unabhängigen Frequenzmessers mit 7-Segment-Anzeige
in Betracht ziehen. Er hätte gegenüber den
bisher im FUNKAMATEUR beschriebenen den Vorteil, daß er mit nur
zwei Meßbereichen, durchgängig hoher
Meßgeschwindigkeit und Genauigkeit, bis an die obere Grenze des
Frequenzbereichs der TTL,Bauelemente reicht.
An spezifischen Bauelementen wären erforderlich:
1 x U 880 D, 1 x U 855 D, 1 x U 857 D, 1 x EPROM, 2 x U 225 D, 5 x DS
8212 D für den NF-Meßteil und 3 x D 192 D,
1 x D 100 D für den Vorteiler.
Die DS 8212 D dienen der direkten Speisung der Lichtemitteranzeigen.
Die Ziffernkodes werden vom Programm direkt
geliefert, so daß Dekodierschaltkreise nicht erforderlich sind.
Auch eine externe Adreßdekodierung ist nicht
erforderlich, wenn man ihre Steuereingänge folgendermaßen
beschaltet: /CS1 = L, /CS2 = H. STB = An (n=0,...,4)
und MD = /WR8A15. Damit sind die Anzeigeregister mit den Adressen
8001H, 8002H, 8004H, 8008H und 8010H
adressierbar.
Das Meßprogramm ist für die Startadresse
8000H eingerichtet. Der H-Teil der Startadresse kann beliebig
geändert
werden. Die dazu im Programm erforderlichen Änderungen sind der Tabelle 2 zu entnehmen. Die PIO- und CTC-Adressen
entsprechen denen des "AC1", eine Veränderung ist nach Tabelle 3 möglich. Nach seiner Abarbeitung
ruft es das
Frequenzberechnungsprogramm auf, das sich anschließt (8090H). Das
Meßprogramm übergibt im Registerpaar HL die
Anzahl der gezählten Perioden p der zu messenden Frequenz und im
Registerpaar DE bei einer Rechnertaktfrequenz
für die entsprechende Meßzeit t in Zeiteinheiten (16/fr).
Das Meßprogramm besteht aus:
- dem Rahmen: er initialisiert den PIO und die CTC-Kanalkaskade auf
Unterbrechung, führt eine Warteschleife aus
und ruft nach deren Auflösung des Frequenzberechnungsprogramm auf;
- der Meßstartroutine, die durch die erste Unterbrechung des PIO
aufgerufen wird und durch Eingabe der
Zeitkonstante in den ersten CTC-Kanal der Kaskade die Zeitmessung
auslöst; danach schaltet sie den PIO auf die
Periodenzählroutine um;
- der Zählroutine, die mit jedem Aufruf den Inhalt des
Registerpaars HL um 1 erhöht;
- dem CTC-Unterbrechungsprogramm, das nach 10H x 8000H Rechnertakten
aufgerufen wird und veranlaßt, daß beim
nächsten Periodenbeginn der zu messenden Frequenz die
Meßabschlußroutine aufgerufen wird;
- der Meßabschlußroutine, die die Zählerstände
der CTC-Kanäle liest, die Meßzeit berechnet, die PIO und CTC
deaktiviert und die Warteschleife auflöst.
Wer das Programm disassembliert, wundere sich nicht über die zwei
Warteschleifen und zwei Meßabschlußroutinen.
Sie sind aus technischen Gründen bzw. zur Sicherung einer hohen
Genauigkeit bei hohen Frequenzen erforderlich.
Bild 2 enthält das Meßprogramm in
hexadezimaler Darstellung. Bevor wir zur Fortsetzung kommen,
möchten wir den
"AC1"-Pionieren dafür danken, daß sie Programmsysteme
erschlossen und kostenlos zur Verfügung gestellt haben.
Die Frequenz f wird mit der Formel
f = p * fr / t * 16 (1)
berechnet. Darin bedeuten: p - die von der PIO gezählten Perioden,
t - die von den CTC-Kanälen ermittelten
Zeiteinheiten und fr die Taktfrequenz des Rechners.
Eingerichtet ist die Frequenzberechnung auf
folgendermaßen darstellbare Taktfrequenzen:
fr = k * 2b * 10d [Hz]. (2)
In der Tabelle 8 sind die zu den verbreiteten
Taktfrequenzen fr gehörenden Werte für k, b und d angegeben.
Die Tabelle 6 enthält ein
Frequenzberechnungsprogramm für k * 2b ≤ 2 und d = 6,
Tabelle 7 ein Programm für
die Taktfrequenz 2,4576 MHz. Die Adresse der höchsten Stelle der
Frequenz steht im Registerpaar DE bereit.
Die Adressen der Stellen fallen mit deren Rang. Je Dezimalziffer ist
ein Byte mit dem entsprechenden Dualwert
belegt. Die Stelle, hinter der das Komma steht, wird mit Bit 7 = 1
markiert. Auf die fünfstellige Zahl folgen
zur Darstellung der Zeichen Hz die Werte 0BH und 0CH.
Das in Tabelle 6 dargestellte Anzeigeprogramm setzt die Pseudo-Graphikzeichen des "AC1" [1] und einen Bildschirm mit 16/32 Zeilen zu 64 Zeichen voraus, mit von links oben nach rechts unten fallender Adressierung. Es stellt die Frequenz als fünfstellige Gleitkommazahl auf dem Bildschirm dar.
In den Tabellen 2 bis 5 sind alle Adressen enthalten, die bei einer Verschiebung, abweichender Taktfrequenz oder Peripherieadressen geändert werden müssen. Für eine Taktfrequenz von 2,4576 MHz ist das in Tabelle 7 wiedergegebene Programm anstelle dem in Tabelle 6 zu verwenden, und das Anzeigeprogramm zu höheren Adressen hin zu verschieben. Für abweichende Bildformate ist das Anzeigeprogramm durch ein dem Bildformat des verwendeten Rechners angepaßtes zu ersetzen.
Der relative Meßfehler ist df/f ≤ 3*10-5
für 3 * fr / (16 * 32768 ) < f < fr /
68
bzw. df/f ≤ 6*10-5 für fr/68 < f < fr/32.
Dabei ist der relative Rechenfehler df/f ≤ 5*10-5. Diese
Genauigkeiten werden nur erreicht, wenn der
Taktfrequenzgenerator noch genauer arbeitet. Falls der Taktgenerator
Ziehelemente enthält, kann man ihn z.B.
während der Messung der Fernsehzeilenfrequenz fz = 15625 Hz
eichen, da diese mit einem relativen Frequenzfehler
von dfz/fz ≤ 10-10 ausgestrahlt wird.
[1] | Heyder, F.: Bitmuster für Zeichengenerator und
Ergänzungen zum "AC1" FUNKAMATEUR 35 (1986) H. 6, S. 306 |
36 KByte | 111 KByte | 42 KByte | 57 KByte |
Bild 1 | Bild 2 | Tabelle 1 | Tabelle 2 |
68 KByte | 38 KByte | 34 KByte | 210 KByte |
Tabelle 3 | Tabelle 4 | Tabelle 5 | Tabelle 6 |
119 KByte | 34 KByte |
Tabelle 7 | Tabelle 8 |
Funkamateur 04/88 |
Die Adresse 8043 in Tabelle 2 ist in 8093 zu ändern.