Luka Brinovšek Detektor fazne napake optičnega enkoderja Diplomsko delo Maribor, avgust 2011

Podobni dokumenti
5 Programirljiva vezja 5.1 Kompleksna programirljiva vezja - CPLD Sodobna programirljiva vezja delimo v dve veliki skupini: CPLD in FPGA. Vezja CPLD (

DES

Univerza v Ljubljani FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Tržaška c. 25, 1000 Ljubljana Realizacija n-bitnega polnega seštevalnika z uporabo kvan

CelotniPraktikum_2011_verZaTisk.pdf

Delavnica Načrtovanje digitalnih vezij

Diapozitiv 1

DES11_realno

Univerza v Ljubljani

DES

Microsoft Word - ELEKTROTEHNIKA2_ junij 2013_pola1 in 2

Microsoft Word - CNC obdelava kazalo vsebine.doc

Microsoft Word - Avditorne.docx

Prekinitveni način delovanja PLK Glavni program (OB1; MAIN) se izvaja ciklično Prekinitev začasno ustavi izvajanje glavnega programa in zažene izvajan

Delavnica Načrtovanje digitalnih vezij

Microsoft Word - ELEKTROTEHNIKA2_11. junij 2104

DIGITALNE STRUKTURE Zapiski predavanj Branko Šter, Ljubo Pipan 2 Razdeljevalniki Razdeljevalnik (demultipleksor) opravlja funkcijo, ki je obratna funk

ELEKTRIČNI NIHAJNI KROG TEORIJA Električni nihajni krog je električno vezje, ki služi za generacijo visokofrekvenče izmenične napetosti. V osnovi je "

Analiza vpliva materiala, maziva in aktuatorja na dinamiko pnevmatičnega ventila

Poskusi s kondenzatorji

Področje uporabe

VIN Lab 1

STAVKI _5_

Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo

Microsoft Word doc

Logični modul LOGO!

ARS1

1. Električne lastnosti varikap diode Vsaka polprevodniška dioda ima zaporno plast, debelina katere narašča z zaporno napetostjo. Dioda se v zaporni s

Diapozitiv 1

10. Meritev šumnega števila ojačevalnika Vsako radijsko zvezo načrtujemo za zahtevano razmerje signal/šum. Šum ima vsaj dva izvora: naravni šum T A, k

Microsoft Word - M docx

Naloge 1. Dva električna grelnika z ohmskima upornostma 60 Ω in 30 Ω vežemo vzporedno in priključimo na idealni enosmerni tokovni vir s tokom 10 A. Tr

KRMILNA OMARICA KO-0

Univerza v Ljubljani

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni

Diapozitiv 1

(Microsoft Word - U\350enje telegrafije po Kochovi metodi.doc)

REALIZACIJA ELEKTRONSKIH SKLOPOV

Microsoft Word - CNR-BTU3_Bluetooth_vmesnik

Microsoft Word - avd_vaje_ars1_1.doc

INFORMATOR BIROKRAT 1/2011

Microsoft Word - UNI_Mlakar_Ziga_1987_E doc

Vaja04_Ver02

Equation Chapter 1 Section 24Trifazni sistemi

Šolski center celje

seminarska_naloga_za_ev

Delavnica Načrtovanje digitalnih vezij

_ _BDA_CapitalSports_CS-Timer.indd

Microsoft PowerPoint - ORS-1.ppt

Delavnica Načrtovanje digitalnih vezij

innbox_f60_navodila.indd

101353_-an-01-sl-_vbodni_termometer

Microsoft Word - M docx

Microsoft PowerPoint - NDES_8_USB_LIN.ppt

DES11_vmesniki

Modem in krajevno omrežje Uporabniški priročnik

Upravljanje sistema COBISS Navodila za uporabo tiskalnika CITIZEN S310II V1.0 VIF-NA-27-SI

NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in

Microsoft Word - Trust-CDsize-12052_12579_14070-al-cp_v5.0.doc

PowerPointova predstavitev

Microsoft PowerPoint - OVT_4_IzolacijskiMat_v1.pptx

LABORATORIJSKE VAJE IZ FIZIKE

Uvodno predavanje

Microsoft PowerPoint - IPPU-V2.ppt

LINEARNA ELEKTRONIKA

Microsoft Word - M

Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str

NAVODILO ZA UPORABO SISTEMA BIOMETRICS Laboratorijski sistem zajema podatkov LS 900 Kratka navodila za rokovanje z instrumentom. Pred uporabo dobro pr

SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: NAVODILA ZA UPORABO Laserliner tester napetosti AC tive Finder Kataloška št.: 12 3

Installation manual

Microsoft Word - vaje2_ora.doc

Slide 1

Člen 11(1): Frekvenčna območja Frekvenčna območja Časovna perioda obratovanja 47,0 Hz-47,5 Hz Najmanj 60 sekund 47,5 Hz-48,5 Hz Neomejeno 48,5 Hz-49,0

1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatk

Slide 1

Vaje pri predmetu Elektronika za študente FMT Andrej Studen June 4, marec 2013 Določi tok skozi 5 V baterijo, ko vežemo dva 1kΩ upornika a) zap

Turingov stroj in programiranje Barbara Strniša Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolo

TrLin Praktikum II Lastnosti transmisijske linije Uvod Visokofrekvenčne signale in energijo večkrat vodimo po kablih imenovanih transmisijske linije.

AME 110 NL / AME 120 NL

Vgrajeni sistemi Uvod & ponovitev C

VAU 7.5-3_Kurz_SL_ indd

No Slide Title

Microsoft Word - Navodila_NSB2_SLO.doc

COBISS3/Medknjižnična izposoja

Kazalne naprave in tipkovnica Vodnik za uporabnike

REALIZACIJA ELEKTRONSKIH SKLOPOV

Zbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje:

Vacon 100 FLOW Application Manual

17. Karakteristična impedanca LC sita Eden osnovnih gradnikov visokofrekvenčnih vezij so frekvenčna sita: nizko-prepustna, visoko-prepustna, pasovno-p

MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir

Spoznajmo PowerPoint 2013

PodroĊje uporabe

ŠOLA: SŠTS Šiška

GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega)

untitled

Microsoft Word - CelotniPraktikum_2011_verZaTisk.doc

Microsoft Word - EV-2-projekt.doc

Navodila za uporabo Mini prenosna HD kamera s snemalnikom

UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO VISOKOŠOLSKI STROKOVNI ŠTUDIJ Elektrotehnika Elektronika POROČILO PRAKTI

Transkripcija:

Luka Brinovšek Detektor fazne napake optičnega enkoderja Diplomsko delo Maribor, avgust 2011

II Diplomsko delo visokošolskega strokovnega študijskega programa DETEKTOR FAZNE NAPAKE OPTIČNEGA ENKODERJA Študent: Luka Brinovšek Študijski program: Elektrotehnika Smer: Elektronika Mentor: Doc. dr. Bojan Jarc Somentor: Doc. dr. Matej Šalamon Maribor, avgust 2011

III

IV

V ZAHVALA Zahvaljujem se mentorju, doc. dr. Bojanu Jarcu, za pomoč in vodenje pri opravljanju diplomskega dela. Prav tako se zahvaljujem somentorju doc. dr. Mateju Šalamonu, viš. pred. Mitju Solarju ter tehničnemu sodelavcu Antonu Vesenjaku, dipl. inţ. el. za vse strokovne nasvete in pomoč pri delu v laboratoriju. Posebna zahvala gre staršem ter vsem profesorjem in delavcem fakultete, ki so mi med študijem stali ob strani in delili potrebna znanja.

VI Detektor fazne napake signalov optičnega enkoderja Ključne besede: detektor fazne napake, enkoder pomika, programirljiva logična, vezja FPGA UDK: 621.376.23(043.2) Povzetek V diplomski nalogi je predstavljen princip delovanja detektorja fazne razlike. Izvedli smo ga v Xilinx ISE kot program za razvojno ploščo Spartan 3A, zapisan v programskem jeziku VHDL. V Programu ISE smo opravili tudi računalniško simulacijo. Predstavili smo tudi delovanje vhodnega vezje ter opravljene meritve na njem. Ob koncu pa so prikazane meritve delovanja detektorja, ki je sprogramiran na protobordu Spartan 3A ter povezan s pripadajočim analognim vhodnim vezjem.

VII Optical encoder phase error detector Key words: Phase difference detector, motion encoder, programmable logic, FPGA circuit UDK: 621.376.23(043.2) Abstract This thesis presents conceived principle of phase error detector. We performed it in Xilinx ISE as a program for protoboard Spartan 3A written in the programming language VHDL. In the ISE program we have created a computer simulation. We presented also the operation of the input circuit and perform measurements on it. At the end are presented measurements of the detector which is programmed to the protoboard Spartan 3A and connected to the associated analog input circuit.

VIII Kazalo vsebine 1 UVOD... 1 2 PREDSTAVITEV DETEKTORJA FAZNE NAPAKE... 2 2.1 Predstavitev splošnega delovanja... 2 2.2 Predstavitev zasnove detektorja... 5 2.3 Predstavitev analognega dela... 8 2.3.1 Zasnova analognega dela... 9 2.3.2 Delovanje analognega vezja... 11 2.3.3 Integrirano vezje TLV3502... 13 2.3.4 Posebnosti pri načrtovanju... 14 2.4 Predstavitev digitalnega dela... 17 2.5 Digitalni del na razvojni plošči Spartan 3A... 19 2.5.1. GPIO Konektor... 20 2.5.2. RESET tipka... 21 2.5.3. Konfiguracijska datoteka... 22 3 OPIS DIGITALNEGA VEZJA V OKOLJU XILINX ISE... 24 3.1 Postopek realizacije programske kode... 25 3.2 Opis vezja digitalnega dela detektorja... 30 3.2.1 Vhodni del... 31 3.2.2 Procesni del..... 35 3.2.3 Izhodni del... 38 3.3 Princip detekcije faznega zamika... 41 3.3.1 Fazni zamik je večji od 90 ( Δφ > 0 )... 41 3.3.2 Fazni zamik je manjši od 90 ( < 0 )... 43 3.3.3 Fazni zamik je enak 90 ( < 0 )... 44 4 REZULTATI SIMULACIJ... 45 4.1 Simulacija digitalnega dela... 45 4.1.1 Generiranje datoteke.tbw ter programsko orodje ISIM... 46 4.1.2 Rezultati simulacije v programu ISIM... 50 4.2 Rezultati simulacije v Altium Designer... 555 5 MERITVE... 59 5.1 Meritve analognega vezja... 59

IX 5.2. Meritve celotnega vezja... 67 6 REŠITEV TEŽAV... 74 7 SKLEP... 777 8 VIRI... 778 9 PRILOGE... 779 10 KRATEK ŽIVLENJEPIS... 779

X Kazalo slik Slika 1: Detektor fazne napake.... 1 Slika 2: Korigiranje zamika.... 2 Slika 3: Princip delovanja.... 4 Slika 4: Fazni kot SIN - COS... 5 Slika 5: Shema detektorja.... 7 Slika 6: Shema analognega dela.... 9 Slika 7: Preklopi primerjalnikov.... 11 Slika 8: Preklopi s histerezo.... 12 Slika 9: Shema TLV3502.... 13 Slika 10: PCB analognega vezja.... 15 Slika 11: Izhodne linije.... 15 Slika 12: Upori za impedančno prilagoditev.... 16 Slika 13: Napajalni kondenzatorji.... 17 Slika 14: Zasnova digitalnega dela.... 18 Slika 15: Blokovna shema razvojne plošče Avnet Spartan 3A.... 19 Slika 16: GPIO na razvojni plošči.... 20 Slika 17: RESET tipka.... 21 Slika 18: Konfiguracija CLK... 22 Slika 19: Konfiguracija priključkov in tipke.... 23 Slika 20: Xilinx ISE.... 24 Slika 21: Ustvarjanje novega dokumenta.... 26 Slika 22: Izbira novega vira.... 27 Slika 23: Deklaracija vhodov in izhodov.... 27 Slika 24: Urejanje programske kode.... 28 Slika 25: Ustvarjanje nove sheme... 29 Slika 26: Risanje sheme.... 29 Slika 27: Shema detektorja.... 30 Slika 28: Vhodni del.... 31 Slika 29: JK flip flop.... 32 Slika 30: Delitev vhodnih signalov.... 32 Slika 31: Potek delilnika ure.... 34 Slika 32: Procesni del.... 35 Slika 33: Izhodni del.... 38 Slika 34: Startno vezje.... 39 Slika 35: Izhoda A in B.... 40 Slika 36: Izhod U_nD.... 41 Slika 37: Fazni kot je večji od 90.... 42 Slika 38: Fazni zamik je manjši od 90.... 43 Slika 39: Fazni zamik je enak 90.... 44 Slika 40: Definiranje vhodov, izhodov in notranjih signalov.... 46 Slika 41: Sinusni signal.... 47 Slika 42: Kosinusni signal, kjer je zamik večji od 90.... 48 Slika 43: Kosinusni signal, kjer je fazni zamik manjši od 90.... 48 Slika 44: Kosinusni signal s faznim zamikom 90.... 49

Slika 45: Zagon simulacije.... 49 Slika 46: Program ISIM.... 50 Slika 47: Simulacija faznega kota, večjega od 90.... 51 Slika 48: Simulacija faznega kota, manjšega od 90.... 52 Slika 49: Simulacija faznega kota ki je enak 90.... 53 Slika 50: U_nD signal.... 54 Slika 51: Generatorji signalov za simulacijo.... 55 Slika 52: Nastavitve simulacije.... 56 Slika 53: Simulacija pri kotu 95.... 56 Slika 54: Simulacija pri kotu 85.... 57 Slika 55: Simulacija pri kotu 90.... 58 Slika 56: Delovanje analognega vezja.... 60 Slika 57: Preklop v visoko stanje.... 61 Slika 58: Preklop v nizko stanje.... 61 Slika 59: Preklop v visoko stanje.... 62 Slika 60. Preklop v nizko stanje.... 63 Slika 61: Preklop v logično 1.... 64 Slika 62: Prehod v logično 0.... Napaka! Zaznamek ni definiran. Slika 63: Razlika pri preklopu v 1.... 65 Slika 64: Razlika pri preklopu v 0.... 66 Slika 65: Motnja v delovanju:.... 68 Slika 66: Signal A in B pri kotu 85..... 69 Slika 67: Signal U_nD pri kotu 85..... 70 Slika 68: Signala A in B pri kotu 95..... 71 Slika 69: Signal U_nD pri kotu 95..... 71 Slika 70: Signala A in B pri kotu 90..... 72 Slika 71: Signal U_nD pri kotu 90..... 73 Slika 72: XOR vrata.... 74 Slika 73: Nov princip proţenja signala U_nD.... 75 Slika 74: Proţenje XOR vrat pri 91.... 75 Slika 75: Proţenje XOR vrat pri 89.... 76 Slika 76: Proţenje XOR vrat pri 90.... 76 XI

XII Seznam uporabljenih kratic in simbolov SCH shema, SCH okolje - shematsko okolje (angl. schematic) PCB tiskano vezje, PCB okolje okolje tiskanega vezja (angl. printed ciricuit boards) IC integrirano vezje (angl. integrated ciricuit) Ur referenčna napetost Ubat, Ub, VCC napajanje, baterijska napetost GND masa SIN sinusni signal OSIN izhod sinusnega signala COS kosinusni signal OCOS izhod kosinusnega signala PDD detektor fazne razlike (angl. phase diference detector) TOP zgornja plast tiskanega vezja BOTTOM spodnja plast tiskanega vezja SMD element za površinsko montaţo (angl. surface mount device) FPGA polje s programirljivimi vrati (angl. field-programmable gate array) LED svetleča dioda (angl. light-emitting diode) CLK urin signal CPLD kompleksno programirljiva logična naprava (angl. complex programmable logic device) VHDL programski jezik za opisovanje zelo hitrih integriranih vezij (angl. very high speed integrated ciricuit hardware description language) WAIT signal čakanja TIV tiskano vezje

1 1 UVOD Detektor fazne napake (PDD) je vključen kot segment nekega merilnega sistema, ki izvaja avtomatično amplitudno, fazno in ničelno kalibracijo signalov enkoderjev pomika. Takšen sistem je razdeljen na več segmentov, ki iz optičnega enkoderja fazno napako najprej zajamejo ter jo z neko logiko spremenijo v kontrolne signale, ki krmilijo korektor, da izvede kalibracijo fazne napake. V tem diplomskem delu bomo izdelali detektor na razvojni plošči AVNET Spartan XCS3S400A, ki bo sposoben iz vhodnih signalov sinus (SIN) in kosinus (COS) določiti fazno napako ter generirati krmilne signale za korektor za kalibracijo celotnega sistema (odpravi fazno napako). Na svojih izhodih optični enkoder generira analogne signale, ki pa jih moramo spremeniti v digitalno obliko, saj razvojna plošča podpira le digitalne signale. Zaradi tega bo naša zasnova detektorja deljena na analogni vhodni del ter digitalni del. Analogni del smo realizirali na ploščici tiskanega vezja (TIV), digitalni del pa kot električno shemo, ki smo jo prevedli v programsko kodo in sprogramirali na razvojno ploščo. Slika 1: Detektor fazne napake.

2 2 PREDSTAVITEV DETEKTORJA FAZNE NAPAKE 2.1 Predstavitev splošnega delovanja Detektor, ki ga bomo najprej računalniško simulirali in ga ob koncu zapisali v obliki programa v VHDL jeziku, bo temeljil na podobnem principu ţe obstoječih detektorjev. Sluţil bo za detekcijo fazne napake med sinusnim (SIN) in kosinusnim signalom (COS) glede na čas njunih prehodov skozi referenčno napetost (Ur). SIN in COS sta tipična izhodna signala sinusnih enkoderjev pomika konstruiranih tako, da generirajo sinusni in kosinusi signal. V idealnih razmerah je fazni zamik med njima enak 90º. Zaradi različnih vplivov iz okolja, staranja in mehanskih nepravilnosti dejanski fazni kot odstopa od idealnega. Zato je potrebno enkoder pomika periodično kalibrirati oz. korigirati fazo. Fazo med signaloma korigiramo z ustreznim prištevanjem deleţa signala SIN k signalu COS, kot to prikazuje slika 2. Slika 2: Korigiranje zamika.

3 Kazalčni diagram na sliki 2 prikazuje, da se lahko korekcija fazne razlike Δ doseţe tako, da signalu COS prištejemo sinusni signal SIN, kateremu zmanjšamo amplitudo za deleţ k. Njegova velikost bo odvisna od fazne razlike Δφ. Rezultat seštevanja deleţa ter signala COS opravi korektor in s tem povzroči, da se bo amplituda COS zmanjšala za vrednost ΔAc. Naloga našega vezja je, da ugotovi fazni zamik ter korektorju ukaţe, kakšen deleţ signala SIN naj prišteje signalu COS. Njegovo delovanje temelji na preprosti logiki, ki ugotavlja, ali je fazni zamik med signaloma večji ali manjši od 90º. Zasnovano je tako, da iz primerjanih časov prehodov vhodnih signalov SIN in COS skozi referenčno napetost Ur določi fazno napako med njima in nato generira tri različne krmilne signale korektorju fazne napake: A, B in U_nD. Signal A poda ukaz, da bo korekcija dodajala delček pozitivne sinusne amplitude, signal B pa, da bo dodajal negativni del amplitude. S tem spremenimo amplitudo kosinusu ter posledično tudi fazni zamik med signaloma SIN in COS. Prav tako generiramo tudi signal U_nD, ki korektorju ukaţe, da naj poveča ali zmanjša deleţ signala SIN, prištetega signalu COS. Princip detekcije faznega zamika je predstavljen na sliki 3. Temelji na merjenju časovnih intervalov z binarnim števcem. Binarni števec šteje navzgor od trenutka t1 (začetek prve polperiode sinusnega signala) pa do trenutka t2, ko preide kosinusni signal skozi referenčno napetost Ur (začetek druge polperiode kosinusnega signala). Od trenutka t2 števec šteje navzdol vse do trenutka t3, kjer sinusni signal preide skozi Ur (začetek druge polperiode sinusnega signala). Razlika med preštetimi vrednostmi navzgor in navzdol je recipročna fazni napaki Δφ. V primeru, ko je po času t1+t2 vrednost števca enaka 0, pomeni, da je Δφ = 0, če je vrednost malo pod 0, pomeni, da je Δφ<0 ; kadar pa je vrednost nekaj nad 0, pomeni, da je Δφ>0. Ta rezultat se nato vpiše v register in se zadrţi tako dolgo, dokler ne dobimo vrednost fazne napake Δφ naslednje amplitude. V naslednjem koraku primerjamo prejšnjo vrednost Δφ, shranjeno v registru, s trenutno vrednostjo Δφ, ki jo podaja števec. Te vrednosti periodično primerja primerjalnik, ki ugotovi, ali se je fazna napaka povečala ali zmanjšala, ter glede na to poda na izhodu U_nD signal, ki korektorju pove, ali naj nadaljuje s korekcijo ali ne. Prav tako naš detektor po pritisku gumba RESET določi iz primerjane trenutne ter prejšnje vrednosti (prejšnja je ob resetu vedno 0), v katero smer se mora korekcija izvajati. Ta informacija bo prisotna na

4 v začetku opisanima izhodoma A in B. Proces branja in korigiranja se nadaljuje do tistega trenutka, ko korektor uspešno korigira fazno napako na vrednost 0. V tem primeru izhodni signal U_nD pade na nizko stanje, kar za korektor pomeni, naj zmanjša deleţ prištetega signala SIN k signalu COS oz. naj zmanjša stopnjo korekcije. Procesa zmanjševanja in povečevanja stopnje korekcije se bosta izmenično menjavala (izmenično menjavanje vrednosti signala U_nD med 0 in 1), pri tem pa bo fazna napaka variirala okoli vrednosti Δφ= 0. Zaradi tega se zavedamo, da korektor ne bo mogel popraviti zamik na točno 90, temveč bo vselej ostala minimalna fazna napaka, katere velikost bo odvisna od natančnosti detektorja. Na natančnost vpliva bitno zajemanje vrednosti ter v večini vhodno analogno vezje, ki beleţi prehode vhodnih signalov skozi referenčno napetost. Slika 3: Princip delovanja. Kot smo ţe omenili, je fazna napaka sorazmerna končni vrednosti števca po fazah prištevanja in odštevanja (glej sliko 3). Iz nje potem generiramo 3 izhodne signale. A in B določata predznak korekcije (prištejemo A=1 ali odštejemo B=1 ustrezen deleţ signala SIN) ter signal U_nD, ki korektorju signalizira pričetek in konec korekcije. Generiranje

5 izhodnih signalov A in B po signalu RESET se vrši po spodnji pravilnostni tabeli. Za laţjo predstavo, so v kazalčnem diagramu na sliki 4 prikazani fazni zamiki. Fazna napaka φ A B Δφ >0 1 0 Δφ=0 0 1 Δφ<0 0 1 Tabela 1: Predznak korekcije Slika 4: Fazni kot SIN - COS 2.2 Predstavitev zasnove detektorja Predstavljen detektor in princip delovanja smo, pred realizacijo na razvojni plošči, testirali v okolju Altium Designer. Le-to omogoča celostno načrtovanje električnih vezij, vključno z njihovo simulacijo in načrtovanjem vezij TIV. Orodje Altium Designer omogoča celotno simulacijo tako analognega vhodnega dela, kot tudi digitalnega dela, ki smo ga realizirali v

6 vezju FPGA. Zaradi analognega okolja smo zato lahko v Altium Designer ustvarili celotno shemo detektorja. Ta vključuje analogni vhodni del, ki je zgrajen na lastnem vezju TIV, ter digitalni del, ki bo realiziran z razvojno ploščo v vezju FPGA. Shemo smo postopoma realizirali s standardnimi elementi glede na zgoraj opisani princip delovanja. Prav vse te elemente smo lahko našli v knjiţnici elementov tega programskega orodja.

7 Slika 5: Shema detektorja.

8 Slika 5 prikazuje celotno shemo detektorja fazne napake. Kot je ţe v uvodnem poglavju opisano, je ta sestavljen iz analognega vhodnega dela ter digitalnega dela. Analogni del (obkroţen z rdečo) je sestavljen iz dveh primerjalnikov s povratno vezavo. Ta povratna vezava ustvari Schmittovo vezje s histerezo, ki bo v našem primeru na izhodu generiralo visoko ali nizko stanje glede na prehod vhodnega signala preko referenčnega nivoja Ur. Signale iz njih vodimo na Flip flopa, ki na izhodu sinhronizirano ločita eno periodo na 4 različne časovne intervale. Iz teh smo z»vhodno logiko«tvorili signale za krmiljenje števca. Vhodna logika (U54A, U54B, U54D, U58A, U58B, U64A, U50A, U50D, U65A) je zgrajena le iz logičnih vrat, ki glede na razmere na vhodih U1, nu1, U2 in nu2 aktivirajo ustrezen izhod (CD, CU, DR in PSE). Ti izhodi potem krmilijo skoraj celotni digitalni del vezja, saj podajajo informacije o tem, kdaj mora števec šteti gor, kdaj dol, kdaj naj se podatki prenesejo in primerjajo ter kdaj se vezje resetira. Števec, ki je od njih odvisen, je sestavljen iz dveh 4 bitnih števcev (U55 in U62), kar nadomešča enega 8- bitnega, ki v knjiţnici elementov ni bil na razpolago. Izhodno informacijo števcev potem vodimo na registre in pa na 8-bitni primerjalnik. Oba omenjena sta prav tako zgrajena iz dveh 4-bitnih elementov. Shema detektorja vsebuje še START VEZJE za krmiljenje izhodnih flip flopov U56B ter U61B, ki glede na rezultat primerjalnika in zadnjega bita D7, generirajo izhodne signale. V nadaljevanju bomo predstavljeno zasnovo še bolje razčlenili ter podrobneje opisali tako zasnovo kot delovanje. 2.3 Predstavitev analognega dela Naš detektor fazne napake je v večinskem delu zgrajen na razvojni plošči Avnet Spartan 3A. Ker ţal ta nima analognih vhodov, ampak samo digitalne, je bilo potrebno ustvariti tudi analogni vhodni del, ki nam sinusni in kosinusni signal transformira v digitalni signal. V našem primeru smo pretvorili oba sinusna signala v pravokotni signal. Omeniti je potrebno, da analogni del vezja pomembno vpliva na natančnost detekcije fazne napake. Zasnovan je iz dveh natančnih primerjalnikov s pozitivno povratno vezavo. Tako dobimo Schmittovi vezji s histerezo. Histerezni napetosti sta v bliţini napetosti Ur izbrani tako, da

9 povečata občutljivost vezja na vhodni šum. Za pravilno detekcijo faze je ključnega pomena, da sta histerezi obeh vezij enaki. 2.3.1 Zasnova analognega dela Kot je ţe bilo omenjeno, je analogni vhodni del zgrajen iz dveh hitrih (ang. high speed) primerjalnikov ter štirih uporov z zelo malo toleranco, ki določajo pragove preklopov histereze. Pomembno je, da so to precizni upori s karseda majhno toleranco, ker s tem zagotovimo, da je histereza pri obeh primerjalnikih enaka. Uporabili smo povratno vezavo ter jo dodali vhodu primerjalnika. Kot ţe rečeno smo ustvarili Schmittov sproţilnik, ki nam bo preklapljal pri referenčni napetosti, ter nam na izhodu vezja podal rezultat primerjave v obliki večje (1) ali manjše (0) vrednosti. Izhodni signal primerjalnika bo torej zavzemal dve diskretni vrednosti, ki sta bosta enaki +Ub in Ub. +Ubat bo v našem primeru napajalna napetost +3.3V in predstavlja logično 1, Ubat pa bo enaka masi GND in bo predstavlja logično 0. Vse napajalne napetosti, ki jih analogno vezje potrebuje, smo pridobili na priključku GPIO (ang. General Porpoise Input/Output ) razvojne plošče. Slika 6: Shema analognega dela.

10 Slika 6 prikazuje električno shemo analognega dela, kjer smo uporabili dva hitra primerjalnika iz integriranega vezja TLV3502. Nastala je po zasnovi na sliki 5, le da je prilagojena za podnoţje primerjalniku TLV3502, ki ga bomo opisali v nadaljevanju. V povratni vezavi smo uporabili upore SMD 0,125W v ohišju 0805. Izbrana je majhna toleranca 0.1 %, saj je vrednost uporov ključnega pomena za širino histereze. V idealnih razmerah morata biti histerezi primerjalnikov enaki. Pri prvem jo določata upora R1 in R2, pri drugem pa R3 in R4. Za R1 in R3 smo izbrali vrednost 1kΩ in za R2 ter R4 vrednost 180kΩ. Kriteriji za izbiro primerjalnikov so bili: delovanje Rail to Rail (razširjeno območje delovanje do pribliţno napajalnih napetosti), napajalna napetost 5V in več ter, da je hiter. Ustreznega smo našli pri Texas Instruments pod oznako TLV3502. Podrobneje ga bomo opisali v poglavju 2.3.3. Omenimo še, da smo na vhodih in izhodih vezja predvideli upore za impedančno prilagoditev. Le-ti preprečujejo nastanek odboja signala na mestih spremembe impedance.

11 2.3.2 Delovanje analognega vezja Naloga analognega vezja je pretvorba analognega sinusnega in kosinusnusnega signala v digitalni signal pravokotne oblike. V idealnih razmerah bi bile preklopne napetosti oz. histereze primerjalnikov enake. Slika 7: Preklopi primerjalnikov. Na sliki 7 je razviden preklop izhodnega signala prvega primerjalnika iz Ubat+ na Ubat- (Ubat- = GND, Ubat+ = VCC ) v začetni točki prve polperiode vhodnega signala SIN. Napetost preklopa ustreza preklopni napetosti primerjalnika U + (glej enačbo 1). Ponoven preklop na visok napetostni nivo se pojavi ob začetku druge polperiode signala SIN oz. ko signal SIN pade pod napetost U -. Podobno velja tudi za signal COS. Za izračun preklopnih napetosti smo uporabili enačbi (1) in (2) in pri napajalni napetosti 3.3V dobili histerezo 18.2mV. Pri izračunavanju celotne histereze pa smo morali upoštevati tudi notranjo histerezo, ki jo ima čip TLV3502 ţe vgrajeno in znaša 6mV. Po predlogu proizvajalca smo celotno histerezo ocenili tako, da smo izračunani histerezi (U H = U + -U - ) prišteli notranjo in dobili rezultat U HIST = 24,2mV. Če ne upoštevamo notranje histereze, nam izračunane napetosti povedo, da se bo izvedel preklop 12,7mV nad in 5.6mV pod referenčno napetostjo Ur.

12 U U U bat U r R1 UbatR1 U rr2 3,3V 1k 1 180k U 1, 0127V R R 1 2 r R R 1 2 1k 180k U bat U r R1 UbatR1 U rr2 0V 1k 1 180k U 0, 9944V R R 1 2 r R R 1 2 1k 180k (1) (2) U U R 3,3 V 0V bat bat 1 1k U H U U 18, 3mV R R 1k 180k 1 2 (3) U U U 18,3mV 18,3mV 6mV 24. mv (4) HIST H HN 2 Slika 8: Preklopi s histerezo. Slika 8 prikazuje primer časovnih potekov signalov SIN in COS ter ustrezne izhodne signale. Preklop na logično 1 se zgodi, ko vhodna napetost pade za napetost U - pod referenčno napetost Ur, preklop nazaj v logično 0 pa se zgodi pri napetosti U + nad referenco Ur.

13 Opomnimo, da je histereza izračunana z idealnimi elementi brez toleranc. V praksi pričakujemo odstopanja med izračunanimi in izmerjenimi preklopnimi napetostmi. Vsako odstopanje nam bi v tem primeru prineslo napako pri detekciji fazne napake. Analogno vezje bomo v poglavju meritev tudi pomerili in predstavili rezultate. Iz njih bomo videli, kako smo se pribliţali teoretičnemu izračunu v realnosti. 2.3.3 Integrirano vezje TLV3502 Slika 9: Shema TLV3502. TLV3502 je integrirano vezje z dvema hitrima primerjalnikoma. Ker gre za Rail to Rail izvedbo lahko pričakujemo na izhodu napetost v razponu od napajalne napetosti U bat U bat oz. 0V do skoraj. Primerjalnik deluje v območju napajalnih napetostih od +2,7V do maksimalno +5,5V. Takšno območje napajalnih napetosti je ugodno zaradi enostavnega priklopa primerjalnika na razvojno ploščo, napajano z napetostjo +3,3V. TLV3502 spada v skupino hitrih primerjalnikov, saj proizvajalec zagotavlja, da se njegova operacija izvrši v času 4,5ns. Zato smo veliko pozornost namenili načrtovanju tiskanega vezja, saj vemo, da lahko hitri prehodi signalov povzročajo elektromagnetne motnje na liniji in v njeni okolici. Razpored priključkov integriranega vezja prikazuje slika 9. V tabeli 2 so podrobneje predstavljeni še vsi preostali pomembnejši parametri.

14 Tabela 2: Parametri čipa TLV3502 2.3.4 Posebnosti pri načrtovanju V tem poglavju vam bom predstavil posebnosti analognega dela detektorja. Slika 11 prikazuje TIV analognega vezja. Konstruirano je tako, da so vse signalne linije na zgornji (ang. TOP) plasti, masa (GND) pa na celotni spodnji (ang. BOTTOM) plasti. Za vhodne in napajalne konektorje smo uporabili vijačne sponke, za izhod pa kontaktno letvico.

15 Omeniti je potrebno tudi to, da smo na BOTTOM plasti odstranili ves baker pod samim integriranim vezjem in pod izhodnimi linijami. S tem zmanjšamo parazitne kapacitivnosti med priključki samega integriranega vezja in plastjo mase ter med izhodnimi povezavami in plastjo mase. Parazitne kapacitivnosti so neţelene, saj zmanjšujejo frekvenčno zmogljivost vezja. Slika 10: PCB analognega vezja. Preklopi med napetostnimi nivoji primerjalnika so hitri, zato naj bodo povezovalne linije čim krajše in brez nepotrebnih zank. Posledično sta izhodni liniji primerjalnikov (OCOS in OSIN) kratki in vodita po najkrajši poti na izhodni konektor. Slika 11: Izhodne linije.

16 V primeru električno dolgih vodnikov je potrebno poskrbeti za ustrezno impedančno prilagoditev. V kolikor za impedančno prilagoditev ni poskrbljeno, se na mestih spremembe impedance linije, del napredujočega vala odbije nazaj proti izvoru. Govorimo o pojavu odboja. Kadar imamo opravka z električno dolgimi vodniki je pojav odboja neţelen saj odbiti val znatno deformira obliko signala. Za impedančno prilagoditev vhodov in izhodov vezja na 50 ohmske priključne koaksialne vodnike smo poskrbeli s spustnimi upori 50 (slika 13). Kasnejše meritve so pokazale, da v našem primeru niso potrebni, saj so priključne linije na TIV električno kratke. Slika 12: Upori za impedančno prilagoditev. Ob preklopih napajalni tok primerjalnikov močno naraste. Pojav tokovnih konic na napajalnih linijah povzroči nihanje napajalne napetosti, kar vpliva na samo histerezo primerjalnikov.

17 Zato smo čim bliţe napajalnim priključkom integriranega vezja dodali razklopne oz. premostitvene kondenzatorje C1 in C2 (C1=0,1uF, C2=2,2uF). Kondenzator C1 je ključnega pomena in mora biti po navodilih proizvajalca Texas Instruments tik ob nogici napajalne napetosti čipa (nogica 8, VCC). Slika 13: Napajalni kondenzatorji. 2.4 Predstavitev digitalnega dela Realizacija digitalnega dela detektorja v vezju FPGA temelji na zasnovi, zgrajeni v okolju Altium Designer, ki jo prikazuje slika 5. V celoti ga bomo implementirali na razvojni plošči AVNET SPARTAN 3A. Shematski opis vezja bomo izvedli v programu ISE Project Navigator in s simulacijami potrdili pravilno delovanje. Podroben opis realizacije sledi v poglavju 3.1. Detektor bomo razdelili na več podsklopov: VHODNA LOGIKA generira ključne krmilne signale za krmiljenje detektorja. Zgrajena je iz dveh JK flip flopov ter logičnih vrat, ki na izhodih generirajo krmilne signale, kot so npr. štej navzgor ( CU ), štej dol ( CD ), resetiranje ( PSE ) ter uro (CP), ki števcu določa interval štetja.

18 8-bitni števec, ki šteje v območju od 0 do 255. Prešteta vrednost v fazi zadrţevanja je sorazmerna fazni napaki in se v določenem trenutku prenese v 8-bitni register. 8-bitni register za zadrţevanje prejšnje vrednosti števca. V njem bo zadrţana prejšnja vrednosti števca, ki se v 8-bitnem primerjalniku primerja s trenutno prešteto vrednostjo na števcu. 8-bitnem primerjalnik primerja z trenutno prešteto vrednostjo na števcu s prehodno. Primerjalnik nato svoj rezultat primerjanja sporoči»dajalniku KRMILNIH SIGNALOV«. DAJALNIK KRMILNIH SIGNALOV ustvari ustrezne krmilne ukaze na izhodu. STARTNO VEZJE takoj po signalu RESET za nekaj časa omogoči pravilno postavitev izhoda za predznak. Ta se v prvi periodi glede na fazni zamik postavi tako, da se bo korekcija faznega zamika pravilno začela. Nato pa pred nastopom druge periode onemogoči nadaljnje spreminjanje predznaka. Omenimo še, da smo s 16-bitnim števcem zmanjšali notranjo frekvenco ure iz 16MHz na 1MHz, saj bi v nasprotnem primeru štetje potekalo prehitro za razpon 8-bitnega števca (0 255). V primeru štetja s 16MHz simulacija postane nepregledna. Prevelika frekvenca tudi povzroči, da števec večkrat prešteje skozi celoten obseg ter ponovno prične od vrednosti 0. To pa lahko povzroči tudi nepričakovane rezultate in netočno delovanje. Slika 14: Zasnova digitalnega dela.

19 2.5 Digitalni del na razvojni plošči Spartan 3A V predhodnem poglavju opisano digitalno vezje je bilo potrebno realizirati na razvojni plošči Avnet Spartan 3A (glej sliko 16). Razvojna plošča je zgrajena okoli vezja FPGA XC3S400A, Vezje FPGA ima 896 konfiguracijskih logičnih blokov (CLB) ter 256 vhodno izhodnih blokov, ki podpirajo različne napetostne standarde. To nam omogoča dovolj prostora za izgradnjo preprostih sistemov. Poleg tega pa nam nudi tudi štiri kapacitivne tipke, štiri led diode, temperaturni senzor ter veliko vhodno izhodnih priključkov. Slika 15: Blokovna shema razvojne plošče Avnet Spartan 3A. Blokovna shema na sliki 15 prikazuje zgradbo razvojne plošče Avnet Spartan 3A. Od prikazanih sklopov smo uporabili uporabniški I/O konektor (GPIO), na katerem so naši

20 vhodi in izhodi ter kapacitivna tipka RESET. Omenimo še, da je ura vezja frekvence 16 MHz generirana na sami razvojni plošči. 2.5.1 GPIO konektor Slika 16: GPIO na razvojni plošči. Vhodne in izhodne priključke smo dodelili GPIO uporabniškemu konektorju. Tega sestavlja 40 pinov, od tega jih je 5 namenjeno zgolj napajanju. Vseh preostalih 35 je programirljivih in zato jih lahko konfiguriramo kot digitalne vhode ali pa izhode. Tabela 3: GPIO konektor.

21 Od vseh teh smo uporabili 7 priključkov. Vsi se nahajajo na isti polovici konektorja in zasedajo pine 1, 3, 5, 7, 9, 11 in 13. Napajalna pina sta pin 1 ki predstavlja GND ter pin 3, ki predstavlja VCC. Izhodna signala iz primerjalnikov vodimo na pina 5 in 7. Na pin 5 vodimo COS, na pin 7 pa SIN. Izhodna linija A zaseda pin 9, izhod B pin 11, izhod U_nD pa izhod 13. Tabela 4: Uporabljeni priključki. 2.5.2 RESET tipka Detektor rabi RESET in tega smo dobili tako, da smo zasedli eno od štirih kapacitivnih tipk na razvojni plošči. Vse kar je bilo potrebno narediti, je bilo le to da smo v konfiguracijski datoteki Avnet_Sp3A_Eval_081201.ucf pod User I/O konfigurirali tipko kot RESET za vezje detektorja. Prav tako je bilo treba konfigurirati tudi pine na GPIO konektorju, opisanem v prejšnjem podpoglavju. Sama konfiguracijska datoteka bo podrobneje predstavljena v naslednjem poglavju. Slika 17: RESET tipka.

22 2.5.3 Konfiguracijska datoteka Vsak vhod, izhod, tipka ali LED dioda, ki jo ţelimo uporabljati na razvojni plošči Spartan,mora biti konfigurirana. S tem doseţemo, da programska koda, ki jo zapišemo v razvojno ploščo, vsebuje informacije, ki poveţe fizične elemente (priključki, tipke ) z virtualnimi priključki programske kode. Prav temu je namenjena datoteka Avnet_Sp3A_Eval_081201.ucf (ang. UCF - user constraints file). To je tekstovna datoteka z informacijami o časovnih omejitvah ter lokacijah uporabniških vmesnikov razvojne plošče Spartan. Slika 18: Konfiguracija CLK Slika 18 prikazuje kako smo konfigurirali uro CLK. V 15. in 16. vrstici je razvidno, da smo uro poimenovali CLK ter njeno periodo v naslednji vrstici nastavili na 62,50ns, kar ustreza frekvenci 16MHz. Slika prikazuje tudi izbiro ure, ki smo jo opravili v 27. vrstici. Naslednji korak je bil, da smo konfigurirali tudi tipko ter vhode in izhode na GPIO konektorju. To je razvidno na sliki 19, kjer je v vrstici 84 nastavljena RESET tipka, ter v vrsticah 119, 121, 123, 125 in 127 kjer so nastavljeni vhodi in izhodi. Poimenovanje priključkov v programski kodi se mora ujemati s poimenovanjem v datoteki.ucf.

23 Slika 19: Konfiguracija priključkov in tipke.

24 3 OPIS DIGITALNEGA VEZJA V OKOLJU XILINX ISE Slika 20: Xilinx ISE. Digitalni del korektorja faze smo opisali v okolju Xilinx ISE Project Navigator. ISE je integrirano načrtovalsko okolje, sestavljeno iz niza programov. Ti programi nam nudijo pisanje, simulacijo in izvajanje digitalnih modelov v ciljni FPGA ali CPLD (ang. Complex programmable logic device) napravi. Vsa orodja uporabljajo grafični vmesnik GUI (ang. Graphical user interface), ki omogoča izvajanje orodij in programov iz orodne vrstice, menijev ali pa ikon. Za opis digitalnih vezij je uporabljen visokonivojski jezik (VHDL ang.vhsic Hardware Description Language, Verilog) ne glede na to, ali smo pri opisu uporabljali grafične simbole ali pa smo načrtovanje pričeli s kodiranjem. Prav ta nam omogoča, da na različne načine opišemo digitalno vezje z visokonivojskimi stavki. Z njimi povezujemo ţe pred pripravljeno konstrukcijo vezja ali pa opišemo delovanje vezja. Vsebuje tudi ukaze in časovne zakasnitve, ki jih ne moremo sintetizirati in so namenjeni samo simulaciji. V našem primeru smo se odločili za shematski pristop in sicer iz dveh razlogov. Prvič, ker vezje ni kompleksno, in drugič, ker izhajamo iz obstoječega vezja s standardnimi digitalnimi vezji.

25 3.1 Postopek realizacije programske kode V poglavju 2.4 smo zapisali sklope, ki sestavljajo zamišljeno logiko digitalnega dela detektorja. ISE Project navigator nam omogoča večbitne elemente, zato smo lahko namesto več 4-bitnih elementov uporabili 8-bitne. V nadaljevanju so našteti uporabljeni elementi v programu ISE, v oklepaju pa primerjava istega elementa iz programa Altium Designer. Digitalni del v ISE sestavljajo: 2x JK flip flopa v HCC4027 ( 2x HCC4027 ) 1x 8-bitni števec CB8LED ( 2x HCC4029 ) 1x 8-bitni register SR8CLE ( 2x HCC4076 ) 1x 8-bitni primerjalnik COMPM8 ( 2x HCF4585 ) 1x 16-bitni števec CB16RE 7x AND vrat ( 2x HCC4081 ) 4x NOT vrata ( 2x HCC4049 ) 1x OR vrata ( 1x HCC4001 ) Po načrtu detektorja, ki smo ga na začetku realizirali v Altium Designer, smo nato pričeli z izdelavo istega vezja v programskem okolju ISE. Ker smo zaradi tega imeli na voljo ţe realizirano shemo, smo se odločili za shematski opis vezja. Potrebne elemente smo poiskali v knjiţnici programa ISE, za tiste, ki pa tam niso bili na voljo, smo na spletu poiskali primerni VHDL opis vezja. Pripravljen VHDL opis teh vezij smo transformirali v grafične simbole in jih povezali v shemi. Eden takšnih je bil model elementa HCC4027, ki vsebuje 2 JK flip flopa z opcijo priključitve ure (CLK) in reseta (C). Le-tega je bilo potrebno naknadno transformirati v simbol. Tako kot HCC4027 smo v shemo vključili tudi števca CB8LED in CB16RE, register SR8CLE, primerjalnik COMPM8 ter logična vrata. Vsi ti ţe pripravljeni modeli so omogočili hitro izdelavo električne sheme. V nadaljevanju bomo na kratko opisali, kako smo kreirali nov element ter kako smo realizirali shemo v programu ISE.

26 Slika 21: Ustvarjanje novega dokumenta. Na sliki 21 je prikazan prvi korak, potreben pri ustvarjanju elementa. Pričeli smo ga z desnim klikom na projekt, ki je v našem primeru imenovan»detektor«, ter kliknili»new Source«. S tem bomo dodali obstoječemu projektu nov vir. Njegov tip izberemo v naslednjem koraku.

27 Slika 22: Izbira novega vira. Na razpolago imamo več moţnosti. Če ţe razpolagamo z VHDL opisom elementa in bi jo radi spremenili v simbol, izberemo opcijo»vhdl Module«. Poimenovali smo jo po imenu bodočega elementa HCC4027 (JK Flip flop). V naslednjem koraku smo se srečali z novim oknom, kjer ročno deklariramo vhodne in izhodne spremenljivke. Slika 23: Deklaracija vhodov in izhodov.

28 Ker pa so v naši programski kodi ţe vse spremenljivke deklarirane, jih v tem oknu ni potrebno ponovno, zato lahko ta korak preskočimo. Kliknemo»Next«, da preidemo na osnovno načrtovalsko okno, kjer lahko programsko kodo skopiramo in poljubno urejamo. Slika 24: Urejanje programske kode. Po končanem urejanju izberemo opcijo»create Shematic Symbol«, ki generira grafični simbol elementa kateri bo odslej na voljo v knjiţnici elementov»symbols«. Vse omenjene korake ponovimo za vse elemente opisane z jezikom VHDL. Ko smo si pripravili vse elemente, smo lahko prešli v shematski način in pričeli z risanjem sheme. Prazen list za izris sheme generiramo z ukazom»new Source«->»Schematic«. Vezje poimenujemo npr.»celotno_vezje«.

29 Slika 25: Ustvarjanje nove sheme Z ukazom»next«se nam odpre prazen list, kjer lahko pričnemo z risanjem naše sheme. To okno prikazuje slika 29, kjer lahko vidimo, da imamo levo zgoraj na voljo več različnih knjiţnic, razvrščenih po skupinah. S klikom na katero koli, se nam prikaţejo elementi, ki so v njej na voljo. Te lahko enostavno povlečemo v polje, ki je namenjeno risanju shem. Vsa potrebna orodja, kot so npr. orodje za povezovanje, dodajanje priključkov, vstavljanje tekstov itd. pa se nahajajo levo, tik ob tem polju. Slika 26: Risanje sheme.

30 Grafični vmesnik za risanje shem je v tem programu enostaven, a nezanesljiv. Narisano shemo prikazuje slika 27. Slika 27: Shema detektorja. 3.2 Opis vezja digitalnega dela detektorja V tem poglavju vam bomo podrobneje predstavili realizirano shemo našega detektorja, kreiranega v okolju ISE Project Navigator. Za laţji opis jo bomo razdelili na tri dele (slika 28, 32 in 33): Vhodni del, Procesni del, Izhodni del.

31 3.2.1 Vhodni del Slika 28: Vhodni del. Slika 28 prikazuje vhodni del, kjer so z rdečo barvo označeni najpomembnejši deli. Med vhode vezja spadajo RESET, VCOS_k, VSIN in CLK. K vsakim vhodom je zaporedno vezan IBUF, ki simbolizira programirljivi I/O priključek vezja FPGA. Prav tako z njimi specificiramo, za kakšen tip vhoda gre ter kam bo povezan. To definiramo v ucf datoteki. Vhodne signale vodimo na JK flip-flopa HCC4027. Vhoda VCOS_K ter VSIN sta privedena na J vhod. Ista dva vhoda smo s pomočjo invertorja negirali in privedli na K vhod. S tem smo na izhodih Q in Q_n dobili dva ločena signala, ki imata logično vrednost 1 vsak ob drugi pol-periodi. Stanje se spreminja glede na vhodni signal. Če ima vhodni signal stanje logične enice, bomo na izhodu Q imeli logično stanje 1, če pa ima vhod logično stanje 0, imamo na n_q logično stanje 1. Ravno iz teh izhodnih signalov smo ustvarili kasneje opisano logiko, ki generira celotnemu vezju krmilne signale.

32 Slika 29: JK flip flop. Sledi opis logike za generiranje krmilnih signalov. Ta potrebuje signale iz obeh flip flopov, na izhodu pa s signali kot so CU (Count up), CD (Count down), PSE (Preset), DR (Data ready), ndr (Negative Data ready) in CLK krmili števce ter start vezje. Potek signalov bo predstavljen v tabeli 5, ki izhaja iz slike 30. Slika 30: Delitev vhodnih signalov. Časovni potek vhodnega signala smo razdelili na 4 časovne intervale: t1 t4. Tako smo s pomočjo logičnih vrat lahko ustvarili krmilne ukaze, kot so definirani v tabeli 5.

33 t1 t2 t3 t4 SIN U1 0 0 1 1 nu1 1 1 0 0 COS U2 0 1 1 0 nu2 1 0 0 1 PRIŠTEVANJE CU 1 0 0 0 ODŠTEVANJE CD 0 1 0 0 BRANJE DR 0 0 1 0 RESETIRANJE PRE 0 0 0 1 URA CLK 0 0 Tabela 5: Generiranje krmilnih signalov. Kot vidimo se v vsaki četrtini periode generira le po en ukaz. Štetje gor (CU), štetje dol (CD) ter reset (PRE) so generirani vsak v svoji četrtini in so namenjeni predvsem števcu. Signal, ki nam pove, da je števec zaključil svoj proces in da je prešteta vrednost pripravljena za prenos v register pa nam poda z vrednostjo DR. Ta se generira le v intervalu t3 in je namenjen START vezju ter registru za pomnjenje prejšnjega stanja števca. V poglavju, kjer bo predstavljen princip delovanja tega digitalnega dela, bomo točno zaporedje generiranje signalov podrobneje opisali. Pri tej logiki bi omenil to, da krmilnega signala CD nismo potrebovali, saj smo uporabili števec ki šteje navzgor le takrat, ko je na vhodu CU logično stanje 1, drugače pa odšteva. Omeniti pa je potrebno še, da je ura števca omogočena le v trenutkih t1 in t2, saj bi se v nasprotnem primeru štetje nadaljevalo. Zadnji element, ki ga moramo opisati, je delilnik urine periode (CB16RE), ki nam iz notranje ure razvojne plošče, ki ima vrednost 16MHz, spremeni uro na 1MHz. Tega smo morali dodatno vstaviti v vezje, saj nam pri uri 16MHz vezje ni pravilno delovalo. Teţava je bila v tem, da pri nizki vhodni frekvenci števec šteje predolgo in prehitro, zato je preveč prekoračil mejo 255. Pojavila se je potreba po delilniku notranje ure, ki bo upočasnil hitrost štetja. Ta delilnik smo realizirali z enostavnim 16-bitnim števcem, ki na Q3 izhodu poda šestnajstino frekvence 16MHz, ki mu jo pripeljemo na urin vhod CLK. Deluje na

34 preprost način, in sicer tako, da šteje gor s hitrostjo 16MHz, na izhodu pa spremeni stanje na vsakih 16 preštetih števil (16 period). Izračunano je to: CLK OUT = CLK IN 16 = 16MHz 16 = 1MHz Slika 31: Potek delilnika ure. Omenimo še to, da smo števcu omogočiti urin signal, in sicer na vhodu CE, na katerega smo vezali VCC, ter na vhodu R, kjer smo vezali vhodni signal RESET.

35 3.2.2 Procesni del Procesni del je najpomembnejši, saj v njem potekajo najvaţnejše operacije našega detektorja. Sestavljata ga 8-bitni števec (CB8CLED), 8-bitni register (SR8CLE) ter 8-bitni primerjalnik (COMPM8). Slika 32: Procesni del. 8-bitni števec CB8CLED štetje navzgor le, kadar je na njegovem vhodu UP logična 1. V nasprotnem primeru prične vrednosti odštevati. V primeru, da pa števec prešteje do svoje maksimalne vrednosti na izhodnem priključku Tc (Carry Out) preklopi iz logične 1 v logično 0. Ta informacija sluţi drugim števcem za povečanje razpona štetja, a tega v našem primeru nismo uporabili. Vhode D0 do D7 nismo vezali nikamor, saj funkcije predhodnega nalaganja vrednosti (PRELOAD) nismo uporabili. Ta bi se sicer naloţila, če bi za kratek čas omogočili vhod L (LOAD), ampak za nas je bil dovolj le vhod CLR, ki smo ga povezali s signalom PRESET. Izhodni priključki števca (Q0 do Q7) so z vodilom povezani na vhode registra (D0 do D7). Pravilnostno tabelo števca prikazuje tabela 4.

36 Tabela 6: Pravilnostna tabela delovanja števca. V procesni del spada tudi 8-bitni register ( SR8CLE). Njegovo delovanje in priključitev je dokaj enostavno. Na vhodni strani imamo vhode C (ura CLK), CE (omogočitev ure), L (nalaganje podatkov, ang. load), reset CLR ter podatkovni vhodi D0 do D7. Izhodno stran predstavljajo le izhodi Q0 do Q7. Register ima vhode preko vodila in vezane na izhode števca Q0 do Q7. To vodilo nam med delovanjem preko osmih linij prenese 8-bitno vrednost in nam jo zapiše v register med pozitivno fronto. Logična enica na vhodu L sproţi nalaganje registra s podatki na vhodih D[7..0]. Ta funkcija je z vezavo priključka L na VCC stalno omogočena. Nalaganje registra se izvrši vselej ob pozitivni fronti signala ure C. Slednji je povezan na ndr oz. negirani DR,, ki označuje prisotnost veljavnega podatka iz števca. Vhod CLR je vezan na RESET, ki register na samem začetku pobriše in na izhode postavi vrednost 0. CE je vhod, s katerim omogočimo uro CLK ter s tem tudi posledično vpisovanje v register. Ta je prav tako kot vhod L vezan direktno na VCC in je stalno omogočen. Pravilnostno tabelo registra prikazuje tabela 7.

37 Tabela 7: Pravilnostna tabela registra Iz tabele vidimo, da se nalaganje registra prične pod pogojem, da je CLR v stanju 0, podatki (D0 do D7) pa prisotni na vhodnem vodilu. Vpis se izvrši ob pozitivni fronti urine periode. Prav tako mora v tistem trenutku biti omogočen CE. X v tabeli pomeni»ni pomembno«, No Change pa pomeni»ni spremembe«. Kot zadnjega opišimo še 8-bitni primerjalnik (COMPM8). Primerjalnik ima za vhoda namenjeni dve 8-bitni vodili (A in B). V našem primeru je A vodilo, povezano na izhod registra, B vodilo pa na izhod števca. Njegova naloga je primerjati vrednost števca z vrednostjo registra in na izhodu LT (manjše od, ang. less then) ali GT (večje od, ang. Greater then) podati rezultat. Ta rezultat nam pove, ali je trenutna vrednost na števcu (vodilo A) manjša od prejšnje vrednosti, ki je bila shranjena v register. Na sliki 32 je razvidno, da smo uporabili samo izhod LT, ki se postavi v visoko stanje samo, kadar je bila predhodna vrednost števca manjša od trenutne (A< B). VHOD IZHOD A > B A < B A = B LT GT 1 0 0 0 1 0 1 0 1 0 0 0 1 0 0 Tabela 8: Pravilnostna tabela primerjalnika.

38 3.2.3 Izhodni del Izhodni del vezja je namenjen krmiljenju korektorja fazne napake, ki pa ni bil predmet našega diplomskega dela. Korektor potrebuje informacijo o predznaku in velikosti fazne napake. Ti informaciji dobiva preko krmilnih signalov A, B (predznak) in signala U_nD (v kolikor je fazna napaka večja od nič, je U_nD enak 1). Slika 33: Izhodni del. Izhodni del sestavljata dva modula: START vezje in»izhodna logika«. START vezje izhodni logiki omogoči delovanje, le-ta generira krmilne signale za korektor. Kot je razvidno iz slike 34 je start vezje sestavljeno iz dveh T flip flopov, dveh AND vrat ter invertorja. Vhodni signali so RESET, ndr ter DR, izhodni pa EN_U_nD ter START. Naloga vezja START, je da po resetu za kratek čas postavi izhod START v visoko stanje in tako omogoči»izhodni logiki«postavitev pravilnega predznaka. V nadaljnjih periodah se predznak ne spreminja več. Ko je predznak pravilno določen, vezje START postavi

39 izhod EN_U_nD na logično vrednost 1 in s tem omogoči krmiljenje korektorja. S tem vsako novo periodo vhodnega signala,»izhodni logiki«sporočimo, kdaj lahko spreminja signal U_nD, ki je odvisen od rezultata primerjalnika. Točno generiranje signalov je prikazano v pravilnostni tabeli 9. Slika 34: Startno vezje. Signal ndr je logično negiran signala DR, zato v pravilnostni tabeli ni primera, ko bi oba hkrati bila v logičnem stanju 1 ali 0. ČAS VHODI IZHODI DR ndr Q1 Q2 EN_U_nD START RESET 0 1 0 0 0 1 PERIODA 0 1 1 1 0 0 n 1 0 1 1 1 0 PERIODA n+1 0 1 1 1 0 0 1 0 1 1 1 0 Tabela 9: Pravilnostna tabela START VEZJA. V tabeli je prikaz poteka generiranja izhodnih signalov glede na vhodne. Razvidno je, da se START pojavi le na začetku, takoj ob resetu. Zatem se izbriše in se ne ponovi več. Signal EN_U_nD se generira vsako vhodno periodo ob prisotnem signalu DR. Opišimo še logiko za korektor. Sestavljena je iz dvojnega JK flip flopa HCC4027 ter dveh AND vrat. AND vrata določajo, kdaj se bodo krmilni signali U_nD, A in B začeli pojavljati na izhodih. To ji določa vezje START s krmilnima signaloma START in

40 EN_U_nD. S prvimi vrati AND omogočimo signal ure CP1 prvega Flip-flopa. Ko je signal START=1, je omogočen signal DR. Tako se ob stanju START=1 ter prvi fronti signala DR in na izhod A postavi vsebina najvišje uteţnega bita števca D7, ki vsebuje informacijo o predznaku fazne napake. Če je D7=1, je fazna napaka negativna in, če je D7 = 0, je pozitivna. S tem se»izhodna logika«samo na začetku odloči, ali bo postavila visoko stanje na izhodu A ali pa B. Natančnejše delovanje pa je prikazano v spodnjem grafu. Slika 35: Izhoda A in B. Podobno velja za drug flip flop ter AND vrata, ki uro CP2 drţijo v mirovanju dokler je signal EN_U_nD na logičnem stanju 0. Šele ko je EN_U_nD=1, je ura drugega FF omogočena. Kot signal ure drugega FF je uporabljen signal A_manjši_od_B. Vselej ob naraščajoči fronti signala A_manjši_od_B se bo negirala vrednost izhoda U_nD, saj je drugi JK-FF vezan kot T-FF. Sprememba signala U_nD je znak korektorju faze, naj spremeni tendenco korekcije fazne napake. Če je prej povečeval prištet deleţ sinusa, ga naj prične zmanjševati in obratno. Točno delovanje tega flip flopa prikazuje spodnji graf.

41 Slika 36: Izhod U_nD. 3.3 Princip detekcije faznega zamika V tem poglavju vam bo predstavljen princip detekcije faznega zamika oz. fazne napake. Obstajajo tri moţnosti: Fazni zamik je φ > 90 oz. fazna napaka je Δφ > 0. Fazni zamik je φ < 90 oz. fazna napaka je Δφ < 0. Fazni zamik je φ = 90 oz. fazna napaka je Δφ = 0. Primere bomo podrobno razloţili v naslednjih poglavjih. 3.3.1 Fazni zamik je večji od 90 (Δφ > 0 ) V tem primeru signal COS prehiteva glede na SIN. Iz slike 37 je lepo razvidno, da nam zaradi prevelikega faznega zamika vhodna logika generira signal za štetje gor CU krajši čas, kot pa signal za odštevanje CD. Naš števec bo v tem primeru več časa zmanjševal vrednost, kot pa jo povečeval. Zaradi tega bo števec, ki ima razpon od 0 do 255, nadaljeval odštevanje tudi, ko doseţe vrednost 0. Po tej vrednosti pa se na izhodu števca pojavi vrednost 255, od katere nadaljuje odštevanje še kratek čas. Kot smo ţe omenili, je števec 8-

42 biten. Od teh bitov nam je za detekcijo fazne napake najbolj pomagal zadnji, osmi bit D7. Ravno ta je v visokem stanju vedno, kadar je vrednost večja od 128. To pa je lahko le v primeru, ko števec prične z odštevanjem od 255 navzdol zaradi faznega zamika, ki je večji od 90. Slika 37: Fazni kot je večji od 90. Ko»vhodna logika«prekine števcu urin signal v trenutku, ko je signal DR visok, sporoči START VEZJU, da lahko omogoči izhod primerjalnika. Ta vseskozi primerja trenutno vrednost na izhodu števca s prejšnjo vrednostjo v registru. Prejšnja vrednost je ob začetku vedno 0, saj RESET pobriše vrednost registra. V našem primeru, ko je fazni zamik večji, je trenutna vrednost večja od prejšnje. Rezultat primerjalnika bo visoko stanje na izhodu GT, vse dokler ne bo fazni zamik korigiran. U_nD signal generira»izhodna logika«, vendar samo v primeru, da je bila prejšnja vrednost manjša v trenutku, ko sta signala DR ter EN_U_nD (START VEZJE) v visokem stanju. Nizko stanje U_nD števcu korektorja sporoča, naj šteje navzdol oz. naj zmanjša deleţ dodanega sinusnega signala za korekcijo faze kosinusnega signala. Takoj po resetu, ko je DR v visokem stanju, START VEZJE (signal START) za eno periodo vhodnega signala omogoči»izhodni logiki«, da se odloči, v katero smer bo popravljala zamik. Ta dva signala sproţita pozitivno fronto na urinem signalu JK flip flopa in glede na to, da imamo D7 v visokem stanju, se ta odloči, da postavi

43 visoko stanje na izhod A. To pomeni, da bo korektor dodajal negativno vrednost sinusne amplitude vhodu COS ter tako zmanjšal fazno napako. V naslednji periodi START preide v nizko stanje, saj se v START VEZJU ta signal pobriše in se do nadaljnjega reseta ne postavi več. Kljub temu pa se smer korigiranja obdrţi. 3.3.2 Fazni zamik je manjši od 90 ( < 0 ) V tem primeru signal COS preveč zaostaja glede na SIN. Iz spodnjega grafa je lepo razvidno, da nam zaradi prevelikega faznega zamika vhodna logika generira signal za štetje gor CU dlje časa kot pa signal za odštevanje CD. Naš števec bo v tem primeru več časa, povečeval vrednost, kot pa zmanjševal. Zaradi tega bo števec končal odštevanje, še preden bo dosegel vrednost 0. Posledica tega bo, da bo zadnji bit trenutne vrednosti D7 v nizkem stanju. To pa zato, ker bo vrednost števca večja od 0, ampak ne večja od 127. Ta bit nam zdaj signalizira, da je fazni zamik manjši od 90. Slika 38: Fazni zamik je manjši od 90. Ko»vhodna logika«prekine števcu urin signal, le ta preneha odštevati. V naslednjem koraku se generira signal DR in ravno v tem trenutku ima primerjalnik omogočen izhod s signalom EN_U_nD. Ker je v samem začetku v registru vrednost 0, in jo primerjamo s

44 trenutno vrednostjo, nam primerjalnik poda visoko stanje na izhodu LT, kar pomeni da je prejšnja vrednost manjša od trenutne. Če sta signala EN_U_nD (START VEZJE) ter LT v visokem stanju, povzročita pozitivno fronto na drugem JK flip flopu. Zaradi tega nam»izhodna logika«na izhodu U_nD postavi visoko stanje. V naslednjem koraku, ko se DR postavi v nizko stanje (trenutek PRE), se na registru pojavi pozitivna fronta signala ndr. Ta sporoči registru naj pomni trenutno vrednost iz števca. V istem trenutku, ko je PRE visok, pa se pobriše trenutna vrednost števca, ki lahko v naslednji periodi prične ponovno šteti od 0. 3.3.3 Fazni zamik je enak 90 ( = 0 ) Zadnji moţni primer je, da je fazni kot enak 90. Takrat sta signala CU in CD enako časa generirana. To pomeni, da kolikor števec prišteje med signalom CU, toliko odšteje, ko je generiran CD. Rezultat, ki ga bo v tem primeru podal števec, bo 0. Tudi vrednost bita D7 bo 0, saj so takrat vsi biti v logičnem stanju 0. Iz tega lahko sklepamo da bo na»izhodni logiki«, kjer izbiramo predznak korigiranja, visoko stanje na izhodu B. To pomeni, da kosinusnemu signalu dodajamo del pozitivne amplitude sinusa. Slika 39: Fazni zamik je enak 90.

45 Prav tako tudi tu»vhodna logika«potem, ko sta bila signala CU in CD generirana, onemogoči uro števcu. Zatem se generira DR, ki sproţi v START VEZJU signala START ter EN_U_nD. Visoka START in DR povzročita na JK flip flopu»izhodne logike«pozitivno fronto urinega signala, ker pa je D7 v nizkem stanju, se na izhodu tega flip flopa pojavi visoko stanje na B izhodu. Primerjalnik v tem času na nobenega od svojih izhodov ne postavi visoko stanje, saj je prejšnja vrednost v registru enaka trenutni vrednosti na števcu. Enaki sta zato, ker je register po glavnem resetu imel vrednost 0, števec pa je zaradi točnega faznega kota na svoj izhod podal prav tako vrednost 0. To povzroči, da»izhodna logika«, ki je odvisna od signala LT, ne dobi pozitivne fronte na urinem signalu drugega JK flip flopa. Sledi da bo izhod U_nD ostal v nizkem stanju. Naslednji korak je, ko se DR postavi v nizko stanje in se njegov negirani signal ndr postavi v visoko. To sproţi pozitivno fronto na registru, ki zajame trenutno vrednost enako 0. Če se v naslednji periodi fazni zamik ne spremeni, ostajajo izhodni signali enaki. 4 REZULTATI SIMULACIJ V tem poglavju vam bomo predstavili rezultate simulacij digitalnega dela ter celotnega vezja. Digitalni del vključuje shemo vezja in simulacijsko datoteko.tbw, ki smo jo konstruirali v ISE Project Navigatorju. Ta del smo testirali z programom ISIM, ki je vključen kot podprogram orodja ISE. V drugem podpoglavju predstavljamo simulacije celotnega vezja, opravljene v okolju Altium Designer. 4.1 Simulacija digitalnega dela Simulacija digitalnega dela bo potekala v programu ISIM. Pred simulacijo je potrebno zapisati testne vektorje, kar bomo opisali v naslednjem podpoglavju.

46 4.1.1 Generiranje datoteke.tbw ter programsko orodje ISIM Digitalni del smo simulirali s programskim orodjem ISIM. Ta program je vključen v ISE Project Navigator in sluţi kot simulacijsko orodje, s katerim lahko preverimo delovanje VHDL programa ali sheme. Še preden smo zagnali simulacijo, pa je bilo potrebno generirati datoteko testnih vektorjev. Datoteka s testnimi vektorji ima končnico.tbw (Test Bench Waveform). Ogrodje datoteke testnih vektorjev generiramo podobno kot ostale dokumente v ISE, pri tem izberemo opcijo Generate VHDL Test Bench ter datoteko vhdl ki so ji testni vektorji namenjeni. Ogrodje datoteke se ustvari samodejno (vključene komponente, knjiţnice, definirani vhodi in izhodi), testne vektorje pa na ustreznem mestu dodamo sami. Slika 40: Definiranje vhodov, izhodov in notranjih signalov.

47 Slika 40 prikazuje primer avtomatsko generiranega ogrodja. Definirani so vhodi in izhodi. Prav tako so definirani notranji signali. V našem vezju nastopajo le podatkovni tipi STD_LOGIC, ki so posebej namenjeni za simulacijo obnašanja digitalnih vezij. V istem delu kode so definirani časi oziroma konstante, ki se med tekom simulacije ne spreminjajo. Periodo ure smo nastavili na 62,5 ns, kar predstavlja notranjo uro 16MHz. Prav tako smo definirali še OFFSET čas, ki je čas veljavnosti signala pred prihodom fronte urinega signala. Definirati je bilo potrebno tudi frekvenco vhodnih signalov SIN in COS. Te smo generirali s konstanto, imenovano ZAMIK. Ta konstanta je predstavljala polperiodo obeh vhodnih signalov. Predstavlja 49,6us, kar pomeni, da bomo z dvema polperiodama dobili frekvenco 1kHz. f = 1 = 1 = 1 PER IODA 2 ZAMIK 2 16 500 62.5 10 9 = 1kHz (5) Naslednji korak je bil generiranje periodičnega signala VSIN. Signala VSIN med simulacijo ne bomo spreminjali, zato bo njegov potek zapisan v samo enem delu. Slika 41: Sinusni signal. V vrstici 97 na sliki 41 je ta proces za generiranje VSIN poimenovan kot tb_vsin (ang. Test Bench_VSIN), naslednja pa oznanja začetek procesa. Vrstica 100 pove, da v samem začetku signal počaka v nizkem stanju en čas periode in zamika. Nato prične signal VSIN spreminjati logično stanje in naredi 50 ponovitev. Ko pride do 50, počaka za čas enega zamika in nato zaključi proces. Digitalni signal VCOS generiramo na podoben način s procesom tb_vcos_k. Generirali smo ga trikrat, da smo ustvarili različne fazne zamike.

48 Slika 42: Kosinusni signal, kjer je zamik večji od 90. Pred vsakim delom zamika pa smo generirali sproţitev RESET signala, saj smo morali simulirati, kako se vezje detektorja odzove na različne fazne zamike. Ta RESET drţi eno periodo, nato pa se ponovno postavi na 0. Opomniti je treba tudi to, da naše vezje deluje šele po pritisku RESET in od tistega trenutka ugotovi, v katero smer bo popravljalo fazni zamik. V vrstici 119 na sliki 42 je prikazano, da smo kosinusni signal zakasnili z manj kot pol zamika. Posledica tega bo, da bo kosinusni signal prehiteval in detektor bi v tem primeru moral zaznati, da je fazni kot večji od 90. Po petdesetih ponovitvah (vrstica 120) pa preidemo na nov reset ter nov fazni zamik. Slika 43: Kosinusni signal, kjer je fazni zamik manjši od 90.

49 Naslednji zamik smo generirali na enak način kot prejšnjega. V tem primeru smo čase trajanja RESET signala tako povečali, da je nastal fazni zamik glede na sinusni signal manjši od 90. Zadnji fazni zamik (slika 50), ki smo ga generirali, je imel vrednost točno 90. Generirali smo ga na enak način kot prejšnja dva, le čase trajanja RESET signala ter čas čakanja WAIT smo zmanjšali tako, da je med kosinusnim in sinusnim signalom nastal zamik za točno 90. Slika 44: Kosinusni signal s faznim zamikom 90. Ko smo končali s pisanjem, smo lahko preverili, če smo simulacijsko datoteko napisali pravilno. To nam je omogočalo orodje Behavioral Check Syntax. Če je bil rezultat pozitiven, smo lahko simulacijo tudi pognali (orodje Simulate Behavioral Model). Slika 45: Zagon simulacije.

50 Ta funkcija nam je odprla podprogram ISIM, v katerem se je začela izvajati simulacija. Slika 46: Program ISIM. Kot je na sliki 46 vidno, nam program na levi strani nudi nabor signalov, ki jih lahko opazujemo. Izbranega vključimo v sredinsko okno, kjer se prikazuje tudi njegova vrednost glede na pozicijo rumenega markerja. Marker lahko pomikamo preko časovnih potekov signalov. Čas simulacije lahko poljubno podaljšamo. Rezultate simulacije predstavljamo v naslednjem podpoglavju. 4.1.2 Rezultati simulacije v programu ISIM Zaradi večje preglednosti bomo rezultate predstavili na grafu s časovnimi poteki. Pri tem bomo opazovali odziv vezja na 3 različne scenarije z različnimi faznimi zakasnitvami. Pričeli bomo s primerom, kjer je fazni kot večji od 90. Ta signal smo generirali s testnim vektorjem, predstavljenim na sliki 42. Rezultate simulacije prikazuje slika 47.

51 Slika 47: Simulacija faznega kota, večjega od 90. Najbolj pomembno časovno obdobje nastopi takoj po signalu RESET. Takrat naša logika prične s prištevanjem in odštevanjem, zatem pa v času DR ugotovi predznak korekcije (glede na bit D7) in poleg njega prične odločati o postavitvi signala U_nD. Takoj po resetu se signal START postavi v logično stanje 1 in s tem omogočil izhodni logiki, da se na podlagi zadnjega bita odloči o predznaku. V tem primeru vidimo, da je vrednost večja od 128, kar pomeni, da je bit D7 v visokem stanju in se signal A postavi na logično vrednost 1. Takšno obnašanje je pričakovano, saj bo s tem začel korektor kosinusu dodajati pozitivno vrednost sinusne napetosti. U_nD ostaja v logičnem stanju 1 in s tem omogoči, da korektor prične s korekcijo. Postavitev signalov za ta primer v trenutku DR, predstavlja tabela 10. ZAMIK Δφ A B U_nD Δφ>0 1 0 1 Tabela 10: Izhodni signali pri Δφ>0. Kot naslednjega smo simulirali primer, kjer je fazni kot manjši od 90. V tem primeru je v intervalu, kjer velja START = 1, bit D7 na števcu v stanju logične ničle in je postavljen

52 negativni predznak korekcije (B). To pomeni, da fazo signala COS korigiramo z odštevanjem signala SIN. Simulacija na sliki 48 omenjene trditve potrjuje. V času DR je bit D7 v nizkem stanju in zaradi tega se znak korekcije ne spremeni tako kot v prejšnjem primeru. Tudi U_nD je v nizkem stanju in s tem korektorju sporoča, da naj nadaljuje korigiranje. Slika 48: Simulacija faznega kota, manjšega od 90. Časovni interval DR je najpomembnejši trenutek posamezne periode, saj pridobimo informacije, od katere je odvisen način korekcije. V tem primeru so signali v času, ko je DR v visokem stanju, postavljeni tako, kot kaţe naslednja tabela. ZAMIK Δφ A B U_nD Δφ>0 0 1 1 Tabela 11: Izhodni signali pri Δφ<0. Kot zadnji ostaja primer faznega kota z vrednostjo točno 90. Za takšen primer korekcija faze ni potrebna, oziroma je to končno stanje po izvršeni korekciji fazne napake. Vendar če ne vemo, da fazne napake ni, in vseeno sproţimo korekcijo, bomo dobili naslednje rezultate.

53 Slika 49: Simulacija faznega kota ki je enak 90. CU in CD sta v tem primeru popolnoma enaka, zato je vrednost v času DR enaka 0. Signal START je visok, bit D7 pa nizek, zato se predznak korigiranja ne spremeni in ostane negativen (B). Posledica tega, da sta trenutna in prejšnja vrednost vedno enaki, je, da je trenutna vrednost signala U_nD vedno negirana prešnja vrednost. Tako kot v prejšnjih primerih, bomo tudi tu v tabeli predstavili postavitev izhodnih signalov v trenutku DR. ZAMIK Δφ A B U_nD Δφ=0 0 1 1 Tabela 12 : Izhodni signali pri Δφ=0. OPOMBA Kot je iz vseh treh simulacij razvidno, je signal U_nD vedno enak 1. Temu je tako, ker se U_nD postavi v nizko stanje še le, ko je korekcija prevelika, kar pa s testnimi vektorji ni bilo simulirano.

54 Slika 50: U_nD signal. Iz slike 50 je razvidno, da U_nD signal preide v nizko stanje takoj zatem, ko detektor ugotovi, da je preveč korigiral fazni kot in ponovno povzročil majhno fazno napako. S postavitvijo signala U_nD nazaj v visoko stanje doseţemo, da to napako potem odpravimo. Če pa bi jo popravljali predolgo, bi ponovno povzročili napako. V tem primeru signal U_nD spreminja logično vrednost med 1 in 0 in brez prekinitve korigira fazni kot okoli vrednosti 90.

55 4.2 Rezultati simulacije v Altium Designer V tem poglavju bomo predstavili simulacijo celotnega vezja, ki smo jo opravili v programu Altium Designer. Kot smo ţe omenili, ta podpira tudi simulacije v analognem okolju. V njem smo lahko generirali tako analogne kot digitalne signale. Slika 51: Generatorji signalov za simulacijo. Pred zagonom simulacije smo morali v shemo vključiti generatorje napetosti, ki simulirajo vhodne in krmilne signale. Določili smo jim parametre, kot so: oblika napetosti, perioda ali trajanje signala ter fazni zamik signala. Fazni zamik smo nastavili izključno za generator vhodnega signala VCOS. Frekvenco vhodnih signalov smo izbrali 1KHz, da se bo pribliţno ujemala s simulacijo v ISIM. Napetost reference Ur je nastavljena na 1V, napajalna pa na 3,3V, kar je identično razmeram pri meritvah. Rezultate tranzientne analize prikazujejo slike 53, 54 in 55.

56 Slika 52: Nastavitve simulacije. Simulacijo smo opravili za vse tri scenarije faznih zamikov. Najprej predstavljamo rezultate za fazni zamik, ki je večji od 90. V tem primeru smo simulirali kot 95. Slika 53: Simulacija pri kotu 95.

57 Kot vidimo, so rezultati skorajda popolnoma identični simulaciji iz ISIM. Detektor ugotovi, da je večji fazni zamik od 90 in ţe v prvi periodi pravilno postavi smer korekcije. Izhod A postavi v visoko stanje, izhod B pa v nizko. Pravilno deluje tudi signal EN_U_nD, ki se takoj po padcu START signala prične ob DR postavljati v visoko stanje. Izhod U_nD je pa ves čas v visokem stanju in se ne spreminja, saj se kot med simulacijo ni spreminjal. Naslednji scenarij je pri kotu, manjšem od 90. V našem primeru smo nastavili kot 85. Če vezje pravilno detektira fazni kot, je predznak korekcije obraten kot v prejšnjem primeru. Zdaj mora biti izhod B v visokem stanju. Slika 54: Simulacija pri kotu 85. Simulacija je te trditve tudi potrdila, saj se tekom nje predznak korekcije ni spremenil. Signal U_nD je ostal v visokem stanju, ker se trenutne in prejšnje vrednosti med simulacijo niso spreminjale. Tudi EN_U_nd se postavlja pravilno, zato lahko sklepamo, da tudi v tem scenariju detektor deluje pravilno.

58 Zadnji moţni scenarij je pri kotu 90. V takšnem primeru detektor ne spreminja smeri korekcije. Prav tako ne postavi signala U_nD v nizko stanje, saj se prejšnje in trenutne vrednosti med simulacijo ne spreminjajo. Slika 55: Simulacija pri kotu 90. Tudi v tem primeru je simulacija potrdila pravilno delovanje detektorja, saj se predznak korekcije ne spremeni, prav tako pa se ne spreminja izhod U_nD. Če primerjamo simulacije izvedene v programu ISIM in Altium Designer, opazimo, da so rezultati identični. Na osnovi tega lahko sklepamo, da smo pravilno izvedli realizacijo detektorja z obema programskima orodjema. V naslednjem poglavju bomo predstavili rezultate meritev, opravljenih v laboratoriju.

59 5 MERITVE To poglavje je najpomembnejše, saj se iz virtualnih simulacij preselimo v laboratorij, kjer nastopijo teţave, ki jih pri simulacijah nismo predvideli. Zavedati se moramo, da so v realnem okolju prisotni šumi in motnje, tolerance elementov ter različne nelinearnosti, ki negativno vplivajo na delovanje vezja. 5.1 Meritve analognega vezja Analogno vezje predstavljata dva Schmittova preklopnika, ki naj bi teoretično delovala popolnoma enako. Izmerili smo njune najvaţnejše parametre ter jih primerjali. Za meritev smo uporabili naslednje instrumente: Napajalnik Hameg HM7042 2-kanalni frekvenčni generator Rigol DG1022 4-kanalni osciloskop LeCroy LT344 Na vezje smo zdaj na vhodne sponke SIN in COS pripeljali ločeno po en kanal, napetost sinusne oblike. Ti dve napetosti sta imeli vrednost 1V ter frekvenco 10kHz. Nastavili smo tudi offset 0,5V ter fazni zamik na drugem kanalu, ki je predstavljal vhodni signal COS. Napajalno napetost smo izbrali 3V ter referenčno napetost Ur = 0,5V. Slika 56 prikazuje izmerjene rezultate.

60 Slika 56: Delovanje analognega vezja. Vezje deluje pravilno. Za pravilno korekcijo faze so ključnega pomena vrednosti preklopnih napetosti in časi trajanja preklopov obeh primerjalnikov. Prav tako moramo ugotoviti, do kolikšne mere se preklopni karakteristiki primerjalnikov ujemata. Najprej bomo od naštetih parametrov izmerili napetosti preklopov. Pri sinusni in kosinusni napetosti smo izmerili, pri kateri vrednosti referenčne napetosti Ur se izvede preklop izhodnega signala v visoko stanje ter pri kateri se postavi nazaj v nizko stanje. Meritve nam bo podal osciloskop, ampak le povprečno vrednost nekega preklopa. Za sinusni signal smo dobili rezultate, kot jih prikazujeta sliki 57 in 58.

61 Slika 57: Preklop v visoko stanje. Slika 58: Preklop v nizko stanje.

62 Osciloskop nam je točno izmeril, pri kateri napetosti se pojavita preklopa. Vse vrednosti so predstavljena v naslednji tabeli. U (mv) Uhyst (mv) PREKLOP V 1 499.9 23.2 PREKLOP V 0 523.1 Tabela 13: Preklopne napetosti signala SIN. Pri sinusnem signalu torej histereza znaša 23.2mV, kar odstopa za 1mV od izračunane vrednosti. Če bo histereza primerjalnika za kosinusni signal pri istih preklopnih napetostih, bodo rezultati zadovoljivi. Naslednja meritev je bila na kosinusnem signalu. Pri njem smo prav tako merili napetosti preklopov ter dobili rezultate, kot jih prikazujejo slike 59 in 60. Slika 59: Preklop v visoko stanje.

63 Slika 60. Preklop v nizko stanje. Prav tako kot pri sinusni napetosti bomo predstavili v tabeli tudi vrednosti za kosinusni signal. U (mv) Uhyst (mv) PREKLOP V 1 500.6 23.5 PREKLOP V 0 524.1 Tabela 14: Preklopne napetosti signala COS. Iz tabele vidimo, da je razpon histereze skorajda identičen razponu pri sinusni napetosti. Preklopi so le vsi pomaknjeni za slab mv višje. To našemu detektorju ne bo predstavljalo prevelikega problema, edino kar pa je zaskrbljujoče, je to, da pragovi preklopov zelo skačejo. Na slikah so razvidna tudi minimalna in maksimalna odstopanja, ki imajo vrednosti nekaj mv. V nadaljevanju bomo izmerili tudi čas preklopa, ki mora biti dovolj kratek, da lahko digitalno vezje ob pravem trenutku ugotovi logično stanje signala. V primeru, da je preklop prepočasen, bi lahko digitalno vezje med preklopom primerjalnika zajelo vrednost iz

64 področja negotovosti (napetost, pri kateri ne moremo z gotovostjo ugotoviti, ali gre za logično enico ali ničlo), ki bi posledično povzročilo napačno delovanje. Meritev preklopnih časov bomo izvedli z istim vhodnim signalom. Z osciloskopom izmerjene preklopne čase pri preklopu iz nizkega na visok napetostni nivo prikazuje slika 61. Slika 61: Preklop v logično 1. Preklopne čase pri preklopu iz visokega na nizek napetostni nivo prikazuje slika 62. Slika 62: Prehod v logično 0.

65 Za laţjo primerjavo bomo izmerjene čase preklopov primerjalnikov vnesli v tabelo. Preklop v 1 (ns) Preklop v 0 (ns) PRIMERJALNIK 1 6.6 4.8 PRIMERJALNIK 2 7.9 4.6 Tabela 15: Preklopni časi. Iz rezultatov v tabeli 15 je razvidno, da prehod v 1 traja pribliţno 2ns dlje kot pa prehod v 0. Vidimo tudi, da so preklopni časi primerljivi s preklopnimi časi TTL logičnih vezij, saj sta oba prehoda krajša od 9,5ns. To pa je tudi meja, pri kateri digitalno vezje še normalno deluje. Z istim vhodnim signalom smo opravili še meritve zamika med hkratnimi preklopi primerjalnikov. Slika 63: Razlika pri preklopu v 1. Prvi rezultat meritev nam pokaţe, da drugi primerjalnik kljub istemu vhodnemu signalu preklopi šele 6ns po prvem. Zamik je tudi na negativni fronti, kar prikazuje naslednji graf.

66 Slika 64: Razlika pri preklopu v 0. Pri prehodu v logično stanje 0 je zamik manjši kot pri pozitivni fronti. Opazimo, da je tokrat drugi primerjalnik pri preklopu prehitel prvega. To pomeni, da če seštejemo poznejši preklop v 1(6ns) in hitrejši preklop v 0 (4.7ns), dobimo kar 10ns krajšo visoko stanje periode drugega primerjalnika v primerjavi s prvim. To je posledica neenakih histereznih napetosti, ki pozneje povzročijo napako v detekciji faznega zamika.

67 5.2 Meritve celotnega vezja V tem poglavju bomo zdruţili analogni vhodni del in digitalnim del v celoto ter opravili meritve. Te meritve bomo primerjali s simulacijami ter poskušali ugotoviti, če se detektor pravilno obnaša tudi v realnih pogojih. Prikazali jih bomo tako kot pri simulacijah pri faznem zamiku 85, 95 in 90. Odločili smo se, da bomo meritve izvajali pri vhodnem signalu 1kHz, referenčni napetosti Ur 1V ter napajanju 3.3V (VCC GPIO). Tabela 16 prikazuje točne parametre okolja, v katerem smo izvajali meritve. VCC 3.3V Ur 1V Vsin 1V Vcos 1V Offset sin 1V Offset cos 1V fsin 1kHz fcos 1kHz Tabela 16: Parametri meritev. Detektor ni deloval, kot smo pričakovali, saj je signal U_nD poskakoval, namesto da bi drţal visoko stanje. Kot smo ţe v simulaciji prikazali, se ta signal ne spreminja, dokler se fazna napaka zmanjšuje ali pa je ostala enaka napaki v prejšnjem ciklu korekcije. Ker v našem primeru nimamo povratne zanke, so razmere drugačne od predvidenih. Zaradi poskakovanja smo na osciloskop pripeljali izhodni signal iz primerjalnika, saj ravno ta odloča o postavitvi U_nD signala. Opazovanje tega nas je pripeljalo do presenetljive ugotovitve: čeprav se fazni kot ne spreminja med tekom meritve, primerjalnik vsakih nekaj period poda informacijo, da se je fazni kot spremenil.

68 Slika 65: Motnja v delovanju: Kanal 1 prikazuje SIN, kanal 2 COS, kanal 3 izhod 8-bitnega primerjalnika in kanal 4 signal U_nD. Slika 65 prikazuje to motnjo, ki smo jo zajeli pri faznem zamiku 85, pojavlja pa se pri vseh kotih. Kanal 1 in 2 prikazujeta izhodna signala analognih primerjalnikov SIN in COS, kanal 3 izhodni signal 8-bitnega primerjalnika, kanal 4 pa signal U_nD. Če sklepamo po principu delovanja ter simulacijah, bi moral primerjalnik v vsaki periodi podati enak rezultat. V našem primeru ga ni, kar pa lahko pomeni le eno, da je števec prejšnjo periodo podal drugačno vrednost kot v trenutni periodi. Sklepamo, da je to posledica neenakih histerez obeh primerjalnikov, ki določata preklopne napetosti. Da ne bi posegali v vezje, smo preklopne napetosti analognih primerjalnikov kar se da izenačili s korekcijo enosmerne napetosti vhodnih signalov SIN in COS. Pri tem smo poskrbeli, da je visoko stanje polperiode trajalo enak čas kot nizko stanje polperiode. Za potrebno kalibracijo smo morali v našem primeru kalibrirati tako vhod SIN kot COS. Tako smo prišli do novih parametrov okolja, predstavljenih v tabeli 17.

69 VCC 3.3V Ur 1V Vsin 1V Vcos 1V Offset sin 988mV Offset cos 986mV fsin 1kHz fcos 1kHz Tabela 17: Novi parametri meritev S temi parametri smo se bolje pribliţali idealnim razmeram, ki so nastopale v simulacijah. Vendar kljub kalibraciji ne doseţemo idealnih razmer popolnoma, zato ne moremo zagotoviti v celoti, se nebo napačno delovanje na trenutke ponavljalo. Vsekakor smo omilili napako, kar nam je omogočilo da izvedemo meritve pri kotih 85, 95 ter 90. Meritve pri faznem zamiku 85 prikazuje slika 66. Slika 66: Signal A in B pri kotu 85. Kanal 1 in 2 prikazujeta signale analognih primerjalnikov, kanal 3 izhod A, kanal 4 pa izhod B.

70 Če primerjamo prikazan potek signalov, ugotovimo, da detektor pravilno postavi visoko stanje na izhod B. S tem bi pričel v merilnem sistemu fazni kot povečevati. Da so rezultati povsem pravilni, ugotovimo tudi, če jih primerjamo z rezultati simulacije na sliki 54, saj so ti identični. Slika 67 prikazuje časovni potek izhodnega signala primerjalnika ter signala U_nD. Slika 67: Signal U_nD pri kotu 85. Kanal 1 in 2 prikazujeta signale analognih primerjalnikov, kanal 3 izhod primerjalnika, kanal 4 pa signal U_nD. U_nD signal Ki ga predstavlja četrti kanal na sliki 67, je odvisen od izhodnega signala primerjalnika. Če primerjamo njegov časovni potek z rezultati simulacije na sliki 54 vidimo, da je generiran pravilno. To pa pomeni da se pravilno generira tudi signal U_nD. Meritve bomo na enak način ponovili pri kotu 95. Praviloma bi v tem primeru moral biti v primerjavi rezultati pri zamiku 85 obrnjen le predznak korekcije.

71 Slika 68: Signala A in B pri kotu 95. Kanal 1 in 2 prikazujeta signale analognih primerjalnikov, kanal 3 izhod A, kanal 4 pa izhod B. Meritev na sliki 68 se ujema s predvidevanji. V tem primeru je v visokem stanju izhodni signal A (kanal 3), B (kanal 4) pa je v nizkem stanju. Preostala nam je še meritev signala U_nD ki ga prikazuje 4. časovni potek na sliki 69. Slika 69: Signal U_nD pri kotu 95. Kanal 1 in 2 prikazujeta signale analognih primerjalnikov, kanal 3 izhod primerjalnika, kanal 4 pa signal U_nD.

72 Stanje signala U_nD je enako kot pri meritvah s faznim kotom 85, torej visoko. To stanje se bo zadrţalo do trenutka ko je fazni kot korigiran na 90. Če meritve, ki smo jih pravkar opravili, primerjamo s simulacijami na sliki 53 ugotovimo, da detektor deluje po pričakovanjih. Zadnja meritev, ki jo še moramo opraviti, pa je meritev pri kotu 90. Postavitev izhodnih signalov naj bi bila enka kot pri kotu 85. Slika 70: Signala A in B pri kotu 90. Kanal 1 in 2 prikazujeta signale analognih primerjalnikov, kanal 3 izhod A, kanal 4 pa izhod B. Izmerjeni časovni poteki so identični tistim pri kotu 85 na sliki 66. Izhod B (kanal 4) je v visokem, izhod A (kanal 3) pa v nizkem stanju. Glede na simulacije deluje detektor pravilno tudi pri tem kotu. Prav to trditev potrjuje tudi slika 71, kjer je pravilno postavljen U_nD signal (kanal 4), ter oblika izhodnega signala 8-bitnega primerjalnika (kanal 3).

73 Slika 71: Signal U_nD pri kotu 90. Kanal 1 in 2 prikazujeta signale analognih primerjalnikov, kanal 3 izhod primerjalnika, kanal 4 pa signal U_nD. OPOMBE Pod opombe bi radi dodali, da so pravkar predstavljene meritve bile zajete izključno le v trenutkih, ko ni nastopala motnja zaradi različnih period vhodnih signalov. Ţal pa nam takšen korektor ne koristi v realnem merilnem sistemu. Zato bomo v zadnjem poglavju podali primer rešitve, kako bi ta detektor popravili tako, da bi deloval tudi pod neidealnimi razmerami.

74 6 REŠITEV TEŢAV Kot smo ţe v prejšnjem poglavju omenili, prihaja zaradi nepravilne oblike periode do razlik preštetih vrednosti v števcu. Te razlike se pojavljajo v naključnih periodah enega od vhodnih signalov. Posledično se izhod U_nD kljub konstantnemu faznemu zamiku spreminja. Zasnova našega detektorja je takšna, da signal U_nD spremeni svoje stanje le, ko je korekcija popravila fazni zamik na 90. Zaradi omenjenih motenj smo zasnovo detektorja le malo spremenili. Nova zasnova bo zdaj delovala na principu primerjave najbolj uteţnega bita prejšnje in trenutne vrednosti. Če je fazni kot manjši od 90 in se tej vrednosti počasi pribliţuje, ima sedmi bit v registru, kjer je shranjena prejšnja vrednost, vedno vrednost 1. Prvič, ko ta bit spremeni stanje, pomeni, da je fazni kot enak 90. V primeru pa, da je v začetku kot večji od 90, se v trenutku, ko je kot enak 90, postavi v 1. Logika, ki prepozna ta trenutek pa je sestavljena le iz enih XOR vrat. Ta se postavijo le, kadar zasedata vhodna signala različni vrednosti. Zato smo na en vhod vezali sedmi bit prejšnje vrednosti, na drugi vhod pa sedmi bit trenutne vrednosti. Ko ta dva zasedata različni stanji, pomeni, da je trenutno fazni kot točno 90. T7 P7 OUT 0 0 0 0 1 1 1 0 1 1 1 0 Tabela 18 : XOR vrata. Slika 72: XOR vrata.

75 Sama zasnova detektorja ostaja enaka, spremeni se le to, da zdaj proţi U_nD signal, pripeljan iz XOR vrat. Slika 73: Nov princip proţenja signala U_nD. Da pa bi preverili, če ta verzija res deluje v realnih pogojih, smo to tudi izmerili. Meritve so potekale enako kot v prejšnjem poglavju in tudi z enakimi parametri. Dobili smo sledeče rezultate. Slika 74: Proţenje XOR vrat pri 91. Kanal 1 in 2 prikazujeta signale analognih primerjalnikov, kanal 4 pa signal XOR vrat.