Îndrumător: Prof. univ. dr. ing. Liviu BRENIUC Absolvent: Cășeriu Vlad Petru Iași, 2018 Titlul lucrarii: Dispozitiv pasiv de acționare la distanță… [310097]
PROIECT DE DIPLOMĂ
Îndrumător: Prof. univ. dr. ing. Liviu BRENIUC
Absolvent: [anonimizat], 2018
Titlul lucrarii:
Dispozitiv pasiv de acționare la distanță
Cuprins
Introducere
Tehnologia RFID (Radio Frequency Identification) utilizează undele radio pentru a identifica obiectele. Prin urmare gama obiectelor ce se pot identifica utilizând sistemul RFID cuprinde practic orice. Astfel RFID se dovedește a fi un exemplu de identificare automată (Auto ID) prin care obiectele sau ființele pot fi identificate în mod automat.
Aspecte teoretice de bază privind tehnologia RFID
O undă este o [anonimizat]. Undele electromagnetice sunt create de electronii aflați în mișcare și sunt formate din câmpuri electrice și magnetice oscilante. Aceste unde pot trece prin difetire tipuri de materiale. Cel mai înalt punct al unei unde se numeste vârf. Distanța dintre două vârfuri consecutive se numeste lungime de undă. Timpul necesar unei unde să parcurgă un ciclu se numește perioadă de oscilație. Numărul de cicluri pe secundă se numește freczența undei. Frecvența unei unde se măsoară in Hertzi(Hz) după numele fizicianului german Rudolf Hertz. Dacă frecvența unui semnal este de 1Hz înseamnă că unda va oscila cu un ciclu pe secundă. Mai practică este exprimarea frecvenței în KHz (1.000Hz), MHz (1.000.000Hz) sau GHz (1.000.000.000Hz).
Undele radio sau radiofrecvența (RF) sunt perturbații electromagnetice cu lungimi de undă cuprinse între 0.1cm1km. O altă definiție echivalentă caracterizează undele radio ca fiind cuprinse între 30GHz300GHz. Alte tipuri de unde electromagnetice sunt în infraroșu (IR), lumină, [anonimizat] X, gama și radiațiile cosmice.
Sistemele RFID utilizează unde radio cu frecvențe cuprinse între 30KHz5.8GHz.
O undă continuă ([anonimizat]) are amplitudinea și frecvența constante. Din punct de vedere informațional nu conține nici o informație, dar poate fi modulată pentru a transmite un semnal.
Modularea este procesul prin care sunt schimbate caracteristicile unei unde radio pentru a coda un semnal purtător de informație.
Undele radio sunt afectate de materialele prin care se propagă. Un material poate fi numit RF friendly (transparente) dacă permite trecerea unui semmal radio de o anumită frecvență fără pierderi substanțiale de energie.
[anonimizat] (opace) [anonimizat]. [anonimizat]. Cele două proprietăți ale materialelor (RF-[anonimizat]) sunt relative deoarece depind de frecvență.
Sistemele RFID folosesc următoarele tipuri de frecvențe:
Frecvență joasă (LF);
Frecvență înaltă (HF);
Frecvență untra înaltă (UHF).
Frecvențe joase (LF)
Frecvențele curpinse între 30KHz300KHz sunt considerate joase și sistemele RFID utilizează frecvențe cuprinse între 125KHz134KHz.
[anonimizat], zăpadă, noroi și reprezintă o caracteristică importantă a sistemului de joasă frecvență.
Frecvențe înalte (HF)
Sunt cuprinse între 3MHz30MHz, frecvența de 13.56[anonimizat]. [anonimizat]. Sunt utilizate în special în spitale, unde nu perturbă echipamentele medicale existente.
Frecvențele ultra înalte (UHF)
Au domeniul de frecvență între 300MHz1GHz. Sistemele tipice RFID UHF folosesc frecvențe de 915MHz în SUA si 868 în Europa. RFID UHF active utilizează frecvențe de 315 și 433 MHz. Un sistem UHF poate folosi ambele etichete (pasive sau active) și permite un transfer ridicat de informații cu performanțe slabe în prezența metalelor și lichidelor.
Microundele
Sunt semnale cu frecvență peste 1GHz. Sistemele RFID tipice utilizează frecvențe intre 2.45GHz5.8GHz, pot utiliza ambele etichete, au un transfer rapid de date cu performanțe extrem de scăzute în prezența metalelor și lichidelor.
Un dispozitiv radio transponder/etichetă este atașat obiectului de identificare. Datele unice de identificare sunt memorate pe acesta. Când eticheta intră în zona de acțiune a unui reader acesta va citi datele trimise de etichetă și va lua diverse decizii în funcție de aplicație.
Capitilul I. Scurtă prezentare a dispozitivului pasiv de acționare la distanță
Proiectul prezintă un dispozitiv pasiv de acționare la distanță (PKE) ce reprezintă o înbunatațire a unui sistem deja existent RKE.
Anexa1: Poza dispozitivului PKE (Passive Keyless Entry).
Anexa2: Poza dispozitivului RKE (Remote Keyless Entry).
Stația bază (inițiatorul ) de joasă frecvență (LF) este implementat cu un un microcontroler PIC18F2680.
Transponderul are în componență un microcontroler PIC16F639 ce are integrat un three-axis Analog-Front-End (AFE).
Conceptul a fost optimizat și integrat pe o platformă deja existentă, fără prea multe modificări. Flexibilitatea în exploatare reprezintă unul din punctul forte al conceptului, printre obțiunile sale, numărăndu-se și programarea acestuia de către client, distribuitor sau fabrică
Diagrama blocului a dispozitivului pasiv de acționare la distanță
RF
Transmitter
Encoder
KEY FOB
Buttons
434 MHz
3-Axis
AFE
Trigger
LF Initiator
Figura 1 125 kHz
RF
Receiver
RKE Receiver
Decoder
Drivers
LIN Lock
Actuator
I.1.Prezentarea funcțiilor
Când inițiatorul de joasă frecvență detectează un impuls trigger, transmite un mesaj codat pe frecvența de 125KHz. Orice transponder aflat in raza acestui semnal, recepționează mesajul și validează sau nu codul. Dacă acest cod este recunoscut, un semnal RF (Radio Frequency) de 433,92MHz codat, este emis. Un receptor standard RKE, decodează pachetul de date, rezultând, luarea unei decizii (una din acțiunile programate).
Pentru a reduce consumul de energie, inițiatorul de joasă frecvență nu emite codul său în mod continuu. Un semnal trigger “trezește” modulul, din Sleep in Power-On.
Impulsul de trigger poate fi:
comandat pe una din rețele;
semnalul infraroșu emis de ușă;
un microswitch – acționat de mânerul uși;
separat de un senzor capacitiv de proximitate.
Aplicația descrisă mai sus este utilizată pentru exemplificarea unui microântrerupator (microswitch), ales pentru simplificarea sa. La livrare – inițiatorul LF – emite in mod continuu pentru a facilita instalarea sa și reglarea razei de acțiune. Când apare un mesaj de la inițatorul LF, microcontrolerul răspunde generând un cod unic, ca și cum ar fi apăsate 6 butoane.
Receptorul/Decodorul de RF poate include și un circuit KEELOQ de securitate. Decodoarele tipice utilizate sunt: HCS500, HCS512, HCS515. În aplicația de față se utilizează un circuit PICmicro din familia mid-range programat corespunzător.
I.2.Module
Inițiatorul LF
Opțiunile inițiatorului LF sunt:
poate fi comandat prin mai multe semnale;
detector de proximitate;
suportă tipurile de interfețe CAN și LIN.
Transponderul ( Key- Fob)
Printre opțiunile acestuia se numără:
compatibilitate cu encoderul HCS365- de la Microchip;
suportă până la 5 intrări;
două ieșiri pentru LED-uri (unul pentru butonul valid și unul pentru validarea codului de joasă frecvență).
Receptorul RF
compatibil cu encoderele HCS200, HCS201, HSC300… fabricate de Microchip;
detectare automată a ratei de transfer (baud rate);
poate recunoaște pâna la 6 transmițătoare.
Capitolul II.Modulul stației bază
II.1.Introducere
Stația bază constă într-un microcontroler PIC18F2680, un amplificator de LF (Low Frequency), o parte de recepție de joasă frecvență, una de recepție UHF (Ultra High Frequency) de 433.92MHz și secțiunea CAN/LIN de interfațare (tranceiver-ele). Secțiunea de recepție și cea a tranceiver-elor CAN/LIN sunt montate pe placa de circuit.
Anexa3: Poza modulului stației bază
La alimentarea stației bază și a transponderului, cele două module vor începe să comunice între ele. Stația bază trimite semnalul-comandă pe 125KHz, iar transponderul răspunde. Când acesta se află la aproximativ 3m de stația bază, cele două module vor schimba informații între ele. Utilizatorul poate testa RSSI (Received Signal Strength Indicator) prin mișcarea transponderului în zona de acțiune a câmpului stației bază. Valoarea RSSI-ului va crește la apropierea de stația bază și va scădea la îndepărtarea față de aceasta.
Codurile modulelor stației bază respectiv transponderului pot fi ușor modificate de utilizator cu ajutorul programului MATLAB.
II.2.Hardware-ul
Stația bază este alimentată cu o tensiune cuprinsă între 8÷18V. În momentul alimentării se va aprinde LED-ul D2 și sistemul începe să emită semnalul comandă pe 125KHz.
Sistemul așteaptă deasemenea și apariția unui răspuns de la transponder cu excepția timpului în care emite comanda sa. La recepția unui răspuns valid de la transponder LED-ul D3 va clipi.
Tensiune de alimentare poate veni de la J1 (jack de alimentare), de la J3 (CAN) sau J4(LIN).
Pentru a reduce consumul, LED-ului ce indică prezența tensiunii de alimentare poate lipsi.
Anexa4: Schema circuitului stației bază
II.2.a.Modulul receptor pe 433.92MHz
Stația bază utilizează un modul receptor hibrid super-regenerativ pe 433.92MHz destinat recepționării răspunsului transponderului. Acest modul este foarte stabil într-o gamă largă de temperaturi și vibtații mecanice.
Sensibilitatea acestuia este de aproximativ 90dBm.
II.2.b. Microcontroler-ul PIC18F2680
A fost ales un microcontroler PIC18F2680 datorită gamei largi de periferice disponibile pe chip. Acesta are si interfața CAN și interfața LIN. Modelul CCP (Capture-Compare-PWM) este programat să genereze un semnal dreptunghiular cu frcvența de 125KHz, ce reprezintă purtătoarea semnalului de joasă frecvență.
Microcontrolere Flash cu tehnologie ECAN și tehnologie nanoWatt
Moduri de operere:
Run-CPU on, perifericele on;
Idle-CPU off, perifericile on;
Sleep-CPU off, perifericele off;
Aproximativ 5,8 µA tipic în modul idle;
Aproximativ 0,1 µA tipic în modul sleep;
Oscilatorul timer-ului 1: 1,1 µA, 32KHz, 2V.
Structura flexibilă a oscilatorului:
Suportă frecvență de până la 40MHz;
Bucle PLL (Phase Lock Loop)-disponibile pentru oscilatoare interne;
Două moduri RC până la 4MHz;
Două moduri externe până la 40MHz;
Bloc oscilator intern:
8 frecvențe selectibile de la 30KHz până la 8MHz;
Asigură o gamă largă de nivele ale clock-ului utilizând buclele PLL;
Pot fi acordate fin pentru compensarea driftului frecvenței.
Monitorizarea semnalului de ceas (Fail-Safe Clock Monitor).
Caracteristici speciale ale microcontroler-ului:
Arhitectură optimizată a oscilatorului cu set extins de instrucțiuni;
Memorie Flash cu 100.000 cicluri de scriere/citire;
Memorie EEPROM cu 1.000.000 cicluri de scriere/citire;
Autoprogramabil sub controlul softului;
Nivele de priorități pentru întreruperi;
Programare IN-circuit serie cu ajutorul a doi pini;
Gamă largă de tensiuni de alimentare: 2.0V÷5.5V.
Periferice:
Trei pini de întreruperi;
Modul CCP (Capture-Compare-PWM);
Modul CCP-avansat (capsula 40/44 pini );
1, 2 sau 4 ieșiri PWM;
Polaritate selectabilă;
Auto-shutdown și auto-restart;
Modul MSSP (Master Synchronous Serial Port)-suportând interfața SPI și C;
Portul USART avansat-adresabil:
Suportă RS-485, RS-232 și LIN 1.3;
Interfața RS-232 utilizează un oscilator intern;
Auto Wake-up la bitul de start;
Detectare automată a ratei de taransfer (bord rate).
Convertot ADC cu 11 canale pe 10 biți și capabilitate de autoarhizare;
Comportare analogică cu intrări multiplexate.
Caracteristicele modelelor ECAN:
Rate de transfer de până la 1Mb/s;
Compatibile cu interfața CAN 2.0.3;
Trei moduri de funcționare: Legacy, Enhanced Legacy și FIFO;
Două buffere dedicate de recepție;
6 buffere de emisie, programabile;
Sisteme avansate de manevrare a erorilor:
Diferite scheme bloc cu microcontrolere sunt prezentate în figura1:
Figura1
Tehnologia nanoWatt
Această nouă tehnologie permite reducerea semnificativă a consumului de energie și include:
Moduri alternative de operare: prin folosirea clock-ului intern al timerului în locul oscilatorului extern se reduce consumul din timpul execuției codului cu până la 90%;
Mai multe moduri idle: controlerul poate rula cu MCU-închis dar cu perifericele active. În această stare, puterea se reduce la aproximativ 4% din puterea normală de operare;
Schimbarea modurilor On-the-fly: modurile de funcționare în ceea ce privește consumul pot fi diferite și de utilizator la dezvoltarea softului;
Reducerea consumului în modulele cheie: puterile necesare timer-ului1 și circuitului Watchdog au fost reduse cu până la 80%, cu valori tipice de 1,1µA și 2,1µA;
Set de instrucțiuni restrâns: în completarea celor 75 de instrucțiuni standard ale microcontrolerului PIC18F2680 au fost adăugate instrucțiuni noi (8);
Opțiuni multiple ale osciloscopului, aceastea includ:
Patru moduri pentru cristale de cuarț externe;
Două moduri de funcționare ale clock-ului extern:
cu doi pini;
cu un singur pin, celălalt devenind pin general I/O.
Două moduri de funcționare a clock-ului extern RC-cu aceleași opțiuni;
Un bloc oscilator intern, ce poate asigura un clock de până la 8MHz (2% precizie) și o sursă INTRC (aproximatiz 31KHz) stabilizată cu temperatura;
Șase frecvențe de ceas selectibile între 125Khz-4Mhz. Această opțiune eliberează pinii pentru clock-ul extern, aceștia devenind pini generali I/O;
În multimplicarea de frecvență PLL-disponibil pentru ambele oscilatoare (extern si intern). Utilizând oscilatorul intern se pot obține frecvențe de la 31KHz la 32MHz fără a folosi clock-ul extern.
Blocul osciloscopului intern este o referință stabilă ce asigură familiei de microcontrolere caracteristici superioare pentru o operare rapidă, cum ar fi: monitorizarea clock-ului, această opțiune monitorizează constant semnalul de clock în raport cu o referință internă asigurată de blocul oscilator. Dacă apare o eroare a semnalului de clock controlerul constată pe oscilatorul intern permițând continuarea operațiilor la o viteză mai mică sau permițând închiderea circuitelor si salvarea datelor.
Alte caracteristici speciale:
Memorie robustă-celulele de memorie flash avansate, atât pentru programe cât și pentru EEPROM sunt proiectate să suporte mii de cicluri ștergere/scriere (100.000 pentru memoria de programe și 1.000.000 pentru EEPROM). Datele pot fi stocate fără refresh peste 40 de ani;
Autoprogramare-aceste dispozitive pot scrie singure programul în memorie, sub controlul softului intern. Prin utilizarea unui Bootloader localizat într-un bloc protejat al memoriei, este posibilă crearea unui program ce se poate adapta singur.
Set extins de instrucțiuni-au fost adăugate 8 noi instrucțiuni la nivelul de 75 standard;
Modul CCP1 avansat-în modul PWM acest mod asigură 1.2 sau 4 ieșiri modulate pentru controlul half-bridge sau full-bridge. Alte funcții includ auto-shutdown pentru blocarea semnalului PWM la întrerupere;
Portul USART performant-acest modul de comunicație serială suportă protocoalele RS232 și asigură suport pentru protocolul LIN. Alte îmbunătățiri includ detectarea automată a ratei de transfer. Când microcontrolerul utilizează oscilatorul intern EUSART asigură funcția stabilă a aplicațiilor ce comunică cu exteriorul;
Convertorul A/D de 10 biți-acest mod încorporează tipul de achiziție programabil, selecția codului și a conversiei ce va fi inițiată;
Timer Watchdog extins-această versiune avansată încorporează un prescaler pe 16 biți, permițând un time-range de la 4 ms la 131s.
Intrările configurabile
Pentru trigger sunt prevăzute două intrări de 12V. Ambele tipuri de circuite pot fi reconfigurate pentru o varietate de semnale de intrare.
Exemplu: referindu-ne la anexa4, putem alege una din intrări să fie un microswitch ce dă un zero logic. Pentru aceasta:
înlocuin R2 cu un ștrap;
îndepărtăm pe R3 si D3;
înlocuim D2 cu o rezistență de 30KΩ.
II.2.c.Emițătorul de joasă frecvență
Un MosFet de putere (TC4422) este comandat cu un semnal PWM (Pulse Width Modulation) generat de un microcontroler care la rândul lui comandă circuitul rezonant format din bobina de emisie (L1) și C2. Acest circuit generează un cămp magnetic și o tensiune de până la 320(vârf la vârf).
Proiectarea emițătoarelor electromagnetice de joasă frecvență
Comunicațiile electromagnetice de joasă frecvență este o alternativă viabilă în ceea ce privește comunicația „wireless” în raport cu tradiționalele unde de RF (Radio Frequency) sau comunicația în inflaroșu.
Dintre avantaje amintim:
capabilitate de penetrare magnetică sporită. Poate penetra materiale nonmagnetice precum apa, betonul, plasticul;
rază de acțiune limitată și precis controlabilă. Acest lucru poate fi un dezavantaj când este nevoie de o rază de acțiune sporită dar, pentru anumite aplicații este un mare avantaj când este nevoie de o rază de acțiune precisă. De exemplu în domeniu comunicațiilor auto sau privind siguranța în jurul piscinelor;
sunt posibile modele „low power” mai ales pe partea receiver-ului. Această proprietate le face foarte atractive pentru domenliul PKE (Passive Keyless Entry) unde acesta „ascultă” în mod constant pentru un cod valid și trebuie alimentat de la o mică baterie ce trebuie să reziste câțiva ani. Se utilizează în montajele TPM (monitorizarea presiunii pneurilor) unde senzorul este „trezit” de un semnal de joasă frecvență pentru a reduce consumul de energie;
transferul de energie: este posibilă limitarea unui receiver de la un câmp magnetic. Un bun exemplu este RFID-ul (Radio Frequency Identification);
const redus: un tranceiver la un preț redus se poate implementa utilizând un rezonator LC și un microcontroler.
Lucrarea de față acoperă unele aspecte de bază ce trebuie luate în considerare în proiectarea părții emițătoare a comunicațiilor electromagneice de joasă frecvență, precum:
o descriere a componentelor ce alcătuiesc legătura comunicațiilor electromagneice de joasă frecvență;
explicarea bazelor magnetismului și a presupunerilor făcute în lucrare;
calcularea puterii câmpului magnetic generat, ce este invers proporțional cu pătratul distanței;
o metodă practică de generarea a câmpului magnetic este de a creia un modul de rezonanță serie;
transferul de date se face în funcție de amplitudinea modulației câmpului magnetic;
tipuri de date, utilizate în aplicațiile ce utilizează acest tip de comunicație;
o descriere a circuitelor utilizate în generarea câmpurilor magnetice de joasă frecvență.
O legătură a câmpului magnetic de joasă frecvență este, în forma sa cea mai simplă un câmp magnetic sursă (emițator) și un câmp magnetic senzor receptor)-sensibil la câmpul emițător. De aceia, este nevoie de o direcție de propagare a câmpului ce leagă emițătorul de receptor. Mediul de propagare joacă un rol important în ceia ce privește performanțele comunicațiilor.
Trebuie menționat însă, comportamentul câmpului magnetic nu este același cu cel al undelor electromagnetice asociate comunicațiilor de radiofrecvență. Undele electomagnetice se propagă pe distante foarte mari și sunt susceptibile fenomenelor de reflexie și distorsiuni. Liniile câmpului magnetic sunt însă mai puțin susceptibile distorsionării și este cunoscut faptul că pot penetra apa cu ușurință. Un câmp magnetic este atenuat mult mai rapid în comparație cu o undă electromagnetică.
Această lucrare se axează în principal pe circuitele rezonante, ca sursă principală de generare a câmpurilor magnetice emițătoare. Aceste circuite sunt constituite dintr-o bobină cu miez „aer” și un condesator. Detecția semnalelor se face de obicei cu circuite rezonante paralel.
Pentru a crește sensibilitatea trebuie să ne asigurăm că frecvențele de rezonanță ale emițătorului (TX) și ale receptorului (RX) sunt aceleași.
Un alt aspect important este acela că sensibilitatea este dependentă de poziția bobinei în raport cu liniile de câmp magnetice. Sensibilitatea maximă se observă atunci cănd liniile de câmp magnetice sunt perpendiculare pe suprafața bobinei, cum este prezentat în figura2.
Figura2
Sursă Linii de câmp Instrument de măsură
Putem să ne gândim la cele două bobine ca fiind un transformator cu un cuplaj slab, datele fiind transmise prin modularea câmpului magnetic sursă și detecția acestuia la receptor.
Bazele magnetismului
Este importantă observarea diferențelor dintre un câmp magnetic sau electric față da o undă electromagnetică.
Un câmp magnetic este rezultatul unei sarcini electrice în mișcare sau a unui dipol magnetic. Un câmp magnetic poate fi reprezentat prin linii de câmp ce formează bucle care nu se intersectează între ele.
Pe de altă parte un câmp electric este rezultatul unei sarcini distribuite. Atât câmpul electric, cât și cel magnetic au în comun faptul că puterea ambelor câmpuri se atenuează cu 1/ când sursa se consideră punctiformă, ceea ce înseamnă că intensitatea la distanța 2X față de sursă, scade la o optime față de intensitatea măsurată la distanța „X”.
O undă electromagnetică reacționează în mod diferit față de un câmp magnetic sau electric. Ne putem imagina o undă electromagnetică cu o sferă ce se propagă din centrul sursei punctiforme cu viteza luminii, cu energia undei distribuită pe suprafața exterioară a sferei.
Întrebarea este: ce legătură există între câmpul magnetic sau electric și o undă electromagnetică? Pentru aflarea răspunsului trebuie să enumerăm câteva din proprietățile câmpului magnetic și electric:
un câmp electric variabil în timp generează un câmp magnetic sau reciproca-un câmp magnetic variabil în timp generează un câmp electric. Prin urmare, un cîmp variabil (magnetic sau electric) induce sau întărește un câmp de alt tip;
dacă lungimea de undă a semnalului (magnetic sau electric) se apropie de dimensiunea antenei, câmpul electromagnetic devine suficient de puternic și permite propagarea undei. Deci pentru o antenă mult mai mică în comparație cu lungime de undă a semnalului, unul dintre câmpuri nu are suficientă putere, scăzând cu 1/r, în schimb celălalt crește cu 1/.Celălalt este neglijabil când antena este de foarte mici dimensiuni în raport cu lungimea de undă a semnalului. De exempu, pentru 125KHz lungimea de undă este de 2.4km.
λ = [m]
c = 3 x [m/s]
O antenă de aceasta dimensiune nu este practică, dar la 500MHz lungimea de undă este : λ = 60[cm].
Notă: Pentru aplicațiile comunicațiilor electromagnetice de joasă frecvență – o comandă mică din totalul de energie este sub forma unui câmp electromagnetic, dar aceasta se neglijează în raport cu energia câmpului megnetic la 125KHz.
II.2.d.Calcularea intensității câmpului magnetic
Pentru cele mai multe aplicații ale comunicațiilor electromagnetice de joasă frecvență, la calcularea câmpului magnetic (a intensității acestuia), un cîmp magnetic este generat de un curent oscilant ce străbate un circuit RLC la o frecvență de rezonanță tipică de 125KHz. Curentul ce trece prin bobină generează un câmp magnetic conform legii lui Ampere. Utilizând ecuația de mai jos putem calcula intensitatea absolută a câmpului magnetic B, într-un punct P față de sursă (bobină).
Puterea de calcul a câmpului magnetic
Figura3
Sensul curentului Bobină
Intensitatea câmpului este proporțională cu:
numărul de spire (N);
Curentul (I);
Aria buclei/spirei ().
La îndepărtare față de sursă cu o rază de r>>a, ecuația simplificată ne arată caracteristica egală cu 1/. Din motive practice, proiectantul poate utiliza tensiunea bobinei () la calcularea intensității câmpului utilizând ecuația de mai jos:
unde: ;
pentru r>>a.
Din ecuația de mai sus, stiind tensiunea bobinei la o anumită distanță aflăm că „B” este invers proporțional cu N (număr de spire). Aceasta datorită faptului că prin spirele bobinei curentul crește cu o rată de 1/. A fost descris numai cazul bobinei cu miez aer, dar putem utiliza și bobine cu miez de ferită. Bobinarea pe miez de ferită are ca efect creșterea suprafeței efective, astfel se reduce dimensiunile fizice ale bobinei.
Rezonanța serie
Un circuit tipic de rezonanță este prezentat în figura4.
Circuit de rezonanță
Figura4
Formulele (*) prezintă calculul circuitului RLC;
Scurtă descriere a fiecărei ecuații;
–se utilizează la calcularea frecvenței de rezonanță a circuitului;
–arată curentul maxim în funcție de tensiunea aplicată și de rezistența R;
–ne arată că tensiunea pe condensator și cea pe bobină sunt egale cu Q înmulțit cu tensiunea sursei pe rezistență;
–ne arată toate formele de calcul a factorului de putere (Q) al circuitului;
–se utilizează la calcularea benzii de frecvență la 3dB.
Figura5 ne prezintă curba de răspuns pentru un circuit rezonant serie tipic:
Figura5
Toleranțe de fabricație
O modalitate de menținere în limita de 3dB, ținând seama de toleranțele componentelor este arătată în ecuația de mai jos:
unde:,-sunt toleranțele condensatorului respectiv bobinei:
Pentru toleranțe de 2%, un factor de calitate de 20 este acceptat. Pentru componente cu toleranțe mai mari, scade sensibilitatea și se induce raza de acțiune.
Formatul datelor
În proiectarea sistemelor ce privesc comunicațiile electromagnetice de joasă frecvență trebuie să ne decidem în ceia ce privește implementarea unuia dintre tipurile de modulație. On-Off Keying (OOF) este un mod practic și sigur de realizare a modulației, astfel semnalul este modulat prin simpla pornire sau oprire a sursei circuitului RLC.
Un exemplu de răspuns dinamic al unei semipunți se arată în figura6 ce ne arată răspunsul circuitului când acesta este pornit și după un timp este oprit.
Figura6
Se observă că amplitudinea oscilează, crește rapid în momentul pornirii și ajunge la o amplitudine maximă conform formulelor (*). Timpi de creștere sau de scădere sunt factori principali în alegerea ratei de transfer (baud rate). Alți factori sunt mai interesați de aspectul receptorului și alegerea tipologiei AGC (Automatic Gain Control). LFte este o perioadă elementară utilizată în comunicațiile de joasă frecvență având o valoare tipică de 400µs sau mai mare. PWM-ul(Pulse Width Modulation ) Manchester și formatul de date PPM sunt arătate în figura7:
Figura7
Conectarea în PWM pe de altă parte simplifică decodarea la receptor și să reducă erorile.
În proiectarea sistemelor ce privește comunicațiile electromagnetice de joasă frecvență trebuie să ținem seama de mediul în care va lucra dispozitivul , respectiv de zgomote și interferențe, așadar trebuie implementat un sistem de corectare a erorilor și o schemă de detectare a acestora când realizăm protocolul de comutație.
II.2.e.Circuitele de comandă (Driverele TC 4421/4422)
Una dintre cele mai eficiente metode de a comanda circuitul rezonant este circuitul de clasă D fie în întregime sau semi punte. Figura8 arată un modul tipic semipunte ce are rezultate bune, preț de cost redus și ușurință în inplementare.
Figura8
Următoarea parte ne explică de ce unul dintre cele mai utilizate circuite rezonante este cel RLC-serie. Un circuit rezonant serie RLC cu un factor de calitate Q ridicat prezintă un minim al impedanței la rezonanță.
Curentul ce trece prin bobina-antenă din figura8 este constituit în principal din componenta fundamentală, chiar dacă circuitul de comandă utilizează un semnal dreptunghiular, bogat în armonici de rang superior.
Circuitul din figura8 dă aproximativ 135RMs pe condensator la un consum de 0,5A/12V, rezultând un consum tipic de 250mA pentru un cod Manchester.
Un circuit economic și practic se arată în figura9.
Figura9
Semnalul de comandă PWM, se poate genera direct de către microcontroler. Pentru un microcontroler la 20MHz frecvență de clock, se poate obține un semnal de 125KHz, setând prescalerul times-ului 2 la valoarea 1. Printr-o perioadă de 8µs se poate obține registrul PR2 la 39. Pentru un factor de umplere de 50% se setează CCPR1L la 14 și CCP1CON <5÷4> la <0÷0>. Aceste setări asigură o purtătoare constantă a semnalului. Pentru a modela datele, se modulează semnalul de comandă ON/OFF prin setarea și stergerea bitului CCP1RIL.
Se poate utiliza mai multe tipuri formate a datelor transmise, dar trebuie să avem în vedere timpii de creștere și cădere a circuitului rezonant.
Răspunsul circuitului arătat in figura9 este reprezentat în figura6. Driver-ul a fost modulat cu semnalul dreptunghiular cu o perioadă de 400µs.
Drivere-le cu MOSFET-uri de putere de la Microchip, cum ar fi TC 4421/TC 4422 (figura10) sunt recomandate pentru asemenea aplicații. Acestea încorporează toate dispozitivele necesare realizării tranzițiilot logice având ca rezultat un răspuns rapid și eficient, reducând astfel costurile și pierderile.
Figura10
Aceste dispozitive mai prezintă avantajul de a fi comandate direct de nivele logice (semnal dreptunghiular). Trebuie sa utilizăm condensatori de foarte bună calitate, cu toleranțe mici și sunt relativ stabili cu temperatura.
TC 4421/TC 4422
Drivere MOSFET de mare viteză-capabilitate de curent de 9A.
Caracteristici tehnice:
curentul de ieșire de vârf-9A;
gamă largă de tensini de alimentare-4,5÷18v;
curent de ieșire în mod continu 2A max;
Timpi de creștere și de scădere:
30ns cu o sarcină de 4,7pF;
180ns cu o sarcină 47pF;
timpul de propagare: 30ns (tipic);
curenți de poartă scăzuți: intraea „1” logic de 200µA (tipic);
curenți de poartă scăzuți: intrare „0” logic de 55µA (tipic);
impedanță mică de ieșire: 1,4Ω;
protecția „latch-up” suportă până la 1,5A din curentul invers de la ieșire;
compatibil pin la pin cu TC 4420/TC 4429;
capsula DFN pe 8 pini,6X5.
Aplicații:
drivere de linie, pentru linii supraâncarcate;
generatoare de semnal;
drivere pentru tranzistori MOSFET de putere și IGBT-uri;
ca switch ON/OFF;
drivere pentru motoare și bobine.
Descriere generală
TC 4421/TC 4422-sunt drivere cu mare capabilitate de curent, capabile să comande cele mai mari MOSFET-uri de putere și IGBT-uri.
Dispozitivele sunt practic imune la perturbații exceptând suprastarea directă. Pot accepta fără a se distruge curenți inverși de orice polaritate pe ieșirile lor de până la 1A. În plus toate tensiunile sunt protejate ESD (electrostatic discharge) până la 4KV.
Intrările dispozitivului pot accepta semnale TTL sau CMOS (3 până la 18V) Figura11. În plus ieșirile prezintă un histerezis de 300mV asigurând imunitate la zgomote și permițându-i dispozitivului să fie „condus” de semnale cu timpi de creștere sau scădere mari.
Este disponibil în două tipuri de capsule: SMD sau normale și cu patru game de temperaturi de funcționare. Familia TC 4421/4422 este potrivită pentru o gamă variată de aplicații sau acolo unde este nevoie de o capacitate mare între poartă și linie.
Schema bloc de funcțioare
Figura11
Caracteristici electrice
tensiunea de alimentare- 20V (maxim);
tensiunea pe intrări- +0.3V) până la (GND-5V);
curentul maxim de intrare- 50mA.
Puterea de disipație a capsulei ()
TO- 220 (5 pini)-1.6W/12.5W cu radiator;
PDIP-730mW;
SOIC-750mW.
Puterea disipată a capsule ()
TO-220 (5pini)-12.5W.
Descrierea pinilor
Descrierea pinilor este prezentată în tabelul de mai jos:
Pinul de alimentare ()
este pinul de intrare pentru driverul MOSFET-ului și care prezintă o tensiune cuprinsă între 4,5V ÷18V, în raport cu masa. Acesta trebuie să fie cuplat cu un conductor ceramic. Valoarea condensatorului trebuie aleasă în funcție de satcina capacitivă, o valoare indicată fiind cea de 1µF.
Intrarea de control
Intrarea driverului pentru tranzistorii MOSFET prezintă o impedanță ridicată, compatibilă TTL/CMOS. Intrarea prezintă un histerezis de 300mV, între pragurile „High” și „Low”.
Ieșirea CMOS Push-pull
Ieșirea MOSFET-ului este una de joasă-impedanță, tip push-pull capabilă să acționeze o sarcină ce prezintă curenți de vârf de până la 9A. Circuitul poate suporta curenți inverși cu intensitatea de până la 1,5A.
Pinul GND
Pinii de masă, sunt pini ce asigură scurgerea curentului de descărcare a condensatorului de sarcină. Trebuie evitate buclele de masă, aceștea trebuind să aibă tresee cât mai scurte.
Descrierea parții metalice
Circuitul prezintă o parte metalică (metal pad), ce nu este conectată intern la nici un potențial. Prin urmare se poate atașa pe un radiator, pentru o mai bună disipare a căldurii.
Pentru un răspuns mai rapid
Timpii de creștere și de scădere sunt factori ce limitează utilizarea în privința generării câmpului. Pentru a crește rata de transfer (baud rate), trebuie accelerat răspunsul circuitului. Figura12 ne prezintă o modificare a circuitului tipic (figura8) ce asigură timpi de răspuns măriți.
Schema modificată a circuitului tipic
Figura12
Circuitul prezentat anterior îi trebuie aproximativ 130µs pentru a stinge 70% din valoarea maximă a amplitudinii. Timpi de start pot fi scăzuți prin pornirea circuitului rezonanz în mod „full bridge” (punte), menținând rezonanța în semipunte odată ce amplitudinea maximă este stinsă. Conceptul poate fi implementat, utilizând două semipunți în montaj „full bridge”. Circuitul este pornit, utilizând cele două semipunți comandate cu semnale defazate cu , între ele având o tensiune aplicată, aproape dublă (față de montajul în semipunte). În momentul în care amplitudinea maximă este atinsă, o semipunte este adusă la masă (GND). Unui circuit bazat pe 2X TC442XFET îi trebuie aproximativ 40µs pentru a atinge valoarea maximă, ceia ce se traduce printr-o creștere semnificativă a vitezei.
Pentru un timp de stingere redus
Figura13 prezintă un circuit de accelerare a timpului de stingere. Pentru a descărca circuitul RLC se utilizează un triac fiind posibilă o descărcare aproape instantanee.
Figura13
Triacul este de obicei „deschis” la trecerea prin 0, reducându-se astfel zgomotele.
Circuitul de comandă (driver-ul) cu PWM este in fază cu sarcina electrică ce străbate circuitul, dacă acesta este bine acordat. Curentul și tensiunea prin circuitul rezonator serie RLC sunt defazate cu , fapt arătat in figura14.
Figura14
Circuitul „turn off clamp” are avantajul că reduce la 0 câmpul magnetic remanent după stingere. Acest lucru simplifică proiectarea receptorului.
Circuitul AGC al receptorului trebuie să dinstigă între o dată validă și un câmp magnetic remanent la stingere, în caz contrar va fi interpretat ca fiind un logic „gigh” continuu.
Aprindere sincronizată
În figura15 se arată secvența corespunzătoare „turn on” din punct de vedere al semnalului PWM.
Figura 15
Circuitul de „clamping turn off” se redresează prin descărcarea circuitului RLC prin R1, R2 și triacul Q1 a cărei tensiune minimă este de 600.
Triacul Q1 este un model Q6X3 în montaj SMD fabricat de către Techcore Electronics. Tensiunea ridicată a circuitului RLC rezonant serie necesită prezența lui R1 și R2. Un singur tranzistor pnp-T1 formează circuitul de poartă și este activat cu un zero logic de la pinul RB7. Circuitul „clamping” asigură absența oricărei energii reziduale a circuitului RLC simplificând proiectarea receptorului.
II.2.f.Modul de alimenatare
Circuitul consumă aproximativ 500mA când transmite continuu în mod semipunte. El cosumă aproximativ dublu în timpul celor 40µs de strat-up.Consumul tipic pentru un cod Manchester este de aproximatiz 250mA, iar consumul instantaneu de vârf de 1,2A. Puterea aproximativă consumată în modul de transmitere continuă este de aproximativ 3W. C4 este principalul condensator de filtrare (netezire a riplului). Se utilizează un condensator de la Panasonic 25V/500µF deoarece suportă curenți de riplu de putere 1,2A.
Comunicația
Comunicația serială se face prin portul UART al microcontrolerului PIC16F628 iar translarea nivelului logic cu un circuit MAX232.
II.3.Softwer-ul
Trenul de impulsuri arătat in Figura16 se transmite când este detectat un semnal de intrarea al trigger-ului. După cum se arată și în figură modulul va aștepta 50ms un răspuns din partea modulului receptor RF. Această notificare se transmite pe interfața LIN. Dacă nu primește nici un răaspuns de la modulul RF, va mai transmite același mesaj de două ori, apoi intră în modul „power down” așteptând un nou impuls de trigger.
Figura16
În anexa5 este prezentat programul stației bază.
Mesajul de joasă frecvență este compus din purtătoarea de 125KHz după cum urmează:
4ms ON;
500µs OFF;
2ms ON urmat de 2ms OFF pentru a valida filtrul de ieșire;
16 biți LSB ce reprezintă codul;
50ms OFF așteaptă un răspuns din partea receiver-ului RF.
Cu 16 biți ai mesajului, ce reprezintă codul sutn generați pentru a fi siguri că doar codurile memorate vor fi recunoscute. Alte module asemănătoare aflate în vecinătate nu vor recepționa codul. Codul de siguranță poate fi extins sau redus în funcție de cerințele aplicației.
Pentru acest circuit cei 16 biți sunt suficienți.
II.4.Concluzii
Alegerea unui microcontroler PIC16F628 cu modul PWM este soluția bună în proiectarea practică a unui circuit de joasă frecvență emițător.
Principalele avantaje ale utilizării câmpului magnetic de joasă frecvență în comunicații sunt:
O bună penetrare a câmpului magnetic;
Control precis al razei de acțiune;
Consum de energie scăzut;
Preț de cost scăzut.
Capitolul III. Modulul Emițător-Transponder
III.1. Introducere
Transponderul se alimentează prin înscrierea unei bobine de 3VniHM în locașul său. Când transponderul este alimentat asteaptă un semnal de joasă frecvență de 125KHz emis de stația bază. Pe plăcuța de citcuit se găsește 3 bobine: una de dimensiuni mai mari cu miez de aer situată în partea de sus conectată la pinul LCX și două bobine cu miez de ferită in partea de jos conectate la pini LCY respectiv LCZ. Aceste bobine detectează semnalul de 125KHz din direcțiile x, y sau z.Transponderul mai are un emițător UHF ce funcționează pe principiul SAW (Surface Acoustic Wave). O buclă dreptunghiulară imprimată pe circuit constituie antena emițătorului UHF. Trasponderul este prevăzut cu două LED-uri unul verde (D6) ce va clipi când transponderul receptează un semnal valid LF și unul roșu (D7) ce va clipi când acesta va emite răspunsul UHF (Ultra High Frequency).
Circuitul a fost proiectat să funcționeze fie ca un microcontroler PIC16F636, fie ca un PIC16F639. Cu mici modificări, se poate utiliza și un PIC12F635.
Circuitul dispune de următoarele dotări:
până la 5 butoane configurate ca intrări;
una sau două ieșiri pentru LED-uri;
un emițător cu frecvență de 433.92MHz;
3-axis LF receiver.
Anexa6: Poza modulului emițător-transponder
III.2. Hardware-ul
Pentru aplicațiile dispozitivului pasiv de acționare la distanță (PKE) se utilizează un microcontroler PIC16F639 (figura1) și bobinele aferente recepției semnalului de joasă frecvență.
Figura1
Cele 4 bobine (S1-S4) ale emițătorului sunt conectate la înfășurările corespunzătoare ale microcontrolerului. Utilizatorul poate confirma orice combinație de cod. Ieșirea RFEN este opțională și nu se utilizează deoarece ieșirea sa este cu unul din pinii de intrare. Dacă ieșirea RFEN este validată, se va pierde acel buton de intrare.
Butonul S5 nu este asociat unui bit specific de cod, ci el transmite o funcție diferită de utilizator, memorată în memoria EEPROM.
Memoria EEPROM de tip flash poate fi programată prin J1. Acest conector este compatibil cu programatoarele PICKIT1 si PIKIT2.
Modelul de utilizare a dispozitivului pasiv de acționare la distanță( PKE)
III.2.a.Placa transponderului
Specificații tehnice
III.2.b.Emițătorul
Oscilatorul RF (Radio Frequency) utilizează un rezistor SAW (Surface Acoustic Wave) ce operează pe frecvența de 433,92MHz.
Emițătorul poate fi reconfigurat și/sau reprogramat fară a fi nevoie să scoata microcontrolerul de pe placă datorită conectorului J1ce permite programarea
Conectorul pentru programare
Anexa7 prezintă schema circuitului emițător-transponder.
III.2.c.Utilizarea unui microcontroler PIC16F639
Microcontrrolerul PIC16F639 este cel mai potrivit a fi utilizat în aplicațiile ce implică o comunicare bidirecțională la frecvențe joase. Dispozitivul include și un microcontroler PIC16F636 și un dispozitiv „front end” pe trei canale LF, în aceeași capsulă SSOP cu 20 de pini.
Cele două dispozitive sunt conectate intern prin interfața SPI (Serial Parallel Interface). Secțiunea „front end” este optimizată in scopul detectării semnalelor modulate pe 125KHz. Pentru aceasta, este necesar un circuit LC – rezonant extern. Dispozitivul poate detecta semnale modulate pe 125KHz, de amplitudini de până la 3m. Aceste intrări de mare sensibilitate permit raze de detecție a semnalelor apreciabile.
Dispozitivul poate transmite date printr-un modulator de joasă frecvență intern în cazul distanțelor mici sau printr-un rezonator extern UHF – pentru distanțe mai mari. Poate emite și recepta date securizate de către dispozitivul Hardware KEELOQ.
O legătură bidirecțională se poate stabili cu stația de bază (base station) pe o distanță de până la 3 metri (prin utilizarea rezonatorului intern).
Modulul are 3 canale de intrare de joasă frecvență (LF) fiecare canal având proprii pini pentru conectarea antenelor externe. Așadar 3 antene poziționate ortogonal pot fi conectate la dispozitiv pentru detecția semnalelor pe cele 3 axe (x, z și y), ceea ce reduce problemele legate de orientarea antenei la comunicațiile wireless.
Fiecare dintre canale are câte un condensator intern pentru acord fin programabile prin soft de 63pF (un pas de 1pF).
Funcțiile secțiunii „front end” sunt controlate de registre interne de configurare. MCU (Master Controll Unit) poate reprograma un mod dinamic registrele în funcție de informațiile recepționate. Aceasta poate emite semnal nemodulat, semnal de clock sau un semnal de control ce indică puterea semnalului emis (RSSI – curent) prin starea anumitor biți din registrele de control.
Tot această secțiune mai prezintă un filtru pe ieșire configurabil în așa fel încât MCU (Master Controll Unit) poate fi „trezit” (wake-up) de către un singur semnal ales, celelalte fiind ingnorate.
Pentru alimentarea de la baterii dispozitivul este optimizat în așa fel încât să consume foarte puțină energie în cele trei moduri de funcționare (sleep, stand-by și active), deasemenea poate funcționa în modul „battery back-up” sau chiar fără baterie cu ajutorul unor circuite externe. Dispozitivul se prezintă în capsule SSOP 20 de pini.
Algoritmul de funcționare al MCU
Comunicația bidirecțională dintre stația bază și transponder este prezentată în figua2.
Secvențele de comunicație dintre stația bază și transponder
Figura2
Stația bază trimite o comană (semnal de joasă frecvență pe 125KHz) recepționează raspunsul transponderului. Stația bază repetă funcțiile de emisie și recepție căt timp este alimentată figura3 ne arată comanda pe joasă frecvență, formatul datelor și forma de undă.
Figura3
Formatul datelor recepționate este prezentat în figura4.
Formatul datelor recepționate
Figura4
Semnalul comandă emis de stația bază constă dintr-o purtătoare de 125KHz modulată după cum urmează:
4ms ON pentru stabilizare;
500µs OFF;
2ms ON urmat de 2ms OFF (pentru validarea filtrului la ieșire). Acest mod este dependent de setările de configurație ale AFE(output enable filter);
10 biți de comandă (3C), paritatea și bitul de stop. Primul transmis este bitul LSB (Least Significant Bite). Datele sunt codate de un semnal PWM (Pulse Width Modulation) în figura5.
Datele codate în format PWM
Figura 5
50ms ON pentru esantionarea RSSI (received signal strength indicator);
așteptarea unui răspuns valid din partea transponderului.
Teorie privind funcționarea microcontrolerului
Microcontrolerul PIC16F639 și dispozitivul MCP2030 (tip de placă) sunt încorporate într-o singură capsulă SSP cu 20 de pini pentru aplicații ce utilizează comunicații bidirecționale, comunicând printr-o interfață SPI – internă.
Dispozitivul are 12 pini In – Out pentru semnale digitale si 4 pini In – Out pentru semnale analogice. Cei 4 pini pentru semnalele analogice pot fi utilizați pentru detecția semnalelor de joasă frecvență și pentru transmisa datelor. Circuitul rezonant LC extern este conectat la cei 4 pini, aceștia fiind optimizați pentru semnalele cu frecvență de 125KHz având o sensibilitate de intrare de aproximativ 3m.
Configurația registrelor interne
Secțiunea MCP2030 (front end) are 8 regiștri de configurare. Șase dintre ei se utilizează la setarea funcționării dispozitivului, unul este pentru biții de paritate și ultimul pentru indicarea statusului dispozitivului.
Fiecare registru este format din 9 biți inclusiv un bit de paritate. Toți regiștrii sunt read-write cu exceptia celui de status, care este read-only.Regiștrii sunt accesibili în orice moment prin interfața SPI. Cei trei biți SPI de comunicație (SDI, , SCLK) sunt legați intern cu pinii secțiunii digitale.
Canalele de intrare pentru LF
Dispozitivul detectează semnale individuale utilizând canalele x, y sau z. Cele trei canale individuale pot fi validate sau invalidate pentru reducerea consumului de energie sau fie în funcție de aplicație.
Circuitul retzonant extern LC și condensatorul intern de acord fin
Dispozitivul are nevoie de un circuit LC rezonant extern pentru a recepționa semnale de joasă frecvență sau pentru a transmite date utilizatorului LF (low – frequency) talk – bock.
Fiecare cod de intrare are nevoie de propriul său circuit rezonant. Tensiunea de intrare culeasă de circuitul rezonant extern este maximă când circuitul este acordat precis cu frecvența purtătoare semnalului. Tensiunea culeasă de antenă este calculată cu ecuația de mai jos:
=2πfNSQcosα
unde: f = frecvența semnalului incident;
N = numărul de spire al babinei;
S = suprafața înfășurării bobinei[];
Q = factorul de calitate al bobinei și condensatorului;
= inducția magnetică;
α = unghiul de incidență al semnalului.
În ecuația de mai sus factorul de calitate Q este o măsură a selectivității în frecvență în raport cu semnalul de interes.
Q =
unde: = frecvența de acord al circuitului LC;
B= banda de trecere la 3dB.
Frecvența de rezonanță a circuitului LC se definește cu formula:
=
Dată fiind o bobină poziționată într-un anumit mod tensiunea culeasă de aceasta este în funcție de unghiul de incidență α al semnalului respectiv.
Tensiunea de bobină este maximă când liniile de câmp sunt paralele cu aceasta (α=0) și minimă când sunt perpendiculare pe ea (α=) din figura6.
Dependența tensiunii culeasă de antenă în raport cu poziția sa
Figura6
În aplicațiile PKE (Passive Keyless Entry) pentru o funcție sigură se lucrează cu bobinele pozoționate ortogonal pentru a recepționa semnale după toate cele 3 axe x, y și z.
Pnetru a compensa dezacordurile cauzate de condițiile de mediu (temperatură) și de toleranțele componentelor dispozitivul, are un condensator intern programabil prin soft pentru a menține circuitul LC acordat în orice moment.
Dinamica semnalului de intrare
Circuitul poate detecta semnale de joasă frecvență în gama 3m÷700m. Dispozitivul „front end” limitează tensiunea pe bobină sub 11 pentru a proteja circuitul intern de supratensiuni.
Filtre de ieșire
Partea digitală a circuitului poare rămâne în modelul „ sleep” din considerente energetice sau poate executa diferite instrucțiuni până când este disponibilă o iesire din secțiunea analogică.
Pentru acest lucru, dispozitivul dispune de un filtru la ieșire programabil. Dacă semnalul de intrare îndeplinește condițiile filtrului, acesta va valida o ieșire astfel va ține „ închise” ieșirile.
Figura7 arată un exemplu cand filtru este validat și semnalul îndeplinește condițiile filtrului. Ieșirea demodulată este disponibilă după filtrarea formei de undă. Dacă pinul aferent ieșirii demodulate (LFDATA) este conectat la unul din pinii portului A (de întrerupere) partea digitală va ieși din modul „sleep”(datorită întreruperii) și va decoda semnalul de intrare.
Figura8 ne prezintă un exemplu când semnalul de intrare nu îndeplineste condițiile filtrului, iar ca rezultat nu va apărea nici un semnal la ieșire. Prin urmare partea digitală nu va ieși din modul „sleep” dat de către un semnal oarecare
Figura7
Figura8
Cazul în care filtrul nu este activat
Figura9
Selecția tipului de ieșire a detectorului de semnal LF
Partea analogicaă (front end) poate emite date demodulate, semnal de ceas sau semnal de indicare a parții semnalului recepționat. Selecția tipului de semnal de emisie se stabilește din regiștrele de comunicare.
III.2.d.Transmiterea datelor de la dispozitiv la stația „bază”
Dispozitivul are căte un tranzistor modulator pe fiecare canal, plasat între antenele de joasă frecvență și pinii LCCOM. Activând sau dezactivând tranzistori modulatori, va avea ca efect „clamping” sau „unclamping” tensiunii pe bobină și se numește semnal raspuns la joasă frecvență (talk-bock).
Se utilizează două comenzi transmise pe SPI (Serial Parallel Interface)-clamping-ON și clamping-OFF.
Stația bază monitorizează schimbările ce apar la nivelul tensiunii bobinei transponder-ului și reconstituie datele modulate. Acest procedeu se aplică doar pe distanțe mici,pentru distanțe mari se folosește antena UHF(Ultra High Frequency) externă pentru transmisia datelor.
Comunicația bidirecțională
Un transponder cu un preț scăzut ce utilizează comunicația bidirecțională se poate realiza utilizând doua frecvențe:
un semnal de LF (Low-Frequencz)-125KHz pentru recepția comenzii de la stația bază;
un smnal în domeniul UHF (Ultra High Frequency) pentru emiterea datelor către stația bază.
Deoarece dispozitivul nu dispune de o antenă UHF (Ultra High Frequency) –aceasta se montează extern. Datele modulate sunt generate de către dispozitiv și apoi sunt emise de către antenă. Semnalul UHF modelat este transmis stației bază printr-o mică bobină (buclă) imprimată pe PCB-ul (Print Circuit Board) transponderului. Raza tipică de acțiune este de aproximativ 100m pentru aplicații low-power fara licentă de emisie.
Figura10 prezintă un exemplu de utilizare a dispozitivului PKE ce utilizează sisteme bidirectionale de comutație.
Sistemul bidirecțional PKE
Figura10
Când ambele modele (stația bază și transponderul) vor fi alimentate cu tensiunea corespunzătoate sistemul va lucra în felul următor:
stația bază emite o comandă pe joasă frecvență (125KHz) cerând ID-ul transponderului și valoarea RSSI;
transponderul recepționează semnalul stației bază dat de circuitul rezonamt extern (antena);
transponderul emite date în domeniu UHF-ca raspuns, dacă semnalul emis de stația bază este validat;
stația bază recepționează datele emise de transponder (codul) –le decodifică și dacă sunt valide acționează diferite alte dispozitive( relee, încuietori electromagne etc.).
Figura11 ne prezintă semnalul LF și datele demodulate de placa MCP2030.
Semnalul LF și datele demodulate de placa MCP2030
Figura11
Raza de acțiune a dispozitivului PKE este limitată de semnalul de 125KHz al stației bază. Antena transponderului (circuitul LC rezonant) poate culege semnale mai mari de 3m tipice stației bază la distanță de panăla 3m.
III.3.Software-ul
Transponderul lucrează ca și un modul RKE (Remote Keyless Entry) cu cinci butoane când nu primește semnalulde LF. Microcontrolerul răspunde ca și cum un al șase-lea buton ar fi fost amplasat atunci când mesajul de LF a fost decodat și validat.
În mod normal transponderul stă în modul „sleep”. Când un comutator este adus în zero sau când este recepționat semnalul LF, dispozitivul se va „trezi” și va citi opțiunile configurate și în funcție de aceasta va stabili ce date și ce tip de modulații vor fi sub formă de cuvinte codate. Acestea vor fi transmise după ce butonul a fost apăsat și atât timp cât este apăsat.
Dacă în timpul transmisiei este detectată apăsarea altui buton codul aflat în transmisie va fi oprit și un nou cod se va transmite.
Software-ul include 4 lini de cod opționale. Aceste obțiuni sunt validate prin îndepartarea semi-coloanei din coloana 1 a linieide cod.
Alegerea procesului-validează unul din lista de mai jos:
#DEFINE P12F635 1; Sets environment for PIC12F635;
#DEFINE P16F636 1; Sets environment for PIC16F636;
#DEFINE P16F639 1; Sets environment for PIC16F639.
Selectarea butoanelor portului A astfel încât acesta poate fi conectat la (masa) via unor rezistoate pull-up sau la (+) via unor rezistoare pull-own;
#DEFINE pullup 1 ; Set to select pull-ups on PORT A.
;For pull-downs, comment out.
Deoarece emulatorul in-circuit(încorporat) nu supurtă funcția „sleep”;
#DEFINE ICEmul 1 ; Is set, device will not SLEEP, but will
;loop forever
Selectarea opțiunii de codare(criptare) ;
#DEFINE NoEncryption 1
III.4.Aplicații
Microcontrolerul PIC16F639 este o alegere bună pentru un senzor LF sau pentru transponderul PKE. Dispozitivul își găsește numeroase aplicații în domeniul auto „automotive” și cel al securității.
În industria auto:
Sisteme PKE;
Ca dispozitive pentru deschiderea ușilor sau a porților;
Ca sisteme ce blochează motorul;
Inițiatoare LF pentru senzori de monitorizare a presiunii pneurilor.
În domeniul securității:
Controlul accesului de la distanțe mari;
Puncte de acces keyless;
Controlul și managementul bunurilor.
Exemple de aplicații
În figura12 este prezentat un sistem PKE multifuncțional. Un singur transponder este folosit pentru mai multe puncte de acces.
Figura12
Figura 13 arată un exemplu când dispozitivul este folosit ca un senzor de monitorizare a presiunii pneurilor. Aceasta detectează comenzile de la inițiatorul LF și transmite datele purtătoatre de informaăii cu privire la presiune modulate cu un semnal UHF stației bază.
Figura13
III.5.Concluzii
Microcontrolerul PIC16F639 este folosit atât ca detector de joasă frecvență cât și ca emițător UHF fiind potrivit unei game lagârgi de aplicații „inteligente”. Utilizând dispozitivului cu o antenă UHF putem construi un transponder ieftin și fiabil. Pnetru comunicații de date securizate dispozitivul folosește perifericul său de criptare a datelor (KEELOQ).
Sensibilitatea ridicată a dispozitivului la semnalele LF de 125KHz îl fac potrivit folosirii ca senzor de câmp magnetic.
Dispozitivul poate funcționa și în modul fără alimentare (baterie) utilizănd circuite externe „charge- up”.
III.6.RFID Transponder Coils-5315TC
Bobina 5315TC este cea mai fiabilă și cu prețul cel mai scăzut, destinată aplicațiilor RFID (Radio frequency identification) pe 125KHz.
Terminalele acesteia au suprafețe mari, pentru a asigura un contact ferm cu placa pe care este montată. Spirele sunt înfășurate pe o carcasă din plastic ce îi conferă acesteia o rezistență mecanică sporită. Faptul că aceasta poate suporta de pană la 125, o face aplicabilă în medii grele. În plus față de modelul prezentat producătorul „Coilcraft” poate proiecta și bobine pentru alte frecvențe.
Specificații tehnice
Capitolul IV.Modul PKE-Receptor/Decodor
IV.1.Introducere
Modul constă într-un receptor UHF, un microcontroler, o sursă de alimentare, LED-uri, indicatoare și o interfață.
Anexa8:Poza modulului receptor/decoder
Figura1
IV.2. Hardware-ul
IV.2.a. Receptorul UHF
Intrarea RF este un modul hibrid compact AM super-regenerativ, ce se utilizează la reacția semnalului necodat de la emițătorul AM. Acest modul este foarte stabil în frecvență într-o gamă largă de temperaturi. O bobină cablată elimină nevoia unor componente ajustabile. O ieșire compatibilă TTL/CMOS-acceptă date de transfer de până la 2MHz. Această intrare a modulului receptor este conectată la portul A la microcontroler.
IV.2.b.Microcontrolerul
Acesta poate fi oricare PICmicro cu 14 biți dar de obicei se utilizează un PIC16F636 sau PIC16F688. Primul are intergrat encoderul KEELOQ în timp ce al doilea are portul USART (EAUSART) ce suportă protocolul interfeței LIN si al J2602
Interfețele
Un transceiver LIN-MCP201 se utilizează pentru a realize fizic bus-ul slave ce trebuie conectat la o interfață LIN compatibilă. O diodă Zenner protejează bus-ul de tensiuni tranzitorii.Un rezistor „pull-up” la pinul /SLPS – asigură că dispozitivul se resetează la o anumită pantă de tensiune.
IV.2.c.Modulul de alimentare
Tensiunea de alimentare poate ajunge fie printr-un conector jack (J3), fie prin J1 (AMP770969) și trebuie să fie cuprins în plaja 8÷18.
Conectori
Sistemul de conector J1
Figura2
Programarea conectorului J2
Figura3
Puterea conectorului J3
Figura4
Anexa9: Schema circuitului receptor/decoder
IV.2.d.Familia PICmicro-Mid-range cu decoder de cod
„săritor”(happing code)
Este descris decloderul de cod „săritor” KEELOQ, implementat în capsula microcontrolerului PIC16CE624(figura5).
Figura5
Softul a fost realizat ca un grup de module independente. Pentru claritate fiecare modul acoperă o singura funcție.
Caracteristici cheie
Setul de module ce urmează a fi prezentat implementează următoarele caracteristici:
mod de învațare normală;
poate memora codurile a 16 emițătoare utilizând memoria interna EEPROM;
poate lucra în întreruperi furnizate de semnale PWM;
este compatibil cu toate decodoarele KLEEQ cu formatul de transmisie PWM selectat operând in „slow-mode” (TE=400µs);
este compatibil cu decodorul HCS512;
posedă un oscilator RC cu autocalibrare în timpul recepției.
Reprezentarea modulelor
Codul prezentat este compus din următoarele module de bază:
RXI.INC – receptor în întrerupere;
KEYGEN.INC – generarea de rutine KEELOQ în modul normal;
FASTDEC.INC – rutină KEELOQ de decriptare;
MEM-62X.INC – drivere pentru memoriile EEPROM ale microcontrolerului;
TABLE.INC – memoria tabelului;
MID.ASM – inițializare și bucla principală
Prezentare modulelor
Figzra6
IV.2.e.Modulul receptor
Întreaga rutină de recepție a fost implementată într-un mod în care poate opera cu o bază de timp fixă (ce poate fi utilizată pentru crearea de timere virtuale). Modul de lucru pentru această rutină (ISR) este complet transparent pentru programul principal fiind similar portului UART. De fapt rutina de întrerupere consumă aproximativ 30% din puterea de calcul a microcontrolerului.
După ce un cuvânt de cod de 66 biți transmiși a fost recepționat și stocat într-un buffer de 9 biți, se setează un simplu flag (RF-FULL) și receptorul intră în modul „ idle”.
Este responsabilitatea programului principal să utilizeze datele stocate în buffer și să reseteze bitul flag pentru a valida o nouă recepție.
Pentru a obține o compatibitate maximă cu toate encoderele KEELOQ, cu sau fără posibilitatea de acord fin al oscilatorului, receptorul se recalibrează periodic prin schimbarea periaodei de timp în concordanță cu lungimea pauzei caracteristice de sincronizare (TH=10XTE). Acest fapt îi permite decoderului să funcționeze cu un semnal de clock simplu (oscilatorul RC).
Forma codată a cuvântului transmis
Figura7
Organizarea cuvântului codat
Figura8
Singurul periferic utilizat de rutina ISR este Timer și întreruperea de Overflow a acestuia disponibile pe orice microcontroler PICmicro din gama MID-RANGE.
Timer-ul este reâncărcat la orice Overflow creând astfel timer-ul virtual pe 16 biți, numit XTMRH/XTMRL.
Rutina de recepție poate modifica perioada bazei de timp, în timpul recepției celor 6biți ai transmisiei (crescând-o sau micșorând-o) pentru a se sincroniza și a compensa diferențele de clock dintre codor și decodor (encoder și decoder).
Modul de decriptare rapidă
Acest modul conține implementarea algoritmului de decriptare KEELOQ ce a fost optimizat pentru viteza unui PICmicro din familia Mid-rage. Acesta permite timpi mici de răspuns chiar la viteze de 4MHz.
Funcția de decriptare este utilizată în toate schemele de învățare și reprezintă un bloc fundamental al decodoarelor KEELOQ.
Modulul generator de cod (key generator)
Rutina de decriptare KEELOQ a modulului de decriptare rapidă este utilizată pentru a genera o „cheie” la fiecare cuvânt de cod recepționat.
Avantajul este o înregistrare a transmisiei mai mică, pe 8 biți, în loc de 16 biți. Acest lucru se traduce prin dublarea numărului de transmițătoare ce pot fi învățate utilizând memoria EEPROM de 128biți a microcontrolerului PIC16CE624. Această reducere a spațiului ocupat în memorie prezintă însă dezavantajul unei puteri de calcul sporite pentru procesarea fiecărui cuvânt de cod.
Când un cuvânt nu este recepționat este aplicat algoritmul „key generation” în mod „Normal Learn” rezultând o cheie de decriptare plasată în aria DKEY[0…7].
În timpul unei transmisii continue, când utilizatorul ține apăsat butonul transmițătorului, algoritmul „key generation” nu este repetat.
Modulul Table
Unul din task-urile decodorului este acela de a menține o bază de date ce conține toate codurile unice (IDs-serial numbers) ale transmițătoarelor învățate.
În cele mai multe cazuri baza de date poate fi un simplu tabel ce asociază acele coduri memorate cu numărătoarele de sincronizare (ce stau la baza tehnologiei „cod săritor” happing).
Fiecărui emițător învățat îi este atașată o înregistrare pe 8 biți ce conține toate informațiile relevante.
Înregistrarea transmisiilor
Valoarea numărătorului de sincronizare pe 16 biți este memorată de două ori, deoarece este cea mai importantă informație. Aceasta este îmbunătățită la fiecare apăsare de buton a telecomenzii.
La citirea sincronizată a celor două valori memorate, decoderul verifică dacă cele două valori sunt identice.
Varianta prezentată limitează la 16 numărul emițătoarelor ce pot fi memorate, aceasta datorită memoriei interne a microcontrolerului PIC16CE624.
Prin metoda simplă a listei liniare numărul poate ajunge la câteva zeci de coduri.Datorită simplității timpul de recunoaștere a unui emițător crește liniar cu lungimea tabelului.
Este posibilă atingerea unor tabele cu mii de coduri memorate prin înlocuirea modulului cu un tabel cu o structurare a datelor mai sofisticată, cum ar fi „Hash Table” sau cu un modul cu algoritmul de indexare.
Din nou datorită simplității soluției curente nu este posibilă ștergerea selectivă a codului unui emițător memorat, ci a întregului tabel (Bulk Erase).
Acest lucru se întâmplă când utilizatorul ține apăsat butonul de „învățare” aproximativ
10 secunde. LED-ul se va stinge și la eliberarea butonului se va aprinde o dată pentru a valida comanda de ștergere.
Modulul MEM-62X
Acest modul este constituit în jurul unui set de rutine deja existent, special concepute pentru memoriile EEPROM a microcontrolerului PIC16CE62X.
Modulul permite accesul la memorie cu ajutorul a două rutine Rdword și Wrword care cites, respectiv scriu valoarea codului pe 16 biți într-o adresă specifică în INDHI/INDLO.
IV.3.Software-ul
Comportarea acestuia a fost realizată astfel încât să emită comportarea unui decoder integrat HCS512.
Cea mai mare parte a timpului bucla principală rămâne în „idle”, așteptând recepționarea unui semnal sau a unui cuvânt de cod.
Bufarea dublă a recepției se realizează în memoria RAM pentru a permite revalidarea imediată a recepției unui nou cod și pentru a crește timpul de răspuns.
Principiile de bază ale programării structurale au fost aplicate la realizarea decodorului KEELOQ având codul săritor prezentat anterior. Memoria mai mare disponibilă în modulul microcontrolerului PICmicro din gama Mid-range a permis realizarea codului într-un mod clar și simplu.
Întreruperile au fost utilizate pentru a „virtualiza” rutina de recepție, precum un periferic software.
Anexa1: Poza dispozitivului PKE (Passive Keyless Entry)
Anexa2: Poza dispozitivului RKE (Remote Keyless Entry)
Anexa3: Poza modulului stației bază
Anexa4: Schema circuitului stației bază
Anexa5: Programul stației bază
#include <p18f2680.inc>
ERRORLEVEL 0,-301,-302,-305, -226 ; Messages, Warnings and Errors Printed
; Ignore [301] => Processor Mismatch.
; Ignore [302] => Register in operand not in bank 0.
; Ignore Warning[226]: Destination address must be word aligned
__CONFIG _CONFIG1H, _OSC_HS_1H & _FCMENB_OFF_1H & _IESOB_OFF_1H
__CONFIG _CONFIG2L, _BOR_OFF_2L & _BORV_27_2L & _PWRT_ON_2L
__CONFIG _CONFIG2H, _WDT_OFF_2H & _WDTPS_128_2H
__CONFIG _CONFIG3H, _MCLRE_OFF_3H & _LPT1OSC_OFF_3H & _PBADEN_OFF_3H
__CONFIG _CONFIG4L, _XINST_OFF_4L & _LVP_OFF_4L & _STVREN_OFF_4L
;––––––––––––––––––––––––––
; INCLUDE FILES
;––––––––––––––––––––––––––
subtitle "Data and Variable Definitions"
page
;––––––––––––––––––––––––––
; USER DEFINED REGISTER
;––––––––––––––––––––––––––
cblock 0x20
; COUNTER REGISTERS
CNT0,CNT1,CNT2,CNT3
CNT_HI
CNT_LW
;***** VARIABLE DEFINITIONS
w_temp
status_temp
pclath_temp
TEMP1
TEMP2
RXTX_REG
TEMP_COUNTER
COUNTER
CHAR
LSD
MSD
LCD_DATA_image
TEMP
pingcounter
resetbyte
MESSAGE_COUNTER ; Countes number of bytes to receive or transmit
ID_TEMP ; Register for ID byte
TEMP_TRANSFER ; Data transfer register
DATAPOINTER:10 ; address of data byte buffer
HdrID
ButtonImage
endc
TRANSMIT_OK EQU 0
;CNT_HI
bit_8s EQU 00000001B
bit_16s EQU 00000010B
bit_32s EQU 00000100B
bit_1m EQU 00001000B
bit_2m EQU 00010000B
bit_4m EQU 00100000B
bit_5m EQU 01000000B
bit_10m EQU 10000000B
;CNT_LW
bit_32ms EQU 00000001B
bit_64ms EQU 00000010B
bit_128ms EQU 00000100B
bit_256ms EQU 00001000B
bit_512ms EQU 00010000B
bit_1s EQU 00100000B
bit_2s EQU 01000000B
bit_4s EQU 10000000B
page
; ********* USER PORT DEFINITIONS *******
; ********* PORTA BIT DEFINITIONS *******
PA_CFG EQU B'11011000' ; PORTA : TRI-STATE VALUE
#define RS PORTA,0 ;LCD Command/Data Select
#define RW PORTA,1 ;LCD Read/Write Control
#define E PORTA,2 ;LCD E-strobe
#define LCD0 PORTA,3 ;LCD Data bit 0
#define LCD1 PORTA,4 ;LCD Data bit 1
#define BIAS PORTA,5 ; Receive Bias output control
LCD_CNTL_LAT EQU LATA
LCD_CNTL EQU PORTA
; ********* PORTB BIT DEFINITIONS *******
PB_CFG EQU B'11011011' ; PORTB : TRI-STATE VALUE
#define Button PORTB,0 ; Button SW1 Input
#define Ignition PORTB,1 ; Ignition ON Input
; #define CANTX PORTB,2 ; CAN Output
; #define CANRX PORTB,3 ; CAN Input
#define RFIN PORTB,4 ; RF INPUT
#define RedLED PORTB,5 ; VALID INDICATOR LED OUTPUT
; #define PORTB,6
; #define PORTB,7
; ********* PORTC BIT DEFINITIONS *******
PC_CFG EQU B'10101011' ; PORTC : TRI-STATE VALUE
#define LCD2 PORTC,0 ;LCD Data bit 2
#define LCD3 PORTC,1 ;LCD Data bit 3
#define PWM PORTC,2 ; LF PWM Output
; #define PORTC,3
#define CSwake PORTC,4 ; Chip Select / Wakeup output to LIN xcvr
#define FAULT_SLPS PORTC,5 ; Fault input / Slope Select output to LIN xcvr
#define CommTX PORTC,6 ; LIN Bus Transmit Output
#define CommRX PORTC,7 ; LIN Bus Receive Input
Dev_Freq EQU D'20000000' ; Device Frequency is 20 MHz
;LCD_INIT_DELAY EQU (HIGH ((( Dev_Freq / 4 ) * D'46' / D'10000' ) / 3 ) ) + 1
; LCD Module commands
;
DISP_ON EQU 0x0C ; Display on
DISP_ON_C EQU 0x0E ; Display on, Cursor on
DISP_ON_B EQU 0x0F ; Display on, Cursor on, Blink cursor
DISP_OFF EQU 0x08 ; Display off
CLR_DISP EQU 0x01 ; Clear the Display
ENTRY_INC EQU 0x06 ;
ENTRY_INC_S EQU 0x07 ;
ENTRY_DEC EQU 0x04 ;
ENTRY_DEC_S EQU 0x05 ;
DD_RAM_ADDR EQU 0x80 ; Least Significant 7-bit are for address
DD_RAM_UL EQU 0x80 ; Upper Left coner of the Display
BIT4LINE2 EQU 0x28
;
subtitle "Initialization Code"
page
;––––––––––––––––––––––––––
; PAGE 0:
;––––––––––––––––––––––––––
ORG 00H
;––––––––––––––––––––––––––
;
; FUNCTION : RESET ()
;
; DESCRIPTION : PROGRAM RESET ROUTINE
;
;––––––––––––––––––––––––––
RESET_VECTOR
MOVLW PA_CFG ; UPDATE TRIS REGISTER FOR PORTA
MOVWF TRISA
MOVLW PB_CFG ; UPDATE TRIS REGISTER FOR PORTB
MOVWF TRISB
MOVLW PC_CFG ; UPDATE TRIS REGISTER FOR PORTC
MOVWF TRISC
CLRF PORTA ; RESET PORTA
MOVLW b'00110000'
movwf PORTB ; RESET PORTB
MOVLW b'11110000'
movwf PORTC ; RESET PORTC
; bsf RFIN
; bsf RedLED ;turn off red LED
CLRF STATUS ; Do initialization
CLRF INTCON
CLRF PIR1
CLRF PIE1 ; Disable all peripheral interrupts
MOVLW 0x07 ;
MOVWF ADCON1 ; Port A is Digital.
MOVLW B'00000111' ; SETUP TMR0 PRESCALER
MOVWF T0CON
BCF T1CON, TMR1ON ; Timer 1 is NOT incrementing
movlw .39 ; set PWM period to 8us
movwf PR2
movlw B'00000100' ; set TMR2 no postscaler,ON,1:1 prescaler
movwf T2CON
movlw (.39/2) ; set PWM duty cycle to 50%
movwf CCPR1L
clrf CCP1CON ; turn off PWM
; call StartUpRAMInit
; call Init_AUSART
; GOTO MAIN ; GOTO MAIN PROGRAM LOOP
subtitle " "
page
subtitle "Main Program Loop"
page
;––––––––––––––––––––––––––
;
; FUNCTION : MAIN ()
;
; DESCRIPTION : MAIN PROGRAM ROUTINE
;
;––––––––––––––––––––––––––
; movlw .20 ;delay 15mS for display to warm up
; movwf TEMP
;wait15ms
; call Delay1ms
; decfsz TEMP
; bra wait15ms
; bra POR_Display
;debuginit
; movlw .20 ;delay 15mS for display to warm up
; movwf TEMP
;wait15msa
; call Delay1ms
; decfsz TEMP
; bra wait15msa
; call INIT_DISPLAY
; bra POR_D0
;POR_Display
; bsf RCON,POR
; call DISPLAY_INIT
; bra debuginit
;POR_D0 call PaintMICROCHIP
; bsf RedLED ;turn off red LED
call SendWakeUp
; BTFSC RFIN ; INPUT HIGH?
; bra $-2
MAIN
movlw 0x03
movwf pingcounter
; BTFSS RFIN ; INPUT HIGH?
; GOTO CheckRFAnswerBack ; NO, JUMP OUT OF LOOP
RFButtonLoop
; BTFSC RFIN ; INPUT HIGH?
; bra RFButtonSeen ; NO, JUMP OUT OF LOOP
btfsc Button ; wait for button push
bra RFButtonLoop
WakeUpMessage
; call PaintPING
call SendWakeUp
call Delay50us
; btfsc RFIN
; bra $-2
CheckRFAnswerBack
RFBack2
MOVLW .50 ; 50 ms TIMER
MOVWF CNT1
RFBack0
MOVLW .200
MOVWF CNT0
RFBack1
; BTFSC RFIN ; INPUT HIGH?
; bra RFBackSeen ; NO, JUMP OUT OF LOOP
DECFSZ CNT0,1 ; YES, CONTINUE WITH TIMING LOOP
bra RFBack1 ; 5 us X CNT0
DECFSZ CNT1,1 ; DO 200 us LOOP CNT1 TIMES
bra RFBack0
bsf RedLED ; turn off red LED
; bra WakeUpMessage ; No answer back
; movlw 0x05
; movwf ID_TEMP
; movlw 0x03
; movwf DATAPOINTER
; call SendLINcommand
; decfsz pingcounter
; bra WakeUpMessage
bra MAIN
;RFBackSeen
;Validate4mSheaderHIGH
; movlw .10 ;.40 anything longer than 1mS is OK
; movwf TEMP2
;V4mSH1 movlw .48 ; 1 cycle
; movwf TEMP1 ; 1 cycle
; time=((X*5)+7)*(1/(Fosc/4))
;V4mSH0 btfss RFIN ; 2 cycles
; bra RecvUHF_FAIL ; 2 cycles
; decfsz TEMP1, f ; 1 cycle
; bra V4mSH0 ; 2 cycles
; decfsz TEMP2,f
; bra V4mSH1
; btfsc RFIN ; 2 cycles, wait for falling edge
; bra $-2
;Validate500uSheaderLOW
; movlw .8
; movwf TEMP2
;V500uSL1 movlw .48 ; 1 cycle
; movwf TEMP1 ; 1 cycle
; time=((X*5)+7)*(1/(Fosc/4))
;V500uSL0 btfsc RFIN ; 2 cycles
; bra RecvUHF_FAIL ; 2 cycles
; decfsz TEMP1, f ; 1 cycle
; bra V500uSL0 ; 2 cycles
; decfsz TEMP2,f
; bra V500uSL1
; btfss RFIN ; 2 cycles, wait for rising edge
; bra $-2
;Validate2mSheaderHIGH
; movlw .30 ;.40
; movwf TEMP2
;V2mSH1 movlw .48 ; 1 cycle
; movwf TEMP1 ; 1 cycle
; ; time=((X*5)+7)*(1/(Fosc/4))
;V2mSH0 btfss RFIN ; 2 cycles
; bra RecvUHF_FAIL ; 2 cycles
; decfsz TEMP1, f ; 1 cycle
; bra V2mSH0 ; 2 cycles
; decfsz TEMP2,f
; bra V2mSH1
; btfsc RFIN ; 2 cycles, wait for falling edge
; bra $-2
;Validate2mSheaderLOW
; movlw .30 ;.40
; movwf TEMP2
;V2mSL1 movlw .48 ; 1 cycle
; movwf TEMP1 ; 1 cycle
; time=((X*5)+7)*(1/(Fosc/4))
;V2mSL0 btfsc RFIN ; 2 cycles
; bra RecvUHF_FAIL ; 2 cycles
; decfsz TEMP1, f ; 1 cycle
; bra V2mSL0 ; 2 cycles
; decfsz TEMP2,f
; bra V2mSL1
; btfss RFIN ; 2 cycles, wait for rising edge
; bra $-2
; movlw .4 ; number of bits to receive
; movwf COUNTER ; load number of bits into counter register
; call ReceiveNext
; movf RXTX_REG,w
; movwf HdrID
;get button data byte
; movlw .8 ; number of bits to receive
; movwf COUNTER ; load number of bits into counter register
; call ReceiveNext
; movf RXTX_REG,w
; movwf ButtonImage
; swapf HdrID,w
; andlw 0x0F
; xorlw 0x05
; btfsc STATUS,Z
; bra GoodUHFBack
; call PaintBADResp
; btfss STATUS,Z
; bsf RedLED ; turn off red LED
; nop
; movlw .200
; movwf CNT1
;BUHFB0 call Delay4ms
; decfsz CNT1
; bra BUHFB0
; goto MAIN
;GoodUHFBack
; bcf RedLED ; turn on red LED
; movlw 0x05
; movwf ID_TEMP
; movlw 0x01
; movwf DATAPOINTER
; call SendLINcommand
; call PaintGOODResp
; movlw .50
; movwf CNT1
;GUHFB0 call Delay4ms
; decfsz CNT1
; bra GUHFB0
; goto MAIN
;RecvUHF_FAIL
; bsf RedLED ;turn off red LED
; call PaintBADUHF
; bcf mark
; bra RFBack1
;RFButtonSeen
;AuxValidate4mSheaderHIGH
; movlw .10 ;.40 anything longer than 1mS is OK
; movwf TEMP2
;AuxV4mSH1 movlw .48 ; 1 cycle
; movwf TEMP1 ; 1 cycle
; ; time=((X*5)+7)*(1/(Fosc/4))
;AuxV4mSH0 btfss RFIN ; 2 cycles
; bra RecvUHF_buttonFAIL ; 2 cycles
; decfsz TEMP1, f ; 1 cycle
; bra AuxV4mSH0 ; 2 cycles
; decfsz TEMP2,f
; bra AuxV4mSH1
; btfsc RFIN ; 2 cycles, wait for falling edge
; bra $-2
;AuxValidate500uSheaderLOW
; movlw .8
; movwf TEMP2
;AuxV500uSL1 movlw .48 ; 1 cycle
; movwf TEMP1 ; 1 cycle
; ; time=((X*5)+7)*(1/(Fosc/4))
;AuxV500uSL0 btfsc RFIN ; 2 cycles
; bra RecvUHF_buttonFAIL ; 2 cycles
; decfsz TEMP1, f ; 1 cycle
; bra AuxV500uSL0 ; 2 cycles
; decfsz TEMP2,f
; bra AuxV500uSL1
; MOVLW .200
; MOVWF CNT0
;RF1
; BTFSC RFIN ; INPUT HIGH?
; bra AuxValidate2mSheaderHIGH ; NO, JUMP OUT OF LOOP
; DECFSZ CNT0,1 ; YES, CONTINUE WITH TIMING LOOP
; bra RF1 ; 5 us X CNT0
; bra RecvUHF_buttonFAIL ; 2 cycles
; btfss RFIN ; 2 cycles, wait for rising edge
; bra $-2
;AuxValidate2mSheaderHIGH
; movlw .30 ;.40
; movwf TEMP2
;AuxV2mSH1 movlw .48 ; 1 cycle
; movwf TEMP1 ; 1 cycle
; time=((X*5)+7)*(1/(Fosc/4))
;AuxV2mSH0 btfss RFIN ; 2 cycles
; bra RecvUHF_buttonFAIL ; 2 cycles
; decfsz TEMP1, f ; 1 cycle
; bra AuxV2mSH0 ; 2 cycles
; decfsz TEMP2,f
; bra AuxV2mSH1
; btfsc RFIN ; 2 cycles, wait for falling edge
; bra $-2
;AuxValidate2mSheaderLOW
; movlw .30 ;.40
; movwf TEMP2
;AuxV2mSL1 movlw .48 ; 1 cycle
; movwf TEMP1 ; 1 cycle
; time=((X*5)+7)*(1/(Fosc/4))
;AuxV2mSL0 btfsc RFIN ; 2 cycles
; bra RecvUHF_buttonFAIL ; 2 cycles
; decfsz TEMP1, f ; 1 cycle
; bra AuxV2mSL0 ; 2 cycles
; decfsz TEMP2,f
; bra AuxV2mSL1
; btfss RFIN ; 2 cycles, wait for rising edge
; bra $-2
; movlw .4 ; number of bits to receive
; movwf COUNTER ; load number of bits into counter register
; call ReceiveNext
; movf RXTX_REG,w
; movwf HdrID
;get button data byte
; movlw .8 ; number of bits to receive
; movwf COUNTER ; load number of bits into counter register
; call ReceiveNext
; movf RXTX_REG,w
; movwf ButtonImage
; swapf HdrID,w
; andlw 0x0F
; xorlw 0x05
; btfsc STATUS,Z
; bra GoodUHFframe
; goto Wait200msLoop
;GoodUHFframe
; bcf RedLED ; turn on red LED
; movf ButtonImage,w
; xorlw 0x1B
; btfsc STATUS,Z
; goto SendUnLockCmd
; movf ButtonImage,w
; xorlw 0x17
; btfsc STATUS,Z
; goto SendLockCmd
; bsf RedLED ;turn off red LED
; bra MAIN
;SendUnLockCmd
; movlw 0x05
; movwf ID_TEMP
; movlw 0x02
; movwf DATAPOINTER
; call SendLINcommand
; goto Wait200msLoop
;SendLockCmd
; movlw 0x05
; movwf ID_TEMP
; movlw 0x01
; movwf DATAPOINTER
; call SendLINcommand
; goto Wait200msLoop
Wait200msLoop
movlw .50
movwf CNT1
GUHFf0 call Delay4ms
decfsz CNT1
bra GUHFf0
goto MAIN
;RecvUHF_buttonFAIL
; bsf RedLED ;turn off red LED
; bra MAIN
;––––––––––––––––––––––––––
; ***********************************************************************
; * Delay routines *
; ***********************************************************************
Delay250us movlw .5
movwf TEMP2
BaseDelay call Delay50us
decfsz TEMP2,f
bra BaseDelay
return
Delay500us movlw .10
movwf TEMP2
bra BaseDelay
Delay2ms movlw .40
movwf TEMP2
bra BaseDelay
Delay4ms movlw .80
movwf TEMP2
bra BaseDelay
Delay1ms movlw .20
movwf TEMP2
bra BaseDelay
Delay350us movlw .7
movwf TEMP2
bra BaseDelay
Delay400us movlw .8
movwf TEMP2
bra BaseDelay
; time=((X*3)+6)*(1/(Fosc/4))
Delay50us movlw .81 ; 1 cycle + 2 cycles for CALL
movwf TEMP1 ; 1 cycle
decfsz TEMP1, f ; 1 cycle
bra $-2 ; 2 cycles
return ; 2 cycles + 1 cyclec for DECFSZ
;––––––––––––––––––––––––––
; ***********************************************************************
; * SendWakeUp frame routine *
; ***********************************************************************
SendWakeUp
movlw 0x0C ; PWM on
movwf CCP1CON ; turn on PWM
call Delay4ms ; generate Delay for 4ms
clrf CCP1CON ; turn off PWM
call Delay500us ; generate Delay for 500us
movlw 0x0C ; PWM on
movwf CCP1CON ; turn on PWM
call Delay2ms ; generate Delay for 2ms
clrf CCP1CON ; turn off PWM
call Delay2ms ; generate Delay for 2ms
movlw 0x55
movwf RXTX_REG ; Send 0
movlw .4 ; four bits
movwf TEMP_COUNTER
call TransmitNext
return
; ***********************************************************************
; * Low Frequency Transmit routine *
; ***********************************************************************
Transmit8 movlw .8
movwf TEMP_COUNTER ; initialize count register
TransmitNext
rrcf RXTX_REG, f ; rotate receive register
btfsc STATUS, C ; test bit to be transmited
bra SendOne ; send high value
SendZero
movlw 0x0C ; PWM on
movwf CCP1CON ; turn off PWM
call Delay500us ; delay for 500us
clrf CCP1CON ; turn off PWM
call Delay250us ; delay for 250us
bra SendNextBit ; send next bit
SendOne
movlw 0x0C ; PWM on
movwf CCP1CON ; turn off PWM
call Delay250us ; delay for 250us
clrf CCP1CON ; turn off PWM
call Delay500us ; delay for 500us
bra SendNextBit ; send next bit
SendNextBit decfsz TEMP_COUNTER, f ; decrement counter register
bra TransmitNext ; transmit next bit
retlw TRANSMIT_OK ; return to main routine
; ***********************************************************************
; * Receive Routine *
; ***********************************************************************
Receive8
clrf RXTX_REG ; clear receive register
movlw .8 ; number of bits to receive
movwf COUNTER ; load number of bits into counter register
ReceiveNext
btfss RFIN ; test for rising edge
bra ReceiveNext
call Delay350us ; wait until middle of bit
btfsc RFIN ; is RFIN zero or a one?
bcf STATUS,C ; bit is a one => set carry bit
btfss RFIN ; is RFIN one or a zero?
bsf STATUS,C ; RFIN is zero => clear carry bit
rrcf RXTX_REG, f ; rotate value into receive register
btfsc RFIN ; wait for bit to go low
bra $-2
decfsz COUNTER, f ; decrement receive count register by one
bra ReceiveNext ; receive next bit
ReceiveLastBit
btfsc RFIN ; wait until end of last bit
goto ReceiveLastBit
; call Delay400us ; wait until end of last bit
retlw 0x00 ; return
; #include <AUSARTmstr.asm>
;––––––––––––––––––––––––––
; END OF FILE :
;––––––––––––––––––––––––––
END
Anexa6: Poza modulului emițător-transponder
Anexa7. Schema circuitului emițător-transponder
Anexa8:Poza modulului receptor/decoder
Anexa9: Schema circuitului receptor/decoder
Bibliografie
L. Breniuc, C. G. Haba: Proiectarea cu microcontrollere PICmicro, Editura Politehnium, Iași, 2005;
C. G. Haba, L. Breniuc: Elemente de proiectare cu circuite numerice programabile, Edirura Politehnium, Iași, 2005;
W. Ribbens, Understanding Automotive Electronics, Newnes, S.U.A., 1998;
Liviu Breniuc, Mihai Crețu, Alexandru Sălceanu: Proiect cu microcontrollere 8051, Teorie și aplicații, Editura „Gh. Asachi”, Iași, 2002;
William B. Ribbens, Understanding automotive electronics Ed. B-H, 1998;
Ruan Lourens, Low Frequency Magnetic Transmitter Design, Microchip Technology Inc, 2002
Webografie
http://www.microchip.com:
http//www. analog.com:
http://www.microcontrollere.home.ro/
http://en.wikipedia.org/wiki/PIC_microcontroller
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Îndrumător: Prof. univ. dr. ing. Liviu BRENIUC Absolvent: Cășeriu Vlad Petru Iași, 2018 Titlul lucrarii: Dispozitiv pasiv de acționare la distanță… [310097] (ID: 310097)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
