Установка и настройка RFID считывателей
Если у вас нет под рукой RFID-считывателя — не беда. Компонента позволяет работать в «виртуальном режиме», имитируя считывания и записи несуществующих меток несуществующими считывателями. Пользуясь «виртуальным режимом» можно написать и отладить логику программы без необходимости иметь дело с реальным оборудованием.
Перед началом работы с RFID считывателем, необходимо произвести его предварительную настройку. В зависимости от модели настройки будут отличаться.
Установка и настройка Motorola FX7400
- через разъем Ethernet (RJ45), путем подключения через роутер либо напрямую к другому ПК;
- через разъем mini-USB типа А, путем подключения к ПК через драйвер виртуальной сети RNDIS.
Подключение Motorola FX7400 через витую пару (кабель Ethernet, разъем RJ45)

В этой конфигурации считыватель доступен по сети:
- по IP, который ему должен выдать сам роутер или DHCP сервер
- по сетевому имени с наклейки на крышке считывателя (для сетей с DHCP):

Не зная IP или сетевого имени невозможно будет подключиться к считывателю и настроить его!
Узнать IP считывателя можно путем поиска считывателей в обработке CleverenceRFID:

Подключение Motorola FX7400 через кабель USB
Для подключения потребуется кабель с разъемами USB-A («прямоугольник») на mini-USB-A («квадратик»).
Перед подключением кабеля USB следует скачать и установить драйвер виртуальной сети с сайта Моторола.

После установки драйвера виртуальной сети и подключения кабеля USB в системе должно появиться новое сетевое подключение с адаптером «Motorola USB RNDIS Network Device»:

При отключении кабеля USB соединение исчезает из списка. При подключении появляется снова (если не появилось — нажмите F5, чтобы обновить список).
В новой виртуальной сети IP считывателя всегда будет равен «169.254.10.1», его следует ввести в адресной строке вашего браузера:

Перед началом работы со считывателем следует залогиниться в административную панель считывателя, используя интернет-браузер, и произвести настройку региона и диапазона используемых частот (логин и пароль по умолчанию: «admin» и «change»):

Далее следует выставить регион «Russia» и соответствующие частоты:


Следует проверить, что LLRP включен (если не включен — включить «Enable LLRP»):

После всех шагов идем в «Commit/Discard» и нажимаем «Commit» (применить изменения):

Установка и настройка Motorola FX9500
Установка считывателя Motorola FX9500 заключается в подключении его к питанию и сети Ethernet. Motorola FX9500 не работает через PoE и требует розетки и отдельного блока питания.
Считыватель Motorola FX9500 настраивается через веб-консоль из обычного браузера. Чтобы открыть консоль настройки считывателя, нужно вбить в адресной строке браузера его IP. Узнать IP можно поиском считывателя при помощи демообработки, которая поставляется вместе с компонентой:

Предварительная настройка Motorola FX9500
Перед тем, как можно будет прочесть хотя бы одну метку, в новом считывателе следует установить регион использования:

Чтобы поля стали доступны для изменения, следует залогиниться как администратор (логин и пароль по умолчанию: «admin» и «change»):


Залогинившись как админ, можно войти в «Set Regulatory Mode (Region)» и указать страну:

Выбрать «russia», «russia_dense» и нажать «Submit»:

Результатом должно быть такое окно:

Только после данной настройки считыватель будет считывать метки. Если же этого не происходит, следует проверить кабель антенны. Для этого необходимо войти в меню «Advanced > Expert Configuration > Antennas»:

Далее нужно создать новый профиль настроек (например, «russia»), сохранить его и сделать профилем по умолчанию:


Только после этого настройку можно считать оконченной.
Если в считывателе Motorola FX9500 не сохранить выбранные настройки в профиль (кнопки «Save», «Activate»), то после выключения/включения питания все выполненные настройки сбросятся!
Установка и настройка RoyalRay RRU9809USBL
Установка считывателя RoyalRay RRU9809USBL заключается в подключении его к USB порту компьютера.
Далее следует загрузить и установить драйвер устройства в соответствии с разрядностью ОС.
В случае возникновения проблем при подключении к устройству, необходимо проверить номер COM-порта подключённого устройства.
Для этого в «Диспетчер устройств» в группе «Порты (COM и LPT)» найти устройство Silicon Labs CP210x USB to UART Bridge и проверить, что устройству назначен COM порт в диапазоне от COM1 до COM9.

Если назначен больший номер, необходимо войти в «Свойства»-> «Параметры порта» -> «Дополнительно» -> «Номер COM-порта» и выбрать свободный, в диапазоне от COM1 до COM9.

URL для подключения к ридеру:
В зависимости от заданного COM-порта: от RoyalRay:COM1 до RoyalRay:COM9
RFID-метка на простой логике

Объявлено новое соревнование 7400, и нужно сделать что-то новое. Нельзя ударить в грязь лицом после победы в прошлом году 😉
У меня было несколько расплывчатых идей, но их было недостаточно, чтобы вызвать реакцию «Ух ты!» или «Ты маньяк!». Нужно серьезно потрудиться, чтобы оставаться на уровне моей предыдущей разработки — емкостного сканера.
Я устроил мозговой штурм с моими товарищами: Педерсеном (Pedersen), Асбьёрном (Asbjørn) и Флеммингом (Flemming), которые тут же придумали множество смешных идей. И вот Флемминг упомянул RFID (он разработчик системы управления доступом, которая основана на RFID). А вот это уже мысль. Конечно, первые мысли были об RFID-считывателе, но мы уже собрали их довольно много, и это было скучно. Однако, появилась идея сделать RFID-метку. Я не знаю, кто упомянул это первым, и, как обычно в мозговом штурме, идеи рождаются коллективным разумом. Итак, решено сделать RFID-метку, собранную исключительно на 7400-ой логике.
Содержание
- Принцип работы метки
- Питание
- Конструкция метки
- Принципиальная схема
- Регистр данных
- Резонансный контур
- Восстановление тактового сигнала
- Делитель частоты
- Счетчик по модулю 128
- Манчестерское кодирование
- Двухфазное кодирование
- Модулятор
- Сборка прототипа
- Отладка
- Проблемы с ФАПЧ
- Дешевые считыватели и мусорный сигнал
- Поиск логических ошибок
- Тест пассивного питания
- В погоне за резонансным питанием
- Печатная плата
- Cпецификация
- Замечания по безопасности
- Корпус
- Сборка печатной платы
- Паразитное питание
- Модуляция током или напряжением
- Законченная версия 1
- Видео-демонстрация
- Заключение
Принцип работы метки
- Несущая частота: 125 кГц, 13,56 МГц, 433 МГц, обычно с амплитудной модуляцией
- Кодирование: манчестерский код, двухфазная (Biphase) или фазовая манипуляция (PSK)
- Скорость передачи: 1, 2, 4 кбит/с или более
- Вшитый неперезаписываемый идентификатор, опционально — перезаписываемая память
- Подсчет контрольных сумм с помощью четности и CRC
Транспондер EM4100 работает на частоте 125 кГц с амплитудной модуляцией. Встречаются все виды кодирования, но чаще используется манчестерское на скорости 2 кбит/с. Транспондер шлет 64 бита данных, которые включают в себя: 32-битный идентификатор, 8-битный код изготовителя/версии, 9-битный заголовок, 14-битную контрольную сумму и 1 стоп-бит. Данные в метке кодируются так, что в них содержится уникальный паттерн для синхронизации. EM4100 отправляет последовательность из девяти единиц, которая не может встретиться нигде, кроме как в начале пакета данных.
Вы можете купить такие метки где угодно, например, на Itead, Seeed или Sparkfun. Там же можно найти RFID-считыватель, который будет с ними работать.

- Несущая 125 кГц
- Амплитудная модуляция и, как минимум, манчестерское кодирование
- Скорость 2 кбит/с или настраиваемая
- Настраиваемые биты данных
- Добавление заголовка и стоп-бита
- Автоматический подсчет контрольных сумм
- Желательно, пассивное питание
Питание
Главной особенностью транспондера является то, что он получает энергию из электромагнитного поля считывателя. Было бы замечательным достижением питать метку на 7400-ых микросхемах исключительно от электромагнитного поля. Для имеющегося RFID-считывателя были проведены измерения с помощью простой установки. Берем катушку, подбираем параллельно включенный конденсатор для резонансной частоты 125 кГц и смотрим, как много энергии можно снять.

К резонансному контуру (3,3 мГн и 470 пФ) подключен мостовой выпрямитель (на диодах Шоттки), а после него — конденсатор 10 мкФ и нагрузка: резисторы 4,7 кОм, 12 кОм или 47 кОм. Получается, что передача максимальной мощности происходит при токе нагрузки около 700 мкА, когда напряжение достигает 19 В. Другими словами, из электромагнитного поля можно извлечь более 13 мВт мощности. При напряжении 3,3 В максимальный ток нагрузки будет около 2 мА. Этого должно хватить для питания множества микросхем серии 74HCxx. (Отечественный аналог — серия КР1564. — Прим. перев.)
Микросхемы 74HCxx — полностью КМОП и имеют почти нулевой статический ток потребления. Они рассеивают мощность только при переключениях, перезаряжая входные и выходные емкости. Принимая напряжение питания равным 3,3 В, ток — 700 мкА и тактовую частоту — 125 кГц, получаем, что резонансный контур может питать схему с суммарной емкостью 1700 пФ (U * C = I * T). Это означает, что мощности должно хватить на множество микросхем и линий ввода-вывода.
Использование метки на более высоких частотах, например, 13,56 МГц, намного проблематичнее. На два порядка более высокая частота означает на два порядка большее энергопотребление. Отсюда следует, что практически невозможно использовать данную метку на высоких частотах.
Что касается серии микросхем HCT (Отечественный аналог — серия КР5564. — Прим. перев.), их нельзя использовать в данной конструкции. Серия HCT имеет в среднем более высокий ток покоя, и, что важнее, дополнительный вытекающий ток через каждый вход, из-за совместимости с уровнями TTL. Вход элемента серии HCT будет источником тока, если он не подтянут к шине питания. Этот ток обозначен в документации как ΔIcc (добавочный ток покоя) на каждый вход. Его значение составляет 10-1000 мкА, в зависимости от подключенной нагрузки. Это означает, что много энергии уходит впустую, что совсем нежелательно.
Некоторые соображения касательно аналоговой части. Важным фактором является добротность резонансного контура. Более высокая добротность при неизменной резонансной частоте означает, что с контура будет сниматься меньше энергии. С другой стороны, высокая добротность облегчает модуляцию. Модуляция есть не что иное, как изменение параллельного сопротивления, что влечет за собой изменение добротности: Q = R * sqrt (C/L). Все переменные, R, C и L, должны быть подобраны для оптимальной производительности в пределах рабочего диапазона. Баланс должен быть определен экспериментальным путем.
Конструкция метки
Метка EM4100 включает в себя регистр данных, схемы питания, тактирования, модуляции и управления. Все компоненты реализованы энергосберегающими и обеспечивают максимальную гибкость.
Принципиальная схема
Следует отметить, что окончательный проект включает в себя все исправления ошибок и некоторые дополнения, которые были сделаны на стадии создания прототипа. Ниже будет подробная информация о внесенных изменениях. Чтобы уберечь читателя от возгласа «многабукв, ниасилил!», сразу приведу окончательный вариант.

Страница 1, 64-битный регистр данных и схема вычисления четности:

Страница 2, схемы питания, тактирования, управления, ввода идентификатора метки, а также временные диаграммы:
Вся схема в PDF.
Схема в формате gschem.
Регистр данных
- Паттерн синхронизации: девять единиц
- Идентификатор производителя/версии: 2 блока по 5 бит, из которых 4 бита — данные, а пятый — четность
- Уникальный идентификатор: 8 блоков по 5 бит, из которых 4 бита — данные, а пятый — четность
- Контрольная сумма: 4 бита четности, подсчитанные по столбцам
- Стоп-бит: «0»
Смотрите описание протокола, там красивая табличка. Данные передаются старшим битом вперед. Всего есть 40 бит (8+32), которые пользователь устанавливает переключателями. Многие RFID-считыватели будут игнорировать поле «ID производителя/версии» и выдавать только 32-битный уникальный идентификатор (в десятичной системе, аррррр!).
Четность по строкам считается среди 4-битных групп (полубайт). Бит четности вычисляется при помощи 4-входового XOR (исключающее ИЛИ) следующим образом:
RPx = D0⊕D1⊕D2⊕D3 = (D0⊕D1)⊕(D2⊕D3),
что реализуется на трех элементах 74HC86. Четность по столбцам вычисляется аналогично, но по 10 битам, используя элемент 74HC280 для первых девяти бит и 74HC86 — для десятого.
Значительная часть меток имеют неизменяемые идентификаторы. Данная конструкция может выдавать все возможные идентификаторы, требуется только задать номер с помощью переключателей, а расчет четности остается прежним. Несмотря на то, что схема вычисления четности содержит много микросхем, она почти не потребляет энергии, так как находится в статическом состоянии. Таким образом, гибкость может быть достигнута только ценой добавления микросхем, без ущерба другим характеристикам.
Резонансный контур
Сердцем схемы питания является резонансный контур из конденсатора и катушки. Напряжение выпрямляется мостом на диодах Шоттки и поступает на накопительный конденсатор. Резонанс в контуре в сочетании с высокой добротностью будет обеспечивать достаточно высокое напряжение. Входное напряжение ограничено цепочкой светодиод+стабилитрон. Светодиод загорается, когда накопитель заряжен, а затем сжигает излишки энергии, защищая схему от перенапряжения.
Накопительный конденсатор вмещает достаточно энергии, чтобы питать метку некоторое время. Стабилитрон ограничивает максимальное напряжение на уровне примерно 12 В, а стоящий после него LDO -стабилизатор требует всего 0,4 вольта сверх рабочего напряжения 3,3 В. При емкости конденсатора 2 мкФ и расчетной нагрузке 800 мкА время работы составит (12В — 3,7В) * 2мкФ/800мкА ≈ 20 мс. Полный цикл передачи 64 бит на скорости 2 кбит/с занимает 32 мс. Накопитель будет заряжаться, по крайней мере, при отключенном модуляторе (около 50% времени), поэтому энергии должно быть достаточно.
Схема разработана так, что можно подключить дополнительный источник питания (3 или 4 батарейки AAA), а также включать/выключать LDO-стабилизатор. Батарея необязательна, но я не могу гарантировать, что все RFID-считыватели будут давать достаточную мощность.
Любопытный читатель может спросить меня, почему блок питания обеспечивает 3,3 В, в то время как семейство 74HC может работать и при 2 вольтах. Причина тому — схема ФАПЧ (см. ниже, «Восстановление тактового сигнала»). ГУН микросхемы 74HC4046 может работать лишь при напряжении питания выше 3 В. Если ФАПЧ не используется, напряжение питания можно уменьшить до 2 вольт. Все микросхемы семейства HC достаточно быстры, чтобы даже при 2 В справляться с тактовой частотой 125 кГц.
Восстановление тактового сигнала
Резонансный контур работает на частоте 125 кГц, которая используется для тактирования всей схемы. Сигнал с катушки через разделительный конденсатор подается на триггер Шмитта 74HC14 и преобразуется в сигнал RAWCLK (таким же образом обычно снимается сигнал 50 Гц с силового трансформатора). Гистерезис триггера Шмитта необходим по причине того, что сигнал имеет пологие фронты и может нести в себе много шума. Главной проблемой являются индуктивные наводки на катушку от электросети 50 Гц, которые приводят к возникновению фазового шума в тактовом сигнале. Триггер Шмитта обеспечивает устойчивость к шумам и убирает большую часть 50-герцовых наводок.
Опциональная схема ФАПЧ ( PLL ), выполненная на микросхеме 74HC4046, синхронизирует тактовый генератор с несущей частотой резонансного контура. ФАПЧ нужна только в том случае, если несущая частота прерывается. Такие разрывы могут возникать у RFID-считывателей, которые периодически подстраивают амплитуду электромагнитного поля, так, что сигнал оказывается ниже порога срабатывания триггера Шмитта. Тем не менее, считыватель остается способен принимать данные и при низких амплитудах поля. ФАПЧ поддерживает тактовый сигнал во время таких периодов. Схема имеет переключатель, позволяющий разрешить или запретить использование ФАПЧ. С отключенной ФАПЧ ниже потребление энергии, но ее включение может быть полезно для работы с некоторыми считывателями.
Проблемы с ФАПЧ могут возникнуть с дешевыми считывателями, которые генерируют несущий сигнал со значительным фазовым шумом (джиттером). Это заставляет ФАПЧ непрерывно работать, подстраивая фазу, что повышает энергопотребление. Другая проблема с ФАПЧ может возникнуть с очень плохими RFID-ридерами, которые восстанавливают принятые данные исключительно по своему внутреннему генератору 125 кГц. Если метка пропустит период, считыватель запутается, и случится Неприятная Штука™.
Делитель частоты
Некоторые тактовые сигналы являются производными (не в математическом значении слова «производная». — Прим. перев.) от главного сигнала MCLK. Метки EM4100 обычно выпускают под скорости передачи данных MCLK/16, MCLK/32 и MCLK/64, хотя значение MCLK/64 (2 кбит/с) наиболее распространено. Переключаемый делитель частоты для настройки скорости передачи собран на половинке счетчика 74HC393. Делитель формирует сигнал DCLK. Набор переключателей задает коэффициент деления для тактового сигнала.
Вторая половина счетчика 74HC393 формирует все внутренние тактовые сигналы (CCLK, PCLK и SCLK). Регистр данных сдвигается по сигналу SCLK, который задает скорость передачи данных.
Полная временая диаграмма приведена на схеме устройства (страница 2).
Счетчик по модулю 128
Регистр данных содержит 64 бита, но проблема в том, что перезагрузка данных занимает еще один такт. Если считать только до 64, то сигнал окончания счета перекроет один сигнал сдвига, что означает пропуск бита в следующем 64-разрядном цикле и приведет к неправильному началу цикла передачи данных. Проще говоря, полный цикл передачи 64 бит и перезагрузки регистра занимает 65 тактов. — Прим. перев.
Микросхема 74HC40103 работает как счетчик по модулю 128, ведя обратный отсчет от 127 до 0 на двойной скорости передачи данных, а затем перезагружаясь. Сигнал конца счета (MOD128) немного сдвинут по времени за счет синхронизации с CCLK для того, чтобы избежать перекрывания фронта с фронтом SCLK. Это выполняется при помощи триггера 74HC74, который формирует сигнал параллельной загрузки регистра ~PLOAD.
Манчестерское кодирование
Схема кодирования, используемая в большинстве меток, как упоминалось ранее, манчестерская. Основное преимущество манчестерского кода — в простоте его генерации. Исключающее ИЛИ между тактовым сигналом и потоком данных дает манчестерский код. Элемент 74HC86 складывает сигналы SCLK и SDELAY для кодирования потока данных.
Фактический поток данных из регистра, SOUT, задерживается на один такт для формирования SDELAY. Когда регистр данных перезагружается, то SOUT сразу же изменяется с «0» на «1» (переход от стоп-бита к старт-биту). Тем не менее, параллельная загрузка регистра, как было сказано выше, не привязана к фронту сигнала сдвига, а генерация манчестерского сигнала должна оставаться синхронной с SCLK, чтобы не было ложных переходов. Задержка на один такт делает все биты в потоке данных синхронными с SCLK.
Манчестерский сигнал, по прогнозам, должен иметь выбросы (глитчи) при переходах 0→1 и 1→0. В этих местах сигнал SCLK инвертируется, но SDELAY и SOUT не синхронны на 100%. Выброс вызывается гонкой сигналов SDELAY и SCLK из-за задержки срабатывания триггера 74HC74. Однако, этот выброс настолько узкий (10-30 нс), что модулятор не успевает на него среагировать, не говоря уже о приемнике, в котором сигнал сильно фильтруется. Так что выброс оставили как есть.
Двухфазное кодирование
Другая разумно легко реализующаяся схема кодирования — это двухфазная. Она идентична дифференциальному манчестерскому кодированию с фазовой задержкой и представляет собой частотно-манипулированный ( FSK ) сигнал, наложенный на несущую с помощью амплитудной манипуляции ( ASK ). Сложность двухфазного кодирования в том, что уровень выходного сигнала всегда переменный, в то время как частота изменяется в соответствии с передаваемыми данными. Эту трудность можно преодолеть, используя двойную скорость генератора, а затем разделив полученный результат на два.
На первом этапе происходит мультиплексирование сигналов PCLK и SCLK на основе потока передаваемых данных при помощи набора элементов 74HC00 (И-НЕ). На выходе мультиплексора наблюдаются выбросы, по тем же причинам, что описаны выше (гонка SDELAY и SCLK), а также потому, что PCLK и SCLK не синхронны. (Приветствую тех, кто дочитал до этого места и не уснул. Дальше будет веселее. — Прим. перев.) Счетчик 74HC393 является асинхронным, и это вызывает проблемы. Сигнал с выбросами не может быть безболезненно пропущен через делитель на два, ведь выбросы тоже могут быть интерпретированы счетчиком как импульсы. Мультиплексированный сигнал очищается от выбросов путем квантования сигналом CCLK, который гарантированно держится на высоком уровне значительно дольше, чем длительность выброса. Наконец, деление частоты на два с помощью триггера 74HC74 завершает формирование двухфазного сигнала.
Предусмотрены переключатели для выбора типа кодирования: манчестерское или двухфазное.
Модулятор
Наконец, закодированный сигнал должен быть направлен обратно в катушку, чтобы его принял RFID-считыватель. На обоих выводах катушки напряжение может быть как положительным, так и отрицательным, поскольку в ней индуцируется переменный ток.
Амплитудная модуляция осуществляется созданием контролируемого замыкания на землю обоих концов обмотки с помощью пары МОП-транзисторов, каждый из которых работает на своем полупериоде сигнала. Выпрямительный мост образует замкнутый путь на землю для каждого из выводов. Несмотря на то, что МОП-транзисторы способны реагировать на вышеупомянутые выбросы сигнала, резонансный контур не может, так как он настроен на частоту, на 2-3 порядка более низкую, чем частота выбросов.
Большинство картинок и диаграмм, которые вы найдете в сети, не показывают эту часть или показывают ее неверно. Замыкание является контролируемым по времени, в соответствии с закодированными данными, и ограниченным по сопротивлению, за счет резисторов. Пассивные RFID-метки, как правило, малы, и оперируют на порядок меньшей мощностью, чем эта. Метки обычно имеют маленькие катушки, и таким образом, могут достичь только очень небольшой глубины модуляции. Если большую катушку в нашей конструкции замкнуть накоротко, посланный сигнал, скорее всего, будет настолько сильным, что собьет с толку большинство считывателей. Также, короткое замыкание катушки требует использования ФАПЧ для поддержания тактовой частоты на то время, пока катушка замкнута.
Сборка прототипа
Теперь, если теория и схема верны, все должно работать как задумано. Тем не менее, практика и теория не всегда соответствуют друг другу, и мое серое вещество тоже подводит меня время от времени.

Прототип имеет 40 красных переключателей для установки идентификаторов метки и 4 синих — для делителя. Верхний ряд из 8 микросхем — это элементы «Исключающее ИЛИ» 74HC86 для вычисления четности по строкам. Средний ряд — восемь сдвиговых регистров 74HC165, которые образуют 64-битный регистр данных. В нижнем ряду левые пять микросхем подсчитывают четность по столбцам — четыре 74HC280 и одна 74HC86. Остальное — это счетчики, ФАПЧ и триггера Шмитта.
Пайка заняла около 6 часов в общей сложности. Основная задача прототипа — показать работоспособность основных функций и возможность работы всего устройства от электромагнитного поля. Прототип содержит только элементы для манчестерского кодирования, включая схему ФАПЧ.

Отладка
Разработка основной схемы была несложной задачей. Это заняло всего несколько часов. Тем не менее, некоторые вещи не были запланированы достаточно тщательно и некоторая функциональность должна была быть проверена экспериментально.
Первоначальные мысли, родившиеся после поиска материалов в сети, говорили о том, что модуляция должна быть глубокой, очень глубокой, и что катушка должна полностью замыкаться при этом. Это заставило меня потратить много времени на отладку ФАПЧ, что не всегда так просто, как кажется.
Проблемы с ФАПЧ
Проблема с ФАПЧ в том, что нужно сбалансировать несколько параметров для обеспечения стабильной работы. С одной стороны, необходимо обеспечить быстрый и стабильный захват фазы, в то же время пытаясь сократить как диапазон захвата, так и дрейф восстановленного тактового сигнала при прерывании несущей. Использование документации на 74HC4046 оказалось сложне, чем я думал. Там нет готовых формул для всех компонентов, а некоторые нужно находить по графикам (для меня осталось загадкой, почему значения графиков расходились с реальностью в два раза, ну да ладно). Потребовалось некоторое время, чтобы найти подходящие номиналы для всех компонентов, и убедиться, что частота 125 кГц пришлась на середину диапазона ГУН, и в то же время дрейф был несущественно мал.

Во время анализа дрейфа я также обнаружил значительную порцию 50-герцовых наводок, дающих частотную модуляцию сигналу ФАПЧ. Сильное сжатие катушки в руке убирало наводки. Проблема была в том, что фазовый компаратор на входе ФАПЧ имеет переменный порог срабатывания, из-за того, что входной сигнал не является двоичным. Устройство восстановления тактового сигнала с емкостной связью давало фронты, неподходящие для логических схем. Было установлено, что триггер Шмитта решает эту проблему.
Важным свойством триггера Шмитта является то, что он потребляет большую мощность во время фронтов сигнала. Причиной этого является то, что входной каскад работает в линейном режиме в сочетании с обратной связью для обеспечения гистерезиса. К счастью, время, проводимое в режиме большой мощности, невелико, и общее энергопотребление ограничено. Но все же использование триггера Шмитта приводит к утечке в системе.
Дешевые считыватели и мусорный сигнал
Когда я начинал проект, я понятия не имел, насколько чувствительным к модулированному сигналу будет RFID-считыватель. Поэтому модуляция была реализована в виде полного замыкания катушки, как было найдено в сети. Вскоре оказалось, что модуляция была слишком глубока, и RFID-считыватель не мог выделить из сигнала стартовые и стоповые биты. Электроника ридера была просто ошеломлена такой модуляцией и выдавала всякий мусор.

Единственный доступный считыватель пришлось вскрыть и припаять несколько проводов к его плате, чтобы посмотреть, какие на самом деле данные он принимает. Оказывается, что RFID-ридер может принять данные с катушки, закороченной источником тока порядка 50-100 мкА. Это несколько далековато от тех 2,5 мА, которые дает полное замыкание катушки. Дополнительным преимуществом является то, что ФАПЧ теперь необязательна. Восстановление тактового сигнала будет идти даже в то время, когда модулятор замыкает обмотку. Остаточной индукции катушки оказалось достаточно, чтобы поддерживать тактирование.

Модулятор был изначально собран на биполярных транзисторах. Это привело к пологим фронтам сигнала, потому что транзисторы работали в режиме низкого энергопотребления, а значит, весьма медленно. Замена их на МОП-транзисторы сделала модулятор быстрее и сэкономила очередные 27 мкА потребляемого тока. У меня были только транзисторы в корпусах SOT-23 (Маленькие тараканчики для SMD-монтажа. — Прим. перев.), и их пришлось ставить на печатную плату при помощи штырьков. 3,3-вольтовый LDO-стабилизатор, имевшийся под рукой, был в корпусе SO-8, он смонтирован проволочками на куске штыревого разъема.
Единственный RFID-считыватель был неизвестного производства и соответствующего качества. Он оправдал самые худшие ожидания. Если вы отправляете на считыватель некорректные данные, вы можете: а) подвесить считыватель, б) получить мусор на вводе в компьютер и в) проклясть все на свете, пытаясь понять, почему что-то не работает как ожидалось. Единственное, что выяснилось, это то, что нужно было собрать свой собственный считыватель в первую очередь. Оказалось, что считыватели на входных дверях здания были гораздо надежнее и смогли переварить все, что я на них передавал.
Поиск логических ошибок
После получения на считывателе нормально декодируемого сигнала он по-прежнему не работал как надо. В схеме обнаружились две ошибки.
Первая была в счетчике по модулю 128, который тактировался по переднему фронту сигнала PCLK. Однако должен был — по заднему. Прототип посылал 10 стартовых бит вместо девяти, потому что сигнал PLOAD перекрывал передний фронт тактового сигнала сдвига. Простой инвертор на PCLK решил эту проблему. Окончательный дизайн, с двухфазным энкодером, формирует правильный сигнал PCLK как часть работы энкодера.
Вторая ошибка заключалась в полярности манчестерского кода. Единственное упоминание в сети гласило: «низкий уровень означает высокий ток» и содержало диаграмму перехода «низкий → высокий уровень» для логической «1». Описание допускает множество интерпретаций. Оказывается, это означает: «низкий уровень означает включенный модулятор (закороченную катушку)». К счастью, задержка потока данных для формирования SDELAY давала и прямой, и инвертированный потоки данных. Переделка манчестерского энкодера для использования инвертированного сигнала была тривиальной.
Тест пассивного питания
Было измерено энергопотребление всего прототипа, чтобы понять, возможно ли пассивное питание. Потребляемый ток при 3,3 В колебался около 780 мкА, это достаточно мало, чтобы замкнуть контур и перевести прототип на пассивное питание.
А затем… ничего не произошло с дешевым считывателем.
Все работало как ожидалось, питание поступало, данные отправлялись, и вдруг, внезапно, «БИП!». Код был корректно распознан и высветился на экране компьютера, к которому подключен ридер. Успех! Теперь можно открывать дверь самодельной RFID-меткой.

В погоне за резонансным питанием
Питание от резонансного контура должно быть настроено таким образом, чтобы считыватель не сбивался слишком часто, и в то же время извлекалось достаточно энергии для работы метки. Это оказалось сложнее, чем я думал. Как говорилось ранее, добротность играет значительную роль. На самом деле, нужна небольшая катушка, достаточно крупная для получения энергии, но достаточно маленькая, чтобы не нагружать передатчик слишком сильно и обеспечивать легкую модуляцию.
Обратите внимание, что резонансная LC-цепь работает не точно на резонансной частоте, рассчитанной для выбранных компонентов. Причина в том, что схема метки создает (слегка емкостную) нагрузку для контура. Таким образом, катушка должна быть немного меньше, чем рассчитано. Это имеет то преимущество, что вы можете сделать катушку в соответствии с теорией, а затем удалять витки до достижения правильной частоты.
Оказалось, что дешевый считыватель был очень чувствителен к высокой нагрузке, и чем ниже была нагрузка, тем лучше он работал. Изначальная катушка, 3,3 мГн была уменьшена вдвое несколько раз, пока некий стабильный компромисс не был найден при индуктивности около 680 мкГн. Вторым изменением было снижение емкости накопительного конденсатора с 10 до 2 мкФ. Считыватель по-прежнему сбоит то и дело, но по крайней мере, работает чаще, чем раньше.
Во всяком случае, контроллер на двери, кажется, был рад всему, что я посылал, и не подводил меня ни разу (даже если я забывал свой настоящий ключ во время тестирования).

Безымянный RFID-ридер прекрасно работает, когда метка имеет внешнее питание. При использовании внешнего источника, по-видимому, лучше включить ФАПЧ. Я думаю, они слишком сэкономили на развязывающих конденсаторах 😉
После обсуждения с Марком (парень, который использует этот фиговый ридер) он сказал мне, что видел проблемы с этим считывателем, даже используя нормальные метки. Мы решили устроить ему небольшой сеанс отладки. В цепях питания ридера присутствовали 200 мВ пульсации (на частоте 125 кГц) и некоторые неприятные импульсы здесь и там. Пайка дополнительных конденсаторов 1 мкФ + 100 нФ в места на плате, отмеченные шелкографией, но не использованные, значительно улучшила работу считывателя. Теперь он спотыкается еще реже и может считывать данные с прототипа даже при пассивном питании.
Замечание для всех: не покупайте такие говносчитыватели. Или купите хороший, или соберите его самостоятельно.
Если вы думаете, что история на этом заканчивается, то вы ошибаетесь. Еще есть куда совершенствовать модулятор, и значительные изменения позволили ему работать гораздо лучше. Даже дешевый безымянный считыватель можно заставить работать хорошо.
Печатная плата
Посмотрев на оригинальную конструкцию и обдумав варианты, было решено, что этот гаджет слишком прикольный, чтобы оставить его в покое в качестве прототипа. Он просто напрашивается на несколько большее внимание и доведения разработки до абсурдного конца. Была разработана печатная плата, и, с некоторой осторожностью, все детали поместились на площади 50×100 мм в два слоя, не выдавая ошибок трассировщика «Недостаточно места». Размер 50×100 означает доступность массового производства на ITead или Seeed (Сервисы изготовления заказных печатных плат. — Прим. перев.). Однако, создание платы размером с кредитную карту оказалось слишком трудным.

Плата разработана под SMD-компоненты, чтобы все уместилось. На ней 412 переходных отверстий диаметром 0,3 мм и дорожки/зазоры минимальной ширины 7 mil. Реализованы все возможности, включая идентификатор, полностью настраиваемый при помощи переключателей, возможность внешнего и пассивного питания, переключение между прямым тактированием и ФАПЧ, манчестерское и двухфазное кодирование и настраиваемую скорость передачи: 1, 2, 4 или 8 кбит/с.
- Счетчик по модулю 128 в прототипе был собран на двух микросхемах 74HC163, которые заменили одной 74HC40103 для экономии места
- Входная защита состояла из двух встречно-последовательно включенных стабилитронов (2×24 В). Их заменили на цепочку стабилитрон+светодиод, которая обеспечивает защиту и индикацию
- В прототипе использована микросхема 74HC14, содержащая шесть триггеров Шмитта. Однако, из них нужен только один, и микросхема была заменена на 74HC1G14, у которой только один элемент в корпусе
- На свободном месте платы было решено собрать двухфазный энкодер и сделать возможность выбора кодирования при помощи переключателей
- LDO-стабилизатор заменен на модель с возможностью включения-выключения (и добавлена кнопка «ВКЛ») и с более низким током потребления
- Теперь можно разрешить/запретить использование ФАПЧ при помощи переключателя. Для снижения энергопотребления схема ФАПЧ отключается, когда она не нужна
Cпецификация
Стоимость деталей составляет меньше 30$ без учета платы и катушки. Катушку вам придется сделать самостоятельно (см. ниже). На самом деле, DIP-переключатели и печатная плата являются самыми дорогими компонентами.
Вы можете заменить большинство компонентов на те, что есть у вас. Тем не менее, входные конденсаторы должны быть в состоянии выдержать не менее 16 В. Кроме того, вы должны использовать резисторы точностью 1% и конденсаторы 5% для резонатора и ФАПЧ, чтобы параметры соответствовали расчетным.
Следует отметить, что развязывающие конденсаторы все по 10 нФ (вместо обычных 100 нФ). Это нужно для снижения нагрузки на резонансный контур. Схема работает на низкой частоте и может выдержать слегка увеличенный уровень шума на шине питания, так как напряжение питания выше минимально допустимого.
Согласно расчетам, катушка должна содержать 89 витков провода диаметром 0,4 мм и иметь средний диаметр (измеренный по средней линии обмотки) 50 мм. Катушка была намотана на оправке диаметром 48 мм (картридж от силиконового герметика), а затем с помощью вощеного шнура ей придали красивую тороидальную форму и плотно уложили витки. Нужная частота резонанса, вероятно, достигается с 88 или 87 витками, в зависимости допусков.
Вы можете сделать катушку любой формы, какая вам нравится (например, квадратную или прямоугольную), если вы правильно настроите контур в резонанс. Тем не менее, изменение формы потребует некоторых экспериментов, так как от размеров зависит индуктивность и сила электромагнитной связи (см. ниже для прямоугольной катушки).
Если вы измеряете индуктивность катушки, делайте это на частоте 125 кГц. Индуктивность зависит от частоты из-за паразитной емкости витков и электромагнитной связи между ними (например, катушка 3,3 мГн показывает индуктивность меньше 100 мкГн на частоте 1 кГц). Паразитные параметры будут также влиять на резонансную частоту и достигаемую добротность.
Замечания по безопасности
Как вы можете видеть, эмуляция RFID-меток тривиальна. Все системы, где для доступа требуется только ключ, уязвимы к атакам эмуляции метки. RFID в системах управления доступом должен использоваться только как один из факторов аутентификации, в связке «то, что у вас есть + то, что вы знаете» (хотя, и это может быть неэффективным).
Даже метки с шифрованием уязвимы для множества атак. Кроме того, становится все легче эмулировать метки на смартфонах с поддержкой NFC (которые обычно работают на 13,56 МГц). Просто правильно напишите приложение для модуляции поля, и вы сможете делать все, что хотите.
В качестве стандартной отмазки напомню, что автор (И переводчик! — Прим. перев.) не несет никакой ответствености за последствия использования информации из данной статьи. Читатель должен сам отвечать за все свои действия.
Корпус
Иногда очень везет. Красивый корпус не помешал бы именно сейчас, когда прототип закончен, а печатная плата заказана. И именно в это время Флеминг закончил собирать и запустил станок лазерной резки OSAA PhotonSaw. После года работы над проектом лазер готов вырезать свои первые детали. Флемминг и Рун делают последние юстировки и ставят на место алюминиевую крышку лазерного шкафа. Вы можете себе представить, как все мы были рады видеть, что эта штука работает.
С работающим станком мы получили возможность протестировать наш проект в реальной жизни. Корпус для нашей RFID-метки сделали из 2-миллиметрового огрстекла. Этот корпус — первый объект, сделанный на PhotonSaw, да!

Родилась идея расположить катушку на внешней стороне корпуса. Сперва было решено использовать половину высоты корпуса, но это не работало на практике (дополнительные отверстия в длинных сторонах, таким образом, не используются). Катушка просто великолепно разместилась по периметру всего корпуса, хотя у меня были сомнения, не будет ли прямоугольная обмотка (105×55 мм) слишком большой для нормальной электромагнитной связи.
Тестовая катушка была намотана, без всяких расчетов, проводом 0,4 мм в 66 витков. И, очевидно, нам опять повезло, потому что катушка получилась точно такой как надо, индуктивностью 645 мкГн, с подключенной меткой давая резонансную частоту 125,2 кГц. Тест на дверном считывателе показал, что прототип работает просто прекрасно с этой катушкой.
С катушкой снаружи корпуса толщину последнего можно уменьшить. Внутренняя толщина теперь зависит только от высоты деталей на плате, и с учетом толщины платы должна составлять около 6 мм. Кроме того, было бы хорошо добавить гравировку. Флемминг предложил скруглить боковые стороны корпуса из эстетических и эргономических соображений. Изогнутый корпус также будет лучше защищать боковые стороны катушки, потому что там, где нет сильного натяжения, витки провода любят вылезать наружу.

Станок PhotonSaw еще не совсем в нормальном состоянии: гравировка на верхней крышке значительно съехала. Необходимо его окончательно отладить перед изготовлением финальной версии корпуса. Изогнутые контуры также подверглись ошибке расчета в программном обеспечении, так как луч не вернулся в начальное положение после прохода замкнутой траектории. Но во всяком случае, кривые выглядят действительно гладкими.
Сборка печатной платы
Прибыла заказанная плата:

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

- Площадки для DIP-переключателей расположены слишком близко друг к другу. Пришлось слегка сошлифовать корпуса переключателей с боков, чтобы они встали на место. В следующей версии зазоры увеличили на 10 mil.
- Шелкография с обозначением скоростей передачи сделана неправильно. Значения должны идти в порядке «1 2 4 8», а не «8 4 2 1». Исправим в следующей версии.
- Изменения, внесенные в прототип, видимо, работают слишком хорошо в энергетическом отношении, что привело к целому ряду неожиданных проблем. Было обнаружено паразитное питание схемы в выключенном состоянии.
- Модуляция работает тяжело и неустойчиво. Основная причина заключается в различных уровнях входного напряжения в сочетании с модулятором, который работает в режиме модуляции напряжением.
Паразитное питание
Новый отключаемый стабилизатор (MCP1804) позволяет сэкономить много энергии. Смысл его в том, что подключенного аккумулятора хватит надолго, если метка будет находиться в состоянии сверхнизкого потребления. Но когда катушка находится вблизи считывателя, появляется обходной путь для питания через схему восстановления тактового сигнала.

Через разделительную емкость (47 пФ имеют сопротивление примерно 27 кОм на частоте 125 кГц) и защитные диоды ток поступает на шины питания. Энергии, поступающей с катушки, хватает на поддержание напряжения питания около 1 В. Ток может достигать 250-500 мкА. Удивительно, но микросхемы 74HC, похоже, работают при таком питании. К сожалению, при таком напряжении происходят довольно странные вещи. Микросхемы 74HC имеют внутреннюю схему сброса, и нужно убедиться, что она срабатывает. Обратите внимание, что отключение защитных диодов не помогает. На входах микросхем есть внутренние защитные диоды, которые в этом случае открываются и выполняют ту же работу.
Сброс по питанию срабатывает только если напряжение питания падает ниже определенного уровня в течение некоторого периода времени. Если напряжение остается слишком высоким, то внутренняя логика может запутаться, потому что некоторые ее части могут быть в неопределенном состоянии, в то время как другие работают должным образом. Необходим внутренний сброс для установки всех микросхем в согласованное состояние. Таким образом, схема будет неустойчиво работать при очень низком напряжении питания.
Симптомы наблюдались следующие: метка работает некоторое время, при этом посылая корректные данные. Если катушку убрать от считывателя, а затем вернуть обратно, можете делать ставки, выключится ли при этом метка. Иногда срабатывает, иногда — нет. Отключение ФАПЧ ухудшает ситуацию. Низкое энергопотребление приводит к тому, что ридер время от времени будет принимать данные от выключенной метки. Вот что значит «энергоэффективная система».
Существует два решения: 1) уменьшить конденсатор в цепи восстановления тактового сигнала до 15 пФ, и 2) включить между питанием и землей резистор 22-100 кОм для сброса лишней энергии. Второй метод приводит к росту утечек во время работы и на самом деле не требуется при уменьшении емкости конденсатора. Тем не менее, он предусмотрен как опция, и это все равно лучше, чем неопределенное состояние микросхем.
Модуляция током или напряжением
Модулятор принес свежую порцию головной боли. Модуляция полностью исчезала при помещении катушки на определенном расстоянии от считывателя. Также это могло случиться при перемещении катушки к ридеру или от него.
Причина оказалась в схеме модулятора. МОП-транзисторы замыкают катушку на резистор определенного сопротивления. Однако, если потребление энергии из контура велико, сопротивление модулятора значительно выше, чем сопротивление цепей питания. Это приводит к тому, что глубина модуляции зависит от потребляемого тока, а это не очень хорошо. Ситуацию ухудшил выбор ограничительного стабилитрона на более низкое напряжение, чем в прототипе.

Было принято решение перевести модулятор из режима модуляции напряжением в режим модуляции током. Для первого режима резистор находился в цепи стока, а теперь он включен между истоком и землей. На этом резисторе будет падать напряжение затвор-исток, пока не останется значение чуть выше порога открывания транзистора (0,9-1,1 В), которое переведет транзистор в линейный режим. Теперь ток через транзистор будет стабильным, независимо от напряжения на стоке.
Тестирование на прототипе показало, что модуляция током работает очень хорошо. Дешевый безымянный считыватель больше не сбоит (ну ладно, может быть один раз на сотню или около того). Можно предположить, что это изменение будет работать чудесно и на других ридерах, и метка теперь, вероятно, сможет работать на большинстве из них.
Законченная версия 1
Можно заметить внесенные изменения на печатной плате. У меня не было 15 пФ SMD-конденсатора, пришлось впаять обычный, с ногами. Модулятор оброс дополнительными резисторами на истоках транзисторов. В целом приемлемо для первой версии.
(картинки кликабельны) 


Видео-демонстрация
Заключение
Вы можете подумать, что этот проект, собранный на логике 7400, можно отнести к ретро-схемотехнике, но это не совсем так. Во-первых, современное семейство 74HC не такое уж и старое. Во-вторых, низкопотребляющие схемы всегда актуальны. В-третьих, микросхемы одиночных логических элементов (такие, как использованный триггер Шмитта) часто используются в современных разработках. Часто забывают, что развитие технологий не прекращается и для старых семейств микросхем. Они просто стали менее заметны на фоне общего разнообразия.
Аналоговая часть оказалась сложнее в разработке, чем цифровая. Частично из-за отсутствия спецификаций, но в основном, за счет множества компромиссов, необходимых для соответствия параметрам, и непредвиденных побочных эффектов. Цифровые конструкции имеют относительно мало вариантов, в то время как аналоговые обычно требуют баланса между различными (и часто противоположными) критериями.
Я должен признаться, что микросхемы 74HC сделаны очень, очень хорошо. Разработчики знали, что они делают, и достигли очень низкого энергопотребления. Сперва у меня были некоторые сомнения, сможет ли метка работать от пассивного питания, но после прочтения спецификаций это осталось лишь вопросом правильной схемотехники. Хотя, есть еще возможности для оптимизации различных частей метки.
Теперь посмотрим, как этот проект покажет себя на конкурсе 7400 2012 года. Подача заявок на конкурс заканчивается 31 ноября. Пожелаем автору удачи! — Прим. перев.
- RFID
- 7400 Contest
- overengineering
- логические схемы
- грабли повсюду
Как записать и считать RFID-метку?
Многие предполагают, что на метку записывается информация, например, как на флэшку. Но это в корне не так. т.к. объемы памяти метки не такие же как у повсеместно используемых накопителей и составлет в зависимости от стандарта и используемого протокола около 256 кБ.
Источник: honeywellaidc.com Любая радиочастотная метка содержит в себе чип, антенну, приемник, передатчик, и объем памяти для хранения данных. Если чип пассивный, то для его активации необходим исходящий радиосигнал антенны считывателя или сигнал от собственного источника питания, если чип активный. Антенна нужна для улавливания электромагнитных волн считывателя. После того как внешний сигнал получен, радиочип отвечает обратным импульсом, который передает ID. Многие предполагают, что на метку записывается информация, например, как на флэшку. Но это в корне не так. т.к. объемы памяти метки не такие же как у повсеместно используемых накопителей и составлет в зависимости от стандарта и используемого протокола около 256 кБ. Поэтому как правило каждой метке присваивается свой уникальный идентификатор, который фиксируется в системе учета или другом программном обеспечении, предназначенного для работы по технологии RFID. Далее после получения ID, присвоенного метке, определяется соответствующая информация для загрузки и отображения в интерфейсе программного обеспечения. Все компании, располагая каким-либо видом активов сталкиваются с определенными проблемами в повседневной оперативной рутине складских операций. Эти проблемы требуют решения обширного круга складских задач, связанных с поступлением, отгрузкой, перемещением, подбором, адресным хранением или инвентаризацией основных средств предприятия. Мобильное приложение на RFID планшете
Существует 2 способа записи и считывания RFID-метки.
Мобильное приложение. Специализированное программное обеспечение по автоматизации и оптимизации бизнес-процессов складского учета и логистики для мобильных устройств. Отвечает за маркировку, обработку данных и идентификацию меток при считывании посредством технологий RFID, получая все необходимые сведения о состоянии активов на любом этапе жизненного цикла и управленческого учета. Запись RFID метки через приложение Android Как работает Go-RFID Mobile? Архитектура сервиса Go-RFID основана на модели “клиент-сервер”, в которой сервер обрабатывает данные из мобильного приложения в том числе. Обработанная информация о проведенных в приложении операциях передается «по требованию» или real-time клиентским приложениям. Как записывать и считывать информацию Приложение синхронизируется с базой данных на сервере Go-RFID, куда заранее заведены экземпляры оборудования вручную, выгружены из других систем учета или через интеграцию этих систем по API. Кодирование и регистрация RFID меток происходит с помощью считывателя RFID или планшета, на котором предустановлено приложение и присутствует модуль RFID. Закрепляемые на изделии радиометки имеют практически неограниченный срок эксплуатации, что избавляет от необходимости проводить повторную RFID маркировку ОС. Считывание RFID метки
Стационарный комплекс.
Главная особенность комплекса в автоматизации процесса идентификации меток и минимизации участия в этом процессе человека. Основным преимуществом является высокая мощность сигнала, что позволяет уверенно считывать одновременно большое количество меток. Применяется в сфере транспортной и складской логистики, когда необходимо осуществить приемку/отгрузку груза, учет «въезд-выезд». В своем составе содержит оборудование стационарные RFID-считыватели для записи данных и фиксации перемещения объектов, смонтированные на объект учета RFID-метки и RFID антенны, подключаемые к стационарным ридерам и предназначенные для организации считывания информации с меток. Для каждой единицы одежды создаётся свой электронный паспорт с привязкой к конкретному идентификатору. Ворота Стационарные зоны комплектуются соответствующим считывателем и могут располагаться как в местах с широкими проходами (складской комплекс), так и проходной, для контроля перемещения объектов в зонах контроля проездов, а так же объекты двигающиеся по транспортерной ленте. Так например для идентификации транспорта, учет персонала, проходящего через зону контроля применяются ворота (портал) или потолочный считыватель. А для учета большого количества мелких объектов, ограниченных небольшой зоной считывания целесообразней применять тоннель (бокс) или как одно из решений — Smart-контейнер. Так же применяется настольный стационарный считыватель, но уже для более простых административных задач, например, маркировка книг, документов, ювелирных изделий. Стационарная зона
Принцип работы мобильного приложения и и стационарного комплекса
- На первом шаге в момент маркировки оборудования для инвентаризации имущества предприятия RFID-метка монтируется на объект.
- На чип записывается уникальный номер – идентификатор (ID), который присваивается экземпляру и автоматически заносится в базу данных.
- Затем работник, осуществляя бесконтактный поиск, для дальнейшего выполнения необходимой операции задействует RFID считывателем, который определяет ID метки. В работе стационарного комплекса сотрудник только проводит необходимые операции и контролирует их корректную работу.
- Специальное ПО определяет уникальный номер в базе и передает исходные данные об объекте в систему учета, где хранится доступная информация для управления складом.
- Далее все необходимые сводные данные доступны через мобильное приложение или веб-клиент на экране поддерживаемого девайса для дальнейшей инвентаризации на предприятии.
Настройка чтения RFID-меток в «1С:Предприятие»
Операция инвентаризации поддерживается на уровне радио-протокола обмена между метками и считывателем, и возвращает данные о том, какие EPC присутствуют в зоне считывания. Например, все метки могут иметь один и тот же EPC/UII, и в этом случае по итогам инвентаризации мы будем знать, что это за EPC, и сколько всего RFID-меток с этим EPC/UII удалось считать ридеру. Если все метки имеют свой уникальный EPC/UII (не путать с уникальным номером чипа, который безусловно есть у каждой метки Class 1 Gen 2), то операция инвентаризации вернет список этих EPC/UII.
Синхронное чтение (инвентаризация) меток
- «1С:Предприятие» дало считывателю команду «считай окружающие метки в течение N секунд» и замерло в ожидании ответа.
- Считыватель читает метки, «1С:Предприятие» ждет, все формочки замерли. Считыватель закончил через указанное время и вернул результат «1С:Предприятию».
- «1С:Предприятие» получило результат, обработало его, формочки «отвисли».

Таким образом, если при синхронной инвентаризации указать считывателю «считай 50 секунд», то окно 1С почти целую минуту не будет доступно для пользователя.
Пример кода для синхронной инвентаризации:

Синхронная инвентаризация не требует обрабатывания внешнего события «Чтение», и поэтому работает во всех конфигурациях «1С:Предприятия 8.2» и всех версиях операционной системы Windows.
Во время синхронной инвентаризации внешнее событие «Чтение» не приходит, т.к. это «убило» бы приложение 1С.
Асинхронное чтение (инвентаризация) меток
Асинхронная инвентаризация означает следующее:
- «1С:Предприятие» дало считывателю команду «считай окружающие метки в течение N секунд» и продолжило делать свои дела.
- По мере инвентаризации новых меток считыватель асинхронно посылает «1С:Предприятию» внешние события, в результате чего считанные метки могут интерактивно появляться в окнах и документах «1С:Предприятия».
- Считыватель либо закончил через указанное время, либо «1С:Предприятие» дало ему команду закончить инвентаризацию досрочно.

Таким образом, при асинхронной инвентаризации окно 1С всегда остается доступным для взаимодействия с пользователем, а найденные метки могут интерактивно появляться на экране.
Пример кода для асинхронной инвентаризации:

На одном и том же считывателе нельзя одновременно запускать две и более чтений меток!
Но при этом разрешается проводить несколько параллельных чтений, если они выполняются на разных считывателях.
Событие «Чтение»
При каждом удачном асинхронном чтении RFID-метки (в частности, при асинхронной инвентаризации) компонента посылает внешнее событие «Чтение».
Источник = «CleverenceRFID»
Событие = «Чтение»
Данные = Строка из номера задания (созвращается методом НачатьЧтение), url считывателя и Tag ID прочитанной метки, через символ ‘@’. Например, «F16828D7-A33D-4320-8D6F-4D8598BCB5EA@motorola:xr480:llrp://10.10.0.17@303000181CE257587E9CA77C».
Более подробную информацию о самой метке можно получить у конкретного считывателя или у самой компоненты через метод «ВыбратьМетку».
В качестве данных в событие приходит только Tag ID метки. Получить более подробные данные можно при помощи метода компоненты «ВыбратьМетку».
Пример кода обработки события:

либо, если подписать форму на событие «ВнешнееСобытие»:

Событие «ЧтениеОкончено»
При каждом окончании синхронного или асинхронного чтения RFID-меток (как штатном, так и по ошибке) компонента посылает внешнее событие «ЧтениеОкончено».
Источник=»CleverenceRFID»
Событие=»ЧтениеОкончено»
Данные=Строка причины остановки плюс URL того считывателя, который закончил чтение.
«ИстеклоВремя» – закончилось время, указанное при вызове метода чтения меток,
«Оборвано» – метод ОкончитьЧтение() был вызван до того, как истекло время,
«Исключение» – при попытке чтения произошло исключение. Подробности исключения можно посмотреть, вызвав метод ПолучитьОшибку().
Пример данных для события ЧтениеОкончено:
В качестве данных в событие приходит специальная строка, в которой через символ «@» указаны причина остановки чтения и URL считывателя, на котором остановлено чтение.
Пример кода обработки события:

либо, если подписать форму на событие «ВнешнееСобытие»:

Чтение банка EPC/UII
Чтение банка EPC/UII происходит во время инвентаризации меток (которая не требует паролей), а также при чтении любых других банков, поэтому отдельно чтением банка EPC/UII озадачиваться необязательно.
Чтение банка USER
Банк USER хранит любую дополнительную информацию в формате ISO 15961 (конкретные упакованные поля со строковыми значениями) либо просто байтами. В зависимости от используемого в метке чипа, банк USER может быть размером от нуля бит до нескольких килобайт.


Чтение банка TID (запись в него невозможна)
Банк TID хранит уникальный номер чипа. Перепрошить этот номер чипа никак нельзя. Если при маркировке объектов вести реестр всех использованных чипов, то банк TID можно использовать для проверки того, что метка не была «заменена злоумышленником».


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