US9016569B2 - Encoding data in multiple formats - Google Patents

Encoding data in multiple formats Download PDF

Info

Publication number
US9016569B2
US9016569B2 US14/313,882 US201414313882A US9016569B2 US 9016569 B2 US9016569 B2 US 9016569B2 US 201414313882 A US201414313882 A US 201414313882A US 9016569 B2 US9016569 B2 US 9016569B2
Authority
US
United States
Prior art keywords
format
signal
user device
card
corresponds
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
US14/313,882
Other versions
US20150041542A1 (en
Inventor
Thomas Templeton
Daniel Jeffrey Post
Dominique Gilbert Toppani
Alex Sutton
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Synapse Product Development LLC
Block Inc
Original Assignee
Square Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US14/313,882 priority Critical patent/US9016569B2/en
Application filed by Square Inc filed Critical Square Inc
Priority to PCT/US2014/046759 priority patent/WO2015020763A1/en
Priority to CA2919772A priority patent/CA2919772C/en
Priority to EP14834479.9A priority patent/EP3031011A4/en
Priority to AU2014305686A priority patent/AU2014305686B2/en
Publication of US20150041542A1 publication Critical patent/US20150041542A1/en
Priority to US14/671,798 priority patent/US9361614B2/en
Application granted granted Critical
Publication of US9016569B2 publication Critical patent/US9016569B2/en
Assigned to JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT reassignment JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT PATENT SECURITY AGREEMENT Assignors: SQUARE, INC.
Assigned to SYNAPSE PRODUCT DEVELOPMENT LLC reassignment SYNAPSE PRODUCT DEVELOPMENT LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SUTTON, ALEX, TOPPANI, DOMINIQUE GILBERT
Assigned to SQUARE, INC. reassignment SQUARE, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: TEMPLETON, THOMAS, POST, DANIEL JEFFREY
Assigned to SQUARE, INC. reassignment SQUARE, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SYNAPSE PRODUCT DEVELOPMENT LLC
Priority to US15/161,891 priority patent/US9582798B2/en
Assigned to SQUARE, INC. reassignment SQUARE, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Assigned to BLOCK, INC. reassignment BLOCK, INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: SQUARE, INC.
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/353Payments by cards read by M-devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/01Details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/357Cards having a plurality of specified features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/08Methods or arrangements for sensing record carriers, e.g. for reading patterns by means detecting the change of an electrostatic or magnetic field, e.g. by detecting change of capacitance between electrodes
    • G06K7/082Methods or arrangements for sensing record carriers, e.g. for reading patterns by means detecting the change of an electrostatic or magnetic field, e.g. by detecting change of capacitance between electrodes using inductive or magnetic sensors
    • G06K7/087Methods or arrangements for sensing record carriers, e.g. for reading patterns by means detecting the change of an electrostatic or magnetic field, e.g. by detecting change of capacitance between electrodes using inductive or magnetic sensors flux-sensitive, e.g. magnetic, detectors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/20Point-of-sale [POS] network systems
    • G06Q20/204Point-of-sale [POS] network systems comprising interface for record bearing medium or carrier for electronic funds transfer or payment credit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/356Aspects of software for card payments
    • G06Q20/3567Software being in the reader
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0866Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means by active credit-cards adapted therefor
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0873Details of the card reader
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0873Details of the card reader
    • G07F7/0893Details of the card reader the card reader reading the card in a contactless manner
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Definitions

  • This disclosure relates to modulation techniques for communication between devices.
  • Mobile card readers are available for magnetic stripe cards.
  • a user provides a payment card with a magnetic stripe at the point-of-sale to a merchant.
  • the merchant processes the card using a card reader, e.g., the card is swiped on a detachable card reader coupled to a merchant device, which can be a mobile device.
  • a payment request is sent electronically to a credit card processor.
  • the credit card processor routes the payment request to a card network, e.g., Visa or Mastercard, which in turn routes the payment request to the card issuer, e.g., a bank. Assuming the card issuer approves the transaction, the approval is then routed back to the merchant.
  • a card network e.g., Visa or Mastercard
  • the approved transaction is again routed from the merchant to the credit card processor, card network and card issuer, and the payment request can include the cardholder's signature (if appropriate).
  • the capture state can trigger the financial transaction between the card issuer and the merchant, and optionally creates a receipt.
  • This specification relates to modulation techniques for improving the reliability of communication between a detachable card reader and a user device.
  • Mobile card readers can be detachably connected to mobile user devices, which can be common consumer devices, e.g., smartphones or tablet computers.
  • mobile user devices can be common consumer devices, e.g., smartphones or tablet computers.
  • communication between a card reader and such devices can be unreliable because of the widely varying hardware capabilities of user devices with which the card reader may need to communicate.
  • the card reader can encode the card information into multiple data packets that are then modulated at different respective data rates and sent to the user device as a single combined signal. If, due to hardware or software limitations of the user device, the user device is unable to demodulate a packet of data at a fast data rate, the user device can demodulate the card information using a portion of the signal modulated at a lower data rate.
  • one innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving, from a read head of the card reader coupled to the user device through an audio jack of the user device, card information encoded on a payment card; encoding the card information in a fast format packet to be sent to the user device at a first data rate; encoding the card information in a slow format packet to be sent to the user device at a second data rate lower than the first data rate; modulating the fast format packet and the slow format packet into a signal and sending the signal over the audio channel of the user device; initiating, at the user device, a demodulation process on a portion of the signal that corresponds to the fast format packet; determining that the demodulation process on the portion of the signal that corresponds to the fast format packet has failed; in response to determining that the demodulation process on the portion of the signal that corresponds to the fast format packet has failed, demodulating a portion of the signal that corresponds to the slow format packet; and decoding the card information
  • inventions of this aspect include corresponding computer systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the methods.
  • a system of one or more computers to be configured to perform particular operations or actions means that the system has installed on it software, firmware, hardware, or a combination of them that in operation cause the system to perform the operations or actions.
  • one or more computer programs to be configured to perform particular operations or actions means that the one or more programs include instructions that, when executed by data processing apparatus, cause the apparatus to perform the operations or actions.
  • the actions include receiving the portion of the signal that corresponds to the slow format packet before or while performing the demodulation process on the portion of the signal corresponding to the fast format packet.
  • Encoding the card information in a slow format packet comprises generating a preamble segment for the slow format packet that is longer than a preamble segment of the fast format packet.
  • Encoding the card information in a slow format packet comprises generating multiple data segments, wherein each data segment encodes a portion of the card information; and generating a respective preamble and synchronization segment for each data segment of the multiple data segments.
  • Another innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving, from a read head of the card reader, card information associated with a card; encoding the card information in a first format to be sent to the user device at a first data rate; encoding the card information in a second format to be sent to the user device at a second data rate lower than the first data rate; sending, to the user device, the card information encoded in the first format and the second format.
  • Other embodiments of this aspect include corresponding computer systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the methods.
  • Sending, to the user device, the card information encoded in the first format and the second format comprises sending a signal over an audio channel of the user device.
  • Sending, to the user device, the card information encoded in the first format and the second format comprises sending a signal over a data communications port of the user device.
  • Sending, to the user device, the card information encoded in the first format and the second format comprises sending a portion of a signal that corresponds to the slow format before or while the user device is performing a demodulation process on a portion of the signal corresponding to the fast format.
  • Encoding the card information in a slow format comprises generating a preamble segment for the slow format that is longer than a preamble segment of the fast format.
  • Encoding the card information in a slow format comprises generating multiple data segments, wherein each data segment of the multiple data segments encodes a portion of the card information; and generating a respective preamble and synchronization segment for each data segment of the multiple data segments.
  • Sending, to the user device, the card information encoded in the first format and the second format comprises sending a portion of the signal corresponding to the fast format before a portion of the signal corresponding to the slow format.
  • another innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving, from a card reader, a signal encoding card information associated with a card, wherein the card information is encoded in a first format received at a first data rate and a second format received at a second data rate that is lower than the first data rate; initiating a demodulation process on a portion of the signal that corresponds to the fast format; determining that the demodulation process on the portion of the signal that corresponds to the fast format has failed; in response to determining that the demodulation process on the portion of the signal that corresponds to the fast format has failed, demodulating a portion of the signal that corresponds to the slow format; and decoding the card information from the demodulated slow format.
  • Other embodiments of this aspect include corresponding computer systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the methods.
  • the actions include receiving a portion of the signal that corresponds to the slow format before or while performing the demodulation process on a portion of the signal corresponding to the fast format.
  • Receiving, from the card reader, the signal encoding card information associated with a card comprises receiving the signal over an audio channel of the user device.
  • Receiving, from the card reader, the signal encoding card information associated with a card comprises receiving the signal over a data communications port of the user device.
  • the slow format comprises an initial preamble segment that is longer than an initial preamble segment for the fast format.
  • Decoding the card information comprises identifying multiple data segments designated by respective synchronization segments, wherein each data segment of the multiple data segments encodes a portion of the card information; and assembling the card information using the multiple data segments.
  • a card reader configured to encode card information associated with a card obtained from a read head into a fast format to be sent to a user device at a first data rate, encode the card information in a slow format to be sent to the user device at a second data rate lower than the first data rate, and send, to the user device, the card information encoded in the first format and the second format.
  • Other embodiments of this aspect include corresponding computer systems, methods, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the card reader.
  • the card reader is further configured to send a portion of a signal that corresponds to the slow format before or while the user device is performing a demodulation process on a portion of the signal corresponding to the fast format packet.
  • the card reader is configured to encode the card information in the slow format including generating multiple data segments, wherein each data segment of the multiple data segments encodes a portion of the card information, and generating a respective preamble and synchronization segment for each data segment of the multiple data segments.
  • Modulating multiple information packets at different data rates increases the reliability of communication between a card reader and a user device. This can increase the likelihood that card information is read correctly on a first swipe and increases the types of user devices from which card information can be read reliably.
  • Using multiple data segments, each having a respective preamble and synchronization segment can further increase the reliability of reading card information by continually adjusting for clock drift when reading a signal.
  • the multiple data packets improves the reliability of reading card information without requiring back-and-forth communication between the devices, e.g., without requiring the user device to acknowledge receipt and successful demodulation of the card information. This in turn gives both the merchant and the customer a less time-consuming and overall better user experience.
  • FIG. 1 is a schematic illustration of an example cardless payment system architecture.
  • FIG. 2 is a diagram of a fast format packet and a slow format packet.
  • FIG. 3 is a flow chart of an example process for generating a signal that includes a fast format packet and a slow format packet.
  • FIG. 4 is a flow chart of an example process for obtaining card information from a signal that includes a fast format packet and a slow format packet.
  • FIG. 4 is a flow chart of an example process for obtaining card information from a signal that includes a fast format packet and a slow format packet.
  • FIG. 1 is a schematic illustration of an example system 100 for conducting a transaction using a card reader 110 .
  • the system 100 is capable of processing a payment transaction between a mobile computing device 102 and a card reader 110 .
  • the mobile computing device 102 can be a smart phone, tablet computer or laptop, or other data processing apparatus.
  • the card reader 110 can be detachably connected to the mobile computing device 102 .
  • the card reader 110 is a device that reads data from a storage medium on a credit-card shaped card, e.g., from a magnetic stripe or embedded chip.
  • the card reader 110 may not have a display or a keyboard, but the card reader 110 has an interface for inserting or swiping a card.
  • the system 100 can process the card according to the Europay, Mastercard, Visa (EMV) protocol.
  • EMV Europay, Mastercard, Visa
  • the card reader 110 is attached to the mobile device 102 by a port of the mobile device 102 .
  • the port can be any appropriate type of port for sending signals to the mobile device.
  • the port can be a port for sending audio signals, e.g., an audio jack or headset jack of the mobile device 102 .
  • the port can also be a port for sending optical signals, e.g., an optical fiber port.
  • the port can also be another kind of port for sending electrical signals to the mobile device.
  • the port can be a data communications port, e.g., a universal serial bus (USB) port, a charging port, or a port that has a combination of these or other functions, e.g., a data communications and power charging port.
  • USB universal serial bus
  • the card reader 110 can read, on the card, a magnetic stripe or chip to obtain card information, e.g., a card number and a card expiration date.
  • the card reader 110 then generates multiple data packets that encode the card information in a particular format and which are intended to be modulated at different respective data rates.
  • Each packet can include multiple segments including preambles, synchronization segments, and multiple data segments that encode card information associated with the card.
  • a data packet is a data structure that includes one or more segments of data, e.g., a preamble, synchronization, and data segments, but does necessarily imply a packet that is sent over a network of devices and need not include network addressing or routing information.
  • the card reader 110 then generates a signal, e.g., an electrical signal, by modulating the multiple packets at their respective data rates, and sends the signal to the mobile device 102 , e.g., over an audio channel or another port that connects the card reader 110 to the mobile device 102 .
  • the mobile device 102 receives the signal and demodulates the signal to reconstruct one or more of the data packets.
  • the mobile device 102 can demodulate a portion of the signal corresponding to any one of the packets.
  • the mobile device 102 If the mobile device 102 is unable to demodulate a portion of the signal having a particular data rate, e.g., because the data rate is too fast for the electronics of mobile device 102 to demodulate correctly, the mobile device 102 can demodulate a different portion of the signal having a lower data rate.
  • the card reader 110 can provide the mobile device 102 with a robust signal with built-in redundancy to improve the reliability of communication between the card reader 110 and the mobile device 102 .
  • the mobile device 102 can then transmit an authorization for the transaction to a secure server 114 for payment processing using an external network, e.g., the Internet 112 .
  • the secure server 114 can relay the transaction to the card issuer 116 , which ultimately approves or denies the transaction.
  • the card issuer 116 can communicate the approval or denial to the secure server 114 , which can relay the card issuer's response to the mobile device 102 .
  • the mobile device 102 includes a display 104 and a user interface controller 106 .
  • the user interface controller 106 can generate a user interface for directing the user in swiping cards for a payment transaction.
  • the mobile device 102 can display the generated interface on the display 104 .
  • the generated interface can instruct the user to swipe a card, inform the user that a swipe failed, and instruct the user that a card is expired, just to name a few examples.
  • FIG. 2 illustrates example formats of example data packets.
  • a card reader can generate a fast format packet 220 and a slow format packet 230 having the same general arrangement as shown by an example data packet 210 .
  • the card reader can then use the fast format packet 220 and the slow format packet 230 to generate a signal 240 that can be modulated and sent to a user device, e.g., over an audio channel of the user device.
  • the example data packet 210 includes multiple data segments that encode card information associated with a payment card.
  • the card information can include a card number of the card, an expiration date of the card, a name of the card holder, in addition to other types of data.
  • the data packet 210 also includes other segments for determining a data rate, synchronizing signal measurements with the data rate, and error checking
  • An initial automatic gain control (AGC) segment 211 can be used for performing automatic gain control on the user device to adjust the gain of the received signal to an appropriate level. If the signal is weak, the user device can increase the gain, and if the signal is too strong, the user device can decrease the gain. Thus, the AGC segment 211 may not encode any data.
  • the card reader can encode card information obtained from a payment card into multiple data segments, e.g., a data segment 214 and a data segment 217 , that are each preceded by a preamble and a synchronization segment.
  • the data segment 214 is preceded by a preamble segment 212 and a synchronization segment 213
  • the data segment 217 is preceded by its own preamble segment 215 and 216 .
  • the card reader can break up the card information from the card into multiple data segments, each having its own preamble and synchronization segment in order to improve the reliability of the signal transmission. Using multiple preamble and synchronization segments enables the user device to continually compensate for clock drift that may occur while the user device is receiving the signal.
  • Each preamble segment e.g., the preamble segment 212
  • the initial preamble segment 212 used to determine the data rate in the first instance is longer than preamble segments elsewhere in the packet 210 , e.g., preamble segment 215 .
  • the initial preamble segment 212 encodes more bits than other preamble segments. A longer preamble can increase the accuracy of determining a data rate from a signal.
  • a preamble segment encodes all zeros or all ones so that each bit has two transitions when using self-clocking line codes, e.g., Manchester code.
  • the user device can receive the signal and perform a fast Fourier transform process on a preamble segment of the signal to determine the frequency of the data rate based on frequency peaks in the output of the fast Fourier transform process.
  • Each synchronization segment e.g., the synchronization segment 213 , encodes a distinctive synchronization pattern.
  • the user device can use the synchronization segment to align measurements of the received signal with determined midpoints between signal transitions in order to increase the accuracy of the signal reading. In other words, the user device can time the measurements of the signal such that the measurements are unlikely to occur near signal transitions.
  • a training synchronization segment 215 encodes a synchronization pattern that indicates, to the user device, the end of the packet 210 .
  • a final cyclic redundancy check (CRC) segment 219 encodes a value that the user device can use to detect errors in the received signal using a cyclic redundancy check process.
  • the fast format packet 220 and the slow format packet 230 each have the same general format as the example packet 210 and encode the same card information, possibly in multiple data segments.
  • the initial preamble segment 232 of the slow format packet 230 is longer than the preamble segment 222 of the fast format packet 220 .
  • the initial preamble segment 232 of the slow format packet 230 encodes more bits than the preamble segment 222 of the fast format packet 220 .
  • the card reader can generate a longer preamble for the slow format packet 230 to increase the reliability of reading the card under noisy conditions.
  • the card reader can further increase the reliability of the signal transmission by generating preamble segments of the slow format packet 230 that are each longer than corresponding preamble segments of the fast format packet 220 .
  • the fast format packet 220 and the slow format packet 230 can be encoded in a single signal 240 that can be modulated and sent to a user device.
  • the data rate of the signal 240 is higher for the portion corresponding to the fast format packet 220 .
  • the portion of the signal 240 corresponding to the fast format packet 220 has a bit rate at least three times higher, e.g., four times higher, than the portion of the signal corresponding to the slow format packet 230 .
  • FIG. 3 is a flow chart of an example process for generating a signal that includes a fast format packet and a slow format packet.
  • the example process can be performed by any appropriately programmed data processing apparatus. The process will be described as being performed by a card reader coupled to a user device.
  • the card reader receives card information associated with a card ( 302 ).
  • the card information can be obtained from a read head of the card reader after a payment card is swiped through the read head, read from an embedded chip, or otherwise obtained from the card.
  • the card reader encodes the card information in a fast format packet ( 304 ).
  • the card reader can generate a fast format packet that has a format as described above with reference to FIG. 2 .
  • the card reader can generate multiple data segments that encode the card information and can generate a respective preamble and synchronization segment for each of the multiple data segments.
  • the card reader can also generate other segments for the fast format packet, e.g., a trailing CRC segment, as appropriate.
  • the card reader encodes the card information in a slow format packet ( 306 ).
  • the card reader can generate a slow format packet that has a format as described above with reference to FIG. 2 .
  • the card reader can generate multiple data segments that each have a respective preamble and synchronization segment.
  • the card reader need not regenerate every preamble, synchronization, and data segment. Rather, the card reader may reuse some preamble, synchronization, and data segments that were created during generation of the fast format packet.
  • the card reader may also generate the slow format packet first and reuse one or more segments during generation of the fast format packet.
  • Some segments of the slow format packet may differ from corresponding segments of the fast format packet.
  • the card reader can generate preambles for the slow format packet that are longer than preambles of the fast format packet.
  • the card reader modulates the fast format packet and the slow format packet into a signal and sends the signal over an audio channel of the user device ( 308 ).
  • the card reader will modulate the fast format packet at a data rate that is higher than the data rate for the slow format packet.
  • the card reader can use any appropriate digital encoding and modulation techniques, e.g., a Manchester encoding with pulse-width modulation.
  • the fast format packet is modulated at 6 kb/s and the slow format packet is modulated at 1.5 kb/s.
  • the card reader may also generate additional packets that are modulated at other speeds and sent to the user device as well. Generally, portions of the signal corresponding to packet formats having higher data rates are sent to the user device before portions of the signal corresponding to packet formats having lower data rates. In some implementations, the card reader sends multiple packets in order by decreasing data rate.
  • the user device will receive the signal and attempt to demodulate the portion of the signal corresponding to the fast format packet.
  • the card reader can automatically continue to send a portion of the signal corresponding to the slow format packet before receiving any feedback from the user device as to whether or not demodulation of the fast format packet was successful.
  • FIG. 4 is a flow chart of an example process for obtaining card information from a signal that includes a fast format packet and a slow format packet.
  • the example process can be performed by any appropriately programmed data processing apparatus.
  • the process can be implemented by a user application installed on a user device.
  • the process will be described as being performed by a user device coupled to a card reader.
  • the user device receives a signal having a fast format packet and a slow format packet ( 402 ).
  • the user device can be programmed to continually monitor for signals received over a port of the user device, e.g., over an audio jack or headset jack to which a card reader is connected.
  • the user device initiates a demodulation process on a portion of the signal corresponding to the fast format packet ( 404 ).
  • the user device can initiate the demodulation process when the user device detects an incoming signal.
  • the user device can consider the first received portion of the signal to be the fast format packet.
  • the user device performs a high-pass finite impulse response filter to remove high frequency noise from the signal.
  • the user device then performs a fast Fourier transform on the fast format packet preamble to estimate the data rate of the fast format packet.
  • the user device searches for the synchronization pattern segment of the fast format packet and generates a reference sine wave.
  • the user device then integrates the reference sine wave with the data segment of the fast format packet to generate the bits of the original fast format packet.
  • the user device may perform error correcting algorithms to account for noise or other kinds of errors, e.g., the Verterbi algorithm or cyclic redundancy check.
  • the user device decodes card information from the demodulated fast format packet (branch to 408 ). The user device can then proceed to process a payment transaction using information obtained from the payment card. When demodulation of the fast format packet succeeds, the user device can ignore the portion of the signal corresponding to the slow format packet.
  • the user device initiates a demodulation process on a portion of the signal corresponding to the slow format packet (branch to 410 ). Before or during attempting demodulation of the fast format packet, the user device can continue to receive the signal from the card reader that corresponds to the slow format packet.
  • the demodulation process for the slow format packet may be similar to the process used for the fast format packet, although the data rate for the slow format packet will be lower than the data rate for the fast format packet.
  • the user device decodes card information from the demodulated slow format packet ( 414 ). The user device can then proceed to process a payment transaction using the decoded card information.
  • the user device can display a message indicating that reading of the card failed. For example, the user device can display an error message indicating that the user should swipe the card again ( 416 ).
  • Embodiments of the subject matter and the operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.
  • Embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on a non-transitory computer storage medium for execution by, or to control the operation of, data processing apparatus.
  • the program instructions can be encoded on an artificially-generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus.
  • a computer storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them.
  • a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially-generated propagated signal.
  • the computer storage medium can also be, or be included in, one or more separate physical components or media (e.g., multiple CDs, disks, or other storage devices).
  • the operations described in this specification can be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.
  • the term “data processing apparatus” encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip, or multiple ones, or combinations, of the foregoing
  • the apparatus can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
  • the apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them.
  • the apparatus and execution environment can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.
  • a computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment.
  • a computer program may, but need not, correspond to a file in a file system.
  • a program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language resource), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code).
  • a computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
  • the processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output.
  • the processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
  • processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer.
  • a processor will receive instructions and data from a read-only memory or a random access memory or both.
  • the essential elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data.
  • a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks.
  • mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks.
  • a computer need not have such devices.
  • a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few.
  • Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
  • the processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
  • a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and input devices for providing input to the computer, e.g., a keyboard, a mouse, or a presence sensitive surface or display.
  • a display device e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
  • input devices for providing input to the computer, e.g., a keyboard, a mouse, or a presence sensitive surface or display.
  • Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
  • a computer can interact with a user by sending resources to and receiving resources from a device that is used by the user; for example,
  • a system of one or more computers can be configured to perform particular operations or actions by virtue of having software, firmware, hardware, or a combination of them installed on the system that in operation causes or cause the system to perform the actions.
  • One or more computer programs can be configured to perform particular operations or actions by virtue of including instructions that, when executed by data processing apparatus, cause the apparatus to perform the actions.

Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for modulating card information between a card reader and a user device. One of the methods includes receiving, from a read head of the card reader, card information associated with a card. The card information is encoded in a first format to be sent to the user device at a first data rate. The card information is encoded in a second format to be sent to the user device at a second data rate lower than the first data rate. The card information is sent to the user device encoded in the first format and the second format.

Description

CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation application of, and claims priority to, pending U.S. patent application Ser. No. 13/961,572, filed on Aug. 7, 2013, entitled “Encoding Data in Multiple Formats.” The disclosure of the foregoing application is incorporated herein by reference in its entirety.
TECHNICAL FIELD
This disclosure relates to modulation techniques for communication between devices.
BACKGROUND
Mobile card readers are available for magnetic stripe cards. A user provides a payment card with a magnetic stripe at the point-of-sale to a merchant. The merchant processes the card using a card reader, e.g., the card is swiped on a detachable card reader coupled to a merchant device, which can be a mobile device. A payment request is sent electronically to a credit card processor. The credit card processor routes the payment request to a card network, e.g., Visa or Mastercard, which in turn routes the payment request to the card issuer, e.g., a bank. Assuming the card issuer approves the transaction, the approval is then routed back to the merchant. In the capture stage, the approved transaction is again routed from the merchant to the credit card processor, card network and card issuer, and the payment request can include the cardholder's signature (if appropriate). The capture state can trigger the financial transaction between the card issuer and the merchant, and optionally creates a receipt. There can also be other entities, e.g., the card acquirer, in the route of the transaction. Debit card transactions have a different routing, but also require swiping of the card.
SUMMARY
This specification relates to modulation techniques for improving the reliability of communication between a detachable card reader and a user device. Mobile card readers can be detachably connected to mobile user devices, which can be common consumer devices, e.g., smartphones or tablet computers. However, communication between a card reader and such devices can be unreliable because of the widely varying hardware capabilities of user devices with which the card reader may need to communicate.
To improve the reliability of communication between a card reader and a user device, the card reader can encode the card information into multiple data packets that are then modulated at different respective data rates and sent to the user device as a single combined signal. If, due to hardware or software limitations of the user device, the user device is unable to demodulate a packet of data at a fast data rate, the user device can demodulate the card information using a portion of the signal modulated at a lower data rate.
In general, one innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving, from a read head of the card reader coupled to the user device through an audio jack of the user device, card information encoded on a payment card; encoding the card information in a fast format packet to be sent to the user device at a first data rate; encoding the card information in a slow format packet to be sent to the user device at a second data rate lower than the first data rate; modulating the fast format packet and the slow format packet into a signal and sending the signal over the audio channel of the user device; initiating, at the user device, a demodulation process on a portion of the signal that corresponds to the fast format packet; determining that the demodulation process on the portion of the signal that corresponds to the fast format packet has failed; in response to determining that the demodulation process on the portion of the signal that corresponds to the fast format packet has failed, demodulating a portion of the signal that corresponds to the slow format packet; and decoding the card information from the demodulated slow format packet. Other embodiments of this aspect include corresponding computer systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the methods. For a system of one or more computers to be configured to perform particular operations or actions means that the system has installed on it software, firmware, hardware, or a combination of them that in operation cause the system to perform the operations or actions. For one or more computer programs to be configured to perform particular operations or actions means that the one or more programs include instructions that, when executed by data processing apparatus, cause the apparatus to perform the operations or actions.
The foregoing and other embodiments can each optionally include one or more of the following features, alone or in combination. The actions include receiving the portion of the signal that corresponds to the slow format packet before or while performing the demodulation process on the portion of the signal corresponding to the fast format packet. Encoding the card information in a slow format packet comprises generating a preamble segment for the slow format packet that is longer than a preamble segment of the fast format packet. Encoding the card information in a slow format packet comprises generating multiple data segments, wherein each data segment encodes a portion of the card information; and generating a respective preamble and synchronization segment for each data segment of the multiple data segments.
In general, another innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving, from a read head of the card reader, card information associated with a card; encoding the card information in a first format to be sent to the user device at a first data rate; encoding the card information in a second format to be sent to the user device at a second data rate lower than the first data rate; sending, to the user device, the card information encoded in the first format and the second format. Other embodiments of this aspect include corresponding computer systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the methods.
The foregoing and other embodiments can each optionally include one or more of the following features, alone or in combination. Sending, to the user device, the card information encoded in the first format and the second format comprises sending a signal over an audio channel of the user device. Sending, to the user device, the card information encoded in the first format and the second format comprises sending a signal over a data communications port of the user device. Sending, to the user device, the card information encoded in the first format and the second format comprises sending a portion of a signal that corresponds to the slow format before or while the user device is performing a demodulation process on a portion of the signal corresponding to the fast format. Encoding the card information in a slow format comprises generating a preamble segment for the slow format that is longer than a preamble segment of the fast format. Encoding the card information in a slow format comprises generating multiple data segments, wherein each data segment of the multiple data segments encodes a portion of the card information; and generating a respective preamble and synchronization segment for each data segment of the multiple data segments. Sending, to the user device, the card information encoded in the first format and the second format comprises sending a portion of the signal corresponding to the fast format before a portion of the signal corresponding to the slow format.
In general, another innovative aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving, from a card reader, a signal encoding card information associated with a card, wherein the card information is encoded in a first format received at a first data rate and a second format received at a second data rate that is lower than the first data rate; initiating a demodulation process on a portion of the signal that corresponds to the fast format; determining that the demodulation process on the portion of the signal that corresponds to the fast format has failed; in response to determining that the demodulation process on the portion of the signal that corresponds to the fast format has failed, demodulating a portion of the signal that corresponds to the slow format; and decoding the card information from the demodulated slow format. Other embodiments of this aspect include corresponding computer systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the methods.
The foregoing and other embodiments can each optionally include one or more of the following features, alone or in combination. The actions include receiving a portion of the signal that corresponds to the slow format before or while performing the demodulation process on a portion of the signal corresponding to the fast format. Receiving, from the card reader, the signal encoding card information associated with a card comprises receiving the signal over an audio channel of the user device. Receiving, from the card reader, the signal encoding card information associated with a card comprises receiving the signal over a data communications port of the user device. The slow format comprises an initial preamble segment that is longer than an initial preamble segment for the fast format. Decoding the card information comprises identifying multiple data segments designated by respective synchronization segments, wherein each data segment of the multiple data segments encodes a portion of the card information; and assembling the card information using the multiple data segments.
In general, another innovative aspect of the subject matter described in this specification can be embodied in a card reader that is configured to encode card information associated with a card obtained from a read head into a fast format to be sent to a user device at a first data rate, encode the card information in a slow format to be sent to the user device at a second data rate lower than the first data rate, and send, to the user device, the card information encoded in the first format and the second format. Other embodiments of this aspect include corresponding computer systems, methods, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the card reader.
The foregoing and other embodiments can each optionally include one or more of the following features, alone or in combination. The card reader is further configured to send a portion of a signal that corresponds to the slow format before or while the user device is performing a demodulation process on a portion of the signal corresponding to the fast format packet. The card reader is configured to encode the card information in the slow format including generating multiple data segments, wherein each data segment of the multiple data segments encodes a portion of the card information, and generating a respective preamble and synchronization segment for each data segment of the multiple data segments.
Advantages may include one or more of the following. Modulating multiple information packets at different data rates increases the reliability of communication between a card reader and a user device. This can increase the likelihood that card information is read correctly on a first swipe and increases the types of user devices from which card information can be read reliably. Using multiple data segments, each having a respective preamble and synchronization segment, can further increase the reliability of reading card information by continually adjusting for clock drift when reading a signal. The multiple data packets improves the reliability of reading card information without requiring back-and-forth communication between the devices, e.g., without requiring the user device to acknowledge receipt and successful demodulation of the card information. This in turn gives both the merchant and the customer a less time-consuming and overall better user experience.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a schematic illustration of an example cardless payment system architecture.
FIG. 2 is a diagram of a fast format packet and a slow format packet.
FIG. 3 is a flow chart of an example process for generating a signal that includes a fast format packet and a slow format packet.
FIG. 4 is a flow chart of an example process for obtaining card information from a signal that includes a fast format packet and a slow format packet. Like reference numbers and designations in the various drawings indicate like elements.
DETAILED DESCRIPTION
FIG. 1 is a schematic illustration of an example system 100 for conducting a transaction using a card reader 110. The system 100 is capable of processing a payment transaction between a mobile computing device 102 and a card reader 110. The mobile computing device 102 can be a smart phone, tablet computer or laptop, or other data processing apparatus. The card reader 110 can be detachably connected to the mobile computing device 102. The card reader 110 is a device that reads data from a storage medium on a credit-card shaped card, e.g., from a magnetic stripe or embedded chip. In other words, the card reader 110 may not have a display or a keyboard, but the card reader 110 has an interface for inserting or swiping a card. For example, the system 100 can process the card according to the Europay, Mastercard, Visa (EMV) protocol.
The card reader 110 is attached to the mobile device 102 by a port of the mobile device 102. The port can be any appropriate type of port for sending signals to the mobile device. For example, the port can be a port for sending audio signals, e.g., an audio jack or headset jack of the mobile device 102. The port can also be a port for sending optical signals, e.g., an optical fiber port. The port can also be another kind of port for sending electrical signals to the mobile device. For example, the port can be a data communications port, e.g., a universal serial bus (USB) port, a charging port, or a port that has a combination of these or other functions, e.g., a data communications and power charging port.
The card reader 110 can read, on the card, a magnetic stripe or chip to obtain card information, e.g., a card number and a card expiration date. The card reader 110 then generates multiple data packets that encode the card information in a particular format and which are intended to be modulated at different respective data rates. Each packet can include multiple segments including preambles, synchronization segments, and multiple data segments that encode card information associated with the card. In this specification, a data packet is a data structure that includes one or more segments of data, e.g., a preamble, synchronization, and data segments, but does necessarily imply a packet that is sent over a network of devices and need not include network addressing or routing information.
The card reader 110 then generates a signal, e.g., an electrical signal, by modulating the multiple packets at their respective data rates, and sends the signal to the mobile device 102, e.g., over an audio channel or another port that connects the card reader 110 to the mobile device 102. The mobile device 102 receives the signal and demodulates the signal to reconstruct one or more of the data packets. The mobile device 102 can demodulate a portion of the signal corresponding to any one of the packets. If the mobile device 102 is unable to demodulate a portion of the signal having a particular data rate, e.g., because the data rate is too fast for the electronics of mobile device 102 to demodulate correctly, the mobile device 102 can demodulate a different portion of the signal having a lower data rate. Thus, the card reader 110 can provide the mobile device 102 with a robust signal with built-in redundancy to improve the reliability of communication between the card reader 110 and the mobile device 102.
The mobile device 102 can then transmit an authorization for the transaction to a secure server 114 for payment processing using an external network, e.g., the Internet 112. The secure server 114 can relay the transaction to the card issuer 116, which ultimately approves or denies the transaction. The card issuer 116 can communicate the approval or denial to the secure server 114, which can relay the card issuer's response to the mobile device 102.
The mobile device 102 includes a display 104 and a user interface controller 106. The user interface controller 106 can generate a user interface for directing the user in swiping cards for a payment transaction. The mobile device 102 can display the generated interface on the display 104. For example, the generated interface can instruct the user to swipe a card, inform the user that a swipe failed, and instruct the user that a card is expired, just to name a few examples.
FIG. 2 illustrates example formats of example data packets. A card reader can generate a fast format packet 220 and a slow format packet 230 having the same general arrangement as shown by an example data packet 210. The card reader can then use the fast format packet 220 and the slow format packet 230 to generate a signal 240 that can be modulated and sent to a user device, e.g., over an audio channel of the user device.
The example data packet 210 includes multiple data segments that encode card information associated with a payment card. The card information can include a card number of the card, an expiration date of the card, a name of the card holder, in addition to other types of data. The data packet 210 also includes other segments for determining a data rate, synchronizing signal measurements with the data rate, and error checking
An initial automatic gain control (AGC) segment 211 can be used for performing automatic gain control on the user device to adjust the gain of the received signal to an appropriate level. If the signal is weak, the user device can increase the gain, and if the signal is too strong, the user device can decrease the gain. Thus, the AGC segment 211 may not encode any data.
The card reader can encode card information obtained from a payment card into multiple data segments, e.g., a data segment 214 and a data segment 217, that are each preceded by a preamble and a synchronization segment. For example, the data segment 214 is preceded by a preamble segment 212 and a synchronization segment 213, and the data segment 217 is preceded by its own preamble segment 215 and 216. The card reader can break up the card information from the card into multiple data segments, each having its own preamble and synchronization segment in order to improve the reliability of the signal transmission. Using multiple preamble and synchronization segments enables the user device to continually compensate for clock drift that may occur while the user device is receiving the signal.
Each preamble segment, e.g., the preamble segment 212, can be used by the user device to determine or refine a frequency of the signal data rate, initially, as well as before each subsequently received data segment. In some implementations, the initial preamble segment 212 used to determine the data rate in the first instance is longer than preamble segments elsewhere in the packet 210, e.g., preamble segment 215. In other words, the initial preamble segment 212 encodes more bits than other preamble segments. A longer preamble can increase the accuracy of determining a data rate from a signal. In some implementations, a preamble segment encodes all zeros or all ones so that each bit has two transitions when using self-clocking line codes, e.g., Manchester code. The user device can receive the signal and perform a fast Fourier transform process on a preamble segment of the signal to determine the frequency of the data rate based on frequency peaks in the output of the fast Fourier transform process.
Each synchronization segment, e.g., the synchronization segment 213, encodes a distinctive synchronization pattern. The user device can use the synchronization segment to align measurements of the received signal with determined midpoints between signal transitions in order to increase the accuracy of the signal reading. In other words, the user device can time the measurements of the signal such that the measurements are unlikely to occur near signal transitions.
A training synchronization segment 215 encodes a synchronization pattern that indicates, to the user device, the end of the packet 210. A final cyclic redundancy check (CRC) segment 219 encodes a value that the user device can use to detect errors in the received signal using a cyclic redundancy check process.
The fast format packet 220 and the slow format packet 230 each have the same general format as the example packet 210 and encode the same card information, possibly in multiple data segments. However, the initial preamble segment 232 of the slow format packet 230 is longer than the preamble segment 222 of the fast format packet 220. In other words, the initial preamble segment 232 of the slow format packet 230 encodes more bits than the preamble segment 222 of the fast format packet 220. Because the slow format packet 230 will ordinarily be used when demodulation of the fast format packet 220 has failed, possibly due to noise, the card reader can generate a longer preamble for the slow format packet 230 to increase the reliability of reading the card under noisy conditions. In some implementations, the card reader can further increase the reliability of the signal transmission by generating preamble segments of the slow format packet 230 that are each longer than corresponding preamble segments of the fast format packet 220.
The fast format packet 220 and the slow format packet 230 can be encoded in a single signal 240 that can be modulated and sent to a user device. The data rate of the signal 240 is higher for the portion corresponding to the fast format packet 220. In some implementations, the portion of the signal 240 corresponding to the fast format packet 220 has a bit rate at least three times higher, e.g., four times higher, than the portion of the signal corresponding to the slow format packet 230.
FIG. 3 is a flow chart of an example process for generating a signal that includes a fast format packet and a slow format packet. The example process can be performed by any appropriately programmed data processing apparatus. The process will be described as being performed by a card reader coupled to a user device.
The card reader receives card information associated with a card (302). As described above, the card information can be obtained from a read head of the card reader after a payment card is swiped through the read head, read from an embedded chip, or otherwise obtained from the card.
The card reader encodes the card information in a fast format packet (304). The card reader can generate a fast format packet that has a format as described above with reference to FIG. 2. For example, the card reader can generate multiple data segments that encode the card information and can generate a respective preamble and synchronization segment for each of the multiple data segments. The card reader can also generate other segments for the fast format packet, e.g., a trailing CRC segment, as appropriate.
The card reader encodes the card information in a slow format packet (306). For example, the card reader can generate a slow format packet that has a format as described above with reference to FIG. 2. Similarly, the card reader can generate multiple data segments that each have a respective preamble and synchronization segment. However, the card reader need not regenerate every preamble, synchronization, and data segment. Rather, the card reader may reuse some preamble, synchronization, and data segments that were created during generation of the fast format packet. The card reader may also generate the slow format packet first and reuse one or more segments during generation of the fast format packet.
Some segments of the slow format packet may differ from corresponding segments of the fast format packet. For example, the card reader can generate preambles for the slow format packet that are longer than preambles of the fast format packet.
The card reader modulates the fast format packet and the slow format packet into a signal and sends the signal over an audio channel of the user device (308). Generally, the card reader will modulate the fast format packet at a data rate that is higher than the data rate for the slow format packet. The card reader can use any appropriate digital encoding and modulation techniques, e.g., a Manchester encoding with pulse-width modulation. In some implementations, the fast format packet is modulated at 6 kb/s and the slow format packet is modulated at 1.5 kb/s.
Although in the example process shown in FIG. 3 the card reader generates a fast format packet and a slow format packet, the card reader may also generate additional packets that are modulated at other speeds and sent to the user device as well. Generally, portions of the signal corresponding to packet formats having higher data rates are sent to the user device before portions of the signal corresponding to packet formats having lower data rates. In some implementations, the card reader sends multiple packets in order by decreasing data rate.
The user device will receive the signal and attempt to demodulate the portion of the signal corresponding to the fast format packet. However, the card reader can automatically continue to send a portion of the signal corresponding to the slow format packet before receiving any feedback from the user device as to whether or not demodulation of the fast format packet was successful.
FIG. 4 is a flow chart of an example process for obtaining card information from a signal that includes a fast format packet and a slow format packet. The example process can be performed by any appropriately programmed data processing apparatus. For example, the process can be implemented by a user application installed on a user device. The process will be described as being performed by a user device coupled to a card reader.
The user device receives a signal having a fast format packet and a slow format packet (402). For example, the user device can be programmed to continually monitor for signals received over a port of the user device, e.g., over an audio jack or headset jack to which a card reader is connected.
The user device initiates a demodulation process on a portion of the signal corresponding to the fast format packet (404). The user device can initiate the demodulation process when the user device detects an incoming signal. The user device can consider the first received portion of the signal to be the fast format packet.
In some implementations, the user device performs a high-pass finite impulse response filter to remove high frequency noise from the signal. The user device then performs a fast Fourier transform on the fast format packet preamble to estimate the data rate of the fast format packet. The user device then searches for the synchronization pattern segment of the fast format packet and generates a reference sine wave. The user device then integrates the reference sine wave with the data segment of the fast format packet to generate the bits of the original fast format packet. The user device may perform error correcting algorithms to account for noise or other kinds of errors, e.g., the Verterbi algorithm or cyclic redundancy check.
If demodulation of the fast format packet succeeds (406), the user device decodes card information from the demodulated fast format packet (branch to 408). The user device can then proceed to process a payment transaction using information obtained from the payment card. When demodulation of the fast format packet succeeds, the user device can ignore the portion of the signal corresponding to the slow format packet.
If demodulation of the fast format packet does not succeed (406), the user device initiates a demodulation process on a portion of the signal corresponding to the slow format packet (branch to 410). Before or during attempting demodulation of the fast format packet, the user device can continue to receive the signal from the card reader that corresponds to the slow format packet. The demodulation process for the slow format packet may be similar to the process used for the fast format packet, although the data rate for the slow format packet will be lower than the data rate for the fast format packet.
If demodulation of the slow format packet succeeds (412), the user device decodes card information from the demodulated slow format packet (414). The user device can then proceed to process a payment transaction using the decoded card information.
If demodulation of both the fast format packet and the flow format packet does not succeed (412), the user device can display a message indicating that reading of the card failed. For example, the user device can display an error message indicating that the user should swipe the card again (416).
Embodiments of the subject matter and the operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on a non-transitory computer storage medium for execution by, or to control the operation of, data processing apparatus. Alternatively or in addition, the program instructions can be encoded on an artificially-generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. A computer storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. Moreover, while a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially-generated propagated signal. The computer storage medium can also be, or be included in, one or more separate physical components or media (e.g., multiple CDs, disks, or other storage devices).
The operations described in this specification can be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.
The term “data processing apparatus” encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip, or multiple ones, or combinations, of the foregoing The apparatus can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). The apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them. The apparatus and execution environment can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.
A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language resource), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and input devices for providing input to the computer, e.g., a keyboard, a mouse, or a presence sensitive surface or display. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending resources to and receiving resources from a device that is used by the user; for example, by sending web pages to a web browser on a user's client device in response to requests received from the web browser.
A system of one or more computers can be configured to perform particular operations or actions by virtue of having software, firmware, hardware, or a combination of them installed on the system that in operation causes or cause the system to perform the actions. One or more computer programs can be configured to perform particular operations or actions by virtue of including instructions that, when executed by data processing apparatus, cause the apparatus to perform the actions.
While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of features specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
Thus, particular embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.

Claims (16)

What is claimed is:
1. A computer implemented method of communication between a card reader and a user device, comprising:
receiving, from a read head of the card reader coupled to the user device, card information on a payment card;
encoding the card information in a fast format packet to be sent to the user device at a first data rate;
encoding the card information in a slow format packet to be sent to the user device at a second data rate lower than the first data rate;
modulating the fast format packet and the slow format packet together into a signal that includes at least a first portion that corresponds to the fast format packet and at least a second portion that corresponds to the slow format packet and sending the signal over a communication port of the user device;
initiating, at the user device, a demodulation process on the first portion of the signal that corresponds to the fast format packet;
determining that the demodulation process on the portion of the signal that corresponds to the fast format packet has failed;
in response to determining that the demodulation process on the portion of the signal that corresponds to the fast format packet has failed, demodulating the portion of the signal that corresponds to the slow format packet; and
decoding the card information from the demodulated slow format packet.
2. The method of claim 1, further comprising:
receiving the portion of the signal that corresponds to the slow format packet before or while performing the demodulation process on the portion of the signal corresponding to the fast format packet.
3. The method of claim 1, wherein sending, to the user device, the card information encoded in the first format and the second format comprises sending a portion of the signal corresponding to the fast format before a portion of the signal corresponding to the slow format.
4. A computer implemented method of communication between a card reader and a user device, comprising:
receiving, from a read head of the card reader, card information associated with a card;
encoding the card information in a first format to be sent to the user device at a first data rate;
encoding the card information in a second format to be sent to the user device at a second data rate lower than the first data rate;
sending, to the user device, the card information encoded in the first format and the second format together as a signal that includes at least a first portion that corresponds to the first format and at least a second portion that corresponds to the second format; and
in response to determining that a demodulation process on the first portion of the signal that corresponds to the first format has failed, demodulating the second portion of the signal that corresponds to the second format.
5. The method of claim 4, wherein sending, to the user device, the card information encoded in the first format and the second format comprises sending the signal over an audio channel of the user device.
6. The method of claim 4, wherein sending, to the user device, the card information encoded in the first format and the second format comprises sending the signal over a data communications port of the user device.
7. The method of claim 4, wherein sending, to the user device, the card information encoded in the first format and the second format comprises sending the portion of the signal that corresponds to the slow format before or while the user device is performing a demodulation process on the portion of the signal corresponding to the fast format.
8. The method of claim 4, wherein sending, to the user device, the card information encoded in the fast format and the second format comprises sending the portion of the signal corresponding to the fast format before sending the portion of the signal corresponding to the slow format.
9. A computer implemented method of communication between a card reader and a user device, comprising:
receiving, from the card reader a signal that includes encoded card information associated with a card, wherein the card information is encoded in a first format received at a first data rate and a second format received at a second data rate that is lower than the first data rate, and the signal includes at least a first portion that corresponds to the first format and at least a second portion that corresponds to the second format;
initiating a demodulation process on the portion of the signal that corresponds to the first format;
determining that the demodulation process on the portion of the signal that corresponds to the first format has failed;
in response to determining that the demodulation process on the portion of the signal that corresponds to the first format has failed, demodulating the portion of the signal that corresponds to the second format.
10. The method of claim 9, further comprising:
receiving the portion of the signal that corresponds to the second format before or while performing the demodulation process on a portion of the signal corresponding to the first format.
11. The method of claim 9, wherein receiving, form the card reader, the signal card information associated with the card comprises receiving a portion of the signal corresponding to the first format before a portion of the signal corresponding to the second format.
12. The method of claim 9, wherein receiving, from the card reader, the signal card information associated with a card comprises receiving the signal over an audio channel of the user device.
13. The method of claim 9 wherein receiving, from the card reader, the signal card information associated with the card comprises receiving the signal over a data communications port of the user device.
14. A card reader configured to encode card information associated with a card obtained from a read head into a fast format to be sent to a user device at a first data rate, encode the card information in a slow format to be sent to the user device at a second data rate lower than the first data rate, send, to the user device, the card information encoded in the first format and the second format as a signal that includes at least a first portion that corresponds to the fast format and at least a second portion that corresponds to the slow format, and, in response to determining that the demodulation process on the portion of the signal that corresponds to the fast format has failed, demodulate the portion of the signal that corresponds to the slow format.
15. The card reader of claim 14, wherein the card reader is further configured to send, to the user device, the portion of the signal corresponding to the fast format before the portion of the signal corresponding to the slow format.
16. The card reader of claim 14, wherein the card reader is further configured to send a portion of the signal that corresponds to the slow format before or while the user device is performing a demodulation process on a portion of the signal corresponding to the fast format.
US14/313,882 2013-08-07 2014-06-24 Encoding data in multiple formats Active US9016569B2 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
US14/313,882 US9016569B2 (en) 2013-08-07 2014-06-24 Encoding data in multiple formats
CA2919772A CA2919772C (en) 2013-08-07 2014-07-15 Encoding data in multiple formats
EP14834479.9A EP3031011A4 (en) 2013-08-07 2014-07-15 Encoding data in multiple formats
AU2014305686A AU2014305686B2 (en) 2013-08-07 2014-07-15 Encoding data in multiple formats
PCT/US2014/046759 WO2015020763A1 (en) 2013-08-07 2014-07-15 Encoding data in multiple formats
US14/671,798 US9361614B2 (en) 2013-08-07 2015-03-27 Encoding data in multiple formats
US15/161,891 US9582798B2 (en) 2013-08-07 2016-05-23 Encoding data in multiple formats

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/961,572 US8794517B1 (en) 2013-08-07 2013-08-07 Encoding data in multiple formats
US14/313,882 US9016569B2 (en) 2013-08-07 2014-06-24 Encoding data in multiple formats

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US13/961,572 Continuation US8794517B1 (en) 2013-08-07 2013-08-07 Encoding data in multiple formats

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/671,798 Continuation US9361614B2 (en) 2013-08-07 2015-03-27 Encoding data in multiple formats

Publications (2)

Publication Number Publication Date
US20150041542A1 US20150041542A1 (en) 2015-02-12
US9016569B2 true US9016569B2 (en) 2015-04-28

Family

ID=51228935

Family Applications (4)

Application Number Title Priority Date Filing Date
US13/961,572 Active US8794517B1 (en) 2013-08-07 2013-08-07 Encoding data in multiple formats
US14/313,882 Active US9016569B2 (en) 2013-08-07 2014-06-24 Encoding data in multiple formats
US14/671,798 Active US9361614B2 (en) 2013-08-07 2015-03-27 Encoding data in multiple formats
US15/161,891 Active US9582798B2 (en) 2013-08-07 2016-05-23 Encoding data in multiple formats

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US13/961,572 Active US8794517B1 (en) 2013-08-07 2013-08-07 Encoding data in multiple formats

Family Applications After (2)

Application Number Title Priority Date Filing Date
US14/671,798 Active US9361614B2 (en) 2013-08-07 2015-03-27 Encoding data in multiple formats
US15/161,891 Active US9582798B2 (en) 2013-08-07 2016-05-23 Encoding data in multiple formats

Country Status (4)

Country Link
US (4) US8794517B1 (en)
EP (1) EP3031011A4 (en)
CA (1) CA2919772C (en)
WO (1) WO2015020763A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582798B2 (en) 2013-08-07 2017-02-28 Square, Inc. Encoding data in multiple formats
CN110838204A (en) * 2019-11-05 2020-02-25 艾体威尔电子技术(北京)有限公司 Decoding method for magnetic stripe card swiping terminal
USD905059S1 (en) 2018-07-25 2020-12-15 Square, Inc. Card reader device

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582795B2 (en) 2002-02-05 2017-02-28 Square, Inc. Methods of transmitting information from efficient encryption card readers to mobile devices
US9495676B2 (en) 2002-02-05 2016-11-15 Square, Inc. Method of transmitting information from a power efficient card to a mobile device
US8235287B2 (en) 2010-10-13 2012-08-07 Square, Inc. Read head device with slot configured to reduce torque
US9916581B2 (en) 2002-02-05 2018-03-13 Square, Inc. Back end of payment system associated with financial transactions using card readers coupled to mobile devices
US9495675B2 (en) 2002-02-05 2016-11-15 Square, Inc. Small card reader configured to be coupled to a mobile device
US9224142B2 (en) 2002-02-05 2015-12-29 Square, Inc. Card reader with power efficient architecture that includes a power supply and a wake up circuit
US9262777B2 (en) 2002-02-05 2016-02-16 Square, Inc. Card reader with power efficient architecture that includes a wake-up circuit
US9016572B2 (en) 2010-10-13 2015-04-28 Square, Inc. Systems and methods for financial transaction through miniaturized card with ASIC
US9286635B2 (en) 2002-02-05 2016-03-15 Square, Inc. Method of transmitting information from efficient communication protocol card readers to mobile devices
US9305314B2 (en) 2002-02-05 2016-04-05 Square, Inc. Methods of transmitting information to mobile devices using cost effective card readers
US9324100B2 (en) 2002-02-05 2016-04-26 Square, Inc. Card reader with asymmetric spring
US8573486B2 (en) 2010-10-13 2013-11-05 Square, Inc. Systems and methods for financial transaction through miniaturized card reader with confirmation of payment sent to buyer
US9262757B2 (en) 2002-02-05 2016-02-16 Square, Inc. Method of transmitting information from a card reader with a power supply and wake-up circuit to a mobile device
US9436955B2 (en) 2009-06-10 2016-09-06 Square, Inc. Methods for transferring funds using a payment service where financial account information is only entered once with a payment service and need not be re-entered for future transfers
US9454866B2 (en) 2010-10-13 2016-09-27 Square, Inc. Method of conducting financial transactions where a payer's financial account information is entered only once with a payment system
US9619797B2 (en) 2010-10-13 2017-04-11 Square, Inc. Payment methods with a payment service and tabs selected by a first party and opened by a second party at an geographic location of the first party's mobile device
US9576159B1 (en) 2011-01-24 2017-02-21 Square, Inc. Multiple payment card reader system
US9940616B1 (en) 2013-03-14 2018-04-10 Square, Inc. Verifying proximity during payment transactions
US8967465B1 (en) * 2013-11-27 2015-03-03 Square, Inc. Audio signaling training for bidirectional communications
US8910868B1 (en) 2013-11-27 2014-12-16 Square, Inc. Firmware management
US9633236B1 (en) 2013-12-11 2017-04-25 Square, Inc. Power harvesting in reader devices
US8931699B1 (en) 2013-12-11 2015-01-13 Square, Inc. Bidirectional audio communication in reader devices
US10198731B1 (en) 2014-02-18 2019-02-05 Square, Inc. Performing actions based on the location of mobile device during a card swipe
US9256769B1 (en) 2014-02-25 2016-02-09 Square, Inc. Mobile reader device
US9569767B1 (en) 2014-05-06 2017-02-14 Square, Inc. Fraud protection based on presence indication
US10026083B1 (en) 2014-05-11 2018-07-17 Square, Inc. Tab for a venue
US10304043B1 (en) 2014-05-21 2019-05-28 Square, Inc. Multi-peripheral host device
USD762651S1 (en) 2014-06-06 2016-08-02 Square, Inc. Mobile device case
US9760740B1 (en) 2014-06-23 2017-09-12 Square, Inc. Terminal case with integrated dual reader stack
US9256770B1 (en) 2014-07-02 2016-02-09 Square, Inc. Terminal case with integrated reader and shortened base
US9799025B2 (en) 2014-08-19 2017-10-24 Square, Inc. Energy harvesting bidirectional audio interface
US9355285B1 (en) 2015-02-12 2016-05-31 Square, Inc. Tone-based wake up circuit for card reader
US9436938B1 (en) 2015-05-13 2016-09-06 Square, Inc. Transaction payment processing by multiple data centers
US10402807B1 (en) 2017-02-28 2019-09-03 Square, Inc. Estimating interchange fees for card payments
US10452383B1 (en) * 2017-04-28 2019-10-22 Square, Inc. Device improvements through adaptive settings
US10410021B1 (en) 2017-12-08 2019-09-10 Square, Inc. Transaction object reader with digital signal input/output and internal audio-based communication
US11087301B1 (en) 2017-12-19 2021-08-10 Square, Inc. Tamper resistant device
CN109102623A (en) * 2018-07-30 2018-12-28 成都中机盈科科技有限公司 A kind of intelligence is swiped the card control system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6176429B1 (en) * 1998-07-17 2001-01-23 Psc Scanning, Inc. Optical reader with selectable processing characteristics for reading data in multiple formats
US20030066893A1 (en) 2001-06-08 2003-04-10 Sue-Ken Yap Card for service access
US20050029360A1 (en) 1998-09-11 2005-02-10 Axalto Sa Method of transmitting data and a card for such transmission
US20080302869A1 (en) 2005-05-09 2008-12-11 Mullen Jeffrey D Dynamic credit card with magnetic stripe and embedded encoder and methods for using the same to provide a copy-proof credit card
US20120031969A1 (en) 2009-05-15 2012-02-09 Ayman Hammad Integration of verification tokens with mobile communication devices

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5392348A (en) * 1991-11-25 1995-02-21 Motorola, Inc. DTMF detection having sample rate decimation and adaptive tone detection
US6259691B1 (en) * 1998-07-24 2001-07-10 3Com Corporation System and method for efficiently transporting dual-tone multi-frequency/multiple frequency (DTMF/MF) tones in a telephone connection on a network-based telephone system
US6463292B1 (en) * 1999-06-04 2002-10-08 Lucent Technologies Inc. System and method for redirecting data messages
US7920697B2 (en) * 1999-12-09 2011-04-05 Broadcom Corp. Interaction between echo canceller and packet voice processing
US7083090B2 (en) * 2002-08-09 2006-08-01 Patrick Zuili Remote portable and universal smartcard authentication and authorization device
JP4468437B2 (en) * 2007-12-27 2010-05-26 フェリカネットワークス株式会社 Information processing apparatus, communication method, and program
US8432255B2 (en) 2009-04-09 2013-04-30 Amtech Systems, LLC Secondary data channels in RFID systems
US8794517B1 (en) 2013-08-07 2014-08-05 Square, Inc. Encoding data in multiple formats

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6176429B1 (en) * 1998-07-17 2001-01-23 Psc Scanning, Inc. Optical reader with selectable processing characteristics for reading data in multiple formats
US20050029360A1 (en) 1998-09-11 2005-02-10 Axalto Sa Method of transmitting data and a card for such transmission
US20030066893A1 (en) 2001-06-08 2003-04-10 Sue-Ken Yap Card for service access
US20080302869A1 (en) 2005-05-09 2008-12-11 Mullen Jeffrey D Dynamic credit card with magnetic stripe and embedded encoder and methods for using the same to provide a copy-proof credit card
US20120031969A1 (en) 2009-05-15 2012-02-09 Ayman Hammad Integration of verification tokens with mobile communication devices

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582798B2 (en) 2013-08-07 2017-02-28 Square, Inc. Encoding data in multiple formats
USD905059S1 (en) 2018-07-25 2020-12-15 Square, Inc. Card reader device
CN110838204A (en) * 2019-11-05 2020-02-25 艾体威尔电子技术(北京)有限公司 Decoding method for magnetic stripe card swiping terminal

Also Published As

Publication number Publication date
US20150041542A1 (en) 2015-02-12
US20150206132A1 (en) 2015-07-23
EP3031011A1 (en) 2016-06-15
EP3031011A4 (en) 2017-04-19
US9361614B2 (en) 2016-06-07
US20160267470A1 (en) 2016-09-15
CA2919772A1 (en) 2015-02-12
US9582798B2 (en) 2017-02-28
WO2015020763A1 (en) 2015-02-12
US8794517B1 (en) 2014-08-05
AU2014305686A1 (en) 2016-03-03
CA2919772C (en) 2016-10-25

Similar Documents

Publication Publication Date Title
US9582798B2 (en) Encoding data in multiple formats
US11069173B2 (en) Tap to copy data to clipboard via NFC
US9141950B2 (en) Audio signaling training for bidirectional communications
US9449320B1 (en) Closed-loop testing of integrated circuit card payment terminals
AU2020241824B2 (en) Contextual tapping engine
US20160117673A1 (en) System and method for secured transactions using mobile devices
US20140258109A1 (en) Pending deposit for payment processing system
US10467619B2 (en) Method and system for contactless payments
US11373169B2 (en) Web-based activation of contactless cards
US10839371B1 (en) Contactless card tap pay for offline transactions
AU2014305686B2 (en) Encoding data in multiple formats
KR101537553B1 (en) Touch payment based card payment assistive device and method
Fillmore Overview of Contactless Payment Cards

Legal Events

Date Code Title Description
STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT

Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:SQUARE, INC.;REEL/FRAME:037055/0715

Effective date: 20151102

AS Assignment

Owner name: SQUARE, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TEMPLETON, THOMAS;POST, DANIEL JEFFREY;SIGNING DATES FROM 20140324 TO 20140326;REEL/FRAME:038530/0141

Owner name: SYNAPSE PRODUCT DEVELOPMENT LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TOPPANI, DOMINIQUE GILBERT;SUTTON, ALEX;REEL/FRAME:038531/0817

Effective date: 20140530

Owner name: SQUARE, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SYNAPSE PRODUCT DEVELOPMENT LLC;REEL/FRAME:038532/0625

Effective date: 20140530

AS Assignment

Owner name: SQUARE, INC., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:043532/0662

Effective date: 20170811

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

AS Assignment

Owner name: BLOCK, INC., CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:SQUARE, INC.;REEL/FRAME:058753/0503

Effective date: 20211210

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8