Abstract:
A method includes receiving a data packet transmitted by a near field communications (NFC) device at a NFC controller. Whether the data packet includes application identifier routing information is determined, and based thereupon the data packet is routed to a default application identifier routing address based on a look-up table lacking an application identifier routing address associated with the application identifier routing information. Whether the data packet includes protocol routing information is determined based upon the data packet lacking the application identifier routing information, and the data packet is routed to a default protocol routing address based upon the look-up table lacking a protocol routing address associated with the protocol routing information, using the NFC controller. The default application identifier routing address is different than the default protocol routing address.

Description:
TECHNICAL FIELD 
       [0001]    This disclosure is related to the field of near field communication (NFC) and, more particularly, to the routing of data packets in an NFC enabled device. 
       BACKGROUND 
       [0002]    Near field communication (NFC) is a set of standards for smartphones and similar devices utilized to establish radio communication between two devices by touching them together or bringing them into proximity, typically at a distance of 10 cm or less. 
         [0003]    NFC uses electromagnetic induction between two loop antennas located within each other&#39;s near field, effectively forming an air-core transformer. It operates within globally available and unlicensed radio frequency bands, and at rates ranging from 106 kbit/s to 424 kbit/s. NFC involves an initiator and a target; the initiator actively generates an RF field that can power a passive target, an unpowered chip called a “tag”. This enables NFC targets to take simple form factors such as stickers, key fobs, or cards that do not use batteries. 
         [0004]    NFC tags store data (typically between 96 and 4,096 bytes) and may be read-only, but may alternatively be rewriteable. The tags can securely store personal data such as debit and credit card information, loyalty program data, personal identification numbers, and networking contacts, among other information. They can be custom-encoded by their manufacturers or use the specifications provided by the NFC Forum, an industry association. 
         [0005]    In addition to communication between a powered NFC device and an unpowered NFC device, NFC peer-to-peer communication is possible, provided both devices are powered. This may be utilized for peer-to-peer data transfers, for example. In addition, an active NFC device may emulate an NFC card in what is called a card emulation mode. 
         [0006]    When the receiving NFC device receives the data, it then routes the data to an appropriate destination within the NFC device, such as a non-volatile memory, or any component attached to the NFC device that can handle the received data. In order to properly route the data, the NFC device reads routing information from the data, or attributes of the data e.g., the protocol used to transport the data (for example: ISO14443 a.k.a. ISO-DEP, or NFC-DEP, etc.) or the NFC-RF technology used to transport the data over the air (e.g., RF Type A or RF Type B, etc.), that indicates what type of routing is to be used, then attempts to correlate the routing information with a routing address in a look-up table. 
         [0007]    However, sometimes there is either not a routing address in the look-up table that is associated with the routing information, or the routing information itself is lacking. To address these situations, further development in the area of NFC data routing is desired. 
       SUMMARY 
       [0008]    This summary is provided to introduce a selection of concepts that are further described below in the detailed description. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used as an aid in limiting the scope of the claimed subject matter. 
         [0009]    A method includes receiving a data packet transmitted by a near field communications (NFC) device that initiates the NFC communication at a NFC controller. Whether the data packet includes application identifier routing information is determined, and based thereupon the data packet is routed to a default application identifier routing address based on a look-up table lacking an application identifier routing address associated with the application identifier routing information. Whether the data packet includes protocol routing information is determined based upon the data packet lacking the application identifier routing information, and the data packet is routed to a default protocol routing address based upon the look-up table lacking a protocol routing address associated with the protocol routing information, using the NFC controller. The default application identifier routing address may be different than the default protocol routing address. 
         [0010]    The default application identifier routing address and the default protocol routing address may be received from a device host, using the NFC controller. 
         [0011]    The default application identifier routing address and the default protocol routing address may be stored in the look-up table. 
         [0012]    Whether the data packet includes technology routing information may be determined based upon the data packet lacking the protocol routing information, and the data packet may be routed to a default technology routing address based upon the look-up table lacking a technology routing address associated with the technology routing information. The default technology routing address may be different than the default protocol routing address. 
         [0013]    The default protocol routing address may be received from a device host, using the NFC controller. 
         [0014]    The data packet may be routed to a default routing address based upon the data packet lacking technology routing information, using the NFC controller. 
         [0015]    The default routing address may be received from a device host, using the NFC controller. 
         [0016]    The default routing address may be stored in the look-up table. 
         [0017]    Another aspect is directed to a method include receiving a data packet transmitted by a near field communications (NFC) device at a NFC controller. Whether the data packet includes first routing type information is determined, and based thereupon the data packet is routed to a default first routing address based on a look-up table lacking a first routing type routing address associated with the first routing type information, using the NFC controller. Whether the data packet includes second routing type information is determined based upon the data packet lacking the first routing type information, and the data packet is routed to a default second routing address based upon the look-up table lacking a second routing type routing address associated with the second routing type information, using the NFC controller. The first default routing address is different than the second default routing address. 
         [0018]    A further aspect is directed to electronic device including a device host, a plurality of devices, and a near field communications (NFC) controller coupled to the device host and the plurality of devices. The NFC controller is configured to receive a data packet transmitted by an external NFC device. The NFC controller is also configured to determine whether the data packet includes application identifier routing information, and based thereupon route the data packet to a default application identifier routing address based on a look-up table lacking an application identifier routing address associated with the application identifier routing information. The NFC controller is further configured to determine whether the data packet includes protocol routing information based upon the data packet lacking the application identifier routing information, and route the data packet to a default protocol routing address based upon the look-up table lacking a protocol routing address associated with the protocol routing information. The default application identifier routing address is different than the default protocol routing address. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0019]      FIG. 1  is a schematic block diagram of a NFC system on which the methods and routing techniques of this disclosure can be applied. 
           [0020]      FIG. 2  is a flowchart of a method of routing data packets according to this disclosure. 
       
    
    
     DETAILED DESCRIPTION 
       [0021]    One or more embodiments of the present disclosure will be described below. These described embodiments are only examples of the presently disclosed techniques. Additionally, in an effort to provide a concise description, all features of an actual implementation may not be described in the specification. 
         [0022]    When introducing elements of various embodiments of the present disclosure, the articles “a,” “an,” and “the” are intended to mean that there are one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements. Additionally, it should be understood that references to “one embodiment” or “an embodiment” of the present disclosure are not intended to be interpreted as excluding the existence of additional embodiments that also incorporate the recited features. Like reference numbers in the drawing figures refer to like elements throughout, and reference numbers separated by century, as well as reference numbers with prime notation, indicate similar elements in other applications or embodiments. 
         [0023]    With initial reference to  FIG. 1 , an electronic device  10  is now described. The electronic device  10  may be any NFC enabled device, such as a smartphone, tablet, or smartwatch. The electronic device  10  includes a central processor, referred to here as a device host  14 , which may be a system on chip. The device host  14  is coupled to a NFC controller  12 , which may act as a universal asynchronous receiver/transmitter (UART), inter-integrated circuit, or other suitable bus for NFC communications, an optional embedded secure element  20  which provides a secure memory and execution environment for security conscious transactions such as financial transactions, and a NFC antenna  18  by which the device host  14  transmits or receives data via NFC. The NFC controller  12  are also coupled to an optional micro-sd card  22  which provides non-volatile storage, as well as to an optional subscriber information module (SIM)  24  which may also provide non-volatile storage. Additional non-volatile storage components also coupled to the NFC controller  12  may also be present in some applications. 
         [0024]    As shown, the NFC controller  12  is illustratively communicating with an external NFC device  16 , such as a payment terminal, thereby also facilitating communications between the SIM  24 , Micro-SD card  22 , and secure element  20  and the payment terminal. The remote NFC reader  16  sends data packets, such as data packets containing commands, to the NFC controller  12  via communication between its antenna (not shown) and the NFC antenna  18 . 
         [0025]    The electronic device  10  may be operating in the card emulation mode, in which the NFC controller  12  simulates the behavior of an NFC card, such as an ISO-14443 smartcard. This allows the electronic device  10  to substitute for a NFC card used in traditional security applications such credit card payments, identification badging, etc. When operating in the card emulation mode, the electronic device  10  receives the command containing data packets from an application executing on the external NFC device  16 . The data packets may contain application identifiers (AID) that are associated with the application executing on the external NFC device  16 , or with an application a command in the data packet is ordering the electronic device  10  to executive. 
         [0026]    The NFC controller  12  passes the data packets to their destination (i.e., the SIM  24 , micro SD card  22 , secure element  20 , or device host  14 ), based upon the AID. Routing of the data packets will now be described with additional reference to the flowchart  100  of  FIG. 2 . The NFC controller  12  receives a data packet transmitted by the remote NFC reader  16  (Step  102 ). 
         [0027]    As will be understood by those of skill in the art, there are three different types of NFC routing that can be performed: application ID (AID) routing (as described above), protocol based routing (i.e., based upon the specific NFC protocol being used), and technology based routing (i.e., based upon the specific NFC system being used). AID routing is the most common type of routing for active NFC devices and NFC devices operating in the card emulation mode, and is preferable because it can be customized for the applications whose execution resulted in the data in a data packet. Therefore, the NFC controller  12  examines each packet to first determine whether that packet includes AID routing information (Step  104 ). 
         [0028]    If the AID routing information is found in the packet, the NFC controller  12  then searches a look-up table (received from the device host  14 ) for an AID routing address associated with that AID routing information (Step  106 ). The entries in the look-up table contain fields for the routing type, length of a value, the value itself (with the value being the AID, for example, in the case where AID routing is used), and the routing address associated with the value. When the NFC controller  12  searches the look-up table for the AID routing address, it searches the look-up table for the AID routing information (i.e. searches the value fields of the AID routing entries), and then returns the routing address corresponding to the AID routing entry. 
         [0029]    If the AID routing address is found in the look-up table, the NFC controller  12  then routes the data packet accordingly (Step  110 ), such as to the secure element  20 , micro-sd card  22 , SIM  24 , or device host  14 . If, however, the AID routing address is not found, the NFC controller  12  may then route the data packet to a set default AID destination (Step  112 ). This set default AID destination may have been previously sent by the device host  14 , and stored in the look-up table. By routing data packets with AID routing information, yet which do not have a corresponding entry in the look-up table, to the set default AID destination, memory can be saved, as the look-up table need not have AID routing addresses for AID routing data associated with data packets which are to be routed to set default AID destination. In addition to saving memory from using fewer entries in the look-up table, the processing time used to look up addresses in the look-up table is reduced, as the look-up table can have fewer entries. 
         [0030]    If the AID routing information was not found at Step  104 , then the NFC controller  12  determines whether the packet includes protocol routing information (Step  108 ). If the packet does indeed include protocol routing information, then the NFC controller  12  searches the look-up table for a protocol routing address (Step  114 ). 
         [0031]    When the NFC controller  12  searches the look-up table for the protocol routing address, it searches the look-up table for the protocol routing information (i.e., searches the value fields of the protocol routing entries), and then returns the routing address corresponding to the protocol routing entry. 
         [0032]    If the protocol routing address is found, the NFC controller  12  sends the packet to the protocol routing address (Step  118 ). If the protocol routing address is not found, then the NFC controller  12  may route the packet to a set protocol routing address (Step  120 ). This set default protocol routing address may have been previously sent by the device host  14 . 
         [0033]    If the NFC controller  12  was unable to find the protocol routing information, or if there is no default protocol routing address associated with the protocol routing information, it then determines whether the packet includes technology routing information (Step  116 ). If the packet includes the technology routing information, the NFC controller  12  then searches the look-up table for a technology routing address associated with the technology routing information (Step  122 ). 
         [0034]    When the NFC controller  12  searches the look-up table for the technology routing address, it searches the look-up table for the technology routing information (i.e., searches the value fields of the technology routing entries), and then returns the routing address corresponding to the technology routing entry. 
         [0035]    If the technology routing address is found, then the NFC controller  112  routes the packet to the technology routing address (Step  126 ). If the technology routing address was not found, then the NFC controller  112  routes the packet to a set technology routing destination (Step  128 ). This set default technology routing address may have been previously sent by the device host  14 . 
         [0036]    If even the technology routing information was not found at Step  116 , then the NFC controller  12  may route the data packet to a default routing destination ( 124 ). This set default routing destination may have been previously sent by the device host  14 . 
         [0037]    The set default AID routing address, the set default protocol routing address, the set default technology routing address, and the set default routing destination may, as stated above, be sent by the device host  14 . This address can be contained within the look-up table. 
         [0038]    In the case where the set default AID routing address, the set default protocol routing address, the set default technology routing address, and the set default routing destination are stored in the look-up table, the value field can be set to a default value not otherwise used to indicate that the particular entry is one of the default routing addresses. 
         [0039]    While the disclosure has been described with respect to a limited number of embodiments, those skilled in the art, having benefit of this disclosure, will appreciate that other embodiments can be envisioned that do not depart from the scope of the disclosure as disclosed herein. Accordingly, the scope of the disclosure shall be limited only by the attached claims.