При разработке RFID систем (системы разграничения доступа, электронные замки, охранные системы) требуется наличие эмулятора RFID метки. Готовые разработки можно найти в сети Интернет, но их сложность может заставить отказаться от воплощения идеи в реальность. И эта сложность не оправдывает себя, т.к. в большинстве случаев нет необходимости в больших функциональных возможностях, необходим лишь простой RFID эмулятор.
Насколько простым он может быть, мы и рассмотрим в статье.
Внешний вид RFID эмулятора показан на рисунке ниже.
А вот и принципиальная схема
Если вы сомневаетесь в работоспособности, то посмотрите демонстрационное видео. Это эмулятор RFID метки с протоколом EM4100.
В RFID эмуляторе используется микроконтроллер PIC12F683. Чтобы понять как работает наш эмулятор, необходим рассмотреть внутренне строение порта ввода/вывода микроконтроллера. Из технического описания на микроконтроллер мы можем узнать, что каждая линия ввода/вывода имеет внутреннюю паразитную емкость около 5 пФ и два ограничительных диода.
Учитывая внутренний конденсатор (паразитная емкость) и два диода, наша схема примет следующий вид
Внутренний конденсатор линии ввода/вывода и внешняя катушка образуют резонансный LC контур, который работает в качестве антенны. Эта антенна принимает несущую частоту, генерируемую считывателем RFID. Сигнал восстановленной несущей частоты поступает на выпрямительный мост, образованный внутренними ограничительными диодами линии ввода/вывода микроконтроллера, в результате, микроконтроллер обеспечен питающим напряжением.
Катушка подключается к порту GP5/CLKIN/OSC1 и порту GP4, что очень важно. Чтобы передать данные от RFID эмулятора к считывателю, мы должны промодулировать низкочастотную несущую, изменяя состояние контуров связи антенны считывателя и эмулятора. Сделать это можно, изменяя состояние порта GP4: выход (высокоимпедансное состояние) или выход (подключенный к общему проводу).
Программное обеспечение
В основном, код для эмуляции RFID EM4100 (только чтение) – это не более чем выполнение определенных инструкций в определенное время для изменения логического состояния вывода порта микроконтроллера GP4.
Наш микроконтроллер (как и многие микроконтроллеры PIC) имеет внутренний источник тактовой частоты – RC осциллятор. Однако, вместо того чтобы использовать внутренний источник, в нашем проекте для тактирования микроконтроллера мы будем использовать несущую частоту RFID, которая присутствует на входе порта GP5/CLKIN. Таки образом, программа микроконтроллера будет очень простой, т.к. нам не требуется синхронизация модуляции данных (переключение состояния выхода GP4) с несущей частотой RFID считывателя. Еще одной причиной отказа от внутреннего осциллятора является его высокое энергопотребление.
Как было замечено выше, мы эмулируем RFID EM4100, который имеет память 64 бита и, как правило, сконфигурирован для передачи 1 бита за 64 такта с применением алгоритма кодирования Манчестер.
В секции загрузок доступен для скачивания исходный код на ассемблере, снабженный подробными комментариями, и пользователи, имеющие базовые знания ассемблера, смогут разобраться в работе программы.
Загрузки
Исходный код (ассемблер) - скачать
Часть 2 – Некоторые рекомендации по улучшению RFID эмулятора