Cómo acelerar la integración de NFC en las aplicaciones iOS

Colaboración de Editores de DigiKey de América del Norte

Los desarrolladores han enfrentado históricamente una serie de desafíos a la hora de optimizar el rendimiento RF, el diseño de hardware y el software en los diseños NFC. No obstante, ahora la disponibilidad de soluciones NFC monolíticas y soporte de software integral ha cambiado significativamente la naturaleza de incorporar la funcionalidad de NFC en diseños para dispositivos electrónicos para el hogar, dispositivos para vestir y dispositivos para la Internet de las cosas (IoT).

Como resultado, los desarrolladores pueden agregar una gran cantidad de funciones a la aplicación generando muy bajo impacto en la huella de diseño, el consumo de energía o los cronogramas del proyecto.

La comunicación bidireccional de NFC es único en su capacidad de ofrecer conectividad inalámbrica de proximidad de bajo consumo, simple y de seguridad inherente. Las comunicaciones solo son posibles cuando dos dispositivos están cercas para que la intercepción del mensaje sea poco probable y los vectores potenciales de un ciberataque se minimicen. Además, solo uno de los dos dispositivos debe estar energizado por vez para que se establezca la comunicación; de esta manera el consumo de energía promedio permanece bajo.

De hecho, NFC puede ofrecer beneficios importantes a un amplio rango de aplicaciones de IoT y hogares inteligentes. Los usuarios pueden completar el emparejamiento Bluetooth o Wi-Fi simplemente al colocar un teléfono inteligente compatible con NFC cerca de un producto con NFC. NFC puede servir como el dispositivo habilitador subyacente para la personalización del dispositivo y simplificar las tareas de los teléfonos inteligentes, como la configuración de ajustes, transferencia de datos o registro de productos.

NFC integrado

Con un subconjunto de identificación de radio frecuencia (RFID), NFC opera a 13.56 MHz y realiza muchas de las mismas funciones como etiquetas RFID convencionales y tarjetas inteligentes sin contacto. A su vez, NFC ofrece mayor flexibilidad con su capacidad para operar en uno de los tres modos de comunicación: emulación de la tarjeta, par a par y leer/escribir.

En el modo de emulación de tarjeta, un dispositivo NFC funciona como una tarjeta inteligente sin contactos, por lo que se puede utilizar en un amplio rango de aplicaciones existentes, incluso generación de tickets, control de acceso, tránsito, barreras de peaje y pagos sin contactos. El modo par a par permite que dos dispositivos habilitados para NFC se conecte e intercambie información. Por ejemplo, los usuarios pueden usar un teléfono inteligente habilitado para NFC para establecer parámetros de configuración Bluetooth o Wi-Fi en otros dispositivos o derivar su uso en redes confiables. En modo de lectura/escritura, un dispositivos NFC puede leer datos desde otro dispositivo NFC. Por ejemplo, un teléfono inteligente habilitado para NFC puede leer URL u otros datos como cupones de venta que se incluyen en carteles promocionales en una tienda minorista.

Al estar conectado al procesador host dentro de un producto, un dispositivo NFC integrado que funciona como una etiqueta opera de manera similar a la memoria de puerto doble. Uno de los puertos de memoria se accede de manera inalámbrica a través de una interfaz NFC. El sistema integrado accede al otro puerto a través de una interfaz I2C. Como resultado, una fuente externa como un teléfono inteligente puede pasar datos al sistema integrado. A su vez, el procesador host puede actualizar los datos almacenados en el dispositivo NFC por lo que estaría disponible para el dispositivo externo habilitado para NFC, incluso cuando el producto no está funcionando.

Los desarrolladores pueden usar este enfoque en cualquier aplicación que requiera la transferencia de datos entre un sistema integrado y un sistema externo, como un teléfono inteligente habilitado para NFC. De hecho, los desarrolladores pueden usar este enfoque para actualizar los datos del sistema integrado o incluso firmware, usando la conectividad inalámbrica del dispositivo NFC para comunicaciones y memoria en chip para el almacenamiento temporario durante el proceso de descarga.

Controlador NFC monolítico

En el pasado, los diseñadores que buscaban agregar funciones NFC a un diseño basado en MCU tuvieron que enfrentar desafíos en el hardware y software. Los ingenieros de hardware que usaban dispositivos NFC convencionales necesitaban garantizar que el diseño cumpliría con la sincronización crítica entre el dispositivo NFC y el host, los requisitos de bajo consumo mantenido, la huella de diseño minimizada y la lista de materiales (BOM). Quizás el mayor impacto yace en el lado del software, donde lo ingenieros generalmente desarrollaban el código para manejar las distintas transacciones de bajo nivel que podían conformar una operación de NFC de nivel de aplicación única.

Los dispositivos NFC de avanzada, como NXP Semiconductor PN7150, están diseñados para simplificar la inclusión de la funcionalidad de NFC en un diseño de IoT o en cualquier sistema integrado. PN7150 combina un frontend de RF con un núcleo ARM® Cortex®-M0 de bajo consumo, una memoria y periféricos de E/S (Figura 1).

Diagrama del controlador NFC PN7150 de NXP Semiconductor

Figura 1: El controlador NFC PN7150 de NXP Semiconductors combina un frontend RF completa, un host de dispositivo ARM Cortex-M0 y un firmware integrado. (Fuente de la imagen: NXP Semiconductors)

El dispositivo elimina en gran medida los problemas tradicionales de integración del hardware al asegurar una sincronización óptima entre el host de dispositivo integrado y el frontend de RF mientras admite una mayor potencia de salida de RF. Además, la interfaz I2C integrada es compatible con NTAG I2C Plus de NXP para sensores, accesorios de luz y otros dispositivos relacionados con redes de hogares inteligentes. Además, el dispositivo ayuda a reducir los requisitos de potencia: PN7150 puede pasar automáticamente al modo de bajo consumo mientras permite al host permanecer en el modo de reposo hasta que se requiera la comunicación de RF.

Junto con la simplificación del diseño de hardware, el PN7150 ofrece ventajas importantes en el lado del software. NXP precarga los datos integrados del dispositivo y la memoria del código con soporte extendido para la interfaz del controlador NFC (NCI). La especificación técnica de NCI establecida por el NFC Forum define la interfaz lógica entre el controlador NFC (NFCC) y un dispositivo host (DH) que ejecuta un sistema operativo de alto nivel como IoT de Android, Linux o Windows.

El firmware NCI integrado PN7150 alivia la carga del desarrollo de software al reducir ciertas interacciones del host y al ofrecer un nivel superior de abstracción para los desarrolladores de software de la aplicación NFC. Al mover el nivel bajo al firmware, PN7150 también reduce la huella del código de aplicación en el lado del host.

Soluciones de reemplazo directo

Con el hardware y el software integrados, PN7150 está diseñado como una solución NFC de reemplazo directo para desarrolladores que trabajan en entornos de Android, Linux o Windows (Figura 2). De hecho, los desarrolladores que no conocen el desarrollo de NFC pueden aprovechar los kits de demostración de PN7150 disponibles para Arduino (NXP OM5578/PN7150ARDM), BeagleBone Black (NXP OM5578/PN7150BBBM) y Raspbery Pi (NXP OM5578/PN7150RPIM). Cada kit incluye una placa de controlador NFC PN7150, una placa de interfaz dedicada y una tarjeta de muestra de NFC.

Diagrama de PN7150 de NXP (hacer clic para acceder al tamaño completo)

Figura 2: PN7150 de NXP requiere algunos componentes adicionales para ofrecer un subsistema NFC completo que se integra fácilmente con el MCU host a través de una interfaz de hardware simple y con un software host a través del protocolo NCI. (Fuente de la imagen: NXP Semiconductors)

Los diseñadores necesitan algunos componentes para crear un subsistema NFC completo para un diseño existente basado en MCU. De hecho, en algunos casos, los ingenieros pueden reducir aún más el BOM al eliminar o combinar algunos componentes pasivos en el circuito compatible de antena (Figura 3).

Diagrama de PN7150 como controlador NFC (NFCC)

Figura 3: Al usar PN7150 como el controlador NFC (NFCC), los diseñadores pueden reducir aún más el BOM en algunas aplicaciones al simplificar el circuito compatible con la antena. (Fuente de la imagen: NXP Semiconductors)

En un diseño de circuito de antena típico, las resistencias de amortiguación RQ en los conductores de la antena se necesitan para reducir el factor de calidad de la antena excesivamente alto, que puede impactar negativamente en la forma de señal generada. En un diseño con un factor de calidad de antena nominal, los diseñadores pueden eliminar estas resistencias de amortiguación RQ de los extremos de las antenas. En el circuito coincidente, los diseñadores pueden reemplazar el part de capacitores paralelos con un solo capacitor (y eliminar la conexión al filtro EMC) cuando un diseño particular posee un voltaje de pico a pico máximo lo suficientemente bajo en los conductores de la antena. En la aplicación típica, donde una antena pequeña se conecta al PN7150, el voltaje de pico a pico generado en los conductores de la antena será relativamente bajo. Como consecuencia, los diseñadores también pueden simplificar el trayecto Rx al remover las capacitores Crx de desacople y al conectar directamente las resistencias Rrx a la antena.

Software simplificado

Desde la perspectiva del software, PN7150 ofrece un modelo de ejecución simple que acelera aún más el desarrollo de producto (Figura 4). La arquitectura del host del dispositivo combina un controlador de capa de transporte, controlador NCI y un middleware de entorno de ejecución NFC (NFCEE) que contiene las bibliotecas del lectora/grabadora, par a par o emulación de tarjeta. Para las operaciones NFC, el host solo necesita enviar operaciones NCI de alto nivel a PN7150 a través de la interfaz I2C. En cambio el firmware PN7150 ejecuta las transacciones detalladas y exigidas por el protocolo NFC.

Diagrama del firmware NCI integrado PN7150 de NXP

Figura 4: El firmware NCI integrado PN7150 de NXP reduce la huella del software en el host del dispositivo (DH), que solo necesita enviar los comandos NCI a través de la interfaz de hardware I2C para ejecutar las transacciones de NFC detalladas en el controlador NFC PN7150 (NFCC). (Fuente de la imagen: NXP Semiconductors)

De hecho, desde el punto de vista del desarrollador, el desarrollo de aplicaciones de NFC procede a un nivel alto gracias a la plataforma de software integrada disponible en NXP. Para las aplicaciones IoT habilitados para NFC, una operación común involucra el intercambio de datos en el formato de intercambio de datos NFC (NDEF). El NDEF administrado por el NFC Forum es un formato de datos estandarizados que se puede usar para intercambiar información, como URI o texto plano entre cualquier dispositivo NFC compatible y otro dispositivo o etiqueta NFC.

La biblioteca linux_libnfc-nci de NXP ofrece una interfaz de programación de aplicación simple que abstrae las transacciones de nivel bajo en operaciones orientadas a aplicaciones de nivel superior. Por ejemplo, los desarrolladores pueden grabar en una etiqueta con un simple llamado a una rutina WriteTag (Lista 1). La biblioteca utiliza una serie de rutinas de nivel inferior para descomponer esta solicitud de nivel de aplicación en la serie de pasos requeridos para validar, formatear y transmitir los datos (msgToPush en la lista 1).

int WriteTag(nfc_tag_info_t TagInfo, unsigned char* msgToPush, unsigned int len)

{

            int res = 0x00;

           

            res = nfcTag_writeNdef(TagInfo.handle, msgToPush, len);

            if(0x00 != res)

            {

                        printf("Write Tag Failed\n");

                        res = 0xFF;

            }

            else

            {

                        res = 0x00;

            }

            return res;

}

Lista 1: NXP ofrece el software NCI, como linux_libnfc-nci, que es una biblioteca NFC de Linux para usar con PN7150. Los desarrolladores pueden crear aplicaciones NFC usando llamadas simples, como WriteTag, que llama a rutinas de nivel inferior para manejar detalles de protocolo de mensajería. (Fuente de la lista: NXP Semiconductors)

Un host de un dispositivo utiliza mensajes de control de NCI para interactuar con un controlador NFC. Una secuencia de comandos NCI especialmente importante ofrece un mecanismo para un controlador NFC para buscar otras tarjetas, lectores o pares. Esta secuencia de comandos, denominados RF Discovery, permite que un dispositivo NFC compatible, como PN7150, alterne entre escuchar a otros dispositivos de transmisión y transmitir (fase poll) para buscar una tarjeta o etiqueta remota.

Al igual que con cualquier tecnología RF, la transmisión requiere una potencia significativamente mayor que la recepción de radio (Figura 5). De hecho, en la fase poll, PN7150 consume alrededor de 30 mA según las características de la antena. Durante la fase de escucha, PN7150 está esperando un portador de RF generado de forma externa y el consumo de corriente cae a aproximadamente 20 μA cuando el modo de espera está activo.

Diagrama de dispositivos NXP NFC

Figura 5: Los dispositivos NFC pueden solicitar requerimientos de tensión relativamente alta debido a la fase poll extendida en la secuencia estándar de RF Discovery de NFC Forum. (Fuente de la imagen: NXP Semiconductors)

Por lo general, la fase poll dura aproximadamente 20 ms mientras que la fase de escucha es de 300 ms a 500 ms de duración. Para una fase de escucha de 500 ms, el consumo de energía promedio se convierte:

(30 x 20 + 0.02 x 500) / 520 = 1.17 mA.

Para reducir los requisitos de energía para RF Discovery, N7150 de NXP ofrece un mecanismo propietario denominado modo de detector de tarje de menor consumo (LPCD). En el modo LPCD, PN7150 busca cambios en la impedancia de la antena debido al acoplamiento magnético que resulta cuando otro dispositivo se encuentra en las proximidades. Si el cambio en la impedancia es superior al umbral predefinido, PN7150 ingresa automáticamente a la secuencia estándar RF Discovery de NFC Forum. Por consiguiente, este método "impulsado por eventos" pueden reducir significativamente la duración de la fase de RF Discovery, por lo que logra un menor consumo de energía promedio (Figura 6).

Diagrama de PN7150 de NXP

Figura 6: NXP PN7150 puede reducir significativamente el consumo de energía para el bucle de RF Discovery al usar un modo de detección especial para reducir la duración de la fase poll de drenaje de energía. (Fuente de la imagen: NXP)

Conclusión

NFC ofrece una conectividad de bajo consumo y segura que puede mejorar significativamente la facilidad de uso de productos conectados en dispositivos electrónicos domésticos, dispositivos para vestir y otros dispositivos IoT. Al colocar simplemente un teléfono inteligente habilitado para NFC cerca de un producto conectado, los usuarios pueden utilizar el producto, la información de acceso de carga y recuperar la información almacenada en el producto. En el pasado, sin embargo, la implementación de NFC en el sistema basado en MCU presentó desafíos de diseño para la integración del hardware y el software. No obstante, los dispositivos NFC integrados NXP PN7150 ofrece una solución prácticamente directa para diseños NFC y simplifica el desarrollo de hardware y software de aplicaciones habilitadas para NFC. 

DigiKey logo

Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de DigiKey o de las políticas oficiales de DigiKey.

Información sobre la editorial

Editores de DigiKey de América del Norte