Технология NFC — связь на близком расстоянии

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

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

Рис. 1. Примерные области действия беспроводных интерфейсов различных стандартов

Рис. 1. Примерные области действия беспроводных интерфейсов различных стандартов

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

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

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

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

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

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

  • прямое соединение, при котором происходит передача параметров соединения, отслеживается процедура установления связи и настройка канала передачи данных между двумя устройствами;
  • косвенное соединение, когда 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 МГц.

Введение в разработку приложений для Android, поддерживающих NFC

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

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

Android поддерживает NFC в двух пакетах: android.nfc и android.nfc.tech.

NfcManager: Можно использовать устройства Android для управления всеми указанными адаптерами NFC, но, поскольку в большинстве случаев устройства Android поддерживают только один адаптер NFC, вызов NfcManager обычно осуществляется непосредственно с getDefaultAdapter для получения определенного адаптера.

Технология NFC — связь на близком расстоянии

NfcAdapter: Работает в качестве агента NFC (наподобие сетевого адаптера в компьютере), с помощью которого сотовые телефоны получают доступ к оборудованию NFC для запуска обмена данными NFC.

NDEF: Стандарты NFC определяют общий формат данных. Он называется NFC Data Exchange Format (NDEF) и используется для хранения и передачи различной информации — от объектов с типом MIME до сверхкратких документов, передаваемых по радио, например URL-адресов. NdefMessage и NdefRecord являются двумя видами NDEF для форматов данных, определенных форумом NFC. Они используются в нашем образце кода.

Tag: Согласно определению Android, этот класс представляет пассивные объекты, такие как радиометки, карточки и т. п. Когда устройство обнаруживает метку, Android создает объект tag и помещает его в объект Intent, который отправляется соответствующему действию.

Пакет android.nfc.tech также содержит множество важных подклассов. Эти подклассы обеспечиваю доступ к функциям технологии радиометок, в том числе к операциям чтения и записи. В зависимости от типа используемой технологии эти классы разделяются на различные категории, например NfcA, NfcB, NfcF, MifareClassic и пр.

NDEF_DISCOVERED, TECH_DISCOVERED, TAG_DISCOVERED

Мы используем здесь тип intent-filter для обработки всех типов от TECH_DISCOVERED до ACTION_TECH_DISCOVERED. Файл nfc_tech_filter.xml используется для всех типов, определенных в файле TAG. Подробные сведения см. в документации Android. На приведенном ниже рисунке показано действие соответствующего процесса при обнаружении телефоном радиометки.

Рисунок 6. Процесс работы при обнаружении метки NFC

Таблица 2. Характеристики режимов NFC

NFC считыватель для СКУД: идентификация по смартфону

ехнология связи на малых расстояниях NFC (Near Field Communication) —
совместная  разработка компаний NXP Semiconductor и Sony — представляет
собой комбинацию нескольких существующих бесконтактных технологий
радиочастотной (РЧ) идентификации и связи.Технология NFC предназначена для обмена различной информацией, например,
номерами телефонов, картинками, музыкальными файлами или ключами цифровой
авторизации между двумя расположенными близко друг к другу устройствами с
поддержкой NFC.

Это могут быть любые портативные устройства, а также
смарт-карты или считывающие устройства RFID. Данная технология может
использоваться в качестве ключа доступа к данным или сервисам, таким как
безналичная оплата или электронный замок.Центральная частота NFC равна 13,56 МГц. Скорость передачи данных достигает 424
кбит/с на расстоянии примерно 10 см.

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

Технология обратно совместима с широко используемым стандартом Smart Card на
основе ISO/IEC 14443 А (например, Mifare) и ISO/IEC 14443 В, а также JIS X
6319-4 (FeliCa). Для обмена между двумя устройствами разработан новый протокол
ECMA-340 и ISO/IEC 18092. В 2004 г. был создан союз NFC Forum, в который вошли
Sony, NXP и Nokia.

Стандарт

Тип устройства

Кодирование

Модуляция

Скорость передачи, кб/с

Несущая, МГц

NFC-A

Опрашивающее

Модифицированный код Миллера

ASK 100%

106

13,56

Прослушивающее

Манчестер

Модуляция нагрузки (ASK)

106

13,56 ± 848 кГц

NFC-B

Опрашивающее

NRZ-L

ASK 10%

106

13,56

прослушивающее

NRZ-L

Модуляция нагрузки (BPSK)

106

13,56± 848 кГц

NFC-F

Опрашивающее

Манчестер

ASK 10%

212/424

13,56

Прослушивающее

Манчестер

Модуляция нагрузки (ASK)

212/424

13,56 (без поднесущей)

В пассивном режиме используются метки NFC — пассивные устройства,
предназначенные для обмена с активными NFC-устройствами. Как и метки RFID,
метки NFC применяются для хранения небольшого количества данных. Всего
определено 4 типа меток (см. табл. 3). 

В стандарте определены три возможных режима работы устройств NFC:

  • режим «точка-точка»;
  • режим эмуляции карты;
  • режим считывателя.

Режим «точка-точка» предусматривает двунаправленный обмен данными между устройствами. При этом каждое из устройств может при необходимости инициировать обмен.

Технология NFC — связь на близком расстоянии

В режиме эмуляции карты NFC-устройство функционирует как бесконтактная карта/метка.

Считыватель может считывать и записывать данные в NFC/RFID-устройства и бесконтактные карты, а также осуществлять запитку пассивных NCF-устройств.

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

Технология NFC основана на технологии радиометок RFID с использованием частоты 13,56 МГц. Типовое рабочее расстояние составляет до 10 см, а скорость передачи данных может достигать 424 кбит/с. Основным преимуществом NFC по сравнению с другими технологиями передачи данных является быстрота и простота использования. На следующем рисунке показано сравнение NFC с другими технологиями обмена данными.

Рисунок 1. Сравнение технологий передачи данных ближнего действия.

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

Технология NFC — связь на близком расстоянии

Рисунок 2. Семейства протоколов NFC

В режиме эмуляции карт NFC работает как бесконтактная смарт-карта с радиометкой RFID и с модулем безопасности, что позволяет пользователям безопасно осуществлять покупки. В режиме обмена данными можно передавать данные между двумя находящимися рядом устройствами, поддерживающими NFC. Можно очень быстро и удобно создавать подключения WiFi* или Bluetooth* с помощью NFC, а затем передавать крупные файлы по подключению WiFi или Bluetooth. В режиме считывания и записи можно использовать устройства, поддерживающие NFC, для считывания меток NFC и запуска различных задач.

Все режимы более подробно описаны ниже.

Решения NFC от Texas Instruments

Компания Texas Instruments предоставляет широкий ассортимент продукции для коммуникаций ближнего поля, отвечающий практически всем возможным на сегодняшний день запросам рынка [3]. Среди аппаратных решений компании для NFC имеются высокоэффективные и гибкие транспондеры TRF7970A и RF430CL330H, однокристальные системы RF430FRL15xH и системы в корпусе RF430F59XX с процессорными ядрами MSP430.

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

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

Рис. 3. Структурная схема приемопередатчиков TRF796xA, TRF7970A

Рис. 3. Структурная схема приемопередатчиков TRF796xA, TRF7970A

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

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

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

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

Технология NFC — связь на близком расстоянии

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

  • поддержка стандартов 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.

Рис. 6. Структурная схема транспондеров серии RF430FRL15xH

Рис. 6. Структурная схема транспондеров серии RF430FRL15xH

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.

Пример: Разработка приложения для чтения и записи информации на базе NFC

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

@Override
	protected void onNewIntent(Intent intent){
		if(NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())){
		mytag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);  // get the detected tag
		Parcelable[] msgs =
intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
			NdefRecord firstRecord = ((NdefMessage)msgs[0]).getRecords()[0];
			byte[] payload = firstRecord.getPayload();
			int payloadLength = payload.length;
			int langLength = payload[0];
			int textLength = payloadLength - langLength - 1;
			byte[] text = new byte[textLength];
			System.arraycopy(payload, 1 langLength, text, 0, textLength);
			Toast.makeText(this, this.getString(R.string.ok_detection) new String(text), Toast.LENGTH_LONG).show();
					}
	}

Технология NFC — связь на близком расстоянии

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

If (mytag==Null){
	……
}
else{
……
write(message.getText().toString(),mytag);
……
}
	private void write(String text, Tag tag) throws IOException, FormatException {
		NdefRecord[] records = { createRecord(text) };
		NdefMessage  message = new NdefMessage(records);
// Get an instance of Ndef for the tag.
		Ndef ndef = Ndef.get(tag); // Enable I/O
		ndef.connect(); // Write the message
		ndef.writeNdefMessage(message); // Close the connection
		ndef.close();
	}

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

Мы используем карту Mifare для теста считывания карты и используем тип TAG карты MifareClassic. Карта MifareClassic широко используется в самых различных целях: как удостоверение личности,для оплаты проезда на общественном транспорте и т. п. Память традиционной карты MifareClassic разделяется на 16 секторов, каждый сектор включает 4 блока, а каждый блок может содержать 16 байт данных.

Последний блок в каждой области называется трейлером, он используется главным образом для сохранения локального ключа блока для чтения и записи данных. Он содержит два ключа, A и B, длиной по 6 байт каждый, значение по умолчанию обычно равно FF или 0 для всего ключа согласно определению MifareClassic.KEY_DEFAULT.

При записи на карту Mifare нужно сначала получить правильное значение ключа (для защиты). Перед тем как пользователь получит возможность чтения и записи данных в эту область, нужно пройти проверку подлинности.

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

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

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

Рис. 4. Структура начального загрузчика MSP430 BSL

Технология NFC — связь на близком расстоянии

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

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

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

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

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

Рис. 5. Обновление прошивки посредством NFC BSL

Рис. 5. Обновление прошивки посредством NFC BSL

Заключение

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

Компания Texas Instruments предоставляет аппаратные и программные средства для разработки NFC- и RFID-устройств.

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

Компания КОМПЭЛ, являющаяся официальным дистрибьютором Texas Instruments в России, осуществляет техническую поддержку разработчиков и производителей.

Отладочные средства NFC

Технология NFC — связь на близком расстоянии

Традиционно компания Texas Instruments предлагает ассортимент отладочных и демонстрационных наборов [10].

Для оценки, отладки и проверки NFC-приложений может быть использован набор Dynamic NFC Transponder Evaluation Kit, состоящий из плат RF430CL330HTB Target Board и MSP-EXP430FR5739.

Отладочный набор NFCLink Evaluation Kit Bundle содержит в своем составе плату TRF7970ATB Target Board, плату MSP-EXP430F5529 USB Experimenter’s Board, отладочные платы RF430CL330HTB Target Board и MSP-EXP430FR5739 Experimenter Board (рисунок 8).

Рис. 8. Отладочные NFC-наборы TRF7970ATB Target Board (а) и NFCLink Evaluation Kit Bundle (б)

Рис. 8. Отладочные NFC-наборы TRF7970ATB Target Board (а) и NFCLink Evaluation Kit Bundle (б)

Плата TRF7970ATB Target Board может быть использована в паре с одной из отладочных плат контроллеров MSP430™, Tiva™ C или OMAP™.

Пакет ПО NFC Link SW

Рис. 9. Структура программного пакета NFC Link

Рис. 9. Структура программного пакета NFC Link

Основной программной библиотекой для работы с NFC-устройствами серии TRF79xx производства компании Texas Instruments является программный пакет NFCLink) [11, 12]. Его структура изображена на рисунке 9.

NFCLink поддерживает встраиваемые контроллеры Texas Instruments семейств MSP430™, Tiva™ C и OMAP™ и состоит из следующих частей:

  • драйверов для работы с TRF79xx;
  • набора API-функций NFC, RFID;
  • интерфейса с хост-системой (NFC Controller I/F – NCI), включая поддержку операционных систем Android, Linux и Windows® 7 и 8.

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

Технология NFC — связь на близком расстоянии

Основная часть NFC Link поставляется в виде предварительно скомпилированных библиотек, а приложение взаимодействия хост-системы с транспондерами TRF79хх (интерфейсные уровни) – в виде исходных текстов.

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

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