NFC Controller Interface Specification V1.0
NFC Controller Interface Specification V1.0
Specification
Technical Specification
NFC ForumTM
NCI 1.0
NFCForum-TS-NCI-1.0
2012-11-06
Contents
RESTRICTIONS ON USE
This specification is copyright © 2011-2012 by the NFC Forum, and was made available pursuant to a
license agreement entered into between the recipient (Licensee) and NFC Forum, Inc. (Licensor) and may
be used only by Licensee, and in compliance with the terms of that license agreement (License). If you are
not the Licensee, you may read this Specification, but are not authorized to implement or make any other
use of this specification. However, you may obtain a copy of this Specification and implementation rights
at the following page of Licensor's website: http://www.nfc-forum.org/specs/spec_license after entering
into and agreeing to such license terms as Licensor is then requiring. On the date that this specification was
downloaded by Licensee, the non-implementation terms of that license were as follows:
1. LICENSE GRANT.
Licensor hereby grants Licensee the right, without charge, to copy (for internal purposes only, except with
respect to the elements listed on Exhibit A) and share this Specification with Licensee's members,
employees and (to the extent related to Licensees’ use of this Specification) consultants. This license grant
does not include the right to sublicense, modify or create derivative works based upon any portion of the
Specification, except for the elements listed in Exhibit A.
2. NO WARRANTIES.
THE SPECIFICATION IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, ACCURACY, COMPLETENESS AND
NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL LICENSOR, ITS
MEMBERS OR ITS CONTRIBUTORS BE LIABLE FOR ANY CLAIM, OR ANY DIRECT, SPECIAL,
INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THE SPECIFICATION.
3. THIRD PARTY RIGHTS.
Without limiting the generality of Section 2 above, LICENSOR ASSUMES NO RESPONSIBILITY TO
COMPILE, CONFIRM, UPDATE OR MAKE PUBLIC ANY THIRD PARTY ASSERTIONS OF
PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS THAT MIGHT NOW OR IN THE
FUTURE BE INFRINGED BY AN IMPLEMENTATION OF THE SPECIFICATION IN ITS CURRENT,
OR IN ANY FUTURE FORM. IF ANY SUCH RIGHTS ARE DESCRIBED ON THE SPECIFICATION,
LICENSOR TAKES NO POSITION AS TO THE VALIDITY OR INVALIDITY OF SUCH
ASSERTIONS, OR THAT ALL SUCH ASSERTIONS THAT HAVE OR MAY BE MADE ARE SO
LISTED.
4. TERMINATION OF LICENSE.
In the event of a breach of this Agreement by Licensee or any of its employees or members, Licensor shall
give Licensee written notice and an opportunity to cure. If the breach is not cured within thirty (30) days
after written notice, or if the breach is of a nature that cannot be cured, then Licensor may immediately or
thereafter terminate the licenses granted in this Agreement.
5. MISCELLANEOUS.
All notices required under this Agreement shall be in writing, and shall be deemed effective five days from
deposit in the mails. Notices and correspondence to the NFC Forum address as it appears below. This
Agreement shall be construed and interpreted under the internal laws of the United States and the
Commonwealth of Massachusetts, without giving effect to its principles of conflict of law.
NFC Forum, Inc.
401 Edgewater Place, Suite 600
Wakefield, MA, USA 01880
Contents
1 Introduction.................................................................................................... 9
1.1 Objectives ...................................................................................................................... 9
1.2 Scope ............................................................................................................................. 9
1.3 Audience ...................................................................................................................... 10
1.4 Applicable Documents or References ......................................................................... 10
1.5 Administration ............................................................................................................. 11
1.6 Name and Logo Usage ................................................................................................ 12
1.7 Intellectual Property .................................................................................................... 12
1.8 Special Word Usage .................................................................................................... 12
1.9 Abbreviations .............................................................................................................. 12
1.10 Glossary ....................................................................................................................... 14
1.11 Coding Conventions .................................................................................................... 18
2 NCI Architecture .......................................................................................... 19
2.1 Components ................................................................................................................. 19
2.2 Concepts ...................................................................................................................... 19
2.2.1 Control Messages.......................................................................................... 20
2.2.2 Data Messages .............................................................................................. 20
2.2.3 Interfaces....................................................................................................... 21
2.2.4 RF Communication ....................................................................................... 21
2.2.5 NFCEE Communication ............................................................................... 21
2.2.6 Identifiers ...................................................................................................... 22
2.2.7 NFCC as Shared Resource ............................................................................ 22
3 NCI Core Framework ................................................................................... 23
3.1 Overview ..................................................................................................................... 23
3.2 NCI Control Messages ................................................................................................ 24
3.2.1 Flow Control for Control Messages.............................................................. 24
3.2.2 Exception Handling for Control Messages ................................................... 25
3.3 NCI Data Messages ..................................................................................................... 26
3.3.1 Flow Control for Data Packets...................................................................... 26
3.3.2 Exception Handling for Data Messages........................................................ 27
3.4 Packet Formats ............................................................................................................ 28
3.4.1 Common Packet Header ............................................................................... 28
3.4.2 Format of Control Packets ............................................................................ 29
3.4.3 Format of Data Packets ................................................................................. 30
3.5 Segmentation and Reassembly .................................................................................... 31
3.6 Logical Connections .................................................................................................... 32
4 NCI Core Control Messages ....................................................................... 34
4.1 Reset of NFCC ............................................................................................................ 34
4.2 Initialization of NFCC ................................................................................................. 36
4.3 NFCC Configuration ................................................................................................... 39
4.3.1 Setting the Configuration .............................................................................. 39
4.3.2 Retrieve the Configuration............................................................................ 40
4.4 Logical Connection Management................................................................................ 41
4.4.1 Destination Type ........................................................................................... 41
4.4.2 Connection Creation ..................................................................................... 42
4.4.3 Connection Closure....................................................................................... 44
4.4.4 Connection Credit Management ................................................................... 45
Figures
Figure 1: NCI Scope ........................................................................................................................ 9
Figure 2: NCI Components ........................................................................................................... 19
Figure 3: NCI concepts.................................................................................................................. 20
Figure 4: Control Message Exchange............................................................................................ 24
Figure 5: Data Exchange ............................................................................................................... 26
Figure 6: NCI Core Packet Format ................................................................................................ 28
Figure 7: Control Packet Structure ................................................................................................ 29
Figure 8: Data Packet Structure..................................................................................................... 30
Figure 9: RF Interface Architecture .............................................................................................. 47
Figure 10: RF Communication State Machine .............................................................................. 49
Figure 11: Format for Frame RF Interface (NFC-A) for Transmission ........................................ 93
Figure 12: Format for Frame RF Interface (NFC- B) for Transmission........................................ 94
Figure 13: Format for Frame RF Interface (NFC-F) for Transmission ......................................... 94
Figure 14: Format for Frame RF Interface (NFC-A) for Reception.............................................. 95
Figure 15: Format for Frame RF Interface (NFC-B) for Reception .............................................. 95
Figure 16: Format for Frame RF Interface (NFC-F) for Reception .............................................. 95
Figure 17: Format for ISO-DEP RF Interface for Transmission ................................................. 104
Figure 18: Format for ISO-DEP RF Interface for Reception ...................................................... 104
Figure 19: Format for NFC-DEP RF Interface for Transmission................................................ 109
Figure 20: Format for NFC-DEP RF Interface for Reception ..................................................... 110
Figure 21: Mapping of Command APDU ................................................................................... 122
Figure 22: Mapping of Response APDU..................................................................................... 123
Figure 23: Data Message Format for Type 3 Tag Command Set Interface................................. 124
Figure 24: SPI Operation ............................................................................................................. 128
Figure 25: SPI Data Transfer from the DH to the NFCC without CRC ...................................... 129
Figure 26: SPI Data Transfer from the DH to the NFCC with CRC ........................................... 130
Figure 27: SPI Data Transfer from the NFCC to the DH without CRC ...................................... 131
Figure 28: SPI Data Transfer from the NFCC to the DH with CRC ........................................... 132
Figure 29: SPI Race Condition 1 ................................................................................................. 132
Figure 30: SPI Race Condition 2 ................................................................................................. 133
Tables
Table 1: Abbreviations .................................................................................................................. 13
Table 2: MT Values ....................................................................................................................... 28
Table 3: PBF Values...................................................................................................................... 28
Table 4: Conn ID ........................................................................................................................... 33
Table 5: Control Messages to Reset the NFCC ............................................................................. 34
Table 6: NCI Version .................................................................................................................... 34
Table 7: Configuration Status........................................................................................................ 35
Table 8: Control Messages to Initialize the NFCC........................................................................ 36
Table 9: NFCC Features ................................................................................................................ 38
Table 10: Control Messages for Setting Configuration Parameters .............................................. 39
Table 11: Control Messages for Reading Current Configuration.................................................. 40
Table 12: Destination Types.......................................................................................................... 41
Table 13: Control Messages for DH Connection Creation............................................................ 42
Table 14: Initial Number of Credits .............................................................................................. 42
Table 15: Destination-specific Parameters .................................................................................... 43
Table 16: Control Messages for Connection Closure .................................................................... 44
Table 17: Control Messages for Connection Credit Management ................................................ 45
Table 18: Control Messages for Generic Error ............................................................................. 46
Table 19: Control Messages for Interface Error ............................................................................ 46
Table 20: Notification for RF Field information ........................................................................... 54
Table 21: RF Field Status .............................................................................................................. 54
Table 22: RF Field Information Configuration Parameter ............................................................ 55
Table 23: Discovery Configuration Parameters for Poll A ........................................................... 56
Table 24: Discovery Configuration Parameters for Poll B............................................................ 57
Table 25: Values for PB_SENSB_REQ_PARAM ........................................................................ 58
Table 26: Discovery Configuration Parameters for Poll F ............................................................ 58
Table 27: Discovery Configuration Parameters for ISO-DEP ...................................................... 59
Table 28: Discovery Configuration Parameters for Poll NFC-DEP .............................................. 60
Table 29: Values for PN_ATR_REQ_CONFIG ........................................................................... 61
Table 30: Discovery Configuration Parameters for Listen A ........................................................ 61
Table 31: LA_SEL_INFO coding ................................................................................................. 62
Table 32: Discovery Configuration Parameters for Listen B ........................................................ 62
Table 33: LB_SENSB_INFO values ............................................................................................. 63
1 Introduction
This document specifies a communication protocol called the NFC Controller Interface (NCI)
between an NFC Controller (NFCC) and a Device Host (DH).
1.1 Objectives
NCI is defined to meet the following requirements:
• NCI is defined to be independent of a specific transport layer (a physical connection and any
associated link protocol). Transport Mappings define the details on how to run NCI on top of
different NCI Transport layers.
• NCI is specified to accommodate different levels of functionality in the NFCC with regard to
RF communications. Different levels of functionality imply different splits of the NFC Forum
protocol stack between the NFCC and the DH. To achieve this, NCI specifies RF Interfaces,
each of which can be communicated with a DH and each of which interfaces to a defined
functional block implemented on the NFCC. An NCI implementation on an NFCC will be
tailored to include the RF Interfaces that match the functionalities of the NFCC.
• NCI provides features to allow DH to NFCEE communication. NCI therefore includes
methods to discover and enumerate connected NFCEEs and the NFCEE Interfaces they
support, and to establish connections between DH and NFCEE Interfaces. NCI also contains
definitions of the data formats that can be exchanged over a connection to NFCEE Interfaces.
• NCI is specified to be extensible to allow future extensions and vendor specific functionality.
1.2 Scope
The following figure outlines a typical architecture of an NFC Forum Device.
Device Host
NFC Controller
DH-NFCEE
Antenna RF Higher layer
drivers / software
NFCEE NCI
NCI
link NCI driver
firmware
firmware
Transport Transport
NFCEE Transport layer
Layer Layer
driver
firmware firmware
The NFCC is connected to the Device Host, which is the main application processor in the
Device.
The DH higher layer software may contain one or more NFC Execution Environments, or one or
more NFC Execution Environments may be connected to the DH (e.g. on an SD card). All NFC
Execution Environments on, or connected to, the DH are logically viewed as one entity, called a
DH-NFCEE.
In addition one or more NFC Execution Environments may be integrated or connected to the
NFCC. These are referred to as NFCEEs.
The scope of NCI is to define the communication between the DH and the NFCC. The
communication between the NFCC and NFCEEs is out-of-scope of this specification.
1.3 Audience
This document is intended for use by manufacturers targeting to implement NFC Controllers,
NFC Forum Devices, or NFC protocol stacks.
1.5 Administration
The NFC Forum NFC Controller Interface (NCI) Specification is an open specification supported
by the Near Field Communication Forum, Inc., located at:
401 Edgewater Place, Suite 600
Wakefield, MA, 01880
Tel.: +1 781-876-8955
Fax: +1 781-610-9864
http://www.nfc-forum.org/
The NFC Forum, Inc. maintains this specification. Comments, errors, and other feedback can be
submitted at http://www.nfc-
forum.org/apps/group_public/add_comment.php?document_id=13436.
1.9 Abbreviations
The abbreviations as used in this document are defined in Table 1.
Table 1: Abbreviations
Abbreviation Description
AID Application Identifier
CRC Cyclic Redundancy Check
DH Device Host
GID Group Identifier
HCI Host Controller Interface
HCP Host Controller Protocol
ISO International Organization for Standardization
MT Message Type
NCI NFC Controller Interface
NDEF NFC Data Exchange Format
NFC Near Field Communication
NFCC NFC Controller
NFCEE NFC Execution Environment
OID Opcode Identifier
PBF Packet Boundary Flag
RF Radio Frequency
RFU Reserved for Future Use
SAR Segmentation and Reassembly
SDU Service Data Unit
1.10 Glossary
Application ID (AID)
Defined in [ISO/IEC_7816-4], this is a specific type of Dedicated File (DF) name which
is used in a SELECT command to identify applications.
Battery Off State
State where an internal battery or external power source is not available. For example, the
battery is removed or empty, so the Device Host (DH) is switched off. The NFC Forum
Device can only act in Listen Mode when the NFC Controller (NFCC) and certain NFC
Execution Environments (NFCEEs) may be powered by a Remote NFC Device via
magnetic coupling.
Command Message
A request sent from the Device Host (DH) to the NFC Controller (NFCC) for action by
the NFCC.
Connection Identifier (Conn ID)
A unique 4-bit identifier for a Logical Connection.
Control Message
A generic name when referring to a Command, Response, or Notification Message, but
not a Data Message.
NOTE The terms ‘Command’, ‘Response’, and ‘Notification’, as used in this document, are
intended to mean the same as ‘Command Message’, ‘Response Message’, and
‘Notification Message’.
Cyclic Redundancy Check (CRC)
A checksum appended within the data segment before transmission, and verified
afterward by the recipient to detect Transmission Errors.
Data Message
A message containing a data carried over a Logical Connection.
Destination Type
Identifies an entity (NFCC, NFCEE, or Remote NFC Endpoint) for which a Dynamic
Logical Connection is intended.
Device Host (DH)
An Execution Environment responsible for the overall management of the NFC Forum
Device and any peripherals. This includes the management (e.g., initialization,
configuration, power management, etc.) of the NFC Controller peripheral.
DH-NFCEE
An environment residing on or connected to the DH, where NFC applications are
executed. There is logically only one DH-NFCEE, but it may be composed of more than
one environment (for example, applications on the DH and applications on a peripheral
connected to the DH). The manner in which the DH manages the DH-NFCEE is
implementation-specific.
NFC-DEP Initiator
The role of an NFC Forum Device reached when an NFC Forum Device in Poll Mode
has gone through a number of Activities. In this mode, the NFC Forum Device
communicates using the NFC-DEP protocol.
NFC-DEP Target
The role of an NFC Forum Device, reached when the NFC Forum Device in Listen Mode
has gone through a number of Activities. In this mode, the NFC Forum Device
communicates using the NFC-DEP protocols.
NFCEE Discovery Process
Functionality that allows detection of NFCEEs that are physically connected to the
NFCC.
NFCEE Interface
A logical entity on the NFCC that communicates with the DH on one side and an NFCEE
on the other side.
NFCEE Protocol
A protocol used in the communication between the NFCC and an NFCEE.
Notification Message
Can only be sent by an NFCC to the DH. It is sent asynchronously and typically contains
informational parameters.
Packet
A structure that is used to transmit a Message over the NCI Transport. There are both
Control Packets (for transporting Control Messages) and Data Packets (for transporting
Data Messages).
Poll Mode
The mode of an NFC Forum Device when it generates a carrier and probes (“polls”) for
other devices.
Response Message
Sent by the NFCC for each Command Message received from the DH. The Response
Message may contain status information pertaining to the results of the Command
Message.
Remote NFC Endpoint
Refers to a remote device, card, or tag, connected wirelessly over the NFC Radio
Interface to the local NFC Forum Device.
RF Discovery Process
Functionality that allows detection of a Remote NFC Endpoint and detection by a
Remote NFC Endpoint. The DH can configure the RF Discovery Process, which then
runs autonomously within the NFCC.
RF Interface
Logical entities that may contain some protocol logic (e.g., an ISO-DEP RF Interface or
an NFC-DEP RF Interface) or may be a transparent conduit (e.g., a Frame RF Interface).
The DH can only communicate with a Remote NFC Endpoint via an RF Interface,
designated as the “Active RF Interface”. The NFCC contains multiple RF Interfaces.
RF Protocol
A protocol used in the communication between the NFCC and a Remote NFC Endpoint.
Static RF Connection
A Logical Connection with a fixed Connection Identifier that always exists after NFCC
initialization and is never closed. It is used by the DH to communicate with a Remote
NFC Endpoint via an active RF Interface.
Switched On State
In this state, the DH, the NFCC, and all connected NFCEEs are switched on and powered
either by internal battery or external power source. The NFC Forum device can act in
both Poll and Listen Modes. NCI is only applicable in Switched On state.
Switched Off State
In this state, the DH is switched off, and the NFCC and all connected NFCEEs are
powered either by internal battery or external power source. The NFC Forum Device can
only act in Listen Mode.
UICC
A Smart Card that conforms to the specifications written and maintained by the TC ETSI
Smart Card Platform. It is a platform to resident applications (e.g., USIM, CSIM, ISIM,
banking, transport, etc.).
2 NCI Architecture
This section outlines some of the basic concepts used in NCI. It is an informal introduction to the
documentation and normative statements later in this document.
2.1 Components
NCI can be split into the following logical components:
• NCI Core
The NCI Core defines the basic functionality of the communication between a Device Host
(DH) and an NFC Controller (NFCC). This enables Control Message (Command, Response,
and Notification) and Data Message exchange between an NFCC and a DH.
• Transport Mappings
Transport Mappings define how the NCI messaging is mapped to an underlying NCI
Transport, which is a physical connection (and optional associated protocol) between the DH
and the NFCC. Each Transport Mapping is associated with a specific NCI Transport.
• NCI modules
NCI modules build on top of the functionality provided by the NCI Core. Each module
provides a well-defined functionality to the DH. NCI modules provide the functionality to
configure the NFCC and to discover and communicate with Remote NFC Endpoints or with
local NFCEEs.
Some NCI modules are mandatory parts of an NCI implementation, others are optional.
There can also be dependencies between NCI modules in the sense that a module may only
be useful if there are other modules implemented as well. For example, all modules that deal
with communication with a Remote NFC Endpoint (the RF Interface modules) depend on the
RF Discovery to be present.
NCI modules
RF Interfaces
RF Discovery
Discovery
Interfaces
NFCEE
NFCEE
(...)
NCI Core
2.2 Concepts
This section outlines the basic concepts used in NCI.
DH
Control Messages
Control Messages
Control Messages
NFCEE Interface
Data Messages
Data Messages
RF Interface
NCI
Remote NFC
Endpoint
2.2.3 Interfaces
An NCI Module may contain one Interface. An Interface defines how a DH can communicate via
NCI with a Remote NFC Endpoint or NFCEE. Each Interface is defined to support specific
protocols and can only be used for those protocols (the majority of Interfaces support exactly one
protocol). NCI defines two types of Interfaces: RF Interfaces and NFCEE Interfaces.
Protocols used to communicate with a Remote NFC Endpoint are called RF Protocols. Protocols
used to communicate with an NFCEE are called NFCEE Protocols.
An NFCEE Interface has a one-to-one relationship to an NFCEE Protocol, whereas there might
be multiple RF Interfaces for one RF Protocol. The later allows NCI to support different splits of
the protocol implementation between the NFCC and DH. An NCI implementation on an NFCC
should include those RF Interfaces that match the functionality implemented on the NFCC.
Interfaces must be activated before they can be used and they must be deactivated when they are
no longer used.
An Interface can define its own configuration parameters and Control Messages, but most
importantly it must define how the payload of a Data Message maps to the payload of the
respective RF or NFCEE Protocol and, in the case of RF Communication, whether the Static RF
Connection and/or Dynamic Logical Connections are used to exchange those Data Messages
between the DH and the NFCC.
2.2.4 RF Communication
RF Communication is started by configuring and running the RF Discovery process. The RF
Discovery is an NCI module that discovers and enumerates Remote NFC Endpoints.
For each Remote NFC Endpoint, the RF Discovery Process provides the DH with the information
about the Remote NFC Endpoint gathered during the RF Discovery Process. One part of this
information is the RF Protocol that is used to communicate with the Remote NFC Endpoint.
During RF Discovery configuration, the DH must configure a mapping that associates an RF
Interface for each RF Protocol. If only a single Remote NFC Endpoint is detected during one
discovery cycle, the RF Interface for this Endpoint is automatically activated. If there are multiple
Remote NFC Endpoints detected in Poll Mode, the DH can select the Endpoint it wants to
communicate with. This selection also triggers activation of the mapped Interface.
After an RF Interface has been activated, the DH can communicate with the Remote NFC
Endpoint using the activated RF Interface. An activated RF Interface can be deactivated by either
the DH or the NFCC (e.g., on behalf of the Remote NFC Endpoint). However each RF Interface
can define which of those methods are allowed. There are different deactivation options
depending on which part of the protocol stack is executed on the DH. For example if a protocol
command to tear down the communication is handled on the DH, the DH will deactivate the RF
Interface. If such a command is handled on the NFCC, the NFCC will deactivate the Interface.
This specification describes the possible Control Message sequences for RF Communication in
the form of a state machine.
2.2.6 Identifiers
NCI uses different Identifiers for Remote NFC Endpoints and NFCEEs. These identifiers are
dynamically assigned by the NFCC. The DH gets to know them in the context of RF Discovery
and NFCEE Discovery respectively. The identifiers for Remote NFC Endpoints are called RF
Discovery IDs. They usually have a short lifetime as they are only valid for the time the DH
wants to be able to communicate with the Remote NFC Endpoint. In contrast, the identifiers for
NFCEEs have a longer lifetime as NFCEEs usually are not frequently added to or removed from
a device. The identifiers for NFCEEs are called NFCEE IDs. There is one reserved and static
NFCEE ID, value 0, which represents the DH-NFCEE.
Logical Connections take a third type of identifier, Destination Type, as a first parameter to
identify the destination for the data. Depending on the Destination Type, there can be a second
parameter for identifying the data destination. For example, if the Destination Type is ‘Remote
NFC Endpoint’, the second parameter will be an RF Discovery ID.
DH NFCC
Command
Response
Notification
Control Message
Exchange
A Command can be sent by the DH to instruct the NFCC to perform a specific action. For each
Command received, the NFCC SHALL answer with a Response to acknowledge the receipt of
the Command. The Response MAY also indicate changes that the Command caused at the NFCC.
Notifications SHALL only be sent from the NFCC to the DH. A Notification can be sent to
deliver additional information related to a Command. A Notification can also be sent
independently of any Command or Response, unless specified otherwise.
Control Messages are sent over the NCI as payload of Control Packets. A Control Packet payload
contains a complete, or a segment of a, Control Message.
Both the DH and the NFCC SHALL be capable of supporting Control Messages with a payload
of 255 octets, which is the maximum size of any Control Message.
The maximum payload length of a Control Packet is also 255 octets. The DH SHALL be capable
of receiving Control Packets with 255 octet payloads. However, the NFCC MAY specify a
smaller maximum Control Packet payload size defined by the parameter Max Control Packet
Payload Size, see Section 4.2.
As a result, Control Messages can be segmented into multiple Control Packets when sent over the
NCI, as described in Section 3.5.
reliable, as a precaution the DH MAY maintain a timer, TRequest, to check for a Response. If
TRequest expires without a Response being received, it SHOULD be treated as an Exception
and processed as in Section 3.2.2. The value of TRequest is left up to implementations, but
SHOULD NOT be less than one second.
• After sending a Command, the DH SHALL be able to receive a Response.
• After sending a Response, the NFCC SHALL be ready to receive the next Command from
the DH.
• The DH SHALL be able to receive a Notification from the NFCC at any time.
DH NFCC
Data
DH NFCC
Data
Data Message
Exchange
Figure 5: Data Exchange
Data Messages are sent over the NCI Transport as payloads of Data Packets. A Data Packet
payload contains a complete, or a segment of a, Data Message.
Data Messages can be sent by either the DH (subject to flow control) or the NFCC at any time
once a Logical Connection has been created.
The DH SHALL be capable of supporting any Data Message size sent by the NFCC (it is
assumed that DH is able to handle any data received either from a local NFCEE or Remote NFC
Endpoint). At any time, the maximum data size the NFCC is able to receive for a Logical
Connection is defined by the Max Data Packet Payload Size announced during RF Interface
activation in a case of Static RF Connection (see Section 7.3) or during Dynamic Logical
Connection (see Section 4.4), times the number of unused credits given by the NFCC for that
connection.
The maximum payload of a Data Packet is 255 octets. The DH SHALL be capable of receiving
Data Packets with 255 octet payloads. However, the NFCC MAY specify a smaller maximum
Data Packet payload size, on a Logical Connection basis.
The DH SHALL NOT send Data Packets with a payload length exceeding the Max Data Packet
Payload Size that was announced during creation of the corresponding Logical Connection.
Data Messages can be segmented as described in Section 3.5.
Flow control is configured per Logical Connection during connection establishment (see Section
7.3 for Static RF Connection and Section 4.4 for Dynamic Logical Connection). It may be
enabled or disabled differently for each Logical Connection and with different parameters.
It is mandatory for the DH to support credit-based flow control, though it is optional for the
NFCC to request the DH to use flow control.
Please refer to Section 4.4.4 regarding the normative rules for the credit-based flow control
mechanism.
Table 2: MT Values
MT Description
000b Data Packet- Section 3.4.3.
001b Control Packet - Command Message as a payload- Section 3.4.2
010b Control Packet - Response Message as a payload- Section 3.4.2
011b Control Packet – Notification Message as a payload - Section 3.4.2
100b- RFU
111b
PBF Description
0b The Packet contains a complete Message, or the Packet
contains the last segment of a segmented Message
1b The Packet contains a segment of a Message which is
not the last segment.
• If the packet does not contain the last segment of a segmented Message, the PBF SHALL be
set to 1b.
See Section 3.5 for more details about Segmentation and Reassembly.
3 1 4 1 1 6 8 L bytes
P R R
MT B GID F F OID Payload Length (L) Payload
F U U
Octet 0 Octet 1 Octet 2 Octet 3... Octet (2+L)
Each Control Packet SHALL have a 3-octet Packet Header and MAY have additional payload for
carrying a Control Message or a segment of Control Message.
NOTE In the case of an ‘empty’ Control Message, only the Packet Header is sent.
Message Type (MT)
Refer to Table 2 for details of the MT field.
Packet Boundary Flag (PBF)
Refer to Table 3 for details of the PBF field.
Group Identifier (GID)
The NCI supports Commands, Responses, and Notifications that are categorized according their
individual groups. The Group Identifier (GID) indicates the categorization of the message and
SHALL be a 4-bit field containing one of the values listed in Table 102.
All GID values not defined in Table 102 are RFU.
Opcode Identifier (OID)
The Opcode Identifier (OID) indicates the identification of the Control Message and SHALL be a
6-bit field that is a unique identification of a set of Command, Response, or Notification
Messages within the group (GID). OID values are defined along with the definition of the
respective Control Messages described in Table 102.
Payload Length (L)
The Payload Length SHALL indicate the number of octets present in the payload. The Payload
Length field SHALL be an 8-bit field containing a value from 0 to 255.
3 1 4 8 8 L bytes
P
MT B Conn ID RFU Payload Length (L) Payload
F
Octet 0 Octet 1 Octet 2 Octet 3 ... Octet (2+L)
Each Data Packet SHALL have a 3-octet Packet Header and MAY have additional Payload for
carrying a Data Message or a segment of a Data Message.
NOTE In the case of an ‘empty’ Data Message, only the Packet Header is sent.
Message Type (MT)
Refer to Table 2 for details of the MT field.
NOTE MT always contains 000b to indicate a Data Packet, as defined in Table 2.
Packet Boundary Flag (PBF)
Refer to Table 3 for details of the PBF field.
Connection Identifier (Conn ID)
The Connection Identifier (Conn ID) SHALL be used to indicate the previously setup Logical
Connection to which this data belongs. Refer to Section 4.4 for details on setting up a Logical
Connection and the assignment of the Conn ID. The Conn ID is a 4-bit field containing a value
from 0 to 15.
Payload Length (L)
The Payload Length field indicates the number of Payload octets present. The Payload Length
field is an 8-bit field containing a value from 0 to 255.
Table 4: Conn ID
Conn ID Description
0000b Static RF Connection between the DH and a Remote NFC Endpoint
0001b- Dynamically assigned by the NFCC
1111b
CORE_RESET_CMD
Payload Field(s) Length Value/Description
Reset Type 1 Octet 0x00 Keep Configuration
Reset the NFCC and keep the NCI RF
Configuration (if supported).
0x01 Reset Configuration
Reset the NFCC including the NCI RF
Configuration.
0x02 – 0xFF RFU
CORE_RESET_RSP
Payload Field(s) Length Value/Description
Status 1 Octet See Table 94.
NCI Version 1 Octet See Table 6.
Configuration 1 Octet See Table 7.
Status
CORE_RESET_NTF
Payload Field(s) Length Value/Description
Reason Code 1 Octet 0x00 Unspecified reason
0x01-0x9F RFU
0xA0-0xFF For proprietary use
Configuration 1 Octet See Table 7.
Status
Value Definition
0x00 NCI RF Configuration has been kept
0x01 NCI RF Configuration has been reset
0x02-0xFF RFU
The NCI Version parameter SHALL be encoded as an 8-bit field consisting of two 4-bit unsigned
values representing the major and minor release levels of this specification. The most significant
4 bits SHALL denote the major release level. The least significant 4 bits SHALL denote the
minor release level of this specification.
The DH SHALL continue the communication if it supports the major version reported by the
NFCC and it SHALL NOT use Commands, RFU values, or RFU fields from a greater minor
version than reported by the NFCC.
The CORE_RESET_CMD is issued by the DH to reset the NFCC. This Command MAY be
issued anytime following power-up of the NFCC. After a reset, the NCI initialization as described
in Section 4.2 SHALL be performed.
On completion of the reset procedure, the NFCC SHALL send a CORE_RESET_RSP informing
the DH that the NFCC has been reset. The Status SHALL be STATUS_OK.
The CORE_RESET_CMD allows defining different reset types using the Reset Type parameter.
The Configuration Status parameters in CORE_RESET_RSP and CORE_RESET_NTF inform
the DH about the status of the NCI RF configuration after the reset.
NOTE This allows different NFCC implementations: Some NFCCs may have persistent
memory for the NCI RF Configuration and therefore do not require the DH to re-
configure after a reset. Others may not have persistent memory for the NCI RF
Configuration. The DH can force a reset of the configuration by using the Reset
Type parameter. The DH knows, based on the Configuration Status value, whether it
needs to configure the NFCC after the reset or not.
If Reset Type has been set to 0x00, the Configuration Status in CORE_RESET_RSP SHALL be
set to either 0x00 or 0x01.
If Reset Type has been set to 0x01, the Configuration Status in CORE_RESET_RSP SHALL be
set to 0x01.
For all Configuration Status values, all data in Buffers used for NCI Data and Control Packet
exchange SHALL be deleted and the Buffer SHALL be freed.
In this context NCI RF Configuration SHALL comprise:
• The Listen Mode Routing Table (see Section 6.3)
• All Configuration Parameters (see Table 101 for a list of Configuration Parameters)
• RF Interface Mapping configuration (see Section 6.2)
If Configuration Status is set to 0x01 (in either CORE_RESET_RSP or CORE_RESET_NTF),
the NCI RF Configuration SHALL have been reset, which includes:
• Removing all entries of the Listen Mode Routing Table
• Reverting all Configuration Parameter to their default values
CORE_INIT_CMD
Payload Field(s) Length Value/Description
Empty payload
CORE_INIT_RSP
Payload Field(s) Length Value/Description
Status 1 Octet See Table 94.
NFCC Features 4 Octets See Table 9.
Number of Supported 1 Octet Number of Supported RF Interface fields to follow (n).
RF Interfaces
Supported RF 1 Octet See Table 99.
Interface [1..n] NOTE If supported, the pseudo interface NFCEE Direct RF
Interface has to be reported as well.
Max Size for Large 2 Octets The maximum size in octets for the sum of the sizes of
Parameters PB_H_INFO and LB_H_INFO_RESP parameter values.
CORE_INIT_RSP
Payload Field(s) Length Value/Description
Manufacturer ID 1 Octet IC Manufacturer ID, as defined in [MANU].
If this information is not available, the NFCC SHALL return
0x00.
Manufacturer Specific 4 Octets This field contains NFCC manufacturer specific information
Information like chip version, firmware version, etc., encoded in a
manufacturer-specific mode.
If this information is not available or if the Manufacturer ID
is set to 0x00, the NFCC SHALL return all octets containing
0x00.
The CORE_INIT_CMD is used by the DH to initialize the NFCC. This Command SHALL be
issued following indication that the NFCC has been successfully reset (see Section 4.1), and at no
other time.
On execution of the Command, the NFCC SHALL send a CORE_INIT_RSP to inform the DH
that the NFCC has executed the Command. If the initialization was successful, the Status SHALL
be STATUS_OK. If the NFCC is unable to execute the Command, the Status SHALL be set to
STATUS_FAILED (see Table 94), and the other parameters of the CORE_INIT_RSP SHALL be
ignored by the DH.
No other Command that is defined in this specification except for CORE_RESET_CMD or
CORE_INIT_CMD SHALL be sent prior to the NFCC being successfully initialized.
Prior to initialization, if the DH knows the manufacturer ID of the NFCC by some means outside
the scope of NCI, then proprietary Commands MAY be sent, but otherwise they SHALL NOT be
sent.
Following successful initialization, proprietary Commands MAY be sent by the DH, and
proprietary Responses and Notifications MAY be sent by the NFCC.
After sending a CORE_INIT_CMD, the DH SHALL discard any information that may have been
previously provided by the NFCC concerning discovery requests from NFCEE(s).
Octet 1 0 0 0 0 RFU
X AID based routing;
Supported if the bit is set to 1b
(NFCC supports 7816-4 Command parsing of
SELECT command).
X Protocol based routing;
Supported if bit is set to 1b.
X Technology based Routing;
Supported if the bit is set to 1b.
0 RFU
Octet 2 0 0 0 0 0 0 RFU
X Switched Off state;
Supported if the bit is set to 1b.
X Battery Off state;
Supported if the bit is set to 1b.
If no routing type is supported in Octet 1 of the NFCC Features, then the NFCC does not support
Listen Mode Routing. In that case the DH SHALL NOT use any Command defined in
Section 6.3.
CORE_SET_CONFIG_CMD
Payload Field(s) Length Value/Description
Number of 1 Octet The number of Parameter fields to follow (n).
Parameters
Parameter [1..n] m+2 ID 1 Octet The identifier of the configuration parameter.
Octets See Table 101 for a list of IDs.
Len 1 Octet The length of Val (m).
If Len is set to 0x00, then the Val field is
omitted, and the NFCC SHALL set the
configuration parameter to its default value.
Val m Octets The value of the configuration parameter.
CORE_SET_CONFIG_RSP
Payload Field(s) Length Value/Description
Status 1 Octet See Table 94
Number of 1 Octet The number of Parameter ID fields to follow (n).
Parameters Value SHALL be 0x00 and no Parameter IDs listed unless Status
= STATUS_INVALID_PARAM.
Parameter ID 1 Octet The identifier of the invalid configuration parameter.
[0..n] See Table 101 for a list of IDs.
All configuration parameters within the NFCC are set to default values, but the DH MAY use
CORE_SET_CONFIG_CMD to change these values. The NFCC responds with
CORE_SET_CONFIG_RSP, and the Status indicates whether the setting of these configuration
parameters was successful or not. A Status of STATUS_OK SHALL indicate that all
configuration parameters have been set to these new values within the NFCC.
If the DH tries to set a parameter that is not applicable for the NFCC, the NFCC SHALL respond
with a CORE_SET_CONFIG_RSP with a Status field of STATUS_INVALID_PARAM and
including one or more invalid Parameter ID(s). All other configuration parameters SHALL have
been set to the new values within the NFCC.
Based on the maximum size of the payload of a Control Message and on the length of the Payload
Fields in CORE_GET_CONFIG_RSP, the maximum length of a parameter is limited to 251
octets. The parameter length fields (Parameter Len [n]) SHALL be set to a value between 0x00
and 0xFB. The values 0xFC - 0xFF are RFU.
CORE_GET_CONFIG_CMD
Payload Field(s) Length Value/Description
Number of 1 Octet The number of Parameter ID fields to follow (n).
Parameters
Parameter ID 1 Octet The identifier of the configuration parameter.
[1..n] See Table 101 for a list of IDs.
CORE_GET_CONFIG_RSP
Payload Field(s) Length Value/Description
Status 1 Octet See Table 94.
Number of 1 Octet The number of Parameter fields to follow (n).
Parameters
Parameter [1..n] m+2 ID 1 Octet The identifier of the configuration parameter.
Octets See Table 101 for a list of IDs.
Len 1 Octet Length of Val (m).
If Len = 0x00, then Val field is omitted.
Val m Octets Value of the configuration parameter.
NOTE After receiving the list of unavailable Parameters, the DH can assume that the other
Parameters requested in the CORE_GET_CONFIG_CMD are available, and the DH
may initiate another CORE_GET_CONFIG_CMD to retrieve those Parameters.
If CORE_GET_CONFIG_RSP message payload size with all requested parameters would exceed
the maximum Control Message payload size (255 octets), then the NFCC SHALL only send the
limited set of parameters that will not exceed the maximum payload size. In this case, the Status
field SHALL have a value of STATUS_MESSAGE_SIZE_EXCEEDED. The DH MAY retrieve
any unreturned parameters by sending another CORE_GET_CONFIG_CMD requesting only
those specific IDs.
If both of these conditions happen: 1) the DH tries to retrieve unavailable Parameters and 2)
Response would exceed maximum Control Message payload size, then case (1) has higher
priority; i.e., the NFCC SHALL return a status of STATUS_INVALID_PARAM to the DH.
CORE_CONN_CREATE_CMD
Payload Field(s) Length Value/Description
Destination Type 1 Octet See Table 12.
Number of 1 Octet Based on the Destination Type of the connection, the number
Destination-specific of Destination-specific Parameter fields following (n).
Parameters
Destination-specific m+2 Type 1 Octet Type of the Destination-specific
Parameter [0..n] Octets Parameter See Table 15.
CORE_CONN_CREATE_RSP
Payload Field(s) Length Value/Description
Status 1 Octet See Table 94.
Max Data Packet 1 Octet A number from 1 – 255
Payload Size
Initial Number of 1 Octet See Table 14.
Credits
Conn ID 1 Octet The four least significant bits of the octet SHALL contain the
Conn ID as defined in Table 4. The four most significant bits
are RFU.
Value Description
0x00– 0xFE Number of credits
0xFF Data flow control is not used
CORE_CONN_CLOSE_CMD
Payload Field(s) Length Value/Description
Conn ID 1 Octet The identifier of the connection to be closed.
The four least significant bits of the octet SHALL contain the
Conn ID as defined in Table 4. The four most significant bits
are RFU.
CORE_CONN_CLOSE_RSP
Payload Field(s) Length Value/Description
Status 1 Octet See Table 94.
CORE_CONN_CREDITS_NTF
Payload Field(s) Length Value/Description
Number of Entries 1 Octet Number of Entry fields to follow (n).
Entry [1..n] 2 Octet Conn ID 1 Octet The identifier of the Logical Connection
for which credits are given.
The four least significant bits of the
octet SHALL contain the Conn ID as
defined in Table 4. The four most
significant bits are RFU.
Credits 1 Octet The number of credits given.
For each Logical Connection, the DH stores the initial credits value received as part of the
connection setup (Initial Number of Credits parameter) in a variable, namely
NFCC_Credits_Avail, which is used to track the number of Data Packets that can be sent to the
NFCC.
NOTE If there are not enough credits to send the whole Data Message, the DH is allowed to
send as many Data Packets as number of credits available.
When the DH wants to send a Data Packet on a Logical Connection and flow control is enabled,
the DH SHALL check that the NFCC_Credits_Avail variable for that connection is greater than
0. If so, the DH SHALL reduce the NFCC_Credits_Avail by 1 and transfer the Data Packet over
the Logical Connection. The DH SHALL NOT send any Data Packet on a connection when the
corresponding NFCC_Credits_Avail is 0.
If the NFCC receives a Data Packet that was subject to credit-based flow control, it needs to tell
the DH when the buffer is again available for use. It does this by sending
CORE_CONN_CREDITS_NTF. When the DH receives this Notification, it SHALL add the
credits to variable NFCC_Credits_Avail for the appropriate Logical Connection(s).
The DH SHALL set the NFCC_Credits_Avail variable to the initial value on the following
scenarios:
• A Dynamic Logical Connection is created. See Sections 4.4.2.
• For the Static RF Connection, if an RF Interface Activated Notification is received, see
Section 7.3.1.
CORE_GENERIC_ERROR_NTF
Payload Field(s) Length Value/Description
Status 1 Octet See Table 94.
This Notification is used in error situations when the error can not be notified using an error
status in a Response Message. This Notification SHALL NOT be used to report error scenarios
related to NFCEE or RF Interface communication using Logical Connections.
To notify a generic error situation, the NFCC SHALL send CORE_GENERIC_ERROR_NTF to
the DH with the Status code identifying the error case.
CORE_INTERFACE_ERROR_NTF
Payload Field(s) Length Value/Description
Status 1 Octet See Table 94.
Conn ID 1 Octet The identifier of the Logical Connection where the error
occurred.
The four least significant bits of the octet SHALL contain the
Conn ID as defined in Table 4. The four most significant bits
are RFU.
This Notification is used in error situations when the error can not be notified using an error
status in a Response Message.
This Notifcation SHALL only be used to notify error scenarios related to NFCEE or RF Interface
communication using Logical Connections.
To notify a Logical Connection or RF / NFCEE Interface specific error situation, the NFCC
SHALL send CORE_INTERFACE_ERROR_NTF to the DH with the Status code identifying the
error and the affected Conn ID.
5 RF Communication
Communication with a Remote NFC Endpoint is performed by the use of RF Interfaces. RF
Interfaces are logical entities on the NFCC which allow the DH to use specific layers in the
protocol stack implemented on the NFCC. The DH can only communicate with a Remote NFC
Endpoint via an RF Interface that has been activated during the Discovery process.
Section 5.1 gives an overview about the available RF Interfaces.
Section 5.2 defines the NCI state machine for RF Communication.
Section 5.3 defines a mechanism to get information about an external RF field.
NOTE The NDEF Access, LLCP High and LLCP Low RF Interfaces do not exist in the
NCI specification version 1.0. They are anticipated to be added in a future version.
The following should be noted:
• The ISO-DEP RF Interface is applicable for both Reader/Writer Mode and Card Emulation
Mode.
• Specific to the Frame RF Interface
• The Poll Side Frame RF Interface is applicable for both Reader/Writer Mode and the
NFC-DEP Initiator side of the Peer Mode.
• Listen Side Frame RF Interface is applicable for both Card Emulation Mode and the
NFC-DEP Target side of the Peer Mode.
An RF Interface is automatically activated by the NFCC in the following cases:
• When in Poll Mode, a single Remote NFC Endpoint supporting a single protocol has been
discovered.
• In Listen Mode, the NFCC has been discovered/selected by a Remote NFC Endpoint.
In both cases, the RF Interface to activate is determined by the current mapping between RF
Protocols and RF Interfaces that can be configured using the RF_DISCOVER_MAP_CMD
Command defined in Section 6.2.
If, in Poll Mode, multiple Remote NFC Endpoints or a Remote NFC Endpoint supporting more
than one RF Protocol have been discovered, the DH has to select a Remote NFC Endpoint and RF
Protocol using the RF_DISCOVER_SELECT_CMD Command. After receipt of this Command,
the NFCC activates the RF Interface specified in the RF_DISCOVER_SELECT_CMD
Command.
The activation of an RF Interface depends on the Mode:
• For Poll Mode, one Remote NFC Endpoint must be selected (if only one Remote NFC
Endpoint is detected, it is selected automatically) and, depending on the RF Interface to
activate, the NFCC may need to first establish one or more lower-level protocol(s) before
activating an RF interface. In future extensions of NCI, the NFCC may even have to start
exchanging some data (for instance, to check if the remote NFC Endpoint stores NDEF-
compliant data) before activating the RF Interface.
• For Listen Mode, the NFCC may only have to be detected/selected by a Remote NFC
Endpoint before activating the RF interface. Or, it may need to first wait for the Remote NFC
Endpoint to establish one or more lower-level protocol(s).
Section 8 describes dependencies and explains how the RF Interfaces are used.
Upon successful DH and NFCC initialization (see Section 4.2), the RF Communication state
machine SHALL be in RFST_IDLE state. Before the first transition out of RFST_IDLE state,
the DH SHALL set the RF Communication Configuration as described in Section 6.
For Poll Mode, the RF Communication state machine relates to the Activities defined in
[ACTIVITY] in the following way:
• Technology Detection is handled in RFST_DISCOVERY and
RFST_W4_ALL_DISCOVERIES.
• Collision Resolution is handled in RFST_DISCOVERY and RFST_W4_HOST_SELECT.
While polling, if the NFCC discovers just one Remote NFC Endpoint that supports just one
Protocol, the NFCC SHALL try to automatically activate it. The NFCC SHALL first establish
any underlying protocol(s) with the Remote NFC Endpoint that are needed by the configured RF
Interface. On completion, the NFCC SHALL activate the RF Interface and send
RF_INTF_ACTIVATED_NTF (Poll Mode) to the DH. At this point, the state is changed to
RFST_POLL_ACTIVE. If the protocol activation is not successful, the NFCC SHALL send
CORE_GENERIC_ERROR_NTF to the DH with status
DISCOVERY_TARGET_ACTIVATION_FAILED and stay in RFST_DISCOVERY.
In this state, the NFCC MAY detect a command during the RF communication, which forces it to
come back to the IDLE state, as defined in the [ACTIVITY] Listen Mode state machine. If the
RF Protocol deactivation is completed, the NFCC SHALL send
CORE_GENERIC_ERROR_NTF (DISCOVERY_TEAR_DOWN), and the state will remain
RFST_DISCOVERY.
NOTE RF Protocol deactivation while in state RFST_DISCOVERY can happen if during
protocol activation in Listen Mode, a teardown command is received (e.g., an NFC-
DEP RLS_REQ when waiting for a potential PSL_REQ).
If the DH sends RF_DEACTIVATE_CMD, the NFCC SHALL ignore the Deactivation Type
parameter, stop the RF Discovery Process, and send RF_DEACTIVATE_RSP. The state will
then change to RFST_IDLE.
If the activation was not successful, the NFCC SHALL send CORE_GENERIC_ERROR_NTF to
the DH with a Status of DISCOVERY_TARGET_ACTIVATION_FAILED and the state will
remain as RFST_W4_HOST_SELECT.
If the DH sends RF_DEACTIVATE_CMD, the NFCC SHALL ignore the Deactivation Type
parameter, stop the RF Discovery Process and send RF_DEACTIVATE_RSP. The state will then
change to RFST_IDLE.
RF_FIELD_INFO_NTF
Payload Field(s) Length Value/Description
RF Field Status 1 Octet See Table 21.
The DH can configure whether the NFCC is allowed to send RF Field Information Notifications
by setting the following configuration parameter:
6 RF Communication Configuration
Before starting the actual RF Discovery Process by moving to the RFST_DISCOVERY state
described in Section 5.2, the DH SHALL have first configured:
• Any non-default Poll Mode and Listen Mode parameters
• The mapping between protocols and interfaces
• Any CE routing that is needed
The above steps need to be followed before the first time the RF Discovery Process is started, and
after that, only when something changes. They are described in detail in the following sections.
ID Length Description
LA_BIT_FRAME_SDD 1 Octet Bit Frame SDD value to be sent in Byte
1 of SENS_RES. This is a 5-bit value
that SHALL be contained in the 5 least
significant bits of the octet.
Default: NFCC decides (the NFCC
SHALL set the value as defined in
[DIGITAL]).
LA_PLATFORM_CONFIG 1 Octet Platform Configuration value to be sent
in Byte 2 of SENS_RES. This is a 4-bit
value that SHALL be contained in the 4
least significant bits of the octet.
Default: NFCC decides (the NFCC
SHALL set the value as defined in
[DIGITAL]).
LA_SEL_INFO 1 Octet This value is used to generate SEL_RES
according [DIGITAL]. Bits set in this
field SHALL be set in the SEL_RES
sent by the NFCC. See Table 31.
Default: NFCC decides (the NFCC
SHALL set the default value
corresponding to the RF Interfaces
implemented on the NFCC).
LA_NFCID1 4, 7, or 10 NFCID1 as defined in [DIGITAL].
Octets Default: NFCC decides.
ID Length Description
LB_SENSB_INFO 1 Octet Used to generate Byte 2 of Protocol Info
within SENSB_RES according to
[DIGITAL].
See Table 33.
Default: NFCC decides. The NFCC
SHALL set the default value
corresponding to the protocols
implemented on the NFCC.
LB_NFCID0 4 Octets NFCID0 as defined in [DIGITAL].
Default: NFCC decides.
LB_APPLICATION_DATA 4 Octets Application Data (Bytes 6-9) of
SENSB_RES as defined in [DIGITAL].
Default: All octets are set to 0x00.
LB_SFGI 1 Octet Start-Up Frame Guard Time as defined in
[DIGITAL].
Default: NFCC decides.
LB_ADC_FO 1 Octet Byte 3 of Protocol Info within
SENSB_RES according [DIGITAL].
See Table 34.
Default: 0x05
• a LF_T3T_IDENTIFIERS parameter with values for Octets 0 and 1 which are equal to Octet
0 and 1 of another LF_T3T_IDENTIFIERS parameters value.
The NFCC SHALL answer by sending CORE_GET_CONFIG_RSP with a Status of
STATUS_REJECTED, if the CORE_GET_CONFIG_CMD contains
• a parameter of type LF_T3T_IDENTIFIERS with a higher index than the value provided by
LF_T3T_MAX.
NOTE If the value of LF_T3T_MAX is set to 0, the NFCC does not support generating
SENSF responses for the Type 3 Tag Platform.
ID Length Description
LI_FWI 1 Octet Frame Waiting time Integer as defined in
[DIGITAL].
Default: 4.
LA_HIST_BY 0–n Historical Bytes (only applicable for Type
Octets 4A Tag) as defined in [DIGITAL].
Default: empty (do not send historical
bytes).
LB_H_INFO_RESP 0–n Higher Layer – Response field of the
Octets ATTRIB response as defined in
[DIGITAL].
Default: empty (send ATTRIB response
without Higher Layer – Response field).
LI_BIT_RATE 1 Octet Maximum supported bit rate.
Default: 0x00 (106 Kbit/s)
For value coding, refer to Table 97.
Depending on the capabilities of NFCC, the
NFCC MAY reduce the maximum
supported bit rate reported to the RF reader.
ID Length Description
TOTAL_DURATION 2 Octets 0x0000 – 0xFFFF defines the Total Duration
of the single discovery period in [ms].
This time definition provides only a rough
target value for the NFCC, but NFCC may
adjust the duration time due to the current
limitation of active RF Protocols and
hardware limitations.
Default: NFCC decides.
CON_DEVICES_LIMIT 1 Octet As defined in [ACTIVITY] for the Collision
Resolution Activity
Default: NFCC decides (based on its
capabilities).
RF_DISCOVER_MAP_CMD
Payload Field(s) Length Value/Description
Number of Mapping 1 Octet The number of Mapping Configuration fields to follow (n).
Configurations
Mapping 3 Octets RF Protocol 1 Octet See Table 98.
Configuration [1..n]
Mode 1 Octet See Table 43.
RF_DISCOVER_MAP_RSP
Payload Field(s) Length Value/Description
Status 1 Octet See Table 94.
A Mapping Configuration defines the RF Interface which SHALL be used for the communication
from the DH to a Remote NFC Endpoint using the specified RF Protocol and Mode, when the
NFCC autonomously transfers to the RFST_POLL_ACTIVE or RFST_LISTEN_ACTIVE
states.
RF_SET_LISTEN_MODE_ROUTING_CMD
Payload Field(s) Length Value/Description
More 1 Octet See Table 45.
Number of Routing 1 Octet The number of Routing Entry fields to follow (n).
Entries This Control Message SHALL be at least one Routing Entry.
Routing Entry x+2 Type 1 Octet One of the types defined in Table 46.
[1..n] Octets
RF_SET_LISTEN_MODE_ROUTING_RSP
Payload Field(s) Length Value/Description
Status 1 Octet See Table 94.
Value Description
0x00 Last Message
0x01 More Message(s) to follow
0x02 – RFU
0xFF
When configuration of the NFCC for Listen Mode communication is necessary, the DH SHALL
always send the complete Listen Mode Routing Table.
The NFCC uses the More field to determine if it has received all the Commands necessary to
configure the routing. The new routing SHALL only become effective following receipt of all
configuration information.
The DH SHALL keep the total size of the routing configuration information smaller than the
‘Max Routing Table Size’ indicated during Initialization (see Section 4.2).
All parameters except ‘More’ and ‘Number of Routing Entries’ are included in the calculation to
determine if the routing configuration size exceeds the Max Routing Table Size.
The DH SHALL NOT try to configure routing of a specific type unless the NFCC has indicated
support for routing that type in the NFCC Features sent in the CORE_INIT_RSP. Also, the DH
SHALL NOT try to configure routing for a specific power state unless the NFCC has indicated
support for that power state in the NFCC Features sent in the CORE_INIT_RSP.
On receipt of the RF_SET_LISTEN_MODE_ROUTING_CMD with a valid routing
configuration, the NFCC SHALL respond with the RF_SET_LISTEN_MODE_ROUTING_RSP
with a Status of STATUS_OK.
In case of an error the NFCC SHALL respond with the
RF_SET_LISTEN_MODE_ROUTING_RSP with a Status of STATUS_FAILED and the routing
table SHALL be emptied.
Also if a new routing configuration is comprised of several Commands, and any one of these
Commands fail, then the new routing configurations SHALL be ignored and the routing table
SHALL be emptied
After above failure cases, the DH SHALL retry to configure the routing table until the NFCC
accepts the routing table.
NOTE Failure in routing table configuration may lead to an empty routing table. As the
routing table can only be configured in RFST_IDLE state this can not happen
during ongoing RF communication.
Table 51: Control Messages to Read the NFCC’s Listen Mode Routing
RF_GET_LISTEN_MODE_ROUTING_CMD
Payload Field(s) Length Value/Description
Empty Payload
RF_GET_LISTEN_MODE_ROUTING_RSP
Payload Field(s) Length Value/Description
Status 1 Octet See Table 94.
RF_GET_LISTEN_MODE_ROUTING_NTF
Payload Field(s) Length Value/Description
More 1 Octet See Table 45.
Number of Routing 1 Octet The number of Routing Entry fields to follow (n).
Entries If the Listen Mode Routing Table is empty, the value of this
field is 0x00 and there are no Routing Entries following.
Routing Entry x+2 Type 1 Octet One of the types defined in Table 46.
[0..n] Octets
Length 1 Octet The length of Value (x).
Value x Octets Value of the Routing TLV.
To retrieve the current routing information from the NFCC, the DH sends the
RF_GET_LISTEN_MODE_ROUTING_CMD to the NFCC.
The NFCC SHOULD respond with the RF_GET_LISTEN_MODE_ROUTING_RSP with a
Status of STATUS_OK followed by one or more
RF_GET_LISTEN_MODE_ROUTING_NTF(s) containing the current routing information.
All but the last RF_GET_LISTEN_MODE_ROUTING_NTF SHALL have the More Parameter
set to 1. The last RF_GET_LISTEN_MODE_ROUTING_NTF SHALL have the More Parameter
set to 0.
Routing Entry fields will only be present if the value of Number of Routing Entries is greater than
zero.
In case of an error the NFCC SHALL respond with RF_GET_LISTEN_MODE_ROUTING_RSP
with a Status indicating the failure reason and the RF_GET_LISTEN_MODE_ROUTING_NTF
SHALL NOT be sent.
7 RF Discovery
This section describes the Control Messages required for moving through the state machine
defined in Section 5.2.
RF_DISCOVER_CMD
Payload Field(s) Length Value/Description
Number of 1 Octet The number of Configuration fields to follow (n).
Configurations n can be 0 if the RF Discovery is enabled for NFCEE(s) only (e.g.
in response to a RF_NFCEE_DISCOVERY_REQ_NTF and an
NFCEE(s) providing configuration settings directly to the NFCC).
If n is 0, this Command contains no Configuration fields.
Configuration 2 Octets RF 1 Octet RF Technology and Mode of the local
[0..n] Technology device. See Table 96.
and Mode
Discovery 1 Octet 0x00 RFU
Frequency
0x01 RF Technology and Mode will be
executed in every discovery
period.
0x02- These values are allowed for Poll
0x0A Mode RF Technology and Mode
values. This value specifies how
often the Poll period of the
specific RF Technology will be
executed. For example, a value of
10 indicates that this Polling will
be executed in every 10th
discovery period.
0x0B- RFU
0xFF
RF_DISCOVER_RSP
Payload Field(s) Length Value/Description
Status 1 Octet See Table 94.
RF_DISCOVER_NTF
Payload Field(s) Length Value/Description
RF Discovery ID 1 Octet See Table 53.
RF Protocol 1 Octet RF Protocol supported by the Remote NFC Endpoint. See Table
98.
RF Technology and 1 Octet RF Technology and Mode of the local device. See Table 96.
Mode
Length of RF 1 Octet The length of RF Technology Specific Parameters field to
Technology Specific follow.
Parameters
RF Technology 0–n One of the below tables depending on the value of the RF
Specific Parameters Octets Technology and Mode;
See Table 54 for NFC-A Poll Mode.
See Table 56 for NFC-B Poll Mode.
See Table 58 for NFC-F Poll Mode.
Proprietary parameters if the value of RF Technology and Mode
is reserved for a proprietary technology.
Notification Type 1 Octet 0 Last Notification
1 Last Notification (due to NFCC reaching it’s resource
limit)
2 More Notification to follow
3-255 RFU
Value Description
0 RFU
1 – 254 Dynamically assigned by the NFCC
255 RFU
The DH requests that the NFCC starts Discovery activity by sending the RF_DISCOVER_CMD.
The parameters RF Technology and Mode and Discovery Frequency are provided by the DH to
configure the manner in which the NFCC performs the RF Discovery Process. If the parameters
are acceptable for the NFCC, the NFCC SHALL return the RF_DISCOVER_RSP with a Status
of STATUS_OK and will start the RF Discovery Process accordingly.
In the case where the RF Communication State Machine is not in the state RFST_IDLE, the
NFCC SHALL return RF_DISCOVER_RSP with a Status of
DISCOVERY_ALREADY_STARTED. In this error case, the current ongoing RF Discovery
Process SHALL continue without any changes.
In Poll Mode, if there are multiple Remote NFC Endpoints detected, or if a Remote NFC
Endpoint supports multiple RF Protocols, the NFCC SHALL send RF_DISCOVER_NTF to the
DH for each combination of Remote NFC Endpoint and RF Protocol detected during the RF
Discovery Process.
• The NFCC SHALL assign a unique RF Discovery ID to each detected Remote NFC
Endpoint. The combination of RF Discovery ID and RF Protocol SHALL be unique across all
RF_DISCOVER_NTFs sent within a series of RF Discovery Notifications. The NFCC
SHALL assign the same RF Discovery ID in all notifications send for a single Remote NFC
Endpoint supporting multiple protocols.
NOTE If a Remote NFC Endpoint supports multiple protocols, the NFCC uses the same RF
Discovery ID for each Notification, but different RF Protocol values. If a Remote
NFC Endpoint uses separate polling responses to indicate support of multiple
protocols, the NFCC can not know that the responses came from a single Remote
NFC Endpoint. In that case, the NFCC assigns different RF Discovery ID.
• All assigned RF Discovery IDs are released when the RF State machine defined in
Section 5.2 moves into state RFST_IDLE.
• The Notification Type field SHALL be set to 0 or 1 if the current RF_DISCOVER_NTF is
the last notification being sent or set to 2 if there is another RF_DISCOVER_NTF to follow
(called series of RF Discovery Notifications).
NOTE Since RF_DISCOVER_NTF is only sent when there are multiple Remote NFC
Endpoints in the field or if a Remote NFC Endpoint supports multiple RF Protocols,
the first notification sent after starting the RF Discovery Process will always have
the Notification Type set to 0x02 (more notifications to follow)
• A value of 0x00 SHALL be used for the Notification Type if the NFCC has completed the
collision resolution process and no further Remote NFC Endpoints have been identified. A
value of 1 SHALL be used if the NFCC has aborted the collision resolution process due to
internal restrictions and therefore further Remote NFC Endpoints might not have been
detected.
After receiving RF_DISCOVER_NTF with a Notification Type field set to 0x00 or 0x01, the DH
SHALL either select the Remote NFC Endpoint by sending RF_DISCOVER_SELECT_CMD or
stop the RF Discovery Process by sending RF_DEACTIVATE_CMD.
RF_DISCOVER_SELECT_CMD
Payload Field(s) Length Value/Description
RF Discovery ID 1 Octet See Table 53.
RF Protocol 1 Octet See Table 98.
RF Interface 1 Octet See Table 99.
The value 0x00 (NFCEE Direct RF Interface) SHALL NOT be
used.
RF_DISCOVER_SELECT_RSP
Payload Field(s) Length Value/Description
Status 1 Octet See Table 94.
The DH SHALL send RF_DISCOVER_SELECT_CMD to the NFCC to inform the NFCC which
RF Discovery ID, RF Protocol and RF Interface are to be used for subsequent communication.
In case the RF Discovery ID, RF Protocol or RF Interface is not valid the NFCC SHALL respond
with RF_DISCOVER_SELECT_RSP with a Status of STATUS_REJECTED.
Otherwise, the NFCC SHALL respond with RF_DISCOVER_SELECT_RSP with a Status of
STATUS_OK. After that, the NFCC SHALL perform activation for the RF Protocol, depending
on the RF Technology or RF Interface associated with the parameters of the
RF_DISCOVER_SELECT_CMD.
The specified RF Interface parameter value is only valid for the following RF Interface activation
and does not cause any change to the RF Interface Mapping configuration (see Section 6.2).
RF_INTF_ACTIVATED_NTF
Payload Field(s) Length Value/Description
RF Discovery ID 1 Octet See Table 53.
RF Interface 1 Octet See Table 99.
If this contains a value of 0x00 (NFCEE Direct RF
Interface) then all following parameters SHALL contain a
value of 0 and SHALL be ignored.
RF Protocol 1 Octet See Table 98.
Activation RF 1 Octet RF Technology and Mode of the local device that were used
Technology and Mode for the collection of the RF Technology Specific Parameters
below. See Table 96.
Max Data Packet 1 Octet Max Data Packet Payload Size the NFCC can receive for the
Payload Size Static RF Connection. A number from 1 – 255.
Initial Number of 1 Octet Initial Number of Credits given by the NFCC to the DH for
Credits the Static RF Connection, as defined in Table 14.
Length of RF 1 Octet The length of RF Technology Specific Parameters field to
Technology Specific follow.
Parameters
RF Technology Specific 0 – n One of the below tables depending on the value of the RF
Parameters Octets Technology and Mode;
Depends on RF Technology and Mode.
See Table 54 for NFC-A Poll Mode.
See Table 55 for NFC-A Listen Mode.
See Table 56 for NFC-B Poll Mode.
See Table 57 for NFC-B Listen Mode.
See Table 58 for NFC-F Poll Mode.
See Table 59 for NFC-F Listen Mode.
Proprietary parameters if the value of RF Technology and
Mode is reserved for a proprietary technology.
RF_INTF_ACTIVATED_NTF
Payload Field(s) Length Value/Description
Data Exchange RF 1 Octet RF Technology and Mode that will be used for future Data
Technology and Mode Exchange. See Table 96.
Data Exchange 1 Octet Bit rate that will be used for future Data Exchange in the
Transmit Bit Rate transmit direction. For a polling device this is the bit rate
from poll to listen, and for a listening device this is the bit
rate from listen to poll. See Table 97.
Data Exchange Receive 1 Octet Bit Rate that will be used for future Data Exchange in the
Bit Rate receive direction. For a polling device this is the bit rate
from listen to poll, and for a listening device this is the bit
rate from poll to listen. See Table 97.
Length of Activation 1 Octet The length of Activation Parameters field to follow.
Parameters
Activation Parameters 0–n Activation Parameters are defined in the RF Interface
Octets section that corresponds to the RF Interface value. If a
proprietary interface is activated, proprietary parameters
MAY be used.
For a list of possible ISO-DEP RF Interface Activation
Parameters, see Table 76, Table 77, Table 78, and Table 79.
For a list of possible NFC-DEP RF Interface Activation
Parameters, see Table 82 and Table 83.
There are no Activation Parameters defined for the Frame
RF Interface.
RF_DEACTIVATE_CMD
Payload Field(s) Length Value/Description
Deactivation Type 1 Octet See Table 63.
RF_DEACTIVATE_RSP
Payload Field(s) Length Value/Description
Status 1 Octet See Table 94
RF_DEACTIVATE_NTF
Payload Field(s) Length Value/Description
Deactivation Type 1 Octet See Table 63.
Deactivation 1 Octet See Table 64
Reason
NOTE ‘Sleep Mode’ and Sleep_AF Mode’ refer to the sleep states of Listen Mode state
machine defined in [ACTIVITY]. Depending on the technology, ‘Sleep Mode’ refers
to SLEEP_A for NFC-A, SLEEP_B for NFC-B or IDLE for NFC-F. ‘Sleep_AF
refers to the SLEEP_AF state.
The RF State Machine in Section 5.2 specifies for each state the possible deactivation cases.
The following rules apply in addition to the definitions in Section 5.2:
• For the RF_DEACTIVATE_CMD, the Deactivation Type values ‘Sleep Mode’ and
‘Sleep_AF Mode’ are not allowed for all RF Interfaces. Each RF Interface specifies whether
it supports these deactivation cases. If an RF_DEACTIVATE_CMD with Deactivation Type
set to ‘Sleep Mode’ or ‘Sleep_AF Mode’ is received when using an RF Interface where those
values are not allowed, the NFCC SHALL send RF_DEACTIVATE_RSP with a Status of
STATUS_REJECTED. The NFCC SHALL NOT send RF_DEACTIVATE_NTF in this case.
• If the Deactivation Type in the RF_DEACTIVATE_CMD was set to ‘Sleep Mode’ or
‘Sleep_AF Mode’ and there was an error in executing the protocol deactivation procedures
defined by the RF Interface, the RF_DEACTIVATE_NTF SHALL have the Deactivation
Type set to ‘Idle Mode’ and the state SHALL change to RFST_IDLE.
• In all other cases and if not defined otherwise in the corresponding interface section, the
value of the Deactivation Type parameter of the RF_DEACTIVATE_NTF SHALL be the
same as in the RF_DEACTIVATE_CMD. If the RF_DEACTIVATE_NTF is send following
a RF_DEACTIVATE_CMD/RSP the Deactivation Reason SHALL be set to ‘DH Request’.
• If the activated RF Interface defines that the NFCC has to perform protocol deactivation
procedures, the NFCC SHALL perform those deactivation procedures before sending the
RF_DEACTIVATE_NTF.
• Prior to sending an RF_DEACTIVATE_NTF, the NFCC SHOULD send all data pending to
be sent to the Remote NFC Endpoint and send all completely received Data Messages to the
DH.
• After sending a RF_DEACTIVATE_NTF, the NFCC SHALL stop sending any Data
Messages related to the RF Interface.
• Upon receipt of a RF_DEACTIVATE_NTF, the DH SHALL NOT send any Data Messages
related to the RF Interface.
After an RF Interface has been deactivated:
• no further communication operations defined by the RF Interface (including Data Messages)
SHALL be performed.
• all remaining data in the NFCC and DH buffers that was exchanged in the context of the RF
Interface SHALL be removed.
RF_NFCEE_DISCOVERY_REQ_NTF
Payload Field(s) Length Value/Description
Number Of 1 Octet The number of information entries to follow (n).
Information Entries
Information Entry x+2 Type 1 Octet One of the types defined in Table 66.
[1..n] Octets
Length 1 Octet The length of Value (x).
Value x Octets Value of the Information Entry.
RF_NFCEE_ACTION_NTF
Payload Field(s) Length Value/Description
NFCEE ID 1 Octet An NFCEE ID as defined in Table 84.
Trigger 1 Octet See Table 69.
Supporting Data Length 1 Octet The length of Supporting Data field to follow (n)
Supporting Data n Octets Depends on Trigger
The Trigger value indicates the type of trigger that has caused this notification to be sent (as
defined in Table 69).
8 RF Interfaces
8.1 NFCEE Direct RF Interface
The NFCEE Direct RF Interface is a pseudo interface that is used when the NFCC in state
RFST_DISCOVERY can determine that the RF communication has to be routed to an NFCEE.
One example for such a case is if an NFCEE is directly coupled to the RF (e.g. when the NFC
Wired Interface (see [ISO/IEC_28361] is used).
The NFCEE Direct RF Interface does not enable NCI Data Message exchange between the DH
and the NFCC (and as a consequence no communication between the DH and the Remote NFC
Endpoint). Therefore this RF Interface does not define a Data Mapping or Discovery
Configuration. The NFCEE Direct RF Interface can not be mapped to an RF Protocol.
The following sections apply for Poll Mode and Listen Mode.
The format of the Data within the Data message used for the Frame RF Interface (NFC-A / NFC-
B / NFC-F) differs depending on the transmission direction of the message.
8.2.1.1 Data from the DH to RF
For NFC-A and NFC-B the Data Message SHALL correspond to the Payload of the Data and
Payload Format defined in [DIGITAL] Section 4.4 for NFC-A and 5.4 for NFC-B.
For NFC-F the Data Message SHALL correspond to the SoD and Payload of the Data and
Payload Format defined Section 6.4 of [DIGITAL].
After receiving a Data Message, the NFCC SHALL append the appropriate EoD and send the
result in an RF Frame of the currently used technology to the Remote NFC Endpoint.
NOTE In addition to the formats in Sections 4.4, 5.4, and 6.4, [DIGITAL] defines Data and
Payload Formats for ISO-DEP, NFC-DEP and the Tag Platforms. Mapping those
formats to the definitions above result in the following:
In case of ISO-DEP, the Data Message corresponds to the SoD and Payload of an
ISO-DEP Block defined in Section 13.1. In case of NFC-DEP, the Data Message
corresponds to the SoD and Payload of the Data and Payload Format defined in
Section 14.4. For Type 1 and Type 2 Tag Platform, the Data Message includes only
the Payload field of the applicable Data and Payload Format sections (8.4 and 9.4).
For Type 3 Tag Platform, the Data Message includes the SoD and Payload field of
the Data and Payload Format defined in Section 10.4.
Figure 11, Figure 12, and Figure 13 illustrate the mapping between the Data Message Format and
the RF frame for each Frame RF Interface when sending the RF frame to the Remote NFC
Endpoint.
NOTE These figures show the case where NCI Segmentation and Reassembly feature is not
used.
For NFC-A, Data Message SHALL NOT contain the parity bits used by Standard Frame. When
sending the RF Frames, the NFCC SHALL insert the parity bits according to [DIGITAL].
For NFC-B, Data Message SHALL NOT contain the start and stop bits used by the frame format.
When sending the RF Frames, the NFCC SHALL insert the start and stop bits according to
[DIGITAL].
For Type 1 Tag Platform and when in Poll Mode, the first octet of the Data Message SHALL
consist of 0b as the most significant bit followed by the 7-bit Command Code. The RF Frame
format is defined in Section 8.4 of [DIGITAL], where EoD consists of CRC_B1 and CRC_B2.
Data
RF Frame Payload EoD
Byte 1, Byte 2, …, Byte n CRC_A1/B1 CRC_A2/B2
For NFC-A, Data Message SHALL NOT contain the parity bits present in the Standard Frame
and Bit Oriented Frame. When receiving RF Frames, the NFCC SHALL check and remove these
parity bits according to [DIGITAL].
For NFC-B, Data Message SHALL NOT contain the start and stop bits used by NFC-B frame
format. When receiving the RF Frames, the NFCC SHALL remove the start and stop bits
according to [DIGITAL].
For Type 1 Tag Platform, the RF Frame format is defined in Section 8.4 of [DIGITAL], where
EoD consists of CRC_B1 and CRC_B2.
For Type 2 Tag Platform, when the NFCC in Poll Mode receives 4-bit ACK or NACK RF
Frames from the Remote NFC Endpoint, the NFCC SHALL populate these 4 bits to the lower
order bits of the first and only payload octet while each higher order bit is set to 0b.
Data
RF Frame Payload EoD
Byte 1, Byte 2, …, Byte n CRC_B1 CRC_B2
Data
RF Frame SoD Payload EoD
LEN Byte 1, Byte 2, …, Byte n CRC_F1 CRC_F2
RF_PARAMETER_UPDATE_CMD
Payload Field(s) Length Value/Description
Number of 1 Octet The number of RF Communication Parameter fields to
Parameters follow (n).
RF x+2 ID 1 Octet The identifier of the RF
Communication Octets Communication Parameter as defined
Parameter [1..n] in Table 72.
Length 1 Octet The length of Value (x).
Value x Octets Value of the RF Communication
Parameter.
RF_PARAMETER_UPDATE_RSP
Payload Field(s) Length Value/Description
Status 1 Octet See Table 94.
Number of 1 Octet The number of RF Communication Parameter ID fields to
Parameters follow (n).
Value SHALL be 0x00 and no Parameter IDs listed
unless Status = STATUS_INVALID_PARAM.
RF Communication 1 Octet The identifier of the invalid RF Communication Parameter.
Parameter ID [0..n] See Table 72 for a list of IDs.
If any of the RF Communication parameters listed in Table 72 to be used for Data Exchange
differ from those used during Device Activation, the DH SHALL send the new values to the
NFCC using an RF_PARAMETER_UPDATE_CMD.
Not all RF Communication parameter settings are permissible in all modes of operation; the DH
is responsible for ensuring values sent to the NFCC are correct. There is no obligation for the
NFCC to check whether a given parameter value is permitted.
The RF Technology and Mode parameter specifies the RF Technology and Mode that SHALL be
used by the NFCC when transmitting and receiving. Refer to [DIGITAL] for permitted values of
RF Technology and Mode for a given RF Interface activation.
The Transmit Bit Rate parameter specifies the bit rate that SHALL be used by the NFCC when
transmitting. For a polling device this is the bit rate from poll to listen, and for a listening device
this is the bit rate from listen to poll. Refer to [DIGITAL] for permitted values of bit rate for a
given RF Interface activation.
The Receive Bit Rate parameter specifies the bit rate that SHALL be used by the NFCC when
receiving. For a polling device this is the bit rate from listen to poll, and for a listening device this
is the bit rate from poll to listen. Refer to [DIGITAL] for permitted values of bit rate for a given
RF Interface activation.
The NFC-B Data Exchange Configuration parameter specifies a number of NFC-B related values.
Not all values are relevant to a given operating mode. Values that are relevant to the current RF
Communication State SHALL be used by the NFCC as defined in [DIGITAL] during subsequent
Data Exchange. They consist of Minimum TR0, Minimum TR1, Minimum TR2, Suppression of
SoS, and Suppression of EoS. The format of the octet is defined below.
The following Control Messages are used to request the NFCC to send a Type 3 Tag Polling
Command.
Table 74: Control Messages to Request the NFCC to send a Type 3 Tag Polling Command
RF_T3T_POLLING_CMD
Payload Field(s) Length Value/Description
SENSF_REQ_PARAMS 4 Octets Byte 2-5 of SENSF as defined in Section 6.6.1 of
[DIGITAL].
RF_T3T_POLLING_RSP
Payload Field(s) Length Value/Description
Status 1 Octet See Table 94.
RF_T3T_POLLING_NTF
Payload Field(s) Length Value/Description
Status 1 Octet See Table 94.
Number of Responses 1 Octet The number of Response fields to follow (n).
Response [1..n] m+1 Length 1 Octet Length of following
Octets SENSF_RES field (m).
Allowed values SHALL be
0x10 or 0x12. Other values are
RFU.
SENSF_RES m Byte 2-17/19 of SENSF_RES
Octets Response as defined in
[DIGITAL].
Table 75: Pre-activation states and the split of commands between NFCC & DH:
When the NFCC receives a command while it is in one of these pre-activation states:
• based on the information in Table 75, if the command has to be managed by the DH and if
configured accordingly, the NFCC SHALL activate the Frame RF Interface.
• In any other case, the NFCC SHALL not activate the Frame RF Interface.
The protocol activation is fully under the control of the DH when the Frame RF Interface is used,
therefore for all RF Technologies the RF_INTF_ACTIVATED_NTF SHALL NOT contain any
Activation Parameters.
NOTE Multiple SENSF_RES responses may be sent from one or more of the NFCEEs
connected to the NFCC. In this case, the NFCC has to assign a time slot to each
SENSF_RES response prior to sending them to the Remote NFC Endpoint. The
NFCC sends the RF_INTF_ACTIVATED_NTF corresponding to the RF Protocol
indicated by the RF Frame received after sending SENSF_RES responses to the
Remote NFC Endpoint.
8.2.4.3 Interface Deactivation
Additional rules apply for the following deactivation cases described in Section 5.2 for
RFST_LISTEN_ACTIVE:
• RF_DEACTIVATE_CMD/RSP/NTF(Sleep Mode)
Before sending the RF_DEACTIVATE_NTF, the NFCC SHALL move to the following state
of the Listen Mode state machine defined in [ACTIVITY]
• SLEEP_A when NFC-A is the technology currently in use
• SLEEP_B when NFC-B is the technology currently in use
• IDLE when NFC-F is the technology currently in use
• RF_DEACTIVATE_CMD/RSP/NTF(Sleep_AF Mode)
Before sending the RF_DEACTIVATE_NTF, the NFCC SHALL move to the following state
of the Listen Mode state machine defined in [ACTIVITY]
• SLEEP_AF when NFC-A or NFC-F is the technology currently in use
If the currently used technology is NFC-B, the NFCC SHALL respond with a
RF_DEACTIVATE_RSP with Status set to STATUS_REJECTED, not send a
RF_DEACTIVATE_NTF and keep the Frame RF Interface activated.
• RF_DEACTIVATE_NTF(Sleep Mode, Endpoint Request)
After receiving a SLP_REQ or sending a SLPB_RES the NFCC SHALL send the
DEACTIVATE_NTF.
When using this RF Interface, the following deactivation cases described in Section 5.2 for
RFST_LISTEN_ACTIVE SHALL NOT be allowed:
• RF_DEACTIVATE_NTF(Discovery, Endpoint_Request)
• RF_DEACTIVATE_NTF(Sleep_AF Mode, Endpoint Request)
8.2.4.4 Failures during Data Exchange
Even if there are any failures during data exchange, the NFCC SHALL NOT send any
CORE_INTERFACE_ERROR_NTF to the DH.
The DH itself identifies TRANSMISSION ERROR and PROTOCOL ERROR in communication
with the Remote NFC Endpoint from the Data in the Data Packet.
The DH MAY deactivate the RF Interface when it identifies such errors.
NOTE This figure shows the case where NCI Segmentation and Reassembly feature is not
used. However, ISO-DEP chaining is used where one Data Message is sent with
multiple I-Blocks to the Remote NFC Endpoint.
PCB [DID] [INF] CRC_1 CRC_2 PCB [DID] [INF] CRC_1 CRC_2
ISO-DEP SoD Payload EoD SoD Payload EoD
Block I-Block I-Block
For NFC-B:
Following the anticollision sequence, if the Remote NFC Endpoint supports ISO-DEP Protocol,
the NFCC sends the ATTRIB command to the Remote NFC Endpoint and following receipt of
the ATTRIB response, the NFCC SHALL send the RF_INTF_ACTIVATED_NTF to the DH to
indicate a Remote NFC Endpoint based on ISO-DEP has been activated.
For NFC-B the RF_INTF_ACTIVATED_NTF SHALL include the Activation Parameters
defined in Table 77.
For NFC-B:
Following the anticollision sequence, the NFCC sends the SENSB_RES – indicating the NFC
Forum Device may support the Type 4B Tag Platform (bit 1 = 1b in the Protocol Type) – to the
Remote NFC Endpoint. The NFCC then receives the ATTRIB Command and sends the ATTRIB
Response to the Remote NFC Endpoint. The NFCC SHALL then send the
RF_INTF_ACTIVATED_NTF to the DH to indicate that a Remote NFC Endpoint based on ISO-
DEP has been detected.
For NFC-B, the RF_INTF_ACTIVATED_NTF SHALL include the Activation Parameters
defined in Table 79.
NFC-DEP
0xD4 0x06 PFB [DID] [NAD] Transport Data Bytes
frame
NFC-DEP
0xD5 0x07 PFB [DID] [NAD] Transport Data Bytes
frame
ID Length Description
NFCDEP_OP 1 Octet See Table 81
Default : 0x0F
This parameter SHALL only be configured when the NFCC is in RFST_IDLE state.
Some settings are only relevant for NFC-DEP Target or NFC-DEP Initiator respectively. The
settings not matching the current role of the device SHALL be ignored.
NOTE These settings allow configuring the NFC-DEP protocol to comply with the
requirements stated in the NFC Forum Logical Link Control Protocol [LLCP] for the
NFC-DEP protocol binding.
When using this RF Interface, the following deactivation cases described in Section 5.2 for
RFST_LISTEN_ACTIVE SHALL NOT be allowed:
• RF_DEACTIVATE_NTF(Sleep Mode, Endpoint Request)
• RF_DEACTIVATE_CMD/RSP/NTF(Sleep Mode)
• RF_DEACTIVATE_CMD/RSP/NTF(Sleep_AF Mode)
8.4.4.4 Failures during Data Exchange
If an NFC-DEP Protocol Error PROTOCOL EXCEPTION [DIGITAL] occurs, the NFCC
SHALL send the CORE_INTERFACE_ERROR_NTF with the Status of
RF_PROTOCOL_ERROR.
When the DH receives the CORE_INTERFACE_ERROR_NTF, the DH MAY initiate NFC-DEP
RF Interface deactivation or perform some other error handling procedure.
Value Description
0 DH NFCEE ID, a static ID representing the DH-
NFCEE
1 – 254 Dynamically assigned by the NFCC
255 RFU
NFCEE_DISCOVER_CMD
Payload Field(s) Length Value/Description
Discovery Action 1 Octet 0x00 Disable discovery of NFCEE
0x01 Enable discovery of NFCEE
0x02 – RFU
0xFF
NFCEE_DISCOVER_RSP
Payload Field(s) Length Value/Description
Status 1 Octet See Table 94
Number of NFCEEs 1 Octet 0 – 255 Indicates the number of NFCEEs connected to the
NFCEE
NFCEE_DISCOVER_NTF
Payload Field(s) Length Value/Description
NFCEE ID 1 Octet An NFCEE ID as defined in Table 84. The value of 0x00
(DH-NFCEE ID) SHALL NOT be used.
NFCEE Status 1 Octet 0x00 NFCEE connected and enabled
0x01 NFCEE connected and disabled
0x02 NFCEE removed
0x03 – RFU
0xFF
Number of Protocol 1 Octet The number of Supported NFCEE Protocol fields to follow
Information Entries (n).
Supported NFCEE n Octet See Table 100.
Protocols [0..n]
Number of NFCEE 1 Octet Number of NFCEE Information TLV fields to follow (m).
Information TLVs
NFCEE Information x+2 Type 1 Octet The Type of the NFCEE Information
TLV[0..m] Octets TLV.
See Table 86.
Length 1 Octet The length of Value (x).
Value x Octets The Value of the NFCEE Information
TLV
Table 87: Value Field for T3T Command Set Interface Supplementary Information
To discover whether one or more NFCEEs are connected to the NFCC, the
NFCEE_DISCOVER_CMD is sent by the DH to the NFCC with the Discovery Action of 0x01.
On receipt of the NFCEE_DISCOVER_CMD, the NFCC SHALL respond to the DH with the
NFCEE_DISCOVER_RSP with a Status of STATUS_OK and a Number of NFCEEs indicating
how many NFCEEs are connected to the NFCC (a value of 0x00 indicates no connected
NFCEEs, 0x01 indicates 1 connected NFCEE, etc.).
If there is at least one NFCEE connected to the NFCC, for each connected NFCEE, the NFCC
SHALL send a NFCEE_DISCOVER_NTF to the DH indicating the following:
• The unique NFCEE ID assigned by the NFCC to the NFCEE.
• The current NFCEE Status.
• Each NFCEE Protocol supported by the NFCEE
• Zero or more NFCEE Information Records to provide additional information on the NFCEE
NOTE NFCEE Protocols and NFCEE Interfaces have one-to-one mapping, and values for
these are defined in the common
NOTE Table 100. If an NFCEE supports certain NFCEE Protocol(s) reported with
NFCEE_DISCOVER_NTF, then one of supported protocols may be used for
communication between the DH and the NFCEE. A creation of that communication
channel is called NFCEE Interface activation.
The assigned NFCEE ID remains valid until the NFCEE is removed or the NFCC is reset with a
Configuration Status of 0x01.
Once NFCEE Discovery Process has been enabled, the NFCC SHALL notify the DH of any
detectable removals and/or reconnections of NFCEEs through the NFCEE_DISCOVER_NTF.
If a NFCEE_DISCOVER_NTF is sent to notify that a new NFCEE has been connected to the
NFCC, the initial state of this NFCEE SHALL be connected and disabled (NFCEE Status value
set to 0x01).
If the NFCEE Status is set to 0x02, (NFCEE removed) the Number of Protocol Information
Entries SHALL be 0.
If the NFCEE Discovery Process fails, then NFCEE_DISCOVER_RSP SHALL be sent with
Status of STATUS_FAILED (see Table 94). In the failure case the Number of NFCEEs SHALL
be 0.
If the NFCC detects that an NFCEE is removed, then the Logical Connection to this NFCEE
SHALL be closed implicitly and the corresponding NFCEE Interface (Protocol) SHALL be
deactivated immediately. In case NFCEE Discovery is enabled a NFCEE_DISCOVER_NTF is
sent.
To disable the sending of NFCEE_DISCOVER_NTF, the DH SHALL send the
NFCEE_DISCOVER_CMD with Discovery Action is set to 0x00. The NFCC SHALL respond
by sending a NFCEE_DISCOVER_RSP with a Status set to STATUS_OK and the Number of
NFCEEs parameter SHALL be ignored by DH.
NFCEE_MODE_SET_CMD
Payload Field(s) Length Value/Description
NFCEE ID 1 Octet NFCEE ID as defined in Table 84. The value of 0x00 (DH-
NFCEE ID) SHALL NOT be used.
NFCEE Mode 1 Octet 0x00 Disable the connected NFCEE
0x01 Enable the connected NFCEE
0x02 – RFU
0xFF
NFCEE_MODE_SET_RSP
Payload Field(s) Length Value/Description
Status 1 Octet See Table 94
10 NFCEE Interfaces
This section describes the supported NFCEE Interfaces. Unless defined otherwise, all NFCEE
Interfaces are optional.
The DH learns which NFCEE Interfaces are supported by an NFCEE during NFCEE Discovery
Process, see Section 9.1. The “Supported NFCEE Protocol parameter” field(s) in
NFCEE_DISCOVER_NTF identifies the supported NFCEE Protocol(s).
The DH SHALL only initiate NFCEE Interface activation for an NFCEE Protocol that was
reported during the NFCEE Discovery Process.
NFCEE Interface activation and deactivation is performed automatically when creating or closing
a Logical Connection to an NFCEE, see Section 4.4. There are no specific Control Messages for
NFCEE Interface activation or deactivation.
The combination of NFCEE ID and NFCEE Protocol (as reported in the
NFCEE_DISCOVER_NTF) used during connection creation uniquely identifies a specific
NFCEE Interface to be activated.
In case of an error during NFCEE Interface activation the NFCC SHALL set the Status in the
CORE_CONN_CREATE_RSP to NFCEE_INTERFACE_ACTIVATION_FAILED.
There MAY be multiple simultaneous active NFCEE Interfaces, but there SHALL be only one
active NFCEE Interface for each NFCEE. This means that for each NFCEE, only one Logical
Connection is allowed between the DH and one NFCEE.
An NFCEE Interface SHALL be deactivated when the corresponding Logical Connection is
closed. The DH MAY initiate connection closure by using the Conn ID used for the NFCEE
Interface, see details in Section 4.4.3.
In case of unrecoverable transmission errors of a message between the NFCC and the NFCEE,
the NFCC SHALL send a CORE_INTERFACE_ERROR_NTF with the Status set to
NFCEE_TRANSMISSION_ERROR.
Data Packet Data Packet Header Payload Data Packet Header Payload
The following is the structure of the Command APDU in the Data Message and is dependent on
the case of the command.
For Case 1: CLA | INS| P1 | P2
For Case 2: CLA | INS| P1 | P2 | Le
For Case 3: CLA | INS | P1 | P2 | Lc | Data Field
For Case 4: CLA | INS | P1 | P2 | Lc | Data Field | Le
It is the responsibility of the NFCC to correctly map these to the protocol used between the
NFCC and the NFCEE. In the case that T=0 is being used as this protocol, it is the responsibility
of the NFCC to manage the 0x6Cxx and 0x61xx status words and these status words are not sent
from the NFCC to the DH. In these cases the NFCC SHALL transfer the full response.
10.1.1.2 Format for Data Messages sent from NFCC to DH
The NFCC SHALL retrieve the complete APDU Response from the NFCEE and handle it as a
Data Message and send it to the DH in one or more Data Packets. If the retrieved APDU
Response(s) from an NFCEE does not fit within a single Data Packet, the NFCEE SHALL split
the APDU Response across multiple Data Packets.
Figure 22 illustrates the mapping between Response APDU and the Data Packets to be sent to the
DH.
Data Packet Data Packet Header Payload Data Packet Header Payload
Figure 23: Data Message Format for Type 3 Tag Command Set Interface
11 Transport Mappings
The NCI Core design is intended to be independent of any specific underlying transport layer or
its speed.
The following are requirements for any underlying Transport Mapping:
• Transport Mappings SHALL provide means to transport Data and Control Packets in both
directions between the DH and NFCC.
• Transport Mappings SHALL provide a reliable data transfer.
• Transport Mappings MAY include flow control mechanisms. However it is recommended to
rely on the flow control built into the NCI protocol.
• Transport Mappings providing framing SHALL NOT forward Packets with a size smaller
than 3 bytes to the NCI Core.
The following sub-sections describe Transport Mappings for NCI.
It is not mandated to use any of the Transport Mapping defined on the following sub-sections.
The device implementation MAY use a proprietary Transport Mapping that fulfills the above
requirements (even for transport layers where this specification contains a mapping).
The Payload length is the length of the whole NCI packet inclusive of the NCI header. Since the
NCI packet can be as long as 258 octets we need a 2 octet payload length field.
Figure 25 illustrates the above procedure to transfer data from the DH to the NFCC.
SPI_CSN
SPI_INT
Figure 25: SPI Data Transfer from the DH to the NFCC without CRC
If the second octet is equal to 0x01, the DirectWrite header is sent as shown in the table below
and 2-octet CRC SHALL follow the Payload:
CRC SHALL be a CRC-16-CCITT using the polynomial x16 + x12 + x5 + 1, calculated for all
octets of Header and Payload. The initial value SHALL be FFFFh. The first CRC octet
transmitted SHALL be the MSB.
The master SHALL send ACK if the CRC is correct when receiving data from the slave.
The master SHALL send NAK if the CRC is not correct when receiving data from the slave.
Figure 26 illustrates the procedure to transfer data from the DH to the NFCC when the Second
Octet is equal to 0x01.
SPI_CSN
SPI_INT
Figure 26: SPI Data Transfer from the DH to the NFCC with CRC
If the slave does not assert SPI_INT in a timely fashion, the master is allowed to deassert
SPI_CSN and use the SPI bus to talk to a different peripheral. This can happen if the slave is busy
processing its FIFOs.
11.3.2.2 Data Transfer from NFCC to DH
The “DirectRead” command is used to transfer data from slave to the master. Data can be
transferred from the slave to the master in the following fashion:
• Slave asserts SPI_INT
• Master asserts SPI_CSN
• Master send 2-octet SPI header
• Slave sends 2-octet SPI payload length
• Slave sends SPI payload
• Master deasserts SPI_CSN
Slave may deasserts SPI_INT at any time after step 2.
Slave SHALL deasserts SPI_INT before step 6.
SPI_CSN may be toggled (deasserted and asserted) in every 8-bit transfer.
If the Second Octet is equal to 0x00, the DirectRead header is sent as shown in the table below.
The payload length is defined in the same manner as above. Figure 27 bellow illustrates the
procedure to transfer data from NFCC to the DH.
SPI_CSN
SPI_INT
DirectRead
SPI_MOSI IDLE
(2-bytes)
0 or 1 IDLE
Length DirectRead
SPI_MISO TRISTATE 0 or 1
(2-bytes) Payload
TRISTATE
Figure 27: SPI Data Transfer from the NFCC to the DH without CRC
If the second octet is equal to 0x01, the DirectRead header is sent as shown in the table below and
2-octet CRC SHALL follow the Payload:
The CRC SHALL be the same as defined in Section 11.3.2.1.
The slave SHALL send ACK if the CRC is correct when receiving data from the master.
The slave SHALL send NAK if the CRC is not correct when receiving data from the master.
Figure 28 illustrates the procedure to transfer data from NFCC to the DH when Second Octet is
equal to 0x01.
SPI_CSN
SPI_INT
DirectRead
SPI_MOSI IDLE
(2-bytes)
0 or 1 IDLE
Length DirectRead
SPI_MISO TRISTATE 0 or 1
(2-bytes) Payload CRC TRISTATE
Figure 28: SPI Data Transfer from the NFCC to the DH with CRC
If the master does not assert SPI_CSN in a timely fashion, the slave is allowed to deassert
SPI_INT. This can happen if the master is busy processing its FIFOs.
11.3.2.3 Race Condition
Since this is a half-duplex interface there is a possibility that both master (DH) and slave (NFCC)
would want to send data at the same time. In such a race condition the master would deassert the
SPI_CSN at the same time as the slave would deassert the SPI_INT. In such a situation the 2-
octet header sent by the master determines the transaction type. A consequence of this is that the
slave SHALL only deassert SPI_INT when it is capable of receiving a maximum-sized Direct-
Write command. The two figures below illustrate such a scenario.
SPI_CSN
SPI_INT
SPI_CSN
SPI_INT
DirectRead
SPI_MOSI IDLE
(2-bytes)
0 or1 IDLE
Length DirectRead
SPI_MISO TRISTATE 0 or 1
(2-bytes) Payload TRISTATE
12 Testing
The Commands, Responses and Notifications in this section provide mechanisms to facilitate
testing.
A. Exhibit A
Exhibit A is left blank intentionally.
B. Common Tables
Table 94: Status Codes
Value Description
0x00 NFC_A_PASSIVE_POLL_MODE
0x01 NFC_B_PASSIVE_POLL_MODE
0x02 NFC_F_PASSIVE_POLL_MODE
0x03 NFC_A_ACTIVE_POLL_MODE (RFU)
0x04 RFU
0x05 NFC_F_ACTIVE_POLL_MODE (RFU)
0x06 NFC_15693_PASSIVE_POLL_MODE (RFU)
0x07 – 0x6F RFU
0x70 – 0x7F Reserved for Proprietary Technologies in Poll Mode
0x80 NFC_A_PASSIVE_LISTEN_MODE
0x81 NFC_B_PASSIVE_LISTEN_MODE
0x82 NFC_F_PASSIVE_LISTEN_MODE
0x83 NFC_A_ACTIVE_LISTEN_MODE (RFU)
0x84 RFU
0x85 NFC_F_ACTIVE_LISTEN_MODE (RFU)
0x86 NFC_15693_PASSIVE_LISTEN_MODE (RFU)
0x87 – 0xEF RFU
0xF0 – 0xFF Reserved for Proprietary Technologies in Listen Mode
NOTE Active communication mode and ISO/IEC 15693 is currently not supported by the
NFC Forum.
The allowed values for each technology SHALL be as defined in [DIGITAL] and [ACTIVITY].
NOTE An implementation using proprietary Notifications should take into account that any
DH not supporting those proprietary extensions will silently discard the
Notifications.
C. Revision History
The following table outlines the revision history of NFC Controller Interface (NCI) Specification.