Qualcomm Input Paper on Better Use of SENS_RES

Input Paper
NFC Forum Technical Committee
Title:
Better Use of SENS_RES in NFC-A Collision
Resolution Activity
To:
Mode Switching Task Force
Submitting
Companies:
QUALCOMM, Inc.
Contact
Details:
John Hillan: jhillan@qualcomm.com
Date:
3rd February, 2012
Replaces:
N/A
This input paper proposes a modification to the Collision Resolution Activity for NFC-A that
improves the quality of the polling device’s understanding of the resolved devices.
Background of this Input Paper
[ACTIVITY] section 9.3.4 defines the procedure for resolving NFC-A devices in the
operating volume of a polling device. As written, although a SENS_REQ is sent every time
around the loop that there are more devices to resolve, the information in the SENS_RES
is never used.
IPR
Input in this document is subject to the Intellectual Property Rights Policy of NFC Forum,
Inc which may be found at http://www.nfcforum.org/members/legaldocs/NFC_Forum_IPR_Policy.pdf. A member who is submitting
technology for inclusion in a Specification must confirm that all controlled necessary claims
included in this submission will be licensed on RAND conditions.
Requested Action
The submitter requests the Mode Switching Task Force to consider this proposed
improvement to NFC-A Collision Resolution for inclusion in the next version of [ACTIVITY].
© 2008, NFC Forum Inc. All rights reserved.
Page 1 of 5
Submission Details
The following diagram shows the relevant part of figures 5 and 7 (Technology Detection, and Collision
Resolution for NFC-A).
Note that the value of SENS_RES held in greedy collection GRE_POLL_A[0] is only updated in Technology
Detection, even though in general it will contain collisions if there are multiple NFC-A devices in the
operating volume.
Note also, that every time collision resolution goes around the loop because at least one device remains to
be resolved, another SENS_REQ is sent, and another SENS_RES is received. Remembering that every time
around the loop, one more remote device is asleep and therefore not responding to the SENS_REQ, it is
clear that the number of collisions in the SENS_RES will reduce over time. It would be an improvement to
the activity as presently defined if GRE_POLL_A[0] were updated during collision resolution, as shown in
the modified diagram below.
Input Paper
© 2008, NFC Forum Inc. All rights reserved.
Page 2 of 5
Now when the Collision Resolution terminates, the value of GRE_POLL_A[0] will be collision free (unless
devices limit is reached, but even so it is likely to have fewer collisions than after Technology Detection). If
all devices are resolved, GRE_POLL_A[0] actually corresponds exactly to the last tag that was resolved.
Taking this a step further, if instead of overwriting the GRE_POLL_A[0] value in greedy collection, the
polling device were allowed to keep an array of SENS_RES, and to store each incoming one in a new
element (in the same way that it presently does with the NFCID1 values), at the end of Collision Resolution
it can infer what some of the bits were in earler SENS_RES.
An example may help clarify this. Consider the case where there were 3 NFC-A devices that were
successully resolved, and each SENS_RES was stored in an array.
Input Paper
© 2008, NFC Forum Inc. All rights reserved.
Page 3 of 5
After Technology Detection:
SENS_RES = 000*0000 00001*00 << Two collisions detected
After Collision Resolution loop 1:
SENS_RES[0] = 000*0000 00001*00 << Two collisions detected again
NFCID1[0] is now known
After Collision Resolution loop 2:
SENS_RES[1] = 00000000 00001*00 << One collision has now disappeared
NFCID1[1] is now known
After Collision Resolution loop 3:
SENS_RES[2] = 00000000 00001100 << Other collision has now disappeared
NFCID1[2] is now known
No further devices to resolve.
So now we have 3 NFCID1 values, and a SENS_RES array that looks like this:
SENS_RES[0] = 000*0000 00001*00
SENS_RES[1] = 00000000 00001*00
SENS_RES[2] = 00000000 00001100
Now, because you know that the final device responded “1” in the third bit from the right, you know that
the device before that must have responded with a “0” in that bit position (otherwise there would have
been no collision). Thus you can deduce that
SENS_RES[1] = 00000000 00001000
Then you continue onwards. Because device 1 responded “0” in the 4th bit from the left, device 0 must
have responded with a “1” there, so you know that
SENS_RES[0] = 00000000 00001*00
You can’t tell whether it responded 0 or 1 in the other bit, but at least you know more about it than you did
before.
Input Paper
© 2008, NFC Forum Inc. All rights reserved.
Page 4 of 5
Thus the polling device can gain an even better understanding of the devices that it has resolved than if it
just overwrites the SENS_RES in GRE_POLL_A[0].
The proposed changes to the specification are very minor.
For the “overwriting only” change, section 9.3.4, requirement 9.3.4.22 would become:
Symbol 21:
The NFC Forum Device MUST send the SENS_REQ Command and it MUST wait for the SENS_RES afterward,
as specified in [DIGITAL].
The NFC Forum Device MAY overwrite the value of GRE_POLL_A[0] with the SENS_RES Response.
The NFC Forum Device MUST proceed to Symbol 3.
For the “SENS_RES history” change, there main changes are:
In Table 15, include GRE_POLL_A[] as an output, and describe it as “Each element contains a SENS_RES
from an identified NFC-A device.”
Symbol 21:
The NFC Forum Device MUST send the SENS_REQ Command and it MUST wait for the SENS_RES afterward,
as specified in [DIGITAL].
The NFC Forum Device MUST store the SENS_RES Response in GRE_POLL_A[device counter].
The NFC Forum Device MUST proceed to Symbol 3.
Whether or not we include any text on the possible use of the array of SENS_RES values is a matter for
discussion.
Input Paper
© 2008, NFC Forum Inc. All rights reserved.
Page 5 of 5