Opis sheme
Kot oscilator je uporabljen kristalni oscilator mikroprocesorja U3. Osnovno frekvenco 4 MHz peljemo na 14-bitni asinhroni števec U1 MC4020 in jo delimo z 32, tako dobimo delovno frekvenco za naše VF vezje (125 kHz).Z istim števcem osnovno frekvenco delimo tudi z 2048, da dobimo frekvenco takta, ki jo bomo uporabili za branje podatkov iz odzivnika. Frekvenco 125 kHz peljemo na močnostni del oddajnika. Tukaj sem uporabil vezje ICL7667, ki se uporablja kot FET driver. Ta del vezja bi lahko naredili tudi v diskretni tehniki, z uporabo para tranzistorjev. Vendar sem se odločil za vezje, ker so rezultati veliko boljši od tistih, ki so dobljeni z tranzistorji. Na izhod iz močnostnega dela je vezan zaporedni nihajni krog L1-C7, katerega resonančna frekvenca je 125 kHz. Formula za izračun resonančne frekvence je
F=1/2π√LC
Tuljavo, ki bo istočasno oddajna antena in bo imela 163 µH, lahko navijemo na telo premera 6cm tako, da z žico premera 0.2 mm navijemo 36 ovojev tesno enega do drugega. Navitje snamemo s telesa in ga utrdimo z lepilnim trakom. Priključne žice naj bodo čim krajše, ker njihova dolžina vpliva na končno induktivnost tuljave. V primeru, da želimo tuljavo postaviti oddaljeno od bralne enote, moramo temu primerno prilagoditi našo tuljavo. V tem primeru priporočam, da navijete tuljavo s čim večjo induktivnostjo, ker bodo na ta način priključne žice manj vplivale na samo tuljavo. Za ostale izračune (večslojne zračne tuljave) lahko uporabimo formulo:
N=√L(uH)(6a+9h+10b)/(0.31)a²
Od kvalitete izdelave nihajnega kroga bo direktno odvisna razdalje, s katere bomo lahko prebrali odzivnik. Normalna razdalja je 8 do 15 cm za odzivnike, ki imajo obliko kreditne kartice. Za odzivnike v obliki obeska za ključe ali nalepke je ta razdalja nekaj manjša, za tiste odzivnike, ki jih imamo v avtomobilskih ključih in ki jih uporabljajo za označevanje živali, pa je razdalja zelo majhna in bi za večjo razdaljo branja bilo potrebno izdelati posebno tuljavo.
Z diodo D1 kondenzatorjem C6 in uporom R6 iz VF signala izločimo NF signal (če je v bližini tuljave odzivnik). Ta signal skozi kondenzator C4 vodimo na vhod ojačevalca, ki ga sestavlja ena polovica OP LM358. Iz ojačevalca signal peljemo na primerjalno vezje (LM358), na katerem dobimo čist signal, ki nam predstavlja podatek od odzivnika in ga peljemo na pin procesor.
Za procesor sem uporabil AVR ATMega8 (v prvi izvedenki AT90S4433). Ker AT90S4433 nima reset vezja, sem za reset uporabil vezje MC34064 v TO92 ohišju.
Pind.0, pind.1 in pinb.0 sta uporabljena za komunikacijo s procesorja z okolico, bodisi s terminalom za krmiljenje oziroma s PC-jem s programskega terminala-emulacijo, bodisi z ostalimi elementi elektronskega varovanja in nadzora v stavbi. Pinb.0 se uporablja v primeru, da bo komunikacija z bralno enoto potekala po RS485 za preklop sprejem/oddaja. Izhoda “A B” iz Max485 sta na voljo na štiripolni letvici na tiskanem vezju. Zraven signalov “A B” sta na letvici še prisotna +5 V in –, katere lahko uporabimo za napajanje prilagodilnega vezja (MAX485-MAX232) za povezavo z osebnim računalnikom.
Na tiskanem vezju je predviden tudi zunanji EEPROM (I2C), ki za zdaj ni v uporabi, ker za vse kaj rabimo zadostuje interni EEPROM v procesorju (512 bajtov). Na procesor sta priklopljeni dve LED diodi (rumena na pind.6 in zelena na pind.7), ki nam kažeta stanje naprave. Na pinc.5 je vezan piezzo piskač, ki nas s piski opozarja na delovanje bralne enote (o pomenu posameznih piskov kasneje). Na pinc.4 je vezan kolektor opto sklopa SFH620, ki ga bomo lahko uporabili za signalizacijo, da so vrata odprta več časa kot je dovoljeno, če bomo bralno enoto uporabili za odpiranje vrat. V primeru, da tega ne rabimo, moramo narediti kratek stik na sponkah J5. Na pinb.3 je prek upora R10/R11 in tranzistorjev Q1 in Q2 vezan izhodni rele. Uporabljena sta dva tranzistorja, da se izognemo šklecanju releja ob vklopu ali resetu naprave. Na procesor U3 pripeljemo še signale, o katerih sem že govoril, in to iz delilnika U1 MC4020 pripeljemo “CLK” (4MHz/2048) in izhod iz primerjalnega vezja “DATA”. Kako izgledata ta dva signala, lahko vidimo na sliki 5. Na tej sliki je še en signal, ki ga ne rabimo, viden pa je, ker je slika nastala ob razvoju bralne enote (ta signal je 4 MHz/1024).
Kako preberemo podatek odzivnika?
Program se odvija v “do loop” zanki in nepretrgano bere 64 bitov podatkov. V primeru, da odzivnik ni prisoten, bo vseh 64 bitov imelo vrednost logično “1”. Ko bralni enoti približamo odzivnik vseh 64 bitov, ne bo več “1”, kar pomeni, da se v bližini nahaja odzivnik. Potem znova preberemo 64 bitov (da bi zmanjšali možnost napake) in pogledamo naš podatek. Ko ima odzivnik enkrat zadostno energijo, bo v zanki oddajal 64 bitov, tako da prvi sprejeti bit ne pomeni tudi začetek besede.