Today is Samstag, 23rd März 2019


The NFC software stack running on the host (= application processor) is called the Forum Reference Implementation (FRI) and is already part of Android 2.3 (Gingerbread). . The code base is open source. The FRI is NXP’s Software Stack for its NFC Chips, namely the PN544 and PN531. The software stack supports the different operating modes of the NFC chip for tag reading and writing, NFC peer-2-peer as well as card emulation. Also the SWP (Single Wire Protocol) implementation is part of the FRI. The FRI is the link between the native driver layer of the NFC chip and the Java Layer which can be used by developers. Hence the app developer has no access to the „pure“ FRI functionality in his app on top.

The stack is implemented in plain ANSI C and communicates with the /dev/pn544 device on the Android platform. On top of the native NFC software stack there is a Java Native Interface (JNI) layer that builds the bridge to the Java development environment for the Android developer. Finally the Android SDK provides Java APIs which can be used by any app running on the device in order to communicate with the NFC chip in the phone. This API can be used for reader/writer mode, P2P mode, detected external fields or targets as well as switch on and of the card emulation mode.

On the J2ME platform there is already an API standardized for this purpose: Contactless Communications API (JSR257). This JSR was released in 2006 and describes the necessary interfaces in order to allow contactless transactions with a J2ME application running on the handset. Thus this API makes use of the read-er/writer mode as well as the NFC peer-to-peer mode. The JSR257 already implements the Near Field Communcation Data Exchange Format (NDEF) format and the basic Record Type Definitions (RTD) published so far by the NFC-Forum CCAPI. Unfortunatly the Android implementation and the J2ME implementation are not compatible.

Welcome at