Take the 2-minute tour ×
Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. It's 100% free, no registration required.

NFC has a mode called "card emulation" in which it can communicate with a RFID reader because it acts as an RFID card. All the literature I have and the web serches I did only got me so far as with card emulation the device should at least "emit a unique ID". But I would like to know if it

  • is possible, according to the NFC defintion, for such a card emulation information to be configured completly free (probably going as far as emulating a RFID card with a java routine on with it's top limit beeing the maximum of bytes allowed on a RFID card in the RFID protocol), and

  • if such a uniqe ID (if not freely configurable) is hardcoded by the
    manufacturer or dependent on the sim card.

On some sidenote it probably would be interesting what manufacturers enable you as a user to do and what should be theoretically possible because of protocol definitions.

For example the Nexus S's NFC chip is read only and does not offer any card emulation mode.

I thank you in advance for all answers.

share|improve this question

2 Answers 2

up vote 5 down vote accepted

After quite some research I figured it out myself and wanted to share my findings with you.

NFC card emulation types

Please bear in mind that NFC is still not a finished protocoll and changes are possible. This is just the list of what I found as the latest version. (Copied from C. Enrique Ortizes' blog on January 10, 2011)

  • NFC Forum Type 1 Tag Operation Specification – Type 1 tag is based on ISO14443A. Tags are read and re-write capable; users can configure the tag to become read-only. Memory availability is 96 bytes and expandable to 2 kbyte; communication speed is 106 kbit/s.

  • NFC Forum Type 2 Tag Operation Specification – Type 2 tag is based
    on ISO14443A. Tags are read and
    re-write capable; users can configure the tag to become read-only. Memory
    availability is 48 bytes and
    expandable to 2 kbyte; communication speed is 106 kbit/s.

  • NFC Forum Type 3 Tag Operation Specification – Type 3 tag is based
    on the Japanese Industrial Standard
    (JIS) X 6319-4, also known as FeliCa. Tags are pre-configured at
    manufacture to be either read and
    re-writable, or read-only. Memory
    availability is variable, theoretical memory limit is 1MByte per service;
    communication speed is 212 kbit/s or 424 kbit/s.

  • NFC Forum Type 4 Tag Operation Specification – Type 4 tag is fully
    compatible with ISO14443A and B
    standards. Tags are pre-configured at manufacture to be either read and
    re-writable, or read-only. Memory
    availability is variable, up to 32
    KBytes per service; communication
    speed is up to 424 kbit/s.

NFC card emulation technology

Basicly a RFID card is emulated by a Java MIDlet using Contactless API (JSR 257). That is able to access the place (either SIM card, a smart card, a secure internal memory, or a secure external memory) where the emulation information is saved.

The exact how and wheres of NFC card emulation seem to be a matter of intense discussion right now as there are two basic concepts that directly correspondent with my second question (provider vs manufracture (vs user)). That this discussion makes a right answer very hard and fundamental changes can also happen is best shown by this example: Sun's official developer introduction to NFC uses an older copy of a graph from C. Enrique Ortiz to explain how card emulation mode works, that now is completly outdated and wrong.

The GSMA pushes for the simcard to be the storage of the smart card information giving the provider total controll over NFC card emulation. I personally would favour a solution among the lines of "make everything possible".

Programming Approaches

While searching for programming examples I found out that with the currently available NFC enabled devices (mainly from Nokia) that there is one always stated advice: One MIDlet per RFID card issuer (Assuming that cards from the same issuer are from the same type and work alike).

Since there is no final decision on where to store the smart card information, implementations go as far as having a download manager to download various smartcards to emulate over the internet.

Manufracture / Provider limitations

It seems possible that a manufracture can implement as much NFC functionality as he wants. Nexus S, if not updated to Android 2.3.3, for example has has only TAG reading functionality.

If it would be decided that the sim card should be the only storage area for card information, space limitations can become a problem, especially if you want to emuluate several cards.

Conclusion

This has been just a quick summary of what I found out and will probably be wrong because of NFC protocoll changes in the future, but for now I hope it helps some one that askes the same questions as me.

share|improve this answer
    
"quick summary"!? Cripes! Nice work! –  tyblu Jan 13 '11 at 6:31

You said: "For example the Nexus S's NFC chip is read only and does not offer any card emulation mode."

Please take a at http://www.nearfieldcommunicationsworld.com/2011/02/13/35913/uncovered-the-hidden-nfc-potential-of-the-google-nexus-s-and-the-nokia-c7/

They do say "... So the phone comes with everything we do need for card emulation — SWP and even a secure element within the phone."

share|improve this answer
    
You are absolutely right. In the latest Android version 2.3.3 Google delivered all the neccecary tools for card emulation. At the time I researched and wrote that article however Android 2.3 only posessed reading capabilities and Google had stated that they might implement full NFC functionality in future Android releases. As this has now happend I change my original post the be kind of up to date once again. –  Cadoc Mar 19 '11 at 18:39

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.