Baud rate modulating magnetic stripe data transmitter, system, and method

10862718 ยท 2020-12-08

Assignee

Inventors

Cpc classification

International classification

Abstract

A contactless payment device and method transmits a sequence of magnetic-field pulses directly to two or three magnetic-stripe read heads of a point-of-sale terminal. The baud rate at which the data is transmitted is modulated so that track data for one read head channel will be ignored by another read head channel, based on the change to the baud rate and/or the rate of change in the baud rate to improve acceptance of the transmitted pulses received by the read heads of the point-of-sale terminal.

Claims

1. A contactless magnetic stripe data transmission method, comprising: generating a first bit sequence based on a first data associated with a first track of a magnetic stripe; generating a second bit sequence based on a second data associated with a second track of the magnetic stripe, the first and second tracks being different; and driving an inductor to transmit the first bit sequence and the second bit sequence in series as magnetic pulses, wherein the first bit sequence and the second bit sequence are transmitted in different transmission rates.

2. The contactless magnetic stripe data transmission method of claim 1, wherein the driving of the inductor to transmit the first bit sequence and the second bit sequence comprises, changing a transmission rate gradually from a first rate to a second rate different from the first rate over a first plurality of bits of the second bit sequence.

3. The contactless magnetic stripe data transmission method of claim 2, further comprising: determining a first tolerance for change in the transmission rate associated with a first channel receiver for the first data; and determining a second tolerance for change in the transmission rate associated with a second channel receiver for the second data, wherein the changing of the transmission rate comprises changing the transmission rate from the first rate to the second rate at a rate of change having a magnitude that exceeds the first tolerance and is less than the second tolerance.

4. The contactless magnetic stripe data transmission method of claim 2, further comprising changing the transmission rate of the second bit sequence, as transmitted, gradually from the second rate to the first rate over a second plurality of bits of the second bit sequence.

5. The contactless magnetic stripe data transmission method of claim 1, wherein the driving of the inductor to transmit the first bit sequence and the second bit sequence comprises, changing a transmission rate gradually from a first rate to a second rate different from the first rate between two bits of the second bit sequence.

6. The contactless magnetic stripe data transmission method of claim 1, further comprising: determining a first passband associated with noise filtering by a first channel receiver for the first data; determining a second passband associated with noise filtering by a second channel receiver for the second data; setting a first rate to be inside the first passband and the second passband; and setting a second rate to be outside of the first passband and inside the second passband.

7. The contactless magnetic stripe data transmission method of claim 6, further comprising: determining a first tolerance of the first channel receiver for gaps in the first data; and maintaining a transmission rate of the second bit sequence at the second rate for a duration exceeding the first tolerance.

8. The contactless magnetic stripe data transmission method of claim 7, wherein: the determining of the first tolerance comprises estimating the first tolerance based on an amount of time to transmit a single character of the first data via the inductor multiplied by a non-zero integer.

9. The contactless magnetic stripe data transmission method of claim 1, further comprising: determining a first passband associated with noise filtering by a first channel receiver for the first data; determining a second passband associated with noise filtering by a second channel receiver for the second data; determining a first tolerance of the first channel receiver for gaps in the first data; determining a second tolerance of the second channel receiver for gaps in the second data; determining that the second tolerance is greater than the first tolerance; setting a first rate to be inside the first passband and the second passband; setting a third rate to be outside the first passband and the second passband; and dividing the second bit sequence into a first portion and a second portion, inserting bits-other-than-track-data therebetween, wherein the driving of the inductor to transmit the first bit sequence and the second bit sequence comprises, changing a transmission rate to the third rate during transmission of the inserted bits-other-than-track-data for a duration shorter than the second tolerance, the transmission rate being outside the first passband for a continuous period exceeding the first tolerance.

10. The contactless magnetic stripe data transmission method of claim 1, wherein the driving of the inductor to transmit the first bit sequence and the second bit sequence comprises: generating a clock signal at a first frequency to transmit the second bit sequence at a first rate; and generating the clock signal at a second frequency to transmit the second bit sequence at a second rate, and wherein a duration of each bit in the second bit sequence, as transmitted, corresponds to one cycle of the clock signal.

11. A contactless magnetic stripe data transmission device comprising: a processor that outputs a data signal based on magnetic stripe data; a logic circuit and driver converting the data signal into a time-variable electric signal; an inductor that emits magnetic pulses in response to the time-variable electric signal; and a memory storing instructions to be executed by the processor to: generate a first bit sequence based on a first data associated with a first track of a magnetic stripe, generate a second bit sequence based on a second data associated with a second track of the magnetic stripe, the first and second tracks being different, and drive the inductor to transmit the first bit sequence and the second bit sequence in series as magnetic pulses, wherein the first bit sequence and the second bit sequence are transmitted in different transmission rates.

12. The contactless magnetic stripe data transmission device of claim 11, wherein the instructions include instructions to transition gradually from a first rate to a second rate over a plurality of bits of the second bit sequence.

13. The contactless magnetic stripe data transmission device of claim 11, wherein the instructions further comprise instructions to: determine a first tolerance for change in a transmission rate associated with a first channel receiver for the first data, and determine a second tolerance for change in the transmission rate associated with a second channel receiver for the second data, and transit the transmission rates in accordance to a change rate corresponding to a magnitude that exceeds the first tolerance and is less than the second tolerance.

14. The contactless magnetic stripe data transmission device of claim 12, wherein the instructions further comprise instructions to: change a transmission rate of the second bit sequence, as transmitted, gradually from a second rate to a first rate over a second plurality of bits of the second bit sequence.

15. The contactless magnetic stripe data transmission device of claim 11, wherein the instructions include instructions to transit a transmission rate from a first rate to a second rate between two bits of the second bit sequence.

16. The contactless magnetic stripe data transmission device of claim 11, wherein the instructions further comprise instructions to: determine a first passband associated with noise filtering by a first channel receiver for the first data, determine a second passband associated with noise filtering by a second channel receiver for the second data, set a first rate to be inside the first passband and the second passband, and set a second rate to be outside of the first passband and inside the second passband.

17. The contactless magnetic stripe data transmission device of claim 16, wherein the instructions further comprise instructions to: determine a first tolerance of the first channel receiver for gaps in the first data, and maintain a transmission rate of the second bit sequence at the second rate for a duration exceeding the first tolerance.

18. The contactless magnetic stripe data transmission device of claim 17, wherein the instructions to determine the first tolerance include instructions to estimate the first tolerance based on an amount of time to transmit a single character of the first data via the inductor multiplied by a non-zero integer.

19. The contactless magnetic stripe data transmission device of claim 11, wherein the instructions further comprise instructions to: determine a first passband associated with noise filtering by a first channel receiver for the first data, determine a second passband associated with noise filtering by a second channel receiver for the second data, determine a first tolerance of the first channel receiver for gaps in the first data, determine a second tolerance of the second channel receiver for gaps in the second data, determine that the second tolerance is greater than the first tolerance, set a first rate to be inside the first passband and the second passband, set a third rate to be outside the first passband and the second passband, and divide the second bit sequence into a first portion and a second portion, and insert bits-other-than-track-data therebetween, and wherein the instructions further comprise instructions to change a transmission rate to the third rate during transmission of the inserted bits-other-than-track-data for a duration shorter than the second tolerance, the transmission rate being outside the first passband for a continuous period exceeding the first tolerance.

20. The contactless magnetic stripe data transmission device of claim 11, wherein the instructions to drive the inductor to transmit the first bit sequence and the second bit sequence include instructions to: generate a clock signal at a first frequency to transmit the second bit sequence at a first rate, and generate the clock signal at a second frequency to transmit the second bit sequence at a second rate, and wherein a duration of each bit in the second bit sequence, as transmitted, corresponds to one cycle of the clock signal.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) FIG. 1 illustrates a typical magnetic stripe and its tracks in accordance with existing industry standards.

(2) FIG. 2 illustrates a structure of the data encoded on the first track of the magnetic stripe of FIG. 1 in accordance with existing industry standards.

(3) FIG. 3 illustrates a structure of the data encoded on the second track of the magnetic stripe of FIG. 1 in accordance with existing industry standards.

(4) FIG. 4 illustrates a structure of the data encoded on the third track of the magnetic stripe of FIG. 1 in accordance with existing industry standards.

(5) FIG. 5 illustrates a structural arrangement of a magnetic stripe reader (MSR) including three read heads, as used with or included in point-of-sale (POS) terminals.

(6) FIG. 6 is a block diagram illustrating the inductive coupling of an improved magnetic pulse transmitter according to the disclosure, transmitting to a conventional MSR.

(7) FIG. 7 is a block diagram illustrating an example of the transmitter's logic component in FIG. 6.

(8) FIG. 8 is a block diagram illustrating alternative logic for use when the signal-encoding logic in FIG. 7 is integrated into the transmitter's controller.

(9) FIG. 9 is a timing diagram introducing basic operations of a system according to the disclosure.

(10) FIGS. 10 and 11 illustrate examples of the frequency filtering characteristics of the MSR's decoders in FIG. 6.

(11) FIGS. 12 and 13 are timing diagrams illustrating baud-rate manipulation according to the system, process, and apparatus of the disclosure.

(12) FIGS. 14 and 15 illustrate examples of how the baud rate may be manipulated relative to the frequency responses of the MSR's filters according to the system, process, and apparatus of the disclosure.

(13) FIG. 16 is a block diagram illustrating components of conventional MSR parser components.

(14) FIG. 17 illustrates examples of the channel tolerances for gaps between received data bursts in the receiver.

(15) FIG. 18 is a timing diagram illustrating baud-rate manipulation according to the system, process, and apparatus of the disclosure that leverages the different tolerances in frequency responses and for gaps across channels.

(16) FIGS. 19 and 20 illustrate examples of how the rate of change in the baud rate according to the system, process, and apparatus of the disclosure may be used to differentiate channels.

(17) FIGS. 21 to 23 are flow diagrams of a method according to the disclosure.

(18) FIG. 24 is a block diagram illustrating example components in a system including the device that generates the improved pulse sequence transmission according to the system, process, and apparatus of the disclosure.

DETAILED DESCRIPTION

(19) FIG. 6 is a block diagram illustrating the inductive coupling of an improved contactless payment device 610 (transmitter) to a conventional MSR 630. The transmitter 610 includes a logic circuit 618 and an MST (Magnetic Secure Transmission) device 620. A driver 621 in the MST device 620 receives an electrical signal over a connection 619 from the logic circuit 618 comprising F2F-encoded pulses. Based on the encoded pulses, the driver 621 outputs current pulses 622 to an inductive loop 628, causing emission of a magnetic flux (phi) 629. The alternating polarity of the magnetic flux 629 is used to transmit magnetic stripe information from the transmitter 610 to an MSR 630 of a POS terminal.

(20) The MSR 630 is configured to receive information from two or three tracks 101/102/103 when a magnetic stripe 11 is swiped across the corresponding magnetic read heads 501/502/503 in a conventional manner. However, as illustrated in FIG. 6, instead of a card swipe across the read heads 500, the read heads 500 instead receive the magnet flux 629 from the transmitter 610.

(21) The Track 1 read head 501 outputs an electrical signal, based on the magnet flux 629 coupled to the read head 501, to a Track 1 decoder 631. The Track 2 read head 502 outputs an electrical signal, based on the magnet flux 629 coupled to the read head 502, to a Track 2 decoder 632. The Track 3 read head 503 outputs an electrical signal, based on the magnet flux 629 coupled to the read head 503, to a Track 3 decoder 633.

(22) In response to the Track 1 decoder 631 detecting Track 1 101 data in the received stream of pulses from the read head 501, the Track 1 decoder 631 decodes the pulses to identify 7-bit characters (in accordance with character configuration 114a), and outputs decoded Track 1 data 691 to the POS terminal.

(23) In response to the Track 2 decoder 632 detecting Track 2 102 data in the received stream of pulses from the read head 502, the Track 2 decoder 632 decodes the pulses to identify 5-bit characters (in accordance with character configuration 114b), and outputs decoded Track 2 data 692 to the POS terminal.

(24) In response to the Track 3 decoder 633 detecting Track 3 103 data in the received stream of pulses from the read head 503, the Track 3 decoder 633 decodes the pulses to identify 5-bit characters (in accordance with character configuration 114c), and outputs decoded Track 3 data 693 to the POS terminal.

(25) In order for this to work with a serial multi-channel magnetic pulse stream from the device 610, the MSR decoders must successfully detect data for their respective channel in the stream. To facilitate successful processing by the MSR 630, existing techniques have focused on the arrangement of track data in the serial magnetic pulse stream, and the digital content included within the track data itself Also, Track 2 data might be transmitted in the stream at a lower baud rate than Track 1 and/or Track 3, so as to simulate the difference in baud rate that would occur during the swipe of a magnetic card stripe 11, since the recording density 113b associated with the Track 2 102 is less than the recording densities 113a/113c associated with Track 1 101 and Track 3 103. However, changes in baud rate within the serial stream were designed to make track data more susceptible to detection by a corresponding track decoder, rather than to decrease the susceptibility of detection of the data to the other track decoder(s).

(26) The device 610 leverages differences in analog-signal handling between MSR channels in order to make serial data intended for a first track decoder appear as noise to a second channel's decoder. The device 610 modulates the baud rate within a portion of the stream corresponding to a first track. The baud rate modulation and/or the rate of change of baud rate modulation is designed to be within the analog-signal handling tolerances of the intended decoder, while being incompatible with the analog-signal handling tolerances of one-or-both of the other decoders. The transmission baud rate and relevant thresholds depend in-part on how track data is arranged in the serial pulse stream, but are also manipulated or compensated for as a function of parameters associated with an MSR 630 of a particular POS terminal or terminal type. Parameter-based threshold include those based on the frequency response of each channel decoder of an MSR, a channel decoder's tolerance for the rate of change in the transmission baud rate, and a channel decoder's card-present timeout threshold.

(27) The inner-workings and tolerances of MSRs 630 generally vary from manufacturer-to-manufacturer and from model-to-model, but based on experimental sampling, certain analog-signal handling characteristics and principles of operation can be generalized. The representations of the inner-workings of the decoders 631/632/633 in FIG. 6 are models based on such generalization.

(28) The Track 1 decoder 631 includes a low-pass or bandpass filter 651, that receives the electrical signal output by the Track 1 read head 501 as input, and outputs a filtered signal 661. The filtered signal 661 is input into an analog-to-digital converter (ADC) 670a, producing a digital representation 671 of the filtered signal 661. The digital representation 671 is input into a Track 1 parser 681 which identifies pulses in the digital representation 671 of the filtered signal 661, determines the embedded clock rate, decodes the F2F encoding, and parses decoded bits to produce the Track 1 data 691 as a string or strings of alphanumeric characters (e.g., alphanumeric corresponding to those from Track 1 payload 211).

(29) The Track 2 decoder 632 includes a low-pass or bandpass filter 652, that receives the electrical signal output by the Track 2 read head 502 as input, and outputs a filtered signal 662. The filtered signal 662 is input into an ADC 670b, producing a digital representation 672 of the filtered signal 662. The digital representation 672 is input into a Track 2 parser 682 which identifies pulses in the digital representation 672 of the filtered signal 662, determines the embedded clock rate, decodes the F2F encoding, and parses decoded bits to produce the Track 2 data 692 as a string or strings of numeric characters (e.g., numeric corresponding to those from Track 2 payload 311).

(30) The Track 3 decoder 633 includes a low-pass or bandpass filter 653, that receives the electrical signal output by the Track 3 read head 503 as input, and outputs a filtered signal 663. The filtered signal 663 is input into an ADC 670c, producing a digital representation 673 of the filtered signal 663. The digital representation 673 is input into a Track 3 parser 683 which identifies pulses in the digital representation 673 of the filtered signal 663, determines the embedded clock rate, decodes the F2F encoding, and parses decoded bits to produce the Track 3 data 693 as a string or strings of numeric characters (e.g., numeric corresponding to those from Track 3 payload 411).

(31) Based on test payment transactions with a variety of different MSRs, the signal-response characteristics of read heads 501/502/503 and/or the filters 651/652/653 vary between channels, the parsers 681/682/683 have different tolerances for the rate of change in the baud rate of the stream, and the parsers have different tolerances for the gaps between received data bursts. While the signal-response characteristics and tolerances vary from MSR-to-MSR, there are some commonalities that can be leveraged to improve the likelihood that each channel will receive its intended track-specific data and ignore the data specific to other tracks, without exceeding the limits of a decoder's noise tolerance (causing a transaction to fail).

(32) The transmitter 610 includes a logic circuit 618 that modulates the baud rate at which encoded bits are transmitted to the MSR 630. The logic circuit 618 receives track data 611, and also receives description data 612 indicating the baud rate at which the track data 611 should be transmitted. The logic circuit 618 also receives a clock signal 601 that has a higher frequency than the baud rate that the track data 611 will be transmitted. The logic circuit 618 outputs an F2F-encoded version of the track data 611 over the connection 619 at the data rate specified by the description data 612.

(33) FIG. 7 is a block diagram illustrating an example of the transmitter's logic circuit 618 from FIG. 6. As illustrated, a bus interface 715 of the transmitter 610 provides the input signals to the logic circuit 618, including the track data 611, the description data 612, and the clock signal 601. The bus interface 715 may be used to connect the logic circuit 618 to a bus or busses 714, including one-or-more parallel busses, serial-busses, or a combination thereof. For example, the bus 714 may be a two-line I.sup.2C (Inter-Integrated Circuit) serial bus, with the track data 611 and the description data 612 being received over an I.sup.2C bus Serial Data Line (SDA) and the clock signal 601 being based on the I.sup.2C bus Serial Clock Line (SCL).

(34) As alternatives, the logic circuit 618 may be connected directly to a controller 702 providing the data stream, or partially or entirely integrated into the controller702 (either as software, hardware, or a combination thereof).

(35) The logic circuit 618 includes a data buffer 730 that is configured as a First-In-First-Out (FIFO) data queue. The data buffer 730 includes a section 730a for storing a series of bits corresponding to the track data 611 and a section 730b for storing the description data 612. The bus interface 715 receives the track data 611 bits and the description data 612 from the controller 702 via the bus 714, and loads the buffer 730 so track data 611 bits and the description data 612 corresponding to that track data 611 will be dequeued in parallel.

(36) Data is enqueued (loaded/written) into the back of the FIFO queue, and dequeued (read) from the front of the queue. The description data 712 at the front of the buffer 730b queue is output to a control input of a programmable digital frequency divider 740. Frequency dividers are also known as clock dividers. The frequency divider receives an input signal of frequency f.sub.in, and generates a down-converted output signal of a frequency f.sub.out. The frequency f.sub.out equals f.sub.in divided by n, where n is an integer. The frequency divider 740 receives the clock signal 601 (as f.sub.in), and down-converts the clock signal 601 to generate a lower frequency clock signal 701 (as f.sub.out) in accordance with the description data 712 (specifying n). The value n corresponds to a ratio of f.sub.in to f.sub.out, with divider 740 outputting one cycle of f.sub.out for every n cycles of f.sub.in. For example, for a 6 kHz (kilohertz) f.sub.in, n=2 produces an f.sub.out of 3 kHz; n=3 produces an f.sub.ont of 2 kHz, n=4 produces an f.sub.out of 1.5 kHz, and so on.

(37) An F2F encoder 741 reads the track data bit 711 from the front of the buffer 730b queue, and outputs an F2F-encoded pulse signal 742 at a frequency of the down-converted clock 701, as set by the description data 712. At either the trailing or leading edge of the cycle of the downconverted clock signal 701, a step input 731 of the queue causes the buffer 730 to advance the next entries in the queues forward to the front. This process continues until the buffer 730 is empty, indicating that the entire serial data stream has been output.

(38) The F2F-encoded pulses 742 output by the F2F encoder 741 may be input directly into the driver 621 (via connection 619), or a wave shaper 744 may be optionally interposed therebetween. The wave shaper 744 modifies the shape of the F2F-encoded pulses 742 to improve coupling of the magnetic flux 629 with the MSR read heads 500. For example, the wave shaper 744 may smooth the leading edge of each positive and negative pulse to provide a gradual rise time to a peak positive or negative level. Rejection of low baud rate signals by the channel filters 651/652/653 may be promoted by using the wave shaper 744 to smooth transitions of the signal on connection 619, making polarity changes in the magnetic flux 629 more gradual, and thereby reducing the frequency of the pulses output by the read heads 500.

(39) The F2F-encoded pulse signal 742, the signal on connection 619, and the current signal 622 through the inductor may be bipolar, alternating between positive and negative polarities. However, whether bipolar signals are input into the driver 621 depends in part on the choice of driver 621, and unipolar signals may instead be used (e.g., alternating between zero and a positive value). However, in the examples presented below, the F2F-encoded pulse signal 742 is bipolar, such that the signal on connection 619 input into the driver 621 is also bipolar. As noted above, the logic circuit 618 may be partially or entirely integrated into the controller 702 (either as software, hardware, or a combination thereof) providing the data stream.

(40) FIG. 8 is a block diagram illustrating alternative logic circuit 818 that can be used when the signal-encoding logic in FIG. 7 is integrated into the transmitter's controller 702. The bus interface 715 receives the baud-rate modulated F2F-encoded signals from the controller 702 via the bus 714, and outputs a binary representation 814 of this signal. In the context of the stream, the signal 814 has the appearance of a pulse-width modulated signal due to the fluctuation in baud rate over time, varying the width of pulses in the signal 814. However, the width of the pulses is based on down-converted multiples of a high frequency clock signal, corresponding to a unipolar implementation of signal 742 from FIG. 7.

(41) As illustrated in FIG. 8, the logic circuit 818 includes a binary-to-non-return-zero level (NRZL) converter 838 and a wave shaper 744. If the driver 621 accepts unipolar input, the signal 814 can be input directly into the driver 621, or passed through a unipolar implementation of the optional wave shaper 744. In the alternative, the unipolar signal 814 can be input into the binary-to-NRZL converter 838, which converts the unipolar signal 814 into a bipolar signal 742 (a binary 1 input produces a positive polarity output, and a binary 0 produces a negative polarity output). The bipolar signal 742 may then be input into the driver 621, or passed through a bipolar implementation of the optional wave shaper 744.

(42) FIG. 9 is a timing diagram illustrating basic operations of the system. In this example, the description data 612 causes the logic 618 to maintain a constant baud rate, such that the description data 612 signal is not shown. The example stream includes Track 1 data 901 (in forward or reverse bit-order) and Track 2 data 902 (in forward or reverse bit-order), with FIG. 9 illustrating a plurality of bits of each channel. The line 900 corresponds to the boundary in the serial data stream between the tracks. As noted above, additional bits (not illustrated), such as extra bits to promote clock synchronization, may be included between tracks in the serial data stream.

(43) As illustrated in this example, six cycles of the clock signal 601 are down-converted by the frequency divider 740 to produce one cycle of the down-converted clock signal 701. In practice, the ratio between clock signal 701 and 601 may be significantly higher than six-to-one. One bit of track data 711 is output from the buffer 730a each cycle of the clock signal 701. The F2F encoder 741 converts the track data 711 into the bipolar F2F-encoded pulses 742. Each binary 1 in the track data 711 results in one positive and one negative F2F pulse per cycle of the down-converted clock 701. Each binary 0 in the track data 711 results in a single F2F pulse per cycle of the down-converted clock 701. The particular bits illustrated for signal 711 are intended to demonstrate operational principles, and do not necessarily correspond to characters or symbols compliant with the corresponding track standards 112.

(44) Each reversal in the polarity of the F2F-encoded pulse signal 742 reverses the polarity of the magnetic flux 629. As a consequence, each transition of the F2F-encoded pulse signal 742 from negative-to-positive causes the read heads 501, 502, and 503 to produce positive pulses. Likewise, each transition of the F2F-encoded pulse signal 742 from positive-to-negative causes the read head 501, 502, and 503 to produce negative pulses. In this example, the baud rate specified by the description data 612 is compatible with all of the channels of the MSR 630, such that each of the positive and negative pulses output by the read heads 501, 502, and 503 appears in the filtered signal 661, 662, and 663 output by the corresponding filter 651, 652, or 653.

(45) FIGS. 10 and 11 illustrate examples of the frequency-response filtering characteristics of the MSR's channel decoders 631, 632, and 633. Differences between the read heads 501/502/503, filters 651/652/653, and any intervening amplifiers (not illustrated) may each contribute to a channel's frequency response characteristics. However, for the purpose of explanation, the channel filtering characteristics will be attributed to the filters 651, 652, and 653. The type of filters included in MSRs may vary from channel-to-channel, and from model-to-model. Among other purposes, the filters 651/652/653 may be used to attenuate high frequency noise and dampen harmonics generated by the read heads 500 during a conventional card-swipe transaction. Reducing high frequency noise increases the effective resolution ADCs 670 and aids in the detection of smaller read head signals.

(46) The filters 651, 652, and 653 may be low-pass or bandpass filters. For the purpose of explanation, the filter magnitude transfer functions are illustrated for bandpass filters using Full Width at Half Maximum (FWHM) low and high cutoff frequencies. In essence, a low pass filter can be thought of as a bandpass filter with a pass band that starts at zero Hertz.

(47) In the example in FIG. 10, the magnitude transfer functions 1051, 1052, and 1053 of the filters 651, 652, and 653 have substantially the same low-end cutoff frequencies F.sub.L1 1061, F.sub.L2 1062, and F.sub.L3 1063, below which the respective filters attenuate signals, and above which signals pass in the passband. However, the high-end cutoff frequencies above which the filters attenuate signals vary. The Track 1 channel filter 651 has a high-end cutoff frequency F.sub.H1 1071. The Track 2 channel filter 652 has a high-end cutoff frequency F.sub.H2 1072. The Track 3 channel filter 653 has a high-end cutoff frequency F.sub.H3 1073. As illustrated, F.sub.H1 1051 and F.sub.H3 1053 are greater than F.sub.H2 1052.

(48) In the example in FIG. 11, the magnitude transfer functions 1151, 1152, and 1153 of the filters 651, 652, and 653 have different low-end and high-end cutoff frequencies. The Track 1 channel filter 651 has a low-end cutoff frequency F.sub.L1 1161 and a high-end cutoff frequency F.sub.H1 1171. The Track 2 channel filter 652 has a low-end cutoff frequency F.sub.L2 1162 and a high-end cutoff frequency F.sub.H2 1172. The Track 3 channel filter 653 has a low-end cutoff frequency F.sub.L3 1163 and high-end cutoff frequency F.sub.H3 1173. As illustrated, F.sub.L2 1162 is lower than F.sub.L1 1161 and F.sub.L3 1163, and F.sub.H1 1151 and F.sub.H3 1153 are greater than F.sub.H2 1152.

(49) In the examples in FIGS. 10 and 11, the filter characteristics of the Track 1 channel are substantially the same as those of the Track 3 channel, as may sometimes be the case. However, the Track 1 and Track 3 filtering characteristics are independent of each other.

(50) FIG. 12 is a timing diagram illustrating an example of baud-rate manipulation, leveraging differences in the high-end cutoff frequencies FH between channels, in filters such as those in FIGS. 10 and 11. Initially, during transmission of the Track 1 data 901, a first value of the description data 712 sets the down-converted clock 701 to a baud rate that induces pulses in the Track 1 read head 501 and Track 2 read head 502 that have a frequency within the passband of the filters 651 and 652.

(51) While still transmitting the Track 1 data 901, the description data 712 signal changes to a second value, increasing the frequency of the down-converted clock 701. This increase in baud rate for the period S.sub.1 1201 induces pulses in the Track 1 read head 501 that have a frequency below the high-end cutoff frequency F.sub.HA of the Track 1 filter 651. However, the induced pulses in the Track 2 read head 502 have a frequency above the high-end cutoff frequency F.sub.H2 of the Track 2 filter 652, resulting in a substantial attenuation of pulses in the filtered signal 662. Thereafter, the description data 712 signal returns to the first value for the remainder of the transmission of the Track 1 data 901, and for the transmission of the Track 2 data 902.

(52) By increasing the transmission baud rate during the period S.sub.1 1201, a substantial portion of the Track 1 transmission in the serial stream will not be processed by the Track 2 parser 682, and/or ignored as background noise, even though the magnetic flux 629 containing the Track 1 transmission is received by both the Track 1 read head 501 and the Track 2 read head 502.

(53) FIG. 13 is another timing diagram illustrating an example of baud-rate manipulation, leveraging differences in both low-end frequencies F.sub.L and high-end cutoff frequencies F.sub.H between channels, in filters such as those in FIG. 11. The baud rate manipulation for transmission of the Track 1 data 901 follows the same pattern as in FIG. 12. The description data 712 signal is initially set to a first value to produce a transmission baud rate that induces pulses in the Track 1 read head 501 and Track 2 read head 502 that have a frequency within the passband of both the filters 651 and 652.

(54) The description data 712 signal then transitions to a second value, increasing the baud rate for the period S.sub.1 1201, inducing pulses that propagate in the Track 1 filtered signal 661, but that are substantially attenuated in the Track 2 filtered signal 662. That is to say, the filter 652 attenuates the received signal from the read head 502 so that any attenuated pulses included in the filtered signal 662 are below a threshold that must be exceeded for the attenuated pulses to be processed as potential track data. Thereafter, the description data 712 signal returns to the first value for the remainder of the transmission of the Track 1 data 901.

(55) During transmission of the Track 2 data 902, the description data 712 signal transitions from the first value to a third value, decreasing the frequency of the down-converted clock 701. This decrease in baud rate for the period S.sub.2 1302 induces pulses in the Track 2 read head 502 that have a frequency above the low-end cutoff frequency F.sub.L2 of the Track 2 filter 652. However, the induced pulses in the Track 1 read head 501 have a frequency below the low-end cutoff frequency F.sub.L1 of the Track 1 filter 652, resulting in a substantial attenuation of those pulses in the filtered signal 661. Thereafter, the description data 712 signal returns to the first value for the remainder of the transmission of the Track 2 data 902.

(56) By decreasing the transmission baud rate during the period S.sub.2 1302, a substantial portion of the Track 2 transmission in the serial stream will not be processed by the Track 1 parser 681, and/or ignored as background noise, even though the magnetic flux 629 containing the Track 2 transmission is received by both the Track 1 read head 501 and the Track 2 read head 502. Likewise, during the period S.sub.2 1302, a substantial portion of the Track 2 transmission in the serial stream may not be processed by the Track 3 parser 683, if the passband of the Track 3 filter 653 has a similar low-end cutoff frequency FL3 above that of the Track 2 filter 652 (as shown, for example, in FIG. 11).

(57) With regard to the stream of track data bits 711 in FIG. 13, if the Track 1 data 901 is correctly processed by Track 1 channel decoder 631, then the attenuated filtered signal 661 during the period S.sub.2 1302 may be of no consequence to transaction processing. However, in addition to FIG. 13 illustrating operational concepts, sometimes a stream will be encoded with two sets of data encoded for the same track decoder, such as a T1N-T2-T1R stream, a T2-T1N-T2R stream, and a T2-T1R-T2R steam. In such arrangements, it can be beneficial to employ baud rate manipulation during the middle set of pulses to increase the chance of reception for the end set of pulses in case the initial set of pulses for the same track was not fully processed. It can also be beneficial when a stream includes track data for all three tracks.

(58) Sharp, abrupt changes in baud rate (e.g., discontinuously changing baud rate between two data bits 711) may work with certain MSRs. However, when changing the baud rate, it may be desirable when transmitting to certain MSRs to change the frequency gradually over a plurality of data bits 711, rather than making rapid shifts to the frequency of the down-converted clock 701. As previously discussed, the channel decoders 631/632/633 differentiate between F2F-encoded zero bits and one bits based on the number of transitions, with an encoded one bit including a transition in the middle of the bit, whereas an encoded zero does not. Successfully differentiating between an F2F-encoded zero and one depends in part on the channel decoders 631/632/633 correctly tracking the clock rate to determine the bit-edge transitions, which becomes more difficult if the down-converted clock rate 701 undergoes abrupt or rapid changes.

(59) FIGS. 14 and 15 illustrate examples of how the baud rate may be gradually changed relative to the frequency responses of the MSR's filters.

(60) The frequency curve 1401 in FIG. 14 illustrates a gradual increase in the down-converted clock 701 from a first frequency to a second frequency over a plurality of bits 711, followed by a gradual decrease back to the first frequency, while the Track 1 data 901 is transmitted. The change in the down-converted clock 701 frequency corresponds to a change in the bit-transmission baud rate. Initially, the frequency is below the Track 1 filter high-end frequency cut-off F.sub.H1 1071/1171 and the Track 2 filter high-end frequency cut-off F.sub.H2 1072/1172. The frequency gradually rises above F.sub.H2 1072/1172 while staying below F.sub.H1 1071/1171, stabilizes, and then gradually declines back below F.sub.H2 1072/1172. During the period S.sub.1 1402 during which the down-converted clock 701 is above F.sub.H2 1072/1172, the signal from the Track 2 read head 502 is substantially attenuated by the Track 2 filter 652, while the signal from the Track 1 read head 501 is transmitted through the filter 651 substantially un-attenuated.

(61) The frequency curve 1501 in FIG. 15 illustrates a gradual decrease and increase in the down-converted clock 701 from a first frequency to a third frequency over a plurality of data bits 711, followed by a gradual increase back to the first frequency, while the Track 2 data 902 is transmitted. The change in the down-converted clock 701 frequency corresponds to the change in the bit-transmission baud rate. Initially, the frequency is above the Track 1 filter low-end frequency cut-off F.sub.L1 1161 and the Track 2 filter low-end frequency cut-off F.sub.L2 1162. The frequency gradually declines below F.sub.L1 1161 while staying above F.sub.L2 1162, stabilizes, and then gradually increases back above F.sub.L1 1161. During the period S.sub.2 1502 during which the down-converted clock 701 is below F.sub.L1 1161, the signal from the Track 1 read head 501 is substantially attenuated by the Track 1 filter 651, while the signal from the Track 2 read head 502 is transmitted through the filter 652 substantially un-attenuated.

(62) As illustrated in FIG. 16, the Track 1 parser 681 may include a first-in-first-out (FIFO) buffer 1651, an F2F decoder 1661, a card-present timer 1671, a buffer 1681, and parser logic 1691. The Track 2 parser 682 may include a first-in-first-out (FIFO) buffer 1652, an F2F decoder 1662, a card-present timer 1672, a buffer 1682, and parser logic 1692. The Track 3 parser 683 may include a first-in-first-out (FIFO) buffer 1653, an F2F decoder 1663, a card-present timer 1673, a buffer 1683, and parser logic 1693.

(63) During data collection, the digital representations 671/672/673 of the filtered signals 661/662/663 are buffered in a FIFO buffers 1651/1652/1653 at the sampling rate of the ADCs 6. When the F2F decoders 1661/1662/1663 process the digitized signal 671/672/673 from their respective buffer, the clock timing embedded in received F2F signals is determined so as to adapt to variations in card swipe speed. Based on the embedded clock timing, the F2F decoders identify the edges of the encoded bits. When a transition (detected as a pulse of the filtered signal 661/662/663) occurs at an edge of a bit and at the center of a bit, the decoder records a binary 1 in the corresponding buffer 1681/1682/1683. When a transition occurs at an edge of a bit and no transition is recorded within the bit, the decoder records a binary 0. Loading the decoded bits into buffers 1681/1682/1683 facilitates processing by the logic 1691/1692/1693 to extract track data 101/102/103 from the stored bit sequences, since each track bit-sequence may be in the forward or reverse bit-order. The capacity of these buffers 1651/1652/1653 and 1181/1182/1183 may vary from channel-to-channel.

(64) The decoder logic 1691/1692/1693 searches the decoded bits in the respective buffer 1681/1682/1683 for the track's Start Sentinel 210/310/410 in forward and reverse bit-orders. Processing of the bit already received in the buffered data may be triggered based on a triggering of a timeout by the channel's card-present timer 1671/1672/1673 (e.g., when a period of no flux exceed the timer's timeout threshold, causing the bits already received to be processed), the number of bits loaded into the respective buffer reaching a threshold bit-count, and/or based on detection of the Start Sentinel.

(65) In each channel decoder 631/632/633, the reception of a new pulse or decoding of a new bit may reset the card-present timer 1671/1672/1673. If the timer expires before the logic 1691/1692/1693 begins processing the decoded bits or a Start Sentinel is detected for the respective channel, the decoder logic 1691/1692/1693 for the respective channel may timeout. However, a timeout does not necessarily trigger a transaction failure. Once a channel times-out (e.g., Track 1 decoder 631), the decoder may stop bits, and decode data received prior to the timeout. This is particularly advantageous when the buffers 1651/1652/1653 are circular FIFO buffers that overwrite old data when full, since a timeout triggered in one channel can assure that the decoder will not lose any data from the beginning of a received magnetic pulse transmission (due to being overwritten by later data). For the channel(s) that does not timeout (such as a channel with a longer card-present time, like a Track 2 channel), that channel decoder will continue to receive bits and flush the data it receives at the beginning of the magnetic pulse stream (when the respective buffer overflows, overwriting old data), thereby overwriting data intended for a different channel prior to processing.

(66) The time limits of the card-present timers 1671/1672/1673 that trigger a time out of the respective decoder may be different for each channel FIG. 17 illustrates examples of the time limits of the card-present timers, which corresponds to the channel decoder's tolerance for gaps in the received filtered signal 661/662/663. The card-present timer values may be based on the character/bit rate expected when a conventional magnetic stripe card 100 is swiped across the read heads 500, with each channel's timeout limit being based on the length of time to receive a single character in the respective channel format (e.g., recording density 113 and character configuration 114) times a non-zero positive integer (e.g., 1, 2, 10, etc.). The integer value depends upon POS terminal models, with different terminals using different integer values. In the illustrated example, the Track 3 channel has the shortest time limit TO.sub.3 1703, the Track 2 channel has the longest time limit TO.sub.2 1702, and the Track 1 channel has a time limit TO.sub.1 1701 in-between. A specific embodiment would be a time limit TO.sub.1 1701 of 2 milliseconds (ms) for Track 1, a time limit TO.sub.2 1702 of 5 ms for Track 2, and a time limit TO.sub.3 1703 of 1 ms for Track 3.

(67) A T1-T2R sequence will be used as an example of how timeouts can be used to improve processing by the MSR 630. Processing of the T1 sequence by the Track 1 channel decoder 631 can be triggered by creating a the time gap in the filtered signal 661 that exceeds the Track 1 card-present timer 1671 time limit TO.sub.1 1701, but that either does not occur in the filtered signal 662 (due to differences in cutoff frequencies between the Track 1 and Track 2 channel filter cutoff frequencies, as discussed in connection with FIGS. 10 and 11), or which does occur in the filtered signal 662 but is less than the Track 2 card-present timer 1672 time limit TO.sub.2 1702. The Track 1 decoder 631 will decode the Track 1 data (in the T1-T2R transmission) that was received prior to the timeout, with data received after the timeout not being stored and/or processed. However, the Track 2 channel decoder 632 will continue receiving the Track 2 data (in T1-T2R). Due to the buffers being circular FIFO buffers, the Track 2 channel decoder 632 may flush data that was received at the beginning of the T1-T2R transmission (i.e., Track 1 data), rather than the needed Track 2 data. As a result, both the Track 1 channel decoder 631 and the Track 2 channel decoder 632 receive the track payloads for their respective tracks, producing good reads for those channels (which is the desired result). Furthermore, by creating a gap in the filtered signal 663 exceeding TO.sub.3 1703 prior to or during transmission of the Track 2 data, the Track 3 decoder 633 will timeout, causing the Track 3 channel decoder 633 to process the received Track 1 data (in the 7-bits-per-character format 114a), and at most a portion of the Track 2 data lacking either the start sentinel 310 or the end sentinel 326, resulting in an error read (which is the desired result). Thus, in MSRs that include read heads and decoders for all three channels, a T2==T3 conflict can also be avoided.

(68) Referring to FIG. 17, the controller 702 may estimate the time limit for each channel's card-present timer based on the longest duration of time that it may take to transmit a single character in the respective character format times a non-zero integer, which is roughly the number of bits per character (114) divided by the slowest baud rate accepted by the channel's decoder 631/632/633 times the integer. The transmitter's controller 702 may determine baud rate information and the integer value based on a table or tables stored on the payment device 610. Such information may be updated, among other ways, by trial-and-error determinations of what rates and integer multipliers result in a completed transaction.

(69) To leverage the card-present timers, the controller 702 may prioritize use of frameworks specifying how to order track data. The controller 702 may use different frameworks with different POS terminals and locations, and may try a series of frameworks at a location until one works. One way the controller 702 may prioritize is based on the timeout gap tolerances associated with the decoders for the respective channels specified in the framework (e.g., TO.sub.1 1701, TO.sub.2 1702, TO.sub.3 1703). For many decoders, the gap tolerances of card-present timers for each channel will be approximately equal to the longest duration it ordinarily takes to communicate a single character by card swipe times the non-zero integer value. To take advantage of this approach to generating a timeout, the controller 702 may prioritize (i.e., try) frameworks in which a slower character-rate channel (e.g., Track 2 102) occurs after a faster character-rate channel (e.g., Track 1 101, Track 3 103) ahead of frameworks where a faster character-rate channel follows a slower character-rate channel.

(70) So for example, referring to the relative gap tolerances illustrated in FIG. 17, a controller 702 may prioritize a T1-T2R framework ahead of a T2-T1R framework, if both frameworks might otherwise be viable for the POS terminal at the location. With T1-T2R, the controller 702 may try to trigger a timeout in the Track 1 decoder 631 by modulating the baud rate after transmission of the TI sequence produce a frequency will be outside the passband of the Track 1 channel filter 651, causing the filtered signal 661 to be heavily attenuated (i.e., filtered to a level that will not produce a pulse that parser 681 will register) for a duration exceeding TO.sub.1 1701.

(71) This modulation can begin either between the T1 and T2R sequence (e.g., begin during interstitial clocking bits) or during the T2R sequence. If this baud rate is within the passband of the Track 2 channel filter 652, then the duration of this baud rate modulation will not trigger a timeout of the Track 2 channel card-present timer 1672. However, if this baud rate is also outside the passband of the Track 2 channel filter 652 (also causing the filtered signal 662 to be heavily attenuated), then it is the duration that the baud rate is maintained outside of the Track 2 passband must be less than that of the Track 2 channel timeout threshold TO.sub.2 1702, and transmission of the Track 2 data must be suspended coincident with the duration that the baud rate is outside of the Track 2 passband.

(72) If the T1-T2R transmission is unsuccessful, the controller 702 may try T2R-T1. After transmission of the T2R sequence, beginning either during interstitial clocking bits between T2R and T1, or during transmission of the T1 sequence. The controller 702 may modulate the baud rate to produce a frequency outside of the passband of the Track 2 channel filter 652 for a duration exceeding the Track 2 channel timeout threshold TO.sub.2 1702. However, since TO.sub.1 is smaller than TO.sub.2, the controller 702 may set the modulation at a frequency between the Track 1 channel cutoff frequencies F.sub.L1 and F.sub.H1 so as to induce a signal from the Track 1 channel read head 501 that is within the passband of the Track 1 channel filter 651, thereby avoiding triggering of a timeout in the Track 1 channel decoder 631.

(73) By employing framework prioritization, the controller 702 arranges track data sequences so that a decoder channel having a shorter timer threshold (e.g., 1701, 1702) will be ahead of track data sequences for a decoder channel having a longer timer threshold (e.g., 1703, 1701). This allows the transmitter 610 to trigger a timeout in the decoder channel having the shorter timer threshold prior to or while transmitting track data targeted at the decoder channel having the longer timer threshold.

(74) While a framework or tables stored on the device 610 may specify timeout threshold values 1701/1702/1703 for the respective channels, the controller 702 may estimate the card-present timer thresholds (which correspond to the channel's gap tolerance) based on a character rate for each respective channel. For example, the controller 702 may estimate a first gap tolerance for a first channel decoder based on an amount of time to transmit a single character of data for that track at a baud rate used for first track transmissions times a non-zero integer value, and estimate a second gap tolerance for a second channel decoder based on an amount of time to transmit a single character of data for that track at a baud rate used for second track transmissions times the non-zero integer value. A margin value (e.g., +10%) may be added to increase the likelihood of triggering a timeout. Based on this stored or estimated timeout value, the controller 702 may control the modulation profile so that the duration the baud rate is outside a channel's passband (e.g., S.sub.1 1402 in FIG. 14; S.sub.2 1502 in FIG. 15) exceeds the time out value of the respective channel.

(75) FIG. 18 is a timing diagram illustrating baud-rate manipulation according to the disclosed system and method, that leverages the different tolerances in frequency responses and for gaps across channels. This approach increases the baud rate to induce signal outputs from the read heads 500 that are outside the passbands of all three MSR channels, temporarily suspending transmission of track data while at such a baud rate. The controller 702 divides the track data being transmitted into portions that precede and follow this gap-inducing baud rate, inserting nonce bits therebetween. By setting the baud rate of the track data portions preceding and following the nonce bits to be inside the passband of the respective channel whose data is being transmitted, but outside the passband of one-or-more other channels, the induced gap lengths in each channel can each be individually controlled.

(76) In the example in FIG. 18, the baud rate is increased to exceed the passbands of all three channels coincident with transmission of Track 1 data, but this approach is equally applicable to reducing the baud rate below the passbands, and may be inserted into the transmission of any track data in order to trigger a timeout in other channels.

(77) Initially, during transmission of a first T1.a portion 1821 of the Track 1 data 901, a first value of the description data 712 signal sets the down-converted clock 701 to produce a first baud rate that induces pulses in the read heads 500 that have a frequency within the passband of the filters 651, 652, and 653.

(78) While still transmitting the first T1.a portion 1821, the description data 712 signal changes to a second value, increasing the frequency of the down-converted clock 701 to produce a second baud rate. This increase in baud rate induces pulses in the Track 1 read head 501 and the Track 3 read head 503 that have a frequency below the high-end cutoff frequencies F.sub.H1 of the Track 1 filter 651 and F.sub.H3 of the Track 3 filter 653. However, the induced pulses in the Track 2 read head 502 exhibit a frequency above the high-end cutoff frequency F.sub.H2 of the Track 2 filter 652, resulting in a substantial attenuation of those pulses in the filtered signal 662.

(79) Thereafter, the description data 712 signal sets the down-converted clock 701 to produce a third baud rate that, for the period p 1800, induces pulses in the read heads 500 that have a frequency above the high-end cutoff frequencies F.sub.H the passband of all three filters 651, 652, and 653 (and possibly above the frequency response of the read heads 500 themselves). For the period p 1800, the track data buffer 730b is loaded with nonce data (i.e., not card track data). The nonce data may be, for example, a series of binary ones so as to increase the number of transitions in the F2F-encoded signal 742. Increasing the number of transitions in the F2-Fencoded signal 742 generated by the nonce data when the clock 701 is increased to a high-frequency value promotes signal attenuation in the MSR 630 for the duration of the period p1800. Likewise, if the clock 701 was instead decreased to be below the low frequency cutoff frequencies F.sub.L, using zeroes for the nonce data would further decrease the number of transitions.

(80) Thereafter, the description data 712 signal returns to the second value and resumes transmitting the Track 1 data 901, transmitting a second T1.b portion 1831. Then, the description data 712 signal returns to the first value for the remainder of the transmission of the second T1.b portion 1831.

(81) As a result of the baud rate manipulation, pulses output in the Track 1 filtered signal 661 are substantially attenuated for the period S.sub.1 1801, which includes pulses generated during the period p 1800 when the down-converted clock 701 is at the third baud rate. That is to say, the filter 651 attenuates the received signal from the read head 501 so that any attenuated pulses included in the filtered signal 661 are below the threshold that must be exceeded for the attenuated pulses to be processed by the channel decoder as potential track data.

(82) Pulses output in the Track 2 filtered signal 662 are substantially attenuated for the period S.sub.2 1802, which includes pulses generated during the period when the down-converted clock 701 is at the second baud rate, and the period p 1800 when the down-converted clock 701 is at the third baud rate. Pulses output in the Track 3 filtered signal 663 are substantially attenuated for the period S.sub.3 1803, which includes pulses generated during the period p 1800 when the down-converted clock 701 is at the third baud rate.

(83) By managing the length of the durations S.sub.1 1801, S.sub.2 1802, and S.sub.3 1803 that will be created by the data stream, the transmitter 610 can modulate the transmission baud rate to selectively cause an MSR decoder to timeout. A specific embodiment would be if the Track 1 time limit TO.sub.1 1701 is 2 ms, the Track 2 time limit TO.sub.2 1702 is 5 ms, the Track 3 time limit TO.sub.3 1703 is 1 ms, the periods p 1800, S.sub.1 1801, and S.sub.3 1803 are 1.5 ms, and the period S.sub.2 1802 is 6 ms. The result will be that the Track 1 decoder 631 will not time out during transmission of the Track 1 data 901, while the Track 2 channel decoder 632 and the Track 3 channel decoder 633 will time out. This reduces the processing of encoded Track 1 bits in the stream by the Track 2 and Track 3 channel decoders Similar results can be obtained leveraging the low-end filter cutoffs FL, as discussed in connection with FIG. 11 and FIG. 13. This approach can also be used to mitigate the T2==T3 conflict by dividing the Track 2 data into two portions and inducing a period p 1800 longer than TO.sub.3 1703 but shorter than TO.sub.1 1701 and TO.sub.2, 1702 so as to cause the Track 3 decoder 633 to time out before receiving either the Track 2 Start Sentinel 310 or the Track 2 End Sentinel 326 (depending upon whether transmission of the Track 2 data is in reverse or forward bit-order).

(84) FIGS. 19 and 20 illustrate examples of how the rate of change in the baud rate may be used to differentiate channels. The frequency curve 1901 in FIG. 19 illustrates a gradual increase in the down-converted clock 701 from a first frequency to a second frequency over a plurality of data bits (711), followed by a gradual decrease back to the first frequency, while data for a first track 1904 (Track X) is being transmitted (that is, while data corresponding to Track 1 101, Track 2 102, or Track 3 103 is being transmitted, inclusive of any clocking bits preceding or following the track data). The frequency curve 2001 in FIG. 20 illustrates a gradual decrease and increase in the down-converted clock 701 from a first frequency to a third frequency over a plurality of data bits 711, followed by a gradual increase back to the first frequency, while data for a second track 2005 (Track Y) is being transmitted (that is, while data corresponding to Track 1 101, Track 2 102, or Track 3 103 is being transmitted, inclusive of any clocking bits preceding or following the track data).

(85) Each of the channel decoders 631, 632, and 633 may have a different tolerance for the rate of change of the baud rate. These tolerances may depend in part on the ability of the clock generator in the F2F decoders 1661, 1662, and 1663 to adjust to changes in the duration corresponding to each un-encoded data bit of data, as determined based on the edge transitions in the received F2F-encoded data stream. A failure to track changes to the clock frequency may cause the F2F decoders to misconstrue an F2F-encoded binary one to be decoded as two binary zeros, to misconstrue two F2F-encoded zeros to be decoded as one binary one, and/or to trigger a timeout while the clock generator reestablishes bit-timing. The rate of change corresponds to the 1st derivative of the frequency change function. The 1st derivative of the frequency change function is the slope of a line tangent to that function.

(86) In FIG. 19, the peak rate of change Aux that a first decoder can tolerate as the down-converted clock frequency 701 gradually rises (subscript U for up) from the first baud rate to the second baud rate is illustrated by the tangent line 1916 (having a positive slope value). The peak rate of change .sub.UX that the first decoder can tolerate as the down-converted clock frequency 701 gradually descends (subscript D for down) from the second baud rate to the first baud rate is illustrated by the tangent line 1917 (having a negative slope value).

(87) In FIG. 20, the peak rate of change .sub.DY that a second decoder can tolerate as the down-converted clock frequency 701 gradually decreases from the first baud rate to the third baud rate is illustrated by the tangent line 2018 (having a negative slope value). The peak rate of change .sub.UY that the second decoder can tolerate as the down-converted clock frequency 701 gradually increases from the third baud rate to the first baud rate is illustrated by the tangent line 2019 (having a positive slope value).

(88) The magnitudes of the positive slope .sub.UX 1916, negative slope .sub.DX 1917, negative slope .sub.DY 2018, and the positive slope .sub.UY 2018 may all be different, such that decoders may have different sensitivities to the rate of change as the baud rate increases and as the baud rate decreases, and differences across channels.

(89) By increasing the baud rate during transmission of track data intended for a Track A channel faster than a Track B channel decoder can handle, a timeout can be triggered in the Track B channel decoder. Likewise, by decreasing the baud rate during transmission of track data intended for Track A faster than a Track B channel decoder can handle, a timeout can be triggered in the track B channel decoder. As previously discussed, a timeout results in the timed-out channel decoder processing data buffered prior to the timeout, while ignoring data received after the timeout.

(90) This method of triggering channel decoder timeouts can be used in conjunction with changing the baud rate to generate pulses from the read heads 500 that are outside the passbands of the channel filters 651/652/653 (as discussed in connection with FIGS. 10-18), or can be used on its own with baud rates that induce pulses from the read heads 500 that fall within the passbands of the respective channels.

(91) FIGS. 21 to 23 are flow diagrams of a method of implementing baud rate manipulation in a contactless electronic payment system implemented according to the disclosure.

(92) FIG. 21 how the transmitter selectively determines the pulse sequences to use. The contactless payment device 610 receives (2102) an indication to output a magnetic stripe pulse sequence. Examples of receiving the indication is detecting a touch of a region of a graphical user interface (GUI) on touch-sensitive display that corresponds to a pay button, or actuation of a physical pay button.

(93) The controller 702 of the contactless payment device 610 determines (2112) its geographic location. Any technique may be used to acquire location information, such as using information from satellite geographic positioning system receiver such as a Global Positioning System (GPS) receiver and/or a Global Navigation Satellite System (GLONASS) receiver. Other examples of how location information may be acquired include using other radio sources (e.g., via at least one antenna), such as mapping services that triangulate off of known WiFi service set identifiers (SSIDs) or cellular towers within range of the device 610.

(94) The device 610 may also capture one or more images using a camera of the device 610, and process (2122) the image(s) captured by the camera to identify patterns in the captured image (or images) to identify (2144) whether any of the identified patterns corresponds to that of a specific type of POS terminal. For example, the Square mag-reader dongle made by Square, Incorporated, has a distinctive shape that is identifiable using conventional image pattern recognition. In addition, some POS terminals have distinctively shaped features such as the shape of the pin/keypad.

(95) Certain manufacturers and types of POS terminals may be known to predominate in certain geographic regions/countries. Using information stored on the device and/or by accessing a database over a wireless network, the controller 702 of the device 610 may identify (2114) pulse-transmission-sequence frameworks and/or terminal types for the geographic location and/or identify (2126) pulse sequence frameworks for the identified terminal.

(96) The device 610 stores a list of pulse-transmission-sequence frameworks. Frameworks specify how to structure the transmission stream, such as indicating to use T2-T1R, T2-T1R-T2R, T2-T1NR, etc. A framework may include other information rules, and parameters, such as whether to include clocking bits before and/or after a track sequence, identifiers for POS terminal types associated with the geographic location, and information about default baud rate modulations. Other information may be stored on the device in tables or a database indexed by location, terminal type, and/or other indicia that can be cross-referenced against the information included in the frameworks. Such tables may include values such as low-end cutoff frequencies F.sub.L and high-end cutoff frequencies F.sub.H for respective channels (as discussed with FIGS. 10 and 11), card-present timer limits for respective channels (as discussed with FIG. 17) or the integer multiplier used to estimate such time limits, MSR channel buffer capacities, and baud rate-of-change tolerances for respective channels (as discussed with FIGS. 19 and 20). Such values may also be included within a selected framework itself.

(97) The controller 702 retrieves track data needed to assemble the bit sequences specified in a selected framework from memory storage. The controller 702 generates and assembles the bit sequences using the stored magnetic stripe track data, and determines the baud rate modulation(s) to be used with respective sequences. For example, if a framework specifies to use T2-T1R-T2R, the device 610 will generate a first F2F-encoded pulse sequence from the Track 2 data stored for a selected payment card, will generate a second F2F-encoded pulse sequence from the Track 1 data for the selected payment card in reverse bit-order, and will generate a third F2F-encoded pulse sequence from the Track 2 data for the selected payment card in reverse bit-order.

(98) Each framework may be associated with a weighted score corresponding to a confidence level that the sequence will or will not work at the geographic location and/or with the specific terminal. The controller 702 sorts (2130) the identified frameworks in accordance with sets of rules. The rules may give highest priority to frameworks that are indicated as working at the specific geographic location and/or with a specific identified terminal. Frameworks indicated as working within the region (e.g., a country), but untested at the specific location and/or with the specific identified terminal, may be given next-highest priority. Frameworks known not to work at the specific geographic location and in the regions and/or with the specific identified terminal may be given lowest priority. Among frameworks given the lowest priority, if the associated weighted confidence score fails to satisfy a stored threshold value, those frameworks may be culled from the sorted list as being unlikely to work. Frameworks indicated as working within the geographic region, but not at the specific geographic location and/or with the specific identified terminal, may be given next-to-last priority.

(99) The controller 702 may further sort frameworks to prioritize the frameworks based on the order of track sequences to facilitate a controlled triggering of decoder timeouts and buffer overflows. For example, as will be described further in connection with FIG. 23, the controller 702 may determine a card-present timeout TO.sub.A associated with decoders for a first track sequence A specified by a framework, and determine a card-present timeout TO.sub.B associated with decoders for a second track sequence B specified by the respective framework, where A and B are different channels, and A will precede B in the data stream. By prioritizing frameworks where TO.sub.A is shorter (less) than TO.sub.B ahead of other frameworks, there are more options available for triggering a timeout of the A channel decoder using baud rate modulation. Thus, if two frameworks have similar weighted scores, the controller 702 can further order them based on TO.sub.A and TO.sub.B.

(100) Some frameworks may retain their default ordering in the list if they have not been tested. The default ordering may be based on, among other things, each framework's success rate in other geographic regions or overall. The list of candidate pulse transmission frameworks, their default ordering, and the individual or combined weighted scores indicating which sequences do and do not work at the location and within the region and/or with a specific POS terminal type may be reconciled between the contactless payment device 610 and a database on a remote server, either as part of the transaction process or as part of occasional updates.

(101) In the absence of geographic location information and terminal type information, rules on the device 610 may configure the controller 702 to give priority to the last frameworks used by the device that worked, and may sort the rest of the frameworks based on their weighted confidence score. By rule, the list may be limited to a specific number of frameworks, such as limited to three-to-five frameworks having the highest (best) weighted scores. The list may also be limited to frameworks that have weighted scores exceeding a threshold value.

(102) Based on the ordered priority, the controller 702 of the contactless payment device 610 selects (2132) a framework, retrieves the needed track data from storage, and applies (2140) the selected framework to transmit track data for the selected payment card. Application of the selected framework will be discussed in greater detail with FIGS. 22 and 23, and includes generating (2142) bit sequences based on the selected framework, determining (2144) baud rate modulations for at least the first sequence, and serially transmitting (2146) the baud-rate modulated bit sequences from the inductor 628, as well as any un-modulated bit sequences. Prior to transmission, one-or-more of the generated bit sequences and corresponding baud rate modulation (i.e., the description data 612) may be stored in device memory.

(103) Ideally, after the stream of magnetic pulses is emitted by the inductor 628, the channel decoders 631/632/633 successfully decode the received pulses and the payment transaction is approved. However, if the device 610 receives (2150 Yes) another indication to output card data within a specified duration (e.g., thirty seconds), the controller 702 determines that the transaction was not approved, since the device user is indicating to try again. The controller 702 stores (2152) that the selected framework did not work at the location and/or POS terminal type (updating the framework's weighted score(s)). The controller 702 may also store details regarding the baud rate modulation that was used.

(104) If another framework remains in the sorted list (2154 Yes), the device 610 selects (2160) the next framework and repeats the process. In the alternative, the device 610 may reuse the existing framework, and instead alter the baud rate modulations.

(105) If the contactless payment device 610 runs out of frameworks to try (2154 No) before the user loses patience and gives up, there are several options available, depending upon stored rules. For example, controller 702 may retry a framework at the top of the sorted list, but using different baud rates and baud rate modulations. As another example, if there is wireless network connectivity, the controller 702 may request (2156) additional sequence frameworks from a remote server. As a last resort, the contactless payment device 610 may output an error indication for the benefit of the device's user.

(106) If the device 610 does not receive (2150 No) another indication to output a card payment pulse sequence within a specified duration (e.g., thirty seconds), the assumption is made that the transaction was approved. The controller 702 stores (2170) that the framework did work at the location and/or with the identified POS terminal type (updating the framework's weighted score). The controller 702 may also store details regarding the baud rate modulation that was used. The time and date of the transaction may also be logged by the device 610, so as to allow a later comparison of the transaction with transactions approved by a transaction processor (2480 in FIG. 24), so as to validate the improved confidence value (i.e., the weighted score) associated with the framework.

(107) FIG. 22 is an example of how the controller 702 applies (2140) the selected framework. Frameworks specify at least two bit sequence (e.g., T2-T1, T2-T1R, T1N-T2, T1-T2R, etc.), but may specify more (e.g., T1N-T2-T1R, T2-T1N-T2R, T2-T1R-T2R, etc.). A framework may specify plural sequences to transmit data corresponding to a same card track, such as TIN and T1R in T1N-T2-T1R, and T2 and T2R in T2-T1R-T2R. The example of FIG. 22 illustrates use of three bit sequences, but the principles are the same for two.

(108) In accordance with the selected framework, the controller 702 generates (2210) a first bit sequence. For example, if the framework specifies T2, the Track 2 data for the selected card is generated (to be part of track data 611) in a forward bit-order, and if the framework specifies T2R, the Track 2 data for the selected card is generated (to be part of track data 611) in a reverse bit-order. The controller 702 may also determine (2214) a variable baud rate modulation for the first bit sequence. The baud rate modulation is expressed by the description data 612.

(109) For example, a rule may specify to the controller 702 that if the first bit sequence is composed of Track 2 data, the selected framework does not include a subsequent Track 3 bit sequence, and the target POS terminal has (or might have, if indeterminate) a three-channel MSR 630, then the baud rate should be modulated to cause a timeout of the Track 3 channel decoder 633, so as to avoid a T2==T3 conflict. This may be achieved either by modulating the baud rate to produce a frequency that is outside the Channel 3 decoder filter's passband, but inside the Channel 2 decoder filter's passband. Since TO.sub.2 TO.sub.3, the approach discussed with FIG. 18 may also or instead be used to avoid a T2==T3 conflict, dividing the Track 2 bit sequence into portions. The controller 702 may also employ the rate of change of baud approach discussed with FIGS. 19 and 20 to trigger a timeout in the Track 3 decoder, either with or without passband-based baud rate modulation.

(110) Another rule may specify to the controller 702 that if the first bit sequence is composed of Track 2 data, the selected framework does include a subsequent Track 3 bit sequence, and the target POS terminal has (or might have, if indeterminate) a three-channel MSR 630, then the baud rate should be modulated to cause the Track 3 channel filter 653 to filter out a portion of the Track 2 sequence (without triggering a timeout), so as to avoid a T2==T3 conflict. For example, baud rate modulation may be used to obscure either the Track 2 Start Sentinel 310 and/or the End Sentinel 326, with the modulation beginning during clocking bits preceding the respective sentinel, and/or extending into clocking bits that follows the other sentinel.

(111) Corresponding rules may be used if the first bit sequence is Track 3 data. However, if the selected framework does not include a subsequent Track 2 bit sequence, the controller 702 may modulate the baud rate to produce a frequency that is outside the Channel 2 decoder filter's passband, but inside the Channel 3 decoder filter's, to avoid a T2==T3, without use of the solution discussed with FIG. 18 (since TO.sub.2 TO.sub.3). The controller 702 may also employ the rate of change of baud approach discussed with FIGS. 19 and 20 to trigger a timeout in the Track 2 decoder, either with or without passband-based baud rate modulation.

(112) If the controller 702 has determined (per steps 2114 or 2124) that the MSR 630 of the target POS terminal is two-channel receiver lacking either a Track 2 or Track 3 channel decoder, or if the first bit sequence is composed of Track 1 data, rules may specify to the controller 702 to set the baud rate for the first bit sequence to a fixed value (i.e., not modulated), in which case the description data 612 value may be constant for an entirety of the first bit sequence.

(113) The F2F encoder 741 of the device 610 encodes (2212) the first bit sequence, modulates (2216) the transmission baud rate in accordance with description-data controlled clock signal 701, and transmits (2218) the encoded bit sequence in accordance with the modulated baud rate to the MST 620 to be emitted from the inductor 628. As illustrated in FIG. 7, encoding (2212) and modulation (2216) can be performed contemporaneously by controlling the clock 701 used by the F2F encoder 741. As an alternative, the first bit sequence can be F2F encoded, and then the F2F encoded pulses output to the MST 620 in accordance with the variable baud rate. This is also true for the second and third bit sequences (steps 2224, 2226, 2234, 2236).

(114) In a similar manner as described for the first bit sequence, the device 610 generates (2220) the second bit sequence, determines (2224) the variable baud rate modulation for the second bit sequence, encodes (2222) the second bit sequence, modulates (2226) the transmission baud rate, and transmits (2228) the encoded second bit sequence in accordance with the modulated baud rate from the inductor 628. The variable baud rate modulation for the second bit sequence is determined (2224) based on the preceding and subsequent channels.

(115) For example, if there are three bit sequences specified by the framework, and both the first and second bit sequences and the first and third bit sequences are for different channels (e.g., T1-T2-T2R or T1-T2R-T3R), the controller 702 may execute a rule to modulate the baud rate of the second bit sequence to trigger a timeout of the channel decoder corresponding to the preceding (first) bit sequence. Further, if the second bit sequence is composed of Track 2 or Track 3 data, the third bit sequence is not the other of Track 2 and Track 3 data (e.g., T1-T2-T2R but not T1-T2R-T3R), and there is a potential for a T2==T3 conflict, the controller 702 may also modulate the baud rate and/or the rate of change that baud changes to avoid the conflict by triggering a timeout in the other channel decoder (e.g., in the Track 3 decoder 633 if the second bit sequence comprises Track 2 data). The controller 702 avoids a T2==T3 conflict as discussed above with rules used by the controller 702 in conjunction with step 2214. Using the methodology from FIG. 18, baud rate modulation targeting one channel can be combined with gap generated in all channels (period p 1800) to selectively trigger timeouts in one channel or in multiple channels. The baud rate modulation of the second bit sequence may also be set to configure at least some of the data in the filtered signal of the other channel experiencing the conflict. Likewise, the controller 702 can control the rate of change of the baud modulation to trigger a timeout to avoid a T2==T3 conflict, either alone or in combination with passband-based modulation.

(116) However, if there are three bit sequences specified by the framework, and the first and second bit sequences are different, but the first and third bit sequences are for a same channel (e.g., T2-T1R-T2R), the controller 702 may execute a rule to set a fixed baud rate for the second bit sequence instead of triggering a timeout of the channel decoder for the first (and third) bit sequences, absent a potential T2==T3 conflict. If the second bit sequence is composed of Track 2 or Track 3 data, and there is a potential for a T2==T3 conflict, the controller 702 may modulate the baud rate and/or the baud rate of change as discussed above.

(117) If there is a third bit sequence specified in the selected framework (2229 Yes), the controller generates (2230) the third bit sequence, encodes (2232) the third bit sequence, and transmits (2238) the encoded bit third sequence to be emitted by the inductor 628 as discussed above in connection with the second bit sequence, ignoring rule provisions dependent on subsequent bit sequences. As illustrated, the third bit sequence is the final bit sequence specified by the selected framework for inclusion in the stream.

(118) Although FIG. 22 shows bit sequence assembly as alternating between generation (2210/2220/2230) and transmission (2218/2228/2238), the controller 702 may generate the sequences, store them all in memory, and thereafter sequentially transmit them in series via the inductor.

(119) FIG. 23 is an example of the process executed by the controller 702 as part of steps 2224 and 2234 in FIG. 22. Avoidance of a T2==T3 conflict is not specifically addressed in FIG. 23, as the example in FIG. 23 focusses on generating a timeout in a prior channel's decoder. However, as called for by rule, the controller 702 will combine the process in FIG. 23 with the T2==T3 conflict avoidance techniques discussed above. The example in FIG. 23 is for a framework that includes bit sequence for two payment card track channels, such as T2-T1, T2-T1R, T1N-T2, T1-T2R, T1N-T2-T1R, T2-T1N-T2R, or T2-T1R-T2R.

(120) The device 610 determines that a channel of a prior A bit sequence is different from the channel of the current B bit sequence (2308 Yes), and that a subsequent bit sequence (if any) is for a different channel than the A bit sequence (2310 Yes). If there is no subsequent bit sequence, step 2310 is skipped entirely. For example, in step 2224 for a T2-T1R framework, the first bit sequence T2 will comprise Track 2 102 data in forward bit-order, and the second bit sequence T1R will comprise Track 1 101 data in reverse bit-order. So the channel A data is for the Track 2 decoder 632, and the channel B data is for the Track 1 decoder 631, so the controller will proceed to step 2312.

(121) As another example for step 2224 with a T1N-T2-T1R framework, the first bit sequence T1N will be based on the Track 1 format, the second bit sequence T2 will be comprise Track 2 102 data in forward bit-order, and the third bit sequence T1R is Track 1 data in reverse bit-order. The T1N sequence and the T1R sequence are both directed to the Track 1 channel decoder 631, with the T1R sequence included for redundancy in case the decoder 631 does not detect or recognize T1N. However, triggering a timeout in the Track 1 channel decoder 631 would mean that the T1R sequence will not be processed, even if T1N is not recognized. Therefore, the process (2310 No) may set (2380) a fixed baud rate for the T2 bit sequence. However, when this process is repeated at step 2234 for the third bit sequence (T1R), the process will proceed to step 2312, setting a baud rate modulation to trigger a timeout of the Track 2 channel decoder 632.

(122) At step 2312, the controller 702 determines the card-present timeout thresholds TO.sub.A and TO.sub.B for the first and second track sequence channels, as discussed with FIGS. 16 and 17. This may have previously been determined by the controller 702 as part of sorting (2130) the track frameworks when giving priority to frameworks that arrange the track data for the channel with the shorter timeout threshold before the data for a track channel with a longer timeout threshold.

(123) The controller 702 may calculate the average amount of time taken to transmit a non-zero integer number of single characters for a channel to estimate the channel's card-present timeout threshold. The controller 702 may estimate this, among other ways, from the typical time to swipe an entire track of a magnetic stripe 11 divided by the information content 115 of that channel.

(124) The controller 702 determines (2314) the rate-of-change limits .sub.UA and .sub.DA for the first channel, and .sub.LB and .sub.DA for the second channel, as discussed with FIGS. 19 and 20 (e.g., specified in the selected framework, identified in a table or database). The controller 702 also determines (2316) estimated decoder filter bandpass limits F.sub.LA and F.sub.HA for the first channel, and F.sub.LB and F.sub.HB for the second channel, as discussed in connection with FIGS. 10 and 11 (e.g., specified in the selected framework, identified in a table or database).

(125) How the controller 702 determines each of the parameters in 2312, 2314, and 2316 is independent of the other parameters. One-or-more of the parameters may be included in the selected framework, the parameters may be looked up in a table or database stored on the device 610, or estimated from the available information. Look-ups in table(s) may be based on one-or-more of the most likely POS terminal-types for the geographic location (as determined at 2114), the type of terminal identified by image processing (as determined at 2114 or 2124), or based on terminal types specified in or associated with the selected framework (as selected at 2132).

(126) As discussed above, the controller 702 may estimate the timeout limits TO.sub.A and TO.sub.B based on the longest duration of time to transmit a single character in the respective character format times a non-zero integer value, which can be approximated as the number of bits per character (114) divided by the slowest baud rate accepted by the channel's decoder 631/632/633 times the integer. A margin value (e.g., +10%) may be added to increase the likelihood of triggering a timeout. Another approach the controller 702 may use to estimate the timeout limits TO.sub.A and TO.sub.B is based the average amount of time to transmit an entire track of stripe 11 data, divided by the information content 115 of the B channel track, and multiplied by the integer value, plus some margin-for-error (e.g., +10%).

(127) The controller 702 determines (2320) whether the magnitude of the channel B rate-of-change limit .sub.UB for increasing the transmission rate is greater than the magnitude of the channel A rate-of-change limit .sub.UA. If it is (2320 Yes), the magnitude of the peak slope .sub.UOUT for increasing the baud while transmitting the current bit sequence is set (2322) to be less than .sub.UB and greater than .sub.UB. For example, .sub.UOUT can be set to (|.sub.UA+.sub.UB|)/2, such that .sub.UOUT will be the average of .sub.UA and .sub.UB. Otherwise (2320 No), the peak slope .sub.UOUT for increasing the baud while transmitting the current bit sequence is set to be less than .sub.UA and less than .sub.UB, such as setting .sub.UOUT to be 75% of .sub.UB.

(128) The controller 702 may also determine (2330) whether the magnitude of the channel B rate-of-change limit .sub.DB for decreasing the transmission rate is greater than the magnitude of the channel A rate-of-change limit .sub.DA. If it is (2330 Yes), the magnitude of the peak slope .sub.DOUT for decreasing the baud while transmitting the current bit sequence is set to be less than .sub.DB and greater than .sub.DA. For example, .sub.DOUT can be set to (.sub.DA+.sub.DB)/2, such that .sub.DOUT will be the average of .sub.DA and .sub.DB. Otherwise (2330 No), the peak slope .sub.DOUT for decreasing the baud while transmitting the current bit sequence is set to be less than .sub.DA and less than .sub.DB, such as setting .sub.DOUT to be 75% of |.sub.DB|.

(129) The controller 702 sets (2340) the baud modulation to start at a first baud that is greater than the channel A and B low frequency filter cutoff-threshold limits F.sub.LA and F.sub.LB, and less than the high frequency filter cutoff-thresholds limits F.sub.HA and F.sub.HB. For example, the description value 612 that controls the frequency of clock signal 701 may be set to produce a first baud that is an average of F.sub.LA, F.sub.LB, F.sub.HA, and F.sub.HB, thus making the first baud compatible with both the A and B channel decoders.

(130) The controller 702 determines (2350) whether the channel B high frequency filter limit F.sub.HB is greater than the corresponding limit F.sub.HA of channel A. If it is (2350 Yes), a second baud is set (2352) to be greater than F.sub.HA and less than F.sub.HB, such as by averaging F.sub.HA and F.sub.HB. The baud modulation for transmission of the current B sequence is set (2360) to increase from the first to the second baud with a peak rate of change (slope) of .sub.UOUT. The modulation is then set (2364) to maintain the second baud for a period of at least TO.sub.A. Thereafter, the modulation is set (2366) to decrease from the second baud back to the first baud, with a peak rate of change (slope) of .sub.DOUT.

(131) The controller 702 may use a linear increase at the rates .sub.UOUT and .sub.DOUT to transition from the first baud to the second baud, and from the second baud to the first baud, or execute a curve fitting algorithm. For example, to rise gradually transition from the first baud to the second baud, the controller 702 may execute a curve fitting algorithm to produce a gradual increase from the first baud to a mid-baud line segment with slope .sub.UOUT, and may reuse (rotate) the resulting curve values to produce the increase from the line segment to the second baud. Likewise, to rise gradually decrease from the second baud to the first baud, the controller 702 may execute a curve fitting algorithm to produce a gradual decrease from the second baud to a mid-baud line segment with slope .sub.DOUT, and may reuse (rotate) the resulting curve values to produce the gradual decrease from the line segment to the first baud. The modulation values/curves are digitized to produce description signal 612.

(132) If the controller 702 determines (2350 No) that the channel B high frequency filter limit F.sub.HB is not greater than the corresponding limit F.sub.HA of channel A, the controller 702 determines (2354) whether the channel B low frequency filter limit F.sub.LB is less than the corresponding limit F.sub.LA of channel A If it is (2354 Yes), the second baud is set (2356) to be less than F.sub.LA and greater than F.sub.LB, such as by averaging F.sub.LA and F.sub.LB. The baud modulation is set (2362) to decrease from the first to the second baud with a peak rate of change (slope) of .sub.DOUT. The modulation is set (2364) to maintain the second baud for a period of at least TO.sub.A. Thereafter, the modulation is set (2370) to increase from the second baud back to the first baud, with a peak rate of change (slope) of .sub.UOUT. As discussed above, controller 702 may linearly decrease (2362) and increase (2370) the baud, or may execute a curve fitting algorithm to gradually decrease (2362) and increase (2370) the baud. The modulation values/curves are quantized/digitized by the controller 702 to produce the description signal 612.

(133) If the controller 702 determines (2354 No) that the channel Blow frequency filter limit F.sub.LB is not less than the corresponding limit F.sub.LA of channel A, the second baud is set (2358) to be greater than F.sub.LA, greater than F.sub.LB, less than F.sub.HA, less F.sub.HB, and greater than the first baud, such as by adding 75% of the difference between the value used for the first baud frequency and F.sub.HB to the first baud to produce the second baud. The baud modulation is set (2360) to increase from the first to the second baud with a peak rate of change (slope) of .sub.UOUT. Thereafter, the modulation is set (2366) to gradually decrease from the second baud back to the first baud, with a peak rate of change (slope) of .sub.DOUT. As discussed above, the controller 702 may linearly increase (2360) and decrease (2364) the baud. The modulation values/curves are quantized/digitized by the controller 702 to produce the description signal 612.

(134) In the circumstances that |.sub.DB| is not greater than |.sub.DA| (2320 No), IL1oBI is not greater than IL1oAI (2330 No), F.sub.HB is not greater than F.sub.HA (2350 No), and F.sub.LB is not less than F.sub.LA (2354 No), but TO.sub.B is longer than TO.sub.A, the channel B data can made more susceptible to rejection by the channel A decoder using the technique discussed in connection with FIG. 18, if TO.sub.B is longer than TO.sub.A. To use such an approach, the second bit sequence is divided into two portions, and the baud rate is increased therebetween to exceed both FHA and FHB for a period longer than TO.sub.A and shorter than TO.sub.B, such as for a duration that is the average of TO.sub.A and TO.sub.B. This approach may also be used when a framework calls for bit sequences for three payment card track channels, such as T3-T1R-T2R, and at least one of the various parameters (.sub.U, .sub.D, F.sub.L, F.sub.H) distinguishes the first bit sequence from one but not both of the subsequent sequences.

(135) The method of FIG. 23 can be readily adapted to work with frameworks that call for bit sequences for three payment card track channels, such as T3-T1R-T2R. In such arrangements, at least one of the second baud, .sub.UOUT, and .sub.DOUT is selected to distinguish the second bit sequence from the first bit sequence, and at least one is selected to distinguish the third bit sequence from the second bit sequence.

(136) As noted above, a plurality of zeros can serve as clocking bits, preceding and/or following a track bit sequence. The device 610 applies F2F encoding to such zeros in the same manner as the track data and other bits included in the data signal 611. While the transitions between the first and second baud are discussed as being configured to take place during a bit sequence directed to a different channel than the one intended to timeout, a transition between the first and second baud can begin in such clocking bits that precede the bit sequence directed to the different channel. The controller 702 may implement the baud rate modulations by modulating, controlling, and/or generating the clock signal 601 in synchronization with the data signal 611, or by modulating the effective clock 701 by controlling the duration corresponding to each bit in the data signal 611/814.

(137) In some frameworks, the modulation may be set to increase or decrease from the first baud to the second baud (2360, 2362) without decreasing (2366) or increasing (2370) back to the first baud. For example, in a T2-T2R-T1R, where the first bit sequence (T2) and second bit sequence (T2R) will be directed to the same MSR channel, and the third bit sequence (T1R) is directed to a different channel, then the baud applied to the first bit sequence may be the same as the second bit sequence, such as the first baud. Then, during the third bit sequence, the baud may modulate from the first baud to the second baud to trigger a timeout of the Track 2 decoder 633, but then remain at the second baud. If there is a possibility of a T2==T3 conflict, the baud rate may be modulated during the first bit sequence where the conflict might occur (e.g., T2 in T2-T2R-T1R), but can otherwise proceed in the same way.

(138) FIG. 24 is a block diagram illustrating example components in a system 2400 including the contactless payment device 610 that generates the improved pulse sequence transmission, and a POS terminal 2440 that includes the MSR 630.

(139) A controller 702 on the device 610 executes instructions to perform the processes and output the improved pulse sequence transmissions with the variable baud rate modulations discussed in connection with FIGS. 6 to 23. This includes arranging the track data 611 into a data stream, and setting the description data 612 for the track data. This may also include executing instructions to control, generate, and/or down-convert the clock and to perform F2F encoding, if some or all of the logic 618 is integrated into the controller 702 (discussed in connection with FIG. 8). The controller 702 may include a central processing unit (CPU) for processing data and executing instructions.

(140) A memory 2404 stores the instructions that are executed by the controller 702, and the data that is used and generated by those instructions. The memory 2404 may include volatile (transitory) and/or non-volatile (non-transitory) random access memory (RAM) and/or other types of memory. The device 610 also includes a data storage component 2408, for long term storage of the data and the controller-executable instructions and associated data (e.g., frameworks, look-up tables, parameter databases, rules, etc.). The data storage component 2408 comprises a non-volatile (non-transitory) storage, such as read only memory (ROM), flash memory, phase-change memory, Ferroelectric RAM (FeRAM or FRAM), etc. The device 610 may also be connected to removable or external non-volatile memory and/or storage, such as a removable memory card, a USB thumb drive, networked cloud storage, etc., through input/output (I/O) interfaces 2406.

(141) The controller-executable instructions that configure the device 610 and its various components are executed by the controller or controllers 702, using the memory 2404 as temporary working storage at runtime. The controller-executable instructions may be stored in the memory 2404, the storage component 2408, and/or an external device. Some of the instructions may be embedded in hardware or firmware in addition to or instead of software.

(142) The I/O interfaces 2406 may include interfaces for an external peripheral device connection such as universal serial bus (USB), as well as interfaces for wireless local area network (such as WiFi), Bluetooth, and/or cellular network (such as Long Term Evolution (LTE)) connectivity via the antenna(s) 2420. The I/O interfaces 2406 may also provide interfaces to a display 2422 including touch sensors 2424, and to one or more cameras 2480.

(143) The antenna(s) may also be used by a location detector 2418, which may include one or more specialized radio receivers, such as a GPS receiver or GLONASS receiver. Instructions executed by the controller(s) 702 may determine (2112) the device's geographic location based on location information determined by the location detector 2418. Location information may be used to identify (2114) POS terminal types and/or frameworks associated with the geographic location to determine which track data is likely to be needed, so as to select (2132) a stream framework (e.g., T2-T1, T2-T1R, T1N-T2, T1-T2R, T1N-T2-T1R, T2-T1N-T2R, T2-T1R-T2R, etc.) based on what has worked successfully at or near that location before.

(144) The device 610 may also include an image processor 2482, either as a component (e.g., a digital signal processor), or as instructions stored in storage 2408 that configure the controller 702 to perform image processing. The image processor 2482 may be used to process images captured by the one or more cameras 2480 to perform the pattern recognition (2122) to identify (2124) a POS terminal based on distinctive physical features/shape. The controller 702 may select (2132) the framework and set the description data 612 based on such recognition of the POS terminal.

(145) In addition, the image processor 2482 may be used to identify the proximity and orientation of the POS terminal's MSR 630 based on pattern recognition. Instructions stored in storage 2408 may be used to configure the controller 702 to cause the display of information on the display 2422 instructing a user how to position the device 610 relative to the MSR 630 of the POS terminal 2440 improve the likelihood that the POS terminal 2440 will correctly receive the magnetic pulse sequence when it is emitted via the inductive loop 628. The instructions may be in the form, for example, of an augmented reality interface that displays the live image of the MSR 630 as captured by the camera 2480 on the display 2422, together with an overlay indicating whether the user should move the device up, down, closer, further, etc. relative to the MSR 630.

(146) The device 610 may include an address/data bus 714 for conveying data among components of the device 610. Each component within the device 610 may also be directly connected to other components in addition to (or instead of) being connected to other components across the bus 714.

(147) A list of pulse transmission sequence stream frameworks may be stored in memory 2404 and/or storage component 2408, and updated/reconciled against data stored on a database server 2490, reached via a connection over one-or-more networks 2499. The controller 702 sequentially sends the serial data 611 and the description data 612 to the logic circuit 618 in accordance with the selected stream framework, and/or may send the baud-modulated F2F-encoded signal 814 to the logic circuit 818. In response to receiving the F2F-encoded pulses over connection 619, the driver 621 applies a time-modulated alternating current to the inductive loop 628. The application of the alternating current to the loop 628 generates the magnetic pulse transmission.

(148) The example POS terminal 2440 includes the MSR 630. As previously discussed, the MSR 630 includes two or three of the read heads 501, 502, and 503. The Track 1 channel read head 501 outputs a signal to a Track 1 channel decoder 631. The Track 2 channel read head 502 outputs a signal to a Track 2 channel decoder 632. The Track 3 channel read head 503 outputs a signal to a Track 3 channel decoder 633. It should be appreciated that other components may be implemented in various configurations in different models by different manufacturers of POS terminals. The MSR 630 may be integrated with the POS terminal 2440, or may be separate. The MSR 630 may communicate with components of the POS terminal 2440 via input/output (I/O) interfaces 2446.

(149) The POS terminal 2440 includes a controller 2442 that includes a central processing unit (CPU) for processing data and executing instructions, and a memory 2444 that stores the data and the controller-executable instructions. The memory 2444 may include volatile random access memory (RAM) and/or other types of memory. The POS terminal 2440 also includes a data storage component 2448 that provides long-term storage of the data and the controller-executable instructions. The data storage component 2448 may include one or more non-volatile storage types such as read only memory (ROM), flash memory, a hard disk drive (HDD), etc. The POS terminal 2440 may also be connected to removable or external non-volatile memory and/or storage, such as a USB thumb drive, an optical disc drive, networked cloud storage, etc., through the I/O interfaces 2446.

(150) The controller-executable instructions that configure the POS terminal 2440 and its various components are executed by the controller 2442, using the memory 2444 as temporary working storage at runtime. The controller-executable instructions may be stored in the nonvolatile memory 2444, the storage component 2448, and/or an external device. Some of the instructions may be embedded in hardware or firmware in addition to or instead of software. Some or all of the functionality of the channel decoders 631, 632, and 633 may be performed by the controller 2442 instead of or in conjunction with dedicated decoder circuitry within the MSR 630.

(151) The POS terminal 2440 may include an address/data bus 2438 for conveying data among components of the terminal 2440. Each component within the POS terminal 2440 may also be directly connected to other components in addition to (or instead of) being connected to other components across the bus 2438.

(152) The POS terminal 2440 may use an input/output (I/O) interface 2446 to communicate with a transaction processor 2480 via network(s) 2499. Instructions executed by the controller 2442 receive the decoded pulse information from the MSR 630, extract the information needed for transaction approval, and forward at least a portion of the extracted information to the transaction processor 2480. The transaction processor 2480 sends back information indicating whether the transaction is approved or denied. The POS terminal 2440 may output an indication of whether the transaction is approved or denied, such as outputting a message via a display (not illustrated), by activating an indicator, by outputting a sound, etc.

(153) The example stream frameworks and baud modulations disclosed herein are intended to teach the principles of how to create and transmit the improved pulse transmission sequences to one of ordinary skill, rather than to be exhaustive. Many modifications and variations may be apparent to those of skill in the art, such as changing the order of process steps, while still achieving the benefits and advantages of the improved system. For example, while several of the examples focus on the transmission of Track 1 data and Track 2 data, the operational principles apply to the transmission of any data stream that includes data for two or three tracks. Moreover, aspects of the system may be practiced without some or all of the specific details and steps disclosed herein.

(154) For example, the programmable frequency divider 740 can be replaced by a programmable clock generator, with the description data 712 controlling the output frequency of the clock generator. A clock generator can more flexibly control the frequency of clock signal 701 than a frequency divider, such as outputting clock frequencies in equally spaced steps of 100 Hz. However, a digital frequency divider 740 can be simpler to implement, such as by flip-flops or shift registers in a digital circuit, or as programmed counters by controller 702.

(155) The transmitter, method, and system may be used to transmit track data associated with the magnetic stripe data of debit cards, credit cards, or bitstreams from any magnetic stripe medium where different tracks of the stripe have different content and/or formats. Examples of difference between formats includes there being a difference in at least at least one of the standards (e.g., 112) associated with the tracks, the recording densities (e.g. 113) of the tracks, and the character configurations (e.g., 114) of the tracks. The disclosed methods and resulting encoding are particularly useful in systems susceptible to cross-channel leakage. As such, the disclosed methods and sequence modulations may also be adapted for use with electronic cards.

(156) As used in this disclosure, the term a may include one or more items unless specifically stated otherwise. Further, the phrase based on is intended to mean based at least in part on unless specifically stated otherwise.

(157) The matter set forth in the foregoing description and accompanying drawings is offered by way of illustration only and not as a limitation. While particular embodiments have been shown and/or described, it will be apparent to those skilled in the art that changes and modifications may be made without departing from the broader aspects of the invention. The actual scope of the protection sought is intended to be defined in the following claims when viewed in their proper perspective.