-
-
Schaltungsanordnung zur Auswertung der bei der Abtastung
-
strìchcodier.ter Magnetschriftzeichen aus deren Strichkantensignalen
abgeleiteten Strichkanten-Zeitwerte Die Erfindung betrifft eine Schaltungsanordnung
genäß den Merkmalen des Oberbegriffs des Patentanspruchs 1.
-
Zur maschinellen Dateneingabe sind verschiedene SchrlEtarten entwickelt
worden, die als genormte Klarschriften sowohl vom Menschen als auch von einer Maschine
lesbar sind. Eine dieser genormten Klarschriften ist die sogenannte CMC 7-Magnetschrift,
bei der die einzelnen Schriftzeichen - 10 Ziffern, 26 Großbuchstaben und 5 Hilfszeichen
- in jeweils 7 einzelne Codeelemente aufgelöst sind.
-
Diese Codeelemente sind senkrechte, teils durchgehende, teils unterbrochene
magnetisierbare Striche unterschiedlicher Länge, die in ihrer Zusammenschau ein
für das Auge lesbares Zeichen ergeben. Der für die maschinelle Erkennung vorgesehene
Code ergibt sich dagegen durch die Wahl des Abstandes zwischen den parallel zueinander
laufenden Strichen, wobei z.B.bei Ziffern und Hilfszeichen zwei weite und vier enge
Zwischenräume zu verschiedenen, jeweils zeichenspezifischen Intervallfolgen kombiniert
werden.
-
Der maschinelle Lesevorgang geht nun so vor sich, daß die CMC 7-Schriftzeichen
während des Vorbeilaufs an einem Magnetisierkopf, der einen Dauermagneten enthält,
zunächst in definierter Richtung aufmagnetisiert werden und daß anschließend mittels
eines in Laufrichtung folgenden Abtastkopfes der sich durch die Zeichengestalt
ergebende
Magnetisierungsverlauf abgetastet wird. Die Strichkanten der Zeichen entsprechen
dabei den Amplitudenspitzen des elektrischen Signals. Dieses Analogsignal wird zunächst
in unmittelbarer Nähe des Lesekopfes vorverstärkt, damit es störungsfrei an die
eigentliche Erkennungselektronik übertragen werden kann.
-
Im Rahmen der Datenaufbereitung werden den Amplitudenspitzen jeweils
Zeitwerte zugeordnet, die anschließend in einen Pufferspeicher eingeschrieben werden.
Jedem Zeitwert wird ferner eine Kennung zugeordnet, die besagt, um welche Art Zeitwert
- Strichvorder- oder Strichhinterkante - es sich handelt Diese Zeitwerte werden
dann seriell ausgelesen, verarbeitet und ausgewertet. Dabei werden durch Differenzbildung
diejeweils auftretenden Intervalle bestimmt und in enge und weite Intervalle klassifiziert.
Schließlich werden die einzelnen Intervallfolgen in einem Register gespeichert und
nach Abschluß jeder Intervallfolge die entsprechenden Zeichenklassen durch Decodierung
ermittelt.
-
Der vorliegenden Erfindung liegt nun die Aufgabe zugrunde, für die
Auswertung der Strichkanten-Zeitwerte zur Gewinnung der Strichintervalle bzw. Intervallfolgen
eine ausreichend schnell arbeitende Schaltung anzugeben, die auch bei einer hohen
Abtastgeschwindigkeit eine möglichst sichere Zeichenerkennung gewährleistet.
-
Die Lösung dieser Aufgabe ergibt sich bei einer gattungsgemäßen Scialtungsanordnung
erfindungsgemäß durch die Merkmale des Patentanspruchs 1.
-
Vorteilhafte Weiterbildungen sind in den Unteransprüchen angegeben.
-
Ein Ausfilhrungsbeispiel der Erfindung wird im folgenden
anhand
der Zeichnung näher erläutert. Dabei zeigen FIG 1 das Blockschaltbild einer Mikrocomputereinrichtung
gemäß der Erfindung, FIG 2 eine Auswahl- und Codiereinrichtung im Steuerwerk des
Mikrocomputers gemäß FIG 1.
-
FIG 3 eine Schaltung zur Zeichenklassifizierung anhand der mit der
Schaltung gemäß FIG 1 ermittelten Intervallwerte.
-
Strichcodierte Magnetschriftzeichen nach CMC-7-Norm weisen jeweils
7 parallellaufende, teils durchgehende, teils unterbrochene senkrechte Striche auf,
wobei die Codierung im unterschiedlichen Abstand zwischen den einzelnen Strichen
liegt. Diese Strichkantensignale für die jeweilige Vorder- und Hinterkante werden
in entsprechende Zeitwerte umgesetzt, aus denen dann später die Intervalle bzw.
-
Lücken bestimmt werden. Im vorliegenden Beispiel ist das aus einem
Mehrspurkopf gewonnene Abtastsignal in mehrere Kanalsignale aufgeteilt,wobei die
weitere Auswertung für jeden Kanal getrennt erfolgt. Durch Bestimmung der zwischen
den Abtaststrichen auftretenden Lücken - Mindestlücke oder Trennlücke - werden zunächst
Aussagen im Hinblick auf vorhandene Zeichentrennstellen gewonnen. Aus den Strichkantensignalen
bzw. Lückenmeldungen werden dann Zeitwert-Signale abgeleitet, denen jeweils eine
Kennung bezüglich der Art des Signals - Vorderkante, Vorderkante nach Lücke, Hinterkante,
Lücke - zugeordnet wird. Schließlich werden aus den mit einer Kennung versehenen
Zeitwertsignalen einzelne Intervallsignale und daraus die gesamte Intervallfolge
sowie die Zeichentrennstellen gewonnen.
-
Einzelheiten einer hierfür vorgesehenen Mikrocomputerschaltung ergeben
sich aus dem Blockschaltbild der FIG 1.
-
Diese Mikrocomputer-',chalt.l.ng gliedert sich in ein Rechenwerk RW,
in ein Steuerwerk STW und in einen ProgrammsFeischer PM. Das Rechenwerk RW enthält
ein in drei Bereiche
V, H, V1 aufgeteiltes Zeitwertregister ZWR,
das zum Speichern der aus einem aktuellen Zeitwertpuffer, d.h.
-
Kanal-Pufferspeicher ausgelesenen Zeitwerte dient.
-
Das V-Register speichert die zuletzt ausgelesene Vorderkante, das
H-Register die zuletzt ausgelesene Hinterkante und'das V1-Register die führende
Vorderkante des aktuellen Zeichens. Eine 3-Bit-Aesi Steuerwerk vorgesehenen Kanalwählers
KW wählt einen der Kanal-Zeitwertpuffer an und schaltet dessen Ausgangsdaten (10
Bit Zeitwert und 2 Bit Kennung) auf den Datenbus KBUS 00 bis 11. Die Kennung gibt
an, ob der betreffende Zeitwert von einer Vorderkante (KBUS 11, 10 00), Hinterkante
(01), führender Vorderkante nach einer Lücke (10) oder einer Lücke (11) stammt.
-
Das Rechenwerk RW enthält ferner eine Subtrahierstufe.
-
Sie wird aus vier 4-Bit-Volladdierern ADD gebildet, denen an den zehn
höchstwertigen Stellen die jeweils aktuellen Zeitwerte (KBUS 00 bis 09) sowie das
mit einem Inverter INV gebildete B1-Komplement des angewählten Zeitwertregisterinhalts
zugeführt wird.
-
Das Steuerwerk STW enthält eine Auswahl- und Codiereinrichtung AWC,
ein Adreßregister ADR und ein Statusregister STR mit Kanalwähler KW. Einzelheiten
der Auswahl- und Codiereinrichtung pWC sind in FIG 2 dargestellt. Diese Einrichtung
dient zur Einordnung bzw.
-
Klassifizierung der aus dem Addierer ADD angelieferten Zeitabstandswerte
ZAW in enge bzw. weite Intervalle. Dazu wird der Befehlsablauf des Mikrocomputers
durch den ermittelten Zeitabstandswert ZAW mit Hilfe einer Adreßmodifikation beeinflußt.
Eine erste Codierstufe VC1 zur Codierung der Zeitabstandswerte ZAW teilt den zu
erfassenden Wertebereich z.B. in 1& Bereiche.
-
Jedem Bereich wird durch die Codierstufe VC1 ein
4-Bit-Code
zugeordnet. Dieser Code führt über eine weitere Verknüpfung zu einem 3-Bit-Verzweigungscode
VZC (Adreßmodifikation). Eine zweite Adreßmodifikation erfolgt mittels einer zweiten
Codierstufe VC2, wobei sich die Adreßmodifikation durch eine Codierung von Statussignalen
STS ergibt. Der 3-Bit-VerzweigLmgscode VZC bildet zusammen mit dem Zustandscode
(Programmadresse) die aktuelle Adresse des Programmspeichers.
-
Die jeweilige Art der Adreßmodifikation wird durch einen Codier-Auswahlschalter
CAW gesteuert und durch den 4-Bit-Auswahlcode (Operandenadresse OPADR) aus dem Auswahl-Teil
AWT des Programmspeichers PM bestimmt - ein lediglich vom Zustandscode (unmodifizierte
Programmadresse) bestimmter Teil des Programmspeichers PM.
-
Die Wahl der ersten Art der Adreßmodifikation (durch das Ergebnis
der Zeitabstandswert-Klassifizierung; Auswahlcodes o, 9, A, C, D, E) legt gleichzeitig
das an der Subtraktion vom aktuellen Zeitwert (Minuend) als Subtrahent beteiligte
Teilregister V, H, V1 fest.
-
Die Wahl des zweiten Weges der Adreßmodifikation (Statusabfrage; Auswahlcode
2 bis 6) bestimmt gleichzeitig die in die Adreßmodifikation eingehenden Statussignale
STS und die Wahl einer von fünf Codierfunktionen.
-
Der Mikrocomputer wird von dem in einem Festwertspeicher enthaltenen
Programm gesteuert. Dieser Programmspeicher PM liefert die in jedem Programmschritt
erforderlichen Steuersignale sowie das nächste Zustandswort (Folgeadresse FADR),
das anschließend in das Zustandsregister übernommen wird. Folgeadresse FADR und
Steuersignale bzw.
-
Steuercode STC sind im Zustandsteil ZST bzw. Steuerteil STT des Programmspeichers
PM enthalten. Diese
Teile des Programmspeichers bestehen aus zwei
programmierbaren Festwertspeichern, deren Eingänge parallelgeschaltet sind. Die
9-Bit-Adresse setzt sich zusammen aus dem im Adreßregister ADR stehenden Zustandsswort
(6 Bit) und dem am Ausgang der Auswahl- und Codiereinrichtung AWC auftretenden 3-Bit-Verzweigungscode
VZC (Adreßmodifikation). Die Ausgangsinformationen sind das Folgezustandswort, d.h.
die Folgeadresse FADR und die Steuersignale d.h. der Steuercode STC. Die den jeweiligen
Folgezustand bestimmenden Entscheidungsvariablen sind in erster Linie die Statussignale
und der Zeitabstandswert. In jedem Programmzustand gibt es eine durch die Entscheidungsvariablen
getroffene Wahl zwischen 8 (3-Bit-Code) Steuerungs-und Folgezustandsmöglichkeiten.
Die Auswahl der Möglichkeiten des Verzweigungscodes VZC wird von dem aktuellen Zustandswort
beeinflußt. Dies geschieht über den Auswahlteil AWT des Programmspeichers PM. Dieser
Teil des Programmspeichers liefert für jedes Zustandswort (unmodifizierte Adresse)
einen 4-Bit-Auswahlcode (Operandenadresse OPADR), der die gewünschte Zuweisungsfunktion
für den Verzweigungscode VZC in der Aljswahl und Codiereinrichtung AWC aktiviert
und die in die Zuweisungsfunktion eingehenden Entscheidungsvariablen auswählt. Gleichzeitig
wird das an der Differenzbildung teilnehmende Zeitwertregister bestimmt. Die einzelnen
Bitstellen des Auswahlcodes haben folgende Bedeutung (siehe FIG 2): Das Bit KOT
13 = 1 bedeutet die Differenzwertabfrage bzw. Zeitabstandswert-Abfrage über die
Codierstufe VC1, während bei KOT13 = 0 eine Abfrage der Statussignale aus der Codierstufe
VC2 in Betracht kommt. Das Bit Ort12 trägt bei Statussignalabfragen zur Auswahl
der Statussignale und zur Bestimmung der Verzweigungscode-Zuweisungsfunktion bei.
Bei Differenzwert-Abfragen (KOT13 = 1) gibt KOT12 die Zustandsbit-Erwartung, d.h.
den Meßbereich an. Dahinter steht, daß die drei niedrigstwertigen
Bits
der VC1-Tetrade nur dann als Verzweigungscode freigegeben werden, wenn das vierte
Bit der Tetrade, d.h das Zusatzbit mit der Zusatzbit-Erwartung (KOT12) übereinstimmt.
Anderenfalls wird der Verzweigungscode VZC = 0 eingeblendet.
-
Führt eine Ab frage der Entscheidungsvariablen zwm Verzweigungscode
VZC = 0, dann muß die Codierstufe VC1 in einem weiteren Programmschritt mit umgekehrter
Zusatzbit-Erwartung noch einmal abgefragt werden. Bei dieser erneuten Abfrage liefert
die VC1-Tetrade dann einen gültigen Verzweigungscode.
-
Die Bits KOT11 und KOT10 bewirken bei Statussignalabfragen (KOT13
=< 0) zusammen mit dem Bit KOT12 die Auswahl der Statussignale und die Wahl der
Verzweigungscode-Zuweisungsfunktion. Bei Zeitabstandswert-Abfragen bestimmen diese
Bits das an der Subtraktion beteiligte Zeitwertregister.
-
Das im Steuerwerk STW vorgesehene Statusregister STR enthält einen
Kanalwähler KW, zwei Intervallzähler IZ1, IZ2, einen Wartezähler WZ, eine Zeichenbreite-Uberwachungsschaltung
ZB und ein Lückenverrechnungswerk LV. Der Kanalwähler rDw ist ein 4-Bit-Binärzähler,
dessen drei niedrigste Bits die Kanaladresse darstellen, welche die aktuelle Zeitwerte-Quelle,
z.B. Kanal 1 bis Kanal 7, bestimmt. Der Zähler kann vom Programm her mit dem Wert
9 - entsprechend der Kanaladresse 1 - geladen oder zur Weiterschaltung veranlaßt
werden. Die Weiterschaltung bewirkt normales Vorwärtszähle aus den Zuständen 9 bis
14 und einen Sprung mittels Laden von 15 nach 9. Ständiges Weiterschalten ergibt
einen dauernden zyklischen Kanalwechsel.
-
Das Lückenverrechnungswerk LV hat die Aufgabe, dem Mikroprozessor
die Ermittlung eines für alle Kanäle gemeinsamen zeichenabschließenden Zeitwertes
zu ermöglichen. Dieser Zeitwert entspricht immer einem Lückenzeitwert und muß für
alle Kanäle der gleiche Zeitwert sein, d.h. zu der gleichen Lücke gehören.
-
Diese Aufgaben werden durch das Lückenverrechnungswerk LV gelöst,
indem es über die Anzahl der aus jedem Kanal ausgelesenen Lilckenzeitwerte Buch
führt und dem Mikroprozessor 2 Auskünfte gibt: a) Die Lückenbündigkeitsmeldung meldet
im 1-Zustand, daß aus allen Kanälen die gleiche Anzahl von Lücken zeitwerten ausgelesen
wurde, b) die Lückennachlaufmeldung meldet im 1-Zustand, daß aus dem angewählten
Kanal weniger Lückenmeldungen ausgelesen wurden, als aus einem der anderen Kanäle.
-
Das Auslesen und Verarbeiten der Zeitwertdaten eines angewählten Kanals
wird immer dann abgebrochen und der Kanal gewechselt bzw. das Zeichen abgeschlossen,
wenn nach dem Auslesen eines Lückenzeitwertes Lückennachlauf nicht besteht und eine
sinnvolle Fortsetzung der Intervallfolge über die Lücke hinweg nicht gegeben ist.
-
Jedem Kanal ist ein 4-Bit-Vorwärts-Rückwärts-Binärzähler zugeordnet,
der sich im Zustand 8 befindet, wenn Lückennachlauf nicht besteht. Bei Lückenbündigkeit
stehen die Zähler aller Kanäle im Zustand 8, wobei über eine 8-Eingang-Nand-'-erknüpfung
die Lückenbündigkeitsmeldung aktiviert wird. Wird nun beispielsweise aus dem Kanal
1 ein Lückenzeitwert ausgelesen, so bleibt der dem Kanal 1 zugeordnete Zähler im
Zustand 8, die übrigen Zähler aber schalten in den Zustand 7. Damit haben die übrigen
Kanäle 2 bis 7 alle einen Lückennachlauf von 1, für den Kanal 1
jedoch
besteht kein Lückennachlauf. Durch weiteres Auslesen von Lückenzeitwerten aus dem
Kanal 1 wird das Rückwärts zählen in den übrigen Zählern entsprechend fortgesetzt.
Ein Lückennachlauf von mehr als acht Lückenzeitwerten - entsprechend einem Zählerzustand
O - kann nicht verrechnet werden. Darum führt ein Lückennachlauf von acht Lückenzeitwerten
über die Übertrag-Ausgange der Zähler im Zustand Null zur Lückensperrung, wobei
der Mikroprozessor veranlaßt wird, den aktuellen Kanal zu verlassen, d.h. abzubrechen.
-
Beim Auslesen von Lückenzeitwertenwaus einem Kanal mit Lückennachlauf
zählt - solange Lückennachlauf besteht -sein zugeordneter Verrechnungszähler mit
jedem Lückenzeitwert um 1 vorwärts. Besteht Lückennachlauf nicht mehr (Zählerzustand
8), so führt das Auslesen weiterer Lückenzeitwerte in dem aktuellen Kanal wieder
zum Rückwärtszählen der übrigen Zähler.
-
Der Wartezähler WZ ist ein 8-Bit-Binärzähler. Er dient hauptsächlich
dazu, unnötige Wartezeit zu vermeiden, indem nach dem Auslesen eines Lückenzeitwertes
aus einem Kanalpuff er nur für eine durch den Wartezähler bestimmte Zeit im gleichen
Kanal auf das Erscheinen des Folgeereignisses (Zeitwert) gewartet wird. Ist der
Kanal nach Ablauf der Wartezeit noch nicht ausgabebereit, so ist eine Fortsetzung
der Intervalifolge ausgeschlossen und der Mikroprßzessor wendet sich dem nächsten
Kanal zu.
-
Die Zeichenbreite-Überwachung-sschaltung Z3 hat zur Aufgabe, die ungefähre
Ausdehnung einer vermutlichen Zeichenstelle zu ermitteln, um Fehlmessungen bei der
Formal-Prüfung zusammengewachsener Zeichen zu vermeiden, Solche Fehlmessungen -treten
dann auf, wenn der z!L.messende Zeit-
wert 210 überschreitet.
-
Der Intervallzähler IZ1, ein mittels eines Festwertspeichers gesteuerter
4-Bit-Binärzähler, zählt die Anzahl der gefundenen Intervalle. Er stellt das Auftreten
von sechs Intervallen in einem Kanal fest und verhindert dann für das aktuelle Zeichen
die weitere Verarbeitung von Zeitwerte nach einer Lückenmeldung, es sei denn, daß
Lückennachlauf besteht. Kommen im ersten abgefragten Kanal weniger als sechs Intervalle
zustande, wird der Zähler beim Kanalwechsel mit dem Wert Null geladen. Beim Erreichen
des Zählerstandes 6 wird der Wert 8 geladen, der für die Restdauer der Zeichenbearbeitung
bestehenbleibt und über eine disjurktive Verknüpfung mit den Anschlagsmeldungen
des Lückenverrechnungswerkes die Lückensperremeldung aktiviert.
-
Der Intervallzähler IZ2 stellt fest, ob innerhalb eines mutmaßlichen
Zeichens die Summe der erkannten Intervalle aus allen Kanälen mindestens 8 ist.
Dies wird für die Ausgabe des Zeichens zur Bedingung gemacht.
-
Wie bereits eingangs erwähnt, werden aus den einzelnen Strichkanten-Zeitwerten
durchsDifferenzbildunU die jeweils auftretenden Intervallfolgen bestimmt. Bei der
in FIG - dargestellten Schaltungsanordnung geschieht dies nun in der Weise, daß
am Ausgang des Steuerteils STT des Pr Pr,grammspeichers PM zwei Kennzeichenbits
KOT 00, 01 gesetzt werden, die Aussagen über das jeweils untersucht% Intervall -
weites oder enges Intervall -erlauben. Mit KOT 00, 01 = 01 wird ein kurzes Intervall,
mit KOT 00, 01 = 10 ein langes Intervall signalisiert. Das weitere Kennzeichenbit
KOT 02 = 0 steuert die Ausgabe aus dem jeweils angewählten Zeitwertpuffer.
-
Einzelheiten einer Schaltungsanordnung zur Zeichenklassifizierung
sind aus FIG 3 ersichtlich. Die aus den Kennzeichenbits KOT 00, 01 abgeleiteten
Intervalle werden zu jeweils einem Zeichen zugeordneten Intervallfolgen zusammengefaßt,
die als 6-Bit-Code im Intervallfolgeregister IFR zwischengespeichert sind. Dem Intervallfolgeregister
IFR ist ein Zeichenklassenregister ZKR nachgeschaltet, das aus mehreren, jeweils
einer Zeichenklasse zugeordneten J-K-Flipflops besteht. Für zehn Ziffern und fünf
Hilfszeichen sind z.B. 15 Flipflops vorgesehen. Die Ausgang des Intervallfolgeregisters
IFR steuern dabei über PROMS die K-Eingänge der Flipflops, wobei jeder sinnvolle
Inhalt des Intervallfolgeregisters die K-Eingänge derjenigen Zeichenklassen-Flipflops
aktiviert, d.h. diejenigen Flipflops löscht, die nicht die im Intervallfolgeregister
dargestellten Merkmale besitzen. Auch bei unvollständiger Intervallfolge ist eine
Zeichenerkennung möglich, weil in vielen Fällen auch eine unvollständige Intervallfolge
noch eine eindeutige Aussage liefern kann, daß bestimmte Zeichenklassen auszuschließen
sind. Bei richtiger Zeichenerkennung bleibt ein Flipflop übrig, das die jeweilige
Zeichenklasse signalisiert. Sind nach Auswertung eines Intervallfolgensatzes alle
Zeichenklassen ausgeschlossen oder mehr als eine nicht ausgeschlossen, so ist eine
Zeichenklassifizierung unmöglich und das Zeichen wird zurückgewiesen. Der eigentliche
Zeichenklassencode wird von den Zeichenklassen-Flipflops über PROMS erzeugt, in
das Zeichenklassen-Ausgaberegister ZKAR geladen und seriell ausgelesen.
-
Leerseite