gototopgototop

www.kukata86.com

 Български Английски

Последна активност във форума на RFID емулатора:

             

Последни коментари:

  • Не мога да се ориентирам, дали това е отговор на моето запитване от преди малко и дали мога да отгов... още...
    06.04.17 20:22
  • Hallo, I want to buy RFID Emulator. Price? Thank you още...
    29.03.17 21:57
  • hello sir good evening sir actully i have purchased your application and i have programmed the ardui... още...
    25.01.17 20:32
Описание, изследване и изработка на RFID емулатора

( 30 Гласа )

Машинно изработена платка с размери 5.3см X 8.6см. Зщитена от надраскване и окисляване на пътечките с черен лак. Бяла маска за по лесното ориентиране за вида и мястото на елементите при сглобяването.  

 

      Идеята за създаването на RFID емултора произлезе от идеята да се създаде среда за разработване и експериментиране на различни RFID приложения. Тази статия е създадена с любителска цел от инженери ентусиасти и любители по електроника които обичат да експериментират със различни радио честотни устройства и да се сблъскват с техните предизвикателства. В последствие се досетихме за полезното приложение на схемата в нашето ежедневие и колко полезна може да бъде до тук развитата схема за изготвяне на резервно копие на вече съществуваща RFID карта, като по този начин вие ще притежавате винаги резервно копие на вашата карта за достъп - както се предполага че притежавате резервни ключове за дома си или колата. При евентуална загуба на вашата карта, чрез резервното копие което имате чрез RIFD емулатора вие няма да останете без възможност да вдигнете бариерата на гаража си или да стоите от външната страна на офиса ви. След като използвате емулатора за спешните си нужди при възможност и при удобно от вас време можете да съобщите на хората поддържащи системата за контрол на достъпа, че картата ви е изгубена за да ви издадат нова. А със RFID емулатора можете да направите резервно копие и на нея, за да го използвате при следваща подобна необходимост. Най-полезното от всичко това е че с RIFD емулатора няма да объркате  планираните се ангажименти за деня.

      Създателите и разпространителите на схемата и необходимите материали за изработването и,  не носят никаква отговорност за злонамерени действия от недобронамерени лица от неправомерното използване на устройството! Всичко свързано с това устройство и със приложената статия е с учебна и експериментална цел. Използвате на ваша отговорност!

 

За разработчиците ентусиасти...

малко теория…

 

Какво е RFID и какво представлява RFID емулатора?

      Радиочестотната идентификация или често съкратено RFID от английски Radio Frequency IDentification e метод за автоматично идентифициране на обекти, при който от идентификатори върху обекта се четат или записват данни чрез радиовълни. Технологията е базирана на радиочестотна комуникация между специално изработен идентификатор (етикет, таг, карта, ключодържател, стикер или друго.) и четящо устройство. Всеки идентификатор съдържа чип със записан в него уникален номер и антена. В зависимост от конфигурацията на системата при “прочитане” на номера може да се предприеме действие - например да бъде задействана врата, бариера или друга реакция - или информацията да бъде подадена към компютър за вземане на нужното решение. Някои типове RFID карти позволяват многократен запис на информация, с което възможностите за тяхното използване допълнително се разширяват. Разстоянието, от което може да бъде “прочетен” идентификатора зависи от много фактори като честота, форма и размер на антената, околната среда и др. Дори разстоянието може да достигне до десетки метри при използване на активни RFID идентификатори, т.е. използващи допълнително захранване (като батерия или друго).

      Разработения тук  RFID емулатор е устройство с отворен софтуер и хардуер и подлежи на динамична  прогресия при откриването на нови идеи от любителите разработчици, в което число може  да сте  и  вие. В интернет пространството съществуват различни подобни устройства – като OPEN PICC или PROXMARK - но те не поддържат ниско честотна идентификация, и от своя страна са доста скъпи и не толкова гъвкави. Също така не са преносими и в повечето случаи зависят от външно захранване или имат нужда от връзка с компютър.

      За разлика от тези устройства идеята за RFID емулатора беше да бъде разработено  устройство придържащо се по следните условия.

 

    • Елементарно, дотолкова че лесно да се разбере начина му на работа от любителите, стига да имат малко познания по електроника, с цел да обменят идеи и да допринасят за развитието му. Лесно разбираем софтуер  и минимална хардуерна сложност.
    • Лесен за практическа изработка. Всички негови части да бъдат лесно набавени от близкия магазин за електроника.
    • Да бъде предимно контролиран и усъвършенстван на ниво софтуер и при евентуални идеи за развитие, хардуерната му част да бъде толкова оптимална и функционална, че почти да не подлежи на промяна или ако има такава да бъде в много малки граници.

 

Постижения до момента...

 

    • До тук развитият RFID емулатор може да работи със следните кодиращи стандарти: EM4100, TK5551, Verichip, сходни на ISO 11784, Biphase, Manchester, PSK, RAW encoding
    • Скоростта на обмен на данните е от 8 до 256 такта за бит.
    • Обем на мястото за запаметяване на данните от картата 1920 бита (лимит на фирмуеъра).
    • 100% Пасивен. Не се нуждае от батерия.

 

 

Относно емулатора

Интерфейс за управление на устройството

Схемата притежава 2 бутона. Те са свързани към крачета GP2 и GP3 входове на процесора. Два кондензатора (C5 и C6) са свързани паралелно на бутоните за да предотвратяват евентуални смущения при натискането им. Забележете че краче GP3 има издърпващ резистор (R5), а GP2 няма, защото използва софтуерно програмиран такъв. Процесори от серията  PIC 12F*  притежават вграден програмно управляван  издърпващ резистор на всеки I/O крак с изключение на GP3. 1K резистори (R3 и R4) разделят I/O краката от кондензаторите. Това е необходимо за използването на, ICSP програмиране. Без подобно разделяне при свързването на ICSP програматор или дебъгер, кондензатора ще зареди  GP3/MCLR/Vpp, предотвратявайки ICSP програматора да подаде нужното напрежение и чипа няма да влезе в режим на програмиране. Въпреки всичко моя съвет е чипа да се програмира предварително на програматор още преди запояване или преди да се поставят кондензаторите на платката за да гарантирате успешното програмиране. Тъй като това е тестов и постоянно разработващ се проект  и при неуспешно програмиране трудно ще установите дали проблема е в програмирането или в хардуерната част, затова поне си гарантирайте сигурно програмиране по сигурен начин следвайки съветите по долу в раздел СОФТУЕР.

 

Информационна индикация

За  "сигнализатор", използваме светодиод със последователно свързан 470 ohms резистор. Бъдете внимателни при избора на светодиод за вашия проект. Повечето обикновени SMD светодиоди черпят до 8 mA ток, което често това е повече от останалата консумация на устройството. Слагането на по мощен светодиод (по ярък, бял, син) или различен от свeтодиод за SMD монтаж може да консумира твърде много ток, повече от колкото антената може да индуцира в себе си и това може да доведе захранващото напрежение да спадне под минималния праг за да  работи нормално схемата.

 

Захранване

Въпроса беше как най оптимално и ефективно  да получим напрежение от носещата 125 khz  честота на четеца на RFID карти и да е използваме за захранване на схемата. Т.е. да направим детектора пасивен, без да се нуждае от външно захранване.  При използването на  схема грец от обикновени силициеви ниско волтови изправителни диоди, имаме много големи загуби. Тези диоди имат пад на напрежение върху себе си в права посока около 0.6V, като по време на изправянето на всеки полупериод  тока минава през два от тях и ще имаме 1.2V загуби. Експериментите ни доведоха до следните резултати. При използване на схема грец образувана от 4 шотки диода спестяваме повече от 600 mV, което е много по добър вариант. Използваните 1N5819 (с Vf=0.2V @ 10mA) са перфектни за целта.

 

В по долната осцилограма забелязваме разликата при използването на шотки или обикновени диоди за изправянето на носещата честота.

Син: = 2.03V   Зелен: = 1.36V         Жълт: Max. = 2.27V      Бял: = GND

Синята линия показва  захранващият сигнал изправен със шотки диоди.
Зелената линия е без шотки диоди.
Жълтата линия е сигналът индуциран в бобината достигащ (GP5) на процесора.

Както се забелязва при използването на шотки диоди в сравнение с обикновени спестяваме около 0.6 волта.

 

Няколко кондензатора са добавени за филтрация на захранващото напрежение. Електролитен(C4), Танталов (C3) и Керамичен (C1). Не всички от тях са необходими, но спомагат да намалят драстично пиковете и хаммониците, например при светването на светодиода или при използването на вградения 8 Mhz генератор на процесора.

 

Автоматична защита от свръхнапрежение

В повечето случаи напрежението което се индуцира в бобината не може да надвиши 6V, и това не крие голям риск да повреди някой от елементите. Но понякога при определени условия - при по силно магнитно поле или рязко намагнитване на бобината(рязко поднасяне до приемника), може да се образува пик с напрежение над максималното което може да издържи процесора. За да предотвратим опасността от повреда от такива пикове, сме приложили следната схема. 

Ако захранващото напрежение е под  5.1V ценеровия диод (D1) е запушен. Базата на транзистора(Q1) замасена и транзистора също е запушен.

В даден момент ако захранващото напрежение скочи над 5.1V. Ценеровия диод се отпушва и отпушва съответно транзистора (Q1). Върху (R7) се образува пад на напрежение с ток достатъчен да натовари бобината дотолкова, че захранващото напрежение да падне под 5.1V.

 

ICSP Конектор

Изведеният 5 пинов конектор дава лесен достъп до крачетата на микроконтролера. Може да бъде използван за програмиране или изследване на входовете/ изходите на чипа. Подредбата на пиновете на конектора е същия като на програматора PicKit2, но можете да използвате и друг програматор като JDM стига да спазвате правилното свързване на пиновете.

Селектиране на полезния сигнал

Както споменахме по горе има видове карти които могат да приемат информацията изпратена от четеца. Обикновено тази операция се ползва за да записваме данни в процесора на картата (да е програмираме картата с данни по наш избор). Четеца изпраща данните към картата по същия начин както картата изпраща данните към четеца - модулира носещата радио честота която е приета от антената. За да дадем възможност на нашия емулатор да чете и обработва тази информация се наложи да му създадем схема която да прочита, декодира и изпраща тази информация към процесора. В последствие той да е записва в себе си с цел възпроизвеждане. За целта трябва да демодулираме носещата честота за да извадим от нея само полезния сигнал и най-лесния за нас начин е като използваме “envelope detector-детектор на обвивката”

Диод  (D4) пропуска положителната съставка на носещата честота  и зарежда кондензатор (C7) когато амплитудата на носещата нараства. Когато амплитудата на носещата намаля кондензаторът (C7) се разрежда през резистор (R8) (диода предпазва да се разреди през захранването). Необходимият ни  сигнал е образуван от периферията на носещата честота, това е модулирания сигнал съдържащ данните на картата.

Зелената линия:  Модулираната носеща на входа на детектора на обвивката
Жълтата линия: Модулирания сигнал на изхода на детектора на обвивката

На изхода на детектора сигналът (преминава през развързващ кондензатор (C8) като изолира постоянната съставка на напрежението.

Зелена линия: преди развързването на постоянната съставка
Жълта линия: след развързването на постоянната съставка
Бяла линия: GND
Отношение: 0.5V/V-div  0.4ms/H-div

 

ВНИМАНИЕ!!!

Както се забелязва от осцилограмата, като следствие от развързването по постоянна съставка, на входа на компаратора сигналът е отрицателен(< GND)  през половината от цикъла. Снето от спецификацията на производителя на процесора, -0.3  на вход I/O на процесора може да повреди целият процесор. Все още нямам такъв случаи на изгорял процесор но имайте в предвид че подлагането на отрицателен сигнал на този вход може да има пагубни последствия за чипа.

 

След развързването сигналът постъпва във вградения компаратор на  PIC процесора. Компаратора на процесора сравнява напрежението на демодулирания сигнал с 0.1 волта, (софтуерно дефиниран) и на изхода му е генериран сигнал близък до сигнала изпратен от четеца, готов за декодиране и обработка.

Жълт: на входа на компаратора (0.2V / V-div)
Зелен: на изхода на компаратора (1V / V-div)
Бял: GND

 

Малко Математика

Стойностите на кондензатор (C7) и резистор (R8) на детектора на обвивката трябва да бъдат точно изчислени.Елементите формират ниско честотен филтър който отрязва честота и е  със следната зависимост:

Горният праг на филтъра трябва да бъде с достатъчно висока честота на срез, че да пропусне честотата на модулиращия сигнал и същевременно достатъчно ниска за да блокира носещия сигнал. Ако горния праг на филтъра е много голям, на изхода ще се пропуснат и вредни сигнали който можем да наречем смущения или шум. Ако пък от своя страна горния праг е много нисък модулиращия сигнал ще бъде отчасти филтриран и на изхода ще получим сигнала “ подрязан “.

В идеалния случаи трябва да изберем праг на филтъра по формулата:

Изчисления за (R) и (C)

Носеща честота(fc) = 125 KHz

Модулираща честота(fm) = 1953.125 Hz  <- Отговаря за кодировка  Manchester или bi-phase кодиране 64 носещи цикли за бит (най често използваната модулация).

В следващата осцилограма, е показан ефекта от избирането на нисък праг на срез на филтъра:

Жълта линия:   R=100K    C=10nF    flp=1000Hz
Зелена линия:  R=56K      C=10nF    flp=1785Hz

Сигналът на изхода трябва да бъде  с “квадратна форма”, но забелязваме как ниския праг на филтъра внася изкривявания на изходния сигнал, като закръгля фронтовете. Колкото е по нисък прага, толкова по заоблени са те. За да предотвратим това “отрязване” прага на срез на филтъра трябва да бъде по висок  от  модулиращата честота (1953.125 Hz), но не и твърде висок за да не пропусне излишни “пулсации”.

Жълта линия:   R=10K    C=10nF    flp=10KHz

От направените изчисления до тук, най подходящи стойности са:

Праг на срез на формирувателя на обвивката = 3030 Hz

R = 33 Kohms

C = 10 nF

 

3030 Hz е достатъчно за да филтрираме коректно 1953 Hz сигнал без да имаме много големи пулсации, или твърде голямо подрязване. Ако държите да имате бърз трансфер и за целта повишите честотата, ще имате проблеми с шума от пулсациите. В такъв случай ще се наложи да утежните схемата с още филтри, но това не е необходимо 3030 Hz е достатъчно за до емулирате почти всяка ниско честотна RFID карта.

 

Схема

Свали в PDF

 

RFID емулатора може да емулира почти всички ниско честотни RFID карти, които нямат възможност да бъдат презаписвани и тези който възпроизвеждат вградения сериен номер веднага след поднасянето към четеца. Платката е проектирана с размерите на фонокарта и има вградена антена изработена от писта върху платката. Можете да проверите секцията галерия за снимки и видео. Ако сте заинтересувани от RFID емулатора можете да го изработите сами. По долу е изобразена платката на емулатора, както и снимки от процеса му на практическа реализация. Всички елементи са достъпни в магазините за електроника. Ако не желаете да изработвате платката сами, можете да е поръчате машинно изработена платка от нашия ОНЛАИН МАГАЗИН както и комплект с елементите и програмиран процесор. Винаги можете да замените някой от елементите с негов аналог. Вие можете да използвате всякакви транзистори или шотки диоди имащи подобни параметри, както и кондензатори или резистори. Може да използвате и друг процесор. Софтуера с малки промени може да се пригоди да работи от  PIC 12F за PIC  16F микроконтролери. За други въпроси мажете да използвате нашия форум.

Комплекта е с назепоени елементи. Нужни са ви малко умения в запояването за да запоите SMD елементите. Най-трудния елемент за запояване от всички в схемата е SO8 (SOIC8) цокъла на микроконтролера.

 

Списък с eлементи

Това е списъкът с елементите за изработка на емулатора. Може да ви бъде полезен ако купувате елементите от магазин различен от нашия онлайн магазин.

 

Означение

Елемент

R1

33 Kohms resistor. 1206 SMD package

R2,R6

10K. 1206 SMD package

R3

100 ohms. 1026 SMD package

R4

470 ohms. 1206 SMD package

R5,R7

1K. 1206 SMD package

C1

1.8 nF ceramic capacitor. Axial package

C2

100nF 50V X7R ceramic capacitor. 1206 SMD package

C3

22uF 6.3V tantalum capacitor. "A" SMD case

C4*

8.2nF 50V X7R ceramic capacitor. 1206 SMD package

C5

1 nF ceramic capacitor. 1206 SMD package

C6

220uF 16V electrolytic capacitor. 6.3mm SMD case

C7

, 10 nF ceramic capacitor. 1206 SMD package

C8,C9

22nF 50V X7R ceramic capacitor. 1206 SMD package

D1,D2

BAT721S dual Schottky diode. SOT23 package

D3

5.1V Zenner diode, 0.5W. SOD-80C case

D4

1N4148 signal diode

LED

Yellow LED. 1206 SMD package

SW1,SW2

Tactile SPNO Switch, TYCO, SMD package

T1

BC846. SOT23 package

U1

PIC12F683. SOIC8 package

5 pin header

 Свали в PDF

*Ако си правите платката сами трябва да съобразите че резонанса в трептящия кръг зависи от кондензатора C4. Но тъй като при всеки платката би изглеждала различно (С различна дебелина на пистите в зависимост от времето на ецване) е добре да измерите индуктивността която сте получили и е съобразите с този кондензатор. При мен се налага да използвам 3.3nF вместо 8.2 nF както е по изчисления.

 

BAT721S Шотки диода може да се окаже труден за откриване. Ако не можете да го откриете можете да използвате някои от следните му аналози. (подредени по Vf – по-ниското е за препоръчване):

BAT721S - Vf=250mV @ 10mA

BAT754S - Vf=340mV @ 10mA

BAT54S - Vf=400mV @ 10mA

BAT40-04 - Vf=450mV @ 10mA

 

ВНИМАНИЕ!

C2 и C3 са кондензатори с поляритет. Бъдете внимателни при спазване на поляритета.При C2, електролитния кондензатор, черната лента показва отрицателния полюс. а, при  C3 (танталовия кондензатор) черно-кафявата лента показва положителния полюс.

 

 

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

Платките са дадени в реални размери. За да ги изработите от обикновен текстолит  можете да ползвате различни любителски методи за ецване, като метода с лазерния принтер или да ползвате Фото-лак. Долната част на платката е огледална с цел да е разпечатате от правилната страна за да продължите със изработката.

         Горна страна на платката.                             Долна  страна на платката (огледална)

 

 Свали в PDF                                                            Свали в PDF

Горна страна на платката с бял печат                    Долна  страна на платката с бял печат

 

 Свали в PDF                                                           Свали в PDF

При изработването на платката е необходимо да започнете от по малките елементи, като резистори и кондензатори, след това да продължите със запояването на по големите електролитни кондензатори, процесор и бутони. 

Ако си правите платката сами трябва да съобразите че резонанса в трептящия кръг зависи от кондензатора C4. Но тъй като при всеки платката би изглеждала различно (С различна дебелина на пистите в зависимост от времето на ецване) е добре да измерите индуктивността която сте получили и е съобразите с този кондензатор. При мен се налага да използвам 3.3nF вместо 8.2 nF както е по изчисления.

 

Софтуер

За да разберете тази част от статията се изискват познания по асемблер.

Принципно кода не е нищо повече от едни добре премерени инструкции, които променят състоянието на GP4. Този микроконтролер (както и повечето PIC процесори) имат вграден генератор, въпреки това вместо използването на вътрешния генератор, процесора използва носещата честота за постъпваща на GP4. Софтуера не е толкова сложен тъй като няма нужда от синхронизиране на модулираните данни. (превключва GP4 към GND или към високо ниво). Вътрешният генератор има много голяма консумация на енергия и това е още една причина да отбягваме ползването му в нашата схема. По малка консумация означава платката да работи от по голямо разстояние. Нашият фирмуеър можете да изтеглите от тук. Той емулира EM4100 RFID карти, едни от най разпространените. EM4100 [datasheet] е карта само за четене със 64 бита памет и в повечето случай конфигурирана да работи със 64 такта за бит и Manchester кодировка. Manchestar кодировката се декодира като половиния бит 32 такта е получен като единици а другите 32 такта като 0 (така се означава лог. 1).

Следният пример показва как да излъчим софтуерно това:

BSF         TRISIO, GP4                           ; GP4 as input (High-Impedance). Transmit a '0'.
NOP
NOP
NOP
NOP
NOP
NOP
NOP
BCF         TRISIO, GP4                           ; GP4 as output (GND). Transmit a '1'
NOP
NOP
NOP
NOP
NOP
NOP
NOP

Да отбележим че между BSF и BCF има точно 4 инструкционни цикъла. Имайки в предвид че PIC архитектурата използва 4 за изпълнение на инструкция, това означава че излъчваме точно 32 носещи такта между групата с инструкции.  

 

Можете да изтеглите софтуера на емулатора от тук:

            Сорс код – Сорса с който можете да екпериментирате или да променяте по ваш избор

           MPLAB IDE – Програмата на Microchip за променяне и компилиране на сорс кода

            HEX фаил – компилиран .HEX файл готов за програмиране

Паролата на всички архиви от статията е: www.kukata86.com

В предната схема няма изведена стойност за нашата бобина. Ако ползваме пистите на платка е трудно да направим точна стойност на бобината, но ако решим да навиваме наша външна антена това е по-лесно. При проектирането на антената, за да подобрим приемането на сигнала – и съответно увеличим дистанцията на устройството, индуктивността и капацитетът трябва да бъдат в резонанс спрямо носещата честота.(125 KHz в нашия случай). С използването на паразитен капацитет (около 30 pF) и честота около 125 KHz, можем да изчислим ориентировъчната стойност на бобината.

Резултата е  54.04 mH.

 

Стойността на паразитния капацитет е относителна. Стойността на индуктивността също е относителна. Нейната стойност може да варира (от едно устройство до друго) в някакви граници не само от несъвършенството на изработка а също и от влиянието на външни фактори. (температура, захранващо напрежение, честота и др.). Използването само на паразитен капацитет, прави почти невъзможна настройката на LC групата. Добавянето на допълнителен капацитет успоредно на бобината улеснява драстично ситуацията. Стойността на капацитета трябва да е около 1 nF за да може вариации на паразитния капацитет да не влиаят на схемата. Добре калибрираната антена не е основният фактор за нормална работа на устройството.

             Работеща на 125 KHz (дължина на вълната 2400 метра) имаме малка дистанция за четене. Можем да изработим алтернативна, външна антена за да подобрим този недостатък. По голямата антена има по голяма площ където да се индуцира магнитно поле, съответно ще имаме по високо напрежение на изхода и. Бобината изработена от платка – както се вижда от видеото – има физически малка площ и ще генерира не много високо напрежение от носещата честота, съответно дистанцията за четене няма да бъде много голяма. Можем да изработим по добра антена, например да навием намотки от медна тел върху вътрешната част на руло от тоалетна хартия. Можете да измерите или изчислите направената антена, но след това не забравяйте да сложите нужния кондензатор за да е калибрирате. За 150uH бобина - 10 nF кондензатор е добра кобинация. След като довършите антената можете да е навиете в изолирбанд за да предпазите намотките от нараняване.

Снимка на ръчно направени бобини 

      Създателите и разпространителите на схемата и необходимите материали за изработването и,  не носят никаква отговорност за злонамерени действия от недобронамерени лица от неправомерното използване на устройството! Всичко свързано с това устройство и със приложената статия е с учебна и експериментална цел. Използвате на ваша отговорност!

 

Насищане на платката

Коментари 

 
0 #5 azips80 2014-12-02 03:16
Hi
Starter because I have a question.
Was produced by purchasing the product.
Just when can I use it?
Purchase -> assembly - > next job?
Please answer .
Цитиране
 
 
0 #4 cyberpunx 2014-03-17 15:08
Delighted with the new board just misunderstood that it wouls be built and programmed for the extra cost. but no doubt will get it sorted out .
guy has done alot of work with this so congrats from me. dont sweat the small stuff.
cheers again john
Цитиране
 
 
0 #3 cyberpunx 2014-03-12 01:15
Great work and effort well done m8
Цитиране
 
 
+2 #2 malami 2014-01-24 13:30
may ı clone transponder for car key with RFID emulator
Цитиране
 
 
+4 #1 MIHAI.OANCEA 2013-05-30 13:20
I am looking for a RFID cloner unit for 125 KHz technology.
I need a hand held unit (a standalone) unit which can read and clone: HID Prox, EM and Temic cards.

Do you have in your portfolio something like this or can you help me with a contact where I can find it?
Цитиране
 

Добави коментар

 

3D Светодиоден куб

RFID записвачка

Инт. Гласов контролер

7-сег. обратен брояч

Галерия (ДРУГИ)

Инфо Бюлетин:

Paypal Дарение:

Дарение за развитие на проектите.

Amount: