Микросхема радиочастотной идентификации с протоколом обмена ISO-15693


PDF версия

В статье речь пойдет о разработке микросхемы радиочастотной идентификации — IZ2817 с протоколом обмена ISO-15693, предназначенной для использования в приложениях с рабочей частотой 13,56 МГц с функцией чтения и записи данных и поддержкой протокола обмена в соответствии с международным стандартом на бесконтактные карты ISO-15693.

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

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

Данные от карты к считывающему устройству передаются посредством амплитудной модуляции несущей частоты. Для контроля целостности данных при передаче используется циклический избыточный код CRC с образующим полиномом x16+x12+x5+1. В микросхеме реализована 1024-разрядная программируемая память, часть которой доступна пользователю для перезаписи, чтения и блокировки. Имеется и не доступная пользователю часть памяти, которая содержит служебные данные.

Структурная схема микросхемы IZ2817 представлена на рисунке 1. Микросхема состоит из блоков: 1024-разрядного ЭСППЗУ, аналогового блока радиочастотного интерфейса и блока управления. Питание и данные передаются через антенну, которая состоит из нескольких витков, подключенных к кристаллу. Нет необходимости в дополнительной внешней емкости, т.к. резонансная емкость реализована на кристалле.

Рис. 1. Структурная схема микросхемы IZ2817

Радиочастотный интерфейс обеспечивает напряжение питания микросхемы, вырабатывает сигнал сброса по включению питания, выдает синхросигналы, производит модуляцию и демодуляцию передаваемых и принимаемых данных соответственно. Цифровой блок управления обеспечивает связь между различными блоками, выполняющими функции антиколлизии, интерпретатора команд, управления доступом к ЭСППЗУ.

Данные хранятся в ЭСППЗУ. Микросхема содержит блок ЭСППЗУ, объемом 1024 бит, организацией в 32 блока. В свою очередь каждый блок состоит из четырех байт или 32 бит. Блок является наименьшей адресуемой частью. Нумерация блоков проводится от нулевого до тридцать первого. Блоки от нулевого по двадцать седьмой являются пользовательскими. В них хранится информация, записанная пользователем. Блоки с номером от двадцать восьмого по тридцать первый хранят служебную информацию, в них хранится уникальный номер, блоки зашиты данных и биты блокировки.

Команды, подаваемые считывателем, обрабатываются интерпретатором команд, при этом осуществляется проверка внутреннего состояния (см. рис. 2) микросхемы и вырабатываются соответствующие ответы. Микросхема может находиться в четырёх состояниях:

Power-off (питание выключено) — находится в этом состоянии, когда карточка вне поля устройства чтения;

Ready (готова) — карточка в поле устройства чтения и отвечает на любой запрос, где не установлен флаг select_flag;

Quiet (молчание) — карточка отвечает на любой запрос, где inventory_flag не установлен, и где установлен address_flag;

Selected (в состоянии выбрана) — только карта в состоянии Selected отвечает на запросы с флагом select_flag.

Для всех микросхем обязательна поддержка состояний Power-off, Ready, Quiet. Поддержка состояния Selected определяется устройством чтения.

Используются команды четырех типов:

Mandatory (обязательные) 0х01 — 0х1F — все микросхемы должны их поддерживать.

Рис. 2. Граф переходов из состояния в состояние

Optional (параметризованные) 0х20 — 0х9F — выбираемые устройством чтения. Микросхемы могут их поддерживать или нет. Если поддерживают, тогда на запросы, содержащие такие команды, отвечают в соответствии с полученной командой, если нет, то не отвечают. Если микросхема не поддерживает эти команды и флаг адреса или выбора установлен, то она может послать ответ, содержащий код ошибки («Не поддерживается») или молчать, если оба флага установлены или оба не установлены. Если команда содержит другую опцию-флаг и микросхема может ее обработать, тогда она должна в ответе послать соответствующий код ошибки.

Custom (общие) 0хA0 — 0хDF — микросхемы поддерживают их, а также их опции с добавленными производителем специальными функциями. Дополнительные флаги не изменяют значений существующих флагов, а только общие поля и поля данных. Первое поле любой общей команды обязательно содержит код изготовителя. Это позволяет изготовителю использовать эти команды без риска повторения кода другой команды. Если микросхема не поддерживает такую команду, она должна послать ответ, содержащий код ошибки или молчать. Если команда содержит другую опцию-флаг, и микросхема может ее обработать, тогда она должна в ответе послать соответствующий код ошибки.

Рroprietary (собственные) 0хE0 — 0хFF — эти команды используются только изготовителем для разных задач, таких как тестирование, программирование системной информации и т.д. Предприятие может документировать их опции по своему усмотрению. Обычно эти команды деактивируются после изготовления устройства и/или его тестирования. В таблице 1 приведен перечень кодов команд и их название-функция.

Таблица 1. Коды команд

Код команды

Тип

Выполняемая функция

’01’

Обязательные

Inventory (инициализация)

’02’

Обязательные

Stay Quiet (замолчать)

’20’

Параметрические

Read Single Block (чтение одного блока)

’21’

Параметрические

Write Single Block (запись одного блока)

’22’

Параметрические

Lock Block (блокировка блока)

’23’

Параметрические

Read Mult Block (чтение нескольких блоков)

’25’

Параметрические

Select (выбрать)

’26’

Параметрические

Reset To Ready (сброс в готовность)

’27’

Параметрические

Write AFI (запись AFI)

’28’

Параметрические

Lock AFI (блокировка AFI)

’29’

Параметрические

Write DSFID (запись DSFID)

‘2A’

Параметрические

Lock DSFID (блокировка DSFID)

‘2B’

Параметрические

Get Sys Information (получить системную информацию)

‘2C’

Параметрические

Get Mult Block Security Status (получить значение битов блокировки)

‘A0’

Общие

Inventory Read (инициализация + чтение)

‘A1’

Общие

Fast Inventory Read (быстрая инициализация + чтение)

‘A2’

Общие

Set EAS (установить EAS)

‘A3’

Общие

Reset EAS (сбросить EAS)

‘A4’

Общие

Lock EAS (заблокировать EAS)

‘A5’

Общие

Alarm EAS (проверить EAS)

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

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

Команда записи блока Write Single Block позволяет записывать один блок пользовательских данных. Команда чтения блока Read Single Block позволяет считывать один блок пользовательских данных. Ещё существует возможность использовать ускоренную команду чтения и инициализации Fast Inventory Read. Она представляет собой сдвоенную команду, используется для выделения одной карточки в поле считывателя и одновременно — для считывания блоков данных этой карточки.

Команда Stay Quiet переводит микросхему в состояние молчания, в котором она не отвечает на запросы, пока не выйдет из этого состояния. Команда Lock Block позволяет заблокировать записанное значение блока для защиты от попыток изменения записанных данных. Микросхема поддерживает также обработку кода электронного контроля выполнения команд, код семейства приложений, характеризующий область применения карты. Эти функции защиты используются в командах: Write AFI, Lock AFI, Write DSFID, Lock DSFID, Set EAS, Reset EAS, Lock EAS, Alarm EAS.

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

Скорость передачи данных и кодирование данных

Микросхема имеет высокую скорость передачи данных — до 53 кбит/с. Для передачи входных данных используется модуляция определённой позиции несущего сигнала. Микросхемы поддерживают два вида кодировки входных данных. Выбор кодировки определяется считывателем, который сигнализирует о своем выборе с помощью SOF.

Формат кодирования данных 1 из 256

Значение одного байта определяется положением паузы. Позиция паузы при кодировании 1 из 256, соответствующая интервалу времени 256/Fc (~18,88 мкс), определяет значение байта. При таком кодировании один байт передается за 4,833 мс, и скорость передачи данных равна 1,65 кбит/с (Fc/8192). После последнего байта данных подаётся EOF, который сигнализирует о конце передачи данных. На рисунке 3 изображен пример кодирования 0х0E (0b11100001 или 225). Пауза должна быть равна половине интервала, определяющего значение получаемого байта.

Рис. 3. Формат кодирования 1–256

Формат кодирования данных 1 из 4

Позиция паузы при кодировании 1 из 4 определяет значение двух бит (см. рис. 4). Четыре интервала определяют значение пары бит из байта, младшая значимая пара бит которого передается первой. В итоге скорость передачи данных 26,48 кбит/с (Fc/512).

Рис. 4. Формат кодирования 1 из 4

Фреймы предназначены для упрощения синхронизации и использования протокола. Фреймы должны начинаться с SOF и заканчиваться EOF и использовать кодирование данных, а также не использовать опций RFU. Микросхема должна быть готова получить следующий фрейм спустя 300 мкс после отправки фрейма считывателю, а также следующий фрейм спустя 1 мс после внесения ее в поле считывателя. На рисунке 5 описаны два вида SOF, а также EOF, который для всех форматов кодирования выглядит одинаково.

Рис. 5. Кодирование стартовых и конечного фрейма

Формат сигналов ответа микросхемы

Карточка должна осуществлять связь со считывателем благодаря эффекту индуктивной связи в переменном электромагнитном поле, где на основе несущей получают поднесущую частоту, на которой и выдается ответ от микросхемы. Выходная амплитуда модуляции не должна превышать 10 мВ при тестировании способом, описанным в International Standard ISO/IEC 10373-7.

В микросхеме используется формат кодирования выходных данных с одной поднесущей на частоте Fc/32 (423,75 кГц). Стандарт позволяет использовать еще и режим с двумя поднесущими на частоте Fc1 (423,75 кГц) и Fc2 (484,28 кГц). Микросхема поддерживает высокую скорость передачи данных (High). Стандарт позволяет использовать две скорости передачи — High и Low. Микросхема IZ2817 в любом случае будет отвечать только с высокой скоростью передачи данных.

Представление битов и кодирование

Данные кодируются с использованием кодировки Manchester (см. рис. 6) по следующей схеме:

– логический 0 начинается с восьми импульсов на частоте Fc/32 (~423,75) кГц, далее следует интервал без модуляции 256/Fc (~18,88 мкс);

– логическая 1 начинается с интервала без модуляции 256/Fc (~18,88 мкс), далее следует восемь импульсов на частоте Fc/32 (~423,75) кГц.

Далее приведены фреймы ответа микросхемы при использовании одной поднесущей. SOF и EOF изображены на рисунке 7.

SOF состоит из трех частей:

– интервал без модуляции 768/Fc (~56,64 мкс);

– 24 импульса на частоте Fc/32 (~423,75 кГц);

– логическая 1, которая начинается с интервала без модуляции 256/Fc, что составляет ~18,88 мкс, далее следуют восемь импульсов на частоте Fc/32 (~423,75 кГц).

EOF состоит из 3 частей:

– логический 0 начинается с восьми импульсов на частоте Fc/32 (~423,75 кГц), далее следует интервал без модуляции 256/Fc (~18,88 мкс);

– 24 импульса на частоте Fc/32 (~423,75 кГц);

– интервал без модуляции 768/Fc (~56,64 мкс).

Связь между считывателем и карточкой осуществляется на основе принципа модулирования несущего сигнала. Используются два вида модуляции — 10 и 100%. Микросхема поддерживает оба вида модуляции.

Рис. 6. Формат кодирования 1 и 0 ответа микросхемы
Рис. 7. Стартовый и конечный фреймы ответа микросхемы

Оставьте отзыв

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