Distributed architecture for magnetic fare card processing
Abstract
A process for encoding and decoding data on the magnetic stripe of a card at any bit density is provided. Data is read from the magnetic stripe of a card and transmitted to a single board computer. The single board computer receives the data and determines if the bit density of the cards is supported by the computer. If the bit density is supported, the data is sent to a demodulator object to be demodulated and converted to a data stream of ASCII characters. The data stream is then decoded, unpacked and sent to a ticket validator to check the validity of the data. If the bit density is not supported by the computer, a demodulator object supporting the bit density can be instantiated.

Term
Term ended
Expired 22 August 2022, 4.1 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
25 claims: 25 independent, 0 dependent
- 1A method for reading data stored on a magnetic stripe of a media card of an unknown bit density, the method comprising the steps of:determining the bit density of the card by measuring the length of cells located on the magnetic stripe of the card by reading data from the card;transmitting the bit density and data contained in the cells to a demodulator via a data packet, the demodulator comprising at least one demodulator object and at least one decoder object;determining if the bit density of the card is supported by the demodulator by determining if the at least one demodulator object recognizes the bit density of the card and can demodulate the data contained on the card;andtransmitting the data to the demodulator object for demodulation of the data if the at least one demodulator object recognizes the bit density of the card. Procédé permettant la lecture de données stockées sur une bande magnétique d'une carte formant support, d'une densité d'enregistrement en bits inconnue, le procédé comprenant les étapes consistant à : - déterminer la densité d'enregistrement en bits de la carte en mesurant la longueur des cellules situées sur la bande magnétique de la carte en lisant les données à partir de la carte ;- transmettre la densité d'enregistrement en bits et les données contenues dans les cellules vers un démodulateur au moyen d'un paquet de données, le démodulateur comprenant au moins un objet démodulateur et au moins un objet décodeur ;- déterminer si la densité d'enregistrement en bits est prise en charge par le démodulateur en déterminant si le au moins un objet démodulateur reconnaît la densité d'enregistrement en bits de la carte et peut démoduler les données contenues sur la carte ;et enfin- transmettre les données vers l'objet démodulateur pour la démodulation des données si le au moins un objet démodulateur reconnaît la densité d'enregistrement en bits de la carte. Verfahren zum Lesen von Daten, die auf einem Magnetstreifen einer Medienkarte mit unbekannter Bitdichte gespeichert sind, wobei das Verfahren die folgenden Schritte umfasst: Bestimmen der Bitdichte der Karte durch Messen der Länge von Zellen, die sich auf dem Magnetstreifen der Karte befinden, durch Lesen von Daten von der Karte,Übertragen der Bitdichte und Daten, die in den Zellen enthalten sind, über ein Datenpaket zu einem Demodulator, wobei der Demodulator mindestens ein Demodulatorobjekt und mindestens ein Decoderobjekt aufweist,Bestimmen, ob die Bitdichte der Karte von dem Demodulator unterstützt wird, indem bestimmt wird, ob das zumindest eine Demodulatorobjekt die Bitdichte der Karte erkennt und die auf der Karte enthaltenen Daten demodulieren kann, undÜbertragen der Daten zu dem Demodulatorobjekt zum Demodulieren der Daten, wenn das zumindest eine Demodulatorobjekt die Bitdichte der Karte erkennt.
- 2A method according to claim 1, further comprising the step of instantiating another demodulator object which supports the bit density of the card if the at least one demodulator object does not recognize the bit density of the card. Procédé selon la revendication 1, comprenant en outre l'étape consistant à instancier un autre objet démodulateur qui prend en charge la densité d'enregistrement en bits de la carte si le au moins un objet démodulateur ne reconnaît pas la densité d'enregistrement en bits de la carte. Verfahren nach Anspruch 1, das ferner den Schritt des Instanziierens eines anderen Demodulatorobjekts aufweist, das die Bitdichte der Karte unterstützt, wenn das zumindest eine Demodulatorobjekt die Bitdichte der Karte nicht erkennt.
- 3Procédé selon la revendication 1 ou la revendication 2, dans lequel les données démodulées sont une chaîne de caractères ASCII. The method of claim 1 or claim 2, wherein the demodulated data is a string of ASCII characters. Verfahren nach Anspruch 1 oder Anspruch 2, wobei die demodulierten Daten ein String von ASCII-Zeichen sind.
- 4Procédé selon l'une quelconque des revendications 1 à 3, dans lequel les données codées sur la carte sont représentées par une transition de flux. The method of any one of claims 1 to 3, wherein data encoded on the card is represented by a flux transition. Verfahren nach einem der Ansprüche 1 bis 3, wobei die auf der Karte codierten Daten durch einen Flusssprung repräsentiert sind.
- 5Procédé selon la revendication 3 ou 4, comprenant en outre l'étape consistant à transmettre les données démodulées vers le au moins un objet décodeur pour décoder et dégrouper lesdites données démodulées, dans le cas où le au moins un objet décodeur reconnaît le type de carte. The method of claim 3 or claim 4, further comprising the step of transmitting the demodulated data to the at least one decoder object for decoding and unpacking said demodulated data, if the at least one decoder object recognizes the type of card. Verfahren nach Anspruch 3 oder 4, das ferner den Schritt des Übertragens der demodulierten Daten zu dem mindestens einen Decoderobjekt zum Decodieren und Entpacken der demodulierten Daten aufweist, wenn das mindestens eine Decoderobjekt den Kartentyp erkennt.
- 6Procédé selon l'une quelconque des revendications 3 à 5, comprenant en outre l'étape consistant à instancier un autre objet décodeur qui reconnaît le type de carte. The method of any one of claims 3 to 5, further comprising the step of instantiating another decoder object which recognizes the type of card. Verfahren nach einem der Ansprüche 3 bis 5, das ferner den Schritt des Instanziierens eines weiteren Decoderobjekts, das den Kartentyp erkennt, aufweist.
- 7Procédé selon l'une quelconque des revendications précédentes, comprenant en outre l'étape consistant à mesurer la vitesse d'une courroie de transport d'un lecteur de carte dans lequel le lecteur de carte capture la carte, place la carte sur la courroie de transport et fait passer la carte sous une tête de lecture. The method of any preceding claim, further comprising the step of measuring the velocity of a transport belt of a card reader wherein the card reader captures the card, places the card on the transport belt and passes the card under a read head. Verfahren nach einem der vorhergehenden Ansprüche, das ferner den Schritt des Messens der Geschwindigkeit eines Förderbands eines Kartenlesegeräts umfasst, wobei das Kartenlesegerät die Karte erfasst, die Karte auf das Förderband gibt und die Karte unter einem Lesekopf durchlaufen lässt.
- 8Procédé selon la revendication 7, dans lequel la vitesse de la courroie de transport est mesurée à l'aide d'un codeur d'arbre au moyen du comptage du nombre de rotations de la courroie pour une unité de temps. The method of claim 7, wherein the velocity of the transport belt is measured using a shaft encoder by counting the number of rotations of the belt per a unit time. Verfahren nach Anspruch 7, bei dem die Geschwindigkeit des Transportbands anhand eines Wellencodierers gemessen wird, indem die Anzahl von Umdrehungen des Bands pro Zeiteinheit gezählt wird.
- 9Procédé selon l'une quelconque des revendications précédentes, dans lequel la longueur des cellules est mesurée au moyen d'un compteur interne du lecteur de carte. The method of any preceding claim, wherein the length of the cells are measured by an internal timer of the card reader. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Längen der Zellen von einem internen Timer des Kartenlesegeräts gemessen werden.
- 10Procédé selon la revendication 8 ou 9, dans lequel la vitesse est transmise au démodulateur dans un préambule du paquet de données. The method of claim 8 or claim 9, wherein the velocity is transmitted to the demodulator in a preamble of the data packet. Verfahren nach Anspruch 8 oder 9, wobei die Geschwindigkeit zu dem Demodulator in einem Kopfteil des Datenpakets übertragen wird.
- 11Procédé selon l'une quelconque des revendications 4 à 10, comprenant en outre l'étape consistant à ce que le au moins un objet démodulateur contrôle la cellule pour vérifier la transition de flux. The method of any one of claims 4 to 10, further comprising the step of the at least one demodulator object monitoring the cell for the flux transition. Verfahren nach einem der Ansprüche 4 bis 10, das ferner den Schritt aufweist, bei dem das mindestens eine Demodulatorobjekt die Zelle auf Flusssprung überwacht.
- 12Procédé selon l'une quelconque des revendications 4 à 11, comprenant en outre l'étape consistant à déterminer un 3/4 du temps de cellule des cellules sur la bande magnétique, dans le cas où la carte présente une densité inconnue d'enregistrement en bits, au moyen du mesurage des temps de cellule des zéros de tête codés sur la carte, du calcul d'un temps de cellule moyen et de la prise en compte d'un 3/4 du temps moyen de cellule. The method of any one of claims 4 to 11, further comprising the step of determining a 3/4 cell time of the cells on the magnetic stripe, if the card is of an unknown bit density, by measuring the cell times of leading zeros encoded on the card, calculating an average cell time and taking 3/4 of the average cell time. Verfahren nach einem der Ansprüche 4 bis 11, das ferner den Schritt umfasst, bei dem eine 3/4-Zellenzeit von Zellen auf dem Magnetstreifen bestimmt wird, wenn die Karte eine unbekannte Bitdichte hat, indem die Zellzeiten von führenden Nullen gemessen werden, die auf die Karte codiert sind, wobei eine durchschnittliche Zellzeit berechnet und 3/4 der durchschnittlichen Zellzeit genommen wird.
- 13Procédé selon la revendication 12, comprenant en outre les étapes consistant à :- calculer la densité inconnue d'enregistrement en bits en considérant une valeur inverse de la vitesse de la courroie multipliée par le temps moyen de cellule;et enfin- instancier un autre objet démodulateur qui prenne en charge la densité d'enregistrement en bits de la carte. The method of claim 12, further comprising the steps of: calculating the unknown bit density by taking an inverse of the velocity of the belt multiplied by the average cell time;andinstantiating another demodulator object which supports the bit density of the card. Verfahren nach Anspruch 12, das ferner die folgenden Schritte aufweist: Berechnen der unbekannten Bitdichte, indem ein Umgekehrtes der Geschwindigkeit des Bands genommen und mit der durchschnittlichen Zellzeit multipliziert wird, undInstanziieren eines anderen Demodulatorobjekts, das die Bitdichte der Karte unterstützt.
- 14Procédé selon l'une quelconque des revendications précédentes, dans lequel la carte est une carte de crédit. The method of any preceding claim, wherein the card is a credit card. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Karte eine Kreditkarte ist.
- 16An apparatus (100) for reading data stored on a magnetic stripe of a media card (208,210,212,214,216) of an unknown bit density, the apparatus comprising:a card reader for reading the unknown bit density and the data encoded on the magnetic stripe of the card;anda demodulator (110) connected to the card reader via a communication link, the demodulator comprising: at least one demodulator object (204, 206) for demodulating the data read from the card if the at least one demodulator object (204, 206) recognizes the bit density of the card;andat least one decoder object, coupled to the at least one demodulator object (204, 206), for decoding and unpacking the demodulated data, if the at least one decoder object recognizes the type of card. Appareil (100) permettant la lecture de données stockées sur une bande magnétique d'une carte servant de support (208, 210, 212, 214, 216) présentant une densité d'enregistrement en bits inconnue, l'appareil comprenant : - un lecteur de carte pour lire la densité d'enregistrement en bits inconnue et les données codées sur la bande magnétique de la carte;et- un démodulateur (110) connecté au lecteur de carte par une liaison de communication, le démodulateur comprenant :- au moins un objet démodulateur (204, 206) pour démoduler les données lues à partir de la carte dans le cas où le au moins un objet démodulateur (204, 206) reconnaît la densité d'enregistrement en bits de la carte;et- au moins un objet décodeur, couplé à l'au moins un objet démodulateur (204, 206), pour décoder et dégrouper les données démodulées, dans le cas où le au moins un objet décodeur reconnaît le type de carte. Gerät (100) zum Lesen von Daten, die auf einem Magnetstreifen einer Medienkarte (208, 210, 212, 214, 216) mit unbekannter Bitdichte gespeichert sind, wobei das Gerät Folgendes umfasst: ein Kartenlesegerät zum Lesen der unbekannten Bitdichte und der Daten, die auf den Magnetstreifen der Karte codiert sind, undeinen Demodulator (110), der mit dem Kartenlesegerät über eine Kommunikationsverbindung verbunden ist, wobei der Demodulator Folgendes aufweist: mindestens ein Demodulatorobjekt (204, 206) zum Demodulieren der Daten, die von der Karte gelesen werden, wenn das mindestens eine Demodulatorobjekt (204, 206) die Bitdichte der Karte erkennt, undmindestens ein Decoderobjekt, das mit dem mindestens einen Demodulatorobjekt (204, 206) gekoppelt ist, um die demodulierten Daten zu decodieren und entpacken, wenn das mindestens eine Decoderobjekt den Kartentyp erkennt.
- 17Appareil selon la revendication 16, dans lequel les données transmises à partir du lecteur de carte vers le démodulateur au moyen d'un paquet de données qui contient la vitesse d'une courroie de transport utilisée pour le transport de la carte dans le lecteur de carte ainsi que les données lues à partir de la carte. Gerät nach Anspruch 16, wobei die Daten von dem Kartenlesegerät zu dem Demodulator über ein Datenpaket übertragen werden, das die Geschwindigkeit eines Förderbands enthält, das zum Transportieren der Karte innerhalb des Kartenlesegeräts verwendet wird, und der von der Karte gelesenen Daten. The apparatus of claim 16, wherein the data is transmitted from the reader to the demodulator via a data packet which contains the velocity of a transport belt used to transport the card within the card reader and the data read from the card.
- 18Appareil selon la revendication 17, dans lequel les données sont stockées sur la carte dans des cellules et les données sont représentées par des transitions de flux. Gerät nach Anspruch 17, wobei die Daten auf einer Karte in Zellen gespeichert sind, und wobei die Daten durch Flusssprünge repräsentiert werden. The apparatus of claim 17, wherein the data is stored on the card in cells and the data is represented by flux transitions.
- 19Appareil selon la revendication 16 ou 17, dans lequel la densité d'enregistrement en bits de la carte est calculée dans le cas où la densité d'enregistrement en bits n'est pas reconnue par le au moins un objet démodulateur. Gerät nach Anspruch 16 oder 17, wobei die Bitdichte der Karte berechnet wird, wenn die Bitdichte nicht von dem mindestens einen Demodulatorobjekt erkannt wird. The apparatus of claim 16 or 17, wherein the bit density of the card is calculated if the bit density is not recognized by the at least one demodulator object.
- 20Appareil selon la revendication 19, dans lequel un 3/4 de temps de cellule des cellules sur la bande magnétique est calculé au moyen du mesurage des temps de cellule des zéros de tête codés sur la carte et par la prise en compte d'une moyenne des temps de cellule mesurés. Gerät nach Anspruch 19, wobei eine 3/4-Zellzeit von Zellen auf dem Magnetstreifen berechnet wird, indem die Zellzeiten führender Nullen gemessen werden, die auf der Karte codiert sind, und indem ein Durchschnitt der gemessenen Zellzeiten genommen wird. The apparatus of claim 19, wherein a 3/4 cell time of the cells on the magnetic stripe is calculated by measuring the cell times of leading zeros encoded on the card and taking an average of the cell times measured.
- 21Appareil selon la revendication 20, dans lequel, dans le cas où la densité d'enregistrement en bits n'est pas reconnue par le au moins un objet démodulateur, la densité d'enregistrement en bits est calculée en considérant une valeur inverse de la vitesse de la courroie multipliée par le temps moyen de cellule. Gerät nach Anspruch 20, wobei, wenn die Bitdichte nicht von dem mindestens einem Demodulatorobjekt erkannt wird, die Bitdichte berechnet wird, indem ein Umgekehrtes der Geschwindigkeit des Bands genommen und mit der durchschnittlichen Zellzeit multipliziert wird. The apparatus of claim 20, wherein if the bit density is not recognized by the at least one demodulator object, the bit density is calculated by taking an inverse of the velocity of the belt multiplied by the average cell time.
- 22Appareil selon l'une quelconque des revendications 16 à 21, dans lequel un autre objet démodulateur est instancié dans le cas où le au moins un objet démodulateur ne reconnaît pas la densité d'enregistrement en bits de la carte. Gerät nach einem der Ansprüche 16 bis 21, wobei ein weiteres Demodulatorobjekt instanziiert wird, wenn das mindestens eine Demodulatorobjekt die Bitdichte der Karte nicht erkennt. The apparatus of any one of claims 16 to 21, wherein another demodulator object is instantiated if the at least one demodulator object does not recognize the bit density of the card.
- 23Appareil selon l'une quelconque des revendications 16 à 22, dans lequel un autre objet décodeur est instancié dans le cas où le au moins un objet décodeur ne reconnaît pas la densité d'enregistrement en bits de la carte. Gerät nach einem der Ansprüche 16 bis 22, wobei ein weiteres Decoderobjekt instanziiert wird, wenn das mindestens eine Decoderobjekt den Kartentyp nicht erkennt. The apparatus of any one of claims 16 to 22, wherein another decoder object is instantiated if the at least one decoder object does not recognize the type of card.
Independent claims25
39 paragraphs, as filed
<u style="single">TECHNICAL FIELD</u>
The present invention relates to a system and method for reading and writing to magnetic stripe cards containing different bit densities.
<u style="single">BACKGROUND ART</u>
Cards or fare media containing magnetic stripes store information or data on the magnetic stripe. Various types of information, such as account information for credit cards, personal information used by the Department of Motor Vehicles is stored on the magnetic stripe on driver licenses in some states and information relating to transit systems. For cards used in transit systems, information such as the monetary value remaining on the card, where a patron enters the transit system and where the patron exits the system can be stored on the magnetic stripe of the card. Upon exiting the transit system, the fee for the ride is automatically deducted from the card and the new value is encoded on the magnetic stripe.
Card readers are utilized to read the information from the card. There are different kinds of card readers, such as "swipe" machines which a patron physically slides the card through and "insertion" machines which capture the card and returns the card after completion of the transaction. The card readers are reading or decoding flux transitions off of the magnetic strip. A flux transition is a location (interface) on the magnetic stripe where the magnetic particles on the two sides of the interface have like poles facing each other, i.e. a South-South or a North-North interface, resulting in a concentration of magnetic flux at the interface. The combination of all these flux transitions represent the data stored on the card. U.S. Patent No. 4,141, 044 to Kistner et al., describes an apparatus for capturing a card and/or reading and/or writing data bits on a record shipe of the card.
Flux transitions are encoded onto the magnetic stripe which is made of a ferromagnetic material. Ferromagnetic materials are substances that retain magnetism after an external magnetizing field is removed. This principle is the basis of all magnetic recording and playback. Magnetic poles always occur in pairs within magnetized material and magnetic flux lines emerge from the north pole and terminate at the south. The ferromagnetic material contain ferromagnetic particles, each of which acts like a tiny bar magnetic. The elemental magnetic particles are aligned with their North-South axes parallel to the magnetic stripe by means of an external magnetic field. If a magnetic particle is placed in a strong external magnetic field of the opposite polarity, it will reverse its own polarity (North becomes South, South becomes North. An unencoded magnetic stripe is a series of North-South magnetic particles.
However, if a South-South is created on the magnetic stripe, the fluxes will repel, and there will be a concentration of flux lines around the South-South interface (same with a North-North interface). Encoding the magnetic stripe on a card consists of creating South-South and North-North interfaces, and reading the card consists of detecting these flux transitions or flux reversals.
The external magnetic field used to flip the polarities is produced by a solenoid, which can reverse its polarity by reversing the direction of current. The field of the solenoid is concentrated across a gap in the solenoid, and when elemental magnetic particles of the magnetic stripe are exposed to this field, they polarize to the opposite (unlike poles attract). Movement of the stripe past the solenoid gap during which the polarity of the solenoid is reversed will produce a single flux reversal. To erase a magnetic stripe, the encoding head is held at a constant polarity and the entire stripe is moved past it. If there are no flux transitions, there is no data stored on the magnetic stripe.
Flux transitions are only created the instant the solenoid changes polarity. If the solenoid were to remain at is current polarity, no further flux reversals would be created as the magnetic stripe moves from right to left. If the solenoid gap polarity was changed from North-South to South-North, then a North-North flux transition would be instantly created. For each and every reversal in solenoid polarity, a single flux reversal is created. An encoded magnetic stripe is just a series of flux reversals (North-North followed by South-South followed by North-North).
Another solenoid called a read head is used to detect these flux transitions. The read head operates on the principle of electromagnetic reciprocity, current passing through a solenoid produces a magnetic field at the gap, therefore, the presence of a magnetic field at the gap of a solenoid coil will produce a current in the coil The strongest magnetic fields on a magnetic stripe are at the points of flux transitions. These are detected as voltage peaks by the reader, with +/- voltages corresponding to - North-North/South-South flux transitions. Data is encoded in "bit cells", the frequency of which is the frequency of '0' signals. '1' signals are exactly twice the frequency of '0' signals
One of the problems with magnetic media is that different applications have different requirements in terms of bit density and encoding format. Differences in the requirements cause time consuming and expensive changes to media reader/writers. As such, media reader/writers can only accept cards of a specific bit density. For example the device described in EP 0 565 759 which discloses a method for decoding F2 signals as well as a device for decoding F2 signals read from a magnetic data carrier. This method relates to improving the accuracy of reading data on magnetic cards which may have been corrupted but the magnetic reader described cannot read data from cards of a variety of bit densities inserted into the card reader without the reader having prior knowledge of the bit density of a particular card prior to corruption.
<u style="single">DISCLOSURE OF THE INVENTION</u>
It is one object of the present invention to provide a system that requires no knowledge of the bit density or data format of the media being processed.
It is another object of the present invention to encode and decode data onto the magnetic stripe of a card at any bit density.
In the present invention, a method and an apparatus of decoding and encoding information on the magnetic stripes of cards of various bit densities is provided according to claim 1 and claim 16 respectively. In this method, a card is inserted into a card reader, placed onto a transport belt and passed under magnetic read/write heads for encoding or decoding. A shaft encoder is utilized to determine the velocity of the transport belt. The velocity of the belt is transmitted to a single board computer, over a high speed communications link, in the preamble of a message and is used to determine the bit density of the card. The data read from the card is sent to the single board computer in the body of the message.
The single board computer determines what the bit density of the card is and demodulates and decodes the data. To demodulate the data, the single board computer sends the data to a demodulator object that supports the bit density of the card. The demodulator object receives the data and converts the data to a data stream of ASCII characters representing the data that was encoded on the magnetic stripe of the card. If the single board computer does not have a demodulator object that can support the bit density of the card, a new demodulator object can be instantiated which supports this bit density. The data stream is then sent to a decoder object that decodes and unpacks the data stream. From there the data stream is sent to a ticket validator to check the validity of the data. If the data stream decoded and unpacked from the card is valid, this data is sent to a packer object where the data is packed into a magnetic stripe format and sent back to the card reader for encoding.
The foregoing, together with other features and advantages of the present invention, will become more apparent when referring to the following specification, claims and accompanying drawings.
<u style="single">BRIEF DESCRIPTION OF THE DRAWINGS</u>
The present invention will be better understood from the following detailed description of an exemplary embodiment of the invention, taken in conjunction with the accompanying drawings in which like reference numerals refer to like parts and in which: <ul id="ul0001" list-style="none" compact="compact"><li>Figure 1 shows a system utilized to decode or encode data contained on the magnetic stripes of cards;</li><li>Figure 2 shows a flow diagram illustrating the process to determine if the system can support the bit density of the card; and</li><li>Figure 3 shows a flow diagram illustrating the demodulator process.</li></ul>
<u style="single">DETAILED DESCRIPTION OF THE DRAWINGS</u>
Figure 1 illustrates a system 100 utilized to decode or encode information on the magnetic stripes of cards. The system comprises a Ticket Handling Module (THM) Micro Controller Board 102 that continually monitors the system for insertion of a magnetic stripe card, such as fare media or credit cards. When a card has been inserted in the system 100, the Micro Controller Board 102 sends a signal to transport hardware 104 which captures the card and places the card on a transport belt (not shown). Simultaneously, a motor control, located in the transport hardware 104, energizes motors which in turn activates the transport belt causing the belt to rotate. The rotating transport belt passes the card under magnetic read/write heads 106 at a constant velocity for decoding (reading) and encoding (writing) information on the magnetic stripe of the card. Solenoids are utilized to encode data onto the magnetic stripe by methods well known in the art. Sensors are utilized to detect when the card is in the proper location within the system for encoding and decoding of data. In an alternative embodiment, a "swipe" machine can be utilized instead of an "insertion" machine as the card reader.
The magnetic stripe of the card is used to store information or data. Data can include account information, such as a credit card number and expiration date and information relating to transit fares. The magnetic stripe is comprised of cells and the data encoded on the card is stored in the cells by way of flux transitions. Each of the cells is the same length and the length of the cell is determined by the bit density of the card. The bit density is a measure of how close together the flux transitions are. Typical magnetic stripe cards use F2F encoding to encode the data. In F2F encoding, cells are marked by a beginning and an end, or boundaries. If a flux transition occurs within the boundaries of a cell, then the value of the cell is considered to be a "1". The system 100 uses the 3/4 cell time to determine if a flux transition is present within the cell. 3/4 cell time is 3/4 of the length of the cell, therefore if the flux transition occurs up to and including 3/4 the length of the cell (3/4 cell time), then the cell is counted as a "1". 3/4 is the industry standard for monitoring for a flux transition, however this can be changed to any length including, but not limited, to 7/8, 51% and 63% the length of the cell.
Since 3/4 cell time is 3/4 the length of a cell, this time can vary depending on the bit density of the card. By being able to encode or decode data on magnetic stripe cards of any density, the system of the present invention can accept cards with various bit densities and encoding formats. For cards of unknown bit densities, the system must determine what the 3/4 cell time is before data can be decoded from the card. Without knowing the 3/4 cell time, the system cannot determine if a flux transition has occurred within the cell boundaries.
To encode/decode data of a card with an unknown bit density, the system must first determine the velocity of the transport belt, or the capstan speed. To determine the velocity, a shaft encoder 108 is utilized. The shaft encoder 108 counts the number of rotations of the belt per a unit time. Based upon the number of rotations of the belt in a given amount of time, the speed of the belt is calculated and the information is transmitted to the Micro Controller Board 102.
Next, the system utilizes leading zeros which are contained on magnetic stripe cards to compute the 3/4 cell time. The leading zeros are a marker on the front of the ticket that indicate a known distance. Based upon the leading zeros, the system knows what a "zero" cell looks like and as a result, knows what a "one" cell looks like. Leading zeros are only needed if the density of the card is not recognized by the system The cell times on the leading edge of the card will be measured and this data will be used to calculate the 3/4 cell time by calculating the average cell time of the leading zeros and then taking 3/4 of that time. As the media passes over the read head, the cell times are measured. An internal timer on the THM Micro Controller Board 102 is used to measure the time interval between the flux reversals (cell time), thus the cell time is measured.
Once the read/write heads have read the data from the card, the information is transmitted, on the fly, to a Single Board Computer (SBC) or demodulator 110, over a high speed communication link, in the form of a message that consists of a preamble, body and a post amble. The preamble contains the belt velocity information and is transmitted when the velocity measurement is complete. The body of the message contains the distance from the leading edge of the media to the first flux reversal and the time interval between flux reversals (cell time). This information is transmitted, on the fly, as the flux reversals are detected. The post amble is an accumulated CRC that allows the demodulator 110 to authenticate the message. Once the demodulator 110 receives the message, the demodulator 110 determines if it has the ability to demodulate and decode the data on the magnetic stripe based upon the bit density of the card. Furthermore, the data can also be used for analysis.
Figure 2 is a flow diagram 200 illustrating the process utilized by the demodulator to determine if it can demodulate and decode the data. In this process, the Micro Controller 102 transmits a data packet, containing the cell time data read from the card by the magnetic read/write heads 104, to the demodulator 110 in the form of serial data 202. As described previously, the data packet consists of a preamble, body and post amble. The preamble contains the transport belt velocity and is transmitted when the velocity measurement is complete and is utilized when the card is of an unknown bit density. The body of the data packet contains the distance from the leading edge of the media to the first flux reversal and the time interval between flux reversals (cell time). The cell time is used to establish the 3/4 cell time to determine if a flux reversal or transition has occurred. The postamble is an accumulated Cyclic Redundancy Check (CRC) that allows the demodulator 110 to authenticate the data packet by detecting data transmission errors.
Once the serial data 202 is received, the cell time data (which indicates the bit density of the card) contained in the body of the message is read by the demodulator. If the demodulator supports the bit density of the card, the cell time data is sent to the appropriate demodulator object 204, 206 which receives the cell time data and converts the data to a data stream representing the data that was encoded on the magnetic stripe of the card. This is accomplished by determining if a flux transition has occurred within the 3/4 cell time. The appropriate demodulator object is determined by the bit density of the card. Each demodulator object supports a specific density supported by the demodulator. Figure 2 illustrates two demodulator objects, a low density demodulator object 204 and a high density demodulator object 206. If the bit density of the card is supported by the low density demodulator object 204 (i.e. the flux transitions are closer together), that is where the cell time data is transmitted. If the bit density of the card is supported by the high density demodulator object 206 (i.e. the flux transitions are farther apart), that is where the cell time data is transmitted. Although two demodulator objects are shown in figure 2, a low density demodulator object 204 and a high density demodulator object 206, those skilled in the art will recognize that any number of demodulator objects may be implemented. The demodulator object converts binary encoded data on the card to a string of ASCII characters. A binary one is represented as an ASCII one and a binary zero is represented as an ASCII zero. Cell times that do not meet the criteria of a one or a zero are represented as an ASCII zero. This output is suitable for display or further processing.
If the bit density is not supported by the demodulator, i.e. the demodulator does not contain a demodulator object that supports the bit density of the card and can convert the data from the card, a new demodulator object to accept the data of the unknown bit density can be instantiated. As discussed previously, the system utilizes the leading zeros encoded on the magnetic stripe cards to determine the 3/4 cell time. Based on this information, the bit density of the card can be determined using the velocity of the transport belt contained in the preamble of the data packet and the time between flux transitions. The bit density is equal to the inverse of the transport speed multiplied by the average cell time. A demodulator object can then be instantiated to accommodate the new bit density.
Furthermore, if the card contains a known bit density but the system does not contain a demodulator object which supports the bit density, demodulator objects can also be instantiated for known bit densities. The velocity information in the message preamble and the known bit density are used to compute the expected cell timing parameters. Based upon this information, a new demodulator object can be instantiated.
The demodulator object converts the flux transition time intervals by computing the cell boundary interval and monitoring for a flux change within the cell boundary. As described previously, the absence of a flux change within the boundary is defined as a zero and the presence of a flux change within the cell boundary is defined as a one.
Once the cell time data has been converted to a data stream, the demodulator object sends this data stream to a decoder object or media type. Figure 2 illustrates five different media types 208, 210, 212, 214, 216. Media types are credit cards and various types of fare media cards. Although a system supporting five different media types is shown, one skilled in the art will recognize that any number of media types can be supported. The decoder object receives the data stream from the demodulator object and the object decodes and unpacks the data stream. Data bits other than 1 or 0 are ignored.
Once the decoder object decodes and unpacks the data stream, the data stream is sent to the ticket validator 218. The ticket validator determines the validity of the card presented using the CRC contained in the post amble of the data packet. If the data stream decoded and unpacked from the card is valid, this information is sent to a packer object 220. The packer object 220 packs the data into a magnetic stripe format and sends the data to the Micro Controller 102. The Micro Controller 102 then can modify the data, such as deduct the appropriate fare from the card if the card is being utilized for a transit system, and encode the data on the card. The Micro Controller 102 can encode data onto the magnetic stripe of the card at standard densities using shaft encoder timing or at programmable densities using the internal timers of the Micro Controller 102. The shaft encoder 108 encodes data onto the card at a specific density. If the density required is not supported by the shaft encoder 108, internal timers of the Micro Controller 104 can be used to simulate a shaft encoder to encode the proper bit density.
Figure 3 is a flow diagram illustrating the demodulator process utilized by the demodulator objects 204, 206 of figure 1 to convert the intervals between the flux transitions to a stream of ASCII data that represents the data encoded on the magnetic stripe of the card. The demodulator object converts the flux transition time intervals by computing the cell boundary interval and monitoring for a flux change within the cell boundary. The absence of a flux change within the boundary is defined as a zero. The presence of a flux change within the cell boundary is defined as a one.
A data packet is sent 302 to the demodulator object causing a resume flag to be set to true and an overflow flag to be set to false 304. These flags are utilized to determine the cell boundary interval (cell time) and when a flux reversal or transition has occurred. The resume flag indicates the end of the cell or the cell boundary. Once the cell boundary has been reached, the resume flag is set to false. The overflow flag indicates that a flux transition has not yet occurred and the counter is still counting to determine the cell boundary interval or cell time and the system continues to check for the cell boundary.
Once the data packet from the Micro Controller 102 has been received, the demodulator object first checks to see if the received cell time is greater than or equal to the 3/4 cell time 306. If the answer is "yes" the overflow flag is changed to true 308 because the demodulator only checks the length of the cell to the 3/4 cell time to determine if a flux transition has occurred. When the cell time is the 3/4 cell time, the system knows if there is a flux transition in the cell and the counter can stop counting, thus the overflow is set to true and the demodulator object checks to see if the cell boundary has been reached 310. If the received cell time is not greater than or equal to the 3/4 cell time, the demodulator object maintains the overflow flag at false and checks if a cell boundary has been reached 310.
If a cell boundary has been reached, a newbit flag is changed to "not overflow" 312 indicating that the bit that was just decoded is the complement of the overflow flag. The newbit flag represents the demodulated bit and is a holder so the bit may be passed on to the decoder object when the entire bit cell has been processed. Next, the demodulator checks to see if the newbit flag is set to true 314, in other words, the demodulator object is confirming that a cell boundary has been reached (i.e. a cell boundary flag is set to false). If the newbit flag is false (zero), then the end of the bit cell has been reached. If the newbit flag is true, the cell boundary flag is set to false and the resume bit is set to false and the demodulator object waits for the next flux transition which will mark the end of the bit cell. When the demodulator is checking to ascertain if the resume bit is "true", the demodulator is waiting until the next flux transition. If the answer is "no", the demodulator object checks to see if the resume bit is true 316.
If the resume bit is "false", the data has been read from cell and the next cell is read. If the resume bit is "true" 316, the cell boundary flag is set to "true" 320. Next, the demodulator object checks to see if the new bit flag is "true" 322. If the new bit is not "true", the decoded data is "0" and there is no flux transition 324. If the new bit is true, the decoded data is "1" and there is a flux transition 326. This demodulated data is then sent to a decoder object. This process continues until all the cells have been checked.
Although an exemplary embodiment of the invention has been described above by way of example only, it will be understood by those skilled in the field that modifications may be made to the disclosed embodiment without departing from the scope of the invention, which is defined by the appended claims.
3 sheets
Sheet 1 Sheet 2 Sheet 3
Every citation, both waysCites: the store holds 5 of 6
| Document | Relation | Office |
|---|---|---|
| EP0441280A | Cites | European Patent Office (EPO) |
| EP0565759A | Cites | European Patent Office (EPO) |
| US4141044A | Cites | United States of America |
| US5455408A | Cites | United States of America |
| US6049478A | Cites | United States of America |
15 members in 9 offices
Priority claims14
| Document | Office | Kind | Date |
|---|---|---|---|
| 313996P | United States of America | – | |
| 31399601 | United States of America | P | |
| 31399601 | United States of America | P | |
| 225547 | United States of America | – | |
| 22554702 | United States of America | A | |
| 22554702 | United States of America | A | |
| 0226793 | United States of America | W | |
| 0226793 | United States of America | W | |
| 225547 | – | – | – |
| 313996P | – | – | – |
| US20010313996P | – | – | – |
| US20020225547 | – | – | – |
| US2002026793 | – | – | – |
| WO2002US26793 | – | – | – |
Members15
| Document | Office | Kind | |
|---|---|---|---|
| CA2458642A1 | Canada | A1 | |
| US2003042307A1 | United States of America | A1 | |
| WO03019460A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO03019460A3 | World Intellectual Property Organization (WIPO) | A3 | |
| NO20040776L | Norway | L | |
| EP1433115A2 | European Patent Office (EPO) | A2 | |
| US6789736B2 | United States of America | B2 | |
| HK1067753A1 | Hong Kong, China | A1 | |
| AU2002332631B2 | Australia | B2 | |
| EP1433115B1This record | European Patent Office (EPO) | B1 | |
| AT336749T | Austria | T | |
| ATE336749T1 | Austria | T1 | |
| DE60214021D1 | Germany | D1 | |
| DE60214021T2 | Germany | T2 | |
| CA2458642C | Canada | C |
49 legal events, as 5 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Gb: european patent ceased through non-payment of renewal feeCeasedGBPC | GBPC | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| No opposition filedOpposition26N | 26N | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Fr: translation not filedEN | EN | EP | |
| Standard patents granted in hong kongGrantedGR | GR | HK | |
| Patent ceasedCeasedPL | PL | CH | |
| Nl: lapsed or annulled due to failure to fulfill the requirements of art. 29p and 29m of the patents actLapsedNLV1 | NLV1 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Corresponds to:REF | REF | EP | |
| European patents granted designating irelandGrantedFG4D | FG4D | IE | |
| European patent takes effect as a national patent in ch/liEP | EP | CH | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Designated contracting statesAK | AK | EP | |
| European patent grantedGrantedFG4D | FG4D | GB | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Grant fee paidORIGINAL CODE: EPIDOSNIGR3GRAS | GRAS | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOSNIGR1GRAP | GRAP | EP | |
| Requests to designate patent in hong kongDE | DE | HK | |
| First examination report despatched17Q | 17Q | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAX | AX | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 1433115
- Publication, DOCDB
- 1433115
- Publication, EPODOC
- EP1433115
- Application
- 2796414
- Application, DOCDB
- 02796414
- Application, EPODOC
- EP20020796414
Titles3
- German
- VERTEILTE ARCHITEKTUR FÜR DIE VERARBEITUNG VON MAGNETISCHEN EINTRITTSKARTEN
- English
- DISTRIBUTED ARCHITECTURE FOR MAGNETIC FARE CARD PROCESSING
- French
- ARCHITECTURE REPARTIE POUR TRAITEMENT DE CARTE DE TRANSPORT MAGNETIQUE
Classification
- CPC, 5
- G11B20/16
- G06K7/016
- G06K7/084
- G11B20/10
- G11B20/14
- IPC, 5
- G06K7 08
- G06K7 016
- G11B20 10
- G11B20 14
- G11B20 16
Designated states24
- Contracting states, 24
- Austria
- Belgium
- Bulgaria
- Switzerland
- Cyprus
- Czechia
- Germany
- Denmark
- Estonia
- Spain
- Finland
- France
- United Kingdom
- Greece
- Ireland
- Italy
- Liechtenstein
- Luxembourg
- Monaco
- Netherlands (Kingdom of the)
- Portugal
- Sweden
- Slovakia
- Türkiye