Беспроводная связь ближнего радиуса действия (Near Field Communication, NFC)

Что внутри тега?

С технической точки зрения NFC-тег — это микрокомпьютер наподобие тех, что находятся внутри SIM и банковских карт. Здесь есть свой процессор, оперативная и постоянная память, но нет традиционного источника питания. Электрический ток он получает посредством электромагнитной индукции, которая возникает между антеннами считывателя и метки, так же как это происходит в беспроводных зарядных устройствах и пассивных радиоприемниках.

Антенна занимает около 99% площади метки и передает данные на частоте 13,56 МГц со скоростью 106, 212, или 424 Кбит/с. Стандарты NFC определяют несколько протоколов передачи данных, в том числе несколько реализаций протокола обмена данными (они обозначаются буквами A, B и так далее), которые могут быть дополнены производителем самой метки.

Например, метки семейства Mifare реализуют ряд расширений над стандартным протоколом, из-за чего можно поймать несовместимости между приложениями и меткой (но это редкость).Безопасность данных обеспечивается несколькими путями:• Малая дальность действия.

Nfc: частотный диапазон, скорости обмена, описание протокола nfcip

NFC позволяет осуществлять обмен данными между устройствами с относительно высокой скоростью, сравнимой с технологиями BLE и ZigBee, однако эффективные расстояния редко превышают несколько десятков сантиметров (рисунок 1). С одной стороны, это ограничивает область применения персональными устройствами или карточками, с другой – благодаря ограниченному радиусу действия, несколько повышается безопасность обмена данными. Кроме того, в ряде случаев NFC-устройства не нуждаются в источнике питания.

Области применения NFC на сегодняшний день включают в себя:

  • безналичные платежи;
  • оплату проезда в муниципальном транспорте;
  • системы учета времени и контроля исполнения;
  • системы идентификации и контроля доступа;
  • интерактивные стенды и постеры;
  • настройка совместной работы Bluetooth или Wi-Fi-устройств.

Bluetooth и Wi-Fi-интерфейсы стали практически стандартными для современных телефонов, смартфонов и планшетных компьютеров, позволяя осуществлять взаимодействие с наушниками, камерами, микрофонами. При большом количестве гаджетов быстрая настройка связи между нужными устройствами может стать проблемой.

К примеру, для подключения устройства к смартфону или планшетному компьютеру по Bluetooth, оно должно быть выведено в режим поиска подключения, как правило, нажатием или удержанием определенной кнопки. Затем необходимо на смартфоне выбрать его из списка доступных устройств, а он может быть достаточно длинным.

NFC позволяет существенно упростить данный процесс – для установления соединения устройств достаточно будет на короткое время поднести их друг к другу. Кроме того, после установления связи возможен автоматический запуск необходимого приложения. NFC Forum™ и Bluetooth SIG совместно разработали документ Bluetooth Secure Simple Pairing using NFC, определяющий формат сообщений для установки соединения (так называемого «спаривания») между Bluetooth-устройствами при посредничестве NFC-устройств.

Предусмотрено два режима установления соединения:

  • прямое соединение, при котором происходит передача параметров соединения, отслеживается процедура установления связи и настройка канала передачи данных между двумя устройствами;
  • косвенное соединение, когда NFC-смартфон или планшет играет роль посредника для передачи параметров соединения между устройством и точкой его подключения (например, между ноутбуком и беспроводной точкой доступа).

Помимо помощи в установке соединения между устройствами, NFC может играть роль простого и дешевого сервисного интерфейса:

  • смартфон или планшет с поддержкой NFC может играть роль универсального дисплея для отображения состояния устройства или роль консоли для его администрирования и настройки;
  • беспроводное подключение не требует специальных разъемов, а использование радиоканала позволяет отказаться от прозрачных окошек, характерных для ИК-портов;
  • возможно бесконтактное обновление прошивки или региональная адаптация изделия непосредственно в упаковке.

Стандарт NFCIP – Near Field Communication Interface and Protocol, – содержит две части NFCIP-1 и NFCIP-2. NFCIP-1 [1] стандартизован в документах ISO/IEC 18092, ECMA 340, ETSI TS 102190. Он определяет два режима обмена – активный и пассивный, определяет полосы частот, типы модуляции и скорости передачи данных (106, 212, 424 кбит/с), процедуры обнаружения устройств и обмена данными.

NFCIP-2 [2] стандартизован в ISO/IEC 21481, ECMA 352, ESTI TS 102312 и определяет механизмы совместной работы устройств стандартов ISO 18092, ISO 14443, ISO 15693, работающих в полосе 13,56 МГц.

Nfc forum

NFC Forum является некоммерческой ассоциацией, основанной 18 марта 2004 года компаниями NXP Semiconductors, Sony и Nokia, чтобы продвинуть использование NFC в бытовой электронике, мобильных устройствах и персональных компьютерах. NFC Forum призван содействовать реализации и стандартизации технологии NFC, чтобы гарантировать способность к взаимодействию между устройствами и услугами. В сентябре 2007 насчитывалось более чем 130 членов NFC Forum.

В октябре 2022 г. к международной организации NFC Forum присоединилась компания i-Free, став, таким образом, первой российской компанией, вступившей в NFCForum.[9] Среди проектов на базе NFC, реализованных i-Free — построение опытной зоны NFC-решений. Тестовые испытания этого проекта успешно прошли в Санкт-Петербурге.[10]

В марте 2022 к NFC Forum в качестве ведущего участника (Principal Member) присоединился Google. Это вторая по старшинству роль в NFC Forum. Она позволяет проводить тестирование оборудования на соответствие стандартов NFC Forum в собственных лабораториях, не раскрывая коммерческую тайну производимого оборудования.

GSM Association (GSMA) является глобальной торговой ассоциацией, представляющей 700 операторов мобильной связи в 218 странах мира.

Они подали две инициативы:

  • Mobile NFC initiative: четырнадцать операторов мобильных сетей, которые вместе представляют 40 % глобального рынка мобильной связи, поддерживающих NFC и сотрудничают, чтобы развивать приложения для NFC. Вот они: Bouygues Télécom, China Mobile, AT&T, KPN, Mobilkom Austria, Orange, SFR, SK Telecom, Telefonica Móviles España, Telenor, TeliaSonera, Telecom Italia Mobile (TIM), Vodafone and 3 (telecommunications).[11]

13 февраля 2007 они издали техническое описание NFC, чтобы дать точку зрения операторов мобильной связи на экосистему NFC.[12]

Tnf_well_known с rtd_text (mime-тип с записью простого текста)

Создать NDEF-запись TNF_WELL_KNOWN можно следующим образом:

Kotlin

fun createTextRecord(payload: String, locale: Locale, encodeInUtf8: Boolean): NdefRecord {
    val langBytes = locale.language.toByteArray(Charset.forName("US-ASCII"))
    val utfEncoding = if (encodeInUtf8) Charset.forName("UTF-8") else Charset.forName("UTF-16")
    val textBytes = payload.toByteArray(utfEncoding)
    val utfBit: Int = if (encodeInUtf8) 0 else 1 shl 7
    val status = (utfBit   langBytes.size).toChar()
    val data = ByteArray(1   langBytes.size   textBytes.size)
    data[0] = status.toByte()
    System.arraycopy(langBytes, 0, data, 1, langBytes.size)
    System.arraycopy(textBytes, 0, data, 1   langBytes.size, textBytes.size)
    return NdefRecord(NdefRecord.TNF_WELL_KNOWN, NdefRecord.RTD_TEXT, ByteArray(0), data)
}

Java

public NdefRecord createTextRecord(String payload, Locale locale, boolean encodeInUtf8) {
    byte[] langBytes = locale.getLanguage().getBytes(Charset.forName("US-ASCII"));
    Charset utfEncoding = encodeInUtf8 ? Charset.forName("UTF-8") : Charset.forName("UTF-16");
    byte[] textBytes = payload.getBytes(utfEncoding);
    int utfBit = encodeInUtf8 ? 0 : (1 << 7);
    char status = (char) (utfBit   langBytes.length);
    byte[] data = new byte[1   langBytes.length   textBytes.length];
    data[0] = (byte) status;
    System.arraycopy(langBytes, 0, data, 1, langBytes.length);
    System.arraycopy(textBytes, 0, data, 1   langBytes.length, textBytes.length);
    NdefRecord record = new NdefRecord(NdefRecord.TNF_WELL_KNOWN,
    NdefRecord.RTD_TEXT, new byte[0], data);
    return record;
}

Intent-фильтр для такой NDEF-записи будет таким:

Алгоритм работы nfc

У NFC, как и у RFID, при обмене есть инициатор и цель, но новая технология позволяет куда больше, чем простой обмен идентификатором и чтение или запись информации цели. Наиболее значимым различием между этими двумя технологиями является то, что у NFC целями часто являются программируемые устройства, такие как смартфоны.

У NFC устройств есть два режима взаимодействия. Если инициатор излучает радиочастотные волны, а цель за счёт инициатора получает питание, то такой режим взаимодействия называют пассивным. При активном режиме у инициатора и цели свои собственные источники питания, и они независимы друг от друга. Данные режимы совпадают с режимами RFID.

NFC устройства также имеют три способа работы. Они могут работать в режиме чтения информации с цели или записи на неё. Они могут эмулировать карты, ведя себя как RFID-метки, когда они в поле другого NFC или RFID устройства. Или они могут работать в режиме peer-to-peer (P2P), в котором они обмениваются данными сразу в обоих направлениях.

Первым главным отличием NFC от RFID является способ взаимодействия peer-to-peer, который реализован с помощью ГОСТ Р ИСО/МЭК 18092. Обмен данными P2P реализуется двумя протоколами — протоколом подуровня управления логической связью (LLCP — logical link control protocol) и простым протоколом обмена данными NDEF (SNEP — simple NDEF exchange format).

Архитектура nfc

В архитектуре NFC есть несколько уровней. Самый низкий из них — физический, который реализован ЦПУ и другим аппаратным комплексом, через который происходит взаимодействие. В середине находятся данные о пакетах и транспортный уровень, затем формат данных уровней, и в конце программное обеспечение.

На физическом уровне NFC работает по алгоритму, описанному в ГОСТ для RFID (ГОСТ Р ИСО/МЭК 14443-2-2022), где говорится о маломощных радиосигналах частотой 13,56 МГц. Затем идёт уровень, который описывает разбивку потока данных на фреймы (ГОСТ Р ИСО/МЭК 14443-3-2022).

Любые радиоконтроллеры, которые используются в телефоне, планшете или подсоединяются к компьютеру или микроконтроллеру, являются отдельными аппаратными компонентами. Они взаимодействуют с главным процессором посредством одного или нескольких стандартных последовательных протоколов между устройствами: универсальный асинхронный приёмопередатчик (UART), последовательный периферийный интерфейс (SPI), последовательная шина данных для связи интегральных схем (I2C) или универсальная последовательная шина (USB).

Над этим находится несколько протоколов команд RFID, базирующихся на двух спецификациях. NFC чтение и запись меток базируется на оригинальном RFID ГОСТ Р ИСО/МЭК 14443A. Протоколы Philips/NXP Semiconductors Mifare Classic и Mifare Ultralight и NXP DESFire совместимы с ГОСТ Р ИСО/МЭК 14443A.

Обмен данными P2P NFC базируется на ГОСТ Р ИСО/МЭК 18092. Также на этом же стандарте базируются RFID-карты и метки Sony FeliCa, которые доступны в основном в Японии. Можно читать и записывать метки, основанные на этих стандартах, и не использовать NFC.

Они изображены на рисунке выше на уровне с другими управляющими протоколами, так как они используют одинаковый стандарт.

Использование nfc на iphone

Компания из Купертино также имеет свой собственный сервис для совершения бесконтактных платежей, который называется Apple Pay. Общие принципы оплаты аналогичны способу, который реализован на Андроид смартфонах. Первым действием является привязка карты. Предварительно необходимо уточнить, поддерживает ли банк, выпустивший пластик, данную систему платежей.

Одно устройство поддерживает загрузку до 8 различных пластиковых карт, при этом совершенно неважно, дебетовый или кредитный пластик применяется для оплаты. Совершение платежей проводится путём касания терминала. Самое главное, чтобы последний имел поддержку системы PayPass.

Подтверждением приёма оплаты посредством мобильного телефона является наличие соответствующего значка. Для активации встроенного кошелька на iPhone необходимо дважды нажать кнопку «Home». При осуществлении платежа палец необходимо поместить на TouchID, который будет дополнительным подтверждением оплаты со стороны пользователя.

Для Apple Pay также установлен лимит по сумме на совершение операции без ввода ПИН-кода карты. Он может различаться в зависимости от страны пребывания. На территории РФ допускается совершать оплату до 1 000 рублей без подтверждения через PIN. 

Совершение платежей посредством смартфона совершенно безопасно, поскольку данные о карте не передаются третьим лицам

Какой длины может быть ndef-сообщение?

Место на информацию в NDEF-записи ограниченно по размерам 2^32-1 байтами, однако можно делать цепочки записей внутри сообщения, чтобы переслать информацию большего размера. В теории нет ограничений на NDEF-сообщения, но на практике размер сообщения ограничивается возможностями устройств или меток, участвующих в обмене информацией.

Если в обмене участвуют только устройства, то длина сообщения будет ограничена вычислительной мощностью самого слабого из устройств, но стоит учесть, что устройства придётся долго держать рядом для пересылки всех данных. При взаимодействии смартфона и карты длина сообщения будет ограничена размером памяти карты.

В общем, обмен данными через NFC достаточно быстрый. Человек подносит мобильное устройство к метке, происходит краткий обмен информацией, и человек идёт дальше. Данная технология не была спроектирована для длительных обменов информацией, потому что устройства в буквальном смысле должны находится в паре сантиметров друг от друга.

Для того чтобы передать большой объем информации, устройства придётся держать друг рядом с другом длительное время, это может быть неудобным. Если нужно длительное взаимодействие между устройствами, то можно воспользоваться NFC для быстрого обмена данными о возможностях устройств и последующего включения одного из более подходящих способов передачи данных (Bluetooth, Wi-Fi и т.д.).

Модификация данных

Разрушение данных относительно легко осуществить средствами радиоэлектронной борьбы (РЭБ), то есть глушилками RFID. Нет способа предотвратить такое нападение, однако единственным его результатом будет невозможность установить связь.

Несанкционированная модификация данных внутри сообщения атакующим устройством нереализуема на практике в связи с невозможностью предсказать амплитуду и сдвиг фазы наведенного сигнала на приемном устройстве. RFID-приемник чувствителен к внезапной смене амплитуды и фазы несущего сигнала.

Поскольку NFC-устройства обычно также обеспечивают функциональность ISO 14443, описанная Relay attack также выполнима и для NFC.[19][20] Для этого нападения злоумышленник должен отправить жертве запрос считывателя и её ответ в режиме реального времени передать дальше на считывающее устройство. Это делается для того, чтобы выполнить задачу, симулирующую владение смарт-картой жертвы.

Однако на практике такая атака довольно затруднительна в связи с жёсткими ограничениями по времени на ответ запрашиваемого устройства[источник не указан 1739 дней]. В некоторых случаях речь может идти о микросекундных допусках (например, при выполнении обязательной процедуры антиколлизии), также ввиду маленького расстояния взаимодействия атаки с использованием ретрансляторов очень проблематичны.

Обновление по контроллера по nfc-каналу

Начальный загрузчик (bootstrap loader – BSL) позволяет осуществлять доступ к памяти MSP430 во время прототипирования, для обновления прошивки контроллера в готовом изделии и для сервисного обслуживания устройства. В то время как в младших сериях контроллеров семейства MSP430 BSL (рисунок 4) загрузчик располагается в ROM-памяти и доступен только для чтения, в сериях MSP430F5xx и MSP430F6xx загрузчик располагается в защищенной области FLASH-памяти [6]. Это не только обеспечивает ему защиту при стирании памяти, но и позволяет выполнять следующие задачи:

  • использовать различные протоколы и интерфейсы, такие как UART, USB, SPI, I2C, NFC, и sub-1GHz;
  • назначать различные события для запуска BSL, вплоть до нажатия кнопки;
  • добавлять проверку целостности загружаемых или загруженных данных и кода, например, путем вычисления контрольной суммы (CRC);
  • изменять скорость передачи данных.

Сам загрузчик состоит из трех основных частей:

  • периферийного интерфейса (PI), который принимает и декодирует команды загрузчика, а также содержит драйвера основных интерфейсов – UART и SPI (в частности, можно взаимодействовать с загрузчиком посредством транспондера TRF7970A);
  • интерпретатора команд (CI), который принимает и выполняет команды;
  • BSL API – набора функций, являющегося промежуточным звеном между интерпретатором команд и встроенной памятью контроллера.

С учетом ограничений на размер загрузчика в 2 кбайта, NCF BSL поддерживает только небольшую часть NFC-протокола, необходимую для простых операций передачи данных.

Целевое устройство изначально находится в режиме пассивного ожидания, предусмотренного в TRF7970A при активировании режима Single Device Detection (SDD), что позволяет снизить требования к объему занимаемой памяти. Скорость данных при установлении соединения – 106 кбит/с.

Скорость прошивки вполне сопоставима со скоростями работы через COM-порт (рисунок 5). (В примере задействованы отладочные платы MSP-EXP430F5529 и MSP-EXP430F5438 с подключенными к ним NFC-платами TRF7970ATB).

Принцип работы

В основе NFC лежит индуктивная связь. Частота работы — 13,56 МГц, скорость передачи — 106 кбит/с (возможны 212 кбит/с и 424 кбит/с). Сигнал подвергается амплитудной манипуляции ООК с различной глубиной 100% или 10% и фазовой манипуляции BPSK.

При передаче информации пассивному устройству используется амплитудная манипуляция ASK. При обмене с активным устройством оба устройства равноправны и выступают в качестве поллинговых. Каждое устройство имеет собственный источник питания, поэтому сигнал несущей отключается сразу после окончания передачи.

За счет индуктивной связи между опрашивающим и прослушивающим устройствами пассивное устройство влияет на активное. Изменение импеданса прослушивающего устройства вызывает изменение амплитуды или фазы напряжения на антенне опрашивающего устройства, которое он обнаруживает.

Этот механизм называется модуляцией нагрузки. Она выполняется в режиме прослушивания с применением вспомогательной несущей 848 кГц. В зависимости от стандарта применяется амплитудная (ASK для 14443 А) или фазовая манипуляция (BPSK для 14443 В). Еще один пассивный режим, совместимый с FeliCa, осуществляется без вспомогательной поднесущей с манипуляцией ASK на частоте 13,56 МГц.

Структура ndef

NDEF содержит информацию о байтовом представлении сообщений, которые могут содержать несколько записей. У каждой записи есть заголовок, в котором находятся метаданные (тип, длина и т.д.), и информацию для отправки. Если вернуться к аналогии с параграфом, то параграф формируется из предложений, относящихся к одной теме, так и в NDEF-сообщениях — хорошо, когда все записи относятся к одной тематике.

NDEF-сообщения в основном короткие, каждый обмен состоит из одного сообщения, каждая метка также содержит одно сообщение. Так как обмен NFC данными происходит при касании одного устройства другим или меткой, то будет неудобно передавать в одном сообщении текст целой книги, поэтому длина NDEF-сообщения сопоставима с длиной абзаца, но не целой книги.

NDEF-запись содержит информацию для пересылки и метаданные, как эту информацию интерпретировать. Каждая запись может быть разного типа, о чем объявляется в заголовке этой записи. Также в заголовке описывается какое место занимает запись в сообщении, после заголовка следует информация.

На рисунке ниже представлена полная информация о расположении бит и байт информации в NDEF-записи. Информация для пересылки занимает большую часть записи. Тип информации уточняет, как её интерпретировать, идентификатор информации опционален и используется для пересылки большого количества записей или перекрёстного обмена данными.

Телефоны с функцией nfc: краткий список моделей с указанием цен

Чтобы упростить выбор модели, имеющей предустановленный модель беспроводного обмена информацией или бесконтактных платежей, можно ознакомиться со списком, в каких телефона есть NFC. Каждая компания выпускает модели как премиум-класса, так и бюджетного сегмента, имеющие встроенную функцию. Усреднённый список, какие телефоны поддерживают NFC, приведён в табличной форме для упрощения восприятия.

Все крупные бренды и даже китайские производители реализуют поддержку модуля NFC в большинстве своих моделей, как способ идти в ногу со временем и завоевать покупателя. Более полный перечень смартфонов, которые можно найти на полках магазинов:

  • Alcatel Pop S7 7045Y
  • Alcatel U5 HD и A7
  • Huawei Honor 9
  • Huawei Honor 6X
  • Huawei Honor 5C
  • Huawei P10 Lite
  • Huawei Nova 2
  • iPhone SE
  • iPhone 8
  • iPhone X
  • LG G6
  • LG V30
  • LG Q6 и Q6
  • LG X Venture
  • Lenovo P2
  • Samsung Galaxy Note 8
  • Sony Xperia L1
  • Sony Xperia E5
  • Sony Xperia XA1
  • Nokia 8
  • Asus ZenFone 4
  • Asus ZenFone 4 Pro.
  • Asus ZenFone 4 AR
  • Blackview BV6000S
  • Blackview BV8000 Pro
  • Wileyfox Swift 2X
  • HTC Desire 530
  • HTC U Ultra
  • HTC U11 и U11 Plus
  • Google Pixel 2/2XL.
  • OnePlus 5/5T.
  • ZTE Nubia Z17 и Z17 mini
  • Moto G5s
  • AGM X2
  • BlackBerry Motion и KEYone

Отдельно можно упомянуть китайских производителей, чья продукция с каждым годом приобретает всё большее распространение и набирает популярность. Один из животрепещущих вопросов – в каких телефонах Xiaomi есть NFC:

  • Xiaomi Mi4 32/64Gb. Стоимость – 11 500−13 500 руб.;
  • Xiaomi Mi3 64Gb. Стоимость − около 15 000 руб.;
  • Xiaomi Mi5s 4/32Gb. Стоимость − около 21 000 руб.;
  • Xiaomi Mi Mix 4/128Gb. Стоимость − около 29 500−35 000 руб.;
  • Xiaomi Mi Mix 6/256Gb. Стоимость − около 33 000−37 000 руб.;
  • Xiaomi Mi Mix 2 6/256Gb Стоимость − около 36 500 руб.

Типы nfc-меток

Существует четыре типа меток, описанных NFC-форумом, все они базируются на RFID-протоколах. Это делает NFC метки частично совместимыми со многими уже существующими RFID системами (например, Mifare и FeliCa). Хотя эти более старые системы не поддерживают NDEF, они, однако, могут опознавать NFC метки, которые совместимы с ними.

Например, считыватель RFID, который предназначен для работы с метками Mifare Ultralight, может считать идентификационный номер метки NFC 2 типа, хоть и не может прочитать закодированную NDEF информацию. Есть также пятый тип, который совместим с технологией, но при этом не является частью NFC-спецификации.

Типы 1, 2 и 4 основаны на ГОСТ Р ИСО/МЭК 14443A (состоит из четырёх частей: 1, 2, 3, 4), тип 3 — на ГОСТ Р ИСО/МЭК 18092. Более подробно про каждый из типов можно прочитать под спойлером.

Тип 1

:

  • Основан на ГОСТ Р ИСО/МЭК 14443A;
  • Может быть как только для чтения, так и для чтения/записи;
  • Содержит от 96 байт до 2 кбайт памяти;
  • Нет защиты данных от коллизий (прим. — коллизии могут возникнуть; когда два активных источника передают данные одновременно);
  • Примеры: Innovision Topaz, Broadcom BCM20203.

Тип 2:

  • Аналогично типу 1 основан на NXP/PhilipsMifareUltralight метках (ГОСТ Р ИСО/МЭК 14443A);
  • Может быть как только для чтения, так и для чтения/записи;
  • Содержит от 96 байт до 2 кбайт памяти;
  • Скорость взаимодействия 106 кбит/с;
  • Поддержка анти-коллизий;
  • Пример: NXP Mifare Ultralight.

Тип 3:

  • Основан на метках SonyFeliCa (ГОСТ Р ИСО/МЭК 18092 и JIS-X-6319-4) без поддержки шифрования и аутентификации, которая предоставлена спецификацией FeliCa;
  • Может быть либо только для чтения, либо для чтения/записи;
  • Скорость взаимодействия 212 или 424 кбит/с;
  • Поддержка анти-коллизий;
  • Пример: Sony FeliCa.

Тип 4:

  • Аналогично типу 1, тип 4 основан на ГОСТ Р ИСО/МЭК 14443A;
  • Может быть либо только для чтения, либо для чтения/записи;
  • 2, 4 или 8 кбайт памяти;
  • Скорость взаимодействия 106, 212 или 424 кбит/с;
  • Поддержка анти-коллизий;
  • Пример: NXP DESFire, SmartMX-JCOP.

Пятый тип является собственностью NXPSemiconductors и, вероятно, самым распространённым на сегодняшний день MifareClassictag (ГОСТ Р ИСО/МЭК 14443A):

  • Память: 192, 768 или 3584 байта;
  • Скорость взаимодействия 106 кбит/с;
  • Поддержка анти-коллизий;
  • Пример: NXP Mifare Classic 1K, Mifare Classic 4K, Mifare Classic Mini.

Транспондеры серии rf430frl15xh

Микросхемы TRF796xA и TRF7970A [5] являются высокопроизводительными приемопередатчиками диапазона 13,56 МГц со встроенными устройствами формирования пакетов с поддержкой стандартов ISO/IEC 15693, ISO/IEC 18000-3, ISO/IEC 14443A и B (рисунок 3).

TRF7970A, как наиболее современный представитель семейства трансиверов TRF79xxA, поддерживает NFC-стандарты NFCIP-1 (ISO/IEC 18092) и NFCIP-2 (ISO/IEC 21481).

Встроенные блоки кодирования-декодирования данных, формирования пакетов, а также большой FIFO-буфер позволяют достаточно легко осуществлять взаимодействие по радиоканалу. Детектор наличия поля может активировать выход устройства из спящего режима, оптимизируя тем самым общее энергопотребление устройства. В зависимости от ситуации, режима работы, приложения, TRF79xxA может находиться в одном из семи доступных режимов энергопотребления.

Широкий диапазон допустимых напряжений питания 2,7…5,5 В допускает применение транспондера в устройствах с различными уровнями напряжений – и в устройствах с логическими уровнями 3 В, и с устройствами 5 В. Также возможна работа транспондера при сильно разряженной батарее питания.

Приемопередатчик TRF79xxA позволяет реализовывать различные протоколы обмена для диапазона 13,56 МГц, включая нестандартные.

Основные возможности:

  • поддержка стандартов ISO 14443A, ISO 14443B, ISO 15693, ISO/IEC 18000-3 (Mode 1);
  • диапазон напряжений питания 2,7…5,5 В;
  • встроенный стабилизатор питания (выходной ток до 20 мА);
  • потребление в режиме ожидания – 120 мкА, в режиме сна – менее 1 мкА;
  • параллельный или последовательный (SPI) интерфейс с хост-системой;
  • встроенные блоки формирования пакетов, проверки контрольной суммы, контроля четности;
  • скорость передачи данных – до 848 кбит/с;
  • тактовый выход для хост-контроллера;
  • программируемый антенный усилитель;
  • выходной усилитель с поддержкой OOK- или ASK-модуляции;
  • программируемая выходная мощность – 100 или 200 мВт;
  • прием и декодирование нескольких поднесущих.

RF430FRL15xH [7, 8] является транспондером диапазона 13,56 МГц со встроенным 16-битным малопотребляющим контроллером MSP430 (рисунок 6). Для хранения программы и данных используется энергонезависимая оперативная память технологии FRAM.

FRAM эффективна в NFC-приложениях благодаря высокой скорости работы и низкому энергопотреблению в сочетании с сохранением данных при выключении питания. Энергонезависимость встроенной FRAM-памяти RF430FRL15xH позволяет свободно применять данный транспондер и в приложениях с автономным питанием, и в приложениях с питанием за счет внешнего электромагнитного поля считывателя.

RF430FRL15xH поддерживает обмен данными, установку параметров и конфигурирование посредством беспроводного интерфейса (стандарты ISO/IEC 15693, ISO18000-3), а также при помощи SPI- или I2C-интерфейса.

Встроенный датчик температуры, малопотребляющий 14-битный АЦП, два конфигурируемых аналоговых усилителя позволяют применять RF430FRL15xH в качестве самостоятельного сенсорного узла, обслуживающего как цифровые, так и аналоговые датчики.

Основные возможности транспондера:

  • радиоинтерфейс ISO/IEC 15693, ISO/IEC 18000-3 (Mode 1);
  • выбор источника питания: внешний источник питания или электромагнитное поле;
  • встроенный датчик температуры, интерфейс к резистивному датчику;
  • 16-битный блок вычисления контрольной суммы (CRC);
  • микроконтроллерное ядро MSP430 (2 кбайта FRAM, 4 кбайта ОЗУ, 8 кбайт ПЗУ);
  • напряжение питания – 1,45…1,65 В (ток потребления 260 мкА/МГц, в режимах экономии энергии – 9…15 мкА);
  • несколько источников тактирования (4 МГц, 256 кГц, внешний тактовый сигнал);
  • интерфейсный модуль eUSCI, поддерживающий SPI и I2C;
  • отладочный интерфейс JTAG.

Читаем ndef-сообщение

Когда телефон на Android считывает NFC-метку, он сначала её обрабатывает и распознает, а затем передаёт данные о ней в соответствующее приложение для последующего создания intent. Если с NFC может работать больше одного приложения, то появится меню выбора приложения. Система распознавания определяется тремя intent, которые перечислены в порядке важности от самой высокой до низкой:

  1. ACTION_NDEF_DISCOVERED: Этот intent используется для запуска аctivity, если в метке содержится NDEF-сообщение. Он имеет самый высокий приоритет, и система будет запускать его в первую очередь.
  2. ACTION_TECH_DISCOVERED: Если никаких activity для intent ACTION_NDEF_DISCOVERED не зарегистрировано, то система распознавания попробует запустить приложение с этим intent. Также этот intent будет сразу запущен, если найденное NDEF-сообщение не подходит под MIME-тип или URI, или метка совсем не содержит сообщения.
  3. ACTION_TAG_DISCOVERED: Этот intent будет запущен, если два предыдущих intent не сработали.

В общем случае система распознавания работает, как представлено на рисунке ниже.

Когда это возможно, запускается intent ACTION_NDEF_DISCOVERED, потому что он наиболее специфичный из трёх. Более того, с его помощью можно будет запустить ваше приложение.

Если activity запускается из-за NFC intent, то можно получить информацию с отсканированной NFC-метки из этого intent. Intent может содержать следующие дополнительные поля (зависит от типа отсканированной метки):

  • EXTRA_TAG (обязательное): объект Tag, описывающий отсканированную метку.
  • EXTRA_NDEF_MESSAGES (опциональное): Массив NDEF-сообщений, просчитанный с метки. Это дополнительное поле присуще только intent ACTION_NDEF_DISCOVERED.
  • EXTRA_ID (опциональное): Низкоуровневый идентификатор метки.

Ниже представлен пример, проверяющий intent ACTION_NDEF_DISCOVERED и получающий NDEF-сообщения из дополнительного поля.

Kotlin

override fun onNewIntent(intent: Intent) {
    super.onNewIntent(intent)
    ...
    if (NfcAdapter.ACTION_NDEF_DISCOVERED == intent.action) {
        intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES)?.also { rawMessages ->
            val messages: List = rawMessages.map { it as NdefMessage }
            // Обработка массива сообщений.
            ...
        }
    }
}

Java

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    ...
    if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) {
        Parcelable[] rawMessages =
            intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
        if (rawMessages != null) {
            NdefMessage[] messages = new NdefMessage[rawMessages.length];
            for (int i = 0; i < rawMessages.length; i  ) {
                messages[i] = (NdefMessage) rawMessages[i];
            }
            // Обработка массива сообщений.
            ...
        }
    }
}

Также объект Tag можно получить из intent, который будет содержать полезную информацию и позволит перечислить технологии метки:

Kotlin

val tag: Tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG)

Java

Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *