Понятие электронного кода объекта
Электронный код объекта – это цепочка байтов, которую можно декодировать по заранее определенным правилам, чтобы получить на выходе данные об объекте, маркированном RFID-меткой. Т.е. объект идентифицирует не сама метка, и не номер метки, а электронный код объекта, прописанный в ней.
Для разных типов объектов (автомобили, грузы, товары, книги и т.п.) стандартами определен свой набор данных, который считается достаточным для идентификации соответствующего объекта. Предполагается, что перед нанесением RFID-метки на объект, в неё будет прописан закодированный электронный код этого объекта.
В настоящий момент существуют две системы стандартов электронных кодов объектов для использования в RFID. Первые разрабатывает организация EPCglobal GS1. Вторые разрабатывает ISO/IEC. Обе системы частично пересекаются в вопросах, что маркировать и как кодировать. При чтении меток программа всегда имеет возможность понять, по какому стандарту закодирована метка. Вопрос, какой стандарт следует использовать для кодирования, решается отдельно в каждой конкретной области применения, для каждого конкретного типа маркируемых объектов.
Метки HF кодируются по стандартам ISO/IEC. Метки UHF кодируются как по стандартам ISO/IEC (реже), так и по стандарту EPCglobal GS1 (чаще).
Архитекторы UHF RFID на метках Class 1 Gen 2 выстроили довольно сложную систему идентификации объектов, которая базируется на существующих стандартах международных организаций GS1 и ISO/IEC по идентификации товаров, грузовых контейнеров, автомобилей, книг, авиабагажа и т.п. Результирующие решения, реализованные в «железе» Class 1 Gen 2, кардинально отличаются от того, что ожидает от RFID-учета любой неподготовленный заранее «технарь».
В первую очередь это касается вопроса об «уникальных номерах меток».
Для HF каждая без исключения метка имеет уникальный неизменяемый номер метки, прошитый на стадии производства. Этот номер уникально идентифицирует саму метку. В памяти, доступной для записи, метка несет информацию о маркируемом объекте.
Таким образом, систему на HF можно построить на базе простого соответствия уникального кода метки объектам базы данных учетной системы, а в память метки, отвечающую за данные о маркируемом объекте, вообще ничего не писать.
Для UHF Class 1 Gen 2 метка может не иметь уникального номера. Даже если номер предусмотрен производителем, он необязательно уникальный. И даже если он уникальный, этот код расположен в отдельном специальном банке памяти метки, который медленно читается и не подходит для массовой инвентаризации (см. подробности ниже).
Таким образом, строить систему на UHF путем соответствия заранее кем-то назначенных «уникальных кодов» объектам своей базы данных не всегда возможно (либо возможно, но не всегда практично с точки зрения скорости чтения). «Уникальные коды» зачастую придется генерировать и прописывать самим.
На заре UHF RFID предполагалось, что RFID-метки будут служить простой альтернативой GS1 штрихкодам (например, EAN13, которые одинаковы для всех идентичных экземпляров товара), и что прошиваться и наноситься на товары они будут еще на этапе производства. Просто вместо того, чтобы заказывать обычные бирки или пачки с заранее напечатанным EAN13, производитель будет заказывать «умные» бирки со штрихкодом + встроенными чипами с заранее прописанным аналогом EAN13, совершенно одинаковым для экземпляров товара. Учета уникальных единиц товара не предполагалось.
В системе с неуникальными метками человек должен был подходить с товаром на кассу и система пробивала бы его – какой-то товар просто «по штрихкоду», какой-то «по штрихкоду из RFID-метки» (метки Class 0). В итоге даже в Class 1 Gen 2 есть возможность подсчета точного количества меток на кассе, даже если все метки идентичны!
Недостатком такой системы служат непреодолимые сложности при инвентаризации. Хотя на кассе система точно подсчитывает количество товара, этого невозможно сделать в мобильном режиме в торговом зале, т.к. человек со считывателем может несколько раз пройти мимо одной и той же полки с разрывом в несколько минут, и система несколько раз «пробъет» товар на ней в результаты инвентаризации.
Решением проблемы является наличие для каждого экземпляра товара некоего уникального кода, в дополнение к коду товара, что и было реализовано в Class 1 Gen 2. Для маркировки товаров по схеме GS1 EPC таким кодом был выбран серийный номер – числовой для меток в 128 бит и строковый для меток от 512 бит и более (имеется в виду размер банка EPC/UII). Для учета библиотечных фондов, основных средств, сотрудников и т.п. были придуманы еще более сложные академические схемы, основанные на системе Relative OIDs и классификации ASN.1
Ответственность за назначение серийных и прочих номеров была возложена на пользователя меток. Серийные номера могут быть «фиктивными», т.е. никак не отражаться в учете и назначаться просто по счетчику, а могут быть реальными. В идеале от организации требовалось организовать у себя систему учета на уровне отдельных объектов, по серийным номерам.
Во всех случаях предполагалось, что код объекта в метку прошьет пользователь, а не производитель. С появлением новых чипов и осознанием производителями того факта, что пользователи ожидают от них заранее прошитых уникальных меток, ситуация постепенно меняется, но не кардинально.
«Кошмар 2050 года»
Если представить, что на дворе 2050 год и всё вокруг промаркировано RFID-метками, то ситуация будет кардинально отличается от той, когда всё вокруг промаркировано штрихкодами. Потому что штрихкод считывается только тот, на который был направлен сканер. А RFID-метки читаются все вокруг, сразу несколько, и с учетом переотражения сигнала потенциально могут считаться любые метки в радиусе нескольких метров.
Используя штрихкоды, почти всегда можно было закрыть глаза на все стандарты, ведь всегда известно, какой штрихкод наш, где он наклеен и как выглядит. Какие-то стандарты могут потребоваться только при маркировке для продаж в крупных супермаркетах, при маркировке грузов в международной логистике и прочих крупных затеях. Это разрешено, т.к. сканер штрихкодов читает только то, на что мы его направили. Невозможно себе представить, что мы направили луч на один штрихкод, а считался совсем другой с обратной стороны коробки. Внезапное чтение «левого» штрихкода с пачки сигарет, которая лежит в кармане кладовщика, также невозможно.
С RFID всё иначе. Каждая промаркированная RFID пачка сигарет, маркированная личная одежда персонала, каждый документ (паспорта, права) – любая мелочь в охвате нескольких метров может быть прочитана вашим считывателем как своя.
Поэтому станут актуальными подобные запреты:
Имеется в виду: «не проносить с собой чужих RFID-меток!». К сожалению, такой запрет не подходит для магазина.
Итак, RFID читает всё вокруг. Для проверки прихода и отгрузки можно использовать RFID-тоннель, который читает только то, что проходит сквозь него. Но, опять же, RFID-тоннель не подходит для задачи быстрой инвентаризации (т.к. перетаскать весь товар к тоннелю и обратно – это долго).
Таким образом, внедряя RFID-систему, придется использовать международные стандарты, специализированное оборудование.
RFID Class 1 Generation 2 (UHF)
Стандарт Class 1 Generation 2 (Class 1 Gen 2 или просто Gen2, второе поколение первого класса) – это набор документов, разработанных коммерческой организацией «EPCglobal, Inc.», в которых подробно описано своего рода «техническое задание» на чипы RFID-меток и работу RFID-считывателей (стандарт ISO18000-6С).
Основное в стандарте Class 1 Generation 2:
- Чипы меток и считыватели должны работать на частотах UHF 860-960 МГц
(при этом и считывателям, и чипам меток теоретически не запрещается в дополнение к UHF поддерживать и любые другие частоты). -
Чип каждой метки может иметь свой идентификационный номер, прошитый производителем еще на стадии производства
(при этом в стандарте прописана структура номера: он должен начинаться на «E0», «E2» или «E3», и опционально содержать номер производителя, номер модели и серийный номер чипа. EPCglobal занимается регистрацией производителей чипов и выдает им те самые номера производителя). - Чипы меток должны поддерживать не только чтение, но и запись данных.
- В чипе должен присутствовать специальный банк памяти для хранения уникального идентификатора маркируемого объекта (так называемого EPC/UII), прошиваемый на этапе начала пользования меткой
(этот банк записывается пользователем метки. т.е. это не уникальный код, не номер чипа, записываемый производителем, и вообще не имеет к номеру чипа никакого отношения). - Чипы в метках должны позволять задавать пароль доступа на чтение или запись данных.
- Чипы в метках должны позволять «прожигать» данные намертво, так чтобы их уже нельзя было переписать.
- Чипы в метках должны позволять безвозвратно стирать с них информацию, производить так называемое «убийство» метки
(в данном случае самоубийство). - Чипы в метках должны позволять задавать пароль на эту функцию «убийства», в дополнение к паролю на доступ к чтению/записи.
На уровне радио-протокола обмена между чипами меток Class 1 Gen 2 и считывателем UHF можно производить следующие операции:
- Операция отбора меток по определенным условиям.
- Операция инвентаризации отобранных меток (самая быстрая и надежная).
- Операция чтения содержимого конкретных банков чипа RFID-метки.
- Операция записи какого-то заранее известного значения (константы) в определенные места конкретных банков чипа RFID-метки (пишет все чипы, которые подошли под ранее заданный критерий).
- Операция «прожига намертво» содержимого конкретного банка чипа RFID-метки.
- Операция блокирования/разблокирования банков.
- Операция «убийства» чипа RFID-метки.
Метки стандарта Class 1 Generation 2
Стандарт на Class 1 Generation 2 описывает только частоты, протоколы обмена и некоторые алгоритмы работы (или советы по алгоритмам) для чипов, используемых в RFID-метках. Помимо чипа, метка состоит из антенны и субстрата для крепления метки на объект. В стандарте ничего не сказано о креплении на металл, надежности приклеивания или размерах метки. Всё, что нужно для надежного крепления и хорошего считывания, – отдается на откуп производителя конкретных меток.
Метки могут быть любыми: тонкие самоклеющиеся бумажные и синтетические в виде этикетки, толстые пластмассовые корпусные, стеклянные вживляемые, съедобные и т.д.
Чип в метке стандарта Class 1 Gen 2 позволяет читать из 4 банков памяти разного размера и писать в 3 из них. Тот единственный банк, из которого можно только читать (но нельзя писать), – это банк №2, в котором должен храниться уникальный номер чипа, присваиваемый еще на стадии производства чипа.
Структура данных в чипе стандарта Gen2 (4 банка памяти):
* EPC - Electronic Product Code (Электронный код продукта), UII – Unique Item Identifier (Уникальный идентификатор объекта), см. специальный раздел ниже.
Пяти и больше банков в метке Class 1 Gen 2 быть не может, т.к. в протоколе общения считывателя с меткой номер банка кодируется всего двумя битами (итого получаются сочетания «00», «01», «10» и «11»).
Принципы идентификации объектов с помощью меток Class 1 Generation 2
Архитекторы UHF RFID разрабатывали всю систему исходя из следующего принципа идентификации:
-
Перед маркировкой объекта в метку записывается уникальный номер идентифицируемого объекта (в виде EPC или UI). Метка крепится к объекту. Таким образом, EPC/UII в метке идентифицирует объект, к которому прикреплена метка. Метки инвентаризуются по EPC/UII, со скоростью примерно тысяча меток в секунду.
-
В метке дополнительно может храниться номер чипа, который идентифицирует саму метку, а не тот объект, к которому она прикреплена. Номер чипа может отсутствовать и не обязан быть уникальным. Номер чипа никак не связан с EPC/UII и не имеет никакого отношения к идентифицируемому объекту.
Правильное понимание того, как устроен «уникальный код» RFID метки Class 1 Gen 2 (UHF RFID):
- «Уникальный код» метки (TAG ID) сам по себе не уникален. Большинство производителей поставят вам метки (рулон или коробку) с совершенно идентичными кодами. Ожидается, что вы сами будете следить за уникальностью, соблюдая международные стандарты. Вы пропишете код товара/контейнера/документа и, возможно, его уникальный серийный номер в код RFID-метки, после чего метки при инвентаризации будут видны как разные.
- «Уникальный код» метки (TAG ID) представляет собой электронный код продукта. В него следует закодировать номер товара/объекта/контейнера/документа согласно вашей базе, а также серийным номером помечаемого объекта (опционально). Почти на все случаи жизни уже придуманы и приняты какие-то стандарты кодирования. Придумывать какие-то свои схемы кодирования и записывать их в код метки не запрещается, но и не приветствуется.
-
Ожидается, что уникальность обеспечивает система идентификации в вашей организации, а не производитель меток. Ожидается, что вы сами пропишете код товара/объекта или контейнера/документа и его уникальный серийный номер в код RFID-метки перед наклейкой её на интересующий объект. Прошитая метка будет нести в себе ваш код и серийный номер, будет возвращать их при инвентаризации.
Этот пункт на практике очень сложно реализуем, особенно в распределенных системах учета. Требуется придумывать какие-то диапазоны номеров, реплицировать данные и т.п. Одним из возможных решений является Chip Based Serialization.
- Прочитанный код любой метки, например «3024000003320C4063A23312», следует декодировать и вытащить из него информацию о маркированном объекте.
- В Wonderfid Link уже реализовано большинство стандартных методов кодирования/декодирования, и уже есть возможность работать с метками в терминах кодов товаров, номеров книг, серийных номеров, штрихкодов EAN13 и т.п.
- Если «уникальный код» метки (TAG ID) записали за вас – значит скорее всего это никакой не уникальный код, и ценность его минимальна.
Вопрос-ответ
Но продавец говорит, что каждая его метка имеет уникальный код!
Продавец в данном случае говорит об уникальном номере у каждого RFID-чипа, используемого им при производстве меток. У любого чипа RFID-метки Class 1 Gen 2 (UHF RFID) согласно стандарту ISO18000-6С может быть код (необязательно уникальный). У любой такой метки в любой момент можно узнать номер используемого в ней чипа, но это значительно более медленная и ненадежная операция, чем инвентаризация RFID, и полагаться на неё в инвентаризации нельзя. Инвентаризация по кодам товаров позволяет читать до 1000 меток/сек. Инвентаризация по номерам чипов едва ли прочтет 5 меток/сек и почти никогда не прочтет все метки, если их лежит больше 1 шт, и не подходит для товарной инвентаризации. Для целей товарной инвентаризации исключительно всегда следует использовать банк EPC/UII, в котором метка хранит код объекта, на который она нанесена, и который возвращается считывателю при инвентаризации.
Наше ТЗ содержит простую таблицу соответствия кодов меток объектам нашей базы данных!
Ваше ТЗ ересь (в прямом смысле), т.к. идет против международных стандартов. Код метки не является случайным уникальным числом, а представляет собой «карточку», которую следует заполнить данными из вашей базы. В зависимости от характера маркируемых вами объектов (товары это, документы, книги или другое имущество) заранее предусмотрены стандартные схемы заполнения этой «карточки». Другие банки меток (в частности, пользовательский банк) не предусмотрены для быстрой инвентаризации, их используют для других задач (хранение расширенной информации для операций с отдельными метками, выявление клонов меток и подделок). Для целей инвентаризации исключительно всегда следует использовать банк EPC/UII, в котором метка хранит данные объекта, на который она нанесена, заполненные по правилам международных стандартов. Эти данные возвращается считывателю при инвентаризации. Изобретение своих схем кодирования не запрещается, но и не приветствуется.
Но наше ТЗ содержит простую таблицу соответствия кодов меток объектам нашей базы данных!
В этом случае убедитесь, что вы предварительно сами прописываете банк EPC/UII, и используете при этом стандартную действительно глобально уникальную схему кодирования.
EPC и UII как электронные коды объектов
Банк №1 для RFID-меток Class 1 Gen 2 (который также может называться «EPC-банк», «банк EPC», «банк UII», «второй банк» или «банк 01») содержит в себе электронный код объекта, представленный либо в виде EPC, либо в виде UII (третьего варианта нет, т.к. за выбор отвечает один единственный бит в заголовке банка). За стандартизацию кодирования EPC отвечает международная организация GS1, за стандартизацию UII отвечают организации ISO/IEC.
EPC (Electronic Product Code) – это способ идентификации конкретных единиц товаров, мест хранения, документов и т.п., который используется при маркировке объектов RFID-метками Class 1 Gen 2 по стандарту EPCglobal GS1.
В RFID-метку EPC записывается при помощи нулей и единиц. Перевод EPC в нули и единицы называется бинарным кодированием EPC, и уже реализовано в Wonderfid Link. Из метки EPC считывается точно так же в виде нулей и единиц (обычно в виде шестнадцатеричного представления закодированных байтов, например «3024000003320C4063A23312»), и чтобы получить из них код компании или серийный номер товара, необходимо произвести декодирование.
UII (Unique Item Identifier) – это способ идентификации конкретных единиц имущества, библиотечных элементов, грузов, бейджей сотрудников, документов и т.д., который используется при маркировке объектов любыми RFID-метками по стандартам ISO/IEC. Существует целый ряд стандартов ISO/IEC, расчитанный каждый на свою область применения, из которых основным является ISO-15961.
В RFID-метку UII записывается также при помощи нулей и единиц. Перевод UII в ноли и единицы называется бинарным кодированием UII, и уже реализовано в Wonderfid Link. Из метки UII считывается точно так же в виде нулей и единиц (обычно в виде шестнадцатеричного представления закодированных байтов, например «069100051CBE991A14»), и чтобы получить из них данные маркируемого объекта (например, номер книги), необходимо произвести декодирование.
Соответственно, для маркировки тех или иных объектов уже придуманы соответствующие схемы кодирования банка EPC/UII либо как EPC, либо как UII:
- Для маркировки товаров (от джинс до ювелирки) – схема SGTIN для EPC по стандарту GS1.
- Для маркировки оборудования – либо схема GIAI для EPC по стандарту GS1, либо схема di по стандарту ISO.
- Для маркировки шин – схема di по стандарту ISO.
- Для маркировки в библиотеках – стандарт ISO 28560.
- Для маркировки автомобилей – схема di по стандарту ISO.
- Для маркировки зданий и комнат – схема SGLN для EPC по стандарту GS1.
- Для маркировки пробирок, поддонов – схема GIAI для EPC по стандарту GS1.