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: Nueva etiqueta recogida - Tipo de etiqueta desconocido
- Usar dispositivo NFC como etiqueta NFC
- ¿Cómo funcionan los pagos NFC?
- Android Beam: inicia la aplicación con registro de tipo MIME
- Cómo utilizar NFC API con google chrome para android
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?
- Modificar los bits de acceso del remolque sector Mifare Classic
- Activar / desactivar NFC con comando ADB
- ¿Qué etiquetas NFC hace la compatibilidad con Nexus 7? (2012)
- Desarrollo de aplicaciones Android utilizando NFC con emulador
- Aplicación de Android para imitar una tarjeta RFID física
- Impresión NFC desde la aplicación para Android
- Habilitación de CardEmulation en Android ICS con NFC_EXTRAS
- WPS Parámetros Wifi NFC y Android
Este tipo de problema es normalmente causado por (una combinación de) cualquiera de los siguientes:
- Antena mal sintonizada en la tarjeta
- Tarjeta microcontrolador que requiere mucha potencia
- 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).
- NumberPicker no se muestra en AlertDialog
- ¿Cómo puedo crear mi propio servidor de tienda de aplicaciones para Android?