-
GEBIET DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft ein System und ein Verfahren zum
Lesen und Beschreiben von Magnetstreifenkarten, die verschiedene
Bitdichten enthalten.
-
ALLGEMEINER STAND DER
TECHNIK
-
Karten
oder Fahrpreismedien, die Magnetstreifen enthalten, speichern Informationen
oder Daten auf dem Magnetstreifen. Dies sind verschiedene Arten
von Informationen, wie zum Beispiel Kontoinformationen für Kreditkarten,
persönliche
Informationen, die in einigen Bundesstaaten auf dem Magnetstreifen
von Führerscheinen
gespeichert sind und von den Kraftfahrzeugämtern verwendet werden, sowie
Informationen im Zusammenhang mit Personenbeförderungssystemen. Im Fall von
Karten, die in Personenbeförderungssystemen
verwendet werden, können
Informationen wie zum Beispiel der auf der Karte verbleibende Geldwert,
wo ein Inhaber in das Personenbeförderungssystem einsteigt und
wo der Inhaber das System verlässt,
auf dem Magnetstreifen der Karte gespeichert werden. Beim Verlassen des
Personenbeförderungssystems
wird das Beförderungsentgelt
automatisch von der Karte abgezogen, und der neue Wert wird auf
dem Magnetstreifen codiert.
-
Zum
Lesen der Informationen von der Karte werden Kartenlesegeräte verwendet.
Es gibt verschiedene Arten von Kartenlesegeräten, wie zum Beispiel Durchziehgeräte, bei
denen ein Inhaber die Karte hindurchzieht, und Einschubgeräte, welche
die Karte einziehen und nach Beendigung der Transaktion wieder ausgeben.
Die Kartenlesegeräte
lesen oder decodieren Flusssprünge
von dem Magnetstreifen. Ein Flusssprung ist eine Stelle (Schnittstelle)
auf dem Magnetstreifen, wo die Magnetteilchen auf den zwei Seiten
der Schnittstelle gleiche Pole haben, die einander zugewandt sind,
d. h. eine Süd-Süd- oder eine
Nord-Nord-Schnittstelle, was zu einer Konzentration eines Magnetflusses
an der Schnittstelle führt. Die
Kombination aller dieser Flusssprünge stellt die auf der Karte
gespeicherten Daten dar.
-
US-Patent
Nr. 4,141,044 an Kistner und Mitarbeiter beschreibt eine Vorrichtung
zum Erfassen einer Karte und/oder zum Lesen und/oder Schreiben von
Datenbits von einem bzw. auf einen Aufzeichnungsstreifen der Karte.
-
Flusssprünge werden
auf den Magnetstreifen codiert, der aus einem ferromagnetischen
Material besteht. Ferromagnetische Materialien sind Sub stanzen,
die einen Magnetismus beibehalten, nachdem kein externes magnetisierendes
Feld mehr einwirkt. Dieses Prinzip bildet die Grundlage aller magnetischen
Aufzeichnungen und Wiedergaben. Magnetische Pole sind in magnetisiertem
Material immer in Paaren vorhanden, und Magnetflusslinien treten aus
dem Nordpol aus und enden im Südpol.
Das ferromagnetische Material enthält Ferromagnetteilchen, von
denen jedes wie ein winziger Stabmagnet wirkt. Die elementaren Magnetteilchen
werden mit Hilfe eines externen Magnetfeldes auf ihre Nord-Süd-Achsen
parallel zu dem Magnetstreifen ausgerichtet. Wenn ein Magnetteilchen
einem starken externen Magnetfeld mit entgegengesetzter Polarität ausgesetzt
wird, so ändert
es seine eigene Polarität
(Nord wird Süd,
Süd wird
Nord). Ein uncodierter Magnetstreifen ist eine Reihe von Nord-Süd-Magnetteilchen.
-
Wenn
jedoch eine Süd-Süd-Anordnung
auf dem Magnetstreifen erzeugt wird, so stoßen sich die Magnetflüsse gegenseitig
ab, und es entsteht eine Konzentration von Magnetflusslinien um
die Süd-Süd-Schnittstelle
herum (analog im Fall einer Nord-Nord-Schnittstelle). Das Codieren
des Magnetstreifens auf einer Karte besteht aus dem Erzeugen von
Süd-Süd- und Nord-Nord-Schnittstellen,
und das Lesen der Karte besteht aus dem Detektieren dieser Flusssprünge oder
Magnetflussumkehrungen.
-
Das
externe Magnetfeld, das zum Umkehren der Polaritäten benutzt wird, wird durch
ein Solenoid erzeugt, das seine Polarität durch Umkehren der Stromrichtung
umkehren kann. Das Feld des Solenoids wird an einem Spalt in dem
Solenoid konzentriert, und wenn elementare Magnetteilchen des Magnetstreifens
diesem Feld ausgesetzt werden, so kehrt sich ihre Polarität um (ungleiche
Pole ziehen sich an). Eine Bewegung des Streifens an dem Solenoidspalt vorbei,
während
der die Polarität
des Solenoids umgekehrt wird, erzeugt eine einzelne Magnetflussumkehrung.
Um einen Magnetstreifen zu löschen,
wird der Codierkopf auf einer konstanten Polarität gehalten, und der gesamte
Streifen wird daran vorbeigeführt.
Wenn es keine Flusssprünge
gibt, so sind keine Daten auf dem Magnetstreifen gespeichert.
-
Flusssprünge werden
nur in dem Augenblick erzeugt, wo das Solenoid die Polarität ändert. Wenn das
Solenoid seine augenblickliche Polarität beibehielte, so würden keine
weiteren Magnetflussumkehrungen erzeugt werden, wenn der Magnetstreifen von
rechts nach links geführt
wird. Wenn die Solenoidspaltpolarität von Nord-Süd zu Süd-Nord geändert werden
würde,
so würde
augenblicklich ein Nord-Nord-Flusssprung erzeugt werden. Mit jeder einzelnen
Umkehrung der Solenoidpolarität
wird eine einzelne Magnetflussumkehrung erzeugt. Ein codierter Magnetstreifen
ist lediglich eine Reihe von Magnetflussumkehrungen (Nord-Nord,
gefolgt von Süd-Süd, gefolgt
von Nord-Nord).
-
Ein
weiteres Solenoid, als ein Lesekopf bezeichnet, wird zum Detektieren
dieser Flusssprünge benutzt.
Der Lesekopf funktioniert auf dem Prinzip der elektromagnetischen
Reziprozität.
Strom, der durch ein Solenoid fließt, erzeugt ein Magnetfeld
an dem Spalt. Darum erzeugt das Vorhandensein eines Magnetfeldes
an dem Spalt einer Solenoidspule einen Strom in der Spule. Die stärksten Magnetfelder auf
einem Magnetstreifen sind die Stellen der Flusssprünge. Diese
werden von dem Lesegerät
als Spannungsspitzen detektiert, wobei die "+/–"-Spannungen den Nord-Nord/Süd-Süd-Flusssprüngen entsprechen.
Daten werden in "Bitzellen" codiert, deren Frequenz
die Frequenz von "0"-Signalen ist. "1"-Signale haben genau die doppelte Frequenz
von "0"-Signalen.
-
Eines
der Probleme mit magnetischen Medien ist, dass verschiedene Anwendungen
unterschiedliche Anforderungen hinsichtlich der Bitdichte und des
Codierungsformates haben. Unterschiede bei den Anforderungen verursachen
zeitaufwändige und
teure Änderungen
an den Medienlese- und -schreibgeräten. Darum können Medienlese-
und -schreibgeräte
nur Karten mit einer bestimmten Bitdichte verarbeiten.
-
Zum
Beispiel die Vorrichtung, die in
EP
0 565 759 beschrieben ist, wo ein Verfahren zum Decodieren
von F2-Signalen sowie eine Vorrichtung zum Decodieren von F2-Signalen,
die von einem Magnetdatenträger
gelesen werden, offenbart sind. Dieses Verfahren betrifft die Verbesserung
der Genauigkeit des Lesens von Daten auf Magnetkarten, die möglicherweise
beschädigt
sind. Aber das beschriebene Magnetlesegerät kann keine Daten von Karten
mit unterschiedlichen Bitdichten, die in das Kartenlesegerät eingeschoben
werden, lesen, ohne dass dem Lesegerät die Bitdichte einer bestimmten
Karte, die die Karte vor der Beschädigung hatte, vorher bekannt
ist.
-
OFFENBARUNG
DER ERFINDUNG
-
Es
ist eine Aufgabe der vorliegenden Erfindung, ein System bereitzustellen,
dem weder die Bitdichte noch das Datenformat des verarbeiteten Mediums
bekannt zu sein braucht.
-
Es
ist eine weitere Aufgabe der vorliegenden Erfindung, Daten auf dem
Magnetstreifen einer Karte mit jeder beliebigen Bitdichte zu codieren
oder zu decodieren.
-
Bei
der vorliegenden Erfindung werden ein Verfahren und eine Vorrichtung
zu Decodieren und Codieren von Informationen auf dem Magnetstreifen von
Karten mit verschiedenen Bitdichten gemäß Anspruch 1 bzw. Anspruch
1b bereitgestellt. Bei diesem Verfahren wird eine Karte in ein Kartenlesegerät eingeschoben,
auf ein Förderband
gelegt und unter magnetischen Lese-Schreib-Köpfen zum Codieren oder Decodieren
hindurchgeführt.
Mittels eines Wellencodierers wird die Geschwindigkeit des Förderbandes bestimmt.
Die Geschwindigkeit des Bandes wird im Kopfteil einer Nachricht über eine
Hochgeschwindigkeitskommunikationsverbindung an einen Einplatinenrechner übermittelt
und wird zum Bestimmen der Bitdichte der Karte verwendet. Die von
der Karte gelesenen Daten werden im Textkörper der Nachricht an den Einplatinenrechner
gesendet.
-
Der
Einplatinenrechner stellt die Bitdichte der Karte fest und demoduliert
und decodiert die Daten. Zum Demodulieren der Daten sendet der Einplatinenrechner
die Daten an ein Demodulatorobjekt, das die Bitdichte der Karte
unterstützt.
Das Demodulatorobjekt empfängt
die Daten und wandelt die Daten in einen Datenstrom aus ASCII-Zeichen
um, welche die Daten darstellen, die auf dem Magnetstreifen der
Karte codiert wurden. Wenn der Einplatinenrechner über kein
Demodulatorobjekt verfügt,
das die Bitdichte der Karte unterstützen kann, so kann ein neues
Demodulatorobjekt instanziiert werden, das diese Bitdichte unterstützt. Der
Datenstrom wird dann zu einem Decoderobjekt gesandt, das den Datenstrom decodiert
und entpackt. Von hier wird der Datenstrom zu einer Fahrkartenvalidierungseinrichtung
gesandt, um die Gültigkeit
der Daten zu überprüfen. Wenn
der Datenstrom, der von der Karte decodiert und entpackt wurde,
gültig
ist, so werden diese Daten zu einem Packerobjekt gesandt, wo die
Daten in ein Magnetstreifenformat gepackt und an das Kartenlesegerät zum Codieren
zurückgesandt
werden.
-
Das
oben Dargelegte, zusammen mit weiteren Merkmalen und Vorteilen der
vorliegende Erfindung, wird anhand der folgenden Spezifikation,
der Ansprüche
und der begleitenden Zeichnungen noch besser verständlich.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Die
vorliegende Erfindung wird mit Hilfe der folgenden detaillierten
Beschreibung einer beispielhaften Ausführungsform der Erfindung in
Verbindung mit den begleitenden Zeichnungen noch besser verständlich.
In den Zeichnungen, in denen gleiche Bezugszahlen gleiche Teile
bezeichnen, ist Folgendes dargestellt:
-
1 zeigt
ein System, das zum Decodieren oder Codieren von Daten verwendet
wird, die auf den Magnetstreifen von Karten enthalten sind.
-
2 zeigt
ein Flussdiagramm, das den Prozess veranschaulicht, mit dem festgestellt
wird, ob das System die Bitdichte der Karte unterstützen kann.
-
3 zeigt
ein Flussdiagramm, das den Demodulatorprozess veranschaulicht.
-
DETAILLIERTE
BESCHREIBUNG DER ZEICHNUNGEN
-
1 veranschaulicht
ein System 100, das zum Decodieren oder Codieren von Informationen auf
den Magnetstreifen von Karten verwendet wird. Das System umfasst
eine Fahrkartenverarbeitungsmodul (FVM)-Mikrokontrollerplatine 102,
die das System kontinuierlich auf den Einschub einer Magnetstreifenkarte,
wie zum Beispiel Fahrpreismedien oder Kreditkarten, überwacht.
Wenn eine Karte in das System 100 eingeführt wurde,
so sendet die Mikrokontrollerplatine 102 ein Signal an
die Transporthardware 104, die die Karte erfasst und die
Karte auf ein (nicht gezeigtes) Förderband legt. Gleichzeitig
aktiviert eine in der Transporthardware 104 befindliche
Motorsteuerung Motoren, die ihrerseits das Förderband in Gang setzen, wodurch
sich das Band dreht. Das sich drehende Förderband führt die Karte mit einer konstanten
Geschwindigkeit unter magnetischen Lese-Schreib-Köpfen 106 zum
Decodieren (Lesen) und Codieren (Schreiben) von Informationen auf
dem Magnetstreifen der Karte vorbei. Es werden Solenoids verwendet,
um die Daten mittels einschlägig
bekannter Verfahren auf den Magnetstreifen zu codieren. Sensoren
detektieren, wann sich die Karte an der richtigen Stelle innerhalb
des Systems zum Codieren und Decodieren von Daten befindet. In einer
alternativen Ausführungsform
kann ein Durchziehgerät
anstelle eines Einschubgerätes
als das Kartenlesegerät
verwendet werden.
-
Der
Magnetstreifen der Karte dient dem Speichern von Informationen oder
Daten. Zu den Daten können
Kontoinformationen wie zum Beispiel eine Kreditkartennummer und
das Ablaufdatum sowie Informationen zu den Beförderungstarifen gehören. Der
Magnetstreifen besteht aus Zellen, und die auf der Karte codierten
Daten werden mittels Flusssprüngen
in den Zellen gespeichert. Alle Zellen haben die gleiche Länge, und
die Länge
der Zelle bestimmt sich aus der Bitdichte der Karte. Die Bitdichte ist
ein Maß dafür, wie dicht
die Flusssprünge
beieinander liegen. Typische Magnetstreifenkarten verwenden F2F-Codierung
zum Codieren der Daten. Bei der F2F-Codierung werden Zellen durch einen
Anfang und ein Ende – oder
Grenzen – markiert.
Wenn es innerhalb der Grenzen einer Zelle zu einem Flusssprung kommt,
so wird der Wert der Zelle als eine "1" angesehen.
Das System 100 verwendet die 3/4-Zellzeit, um zu bestimmen,
ob ein Flusssprung innerhalb der Zelle vorliegt. Die 3/4-Zellzeit
ist 3/4 der Länge der
Zelle. Wenn sich also der Flusssprung innerhalb von 3/4 der Länge der
Zelle vollzieht (3/4-Zellzeit),
so wird die Zelle als eine "1" gezählt. 3/4
ist der Industrie standard zum Überwachen
auf einen Flusssprung, aber dieser Wert kann zu jeder beliebigen Länge geändert werden,
einschließlich
beispielsweise 7/8, 51% und 63% der Länge der Zelle.
-
Da
die 3/4-Zellzeit 3/4 der Länge
einer Zelle ist, kann diese Zeit je nach der Bitdichte der Karte
variieren. Weil das System der vorliegende Erfindung in der Lage
ist, Daten auf Magnetstreifenkarten von beliebiger Dichte zu codieren
oder zu decodieren, kann es Karten mit verschiedenen Bitdichten
und Codierungsfarmaten verarbeiten. Für Karten mit unbekannten Bitdichten
muss das System bestimmen, was die 3/4-Zellzeit ist, bevor Daten
von der Karte decodiert werden können.
Ohne Kenntnis der 3/4-Zellzeit kann das System nicht bestimmen,
wann ein Flusssprung innerhalb der Zellengrenzen stattgefunden hat.
-
Um
Daten einer Karte mit einer unbekannten Bitdichte zu codieren oder
zu decodieren, muss das System zuerst die Geschwindigkeit des Förderbandes
oder die Drehzahl der Bandtransportrolle bestimmen. Zum Bestimmen
der Geschwindigkeit wird ein Wellencodierer 108 verwendet.
Der Wellencodierer 108 zählt die Anzahl der Umdrehungen
des Bandes je Zeiteinheit. Auf der Grundlage der Umdrehungszahl
des Bandes innerhalb einer bestimmten Zeitspanne wird die Drehzahl
des Bandes errechnet, und die Informationen werden an die Mikrokontrollerplatine 102 übermittelt.
-
Als
nächstes
verwendet das System vorangestellte Nullen, die auf Magnetstreifenkarten
enthalten sind, zum Berechnen der 3/4-Zellzeit. Die vorangestellten
Nullen sind eine Markierung auf der Vorderseite der Fahrkarte, die
eine bekannte Entfernung anzeigen. Anhand der vorangestellten Nullen
weiß das
System, wie eine "Null"-Zelle aussieht,
und weiß darum
auch, wie eine "Eins"-Zelle aussieht.
Vorangestellte Nullen werden nur gebraucht, wenn das System die
Dichte der Karte nicht erkennt. Die Zellzeiten an der Vorderkante
der Karte werden gemessen, und anhand dieser Daten wird die 3/4-Zellzeit
berechnet, indem die durchschnittliche Zellzeit der vorangestellten
Nullen berechnet wird und dann 3/4 dieser Zeit genommen werden.
Während
sich das Medium über den
Lesekopf bewegt, werden die Zellzeiten gemessen. Ein interner Timer
auf der FVM-Mikrokontrollerplatine 102 dient zum Messen
des Zeitintervalls zwischen den Magnetflussumkehrungen (Zellzeit),
wodurch die Zellzeit gemessen wird.
-
Nachdem
die Lese-Schreib-Köpfe
die Daten von der Karte gelesen haben, werden die Informationen
in Form einer Nachricht, die aus einem Kopfteil, einem Textkörper und
einem Endteil besteht, ohne Zwischenspeicherung über eine Hochgeschwindigkeitskommunikationsverbindung
an einen Einplatinenrech ner (EPR) oder Demodulator 110 gesendet. Der
Kopfteil enthält
die Bandgeschwindigkeitsinformationen und wird übermittelt, wenn die Geschwindigkeitsmessung
erfolgt ist. Der Textkörper
der Nachricht enthält
die Entfernung von der Vorderkante des Mediums zur ersten Magnetflussumkehrung
und das Zeitintervall zwischen den Magnetflussumkehrungen (Zellzeit).
Diese Informationen werden so, wie die Magnetflussumkehrungen detektiert
werden, ohne Zwischenspeicherung übermittelt. Der Endteil ist
eine akkumulierte ZRÜ,
die dem Demodulator 110 die Authentifizierung der Nachricht
ermöglicht.
Nachdem der Demodulator 110 die Nachricht empfängt, bestimmt
der Demodulator 110, ob er in der Lage ist, die Daten auf
dem Magnetstreifen anhand der Bitdichte der Karte zu demodulieren
und zu decodieren. Des Weiteren können die Daten auch zur Analyse
benutzt werden.
-
2 ist
ein Flussdiagramm 200, das den Prozess veranschaulicht,
mit dessen Hilfe der Demodulator bestimmt, ob er die Daten demodulieren
und decodieren kann. Bei diesem Prozess überträgt der Mikrokontroller 102 ein
Datenpaket, das die Zellzeitdaten enthält, die durch die magnetischen
Lese-Schreib-Köpfe 104 von
der Karte gelesen wurden, in Form serieller Daten 202 an
den Demodulator 110. Wie oben beschrieben, besteht das
Datenpaket aus einem Kopfteil, einem Textkörper und einem Endteil. Der
Kopfteil enthält
die Förderbandgeschwindigkeit und
wird übermittelt,
wenn die Geschwindigkeitsmessung ausgeführt wurde, und wird verwendet,
wenn die Karte eine unbekannte Bitdichte hat. Der Textkörper des
Datenpaketes enthält
die Entfernung von der Vorderkante des Mediums zur ersten Magnetflussumkehrung
und das Zeitintervall zwischen den Magnetflussumkehrungen (Zellzeit).
Die Zellzeit dient dem Ermitteln der 3/4-Zellzeit, um zu bestimmen,
ob eine Magnetflussumkehrung oder ein Flusssprung stattgefunden
hat. Der Endteil ist eine akkumulierte zyklische Redundanzüberprüfung (ZRÜ), die es
dem Demodulator 110 gestattet, das Datenpaket mittels Detektieren
von Datenübertragungsfehlern
zu authentifizieren.
-
Nach
dem Empfang der seriellen Daten 202 werden die Zellzeitdaten
(welche die Bitdichte der Karte angeben), die im Textkörper der
Nachricht enthalten sind, durch den Demodulator gelesen. Wenn der
Demodulator die Bitdichte der Karte unterstützt, so werden die Zellzeitdaten
an das entsprechende Demodulatorobjekt 204, 206 gesendet,
das die Zellzeitdaten empfängt
und die Daten in einen Datenstrom umwandelt, der die Daten darstellt,
die auf dem Magnetstreifen der Karte codiert wurden. Dies geschieht
durch Feststellen, wann es innerhalb der 3/4-Zellzeit zu einem Flusssprung
gekommen ist. Anhand der Bitdichte der Karte wird das entsprechende Demodulato robjekt
bestimmt. Jedes Demodulatorobjekt unterstützt eine bestimmte Dichte,
die durch den Demodulator unterstützt wird. 2 veranschaulicht zwei
Demodulatorobjekte: ein Demodulatorobjekt 204 für geringe
Dichte und ein Demodulatorobjekt 206 für hohe Dichte. Wenn die Bitdichte
der Karte durch das Demodulatorobjekt 204 für geringe
Dichte unterstützt
wird (d. h. die Flusssprünge
liegen näher beieinander),
so werden die Zellzeitdaten dorthin übermittelt. Wenn die Bitdichte
der Karte durch das Demodulatorobjekt 206 für hohe Dichte
unterstützt wird
(d. h. die Flusssprünge
liegen weiter auseinander), so werden die Zellzeitdaten dorthin übermittelt. Obgleich
zwei Demodulatorobjekte in 2 gezeigt sind,
nämlich
ein Demodulatorobjekt 204 für geringe Dichte und ein Demodulatorobjekt 206 für hohe Dichte,
leuchtet dem Fachmann ein, dass jede beliebige Anzahl von Demodulatorobjekten
implementiert werden kann. Das Demodulatorobjekt wandelt binär codierte
Daten auf der Karte in einen String von ASCII-Zeichen um. Eine binäre Eins
wird als eine ASCII-Eins dargestellt, und eine binäre Null
wird als eine ASCII-Null dargestellt. Zellzeiten, die nicht die
Kriterien einer Eins oder einer Null erfüllen, werden als eine ASCII-Null
dargestellt. Dieses Ausgangssignal eignet sich zur Anzeige oder
Weiterverarbeitung.
-
Wenn
die Bitdichte nicht durch den Demodulator unterstützt wird,
d. h. wenn der Demodulator kein Demodulatorobjekt enthält, das
die Bitdichte der Karte unterstützt
und die Daten von der Karte umwandeln kann, so kann ein neues Demodulatorobjekt zum
Entgegennehmen der Daten von unbekannter Bitdichte instanziiert
werden. Wie oben besprochen, verwendet das System die auf den Magnetstreifenkarten
codierten vorangestellten Nullen zum Bestimmen der 3/4-Zellzeit.
Anhand dieser Informationen kann unter Verwendung der im Kopfteil
des Datenpaketes enthaltenen Geschwindigkeit des Förderbandes
und der Zeit zwischen den Flusssprüngen die Bitdichte der Karte
bestimmt werden. Die Bitdichte ist gleich dem Umgekehrten der Transportgeschwindigkeit,
multipliziert mit der durchschnittlichen Zellzeit. Es kann dann
ein Demodulatorobjekt instanziiert werden, um die neue Bitdichte
zu verarbeiten.
-
Wenn
des Weiteren die Karte eine bekannte Bitdichte enthält, aber
das System kein Demodulatorobjekt enthält, das die Bitdichte unterstützt, so
können
Demodulatorobjekte auch für
bekannte Bitdichten instanziiert werden. Die Geschwindigkeitsinformationen
im Kopfteil der Nachricht und die bekannte Bitdichte werden zum
Berechnen der erwarteten Zellzeitparameter verwendet. Anhand dieser
Informationen kann ein neues Demodulatorobjekt instanziiert werden.
-
Das
Demodulatorobjekt wandelt die Flusssprungzeitintervalle durch Berechnen
des Zellgrenzintervalls und Überwachen
auf eine Magnetflussänderung
innerhalb der Zellgrenze um. Wie oben beschrieben, wird das Fehlen
einer Magnetflussänderung
innerhalb der Grenze als eine Null definiert, und das Vorliegen
einer Magnetflussänderung
innerhalb der Zellgrenze wird als eine Eins definiert.
-
Nachdem
die Zellzeitdaten in einen Datenstrom umgewandelt wurden, so sendet
das Demodulatorobjekt diesen Datenstrom zu einem Decoderobjekt oder
Mediumtyp. 2 veranschaulicht fünf verschiedene
Medientypen 208, 210, 212, 214, 216.
Medientypen sind Kreditkarten und verschiedene Arten von Fahrpreismedienkarten.
Obgleich ein System gezeigt ist, das fünf verschiedene Medientypen
unterstützt,
ist dem Fachmann klar, dass jede beliebige Anzahl von Medientypen
unterstützt
werden kann. Das Decoderobjekt empfängt den Datenstrom von dem
Demodulatorobjekt, und das Objekt decodiert und entpackt den Datenstrom.
Andere Datenbits als 1 oder 0 werden ignoriert.
-
Nachdem
das Decoderobjekt den Datenstrom decodiert und entpackt hat, wird
der Datenstrom an die Fahrkartenvalidierungseinrichtung 218 gesandt.
Die Fahrkartenvalidierungseinrichtung bestimmt die Gültigkeit
der vorgelegten Karte anhand der im Endteil des Datenpaketes enthaltenen
ZRÜ. Wenn
der von der Karte decodierte und entpackte Datenstrom gültig ist,
so werden diese Informationen an ein Packerobjekt 220 gesendet.
Das Packerobjekt 220 packt die Daten in ein Magnetstreifenformat
und sendet die Daten an den Mikrokontroller 102. Der Mikrokontroller 102 kann
dann die Daten modifizieren, zum Beispiel das entsprechende Beförderungsentgelt
von der Karte abziehen, wenn die Karte für ein Personenbeförderungssystem
verwendet wird, und die Daten auf der Karte codieren. Der Mikrokontroller 102 kann
Daten mit Standarddichten unter Verwendung des Wellencodierer-Timings
oder mit programmierbaren Dichten unter Verwendung des internen Timers
des Mikrokontrollers 102 auf den Magnetstreifen der Karte
codieren. Der Wellencodierer 108 codiert Daten mit einer
bestimmten Dichte auf die Karte. Wenn die erforderliche Dichte nicht
durch den Wellencodierer 108 unterstützt wird, so können interne Timer
des Mikrokontrollers 102 verwendet werden, um einen Wellencodierer
zu simulieren, um die richtige Bitdichte zu codieren.
-
3 ist
ein Flussdiagramm, das den Demodulatorprozess veranschaulicht, der
durch die Demodulatorobjekte 204, 206 von 2 verwendet
wird, um die Intervalle zwischen den Flusssprüngen in einen Strom von ASCII-Daten
umzuwandeln, der die Daten darstellt, die auf dem Magnetstreifen
der Karte codiert sind. Das Demodulatorobjekt wandelt die Flusssprung zeitintervalle
durch Berechnen des Zellgrenzintervalls und Überwachen auf eine Magnetflussänderung
innerhalb der Zellgrenze um. Das Fehlen einer Magnetflussänderung
innerhalb der Grenze ist als eine Null definiert. Das Vorliegen
einer Magnetflussänderung
innerhalb der Zellgrenze ist als eine Eins definiert.
-
Ein
Datenpaket wird an das Demodulatorobjekt gesandt 302, was
bewirkt, dass eine Wiederaufnahmemarkierung auf "Wahr" gesetzt
wird und eine Überlaufmarkierung
auf "Falsch" gesetzt wird 304. Mittels
dieser Markierungen wird das Zellgrenzintervall (die Zellzeit) bestimmt
und festgestellt, wann eine Magnetflussumkehrung oder ein Flusssprung
stattgefunden hat. Die Wiederaufnahmemarkierung bezeichnet das Ende
der Zelle oder die Zellgrenze. Nachdem die Zellgrenze erreicht ist,
wird die Wiederaufnahmemarkierung auf "Falsch" gesetzt. Die Überlaufmarkierung zeigt an,
dass ein Flusssprung noch nicht stattgefunden hat, und der Zähler zählt immer noch,
um das Zellgrenzintervall oder die Zellzeit zu bestimmen, und das
System achtet weiterhin auf die Zellgrenze.
-
Nachdem
das Datenpaket von dem Mikrokontroller 102 empfangen wurde, überprüft das Demodulatorobjekt
zuerst, ob die empfangene Zellzeit mindestens so groß ist wie
die 3/4-Zellzeit 306. Wenn die Antwort "Ja" ist,
so wird die Überlaufmarkierung auf "Wahr" geändert 308,
weil der Demodulator lediglich die Länge der Zelle auf die 3/4-Zellzeit überprüft, um bestimmen,
ob ein Flusssprung stattgefunden hat. Wenn die Zellzeit die 3/4-Zellzeit
ist, so weiß das System,
ob es einen Flusssprung in der Zelle gibt, und der Zähler kann
das Zählen
beenden, so dass der Überlauf
auf "Wahr" gesetzt wird, und
das Demodulatorobjekt überprüft, ob die
Zellgrenze erreicht ist 310. Wenn die empfangene Zellzeit
nicht mindestens so groß ist
wie die 3/4-Zellzeit,
so hält
das Demodulatorobjekt die Überlaufmarkierung
auf "Falsch" und überprüft, ob eine
Zellgrenze erreicht ist 310.
-
Wenn
eine Zellgrenze erreicht ist, so wird eine Neubitmarkierung auf "kein Überlauf" gesetzt 312,
was anzeigt, dass das Bit, das soeben decodiert wurde, das Komplement
der Überlaufmarkierung
ist. Die Neubitmarkierung stellt das demodulierte Bit dar und ist
ein Halter, so dass das Bit zu dem Decoderobjekt weitergeleitet
werden kann, wenn die gesamte Bitzelle verarbeitet wurde. Als nächstes überprüft der Demodulator,
ob die Neubitmarkierung auf "Wahr" gesetzt ist 314.
Oder anders ausgedrückt:
Das Demodulatorobjekt vergewissert sich, dass eine Zellgrenze erreicht
ist (d. h. eine Zellgrenzmarkierung wird auf "Falsch" gesetzt). Wenn die Neubitmarkierung "Falsch" (Null) ist, so ist
das Ende der Bitzelle erreicht. Wenn die Neubitmarkierung "Wahr" ist, so wird die
Zellgrenzmarkierung auf "Falsch" gesetzt, und das
Wiederaufnahmebit wird auf "Falsch" gesetzt, und das
Demodulatorobjekt wartet auf den nächsten Flusssprung, was das
Ende der Bitzelle markiert. Wenn der Demodulator überprüft, ob das Wiederaufnahmebit "Wahr" ist, so wartet der
Demodulator bis zum nächsten
Flusssprung. Wenn die Antwort "Nein" ist, so überprüft das Demodulatorobjekt, ob
das Wiederaufnahmebit "Wahr" ist 316.
-
Wenn
das Wiederaufnahmebit "Falsch" ist, so wurden die
Daten aus der Zelle gelesen, und die nächste Zelle wird gelesen. Wenn
das Wiederaufnahmebit "Wahr" ist 316,
so wird die Zellgrenzmarkierung auf "Wahr" gesetzt 320.
Als nächstes überprüft das Demodulatorobjekt,
ob die Neubitmarkierung "Wahr" ist 322.
Wenn das neue Bit nicht "Wahr" ist, so sind die
decodierten Daten "0", und es gibt keinen Flusssprung 324.
Wenn das neue Bit "Wahr" ist, so sind die
decodierten Daten ist "1", und es gibt einen Flusssprung 326.
Diese demodulierten Daten werden dann an ein Decoderobjekt gesandt.
Dieser Prozess wird fortgesetzt, bis alle Zellen überprüft wurden.
-
Obgleich
oben eine beispielhafte Ausführungsform
der Erfindung lediglich als Beispiel beschrieben wurde, ist dem
Fachmann klar, dass an der offenbarten Ausführungsform Modifizierungen
vorgenommen werden können,
ohne den Geltungsbereich der Erfindung, der in den angehängten Ansprüchen definiert
ist, zu verlassen.