Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

RFID është e lehtë. Zbatimi i transponderit dhe lexuesit tuaj RFID

Etiketa EM4100 ruan 64 bit të dhëna, që do të thotë se dizajni duhet të përmbajë një regjistër zhvendosjeje 64-bitësh të përbërë nga tetë regjistra 8-bit 74HC165. Regjistri rivendoset pas çdo 64 ndërrimi për të rivendosur të dhënat dhe për të filluar nga e para. Të dhënat në hyrjet e regjistrit janë si më poshtë:
  • Modeli i kohës: nëntë njësi
  • ID-ja e prodhuesit/versionit: 2 blloqe me 5 bit, nga të cilët 4 bit janë të dhëna dhe biti i 5-të është barazi
  • Identifikuesi unik: 8 blloqe me 5 bit, nga të cilët 4 bit janë të dhëna dhe i pesti është barazi
  • Shuma kontrolluese: 4 bit barazie të numëruara sipas kolonave
  • Biti i ndalimit: "0"

Edhe etiketat e koduara janë të prekshme ndaj shumë sulmeve. Gjithashtu po bëhet më e lehtë për të imituar etiketat në telefonat inteligjentë me NFC (të cilët zakonisht funksionojnë në 13,56 MHz). Thjesht shkruani saktë aplikacionin e modulimit të fushës dhe mund të bëni çfarë të doni.

Si justifikim standard, më lejoni t'ju kujtoj se autori (Dhe një përkthyes! - Shënim. përkth.) nuk merr asnjë përgjegjësi për pasojat e përdorimit të informacionit nga ky nen. Lexuesi duhet të jetë përgjegjës për të gjitha veprimet e tij.

Kornizë

Ndonjehere shumë me fat. Një rast i bukur nuk do të dëmtonte tani, kur prototipi është përfunduar dhe bordi i qarkut të printuar është porositur. Dhe pikërisht në këtë kohë Fleming mbaroi montimin dhe lëshoi ​​në treg makinën e prerjes me lazer OSAA PhotonSaw. Pas një viti pune në projekt, lazeri është gati të presë pjesët e para. Flemming dhe Rune bëjnë rregullimet përfundimtare dhe zëvendësojnë kapakun e aluminit të kabinetit të lazerit. Mund ta imagjinoni sa të lumtur ishim të gjithë kur pamë që kjo gjë funksiononte.

Me makinën në punë, ne ishim në gjendje të testonim projektin tonë në jetën reale. Strehimi për etiketën tonë RFID është bërë nga pleksiglas 2 mm. Ky korpus është objekti i parë i bërë në PhotonSaw, po!

Lindi ideja për të vendosur spiralen në pjesën e jashtme të kasës. Në fillim u vendos të përdorej gjysma e lartësisë së bykut, por kjo nuk funksionoi në praktikë (kështu nuk përdoren vrimat shtesë në anët e gjata). Spiralja përshtatet në mënyrë të përkryer rreth perimetrit të të gjithë kutisë, megjithëse kisha dyshime nëse mbështjellja drejtkëndore (105x55 mm) do të ishte shumë e madhe për bashkimin normal elektromagnetik.

Spiralja e provës është mbështjellë, pa asnjë llogaritje, me tel 0,4 mm në 66 rrotullime. Dhe, padyshim, ne ishim përsëri me fat, sepse spiralja doli saktësisht siç duhej, me një induktivitet prej 645 uH, me një etiketë të lidhur, duke dhënë një frekuencë rezonante prej 125.2 kHz. Një test i lexuesit të derës tregoi se prototipi funksionoi mirë me këtë spirale.

Me spirale në pjesën e jashtme të kasës, trashësia e kësaj të fundit mund të zvogëlohet. Trashësia e brendshme tani varet vetëm nga lartësia e pjesëve në tabelë, dhe duke marrë parasysh trashësinë e tabelës duhet të jetë rreth 6 mm. Përveç kësaj, do të ishte mirë të shtoni gdhendje. Flemming sugjeroi rrumbullakimin e anëve të kasës për arsye estetike dhe ergonomike. Një trup i lakuar do të mbrojë më mirë anët e spirales, sepse aty ku nuk ka shumë tension, mbështjelljet e telit duan të zvarriten.

PhotonSaw nuk është ende në nivelin e duhur: gdhendja në kapakun e sipërm është hequr në mënyrë të konsiderueshme. Është e nevojshme të finalizohet përpara se të bëhet versioni përfundimtar i çështjes. Konturet e lakuara gjithashtu i nënshtroheshin një gabimi llogaritjeje në softuer, pasi rrezja nuk u kthye në pozicionin e saj fillestar pasi kalonte nëpër një shteg të mbyllur. Por gjithsesi, kthesat duken vërtet të lëmuara.

Asambleja e PCB-së

Bordi i porositur mbërriti:

Asambleja nuk ishte shumë e vështirë. Pasta e saldimit u aplikua në tabelën e stenciluar, të gjitha detajet u vendosën dhe më pas u ngjitën në një furrë të bërë vetë.

Nëpërmjet kapacitetit ndarës (47 pF kanë një rezistencë prej afërsisht 27 kOhm në një frekuencë prej 125 kHz) dhe diodave mbrojtëse, rryma rrjedh në autobusët e energjisë. Energjia që vjen nga spiralja është e mjaftueshme për të ruajtur tensionin e furnizimit prej rreth 1 V. Rryma mund të arrijë 250-500 μA. Çuditërisht, çipat 74HC duket se punojnë me këtë furnizim me energji elektrike. Fatkeqësisht, nën një presion të tillë ndodhin gjëra të çuditshme. 74HC-të kanë një qark të brendshëm të rivendosjes dhe duhet të siguroheni që funksionon. Vini re se fikja e diodave mbrojtëse nuk ndihmon. Në hyrjet e mikroqarqeve ka dioda mbrojtëse të brendshme, të cilat në këtë rast hapen dhe bëjnë të njëjtën punë.

Rivendosja e energjisë aktivizohet vetëm nëse voltazhi i furnizimit me energji bie nën një nivel të caktuar për një periudhë të caktuar kohe. Nëse voltazhi mbetet shumë i lartë, atëherë logjika e brendshme mund të ngatërrohet sepse disa pjesë të tij mund të jenë në një gjendje të papërcaktuar ndërsa të tjerat funksionojnë siç duhet. Kërkohet një rivendosje e brendshme për të vendosur të gjithë çipat në një gjendje të qëndrueshme. Kështu, qarku do të funksionojë në mënyrë të çrregullt me ​​një tension shumë të ulët të furnizimit.

Janë vërejtur simptomat e mëposhtme: etiketa funksionon për një kohë, ndërsa dërgon të dhënat e sakta. Nëse spiralja hiqet nga lexuesi dhe vendoset përsëri, mund të vini bast nëse etiketa do të fiket. Ndonjëherë funksionon, ndonjëherë jo. Fikja e PLL përkeqëson situatën. Konsumi i ulët i energjisë bën që lexuesi të marrë herë pas here të dhëna nga një etiketë e çaktivizuar. Kjo është ajo që do të thotë "sistem efikas energjetik".

Ekzistojnë dy zgjidhje: 1) zvogëloni kondensatorin në qarkun e rikuperimit të orës në 15 pF dhe 2) shtoni një rezistencë 22-100 kΩ midis fuqisë dhe tokës për të shkarkuar energjinë e tepërt. Metoda e dytë çon në një rritje të rrjedhjeve gjatë funksionimit dhe nuk kërkohet me të vërtetë kur zvogëlohet kapaciteti i kondensatorit. Sidoqoftë, ai ofrohet si opsion, dhe është akoma më i mirë se gjendja e papërcaktuar e çipave.

Modulimi me rrymë ose tension

Modulatori solli një pjesë të re të një dhimbje koke. Modulimi u zhduk plotësisht kur spiralja u vendos në një distancë të caktuar nga lexuesi. Mund të ndodhë gjithashtu kur lëvizni spiralen drejt ose larg lexuesit.

Arsyeja doli të ishte në qarkun e modulatorit. MOSFET mbyllin spiralen ndaj një rezistence të një rezistence të caktuar. Sidoqoftë, nëse tërheqja e fuqisë nga lak është e lartë, rezistenca e modulatorit është shumë më e lartë se rezistenca e qarqeve të furnizimit. Kjo çon në faktin se thellësia e modulimit varet nga rryma e konsumuar, dhe kjo nuk është shumë e mirë. Situata u përkeqësua nga zgjedhja e një diode zener kufizuese me një tension më të ulët se në prototipin.

U vendos që modulatori të kalojë nga modulimi i tensionit në modulimin aktual. Për mënyrën e parë, rezistenca ishte në qarkun e kullimit, dhe tani ajo është e lidhur midis burimit dhe tokës. Tensioni i burimit të portës do të bjerë në këtë rezistencë derisa një vlerë të mbetet pak mbi pragun e hapjes së tranzitorit (0,9-1,1 V), gjë që do ta vendosë tranzitorin në modalitetin linear. Tani rryma përmes tranzistorit do të jetë e qëndrueshme, pavarësisht nga tensioni i kullimit.

Testimi i prototipit ka treguar se modulimi aktual funksionon shumë mirë. Lexuesi i lirë pa emër nuk dështon më (në rregull, ndoshta një herë në njëqind apo më shumë). Mund të supozojmë se ky ndryshim do të funksionojë mrekullisht për lexuesit e tjerë, dhe etiketa tani ndoshta do të jetë në gjendje të punojë në shumicën e tyre.

Versioni i përfunduar 1

Ju mund të shihni ndryshimet e bëra në PCB. Nuk kisha një kondensator SMD 15 pF, më duhej të bashkoja një të rregullt me ​​këmbë. Modulatori është i tejmbushur me rezistorë shtesë në burimet e transistorëve. Përgjithësisht i pranueshëm për versionin e parë.

(fotot mund të klikohen)





Video demonstrim

konkluzioni

Ju mund të mendoni se ky projekt, i ndërtuar mbi logjikën 7400, mund t'i atribuohet qarkut retro, por kjo nuk është plotësisht e vërtetë. Së pari, familja moderne 74HC nuk është aq e vjetër. Së dyti, skemat me fuqi të ulët janë gjithmonë të rëndësishme. Së treti, çipat me portë të vetme (siç është këmbëza e përdorur Schmitt) përdoren shpesh në dizajnet moderne. Shpesh harrohet se zhvillimi i teknologjisë nuk ndalet as për familjet e vjetra të mikroqarqeve. Ata thjesht u bënë më pak të dukshëm në sfondin e diversitetit të përgjithshëm.

Pjesa analoge doli të ishte më e vështirë për t'u zhvilluar sesa pjesa dixhitale. Pjesërisht për shkak të mungesës së specifikimeve, por kryesisht për shkak të kompromiseve të shumta që kërkohen për të përputhur parametrat dhe efektet anësore të paparashikuara. Modelet dixhitale kanë relativisht pak opsione, ndërsa modelet analoge zakonisht kërkojnë një ekuilibër midis kritereve të ndryshme (dhe shpesh të kundërta).

Më duhet të rrëfej se çipat 74HC janë bërë shumë, shumë mirë. Zhvilluesit e dinin se çfarë po bënin dhe arritën konsum shumë të ulët të energjisë. Në fillim kisha disa dyshime nëse etiketa do të kishte fuqi pasive, por pas leximit të specifikimeve ishte vetëm një çështje e dizajnit të duhur të qarkut. Edhe pse, ka ende vend për optimizimin e pjesëve të ndryshme të etiketës.

Tani le të shohim se si funksionon ky projekt në konkursin 2012 7400. Dorëzimi i aplikimeve për konkurs përfundon më 31 nëntor. I urojmë suksese autorit! - Shënim. përkth.

Etiketa:

  • RFID
  • Konkursi 7400
  • mbiinxhinierimi
  • logjikës
  • grabujë kudo
Shto etiketa

Në një moment, u mërzita përsëri dhe mendova se gjeta një arsye të mirë për të blerë një lexues letrash. Koncepti ishte si më poshtë: ne e ngjisim kartën në fund të laptopit dhe e vendosim lexuesin në vendin ku zakonisht ngarkohet kompjuteri.

Rezultati: kur e vendosim laptopin në "karikim", priza me karikuesin e tij ndizet automatikisht. Dhe pjesën tjetër të kohës, priza, natyrisht, është e fikur. Jo për të thënë se është veçanërisht e dobishme, por - argëtuese.

Por, si zakonisht, diçka shkoi keq. Kjo do të thotë, në vend të punës shokuese në fushën e prizave, për disa arsye, para së gjithash mësova të zbuloja se sa udhëtime kishin mbetur në biletën time të metrosë lokale.

Për të kuptuar: ky lexues nuk është një pajisje e përfunduar, por një pajisje periferike për një kontrollues ose kompjuter. Për këtë arsye, do të duhet disa përpjekje për t'u përdorur. Nuk ka receta të gatshme "jashtë kutisë", por gjithçka tjetër varet nga imagjinata dhe aftësitë.

Çfarë bëjnë ata zakonisht? Më shpesh - bravë me hapjen e kartës, gjurmimin e kohës, sistemin e kontrollit të hyrjes për kafshët shtëpiake (pranimi për të ushqyer, për shembull).

Për eksperimente, zgjodha një lexues të lirë dhe pak a shumë universal. RFID në emër të kësaj gjëje nënkupton teknologjinë e identifikimit të radios, domethënë nuk do të thotë asgjë konkretisht. Por nga specifikimet rezulton se copa e hekurit është e përputhshme me kartat e zakonshme RFID me protokollin MIFARE.

Me shumë mundësi, ju jeni takuar vazhdimisht me karta të tilla. Më shpesh - në formën e një leje zyre. Një shembull tjetër i mrekullueshëm janë biletat e metrosë pa kontakt.

Parimi bazë i funksionimit është mjaft i thjeshtë për t'u kuptuar. Karta dhe lexuesi kanë antena, ndërsa sinjali i lexuesit (esenca e fushës elektromagnetike) shërben njëkohësisht si burim energjie për kartën. ato. si për sa i përket energjisë ashtu edhe për transferimin e të dhënave, kjo është shumë e ngjashme me karikimin me valë që është bërë super popullor.

Vetë kartat, në varësi të modifikimit, mund të bartin nga disa dhjetëra bajt në disa kilobajt të dhëna (duke përfshirë një numër serik unik). Gjithashtu, në varësi të modifikimit, karta mund të pajiset me mbrojtje kriptografike të informacionit.

Kishte dy krehër në komplet, por unë tashmë e bashkova njërën (këndore), më fal. Prandaj, nuk ka asnjë lloj dërrase pa krehër

Ky komplet përfshin një lexues, një krehër për prototipimin e thjeshtë dhe madje edhe montimin në një "pllakë amtare" dhe dy identifikues: një kartë MIFARE 1K dhe një çelës çelësash me të njëjtat aftësi. Kjo do të thotë, është mjaft e mjaftueshme për eksperimente.

.

.

.

Tabela e lexuesve, siç mund ta shihni, duket shumë e rregullt. Dhe, me lehtësi, pas instalimit të krehësit të qosheve, dimensionet e pajisjes nuk rriten, pasi krehja në të vërtetë përkon në lartësi me elementin më të lartë në tabelë.

Me bateri AAA

ato. ju nuk mund ta torturoni veten me një kompromis midis komoditetit dhe shkathtësisë (krehër) dhe kursimit të hapësirës për ngulitje (bashkim direkt i telave).

Ndër të tjera, bordi ka edhe një LED të kuq, i cili, mjerisht, është plotësisht joinformativ. Në fund të fundit është se digjet edhe kur rryma është e ndërprerë - padyshim, ka nivele të mjaftueshme në ndërfaqen SPI. Dhe ai nuk u përgjigjet kartave në asnjë mënyrë.

Me një fjalë, ndizet kur lexuesi lidhet disi me Arduino, gjë që nuk garanton performancën e tij.

Sa i përket gamës së përgjigjes, subjektivisht, pragu është në një distancë prej 2 cm nga sipërfaqja e tabelës. Brenda 2 - 2,5 cm - zona e funksionimit të pasigurt.

Karakteristikat (nga shitësi):

Tensioni: 3.3 V

Konsumi aktual në gjendje aktive: 13-26 mA

Konsumi i rrymës në pritje: 10-13 mA

Rryma e gjumit: më pak se 80uA

Konsumi maksimal: më pak se 30 mA

Frekuenca e funksionimit: 13.56 MHz

Llojet e kartës së mbështetur: MIFARE S50, MIFARE S70, MIFARE UltraLight, MIFARE Pro, MIFARE DESfire

Ndërfaqja: SPI

Përmasat: 40x60 mm

Nga sa më sipër shihet se jam dalluar dy herë. Së pari, nuk e shikova tensionin e furnizimit. Dhe 3.3V, meqë ra fjala, do të thotë se mënyra më e lehtë për të përdorur këtë tabelë është me Arduino Uno, Mega dhe borde të tjera (ose të ngjashme) të pajisura me rregullatorë të tensionit dhe një dalje 3.3 V. Për fat të mirë, konsumi maksimal aktual nuk shkon përtej aftësive të platformës.

Përndryshe, duhet të përdorni ose një furnizim të vetëm me energji 3.3 V, ose një rregullator / stabilizues / konvertues të tensionit shtesë.

Së dyti, ndërfaqja SPI kërkon 5 (!) tela për t'u lidhur. ato. gjithsej lexuesit i përshtatet një lak prej 7 përçuesve dhe kjo është mjaft e kotë. Për të kursyer para, kishte kuptim të fokusoheshim në I2C, por ku jam unë dhe ku është kjo kuptim ?!

Lidhje
Do të doja ta ndaja lidhjen në të butë dhe të fortë, por gjithçka është e ndërthurur aq ngushtë - dhe rezultoi në një problem jo shumë interesant.

Me një fjalë, të gjithë e dinë për RC522. Por për disa arsye, askush nuk pyet pse në readme bashkangjitur bibliotekës dhe në pjatë në një nga shembujt e saj ka "pika" krejtësisht të ndryshme për lidhjen e lexuesit.

Mendoj se kjo është vetëm një nga arsyet e problemeve të përjetshme me këtë bibliotekë. Arsyeja e dytë është se lidhja për Arduino Uno dhe Mega është bërë me kunja të ndryshme. Kjo është për shkak të veçantisë së platformave.

Së fundi, arsyeja e tretë është se dy kunja (SS dhe RST) lejojnë lidhje arbitrare dhe janë konfiguruar në kod. Në të njëjtën kohë, si parazgjedhje, konfigurimi për Arduino Uno është i mbushur në kodin e shembullit, dhe nëse keni Mega dhe keni lidhur agjitacionin nga readme ose pllaka në fillim të shembullit, atëherë, sigurisht, ju do të mungojë.

Por truku është se arsyeja e tretë është goxha e dukshme, dhe pak a shumë e anashkala duke vendosur kunjat e mia menjëherë, sepse kisha në dorë një tabelë Arduino Mega. Prandaj, meqë ra fjala, më shpëtoi telashi i dytë.

Por e para - lidhja e kunjave SPI më mundoi mjaftueshëm. Nuk mund ta imagjinoja gjithashtu që personi që bëri një bibliotekë të suksesshme mund të ngatërrohej kaq shumë në lidhjen banale të tre telave.

Me fjalë të tjera, lidhja e opsionit të parë dhe as të dytë të specifikuar në përshkrimin e bibliotekës nuk ndihmoi. Në fillim mendova se kisha një "dërrasë të vdekur". Prandaj, megjithë kohën e vonuar, u tërhoqa dhe bashkova krehrin me të dytin (isha kursimtar dhe bleva tre menjëherë). Rezultati doli të ishte i njëjtë, pavarësisht nga fakti se kontrollova vazhdimisht lidhjen sipas "pinouts" në dorë.

As mos më pyet pse nuk shkova në Arduino.cc për të parë se si është lidhur SPI në Mega. Mendoj se ishte një lloj turbullimi.

Por kërkova në google dhe, që me pak fjalë (dhe jo si unë) përshkruante blerjen dhe lidhjen e saj me bibliotekën, siç e kuptoj unë, nga shokët kinezë. Duart e mia tashmë po më binin dhe nuk mund të flija në këtë gjendje, kështu që i lejova vetes një eksperiment tjetër me një pinout të sapo gjetur dhe një bibliotekë.

Dhe të dy bordet funksionuan.

Për të pastruar ndërgjegjen time - shkarkova një shembull me një bibliotekë "probleme" dhe doli të funksiononte gjithashtu.

Këto janë kartat që unë e mundova lexuesin. Nga e majta në të djathtë: një kartë nga grupi, një kartë me shkronjën N, një biletë metroje MIFARE UltraLight, një kartë e Hekurudhave Ruse

Dhe kjo është se si duket një deponim i përmbajtjes dhe, në përgjithësi, njohja e kartave me bibliotekën RFID dhe shembullin e saj DumpInfo

Përmbledhja e torturës: pinout nga shoku i përmendur përputhet dhe, çuditërisht, përputhet me pinout në readme të bibliotekës RFID. Duke marrë parasysh këtë të fundit, mund të supozoj se ose ngatërrova kunjat natën dhe të gjitha fatkeqësitë e mia filluan me këtë, ose biblioteka vendase kineze inicializon disi me dinakëri lexuesin, pas së cilës fillon të funksionojë.

Si përfundim, pika e saktë për bibliotekën kineze dhe Mega, me të cilën e lidha:

Mega RC522
VCC 3.3 V
GND GND
Rivendos RST

50 MISO
51 MOSI
52 SCK
53 SKK

Dhe për Uno (nuk e testova):

Uno RC522
VCC 3.3 V
GND GND
5 RST

12 MISO
11 MOSI
13 SCK
10 SKK

Së bashku me motrën e madhe

.

.

Si rezultat i testeve të thjeshta, të cilat unë megjithatë i kam kryer, doli gjithashtu që lexuesi zakonisht shkruan (këtu është një lojë e tillë me fjalë) kartat MIFARE 1K nga ato që ishin përfshirë me të.

Karakteristika e dytë është se kjo gjë reagon në mënyrë adekuate nëse i sillen disa letra në të njëjtën kohë. Unë ofrova dy letra, përsëri, nga ato që ishin përfshirë. Në këtë rast, shembulli DumpInfo nga biblioteka RFID nxjerr përmbajtjen e të dy kartave sipas renditjes. ato. së pari - përmbajtja e një karte, dhe pas saj - e dyta.

Dhe damë, dhe shko
Pra, ne u lidhëm, admiruam deponinë e përmbajtjes së kujtesës së kartave MIFARE 1K. Ç'pritet më tej? Dhe pastaj u bëra paksa shumë dembel për t'u marrë me prizën, dhe m'u kujtua se kartat e metrosë, me sa duket, funksionojnë sipas të njëjtit protokoll.

Shkova, mora të miat, e vesha, admirova përmbajtjen e saj. Siç u premtua: MIFARE UltraLight, 64 bajt memorie dhe nuk është shumë e qartë se ku janë udhëtimet, ku është periudha e vlefshmërisë, mirë, nuk është fare e qartë.

Googling për përdorimin e Arduino me këto karta nuk doli me ndonjë gjë veçanërisht të dobishme. Më shpesh, kartat e metrosë, siç doli, përdoren si etiketa NFC ultra të lira (d.m.th. falas) në të gjitha llojet e sistemeve të bëra në shtëpi si bravat, ekzekutimi i skriptit dhe gjëra të tjera, ku mjafton të dihet numri serial. të kartës për identifikim. Por për disa arsye nuk gjeta biblioteka dhe zgjidhje të gatshme për shfaqjen e informacionit rreth udhëtimeve: ose doja të flija ashtu, ose ato nuk ekzistojnë vërtet (shih sindromën "Elusive Joe").

Por gjeta një tekst të mrekullueshëm dhe shumë romantik të Alexander "Dark Simpson" Simonov nën titullin "", botuar, me sa duket, në një nga numrat e Hacker. Pavarësisht natyrës kurioze të tekstit, ai përmban shumë informacione të dobishme në lidhje me strukturën e ruajtjes së të dhënave, duke përfshirë biletat që më interesojnë.

Pjesa e rëndësishme e biletës - numri - kontrollohet vizualisht

Kështu që të nesërmen u përpoqa të kapërceja neverinë time ndaj HEX dhe shkova të hetoja. Këtu është një hale biletash që mora duke përdorur bibliotekën RFID:

UID e kartës: 04 6F 25 62 04 33 82
Lloji PICC: MIFARE Ultralight ose Ultralight C

Faqe 0 1 2 3
0 04 6F 25 C6
1 62 04 33 82
2 D7 48 F0 00
3 00 07 FF FC
4 45 DA 21 06
5 D0 E5 3D 00
6 1F E8 00 00
7 1F E8 00 00
8 1F 8F 5A 00
9 40 19 2E D2
10 19 91 59 7C
11 1F AB 91 C8
12 1F 8F 5A 00
13 40 19 2E D2
14 19 91 59 7C
15 1F AB 91 C8

Këtu Card UID është një identifikues unik i kartës (në thelb një numër serial), dhe pjesa tjetër është 16 faqe memorie, secila prej të cilave përmban 4 bajt. Së bashku - 64 bajt.

Nga leximi i tekstit për biletat e metrosë, ai vuri në dukje pikat më të dobishme:

1) Numri i biletës (i cili është i shtypur në të) është i koduar në 32 bit, duke filluar nga biti 21 në faqen 4: 10 6D 0E 53;

2) Data e lëshimit të biletës në ditë që nga 01/01/1992 - dy bajtët e parë të faqes 8: 1F 8F;

3) Vlefshmëria në ditë - bajt i tretë në faqen 8: 5A.

4) Së fundi, numri i udhëtimeve të mbetura është bajt i dytë në faqen 9:19.

Tashmë ishte e mundur të punohej me këtë.

Unë u hodha pak në shembullin DumpInfo nga biblioteka RFID, në kodin e vet, në mënyrë që të kuptoj se cilat funksione janë përgjegjëse për çfarë dhe si mund të jenë të dobishme, në forumet Arduino për të parë zbatimin e llogaritjes së datës (në përgjithësi , mund ta shikoni në çdo gjuhë, por ishte më e lehtë për mua të kërkoja më afër platformës së synuar).

Si rezultat, lindi një përbindësh. Kjo do të thotë, skica është prerë nga mbetjet, në disa vende rezultati përshtatet me përgjigjen, por në përgjithësi, gjithçka pak a shumë korrespondon me realitetin. Prandaj, nuk ka asgjë për të qëlluar në një pianisti që luan aq mirë sa mundet. Atje, nga rruga, ekziston edhe trajtimi i gabimeve themelore: skica do të paralajmërojë për një kartë të pambështetur ose për pamundësinë e leximit.

#përfshi #përfshi #define SS_PIN 53 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); // objekt MFRC522 i panënshkruar gjatë uidDec, uidDecTemp; // për të shfaqur numrin e kartës në format dhjetore bajt bCounter, readBit; Numri i biletës së gjatë të panënshkruar; void setup() ( Serial.begin(9600); SPI.begin(); // Inicializimi i SPI mfrc522.PCD_Init(); // Inicializimi MFRC522 Serial.println("Në pritje për kartën..."); ) void loop( ) ( // Duke kërkuar për një kartë të re nëse (! mfrc522.PICC_IsNewCardPresent()) (kthim; ) // Përzgjedhja e një karte nëse (! mfrc522.PICC_ReadCardSerial()) (kthim; ) uidDec = 0; // Lëshimi i numrit serik i kartës Serial.print ("Card UID: "); për (byte i = 0; i< mfrc522.uid.size; i++) { // Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "); // Serial.print(mfrc522.uid.uidByte[i], HEX); uidDecTemp=mfrc522.uid.uidByte[i]; uidDec=uidDec*256+uidDecTemp; } Serial.println(uidDec); Serial.println(); // Выдача типа карты byte piccType = mfrc522.PICC_GetType(mfrc522.uid.sak); // запрос типа Serial.print("Card type: "); Serial.println(mfrc522.PICC_GetTypeName(piccType)); // трансляция типа в читаемый вид if (piccType != MFRC522::PICC_TYPE_MIFARE_UL) { // если не билетная карта Serial.print("Not a valid card: "); // так и говорим Serial.println(piccType); // Halt PICC mfrc522.PICC_HaltA(); // остановка чипа return; } // сюда мы приедем, если чип правильный byte status; byte byteCount; byte buffer; // длина массива (16 байт + 2 байта контрольная сумма) byte pages={4, 8}; // страницы с данными byte pageByte; // счетчик байтов страницы byteCount = sizeof(buffer); byte bCount=0; for (byte i=0; i<2; i++) { // начинаем читать страницы status = mfrc522.MIFARE_Read(pages[i], buffer, &byteCount); if (status != MFRC522::STATUS_OK) { Serial.print("Read error: "); Serial.println(mfrc522.GetStatusCodeName(status));} else { if (pages[i] == 4) { bCounter = 0; // 32-битный счетчик для номера // биты 0-3 for (bCount=0; bCount<4; bCount++) { readBit = bitRead(buffer, (bCount+4)); setBitsForGood(readBit); } // биты 4 - 27 for (pageByte=5; pageByte >2; pageByte--) ( për (bCount=0; bCount<8; bCount++) { readBit = bitRead(buffer, bCount); setBitsForGood(readBit); } } // биты 28-31 for (bCount=0; bCount<4; bCount++) { readBit = bitRead(buffer, bCount); setBitsForGood(readBit); } Serial.print("Ticket number: "); Serial.println(ticketNumber, DEC); } if (pages[i] == 8) { // читаем дату выдачи Serial.print("Issued: "); unsigned int issueDate = buffer * 256 + buffer; // количество дней с 01.01.1992 в десятичном формате, 256 - сдвиг на 8 бит printIssueDate(issueDate); Serial.print("Good for (days): "); // срок действия Serial.print(buffer, DEC); Serial.println(); Serial.print("Trip reminder: "); // количество оставшихся поездок Serial.print(buffer, DEC); Serial.println(); } } } // Halt PICC mfrc522.PICC_HaltA(); } void printIssueDate(unsigned int incoming) { boolean isLeap = true; // признак високосного года int days={0,31,59,90,120,151,181,212,243,273,304,334}; // последний по порядку день месяца для обычного года byte dayOfMonth, monthCounter; unsigned int yearCount; incoming = incoming+1; // подогнал под ответ, но возможно это как раз необходимая коррекция, потому что начало отсчета - 01.01.1992, а не 00.01.1992 for (yearCount = 1992; incoming >366; yearCount++) ( // numëroni vitin dhe numrin e ditëve që nga lëshimi i biletës nëse ((viti Numri % 4 == 0 && vitiNumri % 100 != 0) || vitiNumri % 400 == 0) ( hyrje = hyrje - 366; isLeap = e vërtetë; ) else ( hyrëse = hyrëse - 365; isLeap = false; ) ) për (muajCounter = 0; hyrje > ditë; muajNumërues++) ( // merrni numrin e muajit ) // numëroni ditën e muajit nëse (isLeap == e vërtetë) ( / / nëse është një vit i brishtë nëse (ditë>31) ( // nëse nuk është muaji i parë, atëherë shtoni njësi në ditën e fundit të muajit dayOfMonth = në hyrje - (ditë+ 1) ;) tjetër (dayOfMonth = hyrje - (ditë); // nëse i pari - mos shtoni asgjë sepse zhvendosja fillon nga shkurti) ) tjetër (dayOfMonth = hyrje - (ditë); // nëse nuk është vit i brishtë) Serial.print (dita e muajit); Serial.print("."); Serial.print(muajCounter); Serial.print("."); Serial.print(viti numërimi); Seriali.println(); ) void setBitsForGood(byte daBeat) ( if (daBeat == 1) ( bitSet(ticketNumber, bCounter); bCounter=bCounter+1; ) tjetër (bitClear(ticketNumber, bCounter); bCounter=bCounter+1; )

Çfarë më jep kjo skicë? Epo, së pari, një stërvitje e vogël e trurit - e dini, më duhej të mendoja kur kisha të bëja me lexuesin dhe kodin. Së dyti, gjithmonë mund të zbuloj sa udhëtime kanë mbetur dhe kur mbaron karta. Duke pasur parasysh faktin që nuk kam NFC në smartphone tim, rezulton mjaft i përshtatshëm.

Rezultati i përbindëshit

Natyrisht, në këtë rast nuk po flasim as për të bërë një “kopje” të biletës. Ky është një funksion ekskluzivisht informues, duke dublikuar terminalin në hollin e metrosë.

Në përgjithësi, pas një suksesi të tillë, u bë e mundur të merrej përsipër detyrën e dytë të propozuar, e cila, teorikisht, duhej të ishte e para për shkak të zbatimit të thjeshtë.

Pra, një prizë që ndizet kur nevojitet. Këtu, karta (çdo kartë e mbështetur nga lexuesi dhe e përshtatshme për vendosje në pajisjen e synuar) përdoret vetëm si një kalim, domethënë vetëm numri i saj serial është me interes.

Logjika është e thjeshtë: nëse lexuesi sheh një kartë me një numër të caktuar, ajo ndez prizën. Nëse nuk e sheh, e fiket.

Përbindëshi i prizës

#përfshi #përfshi #define SS_PIN 53 #define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); // Krijo shembullin MFRC522. i panënshkruar gjatë uidDec, uidDecTemp; #përfshi RCSwitch mySwitch = RCSwitch(); Ndezja boolean = false; karta booleanLexuar = false; void setup() ( Serial.begin(9600); // Inicializoni komunikimet serike me PC SPI.begin(); // Init bus SPI mfrc522.PCD_Init(); // Init MFRC522 card mySwitch.enableTransmit(8); Serial .println("Në pritje të kartës..."); ) void loop() (statusi i bajtit; numri i bajtit; buferi i bajtit; // gjatësia e grupit (16 bajt + 2 bajte kontrolli) byteCount = sizeof(buffer); uidDec = 0 ; status = mfrc522.PICC_RequestA(buffer, &byteCount); nëse (mfrc522.PICC_ReadCardSerial()) (për (bajt i = 0; i< mfrc522.uid.size; i++) { uidDecTemp=mfrc522.uid.uidByte[i]; uidDec=uidDec*256+uidDecTemp; } if ((uidDec==2218415941) && (switchOn == false)) { mySwitch.sendTriState("00110000F000"); switchOn = true; // Serial.println("Switched On"); } mfrc522.PICC_ReadCardSerial(); } else { if (switchOn == true) { mySwitch.sendTriState("001100000000"); // Serial.println("Switched Off"); switchOn = false; } } }

Në mënyrë të ngjashme, duke përdorur hartën si shkas, mund të kryeni skenarë të ndryshëm të automatizimit të shtëpisë. Për shembull, vendosni një kartë në një libër elektronik dhe vendosni një lexues në tryezën e shtratit.

Kur e vendosim librin në kabinet, shtëpia mendon se kemi vendosur të shkojmë në mbretërinë e Morfeut dhe fiket dritat. Dhe nëse marrim një libër nga guri i poshtëm, atëherë supozohet se duam të lexojmë, dhe më pas, përkundrazi, drita e sfondit ndizet në mënyrë që të shihet boja elektronike dhe në mënyrë që të mos na thyejnë sytë.

Kështu funksionon përbindëshi i prizës

Për ta përmbledhur: i lirë, i thjeshtë, mjaft i përshtatshëm dhe stimulon imagjinatën.

Ps. Jam i sigurt që mund të bësh më mirë dhe se nuk kuptoj asgjë nga Arduino dhe programimi.

Të gjitha llojet e lidhjeve
I pëlqeu rishikimi +67 +173

Etiketa EM4100 ruan 64 bit të dhëna, që do të thotë se dizajni duhet të përmbajë një regjistër zhvendosjeje 64-bitësh të përbërë nga tetë regjistra 8-bit 74HC165. Regjistri rivendoset pas çdo 64 ndërrimi për të rivendosur të dhënat dhe për të filluar nga e para. Të dhënat në hyrjet e regjistrit janë si më poshtë:
  • Modeli i kohës: nëntë njësi
  • ID-ja e prodhuesit/versionit: 2 blloqe me 5 bit, nga të cilët 4 bit janë të dhëna dhe biti i 5-të është barazi
  • Identifikuesi unik: 8 blloqe me 5 bit, nga të cilët 4 bit janë të dhëna dhe i pesti është barazi
  • Shuma kontrolluese: 4 bit barazie të numëruara sipas kolonave
  • Biti i ndalimit: "0"

Edhe etiketat e koduara janë të prekshme ndaj shumë sulmeve. Gjithashtu po bëhet më e lehtë për të imituar etiketat në telefonat inteligjentë me NFC (të cilët zakonisht funksionojnë në 13,56 MHz). Thjesht shkruani saktë aplikacionin e modulimit të fushës dhe mund të bëni çfarë të doni.

Si justifikim standard, më lejoni t'ju kujtoj se autori (Dhe një përkthyes! - Shënim. përkth.) nuk merr asnjë përgjegjësi për pasojat e përdorimit të informacionit nga ky nen. Lexuesi duhet të jetë përgjegjës për të gjitha veprimet e tij.

Kornizë

Ndonjehere shumë me fat. Një rast i bukur nuk do të dëmtonte tani, kur prototipi është përfunduar dhe bordi i qarkut të printuar është porositur. Dhe pikërisht në këtë kohë Fleming mbaroi montimin dhe lëshoi ​​në treg makinën e prerjes me lazer OSAA PhotonSaw. Pas një viti pune në projekt, lazeri është gati të presë pjesët e para. Flemming dhe Rune bëjnë rregullimet përfundimtare dhe zëvendësojnë kapakun e aluminit të kabinetit të lazerit. Mund ta imagjinoni sa të lumtur ishim të gjithë kur pamë që kjo gjë funksiononte.

Me makinën në punë, ne ishim në gjendje të testonim projektin tonë në jetën reale. Strehimi për etiketën tonë RFID është bërë nga pleksiglas 2 mm. Ky korpus është objekti i parë i bërë në PhotonSaw, po!

Lindi ideja për të vendosur spiralen në pjesën e jashtme të kasës. Në fillim u vendos të përdorej gjysma e lartësisë së bykut, por kjo nuk funksionoi në praktikë (kështu nuk përdoren vrimat shtesë në anët e gjata). Spiralja përshtatet në mënyrë të përkryer rreth perimetrit të të gjithë kutisë, megjithëse kisha dyshime nëse mbështjellja drejtkëndore (105x55 mm) do të ishte shumë e madhe për bashkimin normal elektromagnetik.

Spiralja e provës është mbështjellë, pa asnjë llogaritje, me tel 0,4 mm në 66 rrotullime. Dhe, padyshim, ne ishim përsëri me fat, sepse spiralja doli saktësisht siç duhej, me një induktivitet prej 645 uH, me një etiketë të lidhur, duke dhënë një frekuencë rezonante prej 125.2 kHz. Një test i lexuesit të derës tregoi se prototipi funksionoi mirë me këtë spirale.

Me spirale në pjesën e jashtme të kasës, trashësia e kësaj të fundit mund të zvogëlohet. Trashësia e brendshme tani varet vetëm nga lartësia e pjesëve në tabelë, dhe duke marrë parasysh trashësinë e tabelës duhet të jetë rreth 6 mm. Përveç kësaj, do të ishte mirë të shtoni gdhendje. Flemming sugjeroi rrumbullakimin e anëve të kasës për arsye estetike dhe ergonomike. Një trup i lakuar do të mbrojë më mirë anët e spirales, sepse aty ku nuk ka shumë tension, mbështjelljet e telit duan të zvarriten.

PhotonSaw nuk është ende në nivelin e duhur: gdhendja në kapakun e sipërm është hequr në mënyrë të konsiderueshme. Është e nevojshme të finalizohet përpara se të bëhet versioni përfundimtar i çështjes. Konturet e lakuara gjithashtu i nënshtroheshin një gabimi llogaritjeje në softuer, pasi rrezja nuk u kthye në pozicionin e saj fillestar pasi kalonte nëpër një shteg të mbyllur. Por gjithsesi, kthesat duken vërtet të lëmuara.

Asambleja e PCB-së

Bordi i porositur mbërriti:

Asambleja nuk ishte shumë e vështirë. Pasta e saldimit u aplikua në tabelën e stenciluar, të gjitha detajet u vendosën dhe më pas u ngjitën në një furrë të bërë vetë.

Nëpërmjet kapacitetit ndarës (47 pF kanë një rezistencë prej afërsisht 27 kOhm në një frekuencë prej 125 kHz) dhe diodave mbrojtëse, rryma rrjedh në autobusët e energjisë. Energjia që vjen nga spiralja është e mjaftueshme për të ruajtur tensionin e furnizimit prej rreth 1 V. Rryma mund të arrijë 250-500 μA. Çuditërisht, çipat 74HC duket se punojnë me këtë furnizim me energji elektrike. Fatkeqësisht, nën një presion të tillë ndodhin gjëra të çuditshme. 74HC-të kanë një qark të brendshëm të rivendosjes dhe duhet të siguroheni që funksionon. Vini re se fikja e diodave mbrojtëse nuk ndihmon. Në hyrjet e mikroqarqeve ka dioda mbrojtëse të brendshme, të cilat në këtë rast hapen dhe bëjnë të njëjtën punë.

Rivendosja e energjisë aktivizohet vetëm nëse voltazhi i furnizimit me energji bie nën një nivel të caktuar për një periudhë të caktuar kohe. Nëse voltazhi mbetet shumë i lartë, atëherë logjika e brendshme mund të ngatërrohet sepse disa pjesë të tij mund të jenë në një gjendje të papërcaktuar ndërsa të tjerat funksionojnë siç duhet. Kërkohet një rivendosje e brendshme për të vendosur të gjithë çipat në një gjendje të qëndrueshme. Kështu, qarku do të funksionojë në mënyrë të çrregullt me ​​një tension shumë të ulët të furnizimit.

Janë vërejtur simptomat e mëposhtme: etiketa funksionon për një kohë, ndërsa dërgon të dhënat e sakta. Nëse spiralja hiqet nga lexuesi dhe vendoset përsëri, mund të vini bast nëse etiketa do të fiket. Ndonjëherë funksionon, ndonjëherë jo. Fikja e PLL përkeqëson situatën. Konsumi i ulët i energjisë bën që lexuesi të marrë herë pas here të dhëna nga një etiketë e çaktivizuar. Kjo është ajo që do të thotë "sistem efikas energjetik".

Ekzistojnë dy zgjidhje: 1) zvogëloni kondensatorin në qarkun e rikuperimit të orës në 15 pF dhe 2) shtoni një rezistencë 22-100 kΩ midis fuqisë dhe tokës për të shkarkuar energjinë e tepërt. Metoda e dytë çon në një rritje të rrjedhjeve gjatë funksionimit dhe nuk kërkohet me të vërtetë kur zvogëlohet kapaciteti i kondensatorit. Sidoqoftë, ai ofrohet si opsion, dhe është akoma më i mirë se gjendja e papërcaktuar e çipave.

Modulimi me rrymë ose tension

Modulatori solli një pjesë të re të një dhimbje koke. Modulimi u zhduk plotësisht kur spiralja u vendos në një distancë të caktuar nga lexuesi. Mund të ndodhë gjithashtu kur lëvizni spiralen drejt ose larg lexuesit.

Arsyeja doli të ishte në qarkun e modulatorit. MOSFET mbyllin spiralen ndaj një rezistence të një rezistence të caktuar. Sidoqoftë, nëse tërheqja e fuqisë nga lak është e lartë, rezistenca e modulatorit është shumë më e lartë se rezistenca e qarqeve të furnizimit. Kjo çon në faktin se thellësia e modulimit varet nga rryma e konsumuar, dhe kjo nuk është shumë e mirë. Situata u përkeqësua nga zgjedhja e një diode zener kufizuese me një tension më të ulët se në prototipin.

U vendos që modulatori të kalojë nga modulimi i tensionit në modulimin aktual. Për mënyrën e parë, rezistenca ishte në qarkun e kullimit, dhe tani ajo është e lidhur midis burimit dhe tokës. Tensioni i burimit të portës do të bjerë në këtë rezistencë derisa një vlerë të mbetet pak mbi pragun e hapjes së tranzitorit (0,9-1,1 V), gjë që do ta vendosë tranzitorin në modalitetin linear. Tani rryma përmes tranzistorit do të jetë e qëndrueshme, pavarësisht nga tensioni i kullimit.

Testimi i prototipit ka treguar se modulimi aktual funksionon shumë mirë. Lexuesi i lirë pa emër nuk dështon më (në rregull, ndoshta një herë në njëqind apo më shumë). Mund të supozojmë se ky ndryshim do të funksionojë mrekullisht për lexuesit e tjerë, dhe etiketa tani ndoshta do të jetë në gjendje të punojë në shumicën e tyre.

Versioni i përfunduar 1

Ju mund të shihni ndryshimet e bëra në PCB. Nuk kisha një kondensator SMD 15 pF, më duhej të bashkoja një të rregullt me ​​këmbë. Modulatori është i tejmbushur me rezistorë shtesë në burimet e transistorëve. Përgjithësisht i pranueshëm për versionin e parë.

(fotot mund të klikohen)





Video demonstrim

konkluzioni

Ju mund të mendoni se ky projekt, i ndërtuar mbi logjikën 7400, mund t'i atribuohet qarkut retro, por kjo nuk është plotësisht e vërtetë. Së pari, familja moderne 74HC nuk është aq e vjetër. Së dyti, skemat me fuqi të ulët janë gjithmonë të rëndësishme. Së treti, çipat me portë të vetme (siç është këmbëza e përdorur Schmitt) përdoren shpesh në dizajnet moderne. Shpesh harrohet se zhvillimi i teknologjisë nuk ndalet as për familjet e vjetra të mikroqarqeve. Ata thjesht u bënë më pak të dukshëm në sfondin e diversitetit të përgjithshëm.

Pjesa analoge doli të ishte më e vështirë për t'u zhvilluar sesa pjesa dixhitale. Pjesërisht për shkak të mungesës së specifikimeve, por kryesisht për shkak të kompromiseve të shumta që kërkohen për të përputhur parametrat dhe efektet anësore të paparashikuara. Modelet dixhitale kanë relativisht pak opsione, ndërsa modelet analoge zakonisht kërkojnë një ekuilibër midis kritereve të ndryshme (dhe shpesh të kundërta).

Më duhet të rrëfej se çipat 74HC janë bërë shumë, shumë mirë. Zhvilluesit e dinin se çfarë po bënin dhe arritën konsum shumë të ulët të energjisë. Në fillim kisha disa dyshime nëse etiketa do të kishte fuqi pasive, por pas leximit të specifikimeve ishte vetëm një çështje e dizajnit të duhur të qarkut. Edhe pse, ka ende vend për optimizimin e pjesëve të ndryshme të etiketës.

Tani le të shohim se si funksionon ky projekt në konkursin 2012 7400. Dorëzimi i aplikimeve për konkurs përfundon më 31 nëntor. I urojmë suksese autorit! - Shënim. përkth.

Etiketa: Shtoni etiketa

Lexuesi RFID - kartat dhe çelësat
në mikrokontrolluesin ATtiny13

Burimi: www.serasidis.gr
Vasilis Serasidis

Përkthimi: Vadim porositur nga RadioLotsman

Kohët e fundit, projekte të ndryshme të bazuara në çelësat RFID të përdorur në sistemet e sigurisë, mbrojtjes dhe kontrollit të aksesit kanë fituar popullaritet të gjerë. Në disa ndërmarrje dhe organizata, sisteme të tilla, të plotësuara me softuer të specializuar, përdoren për regjistrimin e orarit të punës, regjistrimin e pasurive materiale, etj.

Çdo sistem i identifikimit të frekuencës radio (RFID) përbëhet nga një lexues (lexues, lexues ose pyetës) dhe një transponder (aka etiketë RFID, ndonjëherë përdoret edhe termi etiketë RFID). Në artikull, ne do të shqyrtojmë një pajisje të thjeshtë për leximin e çelësave RFID që mbështesin protokollin EM4100 dhe funksionojnë në një frekuencë prej 125 kHz. Ky lloj çelësi RFID mund të marrë formën e një fob çelësi ose një karte krediti (Figura më poshtë).

Komponenti kryesor i lexuesit është një mikrokontrollues Atmel AVR ATtiny13 , i cili lexon një numër unik identifikimi të çelësit 10-shifror dhe e transmeton atë në kodim ASCII mbi një ndërfaqe serike (UART) në 2400 bps në pajisjen Host. Me fjalë të tjera, lexuesi është një modul i veçantë i lidhur me procesorin kryesor ose mikrokontrolluesin e sistemit (Figura 2).

Diagrami skematik i lexuesit RFID është paraqitur në figurën më poshtë:

Konsideroni tiparet kryesore të skemës. Mikrokontrolluesi përdor një modulator të integruar PWM për të gjeneruar një valë katrore 125 kHz në daljen PB0. Nëse logi i daljes PB0. 0 (buza në rënie e pulsit), transistori T1 është në gjendje të mbyllur, dhe tensioni i furnizimit +5 V aplikohet në spiralen L1 përmes rezistencës R1. Buza në rritje në daljen PB0 (log. 1) hap transistorin T1, dhe dalja e sipërme e spirales sipas qarkut lidhet me tokën. Në këtë moment, spiralja lidhet paralelisht me kondensatorin C2, duke formuar një gjenerator LC (qark oshilues). Transistori ndërron 125,000 herë në sekondë (125 kHz).). Si rezultat, spiralja gjeneron një sinjal sinusoidal me një frekuencë prej 125 kHz

Moduli i lexuesit gjeneron një fushë elektromagnetike, energjia e së cilës përdoret për të fuqizuar çelësin RFID. Transferimi i energjisë midis çelësit RFID dhe lexuesit bazohet në parimin e funksionimit të një transformatori konvencional: dredha-dredha parësore e transformatorit krijon një EMF induksioni në të gjitha mbështjelljet e tjera. Për rastin tonë, mbështjellja kryesore është spiralja e lexuesit, dhe mbështjellja dytësore është spiralja e çelësit RFID. Elementet D1, C3 dhe R5 formojnë një demodulator sinjali të moduluar me amplitudë.

Shkëmbimi i të dhënave midis çelësit dhe lexuesit

Procesi i shkëmbimit të të dhënave midis çelësit RFID dhe lexuesit është shumë i thjeshtë, por i menduar deri në detajet më të vogla. Nëse çelësi RFID duhet të dërgojë një regjistër. 0, atëherë lidh një "ngarkesë" të caktuar me burimin e tij të energjisë, i cili kërkon më shumë energji të transmetuar nga lexuesi. Kjo do të shkaktojë një rënie të lehtë të tensionit në anën e lexuesit; është ky nivel që perceptohet nga lexuesi si një regjistër. 0

Një çelës RFID në përgjithësi transmeton 64 bit të dhënash në sekuencën e mëposhtme (Figura 6):

  1. 9 bitët e parë (gjithmonë logjikë 1) janë bit startues që tregojnë fillimin e shkëmbimit të të dhënave.
  2. 4 bit - bitet më pak të rëndësishme të numrit të identifikimit të përdoruesit (D00 - D03).
  3. 1 bit (P0) - bit i barazisë së 4 biteve të mëparshëm.
  4. 4 bit janë pjesët më të rëndësishme të numrit të identifikimit të përdoruesit (D04 - D07).
  5. 1 bit (P1) - bit i barazisë së 4 biteve të mëparshëm.
  6. 4 bit - pjesa e parë e numrit serial 32-bit të çelësit RFID (D08 - D11).
  7. 1 bit (P2) - bit i barazisë së 4 biteve të mëparshëm.
  8. Më pas, transmetohen grupet e mëposhtme me 4 bit të numrit serial të çelësit, secili me një bit pariteti.
  9. Pastaj 4 bit bit barazie transmetohen me kolona. Për shembull, biti i barazisë PC0 për bitet D00, D04, D08, D12, D16, D20, D24, D28, D32 dhe D36.
  10. 1 bit ndalimi.

Të dhënat (sekuenca 64 bit) që transmeton çelësi RFID.

Kontrolli i integritetit të të dhënave kryhet nga mikrokontrolluesi duke llogaritur bitet e barazisë për çdo rresht dhe kolonë dhe duke krahasuar me të dhënat e marra nga çelësi RFID.

Dizajni i mbështjelljes.

Induktori pa kornizë në lexues me një diametër prej 120 mm është i mbështjellë me një tel me diametër 0,5 mm dhe ka 58 kthesa, por autori rekomandon shtimin e 2 - 3 kthesave të tjera gjatë mbështjelljes. Për të përmirësuar efikasitetin e spirales dhe për të rritur distancën e leximit të të dhënave kryesore RFID, është e nevojshme të kalibroni qarkun e lëkundjes. Nëse, duke lidhur oshiloskopin me pikën e lidhjes së R1 dhe L1, shihni majat e shtrembëruara në ekranin e pajisjes (Figura 7), atëherë kjo tregon nevojën për të kalibruar spiralen L1.

Shtrembërimi i sinjalit të gjeneruar nga spiralja L1 tregon nevojën për kalibrim.

Kalibrimi mund të kryhet në dy mënyra pas aplikimit të fuqisë në modul.

  1. Lidhni sondat e oshiloskopit në pikën e lidhjes R1 dhe L1 dhe, duke rritur ose ulur numrin e rrotullimeve të spirales L1, arrini eliminimin e shtrembërimit të sinjalit.
  2. Nëse nuk keni një oshiloskop, atëherë ngadalë sillni çelësin RFID në spirale derisa tasti të njihet, siç dëshmohet nga një bip. Nëse çelësi përcaktohet nga një distancë prej 2 cm, atëherë është e nevojshme të shtoni / hiqni disa kthesa dhe më pas të kontrolloni përsëri distancën nga e cila çelësi mund të lexohet me siguri. Duke përdorur kalibrimin, autori i skemës arriti një lexim të sigurt të çelësit RFID nga 3 cm.

Kur programoni mikrokontrolluesin, është e nevojshme të vendosni konfigurimin e mëposhtëm të biteve të siguresave: bajt i ulët 0x7A dhe bajt i lartë 0x1F (mikrokontrolluesi funksionon nga një gjenerator i integruar i orës 9,6 MHz, ndarësi i frekuencës së orës me 8 është i çaktivizuar). Kodi i programit zë 1024 bajt në kujtesën e mikrokontrolluesit - përdoret e gjithë memoria e disponueshme e mikrokontrolluesit ATtiny13. Prandaj, në të ardhmen, kur zgjeroni funksionalitetin e lexuesit, është më mirë të përdorni një mikrokontrollues tjetër AVR me 8 pin, për shembull, ATtiny85.

Shkarkimet:

Kodi burimor i programit të mikrokontrolluesit (AVRStudio 6), firmware (.hex) dhe diagrami i qarkut -

Kohët e fundit është folur shumë për përdorimin e etiketave RFID, madje në diskutime ka sugjerime që, nëse dëshironi, njerëz me aftësi të caktuara kompjuterike mund të hakojnë sistemin tuaj të shtëpisë dhe të marrin informacion të plotë për gjërat tuaja.

Vendosa ta kuptoj vetë këtë teknologji. Për ta bërë këtë, porosita komponentët e nevojshëm dhe mblodha lexuesin RFID me duart e mia.

Në këtë artikull, unë do t'ju tregoj se si të montoni një lexues RFID që funksionon.

Hapi 1


Në një nga artikujt që lexova, autori tha se lexuesi i tij celular RFID punonte vetëm në një frekuencë prej 13.56 MHz (valë e shkurtër), por nuk funksiononte në një frekuencë prej 1.25 kHz (gjatësia e valës nën kufirin e brezit AM). Kam bërë një lexues që funksionon në frekuencën standarde të industrisë prej 125 kHz. Kjo do të thotë që lexuesi im ka nevojë për një kombinim të ndryshëm të antenës dhe kondensatorit. Kjo ilustrohet nga skema bazë dhe formula bazë. Për të marrë vlerën e dëshiruar, zgjidhni formulën e duhur, zëvendësoni vlerat tuaja dhe përdorni kalkulatorin për të marrë rezultatin.

Lista e komponentëve:

  • Rreth 12 m tel i hollë, nga 22 në 30 matës (kam përdorur 30 matës).
  • Çdo diodë (kam përdorur të kuqe).
  • Një kondensator 0.005uF ose dy kondensatorë të diskut 0.01uF të lidhur në seri.
  • 2-5 kondensatorë disqesh 100pF.
  • Baza për spiralen (çdo bazë, diametri i spirales duhet të jetë 10 cm).
  • PCB për prototipa, për montime provë.
  • PCB për montim të rregullt dhe të saktë.
  • Aftësia për të hyrë te lexuesi për të marrë lexime nga marrësi.
  • Bateritë nuk kërkohen pasi marrësi furnizohet me valë nga lexuesi.

Hapi 2



Së pari, e mbështjella telin rreth një baze me diametër rreth 10 cm (jam më se i sigurt se disa centimetra, jepni ose merrni, nuk do të luajnë një rol).

Me telin e mbështjellë rreth bazës, e krahasova bobinën me bobinat e tjera që kisha. Kështu që unë vlerësova përafërsisht induktivitetin e spirales së re - mora rreth 330 μH.

I futa 330µH në formulë dhe rezultati ishte se kjo spirale kishte nevojë për një kondensator 0,005µF për të bërë që çifti spirale-kondensator të "rezononte" në 125 kHz dhe të kishte rrymë të mjaftueshme për të fuqizuar diodën.

Përpara se të vazhdoja me saldimin, bëra një montim paraprak në një dërrasë buke.

Hapi 3


Në tabelën e bukës, fillimisht lidhim spiralen, diodën dhe dy kondensatorë të diskut 0,01 uF (të lidhur në seri me njëri-tjetrin, dhe më pas paralelisht me diodën, e cila jep një kapacitet total prej 0,005 uF (5000 pF)), më pas ndizni lexuesi RFID. Kur lexuesi pozicionohet në një distancë prej rreth 10 cm nga spiralja, dioda ndizet. Dioda digjet shumë me shkëlqim në një distancë prej rreth 1.5 cm.

Më pas shtova një kondensator 100pF (0.0001uF) paralelisht me qarkun për të rritur gamën e lexuesit. Pastaj kuptova se duke shtuar një kondensator të dytë të të njëjtit lloj paralelisht me të gjithë qarkun, do të rrisja më tej gamën e lexuesit. Dhe shtimi i një kondensatori të tretë, përkundrazi, e zvogëloi këtë rreze. Kështu, zbulova se 5200 pF është kapaciteti optimal për spiralen time (ilustrimi i përpjekjes së tretë).

Marrësi im do të kishte ndezur në 10 cm duke përdorur një kondensator 0.005 uF paralelisht me spiralen dhe diodën, por tabela e bukës lejoi përdorimin e kondensatorëve shtesë dhe kështu e rriti distancën në 12.5 cm.

Hapi 4




Fotografitë tregojnë qartë se si rritet shkëlqimi i shkëlqimit të diodës ndërsa spiralja i afrohet lexuesit.
Kjo pajisje e vogël funksionon në 125 kHz. Është mjaft e thjeshtë për ta montuar atë duke përdorur materiale pak a shumë të përshtatshme.

Hapi 5

Të gjithë komponentët e përdorur në montimin e provës në tabelën e bukës, i mblodha në PCB dhe i bashkova. Më pas e ngjita qarkun në spirale në mënyrë që e gjithë pajisja të mund të zhvendosej nga një vend në tjetrin vetëm në dorë, pa tela ose lidhje të panevojshme. Pajisja po punon si duhet. Prisja që do t'u përgjigjej të gjithë lexuesve RFID brenda 7-12 cm dhe do të funksiononte në një frekuencë prej 125 kHz.

Hapi 6

Meqenëse e di që shkëlqimi maksimal i një diode në një distancë të caktuar arrihet me një kapacitet prej 0,0052 uF, e futa këtë vlerë, së bashku me një gjatësi vale prej 125 kHz, në formulën e duhur dhe dola me një vlerë induktiviteti prej 312 uH , në vend të 330 uH, që prisja.

Llogaritjet matematikore nuk luajnë një rol të madh këtu, megjithëse ishte falë tyre që unë llogarita kapacitetin e kondensatorëve të përshtatshëm për spiralen time. Kjo, natyrisht, mund të kuptohej me provë dhe gabim, por do të kërkonte shumë kohë.

Artikujt kryesorë të lidhur