Debit card read/write controller and process
First Claim
1. A process for reading and writing to a magnetic card stripe located on a card with a device comprising a magnetoresistive (MR) read head and a write head operatively connected to a microcontroller, and wherein the process comprises:
- placing the read head and write head a distance of at least two bit cells apart and wherein the bit cell distance is the distance between a first clocking flux transition and a second clocking flux transition;
initializing all memory locations in the microcontroller to their initial values;
storing a timing value of said transition in a word in a memory at an address designated as current (CURR);
if the detected edge is the first edge, a word in memory (called FIRST) is set to one and the content of the memory (CURR) is stored in an address designated as previous (PREV);
waiting in a loop for the next transition to occur;
allowing the next transition to occur;
storing the transition time in CURR;
calculating a current pulse time (TC) by calculating the difference between the two detected edges (transitions);
calculating an expected pulse width (TE) from the previous pulse width (PREV);
setting the TE to 75% of the PREV pulse width (TP) (TE0.75TP);
comparing the value of the current pulse width (TC) with the value of the expected pulse width (TE);
if the current pulse width (TC) is greater than the expected time (TE), a ZERO bit is detected;
checking to see if FORCE is set to one, wherein if FORCE is set to one, a transition is forced to the output and FORCE is set to zero;
setting the pulse width for ZERO bit (TZ) to equal the current pulse width (TC), and updating the previous pulse width (PREV) to the current pulse width.
1 Assignment
0 Petitions
Accused Products
Abstract
A debit card read/write controller. The controller comprises a microcontroller device, a read only memory, a dynamically random access memory and a read/write head for reading and writing onto a magnetic card media contained on a magnetic striped card. The microcontroller device includes an input capture port for storing data read from the card, and wherein the microcontroller device continually poles the input capture port for an event to occur. The entire read/write system can be integrated into one single chip. The steps for processing the signal, processing the signal, and writing to the stripes have also been disclosed. The steps generally include inserting the card into a card reader operatively associated with the MR read head and passing manually the stripe underneath the MR read head, and wherein the information on the magnetic card media is stored in the form of a plurality of magnetic flux reversals. Next, the magnetic flux reversal is detected by the MR head as the stripe moves under the MR head, an analog signal is generated, conditioned, amplified and converted to a square wave. The input capture port polls the microcontroller for a flux reversal contained on the stripe to occur, and thereafter stores the timing value in memory. The stored timing is converted to timing pulse width associated with zero/one, read from the magnetic stripe. The information is converted to the designated characters according to the ISO/IEC CD 7811. The security and authentication of the data can be checked. For the read/write process in manual mode, the write head and read head is placed 2 to 3 bits distance apart.
-
Citations
5 Claims
-
1. A process for reading and writing to a magnetic card stripe located on a card with a device comprising a magnetoresistive (MR) read head and a write head operatively connected to a microcontroller, and wherein the process comprises:
-
placing the read head and write head a distance of at least two bit cells apart and wherein the bit cell distance is the distance between a first clocking flux transition and a second clocking flux transition;
initializing all memory locations in the microcontroller to their initial values;
storing a timing value of said transition in a word in a memory at an address designated as current (CURR);
if the detected edge is the first edge, a word in memory (called FIRST) is set to one and the content of the memory (CURR) is stored in an address designated as previous (PREV);
waiting in a loop for the next transition to occur;
allowing the next transition to occur;
storing the transition time in CURR;
calculating a current pulse time (TC) by calculating the difference between the two detected edges (transitions);
calculating an expected pulse width (TE) from the previous pulse width (PREV);
setting the TE to 75% of the PREV pulse width (TP) (TE0.75TP);
comparing the value of the current pulse width (TC) with the value of the expected pulse width (TE);
if the current pulse width (TC) is greater than the expected time (TE), a ZERO bit is detected;
checking to see if FORCE is set to one, wherein if FORCE is set to one, a transition is forced to the output and FORCE is set to zero;
setting the pulse width for ZERO bit (TZ) to equal the current pulse width (TC), and updating the previous pulse width (PREV) to the current pulse width. - View Dependent Claims (2, 3, 4, 5)
allowing the next transition to occur;
storing the transition time in CURR;
calculating the current pulse time TC by calculating the difference between the two detected edges;
calculating the expected pulse width (TE) from the previous pulse width;
setting the TE to 75% of the PREV pulse width (TP);
comparing the value of the current pulse width (TC) with the value of the expected pulse width (TE);
if the pulse width (TC) is less than the expected time (TE), a ONE bit is detected;
checking the value of a flag called SKIP.
-
-
3. The process of claim 2 wherein the step of checking the value of the flag includes finding that the SKIP value is equal to one, and the process further includes:
-
updating the PREV by setting it equal to the current pulse width, CURR;
calculating the new ZERO bit pulse width, TP=2*TC;
setting the value of SKIP equal to zero; and
checking the value of the counter to see if the write process is over or it should wait to detect another transition.
-
-
4. The process of claim 2 wherein the step of checking the value of the flag includes finding that the SKIP value is equal to zero, and the process further includes:
-
checking the force to see if a transition should be forced so that FORCE is equal to one;
if yes, it forces a transition and resets the FORCE to zero;
calculating the value for ZERO as bit TZ=2*TC and set, PREV=CURR, and sets SKIP equal to one;
checking the value of write-data (N).
-
-
5. The process of claim 2 wherein the step of checking the value of the flag includes finding that the SKIP value is equal to zero, and the process further includes:
-
checking the force to see if a transition should be forced i.e. is force equal to one? calculating that force is equal to zero;
scheduling the time of a transition when the main time of micro controller reaches to the time equal to the sum of CURR and the ZERO bit pulse width;
otherwise, the time of a transition is scheduled when the main time of micro controller reaches to the time equal to the sum of CURR and the ZERO bit pulse width divided by two;
setting the value of FORCE equal to one and decreasing the counter'"'"'s value by one to take into account that one more bit is written 352 and wherein if the counter value is not equal to zero, the process waits to detect another transition otherwise the write process is over.
-
Specification