TECHNIQUES FOR SELECTING A PROXIMITY CARD OF A MOBILE DEVICE FOR ACCESS

Abstract
Methods, systems, and computer program products are provided that enable a mobile computing device to emulate multiple proximity cards. A portable computing device may store a plurality of identification numbers. The portable computing device may respond to a proximity card reader interrogation transmitted by a reader device by providing one or more of the stored identification numbers in response. In one implementation, the portable computing device may transmit the stored identification numbers in sequence, one or more times. Alternatively, the portable computing device may select one or more particular stored identification numbers to provide in response, based on a location or other attribute of the portable computing device. An applicable function may be enabled when an identification number provided by the portable computing device is determined as a match by the reader device.
Description
BACKGROUND

A proximity card is a smart card that can be “read” without inserting it into a reader device, as required by earlier magnetic stripe cards such as credit cards. When used, a proximity card is transported near an electronic reader. The reader wirelessly communicates with the card to read information from the card, including an identification number. If it is confirmed that the read identification number is correct (matches the expected identification number), the applicable function may be performed.


Passive and active proximity cards exist. Passive proximity cards, which are currently more widely used, are powered by radio frequency signals from the reader device. As such, passive cards have a more limited range and must be positioned relatively closer to the reader device to be read. Active proximity cards have an internal battery that provides power to the card. As such, active proximity cards may have a greater range than passive proximity cards.


Proximity cards may be used for various purposes, such as keyless door access, contactless payment, and other purposes. As such, a proximity card enables a function to be easily and conveniently performed for a user through automatic wireless communications. However, a user must make sure to carry a proximity card on their person, which can be cumbersome. If a person forgets to carry a proximity card (in addition to the other items that they may have to carry), they will be unable to access the applicable function. Furthermore, the user may need to carry multiple proximity cards corresponding to multiple separate functions that the user may need to access.


SUMMARY

This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.


Methods, systems, and computer program products are provided that enable a mobile computing device to emulate multiple proximity cards. A portable computing device may store a plurality of identification numbers. The portable computing device may respond to a proximity card reader interrogation transmitted by a reader device by providing one or more of the stored identification numbers in response. In one implementation, the portable computing device may transmit the stored identification numbers in sequence, one or more times, in response to the interrogation. Alternatively, the portable computing device may select one or more particular stored identification numbers to provide in response, based on a location or other attribute of the portable computing device. An applicable function may be enabled when an identification number provided by the portable computing device is determined as a match by the reader device.


In one implementation, a portable computing device includes an antenna, storage that stores a plurality of identification numbers, and a processor. The processor is configured to control modulation of an identification number of the plurality of identification numbers onto a carrier signal received by the antenna from a proximity card reader device.


The processor may be configured to select the identification number of the plurality of identification numbers based on at least one predetermined criteria.


In one aspect, the predetermined criteria includes a location of the portable computing device. The portable computing device includes a location monitor configured to determine the location of the portable computing device. The storage stores a plurality of geographic regions. Each of the identification numbers is associated with one of the geographic regions. The processor is configured to determine when the determined location of the portable computing device is in a geographic region of the plurality of geographic regions. The processor is configured to select the identification number associated with the geographic region in which the portable computing device is determined to be located. The processor is configured to control modulation of the selected identification number onto the carrier signal one or more times.


In another aspect, the predetermined criteria includes time. The storage stores a plurality of time indications. Each of the identification numbers is associated with at least one of the time indications. The processor is configured to determine a time indication most closely associated with a current time. The processor is configured to select the identification number associated with the determined time indication. The processor is configured to control modulation of the selected identification number onto the carrier signal.


The processor may be configured to enable a user to select the identification number from the plurality of identification numbers.


The processor may be configured to control modulation of the plurality of identification numbers onto the carrier signal in series, one or more times.


The portable computing device may include a screen lock module. The screen lock module enables a user of the portable computing device to unlock a screen of the portable computing device. The processor may enable modulation of the identification number onto the carrier signal when the screen is unlocked, and prevent modulation of the identification number onto the carrier signal when the screen is locked.


A value of at least one identification number may be periodically changed according to a predetermined factor to enhance security.


In another implementation, a method in a portable computing device is provided. A carrier signal transmitted by a proximity card reader device is received at an antenna of the portable computing device. An identification number of a plurality of identification numbers stored in storage of the portable computing device is accessed. The identification number is modulated onto the carrier signal one or more times.


The identification number may be selected from the stored identification numbers based on a predetermined criteria, such as a location of the portable computing device and/or a current time. Alternatively, all of the stored identification numbers may be modulated onto the carrier signal in series, one or more times.


A computer readable storage medium is also disclosed herein having computer program instructions stored therein that enable a portable computing device to emulate a proximity card according to the embodiments described herein.


Further features and advantages of the invention, as well as the structure and operation of various embodiments of the invention, are described in detail below with reference to the accompanying drawings. It is noted that the invention is not limited to the specific embodiments described herein. Such embodiments are presented herein for illustrative purposes only. Additional embodiments will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein.





BRIEF DESCRIPTION OF THE DRAWINGS/FIGURES

The accompanying drawings, which are incorporated herein and form a part of the specification, illustrate the present invention and, together with the description, further serve to explain the principles of the invention and to enable a person skilled in the pertinent art to make and use the invention.



FIG. 1 shows a block diagram of a communication system in which a portable computing device storing multiple identification numbers emulates a proximity card in communications with a reader device, according to an example embodiment.



FIG. 2 shows a flowchart providing a process for enabling a portable computing device storing multiple identification numbers to emulate a proximity card, according to an example embodiment.



FIG. 3 shows a process for emulating a proximity card by transmitting multiple identification numbers in series, according to an example embodiment.



FIG. 4 shows a process for emulating a proximity card by selecting an identification number from multiple identification numbers, according to an example embodiment.



FIG. 5 shows a block diagram of a portable computing device storing multiple identification numbers that emulates a proximity card in communications with a reader device, according to an example embodiment.



FIG. 6 shows a flowchart providing a process for enabling a portable computing device to select an identification number based on location, according to an example embodiment.



FIG. 7 shows a block diagram of storage of a portable computing device that stores multiple identification numbers with associated metadata, according to an example embodiment.



FIG. 8 shows a flowchart providing a process for enabling a portable computing device to select an identification number based on a current time, according to an example embodiment.



FIG. 9 shows a process for periodically modifying values of identification numbers for purposes of security, according to an example embodiment.



FIG. 10 shows a block diagram of an example computing device that may be used to implement embodiments of the present invention.





The features and advantages of the present invention will become more apparent from the detailed description set forth below when taken in conjunction with the drawings, in which like reference characters identify corresponding elements throughout. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digit(s) in the corresponding reference number.


DETAILED DESCRIPTION
I. Introduction

The present specification discloses one or more embodiments that incorporate the features of the invention. The disclosed embodiment(s) merely exemplify the invention. The scope of the invention is not limited to the disclosed embodiment(s). The invention is defined by the claims appended hereto.


References in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.


Numerous exemplary embodiments of the present invention are described as follows. It is noted that any section/subsection headings provided herein are not intended to be limiting. Embodiments are described throughout this document, and any type of embodiment may be included under any section/subsection. Furthermore, embodiments disclosed in any section/subsection may be combined with any other embodiments described in the same section/subsection and/or a different section/subsection in any manner.


II. Example Embodiments

A proximity card is a smart card that can be “read” without inserting it into a reader device, as required by earlier magnetic stripe cards such as credit cards. When used, a proximity card is transported (e.g., carried or held) near an electronic reader. For instance, the proximity card may be held against a reader pad. The reader wirelessly communicates with the card to read an identification number from the card. If it is confirmed that the read identification number is correct (matches an expected identification number), the applicable function may be performed.


NFC (near field communication) is a set of standards and techniques for radio communications between devices at very short ranges, such as when the devices are positioned in close proximity to each other, including being contacted together. Most proximity card based door access systems, as well as other systems that communicate with proximity cards, do not use NFC and are incompatible with current smart phones.


According to embodiments disclosed herein, a mobile or portable computing device such as a smart phone or a wearable computing device is enabled to operate as multiple proximity cards by storing multiple identification numbers corresponding to the multiple cards. The portable computing device may therefore replace one or more physical proximity cards for a user, and as such, the user need not carry proximity cards in addition to a smart phone or other portable electronic device that the user may typically carry anyway. Such a proximity card-enabled portable computing device may be used for keyless door access, contactless payment, and other functions fulfilled by proximity cards. Furthermore, such proximity card-enabled portable computing devices may be more easily provisioned than physical proximity cards (e.g., over the air (OTA) provisioning), and may provide improved security against cloning and theft relative to physical proximity cards (e.g., PIN unlock may be required before the card identification number is transmitted). As such, embodiments described herein provide convenience for users.


In one embodiment, a geographic area may be specified where a particular proximity card identification number stored by a portable computing device may be used (e.g., within a particular distance of a corresponding reader, doorway, facility, etc., where the card is applicable). This may be referred to as “geo-fencing.” The portable computing device may select the card/identification number based on the location of the user when the user contacts the portable computing device to the reader. For performance reasons or if a reader is located outside of the range of location sensing signals (e.g., GPS), the appropriate card identification number may be pre-selected, even before the user contacts the portable computing device to the reader as the user moves geographically. In this case, as the portable computing device tracks the user's location, the portable computing device may continuously or periodically determine which door reader (or set of door readers) the user is most likely to use next and pre-select the corresponding identification number.


Alternatively, in cases where geo-fencing is not used, or it is ambiguous which card to use, the portable computing device may be configured to transmit multiple sets of card data (ID numbers) sequentially to the reader. The reader may receive the sequentially transmitted ID numbers, and accept the appropriate ID number when received. This technique may be effective if the different cards use different modulation schemes or different code prefixes known to the reader, but this technique may have performance problems when more than one card of the same modulation scheme and same code prefixes are used. This may be because the reader performs a round-trip query with the access control system for each matching card and may ignore subsequent cards for a short period of time (as well as emit a “failed card” light/tone if it received an unacceptable card ID number before receiving the ID number for the matching card). When sending multiple cards sequentially, the portable computing device may predict which ID number is the most likely to be the correct ID number, and may transmit this ID number first, and may continue transmitting ID numbers in a descending order of likelihood. Each ID number may be modulated and repeated a set number of times depending on the modulation scheme, card format, and provisioning data on the portable computing device with configuration data about the card readers used at the premises. Likewise, in between each ID number, the portable computing device may determine an optimal gap time (if any) to wait and a modulation state (e.g., an antenna coil open circuited or closed) before modulating the next ID number, and this gap time and modulation state may depend on various factors including those described above.


The portable computing device may be configured to determine a likelihood that the collection of candidate ID numbers to be sequentially transmitted may cause performance or other problems with the reader, for example if all cards are of the same modulation scheme and have similar/identical prefixes. The phone may decide to prompt the user (e.g., may display a user interface) to select which card to present to the reader in this case, and/or in other situations.


Example embodiments are described in the following subsections for a proximity card emulation. For instance, the next subsection describes example embodiment for proximity card emulation with multiple proximity card ID numbers. The following subsection describes example embodiments for portable computing devices, and is followed by subsections describing embodiments for selection of identification numbers using geo-fencing and/or other predetermined criteria, and embodiments for managing security.


Example Proximity Card Emulation Embodiments


Embodiments may be implemented in a variety of environments and devices. For instance, FIG. 1 shows a block diagram of a communication system 100 in which a portable computing device 102 storing multiple identification numbers emulates a proximity card in communications with a reader device 104, according to an example embodiment. As shown in FIG. 1, computing device 102 includes a device antenna 106, storage 118, a processor 126, and a transceiver 128. Storage 118 stores a plurality of identification numbers 110a-110n. Reader device 104 includes a reader antenna 112, compare logic 116, storage 124, and a transceiver 130. Storage 124 stores a database 114. Storage 124 and database 114 may be local to reader device 104, or may be accessed remotely from reader device 104 (e.g., at a remote portion of an access control system in which reader device 104 is included). These features of communication system 100 are described as follows.


Computing device 102 may be any type of portable computing device, including a mobile computer or computing device (e.g., a Microsoft® Surface® device, a personal digital assistant (PDA), a laptop computer, a notebook computer, a tablet computer such as an Apple iPad™, a netbook, etc.), a mobile phone (e.g., a cell phone, a smart phone such as a Microsoft Windows® phone, an Apple iPhone, a Google Android™ phone, a Palm® device, a RIM Blackberry® device, etc.), a wearable computing device (such as a watch or glass) or other type of mobile computing device. Reader device 104 is a proximity card reader that may be implemented in one or more computer systems, and may be mobile (e.g., handheld) or stationary. In an embodiment, reader device 104 may include a surface or other designated area that a proximity card can contacted with by a user, although such a surface/area is not present or needed in all implementations.


Storage 118 and 124 may each include one or more of any type of storage mechanism to store data, including a magnetic disc (e.g., in a hard disk drive), an optical disc (e.g., in an optical disk drive), a magnetic tape (e.g., in a tape drive), a memory device such as a RAM device, a ROM device, etc., and/or any other suitable type of storage medium.


Portable computing device 102 may be used by one or more associated persons (“users”) for any number and type of functions. For example, in a smart phone implementation of computing device 102, a user may use computing device 102 to make phone calls (e.g., cellular calls, etc.), and the smart phone implementation of computing device 102 may have processing capability that enables one or more mobile applications to execute on computing device 102 (“mobile apps”). For instance, the user may interact with a browser of computing device 102 to browse the Internet, may use computing device 102 to check email, etc.


Furthermore, according to an embodiment, computing device 102 may be configured to emulate a proximity card for the user. As shown in FIG. 1, reader device 104 and portable computing device 102 may communicate with each other using wirelessly transmitted signals to enable a function to be performed, as enabled by the proximity card functionality of computing device 102.


For example, portable computing device 102 may be positioned proximate to reader antenna 112 of reader device 104. The user may hold portable computing device 102 near reader antenna 112, or portable computing device 102 may be in a pocket, purse, or otherwise be carried by the user to be positioned proximate to reader antenna 112. Reader device 104 wirelessly communicates with portable computing device 102 by reader antenna 112 transmitting an interrogation signal 120, which is received by an antenna of portable computing device 102, such as device antenna 106. Portable computing device 102 responds to signal 120 by transmitting one of identification numbers 110a-110n retrieved from storage 118 to reader device 104 in a response signal 122. Response signal 122 is received by reader antenna 112.


For instance, in an embodiment, portable computing device 102 may operate according to FIG. 2. FIG. 2 shows a flowchart 200 providing a process for enabling a portable computing device storing multiple identification numbers to emulate a proximity card, according to an example embodiment. Flowchart 200 and portable computing device 102 are described as follows. Further structural and operational embodiments will be apparent to persons skilled in the relevant art(s) based on the following description.


Flowchart 200 begins with step 202. In step 202, a carrier signal transmitted by a proximity card reader device is received at an antenna of the portable computing device. For example, as shown in FIG. 1, transceiver 130 of reader device 104 may transmit interrogation signal 120 from reader antenna 112. Interrogation signal 120 may be a carrier signal (i.e., a carrier field). In example embodiments, interrogation signal 120 may include a 125 kHz carrier signal or other carrier signal used for proximity card access. As shown in FIG. 1, transceiver 128 of portable computing device 102 receives interrogation signal 120 via device antenna 106. Transceiver 128 may provide an indication to processor 126 that the carrier signal of interrogation signal 120 is received. Processor 126 may be a physical processor (e.g., a processor chip, a microcontroller chip, a microprocessor, a central processing unit (CPU), etc.) or may be a collection of logic components configured to perform processing.


In step 204, an identification number of a plurality of identification numbers stored in storage of the portable computing device is accessed. For example, as shown in FIG. 1, in response to receiving carrier signal 120, processor 126 may access one or more of ID (identification) numbers 110a-110n in storage 118. ID numbers 110a-110n may each be a number of any length (e.g., any number of digits having values from 0 to 9, digits having values of 0 or 1, etc.), and may be formatted in any manner, including having any form of encoding, and/or being stored in an encrypted or non-encrypted form. When encrypted, processor 126 may be configured to decrypt one or more of ID numbers 110a-110n according to the applicable decryption process. Furthermore, any number of identification numbers may be stored in storage 118, corresponding to different proximity cards.


In step 206, the identification number is modulated onto the carrier signal. For example, as shown in FIG. 1, transceiver 128 may be configured to modulate one or more of ID numbers 110a-110n onto the received carrier signal, to transmit response signal 122 from antenna 106. For example, in one embodiment, antennas 106 and 112 may be loop antennas (coils) that communicate according to a proximity card communication technique (e.g., resonant energy transfer, etc.). For instance, when device antenna 106 is placed within communication range of reader antenna 112, the coil (and any load thereon, such as by a capacitor, etc.) form a tuned circuit, and can absorb and store energy from the carrier field. To communicate the ID number to reader device 104, transceiver 128 may be configured to vary a load (e.g., an impedance characteristic of antenna 106) provided to the carrier signal/field by antenna 106 (e.g., by opening and closing a loop of antenna 106 with a switch, or by other technique) in a sequence defined by the particular ID number being transmitted. This modulates a selected ID number onto the received carrier signal as response signal 122. Transceiver 130 receives response signal 122 via antenna 112, and can detect the changes in the carrier signal/field (e.g., variations in current draw) caused by the variations in the field load provided by antenna 106. Reader device 104 may use these detected changes to recover the ID number(s) from response signal 122.


For instance, in one embodiment, when a value of change in the electromagnetic field is minimum or least affected by antenna 106 (e.g., a loop of antenna 106 is open, or otherwise least modified or unmodified with a load), transceiver 130 may detect this change (or no change) in field value, which may be interpreted as a logic “0” (or “1”). When a value of change in the electromagnetic field is maximum or most affected by antenna 106 (e.g., a loop of antenna 106 is closed, or otherwise modified with a load), transceiver 130 may detect this field value, which may be interpreted as a logic “1” (or “0”). A string of detected logic “1”s and “0”s can be equated to the ID number being transmitted.


At reader device 104, functionality may be enabled if the ID number received from portable computing device 102 matches an expected value. Compare logic 116 at reader device 104 may compare each received ID number transmitted by portable computing device 102 to a list of acceptable ID numbers to determine whether functionality associated with reader device 104 may be enabled. For instance, compare logic 116 may receive ID number 110a from transceiver 130. Compare logic 116 may compare ID number 110a to one or more expected ID numbers in database 114, which is stored in storage 124. If compare logic 116 determines that the received ID number matches an expected ID number in database 114, the applicable function may be enabled to be performed by reader device 104 or by another mechanism (e.g., a monetary transaction may be enabled, access to a facility may be granted by unlock and/or opening a door, etc.). If compare logic 116 determines that the received ID number does not match any expected ID numbers in database 114, the applicable function may be denied, and a “failed card” light/tone and/or other indication of a failure may be enacted. Compare logic 116 may perform this comparison for each received ID number transmitted by portable computing device 102, at least until a matching ID number is received, or portable computing device 102 ceases transmitting ID numbers.


As such, portable computing device 102 enables a function to be easily and conveniently performed for a user through automatic wireless communications. Furthermore, by using portable computing device 102, the user does not need to carry separate proximity cards on their person, in addition to portable computing device 102.


It is noted that when portable computing device 102 stores multiple ID numbers, such as ID numbers 110a-110n, portable computing device 102 may provide one or more of the ID numbers to reader device 104 in response to interrogation signal 102. For instance, in one embodiment, portable computing device 102 may operate according to FIG. 3. FIG. 3 shows a step 302 for emulating a proximity card by transmitting multiple identification numbers in series, according to an example embodiment. In step 302, the plurality of identification numbers is modulated onto the carrier signal in series in response to receiving the carrier signal. In an embodiment, transceiver 128 may be configured to modulate each of ID numbers 110a-110n onto the received carrier signal, to transmit response signal 122 from antenna 106. For instance, processor 126 may access each of ID numbers 110a-110n in storage 118, and may provide them one-by-one, in a serial fashion, to transceiver 128 to be modulated onto interrogation signal 120 to transmit response signal 122. In this manner, reader device 104 receives each of ID numbers 110a-110n, and each of ID numbers 110a-110n may be compared against database 114 in an attempt to enable the functionality associated with reader device 104. It is noted that processor 126 may provide ID numbers 110a-110n to transceiver 128 in series multiple times. In this manner, ID numbers 110a-110n may be transmitted in series in response signal 122 multiple times, enabling an improved likelihood of ID numbers 110a-110n being received by reader device 104 in a poor communication environment.


Alternatively, in another embodiment, portable computing device 102 may operate according to FIG. 4. FIG. 4 shows a step 402 for emulating a proximity card by selecting an identification number from multiple identification numbers, according to an example embodiment. In step 402, the identification number is selected from the plurality of identification numbers based on at least one predetermined criteria. In an embodiment, processor 126 may select one (or a subset) of ID numbers 110a-110n to provide to transceiver 128 to modulate onto interrogation signal 120, rather than transmitting all of ID numbers 110a-110n in response. In this manner, time is saved in communications by avoiding transmitting ID numbers that are unlikely to be accepted by reader device 102, and security is enhanced by not transmitting ID numbers that may otherwise be recorded and thereby stolen by others. Portable computing device 102 may select an ID number (or a subset of ID numbers) for transmission based on any type of predetermined criteria, including location, time of day, and/or any other suitable criteria. Examples of such embodiments are described in more detail further below.


Example Portable Computing Device Embodiments


Portable computing device 102 may be configured in various ways to be enabled perform proximity card emulation with regard to multiple ID numbers. For instance, FIG. 5 shows a block diagram of a portable computing device 500, according to an example embodiment. As shown in FIG. 5, portable computing device 500 includes storage 118, a main processor 502, a modulation circuit 506, a sensor processor 516, an antenna 524, and a carrier detection module 530. Main processor 502 includes at least one application 510, platform code 512, and a driver 514, and sensor processor 516 includes a modulation code 518. These features of portable computing device 500 are described as follows.


Main processor 502 is a core, central processor of portable computing device 500. Sensor processor 516 is a processor that may optionally be present that is configured for managing sensors associated with portable computing device 500. In other embodiments, sensor processor 516 may not be present. In such an embodiment, main processor 502 may perform the functions of sensor processor 516 described herein, and/or one or more other auxiliary processors may be present that perform those functions. As shown in FIG. 5, main processor 502 and sensor processor 516 may be included in a same integrated circuit chip 508, or main processor 502 and sensor processor 516 may be included in separate integrated circuit chips. Furthermore, chip 508 (or the chip corresponding to sensor processor 502) may include one or both of a SPI port or pin 520 or a GPIO port or pin 522.


Application 510 may be one of one or more applications hosted by portable computing device 500, which may include one or more first and/or third party applications. For instance, in an embodiment, application 510 may be an application that utilizes a proximity card ID number (e.g., an electronic payment application, etc.). Application 510 may be used to provision one or more ID numbers, to select an ID number from a list of ID numbers for transmission in response to a carrier signal, and/or for other functions related to ID numbers. Platform code 512 and driver 514 may be present to enable functionality described herein for modulation code 518 when sensor processor 516 is not present.


Antenna 524 may be a loop or coil antenna that includes any number of one or more loops or coils, or may be another type of antenna suitable for responding to proximity card reader interrogations. In one embodiment, antenna 524 may be an antenna dedicated to responding to proximity card reader interrogations for portable computing device 500. Alternatively, antenna 524 may be an antenna of portable computing device 500 that is used for responding to proximity card reader interrogations as well as for performing other communications for portable computing device 500. For instance, in an embodiment, antenna 524 may be a wireless charging antenna. In such an embodiment, antenna 524 may receive wireless charging signals from a remote wireless charger. The received wireless charging signals may be converted to a charge current used to charge a rechargeable battery of portable computing device 500 (e.g., by a wireless charging controller of portable computing device 500). Furthermore, the wireless charging antenna may be used to respond to proximity card reader interrogations as described herein. Example embodiments for a portable computing device having an antenna that may be used for responding to proximity card reader interrogations and receiving wireless charging signals from a remote wireless charger are described in co-pending, commonly owned U.S. patent application Ser. No. ______, titled “Smartphone Proximity Card Emulation,” filed on ______, which is incorporated by reference in its entirety herein.


Accordingly, portable computing device 500 of FIG. 5 may operate according to flowchart 200 of FIG. 2, such that in step 202, a carrier signal may be received from a reader. As shown in FIG. 5, interrogation signal 120 may be received at antenna 524 from a reader device, such as reader device 104 of FIG. 1. Antenna 524 may output a carrier signal 532 on a conductor (e.g., a metal trace) or conductor pair that contains the carrier frequency of interrogation signal 120. Carrier signal 532 may be received by carrier detection module 530. Carrier detection module 530 is configured to detect whether a carrier frequency is received in carrier signal 532 that matches a carrier frequency transmitted by a reader device, such as 125 kHz or 134 kHz. Carrier detection module 530 may be configured to detect a received carrier frequency in any manner, as would be known to persons skilled in the relevant art(s). For instance, carrier detection module 530 may compare a frequency received in carrier signal 532 to one or more predetermined, internally generated frequencies (e.g., generated by oscillators, clock circuits, etc.) matching desired carrier frequencies. If carrier detection module 530 detects a carrier frequency of a reader device on carrier signal 532, carrier detection module 530 may generate detected carrier indication 534, which indicates a carrier frequency was detected, and may include the carrier frequency itself conditioned into digital form (e.g., to be used as a clock). Carrier detection module 530 may generate detected carrier indication 534 to include a digitized form of the carrier frequency in any manner (e.g., using an analog-to-digital (A/D) converter, a Zener diode, or other technique).


As shown in FIG. 5, sensor processor 516 may receive detected carrier indication 534 on a GPIO (general purpose input-output) port 522. If asleep or otherwise occupied, sensor processor 516 may be awakened or interrupted by carrier indication 534. GPIO port 522 is a general purpose input-output port (e.g., a pin) of sensor processor 516, which can be configured to transmit and receive various types of signals. In other embodiments, another type of processor port may be used. When detected carrier indication 534 is received, sensor processor 516 may perform step 204 of flowchart 200 (FIG. 2). In such case, sensor processor 516 may be configured to retrieve one or more of ID numbers 110a-110n from storage 118. Sensor processor 516 may be configured to provide the one or more of ID numbers 110a-110n to modulation circuit 506 for transmission in response to interrogation signal 120 according to step 206 of flowchart 200.


For example, in an embodiment, modulation code 518 of sensor processor 516 may be configured to retrieve an ID number from storage 118, and to output the retrieved ID number at a serial port 520 of sensor processor 516 as timed ID signal 536. Serial port 520 is a serial port of sensor processor 516 that may be used to output data serially, according to desired timing, in a more accurate manner than a GPIO port. While software-based card emulation implementations may implement “bit banging” to output a modulation bit stream from a GPIO pin, such a technique typically requires microsecond timing accuracy on the part of the processor and is relatively more processor intensive. As such, in an embodiment, serial port 520 may be used to output timed ID signal 536 as a modulation control signal. The clock used by modulation code 518 to time the output of timed ID signal 536 may be an internally generated clock or may be the clock included in detected carrier indication 534 (which may be derived from the incoming carrier signal). Modulation code 518 controls serial port 520 to output bits of the retrieved ID number in timed ID signal 536 in sync with the received carrier signal (or with another clock signal) according to a predetermined timing (e.g., with bit lengths and spacing according to the bit transmission requirements of the applicable proximity card communication protocol being used). Timed ID signal 536 may be generated in a manner to eliminate idle time between bit groupings (e.g., bytes) that may be present in conventional serial bit streams, and to continuously output each bit for each clock cycle driven by the carrier signal. Sensor processor 516 or modulation circuit 506 may configure a logic state of the output during idle time, if desired, to minimize any error in the output modulation seen by the reader as a result of the idle time. If an idle time between bit groupings cannot be avoided in an implementation, the idle time may be configured to be as predictable and short as possible, with the bit groups as large as possible. Serial port 520 may be configured to not require any additional signaling (e.g., such as a slave select), or the signaling may be generated locally (e.g., by hardwired pull up/down).


In an embodiment, an asynchronous serial port may be present in portable computing device 500, and may be used for readers that are not sensitive to the modulation signal having to be in sync with the carrier signal frequency. In this case, the received carrier signal may be used to determine whether a reader or wireless charger is in range, but not used as a clock input. The asynchronous serial port may be configured similarly to a synchronous port, except that the clock signal may be configured to match the expected frequency of the card reader (e.g., generally 125 kHz or less commonly 134 kHz). Note that in other embodiments, another type of processor port may be used to output timed ID signal 536, rather than serial port 520.


As shown in FIG. 5, modulation circuit 506 receives timed ID signal 536. Modulation circuit 506 is configured to modulate the carrier field at antenna 524 with the bit stream included in timed ID signal 536. In an embodiment, modulation circuit 506 may be configured to modulate the carrier field with the bits as they are received in timed ID signal 536. Modulation circuit 506 may be configured in various ways to perform the modulation, as would be known to persons skilled in the relevant art(s) from the teachings herein. For instance, modulation circuit 506 may include one or more switches (e.g., a transistor, such as a MOSFET (metal oxide semiconductor field effect transistor), etc.). A switch of modulation circuit 506 may be coupled across the first and second ends of a coil of antenna 524, may couple a load to antenna 524, or may be coupled to antenna 524 in another manner. Modulation circuit 506 may open and close the switch (or switches) to change a load that antenna 524 places on the carrier field generated by the reader device, to modulate the ID number onto the carrier field. In this manner, response signal 122 is generated, and the included ID number can be received by the reader device. If the received ID number is valid, the reader device may enable a function for the user of portable computing device 500 (e.g., opening a door, enabling a monetary transaction, etc.).


One or more of ID numbers 110a-110n may be transmitted from portable computing device 500 in this manner (e.g., in series), and the transmission of the one or more ID numbers may be repeated any number of times, if desired, for improved probability of being received by the reader device. Each ID number may be spaced in time from the next ID number in the serial stream by any suitable amount of time. Accordingly, portable computing device 500 is enabled to emulate one or more proximity cards. Note that when a carrier signal is received, it may not be known to portable computing device 500 whether the carrier signal was transmitted by a proximity card reader. As such, portable computing device 500 may be configured in various ways to respond when the originator of a received carrier signal is not known. For example, in some embodiments, portable computing device 500 may automatically initially assume that a received carrier signal is transmitted by a reader. As such, portable computing device 500 may automatically enter a proximity card emulation mode, and begin transmitting one or more ID numbers in response. After transmitting the ID number(s) for a predetermined time period or duration, portable computing device 500 may cease transmitting the ID number(s). The predetermined time duration may have any length, such as a second, two seconds, further numbers of seconds, a portion of a second (e.g., a half second, 100 milliseconds, etc.), or any other time duration.


Alternatively, in some other embodiments, portable computing device 500 may initially analyze the carrier signal in an attempt to determine whether the carrier signal was transmitted by a proximity card reader, and may act in accordance with the determination (e.g., transmit the ID number(s) if the carrier signal is determined to be transmitted by a reader, do not transmit the ID number(s) if the carrier signal is determined to not be transmitted by a reader).


Proximity card carrier frequencies include 125 kHz and 134 kHz, and thus, in one embodiment, a “proximity card carrier frequency range” may be considered to be the frequency range of 125 kHz to 134 kHz. A proximity card carrier frequency range, which is a kilohertz carrier frequency range, is distinguished from and non-overlapping with a near field communication (NFC) communication carrier frequency range, which is a megahertz frequency range (e.g., including 13.56 MHz). The lower proximity card frequencies have a relatively low data transfer rate compared to NFC data communications occurring with the higher NFC communication frequency range (e.g., data rate of 106 kbit/sec to 424 kbit/sec).


Example Embodiments Using Predetermined Criteria for Selecting ID Numbers


As described above with respect to FIG. 4, portable computing device 102 may emulate a proximity card by selecting an identification number from multiple identification numbers based on predetermined criteria. In an embodiment, processor 126 may select one (or a subset) of ID numbers 110a-110n to provide to transceiver 128 to modulate onto interrogation signal 120, rather than transmitting all of ID numbers 110a-110n in response. Portable computing device 102 may select an ID number (or a subset of ID numbers) for transmission based on any type of predetermined criteria, including location, time of day, and/or any other suitable criteria.


In an embodiment, portable computing device 500 of FIG. 5 may be configured to select an identification number from multiple identification numbers based on predetermined criteria to respond to a reader interrogation. As shown in FIG. 5, portable computing device 500 includes a location monitor 504, and sensor processor 516 includes a time matcher 544 and a location matcher 546.


Location matcher 546 and location monitor 504 enable portable computing device 500 to select an ID number (or a subset of ID numbers) for transmission based on location. For instance, when a carrier signal is received (e.g., step 202 of FIG. 2), location monitor 504 may determine a location of portable computing device 500 to generate determined location 548. Location matcher 546 compares determined location 548 to locations associated with ID numbers 110a-110n to select one or more of ID numbers 110a-110n to transmit in response to the carrier signal (e.g., steps 204 and 206 of FIG. 2).


In such an embodiment, portable computing device 500 may operate according to FIG. 6. FIG. 6 shows a flowchart 600 providing a process for enabling a portable computing device to select an identification number based on location, according to an example embodiment. Flowchart 600 and portable computing device 500 are described as follows. Further structural and operational embodiments will be apparent to persons skilled in the relevant art(s) based on the following description.


In step 602 of flowchart 600, the location of the portable computing device is determined. In an embodiment, location monitor 504 may determine a location of portable computing device 500. In one embodiment, location monitor 504 may receive detected carrier indication 534 from carrier detection module 530 (or from sensor processor 516) as a trigger to generate a location determination. Location monitor 504 may be configured to determine a location of portable computing device 500 in various ways, including using GPS (global positioning system) techniques, local positioning systems (e.g., using cellular base stations, Wi-Fi access points, radio towers, etc.), and/or using other positioning techniques, as would be known to persons skilled in the relevant art(s).


For instance, location monitor 504 may include one or more receivers that receive GPS signals from satellites for the purpose of determining a current location on Earth of the device. Location monitor 504 may calculate its location by timing the signals transmitted by the GPS satellites. Location monitor 504 may determine the transit time of each signal and may calculate the distance to each satellite. These distances, along with the locations of the satellites, may be used in a positioning algorithm (e.g., trilateration, etc.) to determine the location of location monitor 504. Location monitor 504 may determine the location in other ways, as would be known to persons skilled in the relevant art(s). Location monitor 504 may indicate the determined location in determined location 548 in any format, such as GPS coordinates, latitude, longitude, altitude, etc.


In step 604, whether the determined location of the portable computing device is in a geographic region of a plurality of geographic regions associated with the plurality of identification numbers is determined. In an embodiment, location matcher 546 compares determined location 548 to locations associated with ID numbers 110a-110n to select one or more of ID numbers 110a-110n to transmit in response to the carrier signal.


For instance, in an embodiment, each of ID numbers 110a-110n may include associated metadata. FIG. 7 shows a block diagram of storage 118 that stores ID numbers with associated metadata, according to an example embodiment. As shown in FIG. 7, storage 118 includes ID numbers 702a and 702b, and may include any number of further ID numbers (not shown in FIG. 7 for reasons of brevity). Furthermore, ID numbers 702a and 702b each include associated metadata. For instance ID number 702a includes a geographic region 704a and a time indication 706a, and ID number 702b includes a geographic region 704b and a time indication 706b. ID numbers 702a and 702b may each include additional and/or alternative metadata (e.g., a number of times to repeat the ID number in response to a carrier signal, etc.).


Geographic region 704a is an indication of a geographic region associated with ID number 702a, and geographic region 704b is an indication of a geographic region associated with ID number 702b. For instance, geographic regions 704a and 704b may each indicate a building or other facility, a two- or three-dimensional area defined by geographic coordinates (including a single contiguous area or multiple separate areas), a radial distance from a central location (e.g., a location of a reader), and/or other indication of a geographic region. Geographic regions 704a and 704b indicate respective geographic areas in which reader devices for ID numbers 702a and 702b are located. Thus, ID number 702a is valid in geographic region 704a and may be transmitted in response to a reader device located therein, and ID number 702b is valid in geographic region 704b and may be transmitted in response to a reader device located therein.


Referring back to FIGS. 5 and 6, location matcher 546 compares determined location 548 to geographic regions associated with ID numbers 110a-110n. If determined location 548 is within one or more of the geographic regions, operation of flowchart 600 proceeds from step 604 to step 606. If determined location 548 is not within any of the geographic regions, operation proceeds to step 610, where flowchart 600 ends.


In step 606, the identification number of the plurality of identification numbers associated with the geographic region in which the portable computing device is determined to be located is selected. In an embodiment, sensor processor 516 selects the one or more ID numbers of ID numbers 110a-110n that were indicated by location matcher 546 to have associated geographic regions containing determined location 548.


In step 608, the selected identification number is modulated onto the carrier signal. In an embodiment, according to step 206 of flowchart 200, sensor processor 516 transmits the selected ID number(s) to modulation circuit 506 via timed ID signal 536, and modulation circuit 506 modulates the ID number(s) onto the received carrier signal, to transmit response signal 122 from antenna 106.


In this manner, portable computing device 500 may select one or more card/identification numbers based on the location of the user when the user contacts portable computing device 500 to a reader. Such an embodiment may provide benefits with regards to security, because an identification number may not be transmitted from portable computing device 500 unless portable computing device 500 is within the geographic region associated with the identification number. Therefore, devices that transmit a proximity card reader carrier signal in an attempt to illicitly obtain an ID number will not receive the ID number in a response from portable computing device 500 (unless portable computing device 500 is within the designated geographic region for the ID number).


In another embodiment, time matcher 544 may enable portable computing device 500 to select an ID number (or a subset of ID numbers) for transmission based on time. For instance, when a carrier signal is received (e.g., step 202 of FIG. 2), time matcher 544 may determine a current time (a time approximately at which the carrier signal is received). Time matcher 544 compares the determined time to time indications associated with ID numbers 110a-110n to select one or more of ID numbers 110a-110n to transmit in response to the carrier signal (e.g., steps 204 and 206 of FIG. 2).


In such an embodiment, portable computing device 500 may operate according to FIG. 8. FIG. 8 shows a flowchart 800 providing a process for enabling a portable computing device to select an identification number based on a current time, according to an example embodiment. Flowchart 800 and portable computing device 500 are described as follows. Further structural and operational embodiments will be apparent to persons skilled in the relevant art(s) based on the following description.


In step 802 of flowchart 800, a plurality of time indications is stored, each of the plurality of the identification numbers associated with at least one of the time indications. As described above, each of ID numbers 110a-110n may include associated metadata, including a time indication. For instance, as shown in FIG. 7, ID number 702a may include time indication 706a, and ID number 702b may include time indication 706b. Time indication 706a is an indication of one or more times (e.g., a time range) associated with ID number 702a, and time indication 706b is an indication of one or more times associated with ID number 702b. Time indications 706a and 706b may each indicate times at which the user of portable computing device 500 typically uses, and/or is authorized to use, ID numbers 702a and 702b, respectively, to access functionality associated with readers. Thus, each of time indications 706a and 706b may indicate a particular time of use, a range of times of use, or other time indication at which ID numbers 702 and 702b may be used to access functionality, respectively. ID number 702a may be transmitted in response to a reader device at, near, or during time indication 706a, and ID number 702b may be transmitted in response to a reader device at, near, or during time indication 706b.


In step 804, a time indication of the plurality time indications most closely associated with a current time is determined. In an embodiment, time matcher 544 compares the determined time to the time indications associated with ID numbers 110a-110n. In one embodiment, time matcher 544 indicates one or more of ID numbers 110a-110n that have time indications that overlap the determined time. In another embodiment, if there are no ID numbers 110a-110n that have time indications that overlap the determined time, time matcher 544 may indicate the ID number having the closest time indication to the determined time.


In step 806, the identification number of the plurality of identification numbers associated with the determined time indication is selected. In an embodiment, sensor processor 516 selects the one or more ID numbers of ID numbers 110a-110n that were indicated by time matcher 544 in step 804.


In step 808, the selected identification number is modulated onto the carrier signal. In an embodiment, according to step 206 of flowchart 200, sensor processor 516 transmits the selected ID number(s) to modulation circuit 506 via timed ID signal 536, and modulation circuit 506 modulates the ID number(s) onto the received carrier signal, to transmit response signal 122 from antenna 106.


In this manner, portable computing device 500 may select one or more card/identification numbers based on the time at which the user contacts portable computing device 500 to a reader. Such an embodiment may provide benefits with regards to security, because an identification number may not be transmitted from portable computing device 500 unless portable computing device 500 is within or close to the time indication associated with the identification number. Therefore, devices that transmit a proximity card reader carrier signal in attempts to illicitly obtain an identification number will not receive a response from portable computing device 500 (unless the current time is within or near the designated time indication).


In further embodiments, additional and/or alternative predetermined criteria may be used to select ID numbers for response. For instance, an ID number may be selected from ID numbers 110a-110n based on an encoding of the ID number, a format of the ID number, an encryption type of the ID number, a communication protocol of the reader, etc.


In still another embodiment, a user may be enabled to manually select one of ID numbers 110a-110n to provide in response to a reader interrogation. For instance, as shown in FIG. 5, sensor processor 516 includes a UI (user interface) module 540. Note that in another embodiment, application 510 may include UI module 540. In an embodiment, UI module 540 may generate a user interface, such as a graphical user interface (GUI) displayed by a display of portable computing device 500, that a user may interact with to select an ID number to be transmitted.


For example, when a carrier signal is received (step 202 of FIG. 2), UI module 540 may generate a GUI that is displayed by portable computing device 500. The GUI may list ID numbers 110a-110n, and the user may be enabled to select one of the displayed ID numbers to be transmitted (steps 204 and 206 of FIG. 2). In an embodiment, the GUI may display a subset of ID numbers 110a-110n that was determined according to one or more predetermined criteria such as geo-fencing (e.g., according to flowchart 600 of FIG. 6) and/or by time (according to flowchart 800 of FIG. 8), and the user may be enabled to select one of the displayed ID numbers of the subset to be transmitted.


The user may be enabled to select a particular ID number for transmission in various ways. For instance, the user may interact with a touch screen, a keyboard, a thumb wheel, a stick, and/or other virtual or physical interface of portable computing device 500, and/or may make a gesture, may use voice, and/or may use other non-touch interface of portable computing device 500. In one exemplary embodiment, to select a particular ID number, the user may use a combination of UI elements, such as holding down a button of portable computing device 500 while typing in a PIN (personal ID number) to unlock a screen of portable computing device 500


Example Embodiments for Managing Security


As described above, proximity card-enabled portable computing devices may be more easily provisioned than physical proximity cards (e.g., over the air (OTA) provisioning), and may provide improved security against cloning and theft relative to physical proximity cards (e.g., PIN unlock may be required before the card identification number is transmitted). As such, embodiments described herein provide convenience for users.


In an embodiment, portable computing device 500 of FIG. 5 may be configured for management of security. As shown in FIG. 5, sensor processor 516 includes a screen lock module 538 and a security module 542. These features of portable computing device 500 are described as follows.


Screen lock module 538 is configured to lock a screen of portable computing device 500 from user access, and to enable a user to enter a code and/or perform other action to unlock the screen. For instance, the user may enter a PIN to portable computing device 500. Screen lock module 538 receives the entered PIN, and if the entered PIN matches a stored PIN, unlocks the screen for the user.


In an embodiment, portable computing device 500 is not enabled to transmit an ID number in response to a received carrier signal unless the screen is unlocked. When the screen is unlocked by the user, screen lock module 538 may transmit an unlocked screen indication to security module 542. After receiving the unlocked screen indication, security module 542 may provide a response enabled indication to modulation code 518. The response enabled indication enables modulation code 518 to transmit an ID number from sensor processor 516 for transmission by modulation circuit 506 via antenna 524. As such, security module 542 may be present to enable or disable modulation code 518 from transmitting one or more ID numbers based on one or more security factors or criteria (such as the screen being unlocked).


Furthermore, security module 542 may be configured to maintain security over ID numbers 110a-110n. Security module 542 may perform this function in various ways. For instance, FIG. 9 shows a step 902 for periodically modifying values of identification numbers for purposes of security, according to an example embodiment. In an embodiment, security module 542 may perform step 902.


In step 902, a value of at least one identification number may be changed according to a predetermined factor to enhance security. For instance, in one embodiment, each time that an ID number is transmitted in response to a carrier signal, every N times that the ID number is transmitted in response to a carrier signal (where N≧1), every time a predetermined time period passes, and/or based on another predetermined factor, security module 542 may generate or retrieve a new value for the ID number. In one example (an “online” technique), security module 542 may communicate with a remote server (e.g., via transceiver 128 and device antenna 106 of FIG. 1, or using other communication mechanism). Security module 542 may transmit the ID number to the remote server, and in response, may receive a replacement value for the ID number. Alternatively (an “offline” technique), security module 542 may generate a replacement value for the ID number, and the replacement value for the ID number may also be separately generated at the remote server. In this case, a secure algorithm may be used at both the remote server and security module 542 to generate the replacement value to have the same value at both locations.


In each case, security module 542 may store the new replacement value in storage 118, overwriting the stored, prior value of the ID number. The remove server also replaces the remote version of the ID number with the new replacement value at the reader device (e.g., in database 124 in FIG. 1). In this manner, in future interrogations, the reader device compares the new replacement value with received ID numbers to determine matches. By changing ID numbers in this manner, individuals that manage to intercept ID numbers using illicit techniques may not be able to use the intercepted ID numbers (because the ID numbers may have changed).


Example Portable Computing Device Embodiments


Portable computing device 102, reader device 104, compare logic 116, processor 126, portable computing device 500, main processor 502, location monitor 504, modulation circuit 506, application 510, platform code 512, driver 514, sensor processor 516, modulation code 518, carrier detection module 530, screen lock module 538, UI module 540, security module 542, time matcher 544, location matcher 546, flowchart 200, step 302, step 402, flowchart 600, flowchart 800, and/or step 902 may be implemented in hardware, or hardware combined with software and/or firmware. For example, portable computing device 102, reader device 104, compare logic 116, processor 126, portable computing device 500, main processor 502, modulation circuit 506, application 510, platform code 512, driver 514, sensor processor 516, modulation code 518, carrier detection module 530, screen lock module 538, UI module 540, security module 542, time matcher 544, location matcher 546, flowchart 200, step 302, step 402, flowchart 600, flowchart 800, and/or step 902 may be implemented as computer program code/instructions configured to be executed in one or more processors and stored in a computer readable storage medium. Alternatively, portable computing device 102, reader device 104, compare logic 116, processor 126, portable computing device 500, main processor 502, modulation circuit 506, application 510, platform code 512, driver 514, sensor processor 516, modulation code 518, carrier detection module 530, screen lock module 538, UI module 540, security module 542, time matcher 544, location matcher 546, flowchart 200, step 302, step 402, flowchart 600, flowchart 800, and/or step 902 may be implemented as hardware logic/electrical circuitry.


For instance, in an embodiment, one or more of compare logic 116, processor 126, main processor 502, modulation circuit 506, application 510, platform code 512, driver 514, sensor processor 516, modulation code 518, carrier detection module 530, screen lock module 538, UI module 540, security module 542, time matcher 544, location matcher 546, flowchart 200, step 302, step 402, flowchart 600, flowchart 800, and/or step 902 may be implemented together in a system-on-chip (SoC). The SoC may include an integrated circuit chip that includes one or more of a processor (e.g., a central processing unit (CPU), microcontroller, microprocessor, digital signal processor (DSP), etc.), memory, one or more communication interfaces, and/or further circuits and/or embedded firmware to perform its functions.



FIG. 10 depicts an exemplary implementation of a computing device 1000 in which embodiments of the present invention may be implemented. For example, portable computing device 102, reader device 104, and/or portable computing device 500 may be implemented in one or more computing devices similar to computing device 1000, including one or more features of computing device 1000 and/or alternative features. The description of computing device 1000 provided herein is provided for purposes of illustration, and is not intended to be limiting. Embodiments of the present invention may be implemented in further types of computer systems, as would be known to persons skilled in the relevant art(s).


As shown in FIG. 10, computing device 1000 includes one or more processors 1002, a system memory 1004, and a bus 1006 that couples various system components including system memory 1004 to processor 1002. Bus 1006 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. System memory 1004 includes read only memory (ROM) 1008 and random access memory (RAM) 1010. A basic input/output system 1012 (BIOS) is stored in ROM 1008.


Computing device 1000 may include one or more of the following drives: a hard disk drive 1014 for reading from and writing to a hard disk, a magnetic disk drive 1016 for reading from or writing to a removable magnetic disk 1018, and an optical disk drive 1020 for reading from or writing to a removable optical disk 1022 such as a CD ROM, DVD ROM, or other optical media. Hard disk drive 1014, magnetic disk drive 1016, and optical disk drive 1020 are connected to bus 1006 by a hard disk drive interface 1024, a magnetic disk drive interface 1026, and an optical drive interface 1028, respectively. The drives and their associated computer-readable media provide nonvolatile storage of computer-readable instructions, data structures, program modules and other data for the computer. Although a hard disk, a removable magnetic disk and a removable optical disk are described, other types of computer-readable storage media can be used to store data, such as flash memory cards, digital video disks, RAMs, ROMs, and the like.


A number of program modules may be stored on the hard disk, magnetic disk, optical disk, ROM, or RAM. These programs include an operating system 1030, one or more application programs 1032, other program modules 1034, and program data 1036. Application programs 1032 or program modules 1034 may include, for example, computer program logic (e.g., computer program code or instructions) for implementing compare logic 116, processor 126, main processor 502, modulation circuit 506, application 510, platform code 512, driver 514, sensor processor 516, modulation code 518, carrier detection module 530, screen lock module 538, UI module 540, security module 542, time matcher 544, location matcher 546, flowchart 200, step 302, step 402, flowchart 600, flowchart 800, and/or step 902 (including any step of flowcharts 200, 700, and 800), and/or further embodiments described herein.


A user may enter commands and information into the computing device 1000 through input devices such as keyboard 1038 (which may be physical or virtual) and pointing device 1040, when present. Other input devices (not shown) may include a microphone, joystick, game pad, scanner, a touch screen and/or touch pad, a voice recognition system to receive voice input, a gesture recognition system to receive gesture input, or the like. These and other input devices are often connected to processor 1002 through a serial port interface 1042 that is coupled to bus 1006, but may be connected by other interfaces, such as a parallel port, game port, or a universal serial bus (USB).


A display screen 1044 is also connected to bus 1006 via an interface, such as a video adapter 1046. Display screen 1044 may be external to, or incorporated in computing device 1000. Display screen 1044 may display information, as well as being a user interface for receiving user commands and/or other information (e.g., by touch, finger gestures, virtual keyboard, etc.). In addition to display screen 1044, computing device 1000 may include other internal or peripheral output devices (not shown) such as speakers and printers.


Computing device 1000 is connected to a network 1048 (e.g., the Internet) through an adaptor or network interface 1050, a modem 1052, or other means for establishing communications over the network. Modem 1052, which may be internal or external, may be connected to bus 1006 via serial port interface 1042, as shown in FIG. 10, or may be connected to bus 1006 using another interface type, including a parallel interface.


As used herein, the terms “computer program medium,” “computer-readable medium,” and “computer-readable storage medium” are used to generally refer to media such as the hard disk associated with hard disk drive 1014, removable magnetic disk 1018, removable optical disk 1022, as well as other media such as flash memory cards, digital video disks, RAMs, ROMs, and further types of physical storage media. Such computer-readable storage media are distinguished from and non-overlapping with communication media (do not include communication media). Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wireless media such as acoustic, RF, infrared and other wireless media, as well as signals transmitted over wires. Embodiments are also directed to such communication media.


As noted above, computer programs and modules (including application programs 1032 and other program modules 1034) may be stored on the hard disk, magnetic disk, optical disk, ROM, or RAM. Such computer programs may also be received via network interface 1050, serial port interface 1042, or any other interface type. Such computer programs, when executed or loaded by an application, enable computing device 1000 to implement features of embodiments of the present invention discussed herein. Accordingly, such computer programs represent controllers of the computing device 1000.


The invention is also directed to computer program products comprising software stored on any computer useable medium. Such software, when executed in one or more data processing devices, causes a data processing device(s) to operate as described herein. Embodiments of the present invention employ any computer-useable or computer-readable medium, known now or in the future. Examples of computer-readable mediums include, but are not limited to storage devices such as RAM, hard drives, floppy disks, CD ROMs, DVD ROMs, zip disks, tapes, magnetic storage devices, optical storage devices, MEMs, nanotechnology-based storage devices, and the like.


VI. Conclusion

While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. It will be understood by those skilled in the relevant art(s) that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined in the appended claims. Accordingly, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.

Claims
  • 1. A portable computing device, comprising: an antenna;storage that stores a plurality of identification numbers; anda processor configured to control modulation of an identification number of the plurality of identification numbers onto a carrier signal received by the antenna from a proximity card reader device.
  • 2. The portable computing device of claim 1, wherein the processor is configured to select the identification number of the plurality of identification numbers based on at least one predetermined criteria.
  • 3. The portable computing device of claim 2, wherein the at least one predetermined criteria includes a location of the portable computing device, and the portable computing device further comprises: a location monitor configured to determine the location of the portable computing device;the storage stores a plurality of geographic regions, each of the plurality of the identification numbers associated with one of the geographic regions;the processor is configured to determine when the determined location of the portable computing device is in a geographic region of the plurality of geographic regions;the processor is configured to select the identification number of the plurality of identification numbers associated with the geographic region in which the portable computing device is determined to be located; andthe processor is configured to control modulation of the selected identification number onto the carrier signal.
  • 4. The portable computing device of claim 2, wherein the at least one predetermined criteria includes time; the storage stores a plurality of time indications, each of the plurality of the identification numbers associated with at least one of the time indications;the processor is configured to determine a time indication of the plurality time indications most closely associated with a current time;the processor is configured to select the identification number of the plurality of identification numbers associated with the determined time indication; andthe processor is configured to control modulation of the selected identification number onto the carrier signal.
  • 5. The portable computing device of claim 1, wherein the processor is configured to enable a user to select the identification number from the plurality of identification numbers.
  • 6. The portable computing device of claim 1, further comprising: a carrier detection module configured to detect the carrier signal received by the antenna from the proximity card reader device; andthe processor is configured to control modulation of the plurality of identification numbers onto the carrier signal in series in response to the carrier detection module having detected the carrier signal.
  • 7. The portable computing device of claim 1, further comprising: a screen lock module that enables a user of the portable computing device to unlock a screen of the portable computing device; andthe processor enables modulation of the identification number onto the carrier signal when the screen is unlocked.
  • 8. The portable computing device of claim 1, wherein a value of at least one identification number is changed according to a predetermined factor to enhance security.
  • 9. A method in a portable computing device, comprising: receiving a carrier signal transmitted by a proximity card reader device at an antenna of the portable computing device;accessing an identification number of a plurality of identification numbers stored in storage of the portable computing device; andmodulating the identification number onto the carrier signal.
  • 10. The method of claim 9, further comprising: selecting the identification number of the plurality of identification numbers based on at least one predetermined criteria.
  • 11. The method of claim 10, wherein the at least one predetermined criteria includes a location of the portable computing device, each of the plurality of the identification numbers is associated with a geographic region of a plurality of geographic regions, and the method further comprises: determining the location of the portable computing device; anddetermining when the determined location of the portable computing device is in a geographic region of the plurality of geographic regions;said accessing comprising selecting the identification number of the plurality of identification numbers associated with the geographic region in which the portable computing device is determined to be located; andsaid modulating comprising modulating the selected identification number onto the carrier signal.
  • 12. The method of claim 10, wherein the at least one predetermined criteria includes time, the method further comprising: storing a plurality of time indications, each of the plurality of the identification numbers associated with at least one of the time indications; anddetermining a time indication of the plurality time indications most closely associated with a current time;said accessing comprising selecting the identification number of the plurality of identification numbers associated with the determined time indication; andsaid modulating comprising modulating the selected identification number onto the carrier signal.
  • 13. The method of claim 9, further comprising: enabling a user to select the identification number from the plurality of identification numbers.
  • 14. The method of claim 9, wherein said modulating comprises: modulating the plurality of identification numbers onto the carrier signal in series in response to said receiving the carrier signal.
  • 15. The method of claim 9, further comprising: enabling a user of the portable computing device to unlock a screen of the portable computing device; andenabling said modulating of the identification number onto the carrier signal when the screen is unlocked.
  • 16. The method of claim 9, further comprising: changing a value of at least one identification number according to a predetermined factor to enhance security.
  • 17. A computer readable storage medium having computer program instructions stored in the computer readable storage medium that enable a processor to perform a method in a portable computing device, the method comprising: receiving a carrier signal transmitted by a proximity card reader device at an antenna of the portable computing device;accessing an identification number of a plurality of identification numbers stored in storage of the portable computing device;receiving an indication that a user of the portable computing device has unlocked a screen of the portable computing device; andmodulating the identification number onto the carrier signal multiple times in response to receiving the carrier signal and receiving the indication.
  • 18. The computer readable storage medium of claim 17, wherein each of the plurality of the identification numbers is associated with a geographic region of a plurality of geographic regions, and the method further comprises: determining the location of the portable computing device; anddetermining when the determined location of the portable computing device is in a geographic region of the plurality of geographic regions;said accessing comprising selecting the identification number of the plurality of identification numbers associated with the geographic region in which the portable computing device is determined to be located; andsaid modulating comprising modulating the selected identification number onto the carrier signal.
  • 19. The computer readable storage medium of claim 17, the method further comprising: storing a plurality of time indications, each of the plurality of the identification numbers associated with at least one of the time indications; anddetermining a time indication of the plurality time indications most closely associated with a current time;said accessing comprising selecting the identification number of the plurality of identification numbers associated with the determined time indication; andsaid modulating comprising modulating the selected identification number onto the carrier signal.
  • 20. The computer readable storage medium of claim 17, wherein said modulating comprises: modulating the plurality of identification numbers onto the carrier signal in series in response to said receiving the carrier signal.
CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No. 61/809,215, filed on Apr. 5, 2013, which is incorporated by reference herein in its entirety. This application is also related to the following U.S. patent application, which also claims the benefit of U.S. Provisional Patent Application No. 61/809,215, and which is also incorporated by reference herein: U.S. patent application Ser. No. ______, titled “Smartphone Proximity Card Emulation,” filed on Jun. 14, 2013.

Provisional Applications (1)
Number Date Country
61809215 Apr 2013 US