RFID-системы стандарта EPC Gen2 / Хабр

Что такое технология rfid и как она работает?

RFID или система радиочастотной идентификации состоит из двух основных компонентов: транспондера или метки, прикрепленной к идентифицируемому объекту, и приемопередатчика, также известного как интеррогатор (interrogator) или считыватель.

Рисунок 1 Как работает технология RFID
Рисунок 1 – Как работает технология RFID

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

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

Рисунок 2 Как работает технология RFID
Рисунок 2 – Как работает технология RFID

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

Nfc, iso14443 и mifare

Стандартов ближней радиосвязи и беспроводных меток в частности, существует великое множество. Чаще всего используются частоты 125 кГц (LF-диапазон, см. первую часть, самые частые представители — EM-Marin, HID Proximity), 13,56 МГц (HF-диапазон, представители — семейство Mifare, семейство HID iClass) и 860-960 МГц (UHF-диапазон).

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

Давайте кратко пробежимся по основным стандартам:

ISO 14443 — один из базовых стандартов для карт беспроводного доступа, определяет рабочую частоту (13,56 МГц), предельное расстояние (10 см), прочие физические параметры интерфейса, скорости (до 106 кбодс в изначальном стандарте) и протоколы передачи данных между считывателем и картой, определение коллизий, если в поле считывателя более одной карты и т.д. Стандарт не оговаривает применяемого шифрования, а также точного формата данных на карте.

ISO 15693 — менее распространенный стандарт, несовместимый с предыдущим. Предполагает ту же рабочую частоту, но меньшую скорость обмена данных (до 26 кбодс) в обмен на большую дальность считывания.

NFC — Near Field Communication — довольно большой набор стандартов, частично совместимый с ISO 14443, описывающий как физический уровень интерфейса (в целом основанный на ISO 14443), так и многое другое, формат хранения данных NDEF (стандартизирующий способы кодирования URL, контактных данных и т.д.), режим совместимости с ISO 14443.

Благодаря последнему, каждое NFC-устройство (и радиометка, и смартфон) может как минимум вернуть свой идентификационный номер в понятном считывателю, рассчитанному на более старые карты, формате. Ну и обычно NFC-считыватель способен читать и другие RFID-карты, не являющиеся NFC, но тоже основанные на ISO 14443.

MIFARE — большое семейство стандартов, также основанное на ISO 14443, отличающееся объемом памяти (от сотен байт до десятков килобайт), шифрованием (от отсутствия или проприетарного алгоритма до AESDES), часто используемое в качества карт доступа, платежных карт.

Rfid метка антенна

Антенна RFID-метки – это своего рода индукционная антенна связи, соединенная с интегральной схемой метки, которая является важной частью транспондера RFID-метки. Антенна принимает сигнал от опросчика, затем передает или отражает принятый сигнал в зависимости от типа метки.

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

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

Антенна высокой частоты
Материалычастота
алюминий30 мкм / 10 мкм13.56 ± 0.2 МГц
PET38μm
Антенна сверхвысокой частоты
Материалычастота
алюминий10μm860 ~ 960MHz
PET50μm

Rfid система контроля доступа для дверного замка

Давайте создадим небольшой проект на Arduino, чтобы продемонстрировать, как простой модуль RFID считывателя RC522 можно использовать для создания RFID системы контроля доступа для дверного замка. Наша программа будет сканировать уникальный идентификатор каждой RFID метки, когда она достаточно близко, чтобы запитываться от считывателя RC522.

Так выглядит результат.

Рисунок 13 Демонстрация работы RFID системы контроля доступа для дверного замка
Рисунок 13 – Демонстрация работы RFID системы контроля доступа для дверного замка

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

Если вы не знакомы с символьными LCD дисплеями размером 16×2, то взгляните на эту статью.

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

Рисунок 14 RFID система контроля доступа для дверного замка. Подключение RFID считывателя RC522 и LCD дисплея к Arduino
Рисунок 14 – RFID система контроля доступа для дверного замка. Подключение RFID считывателя RC522 и LCD дисплея к Arduino

Всё! Теперь попробуйте приведенный ниже скетч в работе.

#include <SPI.h>
#include <MFRC522.h>
#include <LiquidCrystal.h>

#define RST_PIN 9
#define SS_PIN 10

byte readCard[4];
String MasterTag = "20C3935E";	// ЗАМЕНИТЕ этот ID метки на ID своей метки!!!
String tagID = "";

// Создание объектов
MFRC522 mfrc522(SS_PIN, RST_PIN);
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); //Параметры: (rs, enable, d4, d5, d6, d7) 

void setup() 
{
  // Инициализация
  SPI.begin();        // SPI шина
  mfrc522.PCD_Init(); // MFRC522
  lcd.begin(16, 2);   // LCD дисплей

  lcd.clear();
  lcd.print(" Access Control ");
  lcd.setCursor(0, 1);
  lcd.print("Scan Your Card>>");
}

void loop() 
{
  
  // Ждем, пока не будет доступна новая метка
  while (getID()) 
  {
    lcd.clear();
    lcd.setCursor(0, 0);
    
    if (tagID == MasterTag) 
    {
      lcd.print(" Access Granted!");
      // Вы можете написать здесь любой код, например, открывание дверей,
      // включение реле, зажигание светодиода или что-то другое, что взбредет вам в голову.
    }
    else
    {
      lcd.print(" Access Denied!");
    }
    
    lcd.setCursor(0, 1);
    lcd.print(" ID : ");
    lcd.print(tagID);
      
    delay(2000);

    lcd.clear();
    lcd.print(" Access Control ");
    lcd.setCursor(0, 1);
    lcd.print("Scan Your Card>>");
  }
}

// Чтение новой метки, если она доступна
boolean getID() 
{
  // Получение готовности для чтения PICC карт
  if ( ! mfrc522.PICC_IsNewCardPresent()) 
  { // Продолжать, если к RFID считывателю поднесена новая карта
    return false;
  }
  
  if ( ! mfrc522.PICC_ReadCardSerial()) 
  { // Когда карта поднесена, считать серийный номер и продолжить
    return false;
  }
  
  tagID = "";
  for ( uint8_t i = 0; i < 4; i  ) 
  { // Карты MIFARE, кторые мы используем, содержат 4-байтовый UID
    //readCard[i] = mfrc522.uid.uidByte[i];
    tagID.concat(String(mfrc522.uid.uidByte[i], HEX)); // Сложить эти 4 байта в одну переменную String
  }
  tagID.toUpperCase();
  mfrc522.PICC_HaltA(); // остановить чтение
  return true;
}

Программа довольно проста. Сначала мы включаем необходимые библиотеки, определяем выводы Arduino, создаем объекты LCD и MFRC522 и определяем главную метку.

#include <SPI.h>
#include <MFRC522.h>
#include <LiquidCrystal.h>

#define RST_PIN 9
#define SS_PIN 10

byte readCard[4];
String MasterTag = "20C3935E";	// ЗАМЕНИТЕ этот ID метки на ID своей метки!!!
String tagID = "";

// Создание объектов
MFRC522 mfrc522(SS_PIN, RST_PIN);
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); //Параметры: (rs, enable, d4, d5, d6, d7) 

В функции setup() мы инициализируем интерфейс SPI, объект MFRC522 и LCD дисплей. После этого мы печатаем на LCD дисплее приветственное сообщение.

void setup() 
{
  // Инициализация
  SPI.begin();        // SPI шина
  mfrc522.PCD_Init(); // MFRC522
  lcd.begin(16, 2);   // LCD дисплей

  lcd.clear();
  lcd.print(" Access Control ");
  lcd.setCursor(0, 1);
  lcd.print("Scan Your Card>>");
}

В функции loop() мы ждем, пока не будет отсканирована новая метка. Как только это будет сделано, мы сравним неизвестную метку с мастер-меткой, определенной в функции setup(). Всё! Если ID метки совпадает с ID мастера, доступ предоставляется, в противном случае в доступе будет отказано.

void loop() 
{
  
  // Ждем, пока не будет доступна новая метка
  while (getID()) 
  {
    lcd.clear();
    lcd.setCursor(0, 0);
    
    if (tagID == MasterTag) 
    {
      lcd.print(" Access Granted!");
      // Вы можете написать здесь любой код, например, открывание дверей,
      // включение реле, зажигание светодиода или что-то другое, что взбредет вам в голову.
    }
    else
    {
      lcd.print(" Access Denied!");
    }
    
    lcd.setCursor(0, 1);
    lcd.print(" ID : ");
    lcd.print(tagID);
      
    delay(2000);

    lcd.clear();
    lcd.print(" Access Control ");
    lcd.setCursor(0, 1);
    lcd.print("Scan Your Card>>");
  }
}

Ключевым моментом в проекте является пользовательская функция getID(). Как только она просканирует новую карту, внутри цикла for она преобразует 4 байта UID в строки и объединяет их для создания одной строки.

boolean getID() 
{
  // Получение готовности для чтения PICC карт
  if ( ! mfrc522.PICC_IsNewCardPresent()) 
  { // Продолжать, если к RFID считывателю поднесена новая карта
    return false;
  }
  
  if ( ! mfrc522.PICC_ReadCardSerial()) 
  { // Когда карта поднесена, считать серийный номер и продолжить
    return false;
  }
  
  tagID = "";
  for ( uint8_t i = 0; i < 4; i  ) 
  { // Карты MIFARE, кторые мы используем, содержат 4-байтовый UID
    //readCard[i] = mfrc522.uid.uidByte[i];
    tagID.concat(String(mfrc522.uid.uidByte[i], HEX)); // Сложить эти 4 байта в одну переменную String
  }
  tagID.toUpperCase();
  mfrc522.PICC_HaltA(); // остановить чтение
  return true;
}

Оригинал статьи:

Rfid-устройства

На территории Российской Федерации разрешены для свободного использования следующие диапазоны рабочих частот:

  • НЧ- 125…134кГц;
  • ВЧ- 13,56МГц;
  • УВЧ- 865…868 и 915…921МГц;
  • микроволны- 2,4ГГц.


Рабочая частота выбирается из диапазонов, разрешенных к свободному использованию частот, с учетом следующих факторов:

  • максимального расстояния считывания:
    • для НЧ — несколько сантиметров;

    • для ВЧ — 0,5…0,6 м;

    • для УВЧ — до нескольких метров;

    • для микроволн — до 200…300 метров;

  • типа прикладной системы идентификации;
  • условий эксплуатации;
  • цены устройств.

Основные области применения RFID лежат в системах:

  • обеспечения безопасности:
    • идентификация личности;

    • ключ допуска в помещение;

    • отслеживание перемещений товара или оборудования;

    • системы «антивор»;

  • сбора данных (т.н. «даталоггеры»);
  • логистики.

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

В нашей стране пока наиболее распространены RFID-системы, использующие диапазоны НЧ и ВЧ (125…134 кГц и 13,56 МГц соответственно), считается, что в системах контроля доступа, отслеживания выноса товара и т.п. они менее чувствительны к попыткам блокировки работы.

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-записи будет таким:

Микроконтроллеры с низким энергопотреблением от stmicroelectronics

Зачастую для работы с памятью с двойным интерфейсом необходим микроконтроллер, и желательно, чтобы он потреблял как можно меньше энергии. Для таких задач STMicroelectronics предлагает две линейки микроконтроллеров — STM32L и STM8L.

Линейка STM32L является отличным компромиссом между высоким быстродействием, свойственным архитектуре Cortex-M3, и низким энергопотреблением. Последнее достигнуто за счет специальной технологии производства и оптимизированной периферии. Обзор линеек STM32L приведен на рисунке 9.


Рис. 9. Семейство STM32L

Производительность микроконтроллера измеряется в DMIPS/MГц и зависит от функциональной составляющей ядра, интерфейса памяти и периферии. Само же энергопотребление мА/DMIPS в процессе работы может быть максимизировано с помощью регулирования напряжения питания.

Именно метод, динамической адаптации напряжения питания в зависимости от необходимой частоты тактирования микроконтроллера был применен в STM32L. При работе МК на максимальной частоте (для полного использования всех его возможностей — производительности, периферии) обычно необходимо, чтобы верхняя граница питающего напряжения составляла 3…3,3 В.

Если контроллеру необходимо переключиться в режим низких частот тактирования, это напряжение является избыточным и приводит к лишним затратам энергопотребления. Для устранения этого в линейке STM32L реализовано динамическое изменение напряжения ядра микроконтроллера.


Рис. 10. Зависимость производительности от напряжения питания ядра

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

Рис. 11. Режимы энергопотребления STM32L


Несмотря на большую популярность семейства STM32, компания не оставляет без внимание и младшую линейку STM8L, расширяя и дополняя ее номенклатуру. Семейство STM8L состоит из четырех линеек (рис. 12).

Рис. 12. Номенклатура микроконтроллеров STM8L

Отличительные особенности линейки STM8L — это улучшенная аналоговая периферия: быстрый 12-битный АЦП на 24 канала, 12-битный ЦАП, компараторы. Отметим, что микроконтроллеры данной линейки в отличие от большинства своих конкурентов имеют встроенный DMA-контроллер, что позволяет при грамотном подходе к проектированию программного обеспечения значительно повысить производительность.

Во второй половине 2022 года на рынке появилась линейка микроконтроллеров STM8L “Value Line”, основным принципом которой является хорошее соотношение цена/функциональность. Снижение цены достигнуто, прежде всего, благодаря техническим новшествам при производстве, снижению затрат за счет параллелизма тестирования конечной продукции.

Сама технология производства осталась без изменений, включая технологию производства кристаллов. Основные ограничения — более узкий температурный диапазон -40…85°С; меньший, чем обычно, объем EEPROM-памяти; нет уникального идентификатора и сервиса программирования прошивки микроконтроллера на мощностях производителя.

В остальном микроконтроллеры серии «Value Line» аналогичны по функциональности своим старшим собратьям и также имеют полную повыводную (pin-to-pin) и программную совместимость внутри своих линеек. Например, разработчик может легко и без каких-либо изменений использовать в своем проекте STM8L051F3P6 вместо STM8L151F3P6, и наоборот. Ему лишь требуется поменять в свойствах проекта тип микроконтроллера и пересобрать проект заново.

Для снижения энергопотребления контроллеры имеют несколько специальных режимов работы (рис. 13).

Рис. 13. Режимы снижения энергопотребления микроконтроллеров STM8L

Более подробную информацию по всем режимам можно посмотреть в документации на микроконтроллер, отметим лишь, что в самом экономичном режиме “HALT” содержимое оперативной памяти SRAM сохраняется и время восстановления в полностью рабочее состояние составляет порядка нескольких микросекунд.

Мобильные rfid-считыватели (терминалы)

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

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

Возможна быстрая регистрация всех меток полки или вешалки с товарами, проходя мимо нее. Хотя скорость регистрации меток мобильными считывателями меньше, чем стационарными, обычно не более 10 уникальных меток в секунду.


Кроме RFID-считывателя в мобильных терминалах обычно есть сканер штрих кода, Wi-Fi, Bluetooth, и могут быть GPS/ГЛОНАС и GSM/3G модули.

Большая часть мобильных терминалов работает на старой доброй Windows Mobile/CE, но уже появляются модели и на Android.

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

Мобильный считыватель:
image

Цены на мобильные терминалы начинаются от $3000.

Обзор аппаратного обеспечения – модуль чтения / записи rf522 rfid

RFID модуль RC522 на основе микросхемы MFRC522 от NXP – это один из самых недорогих вариантов RFID, который вы можете найти в интернете менее чем за четыре доллара. Обычно он поставляется с картой RFID метки и брелоком с объемом памяти 1 КБ. И что лучше всего, он может записать метку, чтобы вы могли хранить в ней свое секретное сообщение.

Рисунок 3 Модуль RFID считывателя RC522 с меткой-картой и меткой-ключом
Рисунок 3 – Модуль RFID считывателя RC522 с меткой-картой и меткой-ключом

Модуль считывателя RFID RC522 предназначен для создания электромагнитного поля на частоте 13,56 МГц, которое он использует для связи с метками RFID (стандартные метки ISO 14443A). Считыватель может взаимодействовать с микроконтроллером через 4-контактный последовательный периферийный интерфейс (SPI) с максимальной скоростью передачи данных 10 Мбит/с. Он также поддерживает связь по протоколам I2C и UART.

У модуля имеется вывод прерывания. Это удобно потому, что вместо того, чтобы постоянно опрашивать RFID модуль «есть ли карта в поле зрения?», модуль сам предупредит нас, когда метка окажется рядом.

Рабочее напряжение модуля составляет от 2,5 до 3,3 В, но хорошая новость заключается в том, что логические выводы допускают напряжение 5 вольт, поэтому мы можем легко подключить его к Arduino или любому микроконтроллеру с 5-вольтовой логикой без использования какого-либо преобразователя логических уровней.

Характеристики RFID модуля RC522
Частотный диапазон13,56 МГц, ISM диапазон
ИнтерфейсSPI / I2C / UART
Рабочее напряжение питанияот 2,5 В до 3,3 В
Максимальный рабочий ток13-26 мА
Минимальный ток (отключение питания)10 мкА
Логические входыдопускают 5 В
Расстояние считывания5 см

Подключение rfid модуля rc522 к arduino uno

Теперь, когда мы знаем всё о модуле, мы можем подключить его к нашей плате Arduino!

Для начала подключите вывод VCC на модуле к выводу 3,3V на Arduino, а вывод GND – к земле Arduino. Вывод RST может быть подключен к любому цифровому выводу на Arduino. В нашем случае он подключен к цифровому выводу 5. Вывод IRQ не подключен, так как библиотека Arduino, которую мы собираемся использовать, не поддерживает его.

Теперь у нас остаются выводы, которые используются для связи по SPI. Поскольку модуль RC522 требует передачи больших данных, то наилучшая производительность будет обеспечена при использовании аппаратного модуля SPI в микроконтроллере. Использование выводов аппаратного SPI модуля намного быстрее, чем «дергание битов» в коде при взаимодействии через другой набор выводов.

Обратите внимание, что у плат Arduino выводы SPI различаются. Для плат Arduino, таких как UNO/Nano V3.0, это цифровые выводы 13 (SCK), 12 (MISO), 11 (MOSI) и 10 (SS).

Если у вас Arduino Mega, выводы отличаются! Вы должны использовать цифровые выводы 50 (MISO), 51 (MOSI), 52 (SCK) и 53 (SS). В таблице ниже приведен список выводов для связи по SPI для разных плат Arduino.

Список выводов для связи по SPI для разных плат Arduino
 MOSIMISOSCKCS
Arduino Uno11121310
Arduino Nano11121310
Arduino Mega51505253

В случае если вы используете плату Arduino, отличную от приведенных выше, рекомендуется проверить официальную документацию Arduino, прежде чем продолжить.

Рисунок 5 Подключение модуля RFIDсчитывателя RC522 к Arduino UNO
Рисунок 5 – Подключение модуля RFIDсчитывателя RC522 к Arduino UNO

Как только вы всё подключите, вы готовы к работе!

Портальные зоны регистрации

Портальные (воротные) зоны регистрации окружают антеннами, подключенными к стационарному считывателю, зону перемещения объектов с метками с боковых сторон и/или сверху. Например, регистрация меток товаров на провозимой паллете, меток персонала, проходящего через зону контроля, меток товаров, двигающихся по транспортерной ленте, меток книг, проносимых пользователями на выходе из библиотеки. Типичные размеры портальной зоны — до 3 метров в ширину и высоту.

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

Типичные одноэлементные патч-антенны имеют усиление около 8 дБ и характеристику направленности излучения по уровню 0,5 около ± 60º.


Цены на простые одноэлементные патч-антенны начинаются от $150, многоэлементные патч-антенны с большей направленностью будут дороже.

Портальная зона регистрации с 4-мя патч-антеннами:
image

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

Потолочный считыватель:
image

Процесс имплантации

RFID-системы стандарта EPC Gen2 / Хабр

А вот и нет — на самом деле, ничего этого не понадобится! Это фотография инструментов из первой части статьи.

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

  • Выбор места размещения метки. Как уже было сказано в первой части, чаще всего выбирают пространство между большим и указательным пальцами руки, так как это место обычно не испытывает давления при повседневной жизни. Если меток больше одной, как у меня, нежелательно располагать их совсем близко, лучше отступить 1-2 см друг от друга.
  • Анестезия новокаином — вводим раствор новокаина 20 мг/мл подкожно в предполагаемое место разреза, попутно раздвигая ткани и упрощая дальнейшее размещение метки, ждем в течение 5-10 минут для проникновения в окружающие ткани. Осторожнее с новокаином — при наличии у вас аллергии иили кривых рук может вызвать множество самых неприятных последствий, вплоть до смертельного исхода! Не делайте этого самостоятельно, если вы не врач. Также не делайте этого в одиночестве и будьте готовы звонить в «скорую», если что.

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

  • Имплантация — дважды протираем кожу спиртом, прокалываем кожную складку или «пузырь» с новокаином, держа иглу почти горизонтально к коже, вводим иглу на 15-20 мм, затем, нажимая на поршень шприца, выдавливаем метку через иглу под кожу. Аккуратно извлекаем иглу.

    Вот видео (не мое) о том, как это выглядит:

  • Завершение — разрез в данном случае еще меньше, чем был в первый раз, поэтому достаточно просто заклеить его лейкопластырем. Если все было сделано правильно, через 3-5 дней пластырь можно будет снять, а на коже останется лишь небольшой шрам, который через несколько месяцев исчезнет совсем. Если в течение этих дней поднимется температура — опять же, идем к врачу, не откладывая.

Распиновка rfid модуля rc522

Модуль RC522 имеет всего 8 контактов, соединяющих его с внешним миром.

Рисунок 4 Распиновка RFID модуля считывателя RC522
Рисунок 4 – Распиновка RFID модуля считывателя RC522

VCC обеспечивает питание для модуля. Напряжение питания может быть в диапазоне от 2,5 до 3,3 вольт. Вы можете подключить его к выходу 3.3V вашей платы Arduino. Помните, что подключение его к выводу 5V, скорее всего, выведет модуль из строя!

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

GND вывод земли, должен быть подключен к выводу GND на Arduino.

IRQ – вывод прерывания, который может предупредить микроконтроллер, когда поблизости будет RFID метка.

Вывод MISO / SCL / Tx действует либо как Master-In-Slave-Out (вход ведущего – выход ведомого) при включенном интерфейсе SPI, либо как последовательный тактовый сигнал при включенном интерфейсе I2C, либо как выход последовательных данных при включенном интерфейсе UART.

MOSI (Master Out Slave In) – вход SPI для модуля RC522.

SCK (Serial Clock) принимает тактовые импульсы, предоставляемые мастером на шине SPI, то есть Arduino.

Вывод SS / SDA / Rx действует либо как вход, когда включен интерфейс SPI, либо как линия последовательных данных, когда включен интерфейс I2C, либо как вход последовательных данных, когда включен интерфейс UART.

Семейство eeprom c двойныминтерфейсом доступа

Обычно RFID-устройства представляют собой электрически стираемую энергонезависимую память с доступом по радиоканалу. STMicroelectronics предлагает оригинальное семейство EEPROM M24LRxxх c двойным интерфейсом доступа — данные доступны по интерфейсу I2C и по радиоинтерфейсу стандарта ISO 15693, работающему на частоте 13,56 МГц [1, 2].

По каждому из интерфейсов данные защищены 32-битным паролем доступа — один пароль для I2C-шины и четыре пароля для доступа по радиоканалу. Данные, записанные в EEPROM по интерфейсу I2C, могут быть прочитаны либо смартфоном со встроенным ISO 15693-совместимым NFC-интерфейсом, либо обычным RFID-считывателем.

Рис. 1. Типовая структура системы, использующей память с двойным интерфейсом


В семейство M24LRxxx входят микросхемы EEPROM емкостью от 4 до 64 кбит (таблица 1) [1].

Таблица 1. Семейство микросхем EEPROM с двойным интерфейсом M24LRxxx 

Серии M24LRxxE имеют выход индикации наличия поля и выход индикации обращения к памяти по радиоканалу, в серии M24LRxx вместо данных выводов расположены выводы выбора адреса (рис. 2) [2].


Рис. 2. Отличия в выводах между сериями M24LRxx и M24LRxxE

Структурная схема M24LRxxx представлена на рисунке 3.

Рис. 3. Структурная схема EEPROM M24LRxxx

Основные характеристики:

  • диапазон напряжений питания 1,8…5,5В;
  • ток потребления (при питании со стороны I2C-интерфейса):
    • в режиме чтения 50 (Vcc = 1,8; fscl = 100 кГц)…400 (Vcc = 5,5; fscl = 400 кГц) мкА;

    • в режиме записи 220 мкА;

    • в режиме ожидания 30…40 мкА.

  • режимы одиночного чтения и чтения последовательных блоков;
  • рабочие тактовые частоты I2C-интерфейса 25…400кГц;
  • со стороны I2C-интерфейса доступ к данным осуществляется побайтно, со стороны радиоинтерфейса — блоками по 32 бита;
  • более 1 миллиона циклов перезаписи;
  • время записи- по I2C <5мс, по радиоканалу 5,75мс;
  • время хранения данных до 40 лет.


Для разрешения конфликтов одновременного доступа к памяти по I2C и по радиоканалу семейство M24LRxxx имеет встроенную схему арбитража.

В схему арбитража входит:

  • менеджер питания, отслеживающий наличие питания от внешнего источника или поля;
  • арбитр доступа, отслеживающий режим доступа к памяти со стороны радиоканала и шины I2C.

Основные правила арбитража следующие:

  • при отсутствии питания на линии VCC доступ к памяти возможен только по радиоканалу;
  • при наличии и поля считывателя, и проводного питания выполняется первая из распознанных команд, пришедшая или по радиоканалу, или по шине I2C, и до завершения ее выполнения остальные команды игнорируются.

Типовая схема включения памяти M24LRxxx представлена на рисунке 4 [3].


Рис. 4. Типовая схема включения M24LRxxx

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

При необходимости для серий M24LRxxE приложение может использовать выходы индикации наличия поля считывателя и доступа к EEPROM по радиоканалу. В случае применения контроллера с ультранизким энергопотреблением, к примеру, одного из контроллеров STMicroelectronics линейки STM8L, общее потребление устройства будет лежать в пределах 1 мкА (потребление STM8L в режиме Acitve-Alt).


Дополнительно:

  • в режиме ожидания также отключается питание M24LRxxx и нет утечки тока через подтягивающий резистор на линии SDA;
  • в активном режиме работы контроллера приложение полностью управляет питанием EEPROM, подавая его только при необходимости обращения к памяти по I2C.

Индуктивность антенны, подключаемой к выводам AC0, AC1, рассчитывается таким образом, чтобы резонансная частота параллельного колебательного контура, образованного индуктивностью антенны и встроенной емкостью (параметр Ctuning) была равна 13,65 МГц. В зависимости от требуемого форм-фактора конечного устройства возможно применение печатных петлевых антенн (примеры таких антенн также доступны на сайте STMicrolectronics; кроме того, в ряде старых справочников по радиотехнике приводятся расчетные формулы для печатных индуктивностей различных конфигураций) или SMD-индуктивностей [4].

Серии M24LRxx допускают параллельное подключение для наращивания емкости памяти [4]. Это достигается путем параллельного подключения M24LRxx к одной шине I2C, параллельного подключения к одной антенне и задания разных уровней на линиях выбора адреса (E0, E1).

Таким образом, возможно объединение до четырех микросхем M24LRxx, что при использовании, например, микросхем серии M24LR64-R позволяет получить объем суммарной памяти до 256 кбит (32 кбайта) — см. рис. 5. В данном включении со стороны считывателя параллельно включенные EEPROM будут видны как несколько отдельных микросхем, и доступ к ним будет осуществляться по их уникальным серийным номерам. Со стороны I2C доступ к отдельным микросхемам осуществляется по различным адресам шины I2C.


Рис. 5. Объединение M24LR64-R для увеличения суммарного объема памяти

Основные области применения EEPROM с двойным интерфейсом:

  • промышленная автоматика, системы сбора данных, медицинское оборудование- обеспечение обновления/актуализации калибровочных данных, обновление параметров конфигураций, считывание диагностических показаний;
  • периферийные устройства, телекоммуникационное оборудование, бытовая электроника — обновление параметров конфигураций, считывание диагностических показаний, активация оборудования, запись настроек локализации, отслеживание перемещений;
  • RFID-системы- регистраторы данных, идентификационные карточки, регистраторы передвижения/перемещения персонала или объектов.

Способы и особенности использования систем epc gen2

Вряд ли есть смысл использовать системы EPC Gen2 в простых случаях. «Непростыми» же случаями, в которых внедрение EPC Gen2 системы может принести выгоду, можно назвать следующие:


Основной экономической выгодой использования RFID-систем EPC Gen2 является ускорение и уменьшение трудоемкости операций учета объектов – приемка, отгрузка, инвентаризация, поиск заданных объектов.

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

Дополнительно RFID-метки объектов возможно использовать в антикражных системах, для подтверждения подлинности продукции (при использовании Serialized TID) и гарантийного срока, быстрого получения исходных данных об объекте или продукте (по идентификатору метки из БД или непосредственно из данных метки).

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

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

Соответственно, при увеличении мощности начинают регистрироваться метки в «хороших» условиях на больших расстояниях от зоны считывания – до 10 и более метров.Например, вблизи ворот выезда со склада установлена портальная зона регистрации, которая используется для группового считывания всех меток сформированной паллеты при ее вывозе.

Но при этом запросто будут считываться метки со стеллажей склада (пусть даже только некоторые и не часто), находящиеся на расстоянии 10 метров или даже больше. Складские площади дороги и никто не будет оставлять пустое место 15х15 метров вокруг зоны регистрации. Вариант решения проблемы – отгораживание зоны регистрации экранами-ширмами или «домиками» вокруг зон регистрации.

Системы RFID EPC Gen2 могут быть очень эффективными и примеров их использования уже не мало – складская и транспортная логистика, контроль основных средств (быстрая инвентаризация), контроль автотранспорта, контроль перемещения персонала, библиотеки и архивы, ритейл одежды и обуви, фармацевтика (включая контроль фальсификации), контроль компонентов и запасных частей в авиа и автомобильной промышленности, контроль багажа, контроль почтовых пересылок.

Стационарные считыватели и зоны регистрации

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

Стационарный считыватель:
image

У стационарных считывателей могут быть разные интерфейсы – RS232/485, USB, Wiegand, но «пром-стандартным» является UTP Ethernet.У стационарных считывателей обычно от 2 до 8 разъемов для подключения антенн через встроенный коммутатор, т. е., одновременно работает только одна антенна.

Переключение между антеннами происходит автоматически и довольно быстро, но настройками можно выбирать, какие антенны задействованы и индивидуально настраивать радиочастотные мощности для каждого выхода.Также обычно все стационарные считыватели имеют специальный разъем с 4-8 цифровыми линиями для управления внешними устройствами – включением сигнальных ламп, открытием дверей, шлагбаумов, получения внешних сигналов – датчиков появления объектов, открытия дверей, и т. п.

Для программной интеграции считывателей в информационную систему или для связи с управляющим компьютером всеми производителями предоставляются SDK и API, а также готовое тестовое ПО, позволяющее проверить работу считывателя и подобрать настройки.Последнее время все основные производители уже используют стандарт низкоуровневого протокола обмена со считывателем LLRP (Low Level Reader Protocol, стандарт ISO/IEC 24791-5), хотя все считыватели, к сожалению, имеют еще много индивидуальных особенностей, которые необходимо учитывать для достижения максимальной производительности и качества регистрации меток.

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

Частотный диапазон

LF

– Low Frequency, 125-135 кГц. «Обычные» метки-карточки или домофонные брелки для систем контроля доступа, метки-капсулы для «чипирования» животных (но и среди высших мыслящих существ также есть любители встроенных уникальных идентификаторов).

HF – High Frequency, 13,553-13,567 МГц. Все транспортные проездные карты, банковские беспроводные карты, устройства и метки NFC. Также есть более «простые» метки без криптографических функций, содержащие только идентификатор.

UHF – Ultra High Frequency. Диапазоны 433,075-434,790 МГц и 2400-2483,5 МГц используются активными метками и RTLS, а также брелками сигнализаций, беспроводными клавиатурами, мышками и т. п.

Для EPC Gen2 в мировом масштабе используется UHF диапазон 860-960 МГц, но локально в странах и регионах используются более узкие полосы.В РФ используются частоты европейского диапазона 865,6-867,6 МГц в соответствии со стандартом ETSI EN302-208-1 V1.2.

1, хотя формально выделенная в РФ полоса уже — 866,6-867,4 МГц.Стандарт EPC Gen2 (полностью Electronic Product Code Class 1 Generation 2) разработан международной организацией GS1 EPC Global. Ему также соответствует стандарт ISO/IEC 18000-63(С). Соответствующая национальная версия ГОСТ разрабатывается.

Какие же существенные преимущества и отличия имеют RFID-системы EPC Gen2 по сравнению с другими?:

Gen2 метки-наклейки:
image

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

Форма антенны рассчитывается специально для удовлетворения оптимальных параметров согласования по радиосигналу с чипом метки и может принимать довольно разнообразные формы, хотя фактически большинство из них является «редуцированными» диполями, т. е., диполями по характеристикам излучения, но меньшими размерам, чем половина длины волны, что в этом диапазоне около 17 см.

В среднем действует правило – чем меньше максимальный линейный размер метки, тем меньше ее «чувствительность» и дистанция регистрации, хотя между конкретными моделями меток сравнимого размера есть отличия.Кроме схемы антенны «редуцированный диполь» также существуют специальные «ближнепольные» метки только с петлевой антенной (в этом они аналогичны меткам LF и HF, которые только такими и бывают).

Такие метки небольшие по размерам (например, 12х9 мм) и регистрируются с расстояния не больше 20-25 см, но если их использовать для «сложных» условий окружения жидкостями и металлическими элементами, то разницы по сравнению с «большими» метками в качестве и дистанции регистрации не будет – но размер их существенно меньше.

«Большие» метки наклейки с большой дистанцией регистрации имеют размер по длинной стороне 80-100 мм.На основе тонких меток также делаются метки-карточки из пластика стандартных размеров.Есть и специальные «устойчивые» к внешним воздействиям метки, которые могут использоваться в прачечных или химчистках.

Метка для прачечных:
image

Метки-наклейки экранируются и не работают на металлических или металлизированных поверхностях (даже на «полупрозрачном» металлическом напылении, типа антистатических пакетиков для компьютерных компонентов).Для работы на металлических объектах существуют специальные метки, они более «толстые», от нескольких миллиметров, и существенно дороже, но зато работают на металлических объектах и дистанция регистрации может быть даже больше, чем у меток-наклеек (но также в среднем работает правило – чем больше метка, тем больше дистанция).

Метки на металл:
image

Читаем 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 не будет опубликован. Обязательные поля помечены *