Determinación de los requisitos de alimentación para una tarjeta inteligente sin contacto en Java.

Estoy escribiendo una aplicación en Java que envía comandos a una tarjeta inteligente y analiza las respuestas a través de una interfaz NFC. Esta aplicación se puede utilizar tanto en Android como en PC.

Uso de un lector de tarjetas USB sin contacto a través de la PC No tengo problemas para conectar y comunicarse con cualquier tarjeta que tirar en ella.

Android es otro asunto. El uso de la aplicación a través de un Nexus S produce resultados menos deseables, dependiendo de la tarjeta.

Algunas tarjetas se conectarán y se comunicarán con una tasa de éxito del 100%. La mayoría de las tarjetas que he intentado utilizar han sido muy difíciles incluso para hacer una conexión, y mucho menos comunicarse con ella.

El servicio NFC del Nexus S intenta conectarse con las tarjetas. Hace un sonido de pulso continuo bajo, indicando que no puede hacer una conexión sólida (por lo que puedo decir).

Mi proceso de pensamiento actual es que el Nexus S tiene un chip NFC de menor potencia que el lector de PC USB que estoy usando. De otros artículos que he leído parece como si las diferentes tarjetas tienen diferentes requisitos de energía para poder utilizarlos.

¿Cómo puedo determinar qué nivel de potencia es necesario para alimentar una tarjeta? ¿Está escondido en alguna parte del ATR?

¿Cómo puedo determinar qué nivel de potencia tiene un chip NFC particular? ¿Está documentado en alguna parte?

Este tipo de problema es normalmente causado por (una combinación de) cualquiera de los siguientes:

  1. Antena mal sintonizada en la tarjeta
  2. Tarjeta microcontrolador que requiere mucha potencia
  3. Campo de RF débil generado por el teléfono NFC

Esto resulta en un mal acoplamiento de antena entre el teléfono y la tarjeta, lo que resulta en mala o ninguna comunicación. Un lector de escritorio típicamente no tiene este tipo de problema ya que genera un campo mucho más potente. NFC en un teléfono es bastante baja potencia y el campo de RF que genera a menudo en el borde de lo que todavía es permisible por ISO 14443. El chip NFC en el Nexus S, el NXP PN544, genera un campo de RF débil. Sin embargo, esto es una función del chip NFC y la antena NFC en el teléfono. En mi experiencia, las tarjetas tipo B a menudo causan problemas (se rumorea que a menudo requieren más poder). Otro ejemplo son los pasaportes electrónicos: frecuentemente tienen antenas menos óptimas.

Nivel de potencia mínimo requerido para una tarjeta: no está en el ATR. La tarjeta ISO 14443 no tiene un ATR (puede tener un archivo EF.ATR, pero nunca he visto ninguno). La respuesta ATS (Answer To Select) no indica los niveles de potencia requeridos. Las tarjetas tienen la posibilidad de indicar si el nivel de potencia es suficiente en el campo CID de los bloques S ISO 14443-4 (cuando están presentes y soportados por la tarjeta). Sin embargo, nunca he visto cartas que hagan esto.

Para determinar el nivel de potencia de un chip NFC particular combinado con una antena particular (y un circuito de sintonización), puede utilizar un analizador de espectro para realizar las mediciones. He medido varios teléfonos Android NFC (Galaxy Nexus, Nexus S, Galaxy S3, One X) que contienen un PN544. Los resultados difieren entre los teléfonos, lo suficiente como para marcar la diferencia en algunos casos (S3 que genera la mayor cantidad de energía).

  • HF-RFID vs. NFC - ¿Puede un teléfono móvil con capacidad NFC leer etiquetas RFID de alta frecuencia?
  • Emulación de tarjeta NFC de Android con UID fijo
  • Documentación para com.android.nfc_extras?
  • Introducción al emulador Open NFC
  • Velocidad de lectura de etiqueta NFC
  • Android nfcA.connect (), nfcA.transceive (), nfcA.setTimeout () y nfcA.getMaxTransceiveLength ()
  • Inicio de NFC cuando la pantalla está bloqueada en Android
  • Cómo obtener NFC trabajando en Android con Qt 5.6
  • ¿Es posible usar Android Beam entre un dispositivo Android y otro dispositivo NFC?
  • Android HCE: ¿hay reglas para AID?
  • Escribir en una etiqueta Mifare con Android NFC?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.