Как использовать NFC в повседневной жизни — OnLime Блог

Типы 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.

Где применяется NFC

Многие наслышаны о том, что эта технология позволяет быстро и бесконтактно оплачивать товары и услуги. На самом деле сфера ее применения гораздо шире и включает:

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

Как это работает

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

NFC — это беспроводная короткодистанционная технология, которая работает на частоте 13,56 МГц, использующейся для промышленных, медицинских и научных целей. NFC является логическим продолжением технологии RFID, а её основным отличием стал ограниченный радиус действия. В то время как дистанция считывания RFID-меток может достигать нескольких сотен метров, метки NFC доступны в пределах 10 сантиметров.

NFC всегда имеет инициатора и цель. Инициатор активно генерирует радиочастотное поле, которое может влиять на пассивную цель. Также возможна NFC-связь между двумя устройствами при условии, что оба устройства включены. Благодаря компактным размерам и низкому энергопотреблению NFC может использоваться в небольших гаджетах[1].

Для передачи данных NFC использует кодирование с различным коэффициентом модуляции в зависимости от скорости передачи данных. При этом устройства 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).

Плюсы и минусы модуля

  • Безопасность. Так как радиус действия чипа ограничен 10 см, никто за пределами этого круга не получит доступ к платежным данным или передаваемым файлам.
  • Скорость соединения. Менее одной секунды требуется устройству, чтобы подключиться к другому гаджету или терминалу. В старых мобильных телефонах и первых смартфонах эта процедура занимала до 15 секунд.
  • Энергоэффективность. Чип NFC использует в работе минимальное количество энергии. Это важно в современных смартфонах, которые демонстрируют не самые высокие показатели автономности.
  • Удобство. С помощью этой технологии упрощаются рутинные операции, а вы тратите на них меньше времени. Чтобы установить соединение с другим устройством, достаточно простого секундного касания.
  • Универсальность. Технология NFC совместима со многими другими бесконтактными решениями и может работать (хотя и с ограничениями) даже в выключенном смартфоне.

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

Разберем основные минусы NFC.

  1. Небольшой радиус работы. Это приносит некоторый дискомфорт при использовании. Хотя, в то же время, этот показатель создает максимальную защиту. Вы не сможете случайно произвести команду, оплатить покупку и т.д.
  2. Бесконтрольное создание модификаций для NFC. К примеру, разработчики «Сони» и «Хаоми» взялись за доработку технологии передачи. Они самостоятельно делают расходные материалы, которые осуществляют свою работу лишь с гаджетами их фирмы. Иными словами, чтобы использовать все опции NFC, вам придется приобретать смартфоны лишь конкретных марок. Сюда же входит установка специальных приложений от этого же разработчика.

Некоторые из недостатков исправляются постепенно. Разработчики не забрасывают свою технологию и постоянно вносят различные доработки.

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

Как использовать NFC в повседневной жизни — OnLime Блог

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

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

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

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

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

Как активировать NFC в смартфоне

Откройте меню настроек мобильного устройства, выберите раздел «Беспроводные сети»/«Беспроводные коммуникации» и найдите там одноименный пункт. Чаще всего он скрывается во вкладке «Еще…». Для активации функции просто поставьте галочку, которая разрешает обмен информацией при приближении смартфона к другому устройству или терминалу.

Как использовать NFC в повседневной жизни — OnLime Блог

Если пункта NFC нет в разделе с перечнем беспроводных сетей, значит, смартфон не оснащен этим чипом. Многие производители мобильных гаджетов рекламируют данную функцию и размещают название о ней на аккумуляторах или задних крышках (как в Samsung), а то и прямо на корпусе (как в Sony). Однако это скорее исключение из правил.

Перечисленные способы подходят только для Android-смартфонов. В Apple-устройствах чип NFC появился в iPhone 6. Первое время он использовался только для сервиса Apple Pay, но в последних моделях смартфонов дополнительно поддерживается режим считывания.

Создаём распространённые NDEF-записи

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

Есть несколько распространённых типов NDEF-записей:

  1. Обычные текстовые записи. В них можно отправить любую строку, они не содержат инструкций для цели, но содержат метаданные об языке текста и кодировке.
  2. URI. Такие записи содержат данные об интернет-ссылках. Цель, получившая такую запись, откроет её в том приложении, которое сможет её отобразить. Например, веб-браузере.
  3. Умная запись. Содержит не только веб-ссылки, но и текстовое описание к ним, чтобы было понятно, что находится по этой ссылке. В зависимости от данных записи телефон может открыть информацию в нужном приложении, будь то SMS или e-mail, либо сменить настройки телефона (громкость звука, яркость экрана и т.д.).
  4. Подпись. Она позволяет доказать, что информация, которая была передана или передаётся, достоверна.

Можно использовать несколько видов записей в одном NDEF-сообщении.

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

Второе главное различие между NFC и RFID — формат обмена данными NFC (NDEF — NFC data exchange format). NDEF определяет формат данных в сообщениях, которые в свою очередь состоят из NDEF записей. Есть несколько видов записей, о которых будет рассказано более подробно чуть ниже. NDEF делает возможным с помощью программного кода управлять процессом чтения и записи NFC-меток, обмена данными при помощи peer-to-peer и эмулирования карт.

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

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

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

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

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

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

Как использовать NFC в повседневной жизни — OnLime Блог

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

Когда телефон на 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 -{amp}gt;
            val messages: List = rawMessages.map { it as NdefMessage }
            // Обработка массива сообщений.
            ...
        }
    }
}
@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 {amp}lt; rawMessages.length; i  ) {
                messages[i] = (NdefMessage) rawMessages[i];
            }
            // Обработка массива сообщений.
            ...
        }
    }
}

Kotlin

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

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

Существует несколько методов для создания NDEF-записи: createUri(), createExternal() и createMime(). Лучше использовать один из них во избежание ошибок, которые могут возникнуть при создании записи вручную. Все примеры, представленные ниже, следует отправлять первым сообщением при записи метки, либо сопряжением с другим устройством.

Kotlin

Обмен данными через NFC

Технология может использоваться и для передачи файлов.

Для передачи данных необходимо сделать следующие шаги:

  1. убедиться в том, что вы прошли активацию NFС и Android Beаm;
  2. снять блокировку устройства, выйти из «режима сна»;
  3. проверить обнаружение устройств друг с другом;
  4. подключитесь;
  5. осуществите передачу данных между устройствами;
  6. в конце прозвучит специфический звуковой сигнал.

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

Эта опция доступна на смартфонах с функцией Android Beam на устройствах Android версии 4.0 Ice Cream Sandwich или старше. С одного смартфона на другой можно пересылать любую информацию: фотографию, контакты пользователя, ссылку на сайт или видеоролик. Вы здорово экономите время, так как вам больше не придется пользоваться для этого облачными хранилищами, электронной почтой или мессенджерами.

Чтобы запустить передачу данных через NFC, выполните такие действия:

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

Как использовать NFC в повседневной жизни — OnLime Блог

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

Создаём распространённые NDEF-записи

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

Результатом считывания метки могут быть такие действия:

  • отправка SMS-сообщения или электронного письма;
  • включение или выключение Wi-Fi и Bluetooth;
  • соединение с другим устройством по протоколу Bluetooth;
  • перевод смартфона в «режим полета»;
  • запуск мобильного приложения;
  • переход по ссылке и многие другие.

Чтотакое Google Pay и Apple Pay?

Сегодня Google Pay, а до февраля 2018 года – Android Pay – это система электронных платежей с мобильных устройств, работающих на Android. С ней работают не только смартфоны, но и планшеты, смарт-часы и другие гаджеты. Количество стран, в которых функционирует сервис, приближается к двадцати. Россия примкнула к ним 23 мая 2017 года, а в числе первых были США, Великобритания и Сингапур.

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

Совершать платежи с помощью Android Pay просто: просто поднесите мобильное устройство к платежному терминалу и не убирайте до тех пор, пока не завершится транзакция. Для этого необходимо, чтобы касса была оснащена современным терминалом с поддержкой NFC.

Samsung Galaxy S7 и Apple iPhone 6

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

Похожим образом работает и Apple Pay – система мобильных платежей от компании Apple. Она доступна в России с октября 2016 года (а вообще почти в 30 странах мира) на смартфонах iPhone 6 и старше. Как и в случае с Google Pay, здесь используется технология «ближней бесконтактной связи», а принцип действия обеих систем идентичен за исключением нескольких деталей. После оцифровки банковской карты приложением Apple Pay вы сможете расплачиваться ею там, где это позволяют кассовые терминалы.

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

А вы уже пробовали использовать NFC в своем смартфоне?

Заключение

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

Другой выход, позволяющий лично познакомиться с NFC, – купить специальный аксессуар. Сегодня множество компаний предлагают приобрести карты памяти, симки, где встроен НФЦ.

Распространенность NFC не достигла впечатляющих результатов, но это ненадолго. Сейчас ее в основном используют для совершения денежных операций, хотя существуют и другие сферы применения. Главный плюс модификации – безопасность. Его принцип работы исключает случайные передачи данных и денег на другие устройства.

Технология NFC добавляет многообещающую функциональность к технологии RFID. Наиболее значимое нововведение — формат обмена данными NFC (NDEF), который предоставляет возможность форматировать обычные данные в одну из четырёх технологий меток NFC. NDEF может быть использован как для обмена данными между устройством и меткой, так и для обмена между устройствами. Это делает NFC пригодным не только как способ идентификации, но и как средство обмена короткими блоками данных.

althttps://www.youtube.com/watch?v=85oWPy-vsz4

Более подробно об NFC или NDEF можно почитать в книге Tom Igoe, Don Coleman, and Brian Jepson «Beginning NFC. Near Field Communication with Arduino, Android, and PhoneGap».

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

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