Разделы

В сети

Пользователей: 189
Из них просматривают:
Аналоги: 85. Даташиты: 79. Инструкции: 3. Новости: 5. Остальное: 1. Теги: 1. Торрент: 1. Форум: 14.
Участников: 2
Гостей: 187

Google , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

В настоящее время нет объявлений.

Схема эмулятора RFID транспондера стандарта EM-Marine (EM4100).

Написал kostua 02.02.2015 23:00:00 (Просмотров: 21488)
Бесконтактные карты стандарта Em-Marine являются на сегодняшний день наиболее популярным средством идентификации в нашей стране и используются для идентификации пользователей в системах контроля и управления доступом (СКУД).


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

Карты и брелки Em-Marine.
 

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

Рабочая частота карт Em-Marine составляет 125 КГц. Для их чтения используются специализированные считыватели бесконтактных карт (считыватели RFID). Взаимодействие идентификатора с таким считывателем осуществляется дистанционно.

Вариантов внешнего исполнения данных идентификаторов существует огромное количество: пропуска Em-Marine изготавливаются в виде тонких и толстых карт, браслетов для аквапарков, различных брелоков, радио-меток для интеграции в RFID-изделия.

Для стандарта транспондеров EM4100 карта содержит 64 бита данных, при этом карты, как правило, не перезаписываемые. Для удобства регистрации карт код, записанный в карте, продублирован печатью на одной из сторон карты. Кодировка передаваемых  транспондером данных   - манчестер кодирование.  При этом периоды сигнала передаваемого транспондером являются кратными частоте 125Кгц – частота сигнала считывателя транспондеров.  Сами транспондеры реализованы без внешнего питания (пассивный тэг), питание осуществляется за счет контура LC (катушка и конденсатор) при попадании тэга в зону действия поля считывателя карт. Тактирование транспондера также осуществляется сигналом считывателя – 125Кгц. Поэтому параметры результирующего сигнала в манчестер кодировке являются кратными сигналу 125Кгц.

Схема взаимодействия транспондера и считывателя RFID
Схема взаимодействия транспондера и считывателя RFID.
 

Для более полного понимания рассмотрим структуру пакета RFID транспондера формата EMMarineEM4100. Приведено описание (на английском, взято из аннноутов) формата пакета транспондера.

“…….EM4100 compatible RFID transponders carry 64 bits of Read Only memory. This means that information can be read from the Tag but no data can be changed, or new data written to the card once the card has been programmed with the initial data. The format of the data is as shown here.

1          1          1          1          1          1          1          1          1          9 bit header bits, all 1's

8 bit version number   D00     D01     D02     D03     P0       

or customer ID.         

            D04     D05     D06     D07     P1       

            D08     D09     D10     D11     P2        Each group of 4 bits

            D12     D13     D14     D15     P3        is followed by an Even 32 Data Bits

            D16     D17     D18     D19     P4        parity bit

            D20     D21     D22     D23     P5       

            D24     D25     D26     D27     P6       

            D28     D29     D30     D31     P7       

            D32     D33     D34     D35     P8       

            D36     D37     D38     D39     P9       

4 column Parity bits   PC0     PC1     PC2     PC3     S0        1 stop bit (0)

The first 9 bits are logic 1“.
 

Соответственно мы имеем 9 стартовых бит пакета (всегда логическая 1), 11 групп по 4 бит данных с 1 битом четности по строке, 4 бита четности по столбцам в конце пакета, завершающий бит (всегда 0). 

Для примера возьмем транспондер с данными номера 06001259E3.

1

1

1

1

1

1

1

1

1

0

0

0

0

0

0

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

1

0

1

0

1

0

1

0

1

0

0

1

0

1

1

1

0

1

0

0

1

1

0

0

1

0

00

0

6

0

0

1

2

5

9

E

3


Байт  с данными 0x06 считается номером версии. На картах EM-Marine, которые попадались мне, выбиты десятичные значения соответствующие последним 3 байтам пакета. В любом случае нам нужно будет для реализации воспроизводить все 64 бита пакета согласно данному описанию.

Теперь обратимся внимательно к описанию модуляции данных транспондера. Данные взяты из аннноута AN680. На рисунке сделал отметки красным относительно интересующих нас диаграмм.
схема из аннноута AN680

 

Теперь подробнее опишем нужные нам диаграммы. Сигнал CLK тактирования – это и есть сигнал считывателя RFID, о чем уже было сказано ранее. Данные в  кодировке NRZ следует подготовить транспондеру в соответствии с записанными данными пакета (64 бит).  Видно, что реализация кодирования NRZ  по пакету транспондера элементарная и требует минимальных затрат ресурсов. Собственно разбираем пакет на битовый поток и меняем логическое значения сигнала по 0 и 1 в данных и все. Для получения результирующего сигнала делаем программно XOR текущего состояния сигнала в формате NRZ и CLKтактирующего сигнала считывателя. В итоге получаем манчестер кодирование результирующего сигнала. Подробнее про манчестер кодирование описывать не буду – данные можно найти в отдельных анноутах. Для более подробного описания методов модуляции можно ознакомиться с данными из “ModulationMethodsH.R. WalkerDataSystems 05/01/04(reviewed 4/18/10)”, мною изучались именно данные примеры.  Главное, что с минимальными затратами ресурсов мы можем таким образом реализовать транспондер формата EM-Marine. Для примера можно взять контроллер AVR серии tiny45 (можно и на tiny13 сделать). На контроллере tiny45 тестировалось поскольку именно такой оказался в наличии для экспериментов.

Теперь представим функциональную схему транспондера на основе модели в Proteus для контроллера tiny45.
функциональная схема

Функциональная схема транспондера в Proteus.
 

Вот так выглядит сигнал генерируемый транспондером. Красным отмечено начало пакета.
сигнал транспондера

 

По схеме видно, что ножка контроллера T0 (PORTB.2) используется для подачи тактового сигнала для 8 битного таймера TIMER0. В программе реализовано прерывание по совпадению на таймере TIMER0 (TIM0_COMPA). Тактирование установлено от внешнего сигнала для данного таймера. Для нас тактовым сигналом является 125Кгц от считывателя карт. На схеме удалено все, что касается питания контроллера и цепей тактирования от считывателя. В реальной схеме сам контроллер тактируется от кварца 4 Мгц установленного между 2 и 3 ножкой контроллера. Также можно добавить блокировочные конденсаторы для кварца по 22 pF на данных ножках контроллера.

Настройки симуляции  Proteusдля контроллера указанны следующим образом:
фьюзы контроллера

При программировании контроллера tiny45 фьюзы (биты конфигурации) устанавливаем таким же образом, как указано на рисунке.2. Для тактирования контроллера используется кварц 4 Мгц.

Относительно реализации внешней схемы обвязки контроллера рассмотрим данный вопрос подробнее. Для примеров были взяты материалы RFIDHandbook (E2E_chapter03-rfid-handbook) где описываются фундаментальные принципы построения RFID систем. Сам документ прилагается к статье. Рассмотрим пример схемы пассивного транспондера (часть схемы на странице 46).  Для понимания я сделал пометки на схеме красным цветом.
 

Видно, что мы имеем приемный контур на L1C1, который служит для питания схемы транспондера и тактирования. Все что касается счетчика-делителя IC1(4024), логических элементов IC3 (7400) можем смело выкидывать – нам это не потребуется. Делитель для таймера реализован настройками таймера без внешних делителей – счетчиков, логическая часть также реализована программно. Однако данный пример позволяет более полно понять работу пассивной схемы транспондера.  Максимальное расстояние считывания для транспондера данного формата составляет 200см. В реальности большинство схем работает на расстояниях 2-10см. Параметры контура емкости и индуктивности LC подбираются максимально точно на резонансную частоту 125Кгц. Для примера использовался контур с емкостью 1nFи катушкой 60 витков на оправке диаметром 50мм проволокой ПЭВ 0.2.  Рассчитать нужный контур можно в специальной программе (можно рассчитать контур для прямоугольно катушки, печатной и тп.). Главное подобрать точные номиналы под частоту 125 Кгц иначе расстояние считывания  и чувствительность схемы значительно ухудшатся. При плохо настроенных контурах будет работать только при поднесении катушки транспондера вплотную к считывателю. Устройство работает по принципу FullDuplex (FDX) – генерация  данных транспондера непрерывно при наличии питания схемы. Тактирование схемы от считывателя и передача данных осуществляется непрерывно. Некоторые схемы транспондеров используют схему работы HDX (HalfDuplex) – считыватель излучает в импульсном режиме, транспондер передает данные в промежутках данных импульсов зарядки от считывателя. Этоотносится, например к  TIRIS транспондерам от Texas Instruments.
прототип схемы транспондера

Схема пассивного транспондера  на основе схемы из RFIDHandbook.
 

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

схема транспондера на tiny45

Для нашей схемы транспондера на tiny45: 4 ножка – земля, 8 – питание, 5 ножка (PORTB.0) соответствует DATAна схеме, 7 ножка (PORTB.2) соответствует CLKна данной схеме.

Схему транспондера можно упрощать и дальше выбросив стабилитрон, построив схему полупериодного выпрямителя и т.д. Делать это или нет решать вам. В простейших схемах транспондеров (например http://scanlime.org/2008/09/using-an-avr-as-an-rfid-tag/) используется паразитное питание по цепям тактирования контроллера и только один внешний элемент – катушка индуктивности. Безусловно, при этом чувствительность схемы с паразитным питанием контроллера будет очень низкой. Говорить о подборе параметров LC контура также не приходится в таком случае. Не забываем, что для тактирования контроллера ставим кварц в реальной схеме (4 Мгц).
 

Данные кода кода транспондера читаются из EEPROM. Для записи кода транспондера прописываем ручками в EEPROM первые 5 байт. Пишутся только байты чистых данных без стартовых бит и битов четности. Для записи EEPROM данные берем в файле transponder_eeprom.bin или transponder_eeprom.hex. Для теста прописаны данные пакета 0F00E19803 (hex). Прошивка для эмулятора Proteus считывателя карт (atmelmega8) находится в файле прошивки reader.hex. Код можно исправить для записи номера транспондера в самом коде. Но в таком случае придется пересобрать проект для записи других номеров карт. Модель Proteus (версия 7.5) находится в файле 1.DSN. В архиве tiny45_rfid_model.zip прилагаются исходники проекта под CodeVisionAVR. Проект легко портируется под другие контроллеры и среду (например WinAvr).
 
Архив: tiny45_rfid_source.zip


Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
 Схема эмулятора RFID транспондера стандарта EM-Marine (EM4100).
Старший сотрудник
Старший сотрудник
Дата регистрации: 01.03.2011
Откуда:
Сообщений: 116
не в сети
Если на основе данной статьи требуется сделать активный транспондер (эмулятор не тактируется и не питается от считывателя)  с питанием от батарейки, то достаточно будет изменить настройки таймера на работу от кварцевого резонатора вместо внешнего сигнала 125кгц. Также нужно будет удалить строчку синхронизации по фронту прерывания (по уровню на ножке контроллера). Прилагаются проекты для транспондеров на контроллерах tiny13 (для тини 13 только внешний сигнал тактировани) и tiny45 по данной схеме проект на tiny13проект на tiny 45

Разное

Интересно

Семь раз отмерь, один раз отрежь. И не перепутай!

Похожие статьи