1 Indholdsfortegnelse
|
|
|
- Hans Nøhr
- 10 år siden
- Visninger:
Transkript
1 Transceiver til trådløst PC-lokalnet Dokumentation 4. Semester Gruppe 3 Forår afleveret den 16. juni 2006 Projektvejleder: John Rohde Søren Rasmussen Stud. nr.: Johnny Rene Petersen Stud. nr.: Jess Grinsted Stud. nr.: Morten Rask Stud. nr.: Robert John Guilford Stud. nr.: Thomas Jørgensen Stud. nr.: Rune Søe-Knudsen Stud. nr.: 03207
2 1 Indholdsfortegnelse 1 Indholdsfortegnelse Læsevejledning Arbejdsfordeling Kravspecifikation Revisionshistorik Formål Projektoplæg Ændringer Generel beskrivelse Funktionelle krav Ikke funktionelle krav Eksterne grænseflader Begrænsninger Standarder ETSI Design Krav Analyse Afsender Modtager Kasami Introduktion Virkemåde Differentiel forkodning Introduktion Virkemåde BPSK Binary phase shift keying Introduktion Virkemåde RF-blok Introduktion Virkemåde IQ - demodulator Introduktion Virkemåde Sliding correlator Introduktion Virkemåde UART Introduktion Virkemåde Design Overordnet blokdiagram Hardware Oscillator BPSK RF-block IQ-demodulator IO-Modul Software
3 5.3.1 UART FIFO Sender buffer Senderdel Modtagerdel Fejlmeddelser IO Simulering med SimuLink Blok opdeling Implementering Hardware Blokdiagram Komponenter Oscillator BPSK Switch Effektregnskab for transmissionskredsløbet Print Print layout IQ Demodulator IO-Modul Forsyningsmodul Software Generelt RS232 UART Senderdel Modtagerdel I/O til EZ-KIT Lite Fejlmeddelelser Programskal filer Accepttest Opstilling tests Opstilling 1 Test af RS232, kasamikoder & differential forkoder Opstilling 2 Test af BPSK Opstilling 3 IQ modulator Hardware del Opstilling 4 IQ modulator Software del Opstilling 4 Bit Error Rate (BER) Særtilfælde og fejltilstande Default tilstand Datakommunikation Datahastighed Pakkeformat Adresser Adresse konflikt Sende konflikt Indkommende transmission Udgående transmission Temperatur stabilitet Modtager og afsender adresse DIP switch, samt dioder Bilag Projektoplæg Tests Tilpasning af filter
4 8.2.2 Oscillator ustabilitet og kompensering Mixer Fasedrejningsfilter Forstærker før EZ-Kit Lite Mixerforstærker Test af mixerer med preforstærker og fasedrejningsfilter Mixerforstærker med 6,44mVpp indgangsspænding Osciallatorens ustabilitet Modultest hardware Oscillator BPSK Switch IQ-demodulator IO-Modul Modultest software RS232 UART Senderdel og FIFO buffer Modtagerdel Systemtest Systemtest Crystal filter - Application note Diagram for EZ-kit lite Software kode Sender.dsp FIFOsend.dsp Modtager.dsp FIFOModt.dsp InOut.dsp Fejl.dsp nul.hex AdrEt.hex AdrNul.hex AdrTo.hex AdrTre.hex UART.dsp Main.dsp EZKIT_LT.ACH Init.dsp Ptrs.dsp Subr.dsp Var.dsp Const.kon Make.bat Underskrifter
5 2 Læsevejledning Der vil i dokumentationen ikke blive gennemgået decideret programkode, til gengæld kan den interesserede læser finde dette og tests under bilag. Dokumentationen består af: Kravspecifikation krav til produktet Analyse gennemgang af anvendte teknikker Design planlægning af produktet Simulering test af funktionaliteten af designet Implementering udførelse af designet Accepttest test om produktet opfylder kravspecifikation I rapporten vil signalnavne og variable være angivet med kursiv skrift for at fremhæve deres betydning i den pågældende tekst. 4
6 2.1 Arbejdsfordeling Alle gruppens deltagere har medvirket til udarbejdelsen af kravspecifikationen og accepttest. Herunder er anført, hvad de enkelte medlemmer primært har arbejdet med. Jess Grinsted Simulering Sendersoftware Modtagersoftware (indledende) BPSK (indledende) Søren Rasmussen IQ demodulator Simulering (indledende) Rune Søe-Knudsen Oscillator BPSK Sendersoftware (afsluttende) Modtagersoftware (afsluttende) IO Print UART (afsluttende) Thomas Jørgensen UART Modtagersoftware IO ETS krav Robert John Guilford RF blok Modtagersoftware Switch Morten Rask IQ demodulator Johnny Rene Petersen RF filter Effektregnskab ETS krav 5
7 3 Kravspecifikation Revisionshistorik Version Dato Beskrivelse Afleveret version Ændring af krav til printforsyning Første version under udarbejdelse Formål Konstruer en transceiver til et trådløst PC-lokalnet, der gør det muligt at viderekommunikere data mellem 2 ud af 4 computerer via deres seriel porte Projektoplæg Se bilag 8.1 side Ændringer Kravet om en sendeeffekt på 100mW er ændret til 10mW ifølge lovkrav. Efter aftale med kunden benyttes ingen handshaking. 3.2 Generel beskrivelse Funktionelle krav 1. Modulationen er differentielt forkodet BPSK 1 med kasamikodebaseret Direct Sequence Spread Spectrum (DSSS). 1.1 Kasami Adresse nr. Kasamikode Tabel 1. Oversigt over kasamikoderne 1.2 Differential forkodning, starttilstand skal være Figur 1. Tilstandsdiagram over differentiel forkodning Data fra PC Kasami code Differentiel forkodning BPSK Figur 2. Viser modulations rækkefølgen når der sendes Til Antenne 1 BPSK, Binary phase shift keying. 6
8 2. Modtagerprincippet skal foregå med sliding correlation. 3. Transceiverens standardtilstand er at modtage. 4. Datakommunikation fra PC skal foregå med RS232 link, opsat med 8 databit, 1 stopbit, 1 startbit og ingen paritet. 5. Kommunikationen skal foregå envejs med en hastighed på 300 bit/s. 6. Pakkeformat mellem transceiverne: Adresse (2 bit) + DTE-R(1 bit) + RTS (1 bit) + TxD (8 bit), i alt 12 bit. Se Opbygning af pakkeformat i Figur 3. Start Stop MSB bit Data Adresse Handshake Figur 3. Opbygning af pakkeformat 7. Protokol: Asynkron med forberedelse for handshake (RTS/CTS). Pakkerne skal indeholde senderens adresse og kodes med modtagerens Kasamikode (Handshake er udgået som krav efter aftale med kunde) DIP switch af typen DS-04 på transceiveren, angiver sendeadressen for den enkelte transceiver DIP switch af typen DS-04 på transceiveren, angiver modtageradressen. 10. En rød lysdiode af typen Farnell TLHR4405 angiver, hvis transceiveren er opsat til at sende til egen adresse. 11. En rød lysdiode af typen Farnell TLHR4405 angiver om der modtages pakker fra andre kort end den der på DIP switchen er valgt at modtage fra. 12. En grøn lysdiode af typen Farnell TLHG4405 angiver når transceiveren har modtaget en komplet pakke ved at lyse. 13. En gul lysdiode af typen Farnell TLHRY4405 angiver når transceiveren sender ved at lyse. 14. Udstyret fungerer optimalt ved stuetemperatur (15-35 grader) og det er i dette interval accepttesten udføres Ikke funktionelle krav 15. RF center frekvens 2402 MHz. 16. Maks. bit error rate på 10-4 ved 300bit/s med en afstand mellem transceiverne på 1,00m. 17. Sende effekt på 8mW - 10mW (modificeret fra oprindelige krav på 100mW pga. lovkrav) Eksterne grænseflader stk. hun-sma stik til at forbinde den udleverede antenne stk. hun-sma stik til ekstern centerfrekvens tilslutning. 20. Forsyning til EZ-Kit Lite: 9Vdc ekstern transformator tilsluttet 230Vac via lysnet. 21. Forsyning til print: 9Vdc vha. jævnstrømstransformer til EZ-Kit stk. DB9 stik til datakommunikation mellem computer og transceiver. 3.3 Begrænsninger Projektet skal afleveres inden den 16. juni kl. 11. Der er afsat 1000 kr. til indkøb af specielle komponenter. Der skal anvendes udleverede komponenter: Antenne: o Z antenne = 50Ω o Gain = 5,2 dbi (Lineært polariseret) 7
9 Up/Down converter: o Input/output: Passiv mixer ADE-30 fra Mini-Circuits o RF LO: 2401MHz o Samlet tab: 7-9 db (conversion loss) 3.4 Standarder Der er med kunden lavet aftale om, at udvikle udstyret til det europæiske marked og derfor overholdes og testes der op mod ETS og ikke FCC standard ETSI 23. ETS , 8. nov. 1996, opdateret sidste gang 31. aug for DSSS, i ISM 2 båndet Producent erklæring Følgende karakteristika skal af producenten oplyses: Bit raten ved antennen, hvilken modulation der er brugt DSSS eller FHSS, udstyrets anvendte frekvens område, udstyrets type, de ekstreme tilstande udstyret har været testet i og den nominelle spænding som forsyner udstyret Præsentation af udstyr til typetest Testmodellerne skal være identiske med dem, der skal sendes på markedet. Softwaren skal også være identisk med det der blev brugt under test Præsentation af udstyr til typetest Under testen skal alt dokumenteres. Det skal noteres hvilke kabler og hvilket udstyr der bliver brugt, så testen kan genskabes. Den skal testes i hele dens virkeområde Præsentation af udstyr til typetest Det er altid det dårligste resultat der skal oplyses Design Udstyret skal designes, implementeres og fremstilles i overensstemmelse med god ingeniør skik. Man skal sørge for at minimere skadelig forstyrrelse af andet udstyr og service Design Hvis der er nogle justeringsmuligheder, som kan fejljusteres, så der frembringes flere skadelige forstyrrelser, må disse ikke være lettilgængelige for brugerne Oversættelse af de målte værdier Den målte værdi skal sammenlignes med grænseværdien for at bestemme om målingen overholder ETS Tekniske specifikationer Producenter skal opgive hvilken modulationskarakteristik der gælder for udstyret der testes. Der skal oplyses om der bruges Freqency Hopping Spread Spectrum eller Direct Sequence Spread Spectrum. 2 Industrial, Scientific and Medical 8
10 Peak effekt tæthed Peak effekt tæthed er defineret som det højeste niveau af effekt som sender afgiver i et vindue og måles i Watt per Hertz. Grænserne for effekttætheden er i et DSSS opgivet til -20 dbw (10mW) per MHz e.i.r.p Frekvensområde Er defineret som højeste frekvens (f H ) og laveste frekvens (f L ), der er til stede i effekt vinduet Frekvensområde f H er den højeste frekvens, ved maximum udgangseffekt og signalet er dæmpet med -80 dbm/hz e.i.r.p. i sidste del af pasbåndet Frekvensområde f L er den laveste frekvens, ved maximum udgangseffekt og signalet er dæmpet med -80 dbm/hz e.i.r.p. i første del af pasbåndet Frekvensområde For enhver given frekvens (f H til f L ) skal signalet være inden for 2,4 GHz til 2,4835 GHz (f L >2,4 GHz og f H <2,4835 GHz) Uønskede signaler udenfor pasbåndet Uønskede signaler er de signaler der ligger udenfor pasbåndet og skal være dæmpet ud fra følgende tabel: Tabel 2. Transmittergrænser for smalbåndsspurious emission Tabel 3. Transmittergrænser for bredbåndsspurious emission Uønskede signaler Uønskede signaler i senderen skal måles som effekt ved en bestemt belastning og effektiv stråling fra kabinet, eller uønskede signaler er defineret som den effektive stråling der kommer fra kabinet og antenne Modtager parameter grænser For modtageren er der ingen grænser for støj i pasbåndet, udover støj nævnt i afsnittet om uønskede signaler i modtageren. 3 Equivalent Isotropically Radiated Power 9
11 Uønskede signaler Uønskede signaler der ligger uden for pasbåndet skal være dæmpet ud fra følgende tabeller: Tabel 4. Smalbåndsspurious grænseemission for modtager Tabel 5. Bredbåndsspurious grænseemission for modtager Uønskede signaler Uønskede signaler i modtageren skal måles som effekt ved en bestemt belastning og effektive stråling fra kabinet, eller uønskede signaler der er defineret som den effektive stråling der kommer fra kabinet og antenne Testspecifikationer Der skal anvendes typetest (normale forhold) hvor ikke andet er angivet, ellers skal der testes for ekstreme forhold når angivet i ETS-standarden. Hvis der er undtagelser skal disse beskrives og der skal begrundes hvorfor de ikke er testet Strømforsyning standalone udstyr Der skal anvendes en strømforsyning, der ikke afviger fra anvendte strømforsyninger på udstyret når det er i brug og der skal testes for forhold under og Temperatur og luftfugtighed Temperaturer fra 15 til 35 celsius og luftfugtighed fra 20% til 75%. Hvis det ikke er muligt at teste udstyret indenfor ovennævnte temperaturer, skal der angives hvilken temperatur og luftfugtighed der er testet ved. De aktuelle testresultater skal journalføres Hovedstrømforsyning Der skal anvendes strømforsyning, der er identisk med den udstyret anvender ved almindelig brug. AC forsyningen skal ligge imellem 49 til 51 Hz for teststrømforsyningen Ekstreme temperaturer Der skal angives hvilken temperatur udstyret kan anvendes indenfor. For almindelig anvendelse er anvendelsestemperaturen 0 til 35 grader. Hvis udstyret skal kunne anvendes uden for det normale temperaturområde skal det angives. Det ekstreme temperaturområde er -20 til 55 celcius Test med ekstrem strømforsyning Ekstrem strømforsyning er når der anvendes strømforsyninger til transceiveren, der har udsving på +/- 10 %. Det skal angives i testproceduren, om det er muligt at anvende disse på transceiveren. 10
12 Ingeniørhøjskolen i Århus 2006 Transceiver Dokumentation Gruppe Design Krav Figur 4. Billede af færdigt produkt Figur 5. Oversigt over stikplacering og størrelse 11
13 4 Analyse 4.1 Afsender PC DSP RS232 15bit Kasami Binær Diff Binær BPSK Analog 1MHz Up sampler Analog 2,4GHz RF Analog 2,4GHz Figur 6. Blokdiagram over sendeprincip Afsenderdelen består overordnet set af seks blokke og en antenne. Computeren skal indeholde et program til et interface mellem bruger og signalprocessor. Kasami- og differentialeforkoderen består begge af kode i signalprocessoren. BPSK-blokken kommunikerer ved at faseforskyde mellemfrekvensen. En opsampling foretages og datastrømmen lægges nu ind i en 2,4GHz bærebølge, hvorefter et filter sørger for at kun de relevante frekvenser dækkes. 4.2 Modtager DSP Analog 2,4GHz Inv RF Analog 2,4GHz Down sampler Analog 1MHz IQ demod. Analog Sliding Correlator RS232 PC Figur 7. Blokdiagram over modtageprincip Bærebølgen modtages via antennen og filtreres af et passivt filter så kun det relevante bånd sendes videre til behandling. En nedsampling trækker data ud af bærebølgen og sender det videre til en større enhed der består af flere blokke under fællesbetegnelsen IQ demodulator 4. IQ demodulatoren består af flere funktionaliteter, deriblandt at finde faseforskydelserne i bærebølgen og dermed invers differentielkoder signalet. I den videre analyse vil det blive gjort klart hvorfor disse blokke hænger sammen. Data signalet på 1MHz sendes ind i systemet der vha. et lokalt signal trækker data ud af 1MHz signalet. Sliding correlator er en mekanisme der inverterer funktionaliteten af kasamikode blokken. Denne funktion er valgt som en konsekvens af IQ modulatorens virkemåde. Herefter sendes de opnåede data videre til computeren hvor det før nævnte program vil vise data for brugeren. 4 In-line/Quadrature demodulator 12
14 4.3 Kasami Introduktion I trådløs kommunikation er formålet altid at sende data mellem en sender og en modtager der taler samme sprog. Beskeden der modtages skal være den samme som den der sendes. Dæmpning og interferens er nogle af de faktorer der skal overvejes når et sende/modtage system designes. Et af midlerne er at forlænge bitmønsteret der sendes på carrierfrekvensen med pseudonoisekode. Denne metode kaldes DSSS 5. Pseudonoise, der i dette tilfælde skal være kasamikode, har flere nytteegenskaber: At forlænge bitmønstret så chancen for bitfejl begrænses. At modulere frekvensvinduet for signalet så det spredes over flere frekvenser og dermed har karakter af støj, heraf betegnelsen pseudonoise. Under afkodningsprocessen er det ikke afgørende om alle chips 6 genkendes, da signalet alligevel kan genskabes. At gøre det svært at blokere for overførslen, da der ikke kun kan jammes i en frekvens fordi signalet er spredt. Hvis der jammes over et bredere spectrum vil signalet ligge oven på støjen. Derfor er det også muligt at bruge flere forskellige kanaler der spreder med samme metode blot de bruger en anden pseudostøj som kode. At gøre det svært at lytte med, da både sender og modtager skal have den samme kode for at sortere informationerne fra det, der ellers ligner tilfældig støj. Signalstyrke Figur 8. DSSS Frekvensspektrum Frekvens Virkemåde Med kasamikode bliver den binære information spredt over et antal chips pr. bit. I dette tilfælde 15 chips. Kombinationen af chips har to formål: 1. At angive modtageradressen der består af den chipkombination de 15 chips danner. 2. At angive om der sendes 0 eller 1, alt efter om koden er inverteret eller ikke inverteret. Se Figur 9. Clockfrekvens = f sample Clockfrekvens = f sample chip kasamikode 1 Sendes til addr.: Sendes til addr.: Figur 9. Blokdiagram over kodningen af kasami I Tabel 1 side 6 ses kasamikoden for de forskellige adresse. Kasamikoden i tabellen angiver koden når der sendes et 1. Når der sendes et 0, skal koden inverteres. 5 Direct Sequence Spread Spectrum 6 Chip er tilsvarende bit, men efter signalet er kodet med pseudostøjen. I dette tilfælde består én bit af 15 chips. 13
15 4.4 Differentiel forkodning Introduktion For at gøre modtageren uafhængig af afsenderens fase, laver man signalet om til at skifte værdi når man ønsker at sende et 1 og fastholder den aktuelle værdi når man sender et Virkemåde Den differentielle forkodningen følger tilstandsdiagrammet vist på Figur 10 og et eksempel på signalet er illustret på Figur Figur 10. Tilstandsdiagram for diffenrentiel forkodning Oprindelige bit signal Differential kodet signal Figur 11. Illusterer bitmøsntret før og efter 14
16 4.5 BPSK Binary phase shift keying Introduktion Ideen i at bruge binary phase shift keying er at man sender informationen via fasen. Derved bliver informationen uafhængig af amplituden og dæmpning i signalet Virkemåde Funktionen i BPSK er at man faseforskyder sinussignalet 180, når signalet har chip værdierne på 0. Det vil også svare til at man inverterer sinus signalet. Figur 12 viser et eksempel på signalerne der vedrører en BPSK modulation. Det binær signal er her lavet om til 1 og -1. Derved vil en multiplikation af chip signalet og grundbølgen lave den ønskede modulation. 1 Bit signal -1 t Grundbølge 1MHz t Signalbølge= Grundbølge Bit signal Figur 12. Viser de to signaler til BPSK og det endelige signal, signalbølge t I frekvensdomænet vil et firkantsignal danne en sinc funktion som har meget spurius og dermed støjer væsentligt. Se den udæmpede funktion på Figur 13. Da der er krav om hvor meget spurius man må bidrage med på de nærliggende frekvenser, skal der implementeres et lavpasfilter før man multiplicerer signalet på grundfrekvensen Sinc funktion Dæmpet Udæmpet [V] [rad/s] Figur 13. Viser firkant signalet i frekvens domænet. Den dæmpede kurve er dæmpet med ( ) 2 1 jω +1 15
17 BPSK Chip signal Båndbredde begrænsning Signalbølge Grundbølge Figur 14. Blokdiagrammet for BPSK Når man samtidig multiplicerer en grundfrekvens på signalet flytter man spektret ud omkring denne frekvens. 4.6 RF-blok Introduktion RF-blokken indeholder sende/modtage delen i systemet. Den indeholder en switch til bestemmelse af sende-/modtagefunktionen, et filter der filtrerer sende- eller modtagesignalet, en Op/Ned konverter samt en antenne Virkemåde Signalet fra signalprocessoren styrer switchen. Switchen er single-pole, double-throw som styrer sende-/ modtagesignalet. Half-duplex systemet sørger for at der kun kan sendes eller modtages. RF-filteret er et båndpasfilter der fjerner uønskede signaler fra den ønskede båndbredde. Signalet der transmitteres vha. antennen indeholder nu kun tilpassede, relevante frekvenser. Ligeledes når systemet modtager et transmitteret signal, bliver båndbredden tilpasset i filteret og sendes videre til ned-konvertering. Op/Ned konverteren konverterer signalet til en passende frekvens vha. en lokal oscillator (LO) med en frekvens på 2,401GHz. Ved opkonvertering ændres signalets frekvens fra 1MHz til 2,402 GHz. Ved nedkonvertering ændres signalets frekvens fra 2,402 GHz til 1MHz. Antenne 2,401GHz Tx/Rx Switch 1MHz BPSK 2,402GHz Op/Ned konverter 1MHz RF-filter Tx/Rx Kontrolsignal Figur 15. Blokdiagram over RF-blok og grænseflader 1MHz IQ Demodulator Signal fra DSP Antennens opgave er at konvertere en elektromagnetisk bølge fra en transmissionslinje til luften og omvendt. Ved modtagelse opfanger antennen en del af den udbredte bølge, og leverer den modtagede effekt til dens belastning. Antennens-, transmissionslinjens- og øvriges impedanser skal tilpasses nøje i systemet for at undgå et dæmpet signal. 16
18 4.7 IQ - demodulator Introduktion Efter nedsampling skal signalet faseforskydes tilbage og invers differentieres. Dette kan ikke gøres på samme måde som ved kodningen, da man ved at sende det gennem luften har mistet synkroniseringen. Dette arbejdes der udenom ved, at lave et to kanals dekodningssystem der forskyder fasen og sammenligner med den ikke forskudte. DSP X LPF Z -1 X RF 1MHz 90 S Sliding correlator LO X LPF Z -1 X Figur 16. Moduloversigt for IQ-demodulator Virkemåde Det nedkonverterede 1MHz input sendes ud på to kanaler der behandles separat. Dette gøres for at have to signaler at måle op mod hinanden. Det ene signal ganges med den lokale frekvens, genereret af en lokalt monteret oscillator (LO). Det andet signal ganges med samme signal, der blot er faseforskudt 90. Vi opnår, at de to kanaler i forhold til hinanden bliver til hhv. sinus og cosinus i et ideelt tilfælde. Denne ideelle situation ligger til grund for forklaringen af funktionaliteten af dette modul. Derudover opnår man et DC svar og et 2MHz svar, hvor det er DC svaret der har interesse. Et integrationsfilter undertrykker herefter de uønskede frekvenser ved 2MHz og efterlader DC svaret. DC svaret er de bit, kasami- og differential forkoderen har genereret. Forsinkes det opnåede signal og multipliceres med den næste sample vil man i de to kanaler opnå henholdsvis kvadratet af en sinus og kvadratet af en cosinus. Herefter kan man med rette benytte sig af den trigonometriske grundsætning 7 og ved summation opnå plus eller minus 1. Hermed er chipsignalet genskabt. cos ( ω) + sin ( ω) =
19 4.8 Sliding correlator Introduktion Sliding correlator betyder frit oversat glidende sammenligner. Dens opgave går ud på, at genkende kasamikoden i det chipmønster der modtages og omsætte det til et bitmønster. Signalet består af det filtrerede frekvensvindue der indeholder chipmønsteret og pseudonoise fra andre kilder. De andre kilder kan f.eks. være microbølgeovne eller andre kommunikationskanaler i ISMbåndet. Da selve adressen bliver sendt i chipmønsteret skal den kunne genkende alle fire adresser, men kun reagere på den ene den er indstillet til. Bitmønsteret genkendes som enten 0 eller 1 alt efter om kasamikoden er inverteret eller ikke inverteret Virkemåde Sliding correlator anvendes til at genkende kasamikode. Det er modtager transceiverens adresse der bestemmer hvilken kasamikode den kan genkende. Da chiptoget starter på et tilfældigt tidspunkt, skal der testes løbende, og hvis den modtagne kasamikode stemmer overens med transceiverens adresse genkender den det sendte bit. Sliding correlator virker som et FIR-filter som det ses i Figur 17. Ideelt set skal der registreres ét bit når udgangssignalet er 15 eller -15, da alle multiplikationer giver 1 når kasamikoden for et sendt 1 behandles i FIR-filteret, og -15 når et sendt 0 behandles. Da det ikke er ideelt skal der lægges et tærskelniveau. Når udgangssignalet af filteret overstiger den fastsatte tærskelværdi registreres et bit. Udgangssignalet overstiger kun tærskelværdien på det tidspunkt hvor de 15 bit der behandles i FIRfilteret er kasamikoden. Der vil altid være støj liggende omkring 0. Tærskelniveauet skal altså ligge tæt på ±15. In Delay1 Delay2 Delay3 Delay12 Delay13 Delay14 1 Z Z 1 1 Z Z 1 Z 1 Z Figur 17. Diagram over sliding correlator for adresse 00 out Figur 18 viser et eksempel på outputtet fra filteret, hvor det ses at der kommer to peaks hvor der hhv. skal registreres et 1 og et Figur 18. Tænkt output fra FIR-filteret
20 4.9 UART Introduktion UART 8 står for kommunikationen mellem signalprocessor og computer Virkemåde UART konverterer en datapakke til en serie af impulser eller konverter en serie af impulser tilbage igen. Modtageren overvåger altid om der er data ind, hvis et startbit bliver detekteret starter modtagelsen. Når modtageren har modtaget alle impulserne bliver de konverteret til en pakke. 1 0 Start LSB D0 D1 D2 D3 D4 D5 D6 Figur 19. Datapakke MSB D7 Paritet Stop Hvis der sendes et ASCII kodet A via RS-232 vil signalet se således ud: Figur 20. ASCII kodet 'A' via RS-232 Dette kan også beregnes. Ved opslag i en ASCII table ses det at A har 0x41hex. Dette er bin, ligesom Figur Universal Asynchronous Receiver/Transmitter 19
21 5 Design Overordnet blokdiagram Software Analogt 1MHz BPSK Binært Differentiel forkoder Binært 15 chip Kasami Analogt 2,402GHz RF filter Analogt 2,402GHz Op/Ned konverter Analogt 1MHz Switch RS bit/s Computer Analogt 1MHz IQ-demodulator Binært Sliding Correlator Figur 21. Overordnet blokdiagram Blokkene er designet ud fra det overordnede blokdiagram som ses ovenfor. Signalprocessoren er fastsat til en ADSP 2181 der forefindes på et evalueringskort EZ-Kit Lite. 5.2 Hardware Oscillator Designkrav Denne blok skal levere et stabilt 1MHz sinussignal til BPSK og IQ-demodulatoren. Det er vigtigt, at signalet har en konstant frekvens og amplitude, da signalet er grundbølgen til at bære informationerne i kommunikationssystemet. Udgangsimpedans < 1Ω Blokbeskrivelse Oscillatoren danner et pulssignal med en grundfrekvens på 1MHz. Filteret sorterer de harmoniske frekvenser fra og dermed vil den rene grundfrekvens sendes videre. BSPK Oscillator Filter IQ demodulator Figur 22. Blokdiagram over sinusoscillatoren 20
22 5.2.2 BPSK Designkrav Modulet skal levere et 180 fasedrejet signal, når chipsignalet har værdien 1 ellers 0. Udgangsimpedans: 50Ω BPSK Chip signal Båndbredde begrænsning Signalbølge Grundbølge Figur 23. Diagram der beskriver funktionen Her demonstreres det hvordan funktionaliteten er tænkt. Et bitsignal sendes ud og dette signal ganges på et 1 MHz signal Realisering BPSK modulet realiseres på en relativt enkel måde ved brug af en switch og en inverter. Dermed kan switchen skifte fasen 180 på grundbølgesignalet. inv Grundbølge fra oscillator Switch Signalbølge Båndbredde begrænsning Signalbølge Chip signal fra differentiel forkoder Figur 24. Diagram af den valgte løsning Løsningen benytter en digital udgang på signalprocessoren, hvor det differentielt forkodede signal sendes ud. Dette signal styrer tilstanden af en switch, der på sine indgange har et 1 MHz signal, i sin grundform, og i en inverteret form. På denne måde vil den inverterede tilstand af signalet have en negativ amplitude, der er det samme som en 180 faseforskydning. Hver gang en chip fra signalprocessoren ændrer tilstand, vil fasen af det signal således også ændres 180 ud af switchen. 21
23 5.2.3 RF-block Delen der indeholder sende/modtage trin i systemet bliver kaldt RF-blokken. Blokken omfatter en analog switch, en op/ned konverter, RF-filter og en antenne Designkrav til Tx/Rx switch Switchens formål er, at dirigere en signalbølge fra BPSK blokken (systemet er i sende-tilstand) videre til op-konvertering eller dirigere et ned-konverteret signal videre til IQ demodulatoren (systemet er i modtage-tilstand). Til dette formål anvendes en analog SPDT 9 switch. Ud fra kravspecifikation 10 skal switchen konstant stå til at modtage når der ikke sendes. Styring af switchen foretages fra EZ-Kit Lite. Signalets frekvens ligger på 1MHz. Tx 1MHz signal fra BPSK BPSK Signal til og fra ADE- 30 Frequency Mixer Switch Rx Modtaget 1MHz nedkonverteret signal IQ demodulator Figur 25. Tx/Rx Switch og dens grænseflade Designkrav til Op/Ned konverter Op/Ned konverteren skal op-konvertere 1MHz signalet til 2,402GHz eller ned-konvertere 2,402GHz signalet til 1MHz. Sendesignalet moduleres med en LO 11 på 2,401GHz og signalet opkonverteres. Det ser matematisk således ud: f = IF RF 1MHz + 2, 401GHz = 2, 402GHz Ligeledes bliver modtagersignalet moduleret med en LO på 2,401GHz og signalet nedkonverteres. Det ser matematisk således ud: f = RF IF 2, 402GHz 2, 401GHz = 1MHz En spejlfrekvens på 4,803GHz vil også opstå efter nedkonvertering. Spejlfrekvensen bliver filtreret fra i IQ-demodulatorblokken bagefter. fs -f s Figur 26. Signalet før og efter modulering fs 9 Single Pole, Double Throw 10 Krav nr 3 side 7 11 Lokal Oscillator 22
24 Design parametrene til op/ned-konvertering er fastlagt ud fra en på forhånd specificeret og leveret komponent ADE-30, dvs. i kravspecifikationen. Konverteringstab 12, som er et udtryk for konverterens ydelse fra indgang til udgang, er maks. 9dB 13. LO 2,401GHz Antenne Impedans : 50O 2,402GHz Impedans tilpasset transmissionslinie ADE-30 Frequency Mixer: Op/Nedkonvertering 1MHz Tx/Rx Switch Figur 27. Op/Ned Konverter Designkrav til antenne Antennen er givet i projektoplægget til: Z antenne : 50 Ω Gain : 5,2 dbi (lineært polariseret) Der skal i forhold til ETS-standarden kompenseres for denne forstærkning, og systemet må kun anvendes med en lineært polariseret antenne af denne type. Antennen forbindes til en impedanstilpasset transmissionslinje der fører til Op/Ned konverteren. Impedansen på den leverede antenne er på 50Ω, og skal passe til indgangen til ADE-30 for at undgå unødig signaltab. Sendeeffekten skal ligge imellem 8 og 10mW RF-Filter (Båndpas filter) Båndpasfilteret skal implementeres som et passivt filter, da filteret skal virke for både modtage og sendedelen. Båndpasfilteret skal dæmpe signalet uden for frekvensbåndet således, at der ikke opstår spurius uden for ISM båndet der vil forstyre andre brugere. Dette vil også gøre at der modtages et mærkbart bedre signal/støjforhold. Båndpasfilteret ved antennen skal specificeres, således nyttesignalet slipper igennem og ikke dæmpes. ETS regulativet giver hvor meget der må støjes i stopbåndet og hvor meget dæmpning der må være i stopbåndet. Ved brug skal der dæmpes med -97 dbm/hz, og vil være tilstrækkeligt for både sender- og modtagersignalet, da det her er samme filter der skal bruges. Figur 28. Båndpasfilter 12 Conversion Loss 13 Kravspecifikation begrænsninger, punkt 3.3 side 7Begrænsninger 14 Se krav nr. 17 side 7 23
25 Filteret kan implemeteres foran Op/Ned konverteren. Det vil designmæssigt være bedst at opnå en stor dæmpning udenfor båndpasfilteret virkeområde. 24
26 5.2.4 IQ-demodulator Designkrav Efter nedsampling skal signalet invers differentieres. Dette kan ikke gøres på samme måde som ved kodningen, da vi ved at sende det gennem luften har mistet referencen hvad angår synkronisering. Dette arbejdes der udenom ved, at lave et to-kanals dekodningssystem der genkender faseskiftet i signalet og videregiver signalet. Indgangsimpedans set i forhold til Op/Ned konverteren: 50Ω DSP 1 MHz X 2 MHz + SIG LPF Z -1 X RF 1MHz 90 S Sliding correlator LO 1 MHz 1 MHz X 2 MHz + SIG LPF Z -1 X Figur 29. Oversigt over IQ-demodulator Beskrivelse af funktionaliteten Signalet fra RF sendes ud på to kanaler, og multipliceres herefter i den ene kanal på et 1 MHz signal fra en lokal oscillator, og på den anden kanal multipliceres signalet på et 1 MHz signal fra samme lokal oscillator der er 90 faseforskudt. Følgende beskriver princippet af virkemåden for hardwaredelen af IQ-demodulator. Signalet der kommer fra RF vil kunne se sådan ud: Signal 1 MHz Signal RF: cos( 2π f t + pπ ) Fase: p, 1 eller 0 Frekvens f0 = 1MHz Tid: t Frekvens Figur 30. Signalet der kommer fra RF del 0 Faseforskellen der består af leddet pπ vil angive om signalet der sendes er 1 eller 0. Dette vides ikke på forhånd, og derfor er det vigtigt at udgangspunktet der antages, er det samme i både sender og modtager. I dette tilfælde er starttilstanden Se krav nr. 1.2 side 6 25
27 Derfor differentiel forkodes signalet i senderen inden det sendes. Første faseskift i en pakke vil derfor altid gå fra 0 til 1. Signalet fra RF multipliceres med en ren sinus, Figur 31. Signal 1 MHz Frekvens Figur MHz sinus der multipliceres på signal fra RF for at lave offset til indgang på EZ-kit Signal LO/fasedrejet LO: cos( 2π f t) / sin ( 2π f t) Frekvens f0 = 1MHz Tidsvariabel: t 0 Som det ses på Figur 29, bliver RF signalet både multipliceret med signalet fra LO og et 90 graders faseforskudt signal fra LO. Derfor forgrenes signalet. Stereokanalen på EZ-Kit Lite kortet stiller 2 kanaler til rådighed. 0 1 T dt Z 1 T 0 ( π + pπ+ϕ) cos 2 f t 0 ( π ) cos 2 f t 0 ( π ) sin 2 f t T 1 dt T Figur 32. Gennemgang af virkemåde Dette vil flytte det modulerede signal tilbage til 0 Hz og ud til 2 MHz. Det vil give et frekvensspektrum på plads 1. der ser således ud: 0 Z 1 Signal 1 MHz 2 MHz Figur 33. Resulterende signal af multiplikationen Frekvens Når de to signaler multipliceres sammen i de to kanaler fås to signaler som hhv. er differens og sum af de to signaler. Af disse er det det lavfrekvente signal der har interesse, og derfor skal det højfrekvente signal dæmpes, som gøres vha. et filter der kan genskabe det differentialkodede chiptog der kommer. Signalet der sendes ind på de to kanaler kan opfattes som et cosinussignal med en tilfældig fase. Når der kommer en ændring i signalet bliver der en ændring i fasen på π som lægges til den oprindelige fase. Der opnås at de to kanaler i forhold til hinanden bliver til hhv. sinus 26
28 og cosinus i et ideelt tilfælde, grundet faseforskellen mellem kanalerne på 90 grader. Denne ideelle situation ligger til grund for forklaringen af funktionaliteten af dette modul. RF signal og LO multipliceres: ( + ) + ( ) cos x y cos x y cos( x) cos( y) = 2 cos( 2π f0 t+ pπ+ϕ+ 2π f0 t) + cos 2π f0 t cos( 2π f0 t + pπ+ϕ) cos( 2π f0 t) = = cos( 4π f0 t + pπ+ϕ ) + cos( pπ+ϕ) MHz restsignal Den tilsvarende udregning laves for LO der er fasedrejet: ( + ) + ( ) ( + p π+ϕ 2 π f t 0 ) ( ) Faseforskudte signal DC sin x y sin x y cos( x) sin ( y) = 2 sin ( 2π f0 t + pπ+ϕ+ 2π f0 t) + sin 2π f0 t + 0 cos( 2π f0 t + pπ+ϕ) sin ( 2π f0 t) = p π+ϕ 2 π f t = sin ( 4π f0 t + pπ+ϕ ) + sin ( pπ+ϕ) MHz restsignal Faseforskudte signal ( DC) ( ) 2 På indgangen af EZ-Kit Lite kortet er der et båndpasfilter 16 der sikrer at aliasering ikke forekommer når signalet samples. Uden yderlig filtrering ville der komme for meget støj og det ønskede faseskift ville ikke kunne genkendes. Derfor er der indsat et filter på hver indgang. Disse er egentlig en integration over en chipperiode af signalet, dvs. at det er et løbende middelværdi filter der skal realiseres. Filteret realiseres i softwaren, da det her er lettere og mere præcist at realisere frem for hardwaremæssigt. Ideelt vil det passerende signal være en konstant der ser således ud: Chipperiodetid: T T 1 dt T 0 T cos( 4 f0 t p ) cos( p ) dt T π + π+ϕ + π+ϕ T cos( 4 f t p ) dt cos( p ) dt T π + π+ϕ + π+ϕ 2 T T 1 cos p 2 1 cos ( p π+ϕ) T 2 ( π+ϕ) T 16 Se EZ-Kit Lite diagram, bilag 8.8 på side
29 For den LO fasedrejede kanal vil konstanten være: T 1 dt T 0 T sin ( 4 f0 t p ) sin ( p ) dt T π + π+ϕ + π+ϕ T sin ( 4 f t p ) dt sin ( p ) dt T π + π+ϕ + π+ϕ 2 T T 1 sin p 2 1 sin ( p π+ϕ) T 2 ( π+ϕ) En beskrivelse af filteret kan findes under afsnittet Integrationsfilter på side 40. T 3 Fasen p vil i det tidsforsinkede signal i de følgende beregninger være angivet som p 1 Z. 4 På hver kanal sker en multiplikation mellem det samplede signal og det forsinkede signal, hvorefter de to kanaler summeres. Her benytter demodulatoren sig af princippet i den trigonometriske grundsætning, som er vist herunder Acos (x) + Asin (x) = A ( ) Acos (x) + Asin (x) = A Hvis der er sket en ændring vil signalet skifte i et sample idet der anvendes differentiel forkodning. Ændringerne der kan forekomme er at signalet vil skifte i fire tilstande som følge af tidsforsinkelsen, svarende til at p ændrer sig som følgende: p 1 Z p 0 0 Ingen ændring i fasen 0 1 Faseskift 1 1 Ingen ændring i fasen 1 0 Faseskift 5 Det generelle udtryk vil i dette tilfælde være: cos p cos p sin p sin p ( 1 π+ϕ) ( π+ϕ ) + ( 1 π+ϕ) ( π+ϕ ) Z Z
30 0 0 Ingen ændring: cos 0 cos 0 sin 0 sin = cos( ϕ) cos( ϕ ) + sin ( ϕ) sin ( ϕ) = 4 ( π+ϕ) ( π+ϕ ) + ( π+ϕ) ( π+ϕ) 0 1 Faseskift: cos 0 cos 1 sin 0 sin = cos( ϕ) cos( ϕ ) + sin ( ϕ) sin ( ϕ) = 4 ( π+ϕ) ( π+ϕ ) + ( π+ϕ) ( π+ϕ) 1 1 Ingen ændring: cos1 cos1 sin1 sin = cos( ϕ) cos( ϕ ) + sin ( ϕ) sin ( ϕ) = 4 ( π+ϕ) ( π+ϕ ) + ( π+ϕ) ( π+ϕ) 1 0 Faseskift: cos 1 cos 0 sin 1 sin = cos( ϕ) cos( ϕ ) + sin ( ϕ) sin ( ϕ) = 4 ( π+ϕ) ( π+ϕ ) + ( π+ϕ) ( π+ϕ) Systemdelene efter punkt 1. i Figur 32 implementeres i signalprocessoren, derfor vil amplituden kun være 1 når der er fuldt signal på indgangene. Det medfører at den samlede amplitude ved udgangen af IQ demodulatoren vil være ¼ i det tilfælde. 29
31 Faseforskydningsfilter Faseforskydningen af det ene 1 MHz signal realiseres med et analogt filter. For at få en fasedrejning på 90 ved knækfrekvensen anvendes et 2. ordens lavpasfilter, som i alt laver en fasedrejning på 180. Fasedrejningen starter en dekade under knækfrekvensen og stopper en dekade over knækfrekvensen, hvorved der fås en fasedrejning på 90 ved knækfrekvensen. Filteret er testet vha. Matlab hvor følgende bodeplot fås. Magnitude (db) System: H Frequency (Hz): 1e+006 Magnitude (db): Bode Diagram Phase (deg) System: H Frequency (Hz): 1e+006 Phase (deg): Frequency (Hz) Figur 34. Bodeplot for fasedrejningsfilter 30
32 5.2.5 IO-Modul Design krav Skal gøre EZ-Kit Lite i stand til at kommunikere digital med den resterende hardware. Endvidere indeholder modulet også systemets lysdioder, der viser status på produktet. Udgangs- og indgangsstandard: CMOS Modtager LED Sender LED Sender og modtager adresse er ens Pakke modtages fra 3. part DIP switch Switch BPSK IO blok EZ-kit Figur 35. Blokdiagram over IO hardware Fordeling af IO EZ-Kit ets interface Type Grænseflade Funktion PF0 Input Adresse på modtager. PF1 Input DIP switch PF2 Input Egen adresse. PF3 Input PF4 Output 3 mm grøn LED Viser at der bliver modtaget data. PF5 Output 3 mm gul LED Viser at der bliver sendt data. PF6 Output 3 mm rød LED Lyser hvis modtager og egen adresse er ens. PF7 Output 3 mm rød LED Viser at der bliver modtaget en pakke fra en 3. transceiver, som transceiver ikke er opsat til at modtage fra. FL0 Output 5V CMOS signal Udgang til BPSK modulet. FL1 Output 5V CMOS signal Udgang til sende/modtage switch. FL2 Output Ledig. 31
33 5.3 Software UART UART en skal bestå af 4 dele. Selve UART en, initialisering, transmittering af karakterer og en echo funktion, som kan teste UART en. UART en skal ligge i sin egen fil så det færdige program bliver overskueligt. Her følger en beskrivelse af de forskellige dele trans_char Funktion trans_char Input ax1 Output uart_tx_buffer Tx_flag Beskrivelse Denne funktion er en del af Echo testfunktionen. Funktionen bliver kaldt af main for at transmittere en karakter. Før den kaldes skal det, der skal sendes, ligge i ax1. Ax1 kopieres først til man_tx_buffer, så kopierer den main_tx_buffer til uart_tx_buffer med start- og stopbit tilføjet. Til sidst sættes først transmitflaget for at fortælle UART en at en karakter venter på at blive transmitteret. True Tx_flag=0 False Kopier karakteren (ax1) til main_tx_buffer Tilføj start og stop bit Kopier karakteren til uart_tx_buffer Set tx_flag til 1 Figur 36. Flowchart for trans_char 32
34 FIFO_til_uart Funktion FIFO_til_uart Input ax1 FIFOCounter Output uart_tx_buffer Tx_flag Beskrivelse Funktionen er den samme som trans_char, blot er denne tilpasset FIFO modulet. Forskellen er at denne funktion først undersøger om der ligger noget nyt i FIFO bufferen. Start FIFOcounter=0 True False Tx_flag=0 False Kopier karakteren (ax1) til main_tx_buffer Tilføj start og stop bit True Kopier karakteren til uart_tx_buffer Set tx_flag til 1 End Figur 37. flowchart for FIFO_til_uart 33
35 UART_initialisering Funktion UART_initialisering Input Ingen Output Ingen Beskrivelse Funktionen kaldes i main efter reset. Her opsættes: Antal bit der sendes. Antal bit der modtages. Baudraten. Serielport 1 som flag in og flag out Sætter flag så UART er klar til at modtage og transmittere uart_sub Funktion uart_sub Input uart_tx_buffer tx-flag Output main_rx_buffer rx_a_word Beskrivelse Hoveddelen af uart en ligger i uart_sub. Funktionen er interruptstyret og styres af interruptet Sport0_Rx_IrqService som kaldes af AD1847 codecet. Når funktionen kaldes kontrollerer den tx_flag. Hvis tx_flag er 1, springer den til transmit og det der står i uart_tx_buffer vil blive transmitteret. Efter endt transmission sættes tx_flag til 0. Derfor står den altid og modtager hvis der ikke bliver sendt noget. Hvis tx_flag er 0, springer den til receive. Hvis den kan se et startbit på RS232 porten, starter modtagelsen og karakteren ligger i main_rx_buffer uden start og stop bit. Rx_a_word sættes til 1, så afhængige rutiner ved at der modtages. 34
36 Start False Tx_flag=1 False Jump funktion: receive Modtaget start bit? False True Delay 1,5 T Jump funktion: Transmit True False Delay T Receive False False Færdig med at sende? Delay T True True Tx_flag=0 Færdig med at sende? Rx_a word=1 samplingsfrekvens Figur 38. Flowchar for uart_sub, hvor T = Baudrate 35
37 Echo funktionen Funktion Echo Input Rx_a_word Main_rx_buffer Output ax1 Beskrivelse Denne funktion er slettet i det færdige program, da denne kun blev brugt under testfasen af UART en. Dette er dog en vigtig funktion der kan fortælle om UART en virker. Funktionen returnerer den karakter man sender til EZ-Kit Lite. Hvis der skrives til kittet sættes rx_a_word til 1 og det modtagne lægges over i ax1. Rx_a_word sættes til 0 og funktionen kalder trans_char så det modtagne returmeres. False rx_a_word=1 True Læg det modtagne (main_rx_buffer) over i ax1 Sæt rx_a_word til 0 Call trans_char Figur 39. Flowchart for Echo 36
38 5.3.2 FIFO Sender buffer Beskrivelse FIFO bufferen dækker over nogle funktioner der flytter modtagne pakker til og fra UART/modtager over i et array, hvor de bliver lagret til de kan flyttes ud til sender/modtager subrutinerne og behandles. FIFOCounter Tæller op 2 Tæller ned FIFOInd Skriver FIFOarray A B # # # Læser FIFOUd # # # # # # # Figur 40. First In First Out funktionaliteten med en tæller til at fortælle hvor mange nye pakker der venter Init_FIFO_Sender Funktion Initialiserer pointerne til FIFOInd og FIFOud. Nulstiller FIFOcounter FIFOIndSender Funktion Skriver en ny værdi ind i det fælles FIFOarray. Lægger en til FIFOcounter FIFOUdSender Funktion Udlæser den først indlæste værdi fra det fælles FIFOarray. Trækker en fra FIFOcounter. 37
39 5.3.3 Senderdel Sender_sub Funktion Sender_sub Input FIFOUd EgenAdr SendAdr Output Sender_flag FL0 FL1 Beskrivelse Henter data fra FIFO bufferen og videresender den. Koder dataen med kasami- og differentiel kodning. START true Test om modtagerdelen kører False False False Tid til at sende ny bit Toggle FL0 BPSK true true Test om der er foregående chips at sende true Test om chip er 1 Gem kasami kode i BitBuffer Inverter kasami kode false true Test om der er flere bit tilbage af pakken true Bestem hvilken adresse der skal kasami kodes ud fra Test om bit er 1 False false Test om der er en pakke i FIFO en true Test om der lige har været sendt true Kald FIFOUdSender og hent pakke ind Tilføj egen adresse til pakken false Afslut så modtagerdel kan køre. Switch og BPSK reset es false Sæt FL1 switch og vent til næste interrupt Figur 41. Flowchart for Sender_sub 38
40 BestemAdr Funktion BestemAdr Input SendAdr Output AX1 Beskrivelse Bestemmer hvilken adresse der skal anvendes til kasamikodning. START Hent senderadresse Er senderadressen lig nul? true Benyt kasamikoden for adresse nul false Træk 1 fra senderadressen Er senderadressen lig nul? true Benyt kasamikoden for adresse nul false Træk 1 fra senderadressen Er senderadressen lig nul? true Benyt kasamikoden for adresse nul false Træk 1 fra senderadressen Er senderadressen lig nul? true Benyt kasamikoden for adresse nul Figur 42. Flowchart for BestemAdr 39
41 5.3.4 Modtagerdel Viderebehandling af signalet i IQ-demodulatoren efter analogdelens fordeling af signalet,gøres i EZ-Kit Lite. Delen af systemet dette afsnit dækker kan ses i Figur 29. Oversigt over IQdemodulator på side 25. Opgaven for softwaredelen af IQ-demodulatoren er at frasortere kasamikoden og dens tilhørende data fra det modtaget signal. Koden til dette formål bliver bygget op omkring programmets fælles filer der bruges både i systemets sende- /og modtagefunktioner. Software delens virkemåde kan undersøges og justeres vha. ændring af variabler til oversamplings rate, koeffiecienter i filtrene Integrationsfilter Denne fil udfører den største del af IQ-demodulatorens funktionalitet. Efter sampling i AD1847 codec et, behandles de to samplede faseforskudte signaler først i et løbende middelværdi-filter hver for sig. Når integrationsfilteret skal realiseres i en signalprocessor kommer det til at virke som et middelværdifilter, hvor den aktuelle samplingsværdi gemmes med det foregående antal værdier, og multipliceres med det reciprokke af ordenen, dvs. det antal samples der integreres over. L 1 1 yn [ ] = xn [ k] L k= 0 1 = xn + xn xn (k 1) + xn k L samplefrekvens hvor L = sendefrekvens ( [ ] [ ] [ ] [ ]) x[n] z 1 z 1 z 1 z 1 b0 b b bk 2 b k 1 b k y[n] 40 Figur 43. Signalgraf for FIR filter Filterets orden og dermed virkning bestemmes af forholdet mellem signalprocessorens samplefrekvens og sendefrekvens for datastrømmen. Hvis ordenen øges vil filteret kvantisere funktionen mindre og derved lave en mere ideel virkning, der mere ligner en ideel integration. Signalene bliver bagefter behandlet i en delayenhed hvor et to-plads array gemmer et samplet signal hvorefter det forsinkede signalet ganges med det samplede signal. Delayenheden skal køres med den samme frekvens som signalet. Princippet med delayenheden er, at den kan udnytte de faseskift der kommer pga. det diffentielt forkodet signal. Bidragene fra hver kanal summeres, før signalet behandles i sliding correlator Sliding correlator Filteret, som sliding correlator består af, skal indeholde 15 koefficienter, da det er det antal chips kasamikoderne består af. Netop når 15 på hinanden følgende chips svarer til kasamikoden for pågældende transceiver kommer et output på 15 eller -15 afhængig af signalets fase. Delaytiden er det reciprokke af sendefrekvensen, da det er det signal der skal genkendes. Derfor er det ikke nødvendigt at filteret reagerer hurtigere.
42 In Delay1 Delay2 Delay3 Delay12 Delay13 Delay14 1 Z Z 1 1 Z Z 1 Z 1 Z Figur 44. Sliding correlator I systemet bruges fire forskellige adresser, og derfor er der også fire forskellige kasamikoder der skal kunne genkendes af filteret. out Addr. Nr. Kasamikode Et eksempel med kasamikoden for adresse 00 kan være følgende tabel hvor chippladserne skifter en plads til højre ved hver sample: 41
43 Chipnummer Adresse Adresse Resultat Adresse Adr. 00 Adr. 01 Adr. 10 Adr. 11 Adresse Tabel 6. Tabellen viser outputtet af sliding correlator når inputtet er kasamikoden for adresse 00 De gule pladser er med ikkeinverteret kasamikode, dvs. de 15 chips har bitværdien 1 De grønne pladser er med inverteret kasamikode, dvs. de 15 chips har bitværdien -1 Koden med adressen 00 bliver identificeret når den kommer inden for linjerne, og derfor vil filteret give et maksimalt udslag. De andre koder vil maksimalt give et udslag på 9, og derfor skal grænseværdien der identificere peakværdien ligge over dette niveau. I sliding correlator, bliver adressen af kasamikoden først sorteret fra, hvorefter de tilhørende koefficienter kan bruges i sliding correlatoren, hvor de er ganget sammen med det resterende amplitudeafhængige signal fra summationspunktet. Der detekteres om det resulterende signal har bitværdien +1 eller -1 og placeres i en pakke der skal hentes af FIFO en. Grænsen for signalets bidrag bliver undersøgt løbende vha. en grænseværdi, der fratrækkes eller tillægges signalets størrelse til, at detektere om signalet kan medtages som +1 eller -1. Pakken til afhentning skal være 42
44 12-bit lang og kan ses i Figur 45. Når pakken er klar til afhentning, resettes den tilhørende counter der indikerer pakkens længde og processen starter forfra. Værdiene flyttes mod LSB Adresser Handshake (undlades) LSB Figur bit pakken der opbygges og er klar til afhentning af FIFO'en 43
45 Init_modtager Initiere modtagerdel Modtager_main start Skalering af interrupt FIR: Start filtrering af de samplede indgange - højre og venstre kanals FIR-filtre Henter og gemmer pointere Delay: Signalet ganges med det forsinkede signal - højre og venstre kanal Henter Pointere til Delay og Sliding Correlator. Summation: Summeres højre kanalens signal med venstre kanalens Gemmer pointere til Delay Adresse check for at bestemme det nødvendig kasami kode der skal bruges i Sliding Correlator Slid_Cor: Sliding Correlator (FIR-filter) hvor filterkoefficienterne ganges sammen med signalet. Outputsignalet indeholder den rigtige kasamikode Gemmer pointere til Sliding Correlator Undersøge indeholdet af det modtaget signal POSResultat: 1-tal Undersøge signalet NEGResultat: 0-tal Undersøge signalet bit_modtaget: SlidOut_Counter: Undersøge Pakkens størrelse og hvis den er klar til vidersendelse Pakken med indeholdet der skal hentes af FIFO en Resetter_pakke: Resettes counteren Slut Figur 46. Flowchart over funktionaliteten af Modtager.dsp 44
46 FIFO Modtager buffer Denne funktion henter pakken fra Modtager.dsp hvor den holder pakken klar i en FIFO buffer. Princippet og diagram over en FIFO virkemåde kan ses på Figur 40 side 37. Pakken bliver holdt i et array hvorfra det bliver hentet af UART en. Init_FIFO_modtager: Initierer pointere og FIFO array FIFOIndModtager: har_modtaget_data: Testes om der skal modtages en hel pakke modtager_data: Pakken flyttes inde i FIFO en Flaget for modtaget pakke resettes i UART en, FIFO counter tælles en op og pointeren gemmes FIFOUdModtager Pakken flyttes, FIFO counter tælles en ned og pointeren gemmes Slut Figur 47. Flowchart for FIFOModtager Fejlmeddelser Fejl_modtagerOgSenderAdrEns Funktion Fejl_modtagerOgSenderAdrEns Input Sendadr Egenadr Output LED6 Beskrivelse Tænde den valgte lysdiode hvis den valgte sende og modtager adresse er ens. 45
47 Start AR=Egenadr-SendAdr AR=0 True False LED6_AdressFejl_on LED6_AdressFejl_off End Figur 48. Flowchart for Fejl_modtagerOgSenderAdrEns Fejl_senderOgAfsenderAdrIkkeEns Funktion Fejl_senderOgAfsenderAdrIkkeEns Input Sendadr Afsender_adresse Output LED7 Beskrivelse Tænder den valgte lysdioden hvis de modtagne pakker ikke stemmer overens med den valgte sende adresse. Start AR=afsender_adresse-SendAdr AR=0 True False LED7_Dublering_on LED7_Dublering_off; End Figur 49. Flowchart for Fejl_senderOgAfsenderAdrIkkeEns 46
48 5.3.6 IO IO_Initilisering Funktion Opsætter Ind/udgangene på DSP. Slukker alle lysdioder Adresser Funktion At læse adresseopsætningen. Output SendAdr EgenAdr LED4_RX_on Funktion Tænd lysdiode LED4_RX_off Funktion Sluk lysdiode LED4_RX_toggle Funktion Skifte lysdiode tilstand LED5_TX_on Funktion Tænd lysdiode LED5_TX_off Funktion Sluk lysdiode LED5_TX_toggle Funktion Skifte lysdiode tilstand LED6_AdressFejl_on Funktion Tænd lysdiode LED6_AdressFejl_off Funktion Sluk lysdiode 47
49 LED6_AdressFejl_toggle Funktion Skifte lysdiode tilstand LED7_Dublering _on Funktion Tænd lysdiode LED7_Dublering_off Funktion Sluk lysdiode LED7_Dublering_toggle Funktion Skifte lysdiode tilstand 48
50 5.4 Simulering med SimuLink Der er til underbygning af teorien fra analysefasen benyttet SimuLink, en del af MATLAB, da det er nødvendigt at verificere rigtigheden af alle blokke og moduler inden realiseringen går i gang. Det er med SimuLink muligt at opdele et større system i underblokke og på den måde bevare overblikket. Det er også ud fra disse underblokke, gennemgangen af det simulerede system forløber. Der er valgt at benytte en skalering af frekvenserne i systemet, der gør det muligt at ændre hastighederne ved blot at ændre én eller to variable. Disse hedder FIR_frekvens og Samplefrekvens og de i simuleringen anvendte værdier er hentet fra implementeringsfasen Blok opdeling Top niveau Repeating Sequence Stair Ind LO Senderdel Til RF Add Fra RF Modtagerdel Out Sine Wave Band-Limited White Noise -K- Gain Figur 50. Oversigt over det samlede system Repeating Sequence stair Dette er en sekvensgenerator der genererer inputsignalet til systemet, altså den pakke der ønskes sendt. Det er værd at notere sig om denne funktion, at den arbejder på tidsaksen og derfor er man nødt til at invertere rækkefølgen af det data der sendes ind, da der sendes LSB først. Eksempel Sekvensen ønskes sendt. Ved at skrive denne sekvens i funktionen vil LSB 1 bliver sendt først da der læses fra venstre mod højre. Den rigtige sekvens vil derfor være Sekvensen hedder i denne blok Vector of output values og funktionen kører med en samplingstid 1 på T = hvor FIR_frekvens er den hastighed der sendes med på EZ-Kit Lite og 15 er FIR_frekvens 15 kompensering for at hver bit forlænges til 15 chips kasamikode. Hvidstøjsgenerator med gain Hvidstøjsgeneratoren er indsat for at simulere den indfaldne støj på signalet i luften. Amplituden på støjsignalet er sat ned til en tiendedel, da det på denne måde er nemmere at styre ved simulering. Hertil kommer yderligere et gainmodul hvor amplituden sættes ned med en faktor ti. Dette medfører at styrken af støjsignalet er ca. lige så stort som det fra nyttesignalet. Støjgeneratoren kører med en 1 samplingsfrekvens på Tnoise = da støjen bliver nedsamplet i konverteren på Samplefrekvens modtagersiden på lige fod med nyttesignalet Niveau Sender Denne blok indeholder tre undersystemer. Kasamikoder, differentiel forkoder og BPSK. 49
51 Figur 51. Oversigt over indholdet af senderdel Modtager Denne blok indeholder to undersystemer. IQ demodulator og sliding correlator. Figur 52. Oversigt over indholdet af modtagerdelen Niveau Kasamikoder Denne blok tager sig af at simulere kodningen af det datasignal der sendes over RS232 linket. Dette gøres ved at multiplicere et signal der består af kasamikoden, med datasignalet der kører med en periodetid der er 15 gange mindre end kasamikodens. Der benyttes to unipolær til bipolær konvertere, på de to signaler. Denne type konverter ændrer et impulssignal der ligger fra 0 til 1, til at ligge mellem -1 og 1. Dette gøres for at opnå effekten af kasamikodning, da der ved at gange 0 med 0, kun vil komme 0 ud af det, ganges derimod -1 med -1 og 1 med -1, vil kasamikoden blive inverteret. Herefter kan resultatet konverteres tilbage til unipolær, hvor -1 trækkes op til 0. Det er denne antagelse den differentielle forkoder arbejder ud fra. Data: T=1 Input: 10 bin X Bit 1 = Bit 2 = T=1/15 Kasami: T=1/15 Input: bin Figur 53. Multiplicering med unipolære signaler Data: T=1 Input: 1-1 bin Kasami: T=1/15 Input: bin X Bit 1 = Bit 2 = T=1/15 Figur 54. Multiplicering med bipolære signaler Bipolær til unipolær konverter Bit 1 = Bit 2 = T=1/15 50
52 Figur 55. Oversigt over kasamikoder Differentiel forkoder Den differentielle forkoder er implementeret på testbasis ud fra det i projektoplæget specificerede tilstandsdiagram. Det er i SimuLink muligt at konstruere en blok som et tilstandsdiagram. Figur 56. Tilstandsdiagram fra oplæg. Figur 57. Tilstandsdiagram fra simulering. BPSK Den binære faseskifter består af en unipolær til bipolær konverter og et multiplikationspunkt. Signalet fra den differentielle forkoder konverteres til at have nulpunkt i -1 og herved opnås igen en inverteringseffekt, da man ved at gange amplituden af signalet fra den lokale oscillator med -1, inverterer den. Dette svarer til en faseforskydning på -180, hvilket er det ønskede resultat. 51
53 Figur 58. Oversigt over BPSK modulet Dette system simulerer en switch der styres fra koden, der switcher på LO signalet og dens inverterede, altså en faseforskydning på -180 IQ demodulator IQ demodulatoren er den blok der tager sig af at dekode den differentielle forkodning. Kompleksiteten kommer sig af, at detekteringen sker på en asynkron basis. I denne del bliver teorien bag IQ demodulatoren ikke forklaret, kun eftervist og vil indeholde en beskrivelse af systemet simuleret i SimuLink, samt dokumentation af at de anvendte antagelser virker. Blokken benytter sig af et stereoprincip, hvor det indkomne signal sendes ud på to kanaler og multipliceres med et signal fra en lokal oscillator. -90 filter På hver af de to kanaler i IQ demodulatoren multipliceres datasignalet, med LO signalet, hvor der på det ene LO signal er indsat et filter, hvis formål er at fasedreje det med -90. Dette gøres for at kunne udnytte den trigonometriske grundsætning og ved at indsætte et 2. ordens filter, der har 1MHz som knækfrekvens. Heraf fås ligningen: 2 ( π ) H = 2 2 s + ( π s) + ( π) Figur faseforskydning i simulering 52
54 Dæmpningsfaktoren ζ er 2. Dette er relativt nemt at kompensere for, ved at sætte en faktor 2 ind i serie med filteret. Det er uden betydning at hældningen på stopbåndet er dobbelt så stor, da knækfrekvensen ligger ved signalets frekvens. Med to poler fås nu en faseforskydning ved knækfrekvensen på -90. Sinusgenerator Til LO på sender- og modtagerdelen er valgt en sinusgenerator, da denne er nemmere at styre fasen på. Der er valgt en faseforskydning på 25 samples for at demonstrere at systemet fungerer asynkront, dvs. at fasen på modtagerdelen ikke er den samme som fasen på det indkomne signal. 1 Derudover er her igen valgt 100 samples per periode og en samplingstid på TLO,modtager = sekund, 8 10 men en amplitude på 1. AD1847 codec filter På indgangen af EZ-Kit Lite sidder et AD1847 codec der har et filter indbygget, med en cut-off frekvens f c = 24 khz. Dette er simuleret med et lavpasfilter hvis overføringsfunktion er givet ved: H AD π = s π For at fuldende gengivelsen af samplingen på EZ-Kit Lite, er tilføjet en Zero Order Hold kreds, der simulerer den forsinkelse der opstår ved selve samplingen. Lavpasfilter Efter sampling ønskes filtreret, for at genskabe nyttesignalet. Til dette er beregnet et 7. ordens løbende middelværdi filter, hvor alle 8 koefficienter er 0,125. For udregning og nærmere forklaring se Dette filter er ligeledes simuleret med MATLAB. Koden til beregning af frekvenskarakteristik, skal anvendes på et array (samplet) med værdier, der er taget fra udgangen af den differentielle forkoder. Dette kan ses på Figur 60. Når simuleringen er kørt, vil der i Workspace ligge et array ved navn samplet. Hvor mange værdier der er gemt i samplet afhænger af hvor lang tid der er simuleret over, og naturligt nok bliver analysen af disse værdier mere præcis, jo flere værdier der er at analysere på. Med udgangspunkt i en Fast Fourier Transformation (FFT), beregnes et effektspektrum der plottes for den halve frekvens, også betegnet nyquistfrekvensen, der i dette tilfælde er Hz = Hz 2 Ved en simulering på 0,03 sekunder opnås et array med 2205 samples, og ved at analysere disse får man en frekvenskarakteristik som vist nedenfor på Figur 60. Altså virker filteret efter hensigten. 53
55 20 0 FFT af simulering med 5512 Hz kasami Filter der skal genskabe kasami i IQ-dem. Dæmpning [db] Frekvens [Hz] x 10 4 Figur 60. Frekvenskarakteristik af indgangsfilter En yderligere nytteeffekt ved det løbende middelværdi filter er, at den distribuerer den del af signalet der har interesse, til alle 8 samples der udgør den oprindelige chip. Hermed er det derfor muligt at sænke hastigheden på resten af systemet med en faktor 8, altså til FIR_frekvensen. Delay Unit Som del af IQ demodulatoren indgår på hver kanal et delay unit, der gemmer den foregående værdi. Enheden kører med en frekvens der svarer til den på sender siden, altså FIR _ Frekvens = Forskellen i frekvens mellem det uforsinkede signal og det forsinkede signal resulterer i at værdien 1 1 på udgangen af delay unit holdes i 8 perioder med T = = og på det punkt Samplefrekvens hvor delay unit begynder en ny sending, sampler den ind på indgangssignalet. Dette kan ses på figuren nedenfor, hvor det tydeligt fremgår at udgangen på delay unit stiger og falder til det niveau det uforsinkede signal lå på, 8 perioder tidligere. Figur 61. Simulering af "Delay unit" 54
56 Dette har dog ingen betydning for systemet, da multiplikationspunktet efter delay unit er sat ned til at køre med FIR_frekvens, og dermed går de 7 samples til spilde. Denne løsning er valgt for at spare komponenter i simuleringen, der i sidste ende sparer simuleringstid og øger overblikket. Hvilken af de 8 samples der bliver benyttet til at multiplicere med er underordnet, da princippet her bygger på forholdet mellem de to kanaler. Gain Der er indsat et gain efter at værdien fra delay unit og det respektive er multipliceret, da der opstår en forringelse af amplituden af effekten. Denne teori er forklaret nærmere i designafsnit side 25. Dette kompenseres der for med et gain på 2. Der skal ikke anvendes et gain på 4, da der efterfølgende skal summeres og resultatet må ikke overstige 1. Denne metode kan bl.a. lade sig gøre da simuleringen arbejder med ideelle tilstande og støj og tab ikke introduceres i regneoperationer og transmissionslinjer. Til demonstration er taget et snapshot af indgangen af delay unit, udgangen af delay unit og udgangen af multiplikatoren. Her ses det tydeligt at amplituden er formindsket. Figur 62. Demonstration af effektformindskelse Gul er det uforsinkede signal. Pink er det forsinkede signal. Cyan er produktet af de to. Sum- og produktpunkter Sumpunktet summerer de indkomne data på en elementvis basis, dvs. når der er kommet data ind på begge porte, lægges de sammen og sendes videre. Produktpunkterne fungerer på samme vis. Sliding correlator Den flydende korrelator er i grove træk et FIR filter og en grænseværdigenkender. 1 1 Det diskrete filter kører med en periodetid på TCorr,filter = =, som en konsekvens FIR_frekvens 5512 af det løbende middelværdi filter. Denne funktionalitet kører altså kun hver 8. gang af indgangsfilteret. Resultatet kan ved optimal korrelation altså blive 15 og -15, for en simulering uden støj. Introduceres støj, kan der forekomme både positiv og negativ interferens, der har indflydelse på udfaldet af korrelationen. 55
57 Når denne funktionalitet implementeres på EZ-Kit Lite vil det være nødvendigt at skalere koefficienterne med en faktor 1/15, da det ikke er muligt at repræsentere værdier større end 1 og -1. FIR filterets summation af de individuelle forsinkelser vil medføre et maksimum udslag til hver side af nul på størrelse med antallet af koefficienter forskellig fra nul. I dette tilfælde er der 15 kasami chips altså skal der skaleres med 1/15. Da der bygges på en korrelationsproces, vil der være større eller mindre grad af sammenfald mellem resultatet og det ønskede resultat. For at skelne mellem disse er indsat et relay, der detekterer på om en given grænseværdi overskrides, og er det tilfældet vil den ændre sit output til hvad der er specificeret i blokkens parametre. I denne simulering er grænseværdien sat til +/- 13 da der bl.a. med støjbidrag kan forekomme destruktiv interferens, og er den detekterede værdi større end 13 er udfaldet uændret. Switch on point: 13 Switch off point: -13 Output when on: 1 Output when off: 0 Disse er parametrene for Relay blokken og indikerer at når værdien 13 overskrides sættes udgangen til 1 og når -13 overskrides sættes udgangen til 0. Dette skal altså simulere at et bit detekteres hver gang udgangen skifter tilstand, hvor det ideelt set burde fungere ved at et 1 eller 0 blev skrevet til en fil, når værdierne blev overskredet. Men i bund og grund står teorien sin prøve, da det er eftervist at det med denne teknik er muligt at detektere bit ved denne type korrelation. Figur 63. Demonstration af detektering under ideelle forhold Figur 64. Diagram over sliding correlator 56
58 Ændring af fase Under den forudgående simulering, har sinusgeneratoren på modtagersiden været sat til en faseforskydning på 25 samples, hvor en periode er 100 samples. Ved at ændre denne forskydning til 40 samples opnås den følgende situation: Figur 65. Detektering ved faseforskydning på 40 samples Her ses det at resultatet er uændret og hermed er det eftervist at fasen på modtageren er ubetydende for funktionaliteten af det samlede system og dataoverførslen. Systemet fungerer asynkront Støjforhold og oversampling Med den viden i hånden at systemet kan benyttes til at detektere bits, er det nu nødvendigt at kigge på under hvilke støjforhold det er muligt at overføre data uden tab. Ved at indsætte en hvidstøjsgenerator på indgangen af modtagerdelen og lægge denne støj til nyttesignalet antages det, at simulere den støj det kan forventes at få på et system. Denne støj har en amplitude på , derfor sættes den ned til en tiendedel af dette og påføres yderligere et gain på en tiendedel. Dette er udgangspunktet for simuleringen af støj og da denne indstilling har en amplitude på 1-1,5 antages dette at være en amplitude på størrelse med nyttesignalet. Ved at øge gain med 1% fordobles amplituden af støjen nu i forhold til nyttesignalet. Ved yderligere at øge gain på støjen med 1% haves en tredobling af støjen i forhold til nyttesignalet. Med denne fremgangsmåde er støjens styrke øget indtil der på udgangen af modtagerdelen er detekteret en fejl. Denne fejl opstod da gain var sat til 0,35, altså en faktor 35 større end nyttesignalet. På Figur 66 er et snapshot af situationen, hvor fejlen opstod på 4. bit, hvilket er markeret med en grøn cirkel. 57
59 Figur 66. Fejldetektering på 4. bit ved 35 gg støjniveau Det er valgt at køre med en oversamplingsrate på modtagersiden på 8. Dette er gjort ud fra simuleringer og en forudgående viden om effekten på SNR ved oversampling. Til at underbygge denne teori er systemet simuleret med frekvenserne 5512 / oversampling=4 og 5512 / oversampling=8. Oversampling skal bl.a. bruges til at designe filteret på modtagersiden. Dette gøres ved at bestemme antal koefficienter ud fra antallet af oversamplinger, L. Disse skal være lig hinanden. Derefter benyttes 1/L til at dimensionere koefficienterne med, så ved en oversampling på 4 bliver overføringsfunktionen for filteret , , 25 Z + 0, 25 Z + 0, 25 Z T4 = da L=4 og 1/L = 0,25. 1 Ligeledes bliver overføringsfunktionen for L=8 T 8 = 0, ,125 Z + 0,125 Z ,125 Z + 0,125 Z , da 1/N = 8. Ved simulering skal filtrene rettes til og det er værd at huske at koefficienterne i FIR filteret for sliding correlator ikke skal rettes til. Når dette er gjort skal variablen for samplingsrate rettes til så der samples med og Hz respektivt i stedet. Med disse indstillinger til test opnås bemærkelsesværdige resultater. Med en oversamplingsrate på 8 er systemet tolerant overfor støj der er op til 43 gange så stærkt som nyttesignalet, hvor der med 4 gange oversampling kun kan introduceres 33 gange så stærk støj, før fejldetektering opstår. Dette er illustreret på Figur 67 og Figur 68 nedenfor. Dette stemmer langt hen ad vejen overens med antagelsen af at der med oversampling opstår en tolerance for støj der stiger med kvadratet. 58
60 Figur 67. Detektering med 4gg oversampling og 33 gg støj Figur 68. Fejldetektering med 4gg oversampling og 34gg støj Det skal noteres her at Figur 68 er taget for FIR_frekvens = 6000 Hz og Samplefrekvens = Hz. Grunden til dette er støjgeneratoren og dens ikkestokastiske egenskaber. De forskellige værdier kommer ikke på tilfældige tidspunkter, derfor giver simuleringen i dette tilfælde ikke et tilstrækkeligt billede af hvad man kan forvente. Derfor er der indsat et billede der bedre illustrerer den effekt der kan forventes. Ved gentagne simuleringer viser resultaterne at ved en samplingsfrekvens på Hz, en FIR_frekvens på 6000 Hz altså en oversampling på 4, at der sker fejldetektering allerede ved en faktor 9 gange større støj end signal, men sættes oversamplingen op til en faktor 8, sker fejldetektering først ved 35 gange støjbidrag. Anvendes teorien om støj versus båndbredde er det også klart, at ved en mindre båndbredde stråler mindre støj også ind. Simuleringer ved samplingsfrekvens på og FIR_frekvens på 5512 viser at tolerancen stiger markant, til 34 gg støj ved 4 gg oversampling og 43 gg støj ved 8 gg oversampling. Denne markante stigning stemmer ikke helt overens med hvad der kan forventes. De ovenfor gjorte antagelser er taget da det endelige resultat i faktorer af støj er mindre betydende end den viden om forbedret følsomhed overfor støj, simuleringerne medfører. 59
61 I sidste ende er dette grunden til at en faktor 8 oversampling er valgt frem for en lavere faktor. I tilfældet, hvor det anvendte udstyr ikke har tilstrækkelig kraft til, at håndtere så høj en faktor oversampling, kan en lavere faktor anvendes, men man skal da være opmærksom på den lavere tolerance overfor den indkomne støj. 60
62 6 Implementering 6.1 Hardware Blokdiagram IO 50mW BPSK In-BPSK Out-BPSK Out-IO-Switch Out-IO-BPSK In-IO-BPSK In-IO-Switch DIPSW0 DIPSW1 DIPSW2 DIPSW3 Diode-RX Diode-TX Diode-ForkertModtager Diode-ForkertAdresse Vcc-ADSP DGND Fs-In-BPSK J1 1 2 BNC GND RF In-RF Out-RF SCHEMATIC1 J2 1 2 BNC GND UpDownSampler Out-UpDown R5 In-UpDown 0 LO-2.401GHz GND SCHEMATIC1 GND SWITCH In-Switch-IO Out-Switch In-Switch-BSPK Vcc+ Vcc+ Vcc- Vcc- Vcc+ GND In-Switch-IQ SCHEMATIC1 R4 0 R3 0 Vcc+ Vcc- SCHEMATIC1 Vcc+ GND Frekv ensgenerator Out-Frekv ensgenerator SCHEMATIC1 Vcc+ GND IQ-modulator 0-5V sinus R2 0 R1 0 SCHEMATIC1 EZ-Kit FL0 FL1 FL2 PF0 PF1 PF2 PF3 PF4 PF5 PF6 PF7 Vcc+ Vcc-ADSP DGND DGND POWER Fs-In-IQ Out1-IQ In-analog1 +5V Vcc+ In-IQ GND GND GND Out2-IQ In-analog2 POWER DGND Vcc+ Vcc- Vcc- SCHEMATIC1 Vcc+ GND SCHEMATIC Komponenter Operationsforstærker LMH6658 o Kan levere 80/-90mA i området 1-4V ved en forsyning på 5V o Slewrate på 470V/µs o FPBW 17 55MHz. Switch TS5A3159 o Skiftehastighed 15-20ns o Spændingsområde -0,5-5,5V o 100 MHz Båndbredde o Maksimal signalstrøm på ±200mA Frekvensmixer ADE-6 o RF/LO i intervallet 0, MHz o IF i intervallet DC-200MHz. med en maksimal strøm på 40 ma o Maksimal effekt på RF på 50mW Frekvensmixer ADE-30 o Fastsat i oplæget o RF/LO i intervallet MHz o IF i intervallet DC-1000MHz. med en maksimal strøm på 40 ma o Maksimal effekt på RF på 50mW 1MHz General Purpose Crystal o 32pF intern kapacitet 17 Full Power Bandwidth 61
63 6.1.3 Oscillator Diagram Oscillator BPSK <1 ohm 20k 0 IQ-modulator Figur 69. Ækvivalentdiagram over udgangstrinnet Krystal Lavpas filter Vcc+ Krav til Opamp: 1MHz Udgangs impedans >0,1ohm Vcc+ 1 U31 Oscillator NC GND VCC Out IQXO-350-oscillator 1 J34 CON1 GND 1 2 U33A 74HC V firkant 1 R38 0 J36 CON1 R39 0 R31 10k C pF C pF C31 150p Y31 1MHz C33 470p R32 10k R33 10k U32A out - LMH6658MA R35 R34 0 Not mounted 1 C39 10n J35 CON1 Out-Frekv ensgenerator GND GND GND GND J J32 1 BNC GND 2 BNC Vcc+ Vcc+ GND Vcc- C34 100n GND GND Figur 70. Diagram over oscillatoren 62
64 Beskrivelse Oscillator Her er der valgt at bruge en færdig pakke, der generer den ønskede frekvens på 1MHz. Filter For at filtrere grundfrekvens fra firkant signalet, skal der bruge et lavpasfilter, der dæmper de harmoniske så meget som muligt. Her er der valgt et filter, der som hovedelement består af en krystal. Denne filter type er blevet inspireret af Application note fra Intersil 18. Offset For at tilføre offsetspænding til det filtrerede signal, er R1 og R2 placeret. Offsetspændingen placeres midt i spændingsområdet, pga. amplituden på signalet. Modstandenes krav er, at ikke må have betydelig indflydelse på filteret, tillader nok bias strøm til operationsforstærkeren samt undgå unødigt termisk støj. Derfor vælges en passende modstand Beregning til filter Udregningerne følger beskrivelsen i bilag 8.7 side 164. C = 150 pf, f = 1 MHz, C = 32 pf R1 = = = 10,61kΩ E 24 10,0kΩ f 1MHz 2π C 2π 150 pf C3 = 3 C1 = pf = 450 pf 470 pf = C2 = 44,53pF 2 22 pf C C C C 2 Krystal 1 3 krystal Justering pga. test På baggrund af den indledende test af oscillatoren side 116 blev C2 = 47 pf + 22 pf variabel kapacitet Endvidere blev dæmpningen i filteret fastlagt i testen. Kompensering for dette sker i den efterfølgende operationsforstærker, så udgangssignalet matcher IQ demodulatormodulet Justering af variabel kapacitet Juster C32.2 således af der måles 0,6 peak peak i målepunkt J Udgangsspænding På baggrund af test side mV Vout () t sin ( 2π 1MHz t) + 2,5V 2 18 Application Note juni 1998 AN9815. Se bilag 8.7 side
65 6.1.4 BPSK Beskrivelse BPSK blokken laver et faseskift vha. en switch som skrifter mellem to signaler der er faseforskudt Krav Peakeffekt afsat i Op/Ned konverter: Operationsfrekvens: Maks. strøm i Op/Ned konverter: 47,9mW 1,000MHz 40mA BPSK Switch Up/down sampler Vpp 50 ohm 1 ohm 50 ohm Figur 71. Ækvivalent diagram der viser hvad BPSK er afhængig af Diagram Inverter Vcc+ Grundbølge Fs-In-BPSK Spændingsdeler GND R210 10k R29 10k U20A out - LMH6658MA J21 CON1 Switch J23 CON1 R21 0 R23 10k J22 CON1 1 R24 10k 1 Switch_out U22A IN/OUT OUT/IN 54HC4066 U22B OUT/IN IN/OUT VDD 14 CTRL 13 VDD 14 CTRL 12 Vcc+ U33B Vcc In-BPSK Vcc+ Vcc- C20 100n GND C21 100n R22 Not mountet C23 100n GND Switch_out Vcc+ GND C22 10n Vcc+ GND R25 91k R26 10k R27 10k 54HC4066 U20B out - LMH6658MA R28 39k 7 J24 1 CON1 74HC00 Udgangs impedans 50ohm R211 Out-BPSK 50 GND Figur 72. Diagram over BPSK modulet 64
66 Beregning Ud fra Figur 71 kan vi udregne signalspændingsamplituden, til videre dimensionering af blokken. P peak 2 Vpeak = R peak to peak 2 Vpeak 50Ω 50Ω+ 50Ω+ 1Ω = 47,9mW Vpeak = 3,12V 50Ω V = 23,12 = 6,24V Vpeak 3,12V I peak = = = 30,89mA 50Ω+ 50Ω+ 1Ω 101Ω Grundet forsyningsspænding og operationsforstærker, er udgangsspændingsniveauet begrænset til 1-4V. Vpeak to peak = 3V Vpeak = 1,5V Vpeak 1, 5V I peak = = = 14,85mA 50Ω+ 50Ω+ 1Ω 101Ω 2 1, 5V 50Ω 50Ω+ 50Ω+ 1Ω Ppeak = 11,03mW 50Ω Realisering af forstærker: 0,63 Vind = V sin ( 2π f t) + 2,5V 2 Vpeak 1, 5V Gain = = = 4,76 Vin 0,315 R Gain = + R = kω ,0 R27 ( ) ( ) R28 = R27 Gain 1 = 10, 0kΩ 4, 76 1 = 37, 6 E 24 39kΩ 39kΩ GainE 24 = 1+ = 4,9 10,0kΩ V = 0,315V 4,9 = 1,54V peak 65
67 Offsetspænding: Offset ønsket = 2,5V Offsetønsket 2,5V Offset = = = 510mV Gain 4,9 R = = = Ω 25 Offset Vcc ; Vcc 5 V ; R25 10k R25 + R26 10kΩ 510mV = 5V R26 = 88,0kΩ E 24 91kΩ R + 10kΩ 26 10kΩ OffsetE 24 = 5V = 495mV 91kΩ+ 10kΩ V mv f t mv out = 315 4,9 sin ( 2π ) ,9 = 1 ( π ),54V sin 2 f t + 2,42V Højpasfilteret ønskes realiseret til at have en 3db knækfrekvens mindst 1 dekade under 1MHz: 1MHz 10 ωc = 2π 1 ωc >, R26 = 10kΩ R26 C22 C > 6, 28nF C 10nF Maks. strøm afsat i Op/Ned konverter: Pga. kondensatoren, se Figur 71 side 64, er det kun AC spændingen i signalet der afsætter effekt i Op/Ned konvereten. I peak 1, 54V = = 15,3mA 1Ω+ 50Ω+ 50Ω 66
68 6.1.5 Switch Der er valgt en TS5A3159 analog-switch fra Texas Instruments til at styre sende-/ modtagesignalet i RF-blokken. Switchen er en SPDT der overholder kravet om, at systemet står til konstant at modtage signalet, når der ikke sendes. Endvidere, dækker swichens tilladte båndbredde systemets båndbreddebegrænsning før op/ned konvertering. Dæmpningen i systemet er ifølge databladet også minimal ved 1MHz. Switchen forsynes med 5V og styres af CMOS signalet fra IO modulet via IN-benet. Pin placering for switchen TS5A3159 kan ses i Figur 73. Figur 73. Pin-placering på TS5A3159 Styrsignalet fra IO modulet skifter COM porten fra sende (Tx) til modtage (Rx). Ud fra Tabel 7, vises at NC (ben 3) ved lav på IN (Logisk 0 - ben 6) modtager signalet fra Op/Ned konverteren, derfor er systemet i modtagetilstand. Skifter IN til H (Logisk 1 ben 6), så sendes signalet videre til op-konvertering via NO (ben 1) og systemet opereres i sendetilstand. IN NC to COM, COM to NC NO to COM, COM to NO L ON OFF H OFF ON Tabel 7. Funktion tabel til TS5A3159 Der blev brugt 2 modstande og en kondensator på ben 1, 2, og 4 i switchblokken. Deres placering kan ses på Figur 74. Kondensatorene sammen med modstanden, forbundet til jord, virker som et højpasfilter. DC offsettet i kredsløbet tilpasses af modstandene til de tilladte spændingsværdier ud fra databladet (V NO, V COM -0,5V til +0,5V). Virkning af filteret og spændingsbias på IQ demodulatorsiden af switchen omtales i IQ demodulator implementering, Se afsnit side 78. Vcc+ f ra BSPK til IQ- demodulator C12 10n GND R13 10k R14 10k C13 1,5n Vcc+ R R GND U10 Switch NO GND NC TS5A3159 In 6 V+ 5 Com 4 Vcc+ Switch signal dra DSP Vcc+ R11 10k C11 10n R12 10k til/f ra ADE-30 GND Figur 74. Diagram over switchblokken GND 67
69 Op/Ned konverter Valget af komponent var allerede fastlagt i oplæget. Der anvendes en ADE-30 frekvensmixer til Op/Ned konvertering og komponenten blev implementeret imellem antennen og Tx/Rx-switchen. ADE-30 har en samlet signaltab på 9dB. Virkningen af tabet bliver undersøgt i effektregnskabet, se afsnit side 69. In-UpDown Out-UpDown GND U9 GND IF RF LO 6 ADE30 f requency mixer Figur 75. Pin-placering på ADE-30 LO-2.401GHz Pin-placering i ADE-30 er bestemt ud fra databladet, hvor LO (ben 6) modtager LO signalet på 2,401GHz der bliver moduleret med et 1MHz signal til opkonvertering af signalet til 2,402GHz, RF (ben 3) eller med et 2,402GHz modtaget signal til nedkonvertering til 1MHz, IF (ben 2). Udregning af signalets frekvens: Opkonvertering Nedkonvertering f = f + f = 2401MHz+ 1MHz = 2402MHz RF LO IF f = f f = 2402MHz 2401MHz = 1MHz IF RF LO ADE-30 ADE-30 RF f RF f RF - f LO IF RF f IF + f LO f IF IF f LO LO Figur 76. Nedkonvertering fra RF til IF f LO LO Figur 77. Opkonvertering fra IF til RF Der ses i systemet bort fra spejlfrekvensen på 2400MHz fra opkonvertering, og spejlfrekvensen fra nedkonvertering på 4803MHz bliver sorteret fra i IQ-demodulatorblokken. f s Figur 78. Signalet før modulering med LO -f s f s 68
70 Figur 79. Signalet efter modulering med LO RF Filter Projektoplæget foreslår at der implementeres et RF-filter efter Op/Ned konvertering. På grund af projektets omfang er denne del fravalgt, efter aftale med kunden Antenne Antennen var fastlagt på forhånd i projektoplæget, se afsnit 8.1 side 108. Antennens impedans er 50Ω. Printbanen skal tilpasses antennens impedans Impedanstilpasning Impedanstilpasning er vigtig i systemet for at undgå signaltab. Impedanstilpasning dækker antennens impedans, printbaneimpedans og impedanstilpasning på BPSK og IQ demodulatorsiden af switchen. Ud fra Figur 74 kan man se at IQ-demodulatoren har 2 modstande på 100Ω, der sidder parallel med hinanden. Det medfører at kravene på en 50Ω impedanstilpasning er opfyldt Effektregnskab for transmissionskredsløbet Maksimum sendeeffekt: 10 mw G s G r Sender Modtager P in 9dB Up/Down converter 3dB RF filter P s 10mW 3dB RF filter P r Figur 80. Ækvivalent kredsløb for transmissionskredsløbet 9dB Up/Down converter P out Data: Impedans = 50Ω Frekvens = 2,402 MHz P s : Effekt i sendeantennen P r : Effekt i modtageantennen G s : Forstærkning i sendeantennen G r : Forstærkning i modtageantennen Sender peakeffekt ( 9+ 3) db ( 9+ 3) G s=g r=5,2dbi Gs = Gr = 10 = mW Ps = = 3, 02mW 5,2dBi in db s 10 3, ,9 P = P = mw = mw Dette er maksimale effekter der må sendes med, for at overholde specifikationerne i ETS standarden Kravspecifikations nr. 17 side 7. 69
71 Modtager peakeffekt For at finde effekt i modtageantennen er Friis formel anvendt. Friis formel finder forhold imellem effektafsætning i en sende- og modtageantenne og er udført under ideelle forudsætninger. Friis formel Pr P s 2 λ = Gs Gr ; R = afstand imellem antennerne = 1m 4 π R Effekten der afsættes i modtageantennen er: 5.2dBi 10 G s=g r=5,2dbi Gs = Gr = 10 = m 310 c 8 m λ =, c= 3 10, f = 2, 402GHz λ = s = 0,125m f s 2,402GHz 2 2 0,125m Pr = 3, 02 (3.31) = 3, 274 P mw µw 4 π 1m 3,274µW = = 207nW 10 out 3dB+ 9dB 10 70
72 6.1.7 Print Til printfremstilling benyttes FR4 print med en tykkelse på 1,6 mm og en relativ dielektricitetskonstant (ε r ) på 4,5. Det tilstræbes at lave en impedans tilpasning på printbanerne på 50 Ω, så for Z 0 = 50 Ω aflæses bredde/højde-forholdet, W Bredde ud fra kurverne lavet over formel [4.3] i hæftet h Højde transmissionslinier Teori og Anvendelse af John Rohde. W Altså 2 W 3,2 mm h = =. Banebredden skal altså være 3,2 mm for Z bane =50 Ω. W = 3,2mm e r = 4,5 h = 1,6mm Figur 81. Geometri for printbanen Skal der foretages beregninger på tab i printbanerne, kan dette gøres ved at beregne Epsilon-relativ, ligeledes ved aflæsning: ε r,effektiv ε r = 0,77 ε = 0,77 ε = 3,47 r,effektiv r, ε r = 4,5 for FR4 print Og benytte sig af formlen for ledertab: 8, 68 α c = Z W π f μ σ 0 cu 0 db m Dette er ikke gjort, da tabet i lederne er minimalt set i forhold til andre faktorer. Ud fra beregninger af printstørrelse og valg af materialer kan man checke om den øvrefrekvensgrænse, f 0, er nået vha. formlen. f z 50 = 0,3 10 = 0,3 10 = ca. 3,89 GHz 1 1,6 10 4, h ε r Systemets øverste frekvens er 2,402GHz så printet og dettes dimensioner er dækket ind. Det er også værd at bemærke at banerne bør holdes med en afstand fra GND på 1-1,5 W, for ikke at forstyrre nyttesignalet. 71
73 6.1.8 Print layout Krav Printbane tykkelsen til 2,4GHz skal være impedans tilpasset til 50Ω. Skal kunne være i det valgte kabinet, se krav nr. 3.5 side 11. o Hovedprintets dimensioner 160mm x 100mm. Afkoblingskodensatore placeres så tæt på de aktive komponenter som muligt. Single eller dobbeltsidet print, da IHA kan fremstille dette. Forsøge at route de enkelt baner så korte som muligt. Undgå strømløkker. Adskille den digitale og analoge hardware. Specielle overvejelser Da den analoge og digitale forbindelse til EZ-Kit Lite begge skal bruge GND er det blevet valgt kun at bruge den analoge GND til begge områder for at undgå en strømløkke. Dette kan lade sig gøre, da der er en direkte sammenkobling mellem dens digitale og analoge GND på EZ-Kittet. Printlayout Figur 82. Komponent placering på printet 72
74 Figur 83. Top lag Figur 84. Bund lag 73
75 6.1.9 IQ Demodulator Det designede kredsløb skal beregnes med komponentværdier der er tilpasset de dæmpninger der kommer gennem modtagerdelen af transceiveren og tilpasset den optimale indgangsspænding til EZ-Kittets indgang. IQ demodulatorens værdier er primært fastsat af det maksimale signal fra antennen. Desuden er det maksimale signal til EZ-Kittet også fastsat. Indgangssignalet fra lokaloscillatoren har impedansforhold der bestemmes af denne del. Effekt modtaget fra switch 207nW Full scale spænding på indgangene af EZ-Kit Lite 20 2,8V PP Indgangsimpedans på indgange på EZ-Kit Lite > 10kΩ Den maksimale spænding der modtages på indgangen af preforstærkeren vil så være: VP = R Pmaks = 50Ω 207nW = 3, 22mVP Modstanden R på 50Ω er indgangssimpedansen til preforstærkeren som udgøres af to 100Ω modstande der sidder i parallel. Det giver en spænding på 6, 44mV PP. Igennem mixeren er der ifølge databladet for ADE-6 en dæmpning på 4,6dB, som jf. indledende test er blevet bestemt til 9,9dB 21. Den totale forstærkning gennem hardwaredelen af IQ-demodulatoren bliver: 2,8V G total,db = 20 log = 52,8dB 6, 44mV Forstærkningen fordeles således: -9,9 db 24,9 db X L RF modtager 37,8 db LO ,9 db EZ-kit X R -9,9 db Figur 85. IQ demodulator med dæmpninger Forstærkere før EZ-Kit Spændingen der kræves for at bruge det fulde område i AD konverteren på EZ-kittet maksimalt skal være 2,8V, og derfor skal signalet til EZ-Kittet forstærkes til dette niveau. PP 20 Aflæst i datablad for Analog AD1847 stereo codec 21 Se indledende mixer test afsnit side
76 Den føromtalte test har vist at signalet gennem mixeren bedst realiseres i dens lineære område. Indgangsspændingen er valgt til 0,5V PP. Udgangsspændingen er i en anden test 22, hvor det beregnede maksimumsignal påtrykkes, og forstærkning og mixere er påsatte, blevet målt til 160mV PP, hvilket giver en samlet dæmpning i mixerne på: Dæmpning PP = = db 0,5V 160mV PP 3,125gg Dæmpning = 20 log(3,125gg) = 9,9dB Signalet skal forstærkes, hvilket realiseres med en forstærker af typen LMH efter mixeren. Spænding på udgangen af mixerne er 160mV PP hvilket anvendes videre i beregningerne. G PP = = 0,160VPP db 2,8V 17,5gg G = 20 log(g) = 24,9dB Forstærkeren før EZ-Kit Lite er en ikkeinverterende forstærker med en forstærkning på 17,5gg som beskrevet ovenfor. Forstærkningen på 17,5gg realiseres som følgende: R58 vælges til 33kΩ og R57 beregnes: R57 vælges efter E24 rækken til 2,0kΩ. Den reelle forstærkning vil så være: R58+ R57 R58 G = = + 1 = 17,5gg R57 R57 R58 R58 33kΩ = 16,5gg R57 = = = 2, 0kΩ R57 16,5gg 16,5gg R58 + R57 33kΩ+ 2, 0kΩ G = = = 17,5gg R57 2,0kΩ Biasniveau Der skal tilføres et DC-offset da forsyningen til operationsforstærkeren er 0-5V. Vi ønsker derfor, at signalet skal ligge midt i forsyningområdet, hvorfor der skal tilføres et offset på 2,5V. Dette gøres vha. C51 og den efterfølgende impedans, der udgøres af R53 og R54 som sammen med kondensatoren danner et højpasfilter. Offsettet der skal tilføres er: V 2,5V G 17,5gg bias,ud Vbias,Ind = = = 0,1429V Dvs. DC-offsettet skal reelt kun være 0,1429V, da der er en forstærkning på 17,5gange. R54 fastsættes til 2,0kΩ og R53 bliver derfor: 22 Test af mixer med forstærkere og faseforskydningsfilter, se afsnit side National Semiconductor. 75
77 R54 R54 V 2kΩ 5V = = = Ω= Ω CC Vbias,Ind VCC R53 R54 2k 67,98k R54 + R53 Vbias,Ind 0,1429V R53 vælges til 68,0kΩ efter E24 rækken. Højpasfilteret inden forstærkeren bestående af C51, R53 og R54, er designet således, at det har en cutoff-frekvens ved 600Hz, som er langt under signalfrekvensen på 5512,5Hz, hvilket gøres for ikke at dæmpe signalfrekvensen. Der ses bort fra R53, da dennes værdi er meget større end R54. Overføringsfunktion for højpasfilteret: C51 beregnes: Vo s H(s) = = V 1 i s + R54 C51 1 ω c = = 2 π fc = 2 π 600Hz R54 C51 1 C51= = 133nF 2 π 600Hz 2,0kΩ C51 vælges til 150nF. Cutoff frekvensen bliver ved ændringen af C51 ændret til 531Hz, og kommer derved til at ligge en dekade under signalfrekvensen, hvorved nyttesignalet ikke dæmpes væsentligt. Vcc+ J53 CON1 C51 150n R53 68k R54 2k GND U50A 3 + out LMH6658MA R57 2k R58 33k 1 Out1-IQ GND Figur 86. Diagram over forstærkeren før EZ-Kit Lite kortet På begge indgangskanaler til EZ-Kit Lite sidder et højpasfilter 24 og derfor er det ikke nødvendigt at trække udgangsforstærkerens spændingsniveau ned. LO indgangen bliver forsynet af henholdsvis lokaloscillatoren og et aktivt filter der drejer fasen 90. Denne spænding skal også tilpasses så lokaloscillatorens tilgangsspænding bliver 0,5V Fasedrejningsfilter Filteret der anvendes til at lave en fasedrejning på 90 er designet vha. FilterLab. Filteret der anvendes er et 2. ordens Sallen Key lavpasfilter med pasbåndsdæmpning på 3dB ved cutoff frekvensen 1MHz. Et 2. ordens lavpasfilter laver en fasedrejning på i alt 180, hvorved der ved cutoff frekvensen fås en fasedrejning på 90. Med disse parametre fås kredsløbet i Figur 87. vha. FilterLab. 24 Se bilag afsnit 8.8 side
78 Figur 87. Fasedrejningsfilter designet vha. FilterLab På bodeplottet for dette filter, Figur 88, ses det at der ved en frekvens på 1MHz er en fasedrejning på 90 og dæmpning på -3dB. Figur 88. Bodeplot for fasedrejningsfilter vha. FilterLab I filteret der faseforskyder signalet 90 bliver signalet også dæmpet. Derfor er der på filteret lavet en forstærkning på 3dB, da dæmpningen forventes at være 3dB ved cutoff frekvensen. Den ikkeinverterende forstærker der anvendes til fasedrejningen, skal derfor forstærke 1,41 gange. Modstanden R64 vælges til 10kΩ og R63 beregnes: R64+R63 R64 R64 10kΩ = 1, 41gg + 1 = 1, 41 R63 = = = 24,39kΩ R63 R63 0, 41 0, 41 Ud fra E24 standarden vælges den til 24kΩ. Med de valgte komponenter bliver forstærkningen: R64+ R63 R64 10kΩ A= = + 1= + 1= 1,42 R63 R63 24kΩ A = 20 log(a) = 3, 05dB db 77
79 Det implementerede filter ses i Figur 89. C p fase ind R C p C R C p U60B 5 + out LMH6658MA R64 10k fase ud R63 24k GND GND Figur 89. Implementeret fasedrejningsfilter Preforstærker til IQ-demodulator Full-scale spændingen på indgangen er 6,44mV PP, hvilken skal forstærkes til 0,5V PP. Denne forstærkning er herunder beregnet: 0,5VPP G = = 77,64gg 6, 44mV PP 0,5V PP GdB = 20 log = 37,8dB 6, 44mVPP Operationsforstærkeren, LM6658, er blevet valgt da den ved 1MHz kan forstærke ca. 45dB, samt afgive en maksimalstrøm på 80mA. Switch Forstærker før IQ-dem Mixer ADE-6 50 ohm 50 ohm 50 ohm >50 kohm <1 ohm Vpp Vind*G 50 ohm Mixer ADE-6 50 ohm Figur 90. Ækvivalentdiagram for preforstærker Indgangsimpedansen som forstærkeren skal kunne trække er: (( ) ( ) ) 1 2 ( ) ( ) ( ) Z= Z + R + Z + R = 50Ω+ 50Ω + 50Ω+ 50Ω = 50Ω 78
80 Vcc+ R k C13 1,5n 0 R513 1k U60B 5 + out 6 - LMH6658MA R51 1k R52 75k 7 C53 47n R51 vælges efter E24 rækken til 1kΩ. R52 beregnes: 0 Figur 91. Opbygning af forstærker før IQ-demodulator R52+ R51 G = R52 = G R51 R51 R52 = 77, 64 1kΩ 1k Ω= 76, 64kΩ R51 Efter E24 vælges R52 til en modstand på 75kΩ. Det giver reelt en forstærkning på: R52 + R51 75kΩ+ 1kΩ G = = = 76gg R51 1kΩ Størrelsen på C53 bestemmes ud fra en knækfrekvens der ligger mindst en dekade under 1 MHz, da denne ikke må dæmpes. C53 bestemmes til 47nF, der giver følgende dæmpning: R 50Ω H( jω ) = = = 0,998gg 1 1 R+ 50Ω+ C53 ω j 47nF j2π Hz Biasniveau For at signalet ligger inden for operationsforstærkerens arbejdsområde skal indgangssignalet tilpasses forstærkningen mht. bias. Kombinationen mellem C13 og den efterfølgende impedans danner et højpasfilter der skal sikre at spændingsbias kan fastsættes til det niveau der skal bruges efterfølgende. Det er modstandene R512 og R513 der bestemmer bias inden forstærkeren. Da forstærkeren forsynes med 0V og 5V skal udgangen svinge omkring 2,5V. Forstærkningen er på 76gg. Derfor skal indgangsbias ligge på: V bias,ind V 2,5V G 76gg = bias,ud = = 32,89mV R513 fastsættes til10kω, og R512 bliver derfor: 79
81 R513 R513 V 1kΩ 5V = = = Ω= Ω= Ω CC Vbias,Ind VCC R512 R513 1k 40k 151k R513 + R512 Vbias,Ind 32,89mV Ifølge E24 rækken vælges R512 til 150kΩ, Dette giver en reel spænding på: R513 1kΩ Vbias,Ind = VCC = 5V = 33,3mV R513+ R512 1kΩ+ 150kΩ V = V G = 33,3mV 76gg = 2,53V bias,ud bias,ind Størrelsen på C13 bestemmes ud fra en knækfrekvens der ligger mindst en dekade under 1MHz der ikke må dæmpes: Vo s H(s) = = V 1 i s + R513 C13 1 ω c = = 2 π fc = 2 π kHz R513 C13 R513 vælges til 1kΩ, og C13 beregnes herudfra: C51 vælges til 1,5nF. 1 C51= = 1,59nF 2 π Hz 1,0kΩ 80
82 IO-Modul Beskrivelse Formidler digitale informationer til og fra signalprocessoren på EZ-Kit Lite Krav Levere 2V og 15mA til lysdioderne. Dipswitche og lysdioder skal placeres på et separat print jf. designkrav afsnit 3.5 side 11. Videregive CMOS signaler til BPSK- og switchmodulerne Diagram - Overordnede for IO J71 J72 Switch DIPSW0 DIPSW1 DIPSW2 DIPSW3 VCC DGND CONN RECT CONN RECT 10 SW-DGND SW-VCC SW-DGND SW-VCC SW4 SW3 SW2 SW1 SW-DGND switch U70A Diode-RX CMOS 5V HC14 SW-VCC LED LED-VCC LED-RX U70B LED-TX Diode-TX CMOS 5V HC14 LED-f orkertmodtager LED-f orkertadresse LED U70C Diode-ForkertModtager CMOS 5V HC14 DGND DGND Diode-ForkertAdresse U70D CMOS 5V HC14 Vcc-ADSP C5 100n VCC In-IO-Switch In-IO-BPSK Out-IO-Switch U70E HC14 U70F HC14 D75 LED 2V 15mA D76 LED 2V 15mA R R VCC VCC Out-IO-BPSK Figur 92. Overordnet diagram for IO Beregning V cc d = 5V Vd = 2V I = 15mA Vcc Vd 5V 2V R = = = 200Ω I 15mA d 81
83 Diagram for DipSwitchen SW71 SW-DGND R75 2k SW1 SW DIP-4 VCC R76 2k SW2 VCC R77 2k SW3 VCC SW-VCC Figur 93. VCC R78 2k SW Diagram for LED LED-RX D71 LED 2V 15mA R VCC LED-VCC LED-TX D72 LED 2V 15mA R VCC LED-f orkertmodtager D73 LED 2V 15mA R VCC LED-f orkertadresse D74 LED 2V 15mA Figur 94. R VCC 82
84 Forsyningsmodul Formål At levere 5V forsyning til modulerne Diagram J3 U1 CON2 1 +9V 2 C1 10n 1 IN OUT 3 LM7805C/TO220 C2 330n C3 100n 1 J4 CON1 +5V GND GND 1 Figur 95. Diagram over forsyningsmodulet J5 CON Valg af spændingregulator Under implementering er fokuset ikke på forbruget, men på funktionen. Derfor er der valgt en 5V 1A spændingsregulator, da det anses for tilstrækkeligt. C2 og C3 er valgt på baggrund af databladet for LM
85 6.2 Software Generelt For at implementere et software system med en kerne, der har den egenskab at køre flere processer samtidigt, er systemet programmeret således at hver proces laver det den har brug for, på det aktuelle tidspunkt, og derefter sender stafetten videre til næste. Derved låser processerne ikke hinanden. Endvidere kan man også styre tiden mellem hver gang den enkelte proces bliver kaldt, forudsat at processerne kan nå at blive færdige før de sættes i gang igen. Tiden mellem processerne bliver styret af en tidsstyret interrupt Minimumshastighed for den trådløse kommunikation Pakkeformatet er beskrevet i kravspecifikationen, kravnummer 6 side 7. RS232: 10 bit hvor af 8 bit er data. Transceiver: 12 bit hvor af 8 bit er data. 15 bit chips Kasamikodelængde: Udregning af minimumhastigheden for kommunikationen: baud f bit RS232 chips s bit transceiver chips chips min = + s bit pakke bit RS232 transceiver pakke pakke Transceiver baud = 300 f RS232 bit RS232 s 300 = = chips chips min s s Valg af periodetiden mellem interrupt Tiden mellem hvert interrupt bliver bestemt af den proces, der skal kaldes hyppigst. Dernæst bliver de andre styret af en tæller, der lader den enkelte proces køre for hver x gange. Derved kan man multiplicere periodetiden mellem de enkelte interrupts for den enkelte proces. I dette projekt er den proces der skal kaldes hyppigst, modtagerprocessen. På baggrund af simulering skal middelværdifilteret oversample så mange gange som muligt, for at opnå den mindste støjfølsomhed. Samplingshastighed 48kHz 44,1kHz 37,8kHz Antal oversamplings 3 irq s irq = 8,8 3 5, ,1 10 5, ,8 10 5, Tabel 8. Samplingfrekvens vs. oversampling chips chips s 3 irq s irq = 8,1 3 chips chips s 3 irq s irq = 6,9 3 chips chips s 84
86 På baggrund af Tabel 8 er samplingsfrekvensen valgt til 44,1kHz. Derved opnås den maksimale oversampling, samtidig med at samplingshastigheden ikke er unødigvendig hurtig. Dermed er hastigheden hvorpå chipsene bliver sendt: 44, irq s 3 chips = 5, irq s chips 85
87 6.2.2 RS232 UART Software UART en blev implementeret i systemet, ved først at tilføje den til programskallen ain2out. Ain2out er en programskal til EZ-Kit Lite. Det eneste skallen gør er at åbne ind- og udgange, så der er gennemgang. Da UART en er en vigtig del af systemet blev den som det første tilføjet uden andre dele af softwaren til ain2out. Da UART en virkede blev resten af softwaren tilføjet til UART programskallen. Hoveddelen af UART en blev implementeret i filen uart.dsp. Funktionerne i aktivitetsdiagrammerne blev implementeret i filerne. uart.dsp uart.dsp blev oprette så alle funktioner der har noget at gøre med UART ligger i denne fil. Funktionerne UART_interlisering, uart_sub, FIFO_til_uart og trans_char er alle i uart.dsp. Alle funktionerne er nødvendige for UART en. Se bilag side 187 Endvidere er der også nogle nødvendige ændringer i main.dsp og subr.dsp. main.dsp Her bliver UART_interlisering kaldt. Se bilag side 191 Subr.dsp Her bliver uart_sub kaldt via Sport0_Rx_IrqService. Se bilag side 197 Tidsskalering For at kommunikationen mellem computer og netkort virker, skal begge parter være sat op til samme baud hastighed. Derfor udregnes skalering i softwaren til: T 44100Hz = = baud Hastighed på 300 baud giver en skaléring på 147. Det første modtagne bit bliver aflæst ved stjerne 1 se Figur 96. Hvis afstanden fortsætter med at være 147 vil alle de næste bit blive aflæst mellem 2 bit. For at kunne detektere bitstrømmen mere sikkert opsættes en parameter, forstegangsskalering til 1,5 T 220 så hvert bit bliver læst midt i, som stjerne 2. På den måde undgås aflæsningsfejl Figur 96. Bitstrøm 86
88 6.2.3 Senderdel Funktionerne i aktivitetsdiagrammerne blev implementeret i filen: sender.dsp sender.dsp blev oprette så alle funktioner der har noget med at sende at gøre, ligger i denne fil. Funktionerne Sender_Initilisering, Sender_sub og BestemAdr er alle i Sender.dsp. Alle funktionerne er nødvendige for Senderen alene. Se bilag side 170. Endvidere er der også nogle nødvendige ændringer i main.dsp og subr.dsp. main.dsp Her bliver Sender_interlisering kaldt. Se bilag side 191. Subr.dsp Her bliver Sender_sub kaldt via Sport0_Rx_IrqService. Se bilag side 197. Tidsskalering Senderdelen er sat til at sende med en hastighed der er en ottendededel af hvad der modtages med, se afsnit side 84. FIFO sendebuffer FIFO arrayet initialiseres til 100 pladser, dette dækker rigeligt systemets behov. Alt koden der omhandler IO modulet er samlet i FIFOsend.dsp, Se bilag side
89 6.2.4 Modtagerdel Modtagerdelen af softwaren blev implementeret ved først at tilføje den til programskallen ain2out. Modtager.dsp Modtager.dsp blev oprette så alle funktioner, der har noget at gøre med modtageren ligger i denne fil. Hoved funktionerne Init_modtager, Modtager_main, FIR, Delay_Summation_sliding og Slid_Cor er alle i modtager.dsp. Da integrationsfilteret oversampler hver chip 8 gange, er tidsskaleringen af interruptdelen også sat til 8. Under designet af IQ demodulatormodulet blev der fundet et behov for gain i systemet lige efter summationspunktet for at forøge signalets støjegenskaber. Da værdierne angives i S.15 format opstår der et problem med signalets størrelse, nemlig at S.15 format kun kan indeholde værdier fra +1 til -1. De to faktorer sammen, gjorde det nødvendigt at skalére koefficienterne. Det optimale gain i IQ-demodulatordelen blev fundet til at være 4 gange. I implementering, bliver 2 gange gain realiseret analogt (før EZ-Kit Lite indgang) og resterende realiseres digitalt. Derfor er filterkoefficienterne i sliding correlator For at detektere om bittet er +1 eller -1 er det nødvendigt at indsætte et tærskelniveau. Det sorterer støjen fra og sikrer at de gyldige bitværdier bliver detekteret. Detekterede bit bliver lagt i en pakke på 12 bit, 8 bit dækker transmitteret data, 2 bit dækker handshaking der pga. opgavens omfang er udeladt af systemet. De sidste 2 bit dækker afsendeadressen. Når pakken er klar, sættes et flag så at FIFO-modtage subrutine kaldes og pakken hentes. Endvidere er der implementeret en timer for at detektere om pakken er forældet eller der slet ikke blev detekteret et bit. Hvis det sker, bliver pakken slettet. Se modtager.dsp bilag afsnit side 174. FIFOmodt.dsp Når pakken er færdig modtaget, hentes den ind i FIFO bufferen. Her er ligger den klar til UART en. FIFO arrayet initialiseres til 100 pladser, dette dækker rigeligt systemets behov. Se bilag side 181. Endvidere er der også nogle nødvendige ændringer i main.dsp og subr.dsp. main.dsp Her bliver Init_modtager kaldt. Se bilag side 191. Subr.dsp Her bliver modtager_main kaldt via Sport0_Rx_IrqService. Se bilag side
90 Implementering af FIR-filter på indgang På indgangen af EZ-Kittet skal der implementeres et FIR-filter til at integrere signalet. I det der samples 8 gange per periode, kan filterkoefficienterne beregnes ud fra følgende formel hvor P angiver filterets orden. b k 1 =, for k=0,1,2...p P + 1 Da vi sampler 8 gange per periode er filteret der skal implementeres et 7. ordens filter med 8 koefficienter. Dvs. P = 7 Dette giver følgende impulsrespons 1 1 bk = = = 0, h[ n ] = δ (n) + δ(n 1) + δ(n 2) + δ(n 3) + δ(n 4) + δ(n 5) + δ(n 6) + δ(n 7) For at teste dette filter, er der i MatLab blevet lavet en simulering af filteret. Dette filter skal dæmpe alt andet end signalet på 5512,5Hz for at få det bedste SNR. Amplituderesponset for filteret er vist på Figur Dæmpning [db] Frekvens [Hz] x 10 4 Figur 97. Amplituderespons af FIR-filter 89
91 6.2.5 I/O til EZ-KIT Lite EZ-Kit Lite har 8 programmerbare input/output pins. De bliver styret af 2 registre. PFTYPE styrer om det skal være et input eller output (1 = output og 0 = input), se Figur 98. Figur 98. Illustrerer PFTYPE PFDATA bruges til at læse fra og skrive værdier til pinnene, se Figur 99. Figur 99. Illustrerer PFDATA I/O funktionerne blev implementeret i filen InOut.dsp. Se bilag afsnit side Fejlmeddelelser Har ansvaret for at overvåge systemet så de ønskede fejlmeddelelser bliver udlæst via de ønskede lysdioder. Er implementeret i filen fejl.dsp. Se bilag afsnit side
92 6.2.7 Programskal filer Main.dsp Hovedprogram til softwaredel. Se bilag side 191. Subr.dsp Subrutiner er placeret i denne fil. De rutiner der erklæres i denne fil inkluderer: rx_buf, tx_buf, FIFOIndSender, FIFOIndModtager, FIFO_til_uart, modtager_main og Sender_Sub. Se bilag side 197. Ptrs.dsp Pointere i DAG-registret og deres anvendelse i programmet er initieret i denne fil. Se bilag side 196. Init.dsp Indeholder initialisering til EZ-Kit Lite. Inkluderer interrupts, subrutiner til ADSP2181 og Codec et AD1847. Se bilag side 193. Var.dsp Dette modul bruges til variabelerklæringer i forbindelse med programmer, der skal køre på EZ-Kit Lite. Variable tilknyttet 1847 codec' et. Initialisering af kommandobuffer til initiering af 1847 codec, samt af transmitbuffer til samme. Se bilag side 199. Const.kon Denne fil indeholder programskallens konstanter. Se bilag side
93 7 Accepttest 7.1 Opstilling tests Opstilling 1 Test af RS232, kasamikoder & differential forkoder Testopstilling: RS232 UART Kasami koder Differential forkoder PC Figur 100. Måleopstilling ved test af kasami koder & differental forkoder Scope_output Bemærkning: I denne test bruges interrupt trykknappen på EZ-kittet til at styre sendehastigheden. IO test printet har det samme hardware diagram som IO modulet i projektet. BPSK og Swith ens tilstand er vist på IO test printet med LED. Sende softwaren sender LSB først. Kasamikoderne er beskrevet i kravspecifikationen nr. 1.1 side 6. RS232 opsætningen er som beskrevet i kravspecifikation nr. 5 side 7. Forudsætninger: Til transmission af data benyttes en computer forbundet til EZ-Kit Lite via et RS232 link. Til RS232 kommunikation fra computer, benyttes Microsoft Hyper Terminal. Disse tre blokke testes sammen, da der er tale om kode der afvikles på EZ-Kit Lite. En forudbestemt pakke sendes fra computeren, der samles op på udgangen af blokken og sammenholdes med det forventede resultat. Pakken der sendes er bogstavet A. Opsamlingen foregår ved at modificere koden således at interrupt ikke styres af den lokale frekvens, men ved at trykke på knappen, der er monteret på EZ-Kittet. Ved på denne måde at steppe gennem programmet vil en sekvens fremkomme på de på printet monterede dioder, der indikerer signalet til BPSK modulet. Dette signal er identisk med det differentielt forkodede data. 92
94 Test nr 1. Startbetingelser: Systemet tilsluttet forsyning. Programmet indlæst i EZ-Kit Lite. Testudførelse: Transceiverens adresse (ID) på dipswitch sættes til 10. Modtageradressen på dipswitch sættes til 00. Fra computeren sendes et A. Forventet pakke der afsendes: Sender adr. Handshaking Sendt karakter MSB LSB Forventet resultat: Udgangspunkt Rå data til BPSK Færdig Differentielt afkodet Kasami afkodet LSB MSB Godkendt: Ja [ ] Nej [ ] 93
95 Test nr. 2. Startbetingelser: Systemet tilsluttet forsyning. Programmet indlæst i EZ-Kit Lite. Testudførelse: Transceiverens adresse (ID) på dipswitch sættes til 10. Modtageradressen på dipswitch sættes til 01. Fra computeren sendes et A. Forventet pakke der afsendes: Sender adr. Handshaking Sendt karakter MSB LSB Forventet resultat: Udgangspunkt Rå data til BPSK Færdig Differential afkodet Kasami afkodet LSB MSB Godkendt: Ja [ ] Nej [ ] 94
96 Test nr. 3. Startbetingelser: Systemet tilsluttet forsyning. Programmet indlæst i EZ-Kit Lite. Testudførelse: Transceiverens adresse (ID) på dipswitch sættes til 10. Modtageradressen på dipswitch sættes til 10. Fra computeren sendes et A. Forventet pakke der afsendes: Sender adr. Handshaking Sendt karakter MSB LSB Forventet resultat: Udgangspunkt Rå data til BPSK Færdig Differential afkodet Kasami afkodet LSB MSB Godkendt: Ja [ ] Nej [ ] 95
97 Test nr. 4. Startbetingelser: Systemet tilsluttet forsyning. Programmet indlæst i EZ-Kit Lite. Testudførelse: Transceiverens adresse (ID) på dipswitch sættes til 10. Modtageradressen på dipswitch sættes til 11. Fra computeren sendes et A. Forventet pakke der afsendes: Sender adr. Handshaking Sendt karakter MSB LSB Forventet resultat: Udgangspunkt Rå data til BPSK Færdig Differential afkodet Kasami afkodet LSB MSB Godkendt: Ja [ ] Nej [ ] 96
98 Test nr. 5. Startbetingelser: Systemet tilsluttet forsyning. Programmet indlæst i EZ-Kit Lite. Testudførelse: Transceiverens adresse (ID) på dipswitch sættes til 00. Modtageradressen på dipswitch sættes til 00. Fra computeren sendes et t. Forventet pakke der afsendes: Sender adr. Handshaking Sendt karakter MSB LSB Forventet resultat: Udgangspunkt Rå data til BPSK Færdig Differential afkodet Kasami afkodet LSB MSB Godkendt: Ja [ ] Nej [ ] 97
99 Test nr. 6. Startbetingelser: Systemet tilsluttet forsyning. Programmet indlæst i EZ-Kit Lite. Testudførelse: Transceiverens adresse (ID) på dipswitch sættes til 00. Modtageradressen på dipswitch sættes til 01. Fra computeren sendes et t. Forventet pakke der afsendes: Sender adr. Handshaking Sendt karakter MSB LSB Forventet resultat: Udgangspunkt Rå data til BPSK Færdig Differential afkodet Kasami afkodet LSB MSB Godkendt: Ja [ ] Nej [ ] 98
100 Test nr. 7. Startbetingelser: Systemet tilsluttet forsyning. Programmet indlæst i EZ-Kit Lite. Testudførelse: Transceiverens adresse (ID) på dipswitch sættes til 00. Modtageradressen på dipswitch sættes til 10. Fra computeren sendes et t. Forventet pakke der afsendes: Sender adr. Handshaking Sendt karakter MSB LSB Forventet resultat: Udgangspunkt Rå data til BPSK Færdig Differential afkodet Kasami afkodet LSB MSB Godkendt: Ja [ ] Nej [ ] 99
101 Test nr. 8. Startbetingelser: Systemet tilsluttet forsyning. Programmet indlæst i EZ-Kit Lite. Testudførelse: Transceiverens adresse (ID) på dipswitch sættes til 00. Modtageradressen på dipswitch sættes til 11. Fra computeren sendes et t. Forventet pakke der afsendes: Sender adr. Handshaking Sendt karakter MSB LSB Forventet resultat: Udgangspunkt Rå data til BPSK Færdig Differential afkodet Kasami afkodet LSB MSB Godkendt: Ja [ ] Nej [ ] 100
102 7.1.2 Opstilling 2 Test af BPSK Testopstilling: 1 Megahertz Signalgenerator BPSK 1 Megahertz Kanal 2 Kanal 1 Signalgenerator Scope Figur 101. Måleopstilling ved kontrol af BPSK Startbetingelser: Systemet tilsluttet forsyning. Ved at tilslutte et digitalt scope og indstille det til at trigge på kanal 1 der tilsluttes indgangs signalet opnår man en bedre visuel inspicering af resultatet, da output vil stå klart under input. Testudførelse: Test nr. Udført handling: Forventet resultat: 9. Systemet påtrykkes et digitalt signal der har grænserne 0V=0 og 5V=1, der kan skiftes manuelt. En fasedrejning på 180 grader på udgangssignalet for hver gang inputet skifter fra tilstand til tilstand. Godkendt: Ja [ ] Nej [ ] 101
103 7.1.3 Opstilling 3 IQ modulator Hardware del Testopstilling: 1 MHz X 2 MHz + DC BPSK output fra sender modul 1 MHz 90 LO 1 MHz 1 MHz X 2 MHz + DC Scope Startbetingelser: Systemet tilsluttet forsyning. En pakke sendes fra computer1 og gennemgår sendefladen, hvor den bliver ført fra udgangen af BPSK modulet til indgangen på IQ modulatoren. Da sendefalden er testet, kan denne i godkendt stand med rette benyttes som indgangs signal på modtageren. Her trækkes signalet fra udgangen af BPSK delen på sendefladen og kobles til efter downconverteren på modtagerfladen. Ved at benytte to individuelle, men ens print opnår vi to systemer med af hinanden uafhængige clock signaler. Testudførelse: Test nr. Udført handling: Forventet resultat: Godkendt 10. Systemet påtrykkes en pakke fra den tilsluttede senderdel. Et 2 MHz signal, med en offset ændrings frekvens på 5512,5 Hz på 11. Systemet påtrykkes en pakke fra den tilsluttede senderdel. kanal1. Et 2 MHz signal, med en offset ændrings frekvens på 5512,5 Hz på kanal2. Godkendt: Ja [ ] Nej [ ] 102
104 7.1.4 Opstilling 4 IQ modulator Software del Testopstilling: BPSK output fra sender modul LO X 90 LPF Z -1 X S Sliding correlator Pakke oversætter X LPF Z -1 X PC Det nu testede hardware sluttes til EZ-Kit Lite. Anden halvdel af IQ demodulatoren består af kode, hvilket også er tilfældet for resten af systemet. Derfor testes resten af koden under én blok, ved at inspicere pakken modtaget på computeren. Startbetingelser: Systemet tilsluttet forsyning. Programmet indlæst i EZ-Kit Lite. En pakke sendes fra en computer og gennemgår sendefladen, hvor den bliver ført fra udgangen af BPSK modulet til indgangen på IQ modulatoren. Testudførelse: Test nr. Udført handling: Forventet resultat: 12. Signalet gennemgår her modtagefladen og sendes til modtagecomputeren. En pakke der svarer til den sendte. Detaljer verificeres ved inspektion af kode. Godkendt: Ja [ ] Nej [ ] Bemærkning: Det ønskede resultat forekommer periodisk. 103
105 7.1.5 Opstilling 4 Bit Error Rate (BER) Testopstilling: Kort1 Kort2 PC Atinuator PC2 DIP 04 DIP 04 Startbetingelser: Alle delpunkter under test opstilling 1,2,3 og 4 er godkendt og virker. Delpunkterne 7.2.2, 7.2.3, og er godkendte og virker. To kort forbindes via en attenuator der simulerer et eventuelt tab i luften. Testudførelse: Test nr. Udført handling: Forventet resultat: 13. Fra computer1 sendes 2*10 4 pakker. Mellem 2* og 2*10 4 pakker modtaget. Godkendt: Ja [ ] Nej [ ] 7.2 Særtilfælde og fejltilstande Default tilstand Kortene skal som default stå til at modtage, dvs. de skal lytte i det tilfælde de ikke sender. Dette kontrolleres ved at inspicere koden. Godkendt: Ja [ ] Nej [ ] Datakommunikation Data kommunikation fra computer skal foregå med RS232 link, med 300 baud, 1 stopbit, 1 startbit og ingen paritet. Dette dokumenteres ved at starte Microsoft Hyper Terminal med disse indstillinger og verificere rigtigheden af en modtagen pakke. Godkendt: Ja [ ] Nej [ ] Datahastighed Kommunikationen skal foregå envejs med en hastighed på 300 bit/s Dette testes sammen med HWdelen af IQdemodulatoren ved at inspicere T der skal være 1/5430 s som minimum. Godkendt: Ja [ ] Nej [ ] 104
106 7.2.4 Pakkeformat Pakkeformatet transceiverne imellem er fastsat til: Adresse (2 bit) + DTE-R(1 bit) + RTS (1 bit) + TxD (8 bit), i alt 12 bit. Dette verificeres ved inspektion af koden, men er også implicit i funktionaliteten af det samlede produkt. Godkendt: Ja [ ] Nej [ ] Adresser DIP switch af typen DS-04 på transceiveren angiver hvilken adresse transceiveren har. DIP switch af typen DS-04 på transceiveren angiver hvilken adresse transceiveren sender til. Dette verificeres ved inspektion af koden, men er også implicit i funktionaliteten af det samlede produkt. Godkendt: Ja [ ] Nej [ ] Adresse konflikt En rød lysdiode af typen Farnell TLHR4405 angiver hvis transceiveren er opsat til at sende til sig selv. De ovenfor angivne DIP switche sættes til samme adresse og den røde diode skal tænde. Godkendt: Ja [ ] Nej [ ] Sende konflikt En rød lysdiode af typen Farnell TLHR4405 angiver om der modtages pakker fra andre kort end den der på DIP switchen er valgt at modtage fra. Kort1 sætes til at sende til kort2, kort2 sættes til at modtage fra kort3. Herefter sendes en pakke fra kort1 og dioden skal tænde. Godkendt: Ja [ ] Nej [ ] Bemærkning: Er ikke testet Indkommende transmission En grøn lysdiode af typen Farnell TLHG4405 angiver når transceiveren modtager, ved at lyse. Kort1 sættes til at sende til kort2, kort2 sættes til at modtage fra kort1. En pakke sendes fra kort1 og dioden til indkommende transmission på kort2 lyser. Godkendt: Ja [ ] Nej [ ] 105
107 7.2.9 Udgående transmission En gul lysdiode af typen Farnell TLHRY4405 angiver når transceiveren sender ved at lyse. Kort1 sættes til at sende til kort2. En pakke sendes fra kort1 og dioden til udgående transmission på kort1 lyser. Godkendt: Ja [ ] Nej [ ] Temperatur stabilitet Udstyret fungerer optimalt ved stuetemperatur (15-35 grader) og det er i dette interval accepttest udføres. Alle test er udført alene ved en stuetemperatur på 20 grader, hvilket er forholdene på IHA. Her skal udstyret virke efter de i kravspecifikationen anførte punkter. Godkendt: Ja [ ] Nej [ ] Bemærkning: Er ikke testet. 106
108 Modtager og afsender adresse DIP switch, samt dioder Testopstilling: Kort1 Kort2 PC PC2 DIP 04 DIP 04 Kort3 PC DIP 04 En DIP switch af typen DS-04 angiver hvilken adresse kortet, den er monteret på, skal have, samt at angive hvilken adresse kortet, den er monteret på, skal sende til. Funktionen af denne switch er essentiel for funktionaliteten af kortet, der ikke virker ellers. Startbetingelser: På kort1 sættes DIP switch til På kort2 sættes DIP switch til På kort3 sættes DIP switch til Testudførelse Test nr. Udført handling: Forventet resultat: Godkendt 14. En pakke med indholdet sendes fra computer1. En pakke modtaget på kort2 med indholdet Gul sende diode på kort1 lyser. 15. En pakke med indholdet sendes fra computer1. En pakke med indholdet sendes fra computer3. Grøn modtage diode på kort2 lyser. En pakke modtages på kort2 med indholdet Gul sende diode på kort1 lyser. Grøn modtage diode på kort2 lyser. Rød diode på kort2 indikerer at der modtages fra en sender der ikke er opsat til at modtage fra. Rød diode advarer om adresse konflikt på kort3. Godkendt: Ja [ ] Nej [ ] Bemærkning: Er ikke testet. 107
109 8 Bilag 8.1 Projektoplæg 108
110 109
111 110
112 111
113 112
114 113
115 114
116 115
117 8.2 Tests Tilpasning af filter Formål Ifølge den note der er blevet fuldt for dette krystal filter, skal C32 justeres for at kompensere for komponent tolerancer. Ved at ændre på C32 kan knækfrekvensen styres og dermed optimere signal støjforholdet. Udstyr Scop: Agilent storage scope 5421A ( ) Vector network analyser: Rohde & Schwarz ZVB 8 (lokale 610) Strømforsyning: Hameg spændingsforsyning HM 8040 (1-B2-75) Opstiling +5Vdc Strømforsyning Print J35 Scop GND Figur 102. Opstilling til verifikation af firkant signal Strømforsyning +5Vdc GND Print R38 afmonteret J33 J32 Vector network analyser Figur 103. Opstilling for filteranalysen Diagram Krystal Lavpas filter Vcc+ Krav til Opamp: 1MHz Udgangs impedans >0,1ohm Vcc+ 1 U31 Oscillator NC GND VCC Out IQXO-350-oscillator V firkant GND R38 J34 CON1 0 R39 0 R31 10k C p C p C31 150p Y31 1MHz C33 470p R32 10k U32A ca. 0-0,5V sinus out - R33 10k LMV822 R35 R34 0 Not mountet 1 C39 10n 1 J35 CON1 Out-Frekv ensgenerator J33 1 GND GND GND GND 2 BNC J32 1 GND 2 BNC Vcc+ Vcc- Vcc+ C34 100n GND GND GND 116
118 Fremgangsmåde 1. Verificere at U31 afsender et firkantsignal, målt fra test punkt J Måle sinus signalet på test punkt J Ændre C32 og Mål igen (spring til punkt 2) Figur 104. Scop print af den målte firkant Resultat Komponent værdi for C32 [F] Peak peak udgangsspænding [V] 44pF 0,16V 47pF 0,20V 57pF 0,38V 62pF 0,57V 66pF 0,66V 67pF 0,60V 68pF 0,66V 69pF 0,65V På baggrund af disse målinger og komponenter der er adgang til, er C32 valgt til 47pF + 22pF variabel kapasitor. Da der skal tages højde for komponenttolerancer. Dæmping i filteret: DdB 0,66 = 20 log = 18,7dB 5,35 + 0,34 117
119 Amplitude karakteristik af filteret: Figur 105. Filteranalyse mellem J33 og J32 med R38 afmonteret 118
120 8.2.2 Oscillator ustabilitet og kompensering Fejl Under drift blev det konstateret at crystaloscillatoren, der generer firkantsignalet, som senere bliver filtreret til en sinus, var ustabil. Figur 106. Ustabil firkant signal Løsning Der blev tilføjet en logikbuffer (NAND gate), der modtager signalet digitalt, og levere det videre digitalt. Denne kreds udgangsspændinger er 0V eller 5V. Dette er ikke afhængigt af indgangsspændingerne, så længe det opfylder CMOS signal standarden. Figur 107. Efter (kanal 1) og før (kanal 2) logik bufferen. 119
121 Diagram Krystal Lavpas filter Vcc+ Krav til Opamp: 1MHz Udgangs impedans >0,1ohm Vcc+ 1 U31 Oscillator NC GND VCC Out IQXO-350-oscillator 1 J34 CON1 GND 1 2 U33A 74HC V firkant 1 R38 0 J36 CON1 R39 0 R31 10k C pF C pF C31 150p Y31 1MHz C33 470p R32 10k R33 10k U32A out - LMH6658MA R35 R34 0 Not mounted 1 C39 10n J35 CON1 Out-Frekv ensgenerator GND GND GND GND J J32 1 BNC GND 2 BNC Vcc+ Vcc- GND Vcc+ C34 100n GND GND Figur 108. Diagram af firkantsignalgeneratoren med buffer (NAND gate) Sinus udgang For at kompensere for tolerancer er der blevet tilføjet en variabel kodensator til at justere cutoff frekvensen. Den maksimale sinus amplitude for en firkantgenerator med logik buffer: 630mV Vout () t sin ( 2π 1MHz t) + 2,5V 2 Figur 109. Udgangssignal 120
122 8.2.3 Mixer Formål Denne test har til formål, at finde det bedste spændingsområde for ADE-6 mixeren at arbejde i. Dette gøres fordi der ikke er beskrevet hvorledes mixerens ulineariteter påvirker indgangsspændingen i databladet. Spændingen vælges udfra linearitet i arbejdsområdet og udgangssignalets sinusform. Udstyr Tal i parentes er placering. Scop Agilent storage scope 5421A ( ) Scop Hameg 20MHz Oscilloscope HM (1-B2-72) Funktionsgenerator Hameg function generator HM (1-B2-14) Funktionsgenerator Philips PM5139 (1-5-10) Opstilling 1-B2-14 Generator 1-B2-72 Scop Ch. 1 Ind Ind Generator Ind Ind ADE-6 Ud Ud Ch. 1 Scop Ch. 2 Ind Figur 110. Oversigt over opstilling Diagram Hameg Funktionsgenerator (1-B2-14) ADE-6 Frekv ensmixer + belastningsmodstand Agilent Oscilloscop ( ) Vac 50 LO Ind LO LO Ben 6 GND Ben 1,4,5 GND IF Ben 2 Ud IF IF Philips Funktionsgenerator (1-5-10) RF 50 Vac Ind RF RF Ben 3 50 GND 1M GND GND Figur 111. Diagram med impedanser 121
123 Fremgangsmåde og resultater Frekvensen på LO og RF holdes konstant på 1 MHz, da dette er frekvensen, mixerne arbejder ved, i transceiveren. Generatorerne indstilles så biasspændingen svinger omkring 0V og sinusspændingen varieres så begge har samme amplitude. Spændingerne varieres mellem 200mV og 1,5V. Ved forskellige værdier giver det følgende scopbilleder: Figur 112. Indgangsspænding LO og RF: 0,2Vpp Figur 113. Indgangsspænding LO og RF: 1,0Vpp Figur 114. Indgangsspænding LO og RF: 0,5Vpp Figur 115. Indgangsspænding LO og RF: 1,5Vpp Figur 116. Indgangsspænding LO og RF: 0,75Vpp Billederne er taget med Agilent scopet, hvor kanal 1 er spændingen fra IF og kanal 2 er RF spændingen. Indgangsspændingen er ved alle målinger indstillet til 1 MHz, men den lille frekvensforskel i generatorerne gør at det er muligt at se virkningen på udgangen, der blandt andet viser faseforskellen, som er mixerens formål. Dette viser dermed også at funktionaliteten af den virker, men ideelt burde udgangssignalet have været mere sinusformet. Resultatet når to forholdsvis ens sinussignaler multipliceres giver netop den dobbelte frekvens og et dc offset og er det der ses på billederne. 122
124 Det udgangssignal der bedst lever op til de ønskede egenskaber er ved en indgangsspænding på 0,5Vpp, da det primært ikke belaster mixeren i det ulineære område og derved ikke ændrer sinusen på indgangen meget. Sekundært, er udgangsspændingen det signal der tilnærmelsesvist ligner en sinus mest. Der er på baggrund af ovenstående blevet valgt en indgangsspænding på 0,5V, da mixeren ved denne indgangsspændingen virker mest optimal til det den skal anvendes til i denne applikation Fasedrejningsfilter Formål Denne test er blevet udført for, at teste fasedrejningen som sker vha. et 2. ordens lavpasfilter og evt. finjustere denne. Desuden skal det testes om forstærkningen, der skal kompensere for dæmpningen i filteret er korrekt. Udstyr Tal i parentes angiver placering af udstyret Scop Agilent storage scope 5421A ( ) Funktionsgenerator Hameg funktionsgenerator HM (1-B2-14) Forsyning Hameg spændingsforsyning HM 8040 (1-B2-75) Opstilling Agilent storage scope Frekvensgenerator Spændingsforsyning Kanal 2 Kanal 1 Output = 1MHz 0V +5V 1MHz 0V +5V 1MHz Fasedrejningsfilter IN OUT 1MHz +fasedrejning Figur 117. Måleopstilling 123
125 Filter design I Figur 118. Diagram over filterfigur 118. ses et diagram over filteret designet i filterlab, hvor der i det testede filter er blevet tilføjet en forstærkning som det ses i Figur 119. Figur 118. Diagram over filter Diagram C p fase ind R C p C R C p U60B 5 + out LMH6658MA R64 24k fase ud R63 10k GND GND Figur 119. Diagram af det testede filter Fremgangsmåde På indgangen af filteret påtrykkes et 1MHz signal på 0,5V pp med et biasniveau på 2,5V, hvorved signalet svinger mellem 2,25-2,75V. Forsyningsspændingen er 0V-5V. Der måles på ind- og udgangen af filteret. Komponentværdierne i Figur 119 er værdierne fra det implementerede filter, hvor kondensaterne C61.x er blevet ændret for, at trimme filterets fasedrejning på plads.figur 119 Forventet resultat Ideelt set forventes det, at det beregnede filter faseforskyder outputsignalet -90 i forhold inputsignalet, og at outputsignalet ikke bliver dæmpet væsentligt, i og med at signalet forstærkes 3dB, som svarer til den forventede dæmpning gennem filteret. Resultat Det viste sig ved testen at filteret ikke helt giver en fasedrejning på 90, hvorfor der er blevet foretaget små ændringer. I stedet for at anvende en 100pF kondensator til C61 er der blevet anvendt en parallel kobling af 2 stk. 47pF og en 33pF kondensatore, hvorved en samlet kapacitet på 127pF opnås. Herved fås resultatet som ses i Figur
126 8.2.5 Forstærker før EZ-Kit Lite Formål Der skal i denne test undersøges om den designede forstærker leverer det ønskede output på 2,8V pp ved et input på 160mV pp, som jf. testen af mixerne er den maksimale spænding på indgangen af forstærkeren før EZ-Kittet. Udstyr Tal i parentes angiver placering Scop Agilent storage scope 5421A ( ) Funktionsgenerator Philips PM5139 (1-5-10) Forsyning Hameg spændingsforsyning HM 8040 (1-B2-75) Måleopstilling Agilent storage scope Frekvensgenerator Spændingsforsyning Kanal 2 Kanal 1 Output = 1MHz 0V +5V 1MHz 0V +5V 1MHz Print IN OUT IQ Figur 120. Måleopstilling for forstærker før EZ-Kit Lite Fremgangsmåde Der påtrykkes et 2MHz 160mV pp på indgangen af forstærkeren på Figur 121. C51 og R54 udgør et højpasfilter der har en cutoff frekvens ved 600Hz som er 1 dekade under signalfrekvensen. R53 og R54 udgør en spændingsdeling som anvendes til, at tilføre et offset. R58 og R57 udgør forstærkningen. 125
127 Vcc+ J53 CON1 C51 150n R53 68k R54 2k GND U50A 3 + out LMH6658MA R57 2k R58 33k 1 Out1-IQ GND Figur 121. Diagram over forstærkeren før EZ-kittet Forventet resultat Det forventes at der på udgangen af filteret kommer et signal på 2,8V pp med et offset på 2,5V. Dvs. signalet ligger mellem 1,1V og 3,9V, hvilket burde være muligt idet forsyningen er 0 og 5V. Resultat Det ses af testen, at der ved et input på 160mV pp er et output på 2,97V, svarende til en forstærkning på 18,5 gange. Desuden er maks. spændingen på udgangen 3,94V. Figur 122. Input og output af forstærkeren 126
128 8.2.6 Mixerforstærker Formål Formålet med denne test er at verificerer og tilpasse beregningerne så forstærkeren får de ønskede egenskaber. Den skal kunne forstærke et sinussignal på 0,2Vpp til 2,4Vpp, samtidig med at udgangen belastes med de to mixerer ved indgangen af IQ demodulator. De har hver en indgangsimpedans på 50 ohm og sammen giver det en samlet belastning på 25 ohm. I stedet for mixerne erstattes disse af en modstand i testen. Udstyr Tal i parentes er placering. Scop Agilent storage scope 5421A ( ) Strømforsyning Hameg spændingsforsyning HM 8040 (1-B2-35) Funktionsgenerator Philips PM5139 (1-5-10) Voltmeter Hameg multimeter HM (1-B2-36) Opstilling 1-B2-35 Strømforsyning 1-B2-36 Voltmeter +5Vdc +5Vdc GND GND Forsyning Generator Ind Print Ind Ud Ud Ch. 1 Scop Ch. 2 Ind Figur 123. Oversigt over testopstilling Diagram Vcc+ R512 39,0k J50 CON1 Ind C13 1n 0 R513 2,00k U60A 3 + out 2 - LMH6658MA R51 10,0k R52 110k 1 1 C53 100n 0 25 Ud 0 Figur 124. Endelig diagram som testen er grundlaget for 127
129 Fremgangsmåde og resultater For at teste forstærkeren blev generatoren indstillet til 0,2Vpp uden et bias offset, ved frekvensen 1 MHz. Modstandsværdierne er grundlæggende som i diagrammet, men modstanden R512 var oprindeligt beregnet til 46kΩ 25. Resultatet af den første test var at sinuskurven blev flad i bunden som det ses på Figur 125. Figur 125. R512 = 47 kohm, R513 = 2,0 kohm, belastning 25 ohm. Kanal 1 er det forstærkede signal. Kanal 2 er indgangssignalet fra funktionsgenerator Dette skyldes at spændingsudsvinget med bias på 2,5 volt var for tæt på den negative forsyning og udgangen gik i mætning. Løsningen på problemet var at hæve biasspændingen fra 0,208V til 0,244V inden operationsforstærkeren. Dette blev gjort ved at ændre modstanden R512, fra 47kΩ til 39kΩ. Dette giver følgende resultat: Figur 126. R512 = 39 kohm, R513 = 2,0 kohm, belastning 25 ohm. Kanal 1 er det forstærkede signal. Kanal 2 er indgangssignalet fra funktionsgenerator Forstærkeren giver nu en forstærkning på: 2, 4V ( ) pp G = = 12,2gg GdB = 20 log 12,2gg = 21,7dB 0,197Vpp Med små finjusteringer af komponentværdier gennem testen er udgangsspænding af forstærkeren på 2,4V som ønsket. Denne løsning med at forstærke signalet til 2,4V er senere blevet skrottet, da det ved test af mixerne viste sig, at en anden indgangsspænding var mere optimal, jf. test af mixer. Indgangssignalet er derefter valgt til 0,5V pp. 25 Modstanden var udregnet til 46kΩ, men blev valgt til 47kΩ efter E24 rækken. 128
130 8.2.7 Test af mixerer med preforstærker og fasedrejningsfilter Formål Denne test udføres for, at undersøge om det er det ønskede signal der kommer ud af mixerne. Det skal testes om signalet på udgangen af mixerne har den rigtige frekvens og hvilken amplitude de har. Udstyr Tal i parentes er placering. Scop Agilent storage scope 5421A ( ) Forsyning Hameg spændingsforsyning HM 8040 (2-B2-74) Funktionsgenerator Hameg funktionsgenerator HM (2-B2-76) Voltmeter Hameg multimeter HM (2-B2-85) Opstilling 2-B B2-85 Strømforsyning Voltmeter +5Vdc +5Vdc GND GND 2-B2-76 Forsyning Generator Ind Ind Print Ud 1 Ud 2 Ud Ch. 1 Ch. 2 Scop Figur 127. Oversigt over testopstilling 129
131 Diagram R517 Ud RF 2 IF GND 1 U51 ADE6 GND 0 R LO Vcc+ 6 C54 Ind C13 1n 0 R512 39k R513 10k U60A 3 + out 2 - R51 20,0k GND LMH6658MA R52 30k 1 C53 47n 1 MHz Fra LO 90f asef orsky delse fase ind 90f asef orsky delse LO 6 47n Vcc+ Vcc- fase ud U52 ADE6 C55 47n Vcc+ GND R R R516 3 RF 2 IF 1 GND GND 0 R Ud 2 Figur 128. Oversigtsdiagram over modulet der er blevet testet 51 Fremgangsmåde og resultater Signalet på 1MHz 500mV PP fra lokal oscillatoren sendes gennem fasedrejningsfilteret og ind på mixerens LO-indgang. På RF delen påtrykkes, vha. en ekstern funktionsgenerator, et 1MHz signal 200mV PP, som gennem en operationsforstærker af typen LM6658 bliver forstærket 2,5 gange til 500 mv PP. Dette signal sendes ind på mixerens RF-indgang. Herefter måles på IF på mixeren, hvilket gav et resultat som ses i Figur 129. Figur 129. Billede af udgangen på mixeren Som det fremgår af scopbillederne, måles der på udgangen af mixeren som forventet et 2MHz signal med et DC offset. Det totale udsving af signalet er 160mV PP, som er det signal der arbejdes videre med i systemet. Derfor skal signalet forstærkes inden EZ-Kittet for at kunne udnytte AD konverterens fulde område på 2,8V PP. Niveauforskellen der ses på de to scopbilleder herover, tilskrives at de to signaler fra hhv. LO og frekvensgeneratoren ikke har præcis samme frekvens. Dette ikke skulle blive et problem i det endelige produkt, da LO på sender og modtager er lavet til at sende et signal med samme frekvens. 130
132 8.2.8 Mixerforstærker med 6,44mVpp indgangsspænding Formål Formålet er at teste om mixerforstærkeren kan forstærke 6,44mVpp, som er spændingen fra switchen, op til 0,5Vpp som er den spændingen mixerne drives ved. I stedet for mixerne erstattes disse af en modstand på 50 ohm i testen. Udstyr Tal i parentes er placering. Scop Agilent storage scope 5421A ( ) Strømforsyning Hameg spændingsforsyning HM 8040 (1-B2-75) Funktionsgenerator Philips PM5139 (1-5-10) Voltmeter Hameg multimeter HM (1-B2-76) Opstilling 2-B B2-85 Strømforsyning Voltmeter +5Vdc +5Vdc GND GND 2-B2-76 Forsyning Generator Ind Ind Print Ud 1 Ud 2 Ud Ch. 1 Ch. 2 Scop Figur 130. Oversigt over testopstilling Diagram Vcc+ R k J50 CON1 Ind C13 1,5n 0 R513 1k U60A 3 + out 2 - LMH6658MA R51 1k R52 75k 1 1 C53 47n 0 50 Ud 0 Figur 131. Diagram over testprint 131
133 Fremgangsmåde og resultater For at teste forstærkeren blev generatoren indstillet til 0,006Vpp uden et bias offset, ved frekvensen 1 MHz. Modstandsværdierne er som i diagrammet. Figur 132. Kanal 2 er indgang. Kanal 1 er udgang Scopet blev indstillet som vist på Figur 132. Det viser indgangsspændingen på kanal 2. Det er en sinusspænding på 6mVpp der leveres af funktionsgeneratoren. På udgangen er der meget støj og kun en spænding på 119mVpp. Der forventedes der at ligge en spænding på 500mVpp. Derefter måltes udgangsspændingen alene. Figur 133. Udgange uden indgangsspænding. Scopbilledet der vises på Figur 133. viser at udgangssignalet ikke har ændret sig. Forstærkningen virker ikke efter hensigten. Figur 134. viser forsyningsspændingen der er overlejret med et støjsignal på op til 80mVpp. Figur V forsyningsspænding ved + benet på operationsforstærkeren Konklusion Forsyningen til operationsforstærkeren er afkoblet, men alligevel støjer dele af systemet så meget at der ikke er muligt at lave forstærkning under disse omstændigheder. 132
134 8.2.9 Osciallatorens ustabilitet Den valgte 1MHz oscillator, IQXO-350, viste sig under projektets forløb, at være ustabil over længere tid. Dette medførte at den 1. harmoniskes amplitude ændrer sig, og gjorde den utilregnlig. Figur 135. Figur 136. Figur 137. Figur 138. I forsøg på at blive uafhængig af denne ændring, blev der monteret en logikbuffer i form af en CMOS 74HC00 NAND-gate. Da et CMOS signal står højt efter at have været over 3,7V, skal den under 2,5V for at blive lavt igen 26. Dermed vil udgang fra bufferen skifte mellem 0 og 5V se Figur 139. Figur 139. Med 50% dutycycle Figur 140. Med 90% dutycycle 26 Se 133
135 Desværre blev der det konstateret at oscillatoren fortsatte med at ændre sig. Mellem systemtest 1 og systemtest 2 faldt den kontinuerlig aktive spænding til under 2,5V, og medførte at bufferens udgangssignals dutycycle steg til 90% hvilket er ubrugligt se Figur 140. Konklusion Dette oscillatormodul har gennem projektet forvoldt store problemer, fordi de andre moduler er afhængige af dens udgangssignal. 134
136 8.3 Modultest hardware Oscillator Se diagram i Oscilator implementering Figur 70 side 62. Instrumenter Agilent storage scope Hameg frekvens generator 1-B2-14 Hameg spændingsforsyning 1-B2-75 Opstilling Strømforsyning +5Vdc Print J35 Scop 1MO GND Figur 141. Testopstilling Forventet resultat Et rent sinussignal med en amplitude på 0,6Vpp og et offset på 2,5V Resultat på oscilloskop Figur 142. Resultat fra udgangen af oscillator 135
137 Effektspektrum af sinus Strømforsyning +5Vdc Print J32 Effekttætheds analysator 50O GND Figur 143. Opstilling med effekttæthedsanalysator -10 Effektspektrum analyse af 1MHz oscilator modul -20 X: 9.986e+005 Y: Effekt [dbm] X: 2.996e+006 Y: X: 5e+006 Y: X: 1.997e+006 Y: Frekvens [Hz] x 10 6 Figur 144. Dette effektspektrum viser kvaliteten af den dannede 1MHz sinus efter operationsforstærkeren Vout pp = Ω = 100mV 1000 Det udregnede passer tydeligvis ikke. Årsagen er uvis, men kunne måske skyldes tab i det anvendte 50Ω coaxialkabel med SMA stik. 136
138 Verifikation af at signalet ikke bliver dæmpet af 50Ω indgangsmodstand. Strømforsyning +5Vdc Print J32 50O Scop 1MO Figur 145. Opstilling til at verificere amplituden ved belastning af 50Ω GND Figur 146. Verifikation af sinus ved 50Ω I Figur 146 ses det at amplituden er uændret ved den samme belastning som effekttæthedsanalysatoren, derved kan der ses bort fra de målte effekter på Figur 144. Figur 144 viser derved kun effektforholdet mellem de afbillede harmoniske frekvenser. Test konklusion Ud fra målingerne kan det ses at de harmoniske er dæmpet, og at 1MHz er så godt som isoleret. 137
139 8.3.2 BPSK Instrumenter Agilent storage scope Hameg spændingsforsyning 1-B2-75 EZ-Kit nr. 17 For diagram se Figur 72 side 64. Opstillingen Agilent storage scope Spændingsforsyning Kanal 1 Kanal 2 0V +5V CMOS J23 0V +5V Print BUS EZ-kit 1MHz J24 Figur 147. Måleopstilling Fremgangsmåde 1. Download sendertestsoftware til EZ-Kit Lite. 2. Etabler forbindelse via Hyperterminal til EZ-Kit Lite, 300 baud, 8 databit, 1 stopbit 3. Via Hyperterminal sende A 4. Via scop, opsamles chipmønsteret. Forventet resultat Det forventede chipmønster kan ses i sendersoftware modultest afsnit side 149. Uddrag fra testtabellen: Udgangspunkt Rå data fra BPSK Tabel 9. Uddrag fra sendersoftware modultest tabel Forventet tid imellem hver chip: Samplingsfrekvens = 22,05kHz Oversampling = 4 Oversampling T chip = = 181µs Samplingsfrekvens 6 T = 6 181µs = 1,088ms chip 138
140 Diagram for resultat 1 Inverter Vcc+ Grundbølge Fs-In-BPSK Spændingsdeler R21 0 GND R210 10k R29 10k R23 10k U20A out - LMH6658MA R24 10k J21 CON1 1 GND 1 2 Switch U21 Switch NO GND In V+ 6 5 J23 CON1 1 Vcc+ In-BPSK 3 NC Com 4 1 TS5A3159 R22 Not mountet Vcc+ J22 CON1 Krav til Opamp: Udgangs impedans >0,1ohm Vcc+ Vcc- C20 100n GND Vcc+ C21 100n GND GND C22 10n GND R25 16k R26 10k U20B out - LMH6658MA R28 1MHz J24 1 CON1 Out-BPSK R27 10k 3.3k GND Resultat 1 Figur 148. Kanal 1 er her tilsluttet J22, Kanal 2 tilsluttet J24, switch er aktiveret Efter længere tid var fejlen stadig ikke fundet, og der blev forsøgt med en anden type switch. Se resultat
141 Diagram for resultat 2 Inverter Vcc+ Grundbølge Fs-In-BPSK Spændingsdeler GND R210 10k R29 10k U20A out - LMH6658MA J21 CON1 Switch J23 CON1 R21 0 R23 10k J22 CON1 1 R24 10k 1 Switch_out U22A 1 2 IN/OUT OUT/IN 54HC4066 U22B OUT/IN IN/OUT VDD CTRL VDD CTRL Vcc+ U33B Vcc In-BPSK Vcc+ Vcc- C20 100n GND C21 100n R22 Not mountet C23 100n GND Switch_out Vcc+ GND C22 10n Vcc+ GND R25 91k R26 10k R27 10k 54HC4066 U20B out - LMH6658MA R28 39k J24 1 CON1 74HC00 Udgangs impedans 50ohm R211 Out-BPSK 50 Resultat 2 GND Figur 149. Viser +180 fase forskydelse Figur 150. Viser -180 fase forskydelse Figur 151. Viser længden af det første "1" tal i Tabel 9 Figur 152. Viser de efterfølgene 6 stk. "0" i Tabel 9 Bemærk at periodetiden passer med den udregnede. Test konklusion Efter udskiftning af switchen virker modulet. Den offset forskel der ses, forventes at komme fra den inverterende forstærker. Dette offset her imidlertidig ikke nogen betydning, da signalinformationen ligger i faseskiftet. 140
142 8.3.3 Switch Udstyr Agilent storage scope ( ) Hameg spændingsforsyning (1-B2-75) Philips PM5139 Funktionsgenerator (1-5-10) Opstilling Hameg Strømforsyning 5V PM5139 Funktionsgenerator 1MHz Styring Print BPSK (ben 1) ADE-30 (ben 4) Switch IQ-dem. (ben 3) Probe til signal opsamling Figur 153. Opstilling til test af switch Agilent Storage scope Fremgangsmåde Der blev testet offsetdelen af switch-blokken til at se, at den virkede og opførte sig på en passende måde. Switchen skiftes fra sende- til modtagetilstand når styresignalet skiftes fra 0V til 5V. I første omgang blev der målt på blokken uden modstandene på printet for, at se om offsettet var fjernet. Vcc+ f ra BSPK til IQ- demodulator C12 10n GND R13 10k R14 10k C13 1,5n Vcc+ R R GND U10 Switch NO GND NC TS5A3159 In 6 V+ 5 Com 4 Vcc+ Switch signal dra DSP Vcc+ R11 10k C11 10n R12 10k til/f ra ADE-30 GND Figur 154. Switch diagram GND Et 1MHz signal med et 500mV DC-offset blev sendt ind i ADE-30 indgange, se Figur 153Figur 74. Første blev måling af gennemgang i modtagetilstand udført. Styresignalet blev sat til 0V på ben 6 og signalet målt ved ben 3. Resultat vises i Figur
143 Figur 155. Resultat modtagetilstand (0V CMOS) Bagefter blev styresignalet ændret til 5V på ben 6 og der blev målt det samme sted for at vise switchen havde flyttet til ben 1 så systemet ville stå i sendetilstand. Resultat vises i Figur 156. Figur 156. Resultat - modtagetilstand (5V CMOS) Til sidste blev der målt over BPSK indgang til systemet for at se om switchen står i sendetilstand når der sendes et 5V styresignal ind på ben 6. Resultatet vises i Figur 157. Ud fra testen kunne der konstateres at switchen virker efter formålet. Det viste sig at modstandene skulle indsættes for at give et DC-offset. Figur 157. Resultat - sendetilstand (5V CMOS) 142
144 8.3.4 IQ-demodulator Udstyr Tal i parentes er placering. Scop Agilent storage scope 5421A ( ) Strømforsyning Hameg spændingsforsyning HM 8040 (1-B2-35) Funktionsgenerator Philips PM5139 (1-5-10) Opstilling 2-B B2-85 Strømforsyning Voltmeter +5Vdc +5Vdc GND GND Forsyning Ud 1 Ud Ch. 1 Philips Funktionsgenerator PM5139 Ind Ind Print Ud 2 Figur 158. Oversigt over opstilling Ud Ch. 2 Scop Fremgangsmåde Systemet opstilles som i Figur 158, hvor funktionsgeneratoren indstilles til 1,0000MHz 200mV PP uden DC-offset. Herefter måles der på begge udgange af IQ-demodulatoren, hvor der forventes 2 ens signaler der er faseforskudt -90 med et DC offset. Resultater Figur 159 viser hvordan DC niveauet ændrer sig. Det ses, at spændingen er 1,3V PP. Da det er en sinus kurve ligger DC-niveauet midt mellem de to peaks ved 0,65V. Desuden kan man på billederne se de to udganges indbyrdes faseforskel på 91. Figur 159. På billederne herover ses hvordan DC niveauet ændrer sig I Figur 160 ses til venstre det output der kommer når RF frekvensen er 0,9998MHz, og LO frekvensen er 1,00MHz, hvor det er blevet målt at forskellen mellem de to signaler er 200Hz. Til 143
145 højre ses resultatet når både RF og LO frekvensen er indstillet til 1,00MHz. Dette tydeliggør at indstillingen af lokal oscillatoren er meget vigtigt. Figur 160. Billeder af output med RF signal på hhv. 1,0000MHz og 0,9998MHz IO-Modul Anvendt udstyr Ez-Kit Lite nr. 17 Testprint med lysdioder. Beskrivelse For at afprøve om der kunne sendes data til og fra flagene, blev der fremstillet et testprint med 6 dioder og 4 dipswitche som det færdige system. PC RS-232 Ez-Kit Lite 50 polet buskabel Test print m. 4 dipswitche og 4. dioder Figur 161. Test opstilling Ved at skrive et program der kunne få de 4 dipswitche til at styre 4 af lysdioderne, kunne det afprøves om input og output flagene virkede. I det færdige system skal dipswitchene anvendes til adressestyring og lysdioderne som indikatorer. Når dipswitchen er on udsender den aktiv. Lysdioderne tilsluttes flag 7,6,5 og 4. Dipswitchene tilsluttes flag 3,2,1 og 0. Testprogram for IO-flag AX0=b# ; {Flag 7,6,5 og 4= output, flag 3,2,1 og 0=input lægges over i AX0} DM(0x3FE6)=AX0; {AX0 lægges over i adressen for PFTYPE} SR0=DM(0x3FE5);{Adressen for PFDATA lægges over i SR0} SR=LSHIFT SR0 BY 4(LO);{Værdien for de 4 input pins, flyttes 4 til venstre} DM(0x3FE5)=SR0;{SR0 lægges over i adressen for PFDATA} Input værdien fra en af de 4 dipswitche bliver shiftet 4 pladser til venstre. Derved står værdien nu på en output pin og kan tænde sin lysdiode. Hvis dipswitch 1 er on, tænder diode 1 osv. 144
146 Testresultat Beskrivelse Forventet resultat OK? Dipswitch 1 on Lysdiode 1 tænder OK Dipswitch 2 on Lysdiode 2 tænder OK Dipswitch 3 on Lysdiode 3 tænder OK Dipswitch 4 on Lysdiode 4 tænder OK FL0 og FL1 Ez-Kittet har 2 ekstra digitale udgange, de hedder FL0 og FL1. Disse skal i systemet anvendes til switchen og BPSK. Test printet tilkobles igen. De 2 resterende lysdioder sidder på FL0 og FL1. Ved at skrive et disse 2 linjer kode i programmet vil, dioderne toggle når der trykkes på interrupt. Testprogram for FL0 og FL1 Toggle FL0 Toggle FL1 Test konklusion Vi kan nu opsætte og bruge IO erne. Beskrivelse Forventet resultat OK? Tryk på interrupt FL0 diode toggler OK Tryk på interrupt FL1 diode toggler OK 145
147 8.4 Modultest software RS232 UART Følgende udstyr er anvendt Agilent storage scope 5421A ( ) Ez-Kit Lite nr. 17 Scop Pin 3 Ez-Kit Lite Test med Scop Pin 3 (transmit data) i com porten på EZ-Kittet blev tilsluttet til et digitalt scop og der blev tilføjet kode, så EZ-Kittet ville sende et A hver gang interrupt knappen blev aktiveret. På den måde kunne hastigheden og korrektheden af signalet bedømmes. Her er først hvordan et A skal se ud ifølge databladet for RS-232 se Figur 162 og så A målt på EZ-Kit Lite se Figur 163. Figur 162. "A" ifølge datablad RS-232 Figur 163. "A" målt på EZ-Kit Lite 146
148 Hastigheden skal være 300 baud. I programmet skal parameteren skalering opsættes, der bestemmer hvor hurtigt UART skal kommunikere med computeren. For at kontrollere at hastigheden er rigtig zoomes ind på et bit. Afstanden Δx = 3,330ms er tiden det tager for et bit. Se Figur bit må tage300bit 0,0033sek = 1sek Altså er hastigheden korrekt nemlig 300baud, da baud er bit pr. sek. Test med Hyperterminal Figur 164. Et bit fra "A" Computer med Hyperterminal RS232 EZ-Kit Lite Figur 165. Testopstilling For at afprøve UART en, blev der i main tilføjet kode, som gør kittet istand til at ekko den karakter som der sendes til kittet tilbage. Testkode again: { wait until a char is received... } ax0 = dm(rx_a_word); ar = pass ax0; if eq jump again; { received a char., put it in ax1 to echo back } ax1 = dm(main_rx_buffer); { clear word ready flag } ax0 = 0; dm(rx_a_word) = ax0; { send the char back out } call trans_char; { wait until a char is received... } jump again; Hvis der er noget at modtage er rx_a_word 1 og programmet modtager det sendte i main_rx_buffer. Rx_a_word bliver sat til 0, fordi der ikke er mere at modtage. Main_rx_buffer bliver overført til ax1. For at ekko det modtagne til computeren kaldes programmet trans_char og det der står i ax1 bliver sendt tilbage til computeren. 147
149 Test resultat Hyperterminal blev startet op og blev opsat til 300 baud. Beskrivelse Forventet resultat OK? Indtast A A ekkoet tilbage OK Indtast M M ekkoet tilbage OK Konklusion UART en virker efter et par forsøg som den skal. Først var baudraten baud for EZ-Kittet. Dette blev målt med et scope. Når Hyperterminal var opsat til 300 baud, kom der kun ubrugelig data igennem. Ved at anvende et andet terminal program RealTerm og opsætte dette til baud, virkede det. Efter nogle rettelser i programmet, så baud raten også blev 300 baud for EZ-Kittet virkede det med Hyperterminal opsat til 300 baud Senderdel og FIFO buffer Opstilling PC med hyberterminal RS baud EZ-kit med: UART FIFO Sender Bus IO test print Med LED og DIPSwitch Bemærkning I denne test bruges interrupt trykknappen på EZ-Kittet til at styre sendehastigheden. IO testprintet har det samme hardware diagram som IO modulet i projektet. BPSK og Swith ens tilstand er vist på IO testprintet med LEDs. Sendesoftwaren sender LSB først. Kasamikoderne er beskrevet i kravspecifikationen nr. 1.1 side 6. Fremgangsmåde 1. Programmere EZ-Kit et med den kompilerede kode. 2. Etablere seriel forbindelse til EZ-Kit et med computer. Hastighed 300baud. 3. Sende den/de ønskede karakterer via en seriel terminal. I dette tilfælde er der brugt Windows Hyperterminal 4. Tryk derefter på interrupt knappen på EZ-Kit et. 5. Punkt 4 gentages indtil alle pakker er afsendt. Dette kan ses når switch en ikke er aktiv længere. Forventet fremgangsmåde 1. Første gang der trykkes, skal man observere: a. Switch en aktiveres (LED lyser) b. BPSK er slukket. Dette er et krav, se nr. 1.2 side Derefter vil man for hvert tryk kunne aflæse BPSK ens tilstand og dermed også de data der sendes. Dette skulle, efter invers differentiel- og kasamikodning, stemme overens med den/de ønskede karakterer der blev sendt fra computeren, samt indeholde afsenderadressen og være kodet med modtageradressens kasamikode. 148
150 Test 1 Sendt karakter: A o A = 0x41 hex = binær Senderadresse: 2 o 10 binær Modtageradresse: 1 o Kasamikode: Handshaking bit s er deaktiveret o 00 binær Forventet pakke der modtages efter afkodning Sender adr. Handshaking Sendt karakter MSB LSB Resultat Udgangspunkt Rå data fra BPSK Færdig Differentiel afkodet Kasami afkodet LSB MSB Konklusion for test 1 Resultaterne er ens. 149
151 Test 2 Sendt karakter: t o (2 pakker) o t = 0x74 hex = binær o o = 0x6F hex = binær Senderadresse: 2 o 10 binær Modtageradresse: 0 o Kasamikode: Handshaking bit s er deaktiveret o 00 binær Forventet pakke der modtages efter afkodning Pakke Senderadr. Handshaking Sendt karakter nr MSB LSB Resultat Udgangspunkt Rå data fra BPSK Færdig 150
152 Pakke 1 Differentiel afkodet Kasami afkodet LSB MSB LSB Pakke MSB Konklusion for test 2 Resultaterne er ens. Endvidere kan det ses at softwaren ikke behøver et udgangspunkt for at sende 2. pakke, da den bruger sidste chip i 1. pakke som udgangspunkt i stedet for. Slut konklusion Ved transmission af de afsendte pakker er det samlede sendesystem testet til specifikationer. RS232 UART, FIFO buffer og senderdelen virker efter hensigten da to pakker er afsendt og detekteret som forventet. 151
153 8.4.3 Modtagerdel Modultest af FIR filtre IQ demodulator Udstyr anvendt i testen EZ-Kit 17 Bruel & Kjær FFT analysator serie nummer Software Venstre kanal LPF Z -1 X Hardware S Sliding correlator LPF Z -1 X FIFO UART Højre Kanal Figur 166. Oversigt For at teste om de 2 FIR filtre, markeret med rødt på Figur 166, virker som de skal, laves der en FFT analyse af filtrene hver for sig, med Brüel og Kjær FFT analysatoren. Dette gøres ved først at modificere modtagerprogrammet i EZ-Kit Lite så signalet fra udgangen af filteret bliver sendt ud på udgangen af EZ-Kit Lite kortet. Indgangen af EZ-Kit Lite bliver sendt ind på indgangen af filteret. Nu kan kittet tilsluttes analysatoren og der kan udskrives et frekvensrespons af filteret. Hvert filter får sit individuelle signal fra henholdsvis højre og venstre indgangskanal. Ligeledes den samme udgangskanal Brüel og Kjær FFT Analysator Kanal B Kanal A Generator OUT IN EZ-Kit Lite Computer Figur 167. Testopstilling 152
154 Test venstre kanals FIR filter Venstre kanal IN på EZ-Kit Lite tilsluttes sammen med generatoren kanal A på FFT analysatoten. Venstre kanal OUT på EZ-Kit Lite tilsluttes kanal B på FFT analysatoren. Figur 168. Plot af venstre kanal FIR filter Test højre kanals FIR filter Højre kanal IN på EZ-Kit Lite tilsluttes sammen med generatoren kanal A på FFT analysatoten. Højre kanal OUT på EZ-Kit Lite tilsluttes kanal B på FFT analysatoren. Filterkoefficienterne blev udregnet i Matlab. 0 Figur 169. Plot af hojre kanal FIR filter -10 Dæmpning [db] Frekvens [Hz] Figur 170. Amplituderespons for det ideelle filter ved 4x oversampling Denne test blev udført da systemet havde en samplingsfrekvens på 22,05kHz med 4 gange oversampling. Senere blev det bestemt at systemet skulle køre med den dobbelte samplingshastighed og oversample 8 gange. Det nye filter blev beregnet i Matlab se Figur
155 Dæmpning [db] Frekvens [Hz] x 10 4 Figur 171. Filter udregnet i Matlab ved 8x oversampling Der blev foretaget en FFT analyse på venstre FIR kanal på samme måde som før. Figur 172. Plot af venstre kanal FIR filter Test konklusion Under første forsøg var filteret ikke som forventet. Koefficienterne blev ikke initieret rigtigt. Efter debugning blev resultaterne i dette afsnit frembragt. Ved at sammenligne de udregnede filtre med de målte, kan det konkluderes at ligheden er stor. Det er ikke muligt at lave et ideelt filter som i udregningen, men det fremkomne er meget anvendeligt. 154
156 Delay Test Udstyr: Philips PM5139 Function Generator (1-5-10) Agilent 5621A Oscilloscope ( ) EZ-Kit Lite Computer Data: Sinussignal Frekvens: 1,54kHz Spænding: 2,8V (maksimum tilladt) Beskrivelse Princippet med faseskift i differentiel forkodning udnyttes i IQ-demodulator hvor der detekteres om et fase skift i signalet er foretaget. Det er gjort vha. en digtialt implementeret delay-enhed, der ganger et forsinket signal, med det oprindelige signal før de summeres i et summationspunkt. Testens formål var at bevise at der faktisk skete en forsinkelse i signalet vha. en sammenligning af det oprindelige signal og det forsinkede signal, se Figur 173. Det forventede resultat var at signalet skulle være ens, bortset fra at det ene skal være forsinket. Z -1 Delay-enhed Kanal 1 Sinus signal fra FIR-filter Figur 173. Princippet af delay test Kanal 2 Ligeledes FIR-filtere test, blev testet udført med 4 gange oversampling. Opstilling kan ses i Figur 174 hvor der er tilsluttet en funktionsgenerator til forsyning af indgangen og et oscilloscop til opsamling af resultatet. Agilent 54621A Oscilloscope PM5139 Function Generator OUT IN EZ-Kit Lite PC Figur 174. Opstilling til delay-test 155
157 Figur 175. Delay testresultat Resultat Ud fra Figur 175 kan man se de to kanalers bidrag er ens. Forsinkelse i signalet skyldes det programmerede delay og EZ-Kit lite s codec eget delay. Forsinkelse er 23µs. Testen af delay-enheden og dens tilhørende kode blev godkendt og virker efter hensigt. 156
158 Test af sliding correlator Efter systemtest 1 blev der opsamlet data, der kan bruges til at lave en test af denne softwaredel. Se afsnit 8.5 side 158 Brugt program Analog device VDSP debugger Fremgangsmåde 1. Der blev lavet et testprogram uden interrupts der omhandler sliding correlatoren. 2. Indlæs data til programmet 3. Udlæs data fra programmet Forventet Resultat Resultatet fra simulering fra Systemtest 1, i simulink, skal matche resultatet fra DSP simuleringen. Endvidere skal programmet kunne detektere det sendte data: A =0x41 Resultat Udgangssignal fra sliding correlatoren: Figur 176. Simuleret sliding correlator i Simulink 0.02 Slidingcorolator output Samples Figur 177. Udgangssignal fra DSP simulering 157
159 Peak detekteringen Peak detekteringsværdien blev sat til 0,015 Modtaget data: 0x41 Adresse: 00 Test konklusion De to resultater stemmer overens og dermed skulle fejlen i systemtest 1 være fundet. Fejlen bestod i initialiseringen af koefficienter. 8.5 Systemtest 1 Formål At test om systemet kan kommunikere, samt at lave en samlet modultest af modtagersoftwaren. Udstyr Tal i parentes angiver placering Funktionsgenerator Philips PM 5139 funktionsgenerator (1-5-10) Scop Agilent Storage scope 54621A ( ) Forsyning HAMEG HM8040 triple power supply (1-B2-75) Multimeter HAMEG HM Digitalt multimeter (1-B2-76) Multimeter Philips PM 2519 automatic multimeter (2-12-5) Opstilling 5V Forsyning 5V Forsyning Oscilator modul BPSK modul Switch modul Tabsmodstand IQ-demodulator modul RS232 BUS Ez-Kit Sender software modul FIFO modul Uart modul BUS RS232 Ez-Kit modtager software modul FIFO modul Uart modul Computer 1 Computer 2 Figur
160 Fremgangsmåde 1. Fastsættelse af tabsmodstanden. V = 3 V, V = 0,2V out in 50Ω 0, 2V = 3V R= 650Ω 50Ω+ R + 50Ω Den opnåede spænding var imidlertid for stor, derfor blev den ændret til 1kΩ 2. Afsende en karakter fra computer 1 3. Stop EZ-Kit Lite lige når karakteren er afsendt 4. Upload data opsamling lige efter sliding correlatoren. 5. Plot dataene i Matlab 6. Detekter peek værdierne og fastsæt en detekteringsgrænse. Forventet resultat Det forventes at kunne sende en karakter fra den ene computer til den anden. Resultat Der blev desværre ikke uploadet noget brugbart fra signalprocessoren, hvilket betyder at der er noget der ikke virker. Fejlfinding Dernæst blev der prøvet at indhente data lige før summationspunktet. Dette data blev kørt gennem vores simulering af sliding correlatoren med implementeringskoefficienterne. out2 From Workspace num(z) 1 Discrete Filter Relay Scope Figur 179. Sliding correlator simuleringen Figur 180. Resultat af simulering Test konklusion Dermed kan man konkludere at alt indtil sliding correlatoren virker. Endvidere er der blevet fundet en fejl i effektregnskabet over systemet som påvirker tabsmodstanden. Dette tab er desuden forkert implementeret i testen, da det bevirker at udgangsimpedansen for senderdelen er meget større. Derfor passede vores udregnede modstand ikke. 159
161 8.6 Systemtest 2 Formål Denne test udføres for at teste om systemet kan kommunikere, samt at lave en samlet modultest af modtagersoftwaren. Udstyr Tal i parentes angiver placering Funktionsgenerator Philips PM 5139 funktions generator (1-5-10) Scop Agilent Storage scope 54621A ( ) Forsyning HAMEG HM8040 triple power supply (1-B2-75) Multimeter HAMEG HM Digitalt multimeter (1-B2-76) Multimeter Philips PM 2519 automatic multimeter (2-12-5) Opstilling 5V Forsyning 5V Forsyning Oscilator modul BPSK modul Switch modul RS232 BUS Ez-Kit Sender software modul FIFO modul Uart modul Attenuator R2 R1 IQ-demodulator modul BUS RS232 Ez-Kit modtager software modul FIFO modul Uart modul Computer 1 Computer 2 Figur 181. Oversigt over opstilling Fremgangsmåde 1. Fastsættelse af attenuator. Vout = 3 V, Vin = 200mV 50Ω 3V 50Ω 200mV = R1 = 325Ω E Ω R + 50Ω 50Ω+ 50Ω E ( ( ) ) ( ) ( ) 50Ω= R + R + 50Ω = R + 324Ω+ 50Ω R = 57, 7Ω 57, 6Ω 2. Afsende en karakter fra computer 1 3. Stop EZ-Kittet lige når karakteren er afsendt 4. Upload data opsamling lige efter sliding correlatoren. 5. Plot dataene i Matlab 6. Detekter peakværdierne og fastsæt en detekteringsgrænse. Forventet resultat Forventer at kunne sende en karakter fra den ene computer til den anden. 160
162 Fejlfinding Det blev hurtigt klart, at der på sendersiden var fejl i hardwaren. Fejlfindingen blev gjort ved at kigge på hardware da simuleringer og modultests har vist at softwaren virker efter hensigten. Ved inspicering med berøring af switchen viste det sig at den var meget varm og blev derfor skiftet ud. Den nymonterede switch virkede heller ikke og derfor blev benyttet en anden model (CB4066), der i forvejen var til rådighed på printet. Denne model er den samme som den i BPSK modulet anvendte switch. Dette løste problemet med switchen. Herefter manglede et signal fra BPSK modulet. Løsningen var at skifte to operationsforstærkere der leverede signalet. Amplituden af signalet var også ude af trit med det anslåede og nødvendige. Dette som en konsekvens af ændringen i firkantoscillatoren. Figur 182. Scopbillede af firkantoscillator og logikbufferens udgangssignal Dette blev løst ved at udskifte oscillatoren. Det samme problem med firkantoscillatoren blev konstateret på modtagersiden. Da der desværre ikke var flere oscillatorer tilbage var det nødvendigt på modtagersiden at sætte et eksternt signal på, via en signalgenerator. På modtagersiden blev monteret to modstande i overensstemmelse med de udregnede værdier for attenuatoren. Efter at have målt yderligere på modtagerprintet blev det klart, at den ene kanal i IQ-demodulatoren var ude af drift. Intet signal var detekterbart efter operationsforstærkeren. 161
163 Resultat Figur 183. Output fra Hyperterminal fra transceiver Det er kun muligt i et meget begrænset omfang, at sende data fra en terminal til en anden, via de trådløse kort. Her er taget et skærmbillede af situationen hvor bogstavet A er sendt kontinuerligt. 162 Figur 184. Simulering af indgangssignal med kun en mixer Test konklusion Dermed kan det konkluderes at overføre data med én mixer er muligt. Teorien går på, at der enten er en defekt komponent på printet i den kanal, eller at der har sat sig noget smuds under en komponent, der skaber en kortslutning. Efter rettelse af fejl Efter undersøgelse af fejlen, blev det konstateret at LO signalet til faseforskydelsesfilteret var instillet uden bias. Dette blev rettet og en ny test blev udført. Under testen viste det sig, at der nogle gange kunne sendes karakterer mellem de to computere, men der var perioder hvor der ikke kommer noget igennem overhovedet. Som det ses i Figur 185 svinger amplituden meget, hvilket gør at detektionen glipper i perioder. I de perioder hvor systemet virker, er det muligt at detektere nøjagtig det samme som det sendte.
164 Figur 185. Data fra sliding correlator når der kontinuerligt sendes A I Figur 186 ses et billede af når der kontinuerligt sendes et A, og det ses at der ikke detektesres andet. Hvad der ikke fremgår af billedet er, at der ofte er perioder hvor detektionen stopper. Efter et kort stykke tid starter detektionen atter, og stadig uden at der modtages nogle forkerte karakterer. Senere blev HELLO WORLD forsøgt sendt. Figur 186. Billede fra Hyperterminal over de modtagne karakterer Konklusion Efter testen med udskiftning af diverse komponenter, er det lykkedes at sende karakterer fra en computer til en anden, men med stor fejlrate idet er ikke kan sendes kontinuerligt. Årsagen til at der er perioder hvor kommunikationen ikke virker tilskrives, at amplituden falder i perioder. Forskellen i samplingsfrekvensen på de to EZ-Kit formodes at være årsag til dette amplitudefald. 163
165 8.7 Crystal filter - Application note 164
166 8.8 Diagram for EZ-kit lite 165
167 166
168 167
169 168
170 169
171 8.9 Software kode Sender.dsp.MODULE/RAM Sender; {********************************************************* *********************************************************}.INCLUDE <const.kon>; {Konstanter}.CONST.CONST SendSkalering= KasamiAdrNul= 8;{IQ tids Skalering} b# ;.const KasamiAdrEt= b# ;.const.const KasamiAdrTo= KasamiAdrTre= b# ; b# ; {Variable to Sender}.VAR/DM/RAM BitBuffer;.VAR/DM/RAM BitCounter;.VAR/DM/RAM.VAR/DM/RAM KasamiCounter; ChipBuffer;.VAR/DM/RAM ChipCounter;.VAR/DM/RAM.VAR/DM/RAM IRQSendCounter; ModtagerFlag;.INIT ModtagerFlag: 0; {midlertidig}.var/dm/ram.global SenderFlag; SenderFlag; {-----global functions-----}.entry.entry Sender_Initilisering; Sender_Sub; {-----funktioner fra FIFO'en----}.EXTERNAL.EXTERNAL FIFOUdSender; FIFOCounterSender; {-----funktioner fra IO'en-----}.EXTERNAL LED5_TX_on;.EXTERNAL LED5_TX_off;.EXTERNAL LED5_TX_toggle; {-----Variable fra IO'en------}.EXTERNAL.EXTERNAL EgenAdr; SendAdr; {********************************************************************** **********************************************************************} Sender_Initilisering: AX0=SendSkalering; DM(IRQSendCounter)=AX0; AX0=0; DM(SenderFlag)=AX0; DM(BitCounter)=AX0; DM(ChipCounter)=AX0; RESET FL1; RESET FL0; RTS; Sender_Sub: 170
172 AX0=DM(ModtagerFlag); AR=PASS AX0; IF NE JUMP EndKasami; AY0=DM(IRQSendCounter); AR=AY0-1; DM(IRQSendCounter)=AR; IF NE JUMP EndKasami; AX0=SendSkalering; DM(IRQSendCounter)=Ax0; AX0=DM(ChipCounter); AR = PASS AX0; IF NE JUMP SEND; AX0=DM(BitCounter); AR = PASS AX0; IF NE JUMP NyBit; AX0=DM(FIFOCounterSender); AR=PASS AX0; IF NE JUMP HentPakke; AX0=0; {SenderFlag reset'es så modtageren kan køre} DM(SenderFlag)=AX0; RESET FL1; {Her styres switchen med hård hånd} RESET FL0; {Kravspec. kræver at der startes med nul} CALL LED5_TX_off; {Slukker RX LED'en} RTS; HentPakke: AX0=DM(SenderFlag); AR=PASS AX0; IF NE JUMP HarLigeSendt; AX0=1; {SenderFlag set'es så modtageren forhindres i at køre} DM(SenderFlag)=AX0; SET FL1; {Her styres switchen med hård hånd} {CALL LED5_TX_on;} {Tænder RX LED'en} RTS; HarLigeSendt: CALL FIFOUdSender; {Her returneres i AX1} SR1=DM(EgenAdr); sr = lshift sr1 by 10 (HI); AY0=SR1; AR=AX1 OR AY0; DM(BitBuffer)=AR; AX0=12; DM(BitCounter)=AX0; NyBit: CALL BestemAdr; {Her returneres adressen i AX1} { Shift out tx buffer's LSB into SR0. Test it to } { set or reset the flag out pin } sr1 = dm(bitbuffer); sr0 = 0; sr = lshift sr1 by -1 (hi); dm(bitbuffer) = sr1; AR=PASS SR0; IF LT JUMP BitEt; AR=NOT AX1; AX1=AR; BitEt: DM(ChipBuffer)=AX1; AX0=15; DM(ChipCounter)=AX0; AY0=DM(BitCounter); AR=AY0-1; DM(BitCounter)=AR; 171
173 SEND: CALL LED5_TX_toggle; {Til test brug, Ellers til RX} sr1 = dm(chipbuffer); sr0 = 0; sr = lshift sr1 by -1 (hi); dm(chipbuffer) = sr1; ar = pass sr0; if lt Toggle FL0; AX0=DM(ChipCounter); AR=AX0-1; DM(ChipCounter)=AR; EndKasami: NOP; RTS; BestemAdr: { Test på hvilken adresse der } { skal kasamikodes ud fra } AX0=DM(SendAdr); AR=PASS AX0; IF EQ JUMP Nul; AR=AX0-1; IF EQ JUMP Et; AR=AX0-2; IF EQ JUMP To; AR=AX0-3; IF EQ JUMP Tre; Nul: AX1=KasamiAdrNul; RTS; Et: AX1=KasamiAdrEt; RTS; To: AX1=KasamiAdrTo; RTS; Tre: AX1=KasamiAdrTre; RTS; RTS;.ENDMOD; 172
174 8.9.2 FIFOsend.dsp.MODULE/RAM FIFOsend; {*********************************************************************} {Skal køres efter UART'en. Den flytter pakken ind når der er modtaget en hel.}.include <const.kon>; {---variable fra UART---}.EXTERNAL rx_a_word;.external main_rx_buffer; {---Andre eksterne variable---}.var/dm/ram FIFOIndPointerSender;.VAR/DM/RAM.VAR/DM/RAM FIFOUdPointerSender; FIFOCounterSender;.GLOBAL FIFOCounterSender;.VAR/DM/RAM/CIRC FIFOArraySender[100];.ENTRY Init_FIFO_Sender;.ENTRY FIFOIndSender;.ENTRY FIFOUdSender; {HER STARTER FUNKTIONERNE} Init_FIFO_Sender: RTS; I2=^FIFOArraySender; AX0=I2; DM(FIFOIndPointerSender)=AX0; I2=^FIFOArraySender; AX0=I2; DM(FIFOUdPointerSender)=AX0; AX0=0; DM(FIFOCounterSender)=AX0; AX0=b# ; {Flag 7,6,5 og 4= output, flag 3,2,1 og 0=input lægges over i AX0} DM(0x3FE6)=AX0; {AX0 lægges over i adressen for PFTYPE} FIFOIndSender: AX0=DM(rx_a_word); AR=PASS AX0; IF EQ JUMP NoWordToMove; {Der testes om der er modtaget en hel pakke} I2=DM(FIFOIndPointerSender); {Pointer'en til indlæsning i FIFO'en hentes} L2=100; AX0=DM(main_rx_buffer); DM(I2,M1)=AX0; AX0=0; DM(rx_a_word)=AX0; {Den modtagne pakke flyttes over i FIFO'en} {Flaget for modtaget pakke i UART reset'es} AY0=DM(FIFOCounterSender); {FIFOCounter'en tælles en op} AR=AY0 + 1; {^ ^ ^} DM(FIFOCounterSender)=AR;{ } AX0=I2; {Pointer'en til indlæsning i FIFO'en gemmes } DM(FIFOIndPointerSender)=AX0; NoWordToMove: RTS; 173
175 {End af skrivning til FIFO buffer } {*********************************************************************} {*********************************************************************} {Denne funktion skal huske at tælle FIFOArray differencen en ned } FIFOUdSender: RTS; I2=DM(FIFOUdPointerSender); {Pointer'en til udlæsning fra FIFO'en hentes} L2=100; AX1=DM(I2,M1); {Her ligger data nu så det ikke bliver slettet } {længere nede } AY0=DM(FIFOCounterSender); {FIFOCounter'en tælles en ned } AR=AY0-1; { ^ ^ ^} DM(FIFOCounterSender)=AR; { } AX0=I2; {Pointer'en til udlæsning fra FIFO'en gemmes } DM(FIFOUdPointerSender)=AX0; {End af hentning fra FIFO buffer, funktionen returnerer i AX1 } {*****************************************************************************}.ENDMOD; Modtager.dsp.MODULE/RAM modtager; {********************************************************************** In this module subroutines are placed **********************************************************************}.INCLUDE <const.kon>; {.ENTRY declarations to make subroutines visible in other modules }.ENTRY Init_modtager;.ENTRY Modtager_main; {.EXTERNAL declarations for all variables used in this module { ALL variables are placed in var.dsp } }.EXTERNAL rx_buf;.external tx_buf; {InOut.dsp}.EXTERNAL.EXTERNAL.EXTERNAL.EXTERNAL {FIFOmodt.dsp}.EXTERNAL.EXTERNAL {Sender.dsp}.EXTERNAL {interne}.var/dm/ram/circ.var/dm/ram.var/dm/ram/circ.var/dm/ram EgenAdr; sendadr; LED4_RX_on; LED4_RX_off; modtager_data; har_modtaget_data; SenderFlag; DelayArrayLeft[2]; DelayArrayLeftPointer; DelayArrayRight[2]; DelayArrayRightPointer; 174
176 .VAR/DM/RAM/CIRC ZArray[15];.VAR/DM/RAM ZArrayPointer;.VAR/DM/RAM FIR_out_Right;.VAR/DM/RAM ResultLeft;.VAR/DM/RAM FIR_out_Left;.VAR/DM/RAM ResultRight;.VAR/DM/RAM SummationHold;.VAR/DM/RAM/CIRC AdrNulKoefArray[15];.VAR/DM/RAM/CIRC AdrEtKoefArray[15];.VAR/DM/RAM/CIRC AdrToKoefArray[15];.VAR/DM/RAM/CIRC AdrTreKoefArray[15];.VAR/DM/RAM har_modtaget_data;.var/dm/ram modtager_data;.var/dm/ram timeout;.var/dm/ram afsender_adresse;.var/dm/ram/circ FIRZRight[8];.VAR/DM/RAM FIRZRightPointer; {Gem aktuelle værdier }.VAR/DM/RAM/CIRC FIRZLeft[8]; {Gem aktuelle værdier }.VAR/DM/RAM.VAR/DM/RAM FIRZLeftPointer; SlidOut;.VAR/DM/RAM Clock_scale_counter;.VAR/DM/RAM SlidOut_counter; {----Konstanter----}.CONST FIR_Koef= 0x1000; {0x1000 = 0,125; 8 gange oversampling}.const SlidDetect=.CONST Clock_scale= 0x01EB; 8;.CONST afstand_mellem_bit= 15;.CONST Antal_bit= 12;.INIT AdrNulKoefArray: <AdrNul.hex>;{Koefficienterne udregnet til 2/15}.INIT AdrEtKoefArray: <AdrEt.hex>; {0x1111 = 0,133333}.INIT AdrToKoefArray: <AdrTo.hex>; {0xEEEF =-0,133333}.INIT AdrTreKoefArray: <AdrTre.hex>;.INIT har_modtaget_data: 0;.INIT timeout: 0;.INIT ZArray: <15nul.hex>; {----Globale variable-----}.global har_modtaget_data;.global modtager_data; {Til test}.var/dm/ram TestFlag;.VAR/DM/RAM TestDataPointer;.VAR/DM/RAM/CIRC TestData[1000];.GLOBAL TestFlag;.INIT TestFlag: 0;.VAR/DM/RAM Testout;.GLOBAL Testout; {*********************************************************************} Init_modtager: {TEST} I2=^TestData; AX0=I2; DM(TestDataPointer)=AX0; AX0=Clock_scale; DM(Clock_scale_counter)=AX0; AX0=DM(SendAdr); DM(afsender_adresse)=AX0; I2=^FIRZLeft; I3=^FIRZRight; L2=4; {længden af array antal koef incoming left} 175
177 L3=4; M2=0; M3=-1; {længden af array antal koef incoming right} I5=^DelayArrayLeft; I6=^DelayArrayRight; L5=2; L6=2; {plads til ny værdi og delayed} M4=0; M5=1; I7=^ZArray; M1=1; M7=-1; L7=15; {Gemmer pointer opsætning} AX0=I2; DM(FIRZLeftPointer)=AX0; AX0=I3; DM(FIRZRightPointer)=AX0; AX0=I5; DM(DelayArrayLeftPointer)=AX0; AX0=I6; DM(DelayArrayRightPointer)=AX0; AX0=I7; DM(ZArrayPointer)=AX0; RTS; {*********************************************************************} {Overordnede modtager funktion } Modtager_main: {Afbruder hele modtageren hvis der sendes} AX0=DM(SenderFlag); AR= pass AX0; IF NE JUMP spring_over; {Integrations filterne} CALL FIR; {Skaler interrupt med 8, da integrationsfiltret oversampler med 8 samples pr. chip} ay0 = dm(clock_scale_counter); ar = ay0-1; dm(clock_scale_counter) = ar; RTS; if ne jump spring_over; AX0=Clock_scale; DM(Clock_scale_counter)=AX0; CALL Delay_Summation_sliding; spring_over: {*********************************************************************} {Start af filtrering af samplet input } {Start af Højre kanals FIR } FIR: {Indlæser Pointer} M2=0; M3=-1; AX0=DM(FIRZLeftPointer); I2=AX0; 176
178 AX0=DM(FIRZRightPointer); I3=AX0; L3=%FIRZRight; AR=DM(rx_buf+2); DM(I3,M2)=AR; CNTR=L3; MR=0; DO FIRRight UNTIL CE; MY0=FIR_Koef; MX0=DM(I3,M3); FIRRight: MR=MR+MX0*MY0 (SS); MODIFY(I3,M3); {Flytter pointer til næste gang } MR=MR(RND); {Round + Saturation } IF MV SAT MR; DM(FIR_out_Right)=MR1; {End af Højre kanals FIR, Resultat lægges i en DM(FIR_OUT_RIGHT) } {*********************************************************************} {*********************************************************************} {Start af Venstre kanals FIR } L2=%FIRZLeft; AR=DM(rx_buf+1); DM(I2,M2)=AR; CNTR=L2; MR=0; DO FIRLeft UNTIL CE; MY0=FIR_Koef; MX0=DM(I2,M3); FIRLeft: MR=MR+MX0*MY0 (SS); MODIFY(I2,M3); {Flytter pointer til næste gang } MR=MR(RND); {Round + Saturation } IF MV SAT MR; DM(FIR_out_Left)=MR1; {End af Venstre kanals FIR, Resultat leveres i MR } {END of filtrering } {*********************************************************************} {Gemmer FIR-filtre pointere} AX0=I2; DM(FIRZLeftPointer)=AX0; AX0=I3; DM(FIRZRightPointer)=AX0; RTS; {*********************************************************************} Delay_Summation_sliding: {Indlæser Pointer} M4=0; M5=1; M7=-1; AX0=DM(DelayArrayLeftPointer); I5=AX0; L5=%DelayArrayLeft; AX0=DM(DelayArrayRightPointer); I6=AX0; L6=%DelayArrayRight; AX0=DM(ZArrayPointer); I7=AX0; L7=%ZArray; 177
179 {*********************************************************************} {Delay Unit og multiplikation start. Benytter variablere fra FIR-filtrene. } MX1=DM(FIR_out_Left); DM(I5,M5)=MX1; MY1=DM(I5,M4); MR=MX1*MY1 (SS); DM(ResultLeft)=MR1; MX0=DM(FIR_out_Right); DM(I6,M5)=MX0; MY0=DM(I6,M4); MR=MX0*MY0 (SS); DM(ResultRight)=MR1; {END of DelayUnit og multiplikation. } {*********************************************************************} {*********************************************************************} {Summation af de to kanaler. } AY1=DM(ResultLeft); AX1=DM(ResultRight); M4=0; AR=AX1+AY1; DM(I7,M4)=AR; {END of Summation, Resultat leveret i DM } {*********************************************************************} {*********************************************************************} {Her gemmes pointerne for delay delen til næste IRQ } AX0=I5; DM(DelayArrayLeftPointer)=AX0; AX0=I6; DM(DelayArrayRightPointer)=AX0; {*********************************************************************} {*********************************************************************} {Adressecheck for at bestemme hvilken kasamikode der skal bruges som koeff } AX0=DM(EgenAdr); {AX0=0; }{TEST} AR=PASS AX0; IF EQ JUMP Nul; AR=AX0-1; IF EQ JUMP Et; AR=AX0-2; IF EQ JUMP To; AR=AX0-3; IF EQ JUMP Tre; Nul: I6=^AdrNulKoefArray; L6=%AdrNulKoefArray; JUMP EndCheck; Et: I6=^AdrEtKoefArray; L6=%AdrEtKoefArray; JUMP EndCheck; To: I6=^AdrToKoefArray; L6=%AdrToKoefArray; JUMP EndCheck; Tre: I6=^AdrTreKoefArray; L6=%AdrTreKoefArray; 178
180 EndCheck: JUMP EndCheck; {END ADRESSE CHECK } {*********************************************************************} {*********************************************************************} {Undersøger om de modtaget data er forældet} AX0=DM(timeout); AR=pass AX0; IF NE JUMP chipcount; call Resetter_pakke; JUMP Slid_Cor; chipcount: AR=AX0-1; AX0=AR; DM(timeout)=AX0; {sliding correlator start} Slid_Cor: M7=-1; CNTR=L7; MR=0; DO FIRCor UNTIL CE; MX0=DM(I6,M7); MY0=DM(I7,M7); FIRCor: MR=MR+MX0*MY0 (SS); {Toggle FL0; }{test} MODIFY(I7,M7); {Flytter pointer til næste gang } IF MV SAT MR; DM(Testout)=MR1; {TEST} {TEST} AX1=DM(TestDataPointer); I2=AX1; L2=%TestData; M3=1; DM(I2,M3)=MR1; AX1=I2; DM(TestDataPointer)=AX1; {Her gemmes pointerne for Sliding Correlator til næste IRQ } AX0=I7; DM(ZArrayPointer)=AX0; AX0=DM(timeout); AR= PASS AX0; IF NE JUMP EndSlidCor; {Det er ikke tilladt at modtage et bit } AR=PASS MR1; IF GE JUMP POSResultat; {GE: Greater than or equal zero } If LT JUMP NEGResultat; {LT: Less than zero } POSResultat: AY0=SlidDetect; {SlidDetect: Threshold } AR=MR1-AY0; signalet} {Theshold trækkes fra IF GE JUMP SkrivEtSlidOut; Jump EndSlidCor; NEGResultat: AY0=SlidDetect; 179
181 AR=MR1+AY0; IF LE JUMP SkrivNulSlidOut; Jump EndSlidCor; SkrivEtSlidOut: SR1=DM(SlidOut); SR0=0; SR=LSHIFT SR1 BY -1 (HI); AR=SETBIT 11 OF SR1; DM(SlidOut)=AR; call bit_modtaget; JUMP EndSlidCor; {shiftes det ned mod LSB} {Her sættesbit 11 og efterfølgende} SkrivNulSlidOut: EndSlidCor: RTS; SR1=DM(SlidOut); SR0=0; SR=LSHIFT SR1 BY -1 (HI); {shiftes det ned mod LSB } DM(SlidOut)=SR1; call bit_modtaget; bit_modtaget: AX0=afstand_mellem_bit; DM(timeout)=AX0; AY0=DM(SlidOut_Counter); AR=AY0-1; AY1=AR; DM(SlidOut_Counter)=AY1; IF EQ CALL Pakkeklar; call LED4_RX_on; RTS; Pakkeklar: AX0=DM(SlidOut); AY0=0x00FF; AR=AX0 AND AY0; AX0=AR; SR1=DM(SlidOut); DM(modtager_data)=AX0; SR=LSHIFT SR1 BY -10 (HI); AX0=SR1; AY0=0x0003; AR=AX0 AND AY0; AX0=AR; DM(afsender_adresse)=AX0; AX0=1; {Flaget for modtaget pakke settes} DM(har_modtaget_data)=AX0; call Resetter_pakke; RTS; Resetter_pakke: AY0=0; DM(SlidOut)=AY0; AY0=Antal_bit; DM(SlidOut_Counter)=AY0; call LED4_RX_off; RTS; {*********************************************************************}.ENDMOD; 180
182 8.9.4 FIFOModt.dsp.MODULE/RAM FIFOmodt; {****************************************************************************** ********} {Skal køres efter Sliding Correlator. Den flytter pakken ind når der er modtaget en hel}.include <const.kon>; {---variable fra Sliding Correlator---}.EXTERNAL har_modtaget_data;.external modtager_data; {---Andre eksterne variable---}.var/dm/ram FIFOIndPointerModtager;.VAR/DM/RAM.VAR/DM/RAM FIFOUdPointerModtager; FIFOCounterModtager;.GLOBAL FIFOCounterModtager;.VAR/DM/RAM/CIRC FIFOArrayModtager[100];.ENTRY Init_FIFO_modtager;.ENTRY FIFOIndModtager;.ENTRY FIFOUdModtager; {HER STARTER FUNKTIONERNE} Init_FIFO_modtager: RTS; I2=^FIFOArrayModtager; AX0=I2; DM(FIFOIndPointerModtager)=AX0; I2=^FIFOArrayModtager; AX0=I2; DM(FIFOUdPointerModtager)=AX0; AX0=0; DM(FIFOCounterModtager)=AX0; AX0=b# ; {Flag 7,6,5 og 4= output, flag 3,2,1 og 0=input lægges over i AX0} DM(0x3FE6)=AX0; {AX0 lægges over i adressen for PFTYPE} FIFOIndModtager: AX0=DM(har_modtaget_data); hel pakke } AR=PASS AX0; IF EQ JUMP NoWordToMove; {Der testes om der er modtaget en I2=DM(FIFOIndPointerModtager);{Pointer'en til indlæsning i FIFO'en hentes } L2=%FIFOIndPointerModtager; AX0=DM(modtager_data); {Den modtagne pakke flyttes over i FIFO'en } M1=1; DM(I2,M1)=AX0; AX0=0; {Flaget for modtaget pakke i UART reset'es } DM(har_modtaget_data)=AX0; AY0=DM(FIFOCounterModtager); {FIFOCounter'en tælles en op } AR=AY0 + 1; {^ ^ ^} DM(FIFOCounterModtager)=AR;{ } AX0=I2; {Pointer'en til indlæsning i FIFO'en gemmes } DM(FIFOIndPointerModtager)=AX0; NoWordToMove: 181
183 RTS; {End af skrivning til FIFO buffer } {*********************************************************************} {*********************************************************************} {Denne funktion skal huske at tælle FIFOArray differencen en ned } FIFOUdModtager: RTS; I2=DM(FIFOUdPointerModtager); {Pointer'en til udlæsning fra FIFO'en hentes } L2=%FIFOIndPointerModtager; AX1=DM(I2,M1); {Her ligger data nu så det ikke bliver slettet } {længere nede} AY0=DM(FIFOCounterModtager); {FIFOCounter'en tælles en ned } AR=AY0-1; {^ ^ ^} DM(FIFOCounterModtager)=AR; { } AX0=I2; {Pointer'en til udlæsning fra FIFO'en gemmes } DM(FIFOUdPointerModtager)=AX0; {End af hentning fra FIFO buffer, funktionen returnerer i AX1 } {*********************************************************************}.ENDMOD; InOut.dsp.MODULE/RAM InOut; {********************************************************* *********************************************************}.INCLUDE <const.kon>; {Variabler til IO}.VAR/DM/RAM.GLOBAL.VAR/DM/RAM.GLOBAL.VAR/DM/RAM {-----global functions-----} EgenAdr; EgenAdr; SendAdr; SendAdr; Buffer;.entry IO_Initilisering;.entry Adresser;.entry LED4_RX_on;.entry LED4_RX_off;.entry LED4_RX_toggle;.entry LED5_TX_on;.entry LED5_TX_off;.entry LED5_TX_toggle;.entry LED6_AdressFejl_on;.entry LED6_AdressFejl_off;.entry LED6_AdressFejl_toggle;.entry LED7_Dublering_on;.entry LED7_Dublering_off;.entry LED7_Dublering_toggle; {********************************************************************** *************************************************************************} 182
184 IO_Initilisering: AX0=b# ; {Flag 7,6,5 og 4= output, flag 3,2,1 og 0=input lægges over i AX0} DM(0x3FE6)=AX0; {AX0 lægges over i adressen for PFTYPE} CALL LED4_RX_off; CALL LED5_TX_off; CALL LED6_AdressFejl_off; CALL LED7_Dublering_off; RTS; Adresser: AX1=DM(pfdata_adr); AR=NOT AX1; AX1=AR; AY0=B# ; {Isolere bit 1,0} AR=AX1 AND AY0; DM(EgenAdr)=AR; {Transceiver adresse} AY0=B# ; {Isolere bit 3,2 og flytter} AR=AX1 AND AY0; SR0=0; SR1=AR; SR=LSHIFT SR1 BY -2 (HI); DM(SendAdr)=SR1; {Adresse på modtager} RTS; LED4_RX_on: DM(Buffer)=AX1; AX1=DM(pfdata_adr); AR=SETBIT 4 OF AX1; DM(pfdata_adr)=AR; AX1=DM(Buffer); RTS; LED4_RX_off: DM(Buffer)=AX1; AX1=DM(pfdata_adr); AR=CLRBIT 4 OF AX1; DM(pfdata_adr)=AR; AX1=DM(Buffer); RTS; LED4_RX_toggle: DM(Buffer)=AX1; AX1=DM(pfdata_adr); AR=TGLBIT 4 OF AX1; DM(pfdata_adr)=AR; AX1=DM(Buffer); RTS; LED5_TX_on: DM(Buffer)=AX1; AX1=DM(pfdata_adr); AR=SETBIT 5 OF AX1; DM(pfdata_adr)=AR; AX1=DM(Buffer); RTS; LED5_TX_off: DM(Buffer)=AX1; AX1=DM(pfdata_adr); AR=CLRBIT 5 OF AX1; DM(pfdata_adr)=AR; AX1=DM(Buffer); RTS; LED5_TX_toggle: DM(Buffer)=AX1; AX1=DM(pfdata_adr); AR=TGLBIT 5 OF AX1; DM(pfdata_adr)=AR; 183
185 AX1=DM(Buffer); RTS; LED6_AdressFejl_on: DM(Buffer)=AX1; AX1=DM(pfdata_adr); AR=SETBIT 6 OF AX1; DM(pfdata_adr)=AR; AX1=DM(Buffer); RTS; LED6_AdressFejl_off: DM(Buffer)=AX1; AX1=DM(pfdata_adr); AR=CLRBIT 6 OF AX1; DM(pfdata_adr)=AR; AX1=DM(Buffer); RTS; LED6_AdressFejl_toggle: DM(Buffer)=AX1; AX1=DM(pfdata_adr); AR=TGLBIT 6 OF AX1; DM(pfdata_adr)=AR; AX1=DM(Buffer); RTS; LED7_Dublering_on: DM(Buffer)=AX1; AX1=DM(pfdata_adr); AR=SETBIT 7 OF AX1; DM(pfdata_adr)=AR; AX1=DM(Buffer); RTS; LED7_Dublering_off: DM(Buffer)=AX1; AX1=DM(pfdata_adr); AR=CLRBIT 7 OF AX1; DM(pfdata_adr)=AR; AX1=DM(Buffer); RTS; LED7_Dublering_toggle: DM(Buffer)=AX1; AX1=DM(pfdata_adr); AR=TGLBIT 7 OF AX1; DM(pfdata_adr)=AR; AX1=DM(Buffer); RTS;.ENDMOD; 184
186 8.9.6 Fejl.dsp.MODULE/RAM fejl; {********************************************************* *********************************************************}.INCLUDE <const.kon>;.entry Fejl_modtagerOgSenderAdrEns;.entry Fejl_senderOgAfsenderAdresseAdrIkkeEns;.EXTERNAL LED6_AdressFejl_on;.EXTERNAL LED6_AdressFejl_off;.EXTERNAL LED6_AdressFejl_toggle;.EXTERNAL LED7_Dublering_on;.EXTERNAL LED7_Dublering_off;.EXTERNAL LED7_Dublering_toggle;.EXTERNAL SendAdr;.EXTERNAL EgenAdr;.EXTERNAL afsender_adresse; {********************************************************************** *************************************************************************} Fejl_modtagerOgSenderAdrEns: AX0=DM(SendAdr); AY0=DM(EgenAdr); AR=AX0 - AY0; IF NE JUMP ingenfejl; CALL LED6_AdressFejl_on; RTS; ingenfejl: CALL LED6_AdressFejl_off; RTS; Fejl_senderOgAfsenderAdresseAdrIkkeEns: AX0=DM(SendAdr); AY0=DM(afsender_adresse); AR=AX0 - AY0; IF NE JUMP ingendubleringsfejl; CALL LED7_Dublering_on; RTS; ingendubleringsfejl: CALL LED7_Dublering_off; RTS;.ENDMOD; nul.hex
187 8.9.8 AdrEt.hex EEEF EEEF EEEF EEEF EEEF EEEF 1111 EEEF EEEF EEEF 1111 EEEF AdrNul.hex EEEF EEEF EEEF EEEF 1111 EEEF 1111 EEEF EEEF EEEF AdrTo.hex EEEF EEEF EEEF EEEF EEEF EEEF AdrTre.hex 1111 EEEF 1111 EEEF EEEF 1111 EEEF EEEF EEEF 186
188 UART.dsp.MODULE/RAM uart; {********************************************************* * File: uart.dsp * Contains: * UART_interlisering * Trans_bit * UART_SUB *********************************************************}.INCLUDE <const.kon>; {Variable to UART} {------RS }.VAR/DM/RAM num_tx_bits; { num of tx bits including } { start and stop bits }.VAR/DM/RAM num_rx_bits; { num of data bits in a rx word } {.GLOBAL num_tx_bits;} {.GLOBAL num_rx_bits;}.var/dm/ram skalering; {.GLOBAL skalering;}.var/dm/ram forestegangsskalering; {.GLOBAL forestegangsskalering;} {-----transmit variables-----}.var/dm/ram uart_tx_buffer; { bits are tx from this buffer } {.GLOBAL uart_tx_buffer;}.var/dm/ram tx_bits_left; { contains # of bits left to tx } {.GLOBAL tx_bits_left;}.var/dm/ram main_tx_buffer; { contains the word to be txed }.GLOBAL main_tx_buffer;.var/dm/ram tx_counter; { uart txs when the count=0 } {.GLOBAL tx_counter;}.var/dm/ram tx_flag; {1=transmit request, 0=no req } {.GLOBAL tx_flag;} {-----receive variables-----}.var/dm/ram uart_rx_buffer; { bits are rx into this buffer } {.GLOBAL uart_rx_buffer;}.var/dm/ram main_rx_buffer; { contains the rx word }.VAR/DM/RAM rx_bits_left; { contains # of bits left to rx } {.GLOBAL rx_bits_left;}.var/dm/ram incomming; { 1=uart is in the middle of rx } {.GLOBAL incomming;}.var/dm/ram rx_counter; { uart clocks in a bit when = 0 } {.GLOBAL rx_counter;}.var/dm/ram rx_a_word; { signals main prog a word ready }.VAR/DM/RAM stop_bit; { 1 = stop bit period reached } {.GLOBAL stop_bit;}.global main_rx_buffer;.global rx_a_word; {-----global functions-----}.entry FIFO_til_uart;.entry UART_interlisering;.entry uart_sub; {FIFOmodt.dsp}.EXTERNAL FIFOCounterModtager;.EXTERNAL FIFOUdModtager; 187
189 {********************************************************************** * Name: UART_interlisering * input: none * output: none * * description: This function sets the timer to generate * interrupts at three times the baud rate. * It also configures Serial Port 1, (SPORT1) *,as the FLAG IN and FLAG OUT pins. * It then sets flags that indicate the UART * is ready to tx and rx. Finally the FLAG * OUT pin is set and the timer is enabled. * * notes: This function should be called at the * beginning of the main routine. **********************************************************************} UART_interlisering: {Initisering main} {imask = b# ;} {komando fra SW-UART udkommenteret for ikke at skabe konflikt med Codec opsætning} icntl = b#00010; mstat = b# ; ax0 = b# ; dm (System_Control_Reg) = ax0; {Antal bit den sender} ax0 = 10; dm(num_tx_bits) = ax0; {Antal Bit den modtager} ax0 = 8; dm(num_rx_bits) = ax0; l2 = 0; m1 = 1; { Initialize the timer to CLOCK / Baudrate } ax0=147; dm(skalering) = ax0; ax0=220; dm(forestegangsskalering) = ax0; { Initialize UART status flags } ax0=0; set flag_out; { set high for idle state } dm(tx_flag) = ax0; { no tx request } dm(incomming) = ax0; { not rxing a word } dm(rx_a_word) = ax0; { no rx word ready } dm(stop_bit) = ax0; ax0 = 1; dm(tx_counter) = ax0; { load the tx counter } { clear all pending interrupts } ifc = b# ; nop; care of ifc latency } { Enable and set up SPORT1 as FI and FO pin } ax0 = b# ; ay0 = System_Control_Reg; ar = ax0 or ay0; { enable SPORT1 } ay0 = b# ; ar = ar and ay0; { set up SPORT1 as FI/O } { Enable timer interrupt and start timer count down } ax0 = imask; ay0 = b# ; ar = ax0 or ay0; imask = ar; { enable timer int } ena timer; { start timer count down } rts; { take 188
190 {********************************************************** * Name: uart_sub * input: none * output: none * * description: This ISR is called every time the timer * expires and issues an interrupt. This * routine will xmit one bit at a time using * the flag out pin. If there is a word to be * received, the routine will shift in bits by * reading the flag in pin. * * note: Since the internal timer is running at 3x * baud rate, bits are processed only once * for every 3 timer interrupts. ***********************************************************} uart_sub: { Something to Transmit? } ax0 = dm(tx_flag); { Is there a tx request? } none = pass ax0; if eq jump receive; { if not goto receive, if yes..} transmit: { Decrement the transmit counter } ay0 = dm(tx_counter); ar = ay0-1; dm(tx_counter) = ar; { Send out a char. during this interrupt? } if ne jump receive; { if not goto receive, if yes..} { Shift out tx buffer's LSB into SR0. Test it to } { set or reset the flag out pin } sr1 = dm(uart_tx_buffer); sr0 = 0; sr = lshift sr1 by -1 (hi); dm(uart_tx_buffer) = sr1; ar = pass sr0; if ge reset flag_out; { test the sign bit of SR0} if lt set flag_out; { Reload the transmit counter } ax0 = dm(skalering); {3 interrupts later transmit again} dm(tx_counter) = ax0; { Decrement the bits left to transmit counter } ax0 = dm(tx_bits_left); ar = ax0-1; dm(tx_bits_left) = ar; if ne jump receive; { finished with current word? } { if no, goto receive without } { clearing the busy and the } { tmit request flag: tx_flag } ax0 = 0; { yes, finished with current } { word. setup status flags } dm(tx_flag) = ax0; receive: { got stop bit of the last word yet? } ax0 = dm(stop_bit); ar = pass ax0; if ne jump stop_rxed; { If rx not busy, check for a start bit, if none, exit isr } ax0 = dm(incomming); { in the middle of rx a word? } ar = pass ax0; if ne jump word_in; { yes, goto rx routine } if flag_in jump done; { no, then look for start bit } { start bit found, clear rx buffer and set busy flag } ax0 = 0; dm(uart_rx_buffer) = ax0; ax0 = 1; dm(incomming) = ax0; { set the timer counter to sample the center of the bit } ax0 = dm(forestegangsskalering); { set to 4 to adjust timeing } dm(rx_counter) = ax0; { get number of bits in a word from main program } 189
191 ax0 = dm(num_rx_bits); dm(rx_bits_left) = ax0; rts; word_in: { decrement timer counter, if expired then take in a bit } ay0 = dm(rx_counter); ar = ay0-1; dm(rx_counter) = ar; if ne jump done; { exit isr if not expired } { timer expired, shift a bit into the buffer } ay0 = 0x0100; { 1's are shifted from here } ar = dm(uart_rx_buffer); if not flag_in jump shift_zero; {flag in high or low?} ar = ar + ay0; { high, shift in a one } shift_zero: { low, shift in a zero } sr = lshift ar by -1 (lo); dm(uart_rx_buffer) = sr0; { Decrement bits left counter } ay0 = dm(rx_bits_left); ar = ay0-1; dm(rx_bits_left) = ar; { Reset the timer counter } ax0 = dm(skalering); dm(rx_counter) = ax0; if ne jump done; { more bits for current word? } ax0 = 1; { no more, wait for stop bit } dm(stop_bit) = ax0; stop_rxed: { wait till stop bit passes } ay0 = dm(rx_counter); ar = ay0-1; dm(rx_counter) = ar; if ne jump done; { stop bit period passed yet? } { No more bits left for current word, copy it to main buff } ax0 = dm(uart_rx_buffer); dm(main_rx_buffer) = ax0; { Reset status flags } ax0 = 0; dm(incomming) = ax0; dm(stop_bit) = ax0; { signal main program there is a word ready } ax0 = 1; dm(rx_a_word) = ax0; done: rts; {************************************************************************* * Name: trans_char * Input: ax1 <-- ASCII char to be transmitted * output: none * * description: This function is called in the main routine * to transmit a char using UART. It sets * the transmit flag to notify the UART that a * char is waiting to be transmitted. It then * copies the main transmit buffer to the UART * tansmit buffer with stop and start bit added **********************************************************************} FIFO_til_uart: AX0=DM(FIFOCounterModtager); AR=pass AX0; IF ne jump uart_sende; RTS; { Is the transmitter busy? Wait if it is } uart_sende: ax0 = dm(tx_flag); none = pass ax0; if eq jump uart_klar; RTS; 190
192 { The number of bits will be defined in main routine } uart_klar: ax0 = dm(num_tx_bits); dm(tx_bits_left) = ax0; { copy the char. to the internal transmit buffer } call FIFOUdModtager; dm(main_tx_buffer) = ax1; sr1 = ax0; { init SR1 to be 0 } sr0 = b# ; { adding stop bit } ar = dm(main_tx_buffer); sr = sr or lshift ar by 1 (lo); { adding start bit } dm(uart_tx_buffer) = sr0; { set the transmit flag } ax0 = 1; dm(tx_flag) = ax0; rts;.endmod; Main.dsp.MODULE/RAM/ABS=0 main; /********************************************************************** Dette program er det simpleste lille hovedprogram til brug med EZ- Lite kittet, lavet med henblik paa umndervisningen i DSP-1. Tilpasset til transcieveren **********************************************************************/.INCLUDE <const.kon>; { Subrutines in init.dsp }.EXTERNAL Sport0_Tx_IrqService;.EXTERNAL.EXTERNAL init_2181_regs; init_1847_regs; { Subrutines in sub.dsp }.EXTERNAL Sport0_Rx_IrqService;.EXTERNAL.EXTERNAL IRQE_IrqService; init_1847_abuff_ptrs;.external init_pointers; {----- Subrutines in IO.dsp }.EXTERNAL IO_Initilisering;.EXTERNAL Adresser;.EXTERNAL Fejl_modtagerOgSenderAdrEns; {-----Sender external functions-----}.external Sender_Initilisering; { External functions rs }.external UART_interlisering; {Fifo}.EXTERNAL.EXTERNAL Init_FIFO_Sender; Init_FIFO_modtager; {-----Modtager external functions-----}.external Init_modtager; {TEST}.EXTERNAL TestFlag; { Interrupt Vector Table } JUMP ResetIrqService; RTI; RTI; RTI; /*reset RTI; RTI; RTI; RTI; interrupt */ /*IRQ2 */ RTI; RTI; RTI; RTI; /*IRQL1 */ RTI; RTI; RTI; RTI; JUMP Sport0_Tx_IrqService; RTI; RTI; RTI; /*IRQL0 */ /*sport0 tx*/ 191
193 JUMP Sport0_Rx_IrqService; RTI; RTI; RTI; /*sport0 rx*/ JUMP IRQE_IrqService; RTI; RTI; RTI; RTI; RTI; RTI; RTI; /*IRQE /*bdma */ */ RTI; RTI; RTI; RTI; /*sport1 tx or IRQ1 */ RTI; RTI; RTI; RTI; /*sport1 rx or IRQ0 */ RTI; RTI; RTI; RTI; RTI; RTI; RTI; RTI; /*timer */ /*power down*/ { This is the point where the program starts after RESET } ResetIrqService: CALL init_pointers; /*Saetter M0, M4, M5. */ CALL init_1847_abuff_ptrs; /*Saetter I0, L0, I1, L1 og M1. */ CALL init_2181_regs; /*Foerst og fremmest de memory mappede. */ CALL init_1847_regs; CALL Init_FIFO_modtager; CALL Init_modtager; CALL UART_interlisering; CALL Sender_Initilisering; CALL Init_FIFO_Sender; CALL IO_Initilisering; /*FIFOmodt.dsp*/ /*modtager-dsp*/ /*UART.dsp*/ /*Sender.dsp*/ /*FIFOsend.dsp*/ /*InOut.dsp*/ {*****************************************************} { Here program execution is traped in MainLoop } again: NOP; IDLE; CALL Adresser; {Læser DIP switchene når der er tid!} CALL Fejl_modtagerOgSenderAdrEns; AY1=DM(TestFlag); AR= pass AY1; if EQ jump again;.endmod; EZKIT_LT.ACH $EZKIT $ADSP2181 $ FF paxint_pm_user t $0000 3DFF dadint_dm_user t $ 192
194 Init.dsp.MODULE/RAM initier; {********************************************************************** This module contains all initializing for EZ-KIT Lite **********************************************************************}.INCLUDE.EXTERNAL.EXTERNAL.EXTERNAL.EXTERNAL.EXTERNAL.ENTRY.ENTRY.ENTRY <const.kon>; rx_buf; tx_buf; init_cmds; init_cmds_ptr; stat_flag; init_2181_regs; init_1847_regs; Sport0_Tx_IrqService; {********************************************************************** Subrutine INIT_2181_REGS. Rutinen initierer registrene i Interface: Status : Testet og ok.. Variable : De memory mappede registre aendres. Registre : AX0. Rutiner : ingen. Kaldes af : Hovedprogram foer anden initiering } init_2181_regs: AX0=bdma_biad; DM(bdma_biad_adr)=AX0; AX0=bdma_bead; DM(bdma_bead_adr)=AX0; AX0=bdma_bdma_ctrl; DM(bdma_bdma_ctrl_adr)=AX0; AX0=pftype; DM(pftype_adr)=AX0; AX0=sport0_autobuf; DM(sport0_autobuf_adr)=AX0; AX0=sport0_rfsdiv; DM(sport0_rfsdiv_adr)=AX0; AX0=sport0_sclkdiv; DM(sport0_sclkdiv_adr)=AX0; AX0=sport0_control_reg; DM(sport0_control_reg_adr)=AX0; AX0=sport0_TX_Channels0; DM(sport0_TX_Channels0_adr)=AX0; AX0=sport0_TX_Channels1; DM(sport0_TX_Channels1_adr)=AX0; AX0=sport0_RX_Channels0; DM(sport0_RX_Channels0_adr)=AX0; 193
195 AX0=sport0_RX_Channels1; DM(sport0_RX_Channels1_adr)=AX0; AX0=DM_Wait_Reg; DM(DM_Wait_Reg_adr)=AX0; AX0=System_Control_Reg; DM(System_Control_Reg_adr)=AX0; IFC=icf_clear_irq; {Clear ventende interrupts. } NOP; ICNTL=icntl00; MSTAT=mstat_go; {Ingen nesting, level interrupts. } {Processoren fortsaetter fra intern PM ved} RTS; {en bus-grant. } {*********************************************************************} {********************************************************************** Subrutine INIT_1847_REGS. Rutinen initierer registrene i 1847 codec'et. Init_cmds bufferen initieres ved linkningen. Hvorledes er beskrevet i Var. Init_1847_abuff_ptrs skal vaere kaldt foer denne rutine kaldes, idet I1 her saettes til at pege paa tx_buf plads 1, der er initieret i Var. Interface: Status : Testet og ok. Variable : stat_flag(outp.), rx_buf(inp.), tx_buf(outp.), init_cmds(inp.). Registre : AX0, AY0, AR, AF, TX0, IMASK Pointere : I1, M1. Rutiner : next_cmd(indirekte via transmit interrupt). Kaldes af : hovedprogram } init_1847_regs: AX0=1; DM(stat_flag)=AX0; IMASK=imask_ena_tx0_irq; {Enable transmit interrupt, og ikke andet.} AX0=DM(I1,M1); {Start sending (TxIrq) ved at skive i TX0 } TX0=AX0; input } {TX0=b# : kontrolord check_init: {uden data. } AX0=DM(stat_flag); kontrolord er } {Vi venter her indtil alle AF=PASS AX0; {sendt via interruptrutinen next_cmd. IF NE JUMP check_init; } AY0=2; check_aci1: AX0=DM(rx_buf); {Efter initialiseringen tester vi status- } AR=AX0 AND AY0; igang } {ordet for om autokalibreringen er IF EQ JUMP check_aci1; {idet vi venter her, til den er check_aci2: igang. } AX0=DM(rx_buf); {Autokalibreringen er nu i gang. Nu venter} AR=AX0 AND AY0; {vi her til den er overstaaet. } 194
196 IF NE JUMP check_aci2; IDLE; interrupt, saa } {Vi venter paa et transmit AY0=0xBF3F; {vi kan aabne for venstre output kanal. AX0=DM(init_cmds+6); } {AY0=b# } AR=AX0 AND AY0; { } DM(tx_buf)=AR; IDLE; {Og det samme for hoejre output kanal.} AX0=DM(init_cmds+7); AR=AX0 AND AY0; DM(tx_buf)=AR; { } IDLE; IFC=icf_clear_irq; {Vi clearer de interrupts der venter og } NOP; IMASK=imask_ena_rx0_irq; {aabner for RX0 interruptet. } RTS; {*********************************************************************} {********************************************************************** Interruptrutine Sport0_Tx_IrqService. Rutinen initierer registrene i 1847 codec'et. Interface: Status : Testet og ok.. Variable : stat_flag(outp.), init_cmds_ptr(outp.), init_cmds(inp.), tx_buf(outp). Registre : AX0, AY0, AR Pointere : I2, M2. Rutiner : Kaldes af : SPORT0 TX irq } Sport0_Tx_IrqService: ENA SEC_REG; I2=DM(init_cmds_ptr); {Der bruges en pointer, for ikke at be- } L2=%init_cmds; AR=DM(stat_flag); {slaglaegge en pointer fast. } AR=PASS AR; IF EQ JUMP next_cmd_out; AX0=DM(I2,M1); {Hent naeste kontrolord i init_cmds, og } DM(init_cmds_ptr)=I2; DM(tx_buf)=AX0; {send det i TX slot 0. } AX0=I2; {Undersoeg om hele bufferen er sendt. Hvis} AY0=^init_cmds; {ikke saa hop ud. } AR=AX0-AY0; IF GT JUMP next_cmd_out; AX0=0xAF00; {Hvis hele bufferen er sendt, nulstilles } DM(tx_buf)=AX0; AX0=0; {MCE bit'et og flaget. } DM(stat_flag)=AX0; {reset status flag } next_cmd_out: DIS SEC_REG; RTI; {*********************************************************************}.ENDMOD; 195
197 Ptrs.dsp.MODULE/RAM ptrs; {********************************************************************** This module init all fixed DAG registers **********************************************************************}.INCLUDE <const.kon>;.external.external rx_buf; tx_buf;.entry.entry init_1847_abuff_ptrs; init_pointers; {*********************************************************************} { POINTER ANVENDELSE. } { { I0 : Fast. SPORT0 rx autobuffer. } } { L0 : do. } { { M1 : do. Fast=1. I1 : Fast. SPORT0 tx autobuffer. } } { L1 : do. } { { M1 : do. Fast=1. } } { M0 : Generel. Fast=0. Maa ikke aendres. } { { I2 : Generel i interrupts. } } { L2 : do. } { { M2 : Generel. } } { } { { I3 : Generel i subrutiner. L3 : do. } } { } { { M3 : Generel. } } { } { { I4 : L4 : } } { M4 : Fast=0. } { { I5 : } } { L5 : } { { M5 : Fast=1. } } { I6 : Generel i subrutiner. } { { L6 : do. M6 : Generel. } } { } { { I7 : Generel i subrutiner. L7 : do. } } { M7 : Generel. } { { } } {*********************************************************************} {********************************************************************** Subrutine INIT_1847_ABUFF_PTRS. Rutinen saetter pointerne til 1847 autobufferne op. Interface: 196
198 Status : Ok Variable : rx_buf(i0,l0), tx_buf(i1,l1). Pointere : I0, L0, I1, L1, M1. Kaldes af : Hovedprogram } init_1847_abuff_ptrs: I0=^rx_buf; L0=%rx_buf; I1=^tx_buf; L1=%tx_buf; M1=1; RTS; {*********************************************************************} {********************************************************************** Subrutine INIT_POINTERS. Subrutiner: Kaldes af : Hovedprogram ved opstart } init_pointers: M0=0; M4=0; M5=1; RTS; {*********************************************************************}.ENDMOD; Subr.dsp.MODULE/RAM subr; {********************************************************************** In this module subroutines are placed **********************************************************************}.INCLUDE <const.kon>; {.ENTRY declarations to make subroutines visible in other modules }.ENTRY Sport0_Rx_IrqService;.ENTRY IRQE_IrqService; {.EXTERNAL declarations for all variables used in this module } { ALL variables are placed in var.dsp.external rx_buf; }.EXTERNAL tx_buf; {FIFOsend}.EXTERNAL {FIFOmodt}.EXTERNAL {UART}.EXTERNAL.EXTERNAL {modtager}.external {sender}.external FIFOIndSender; FIFOIndModtager; uart_sub; FIFO_til_uart; modtager_main; Sender_Sub; {TEST}.EXTERNAL TestFlag; 197
199 .EXTERNAL Testout; {********************************************************************** Sport0_Rx_IrqService Interface : Status : Variable : Registre : Rutiner : Kaldes af : Hovedprogram } Sport0_Rx_IrqService: ENA SEC_REG; {AR = DM(rx_buf+1); DM(tx_buf+1) = AR; AR = DM(rx_buf+2); DM(tx_buf+2) = AR;} {FÆLLES} call uart_sub; {SENDER} call FIFOIndsender; call sender_sub; {MODTAGER} call FIFOIndModtager; call modtager_main; call FIFO_til_uart; {TEST} AY1=DM(Testout); DM(tx_buf+1) = AY1; DM(tx_buf+2) = AY1; DIS SEC_REG; RTI; {*********************************************************************} {********************************************************************** IRQE_IrqService Interface : Status : Variable : Registre : Rutiner : Kaldes af : Hovedprogram } IRQE_IrqService: AY1=1; DM(TestFlag)=AY1; RTI; {*********************************************************************}.ENDMOD; 198
200 Var.dsp.MODULE/RAM variable; {********************************************************************** Dette modul bruges til variabelerklaeringer i forbindelse med programmer der skal koere paa ez_lite kittet. **********************************************************************}.INCLUDE <const.kon>; {********************************************************************** Variable tilknyttet 1847 codec' et. Initiering af komandobuffer til initiering af 1847 codec, samt af transmitbuffer til samme. Subrutiner: init_1847_regs, next_cmd }.VAR/DM/RAM/CIRC rx_buf[3]; {CodecStatus,LData,RData }.GLOBAL rx_buf;.var/dm/ram/circ.global tx_buf[3]; tx_buf; {CodecCmds,LData,RData }.VAR/DM/RAM/CIRC init_cmds[13]; {CodecCmds }.GLOBAL.VAR/DM/RAM init_cmds; init_cmds_ptr; { }.GLOBAL init_cmds_ptr;.init.var/dm init_cmds_ptr: ^init_cmds; stat_flag; {For initiering af codec. }.GLOBAL stat_flag; { }.INIT tx_buf: b# , 0x0000, 0x0000;.INIT init_cmds: b# , {Left input control reg } {b7-6: {0=left line 1 } } {1=left aux 1 } {2=left line 2 } {3=left line 1 post-mixed loopback } {b5-4: res } {b3-0: left input gain x 1.5 db } { } b# , {Right input control reg } {b7-6: } {0=right line 1 {1=right aux 1 } } {2=right line 2 } {3=right line 1 post-mixed loopback} {b5-4: res } {b3-0: right input gain x 1.5 db } { } b# , {left aux 1 control reg } {b7 : 1=left aux 1 mute } {b6-5: res } {b4-0: gain/atten x1.5, 08=0dB, 0=12dB} { } b# , {right aux 1 control reg } {b7 : 1=right aux 1 mute } {b6-5: res } {b4-0: gain/atten x1.5, 08=0dB, 00=12dB } { } b# , 199
201 200 {left aux 2 control reg } {b7 : 1=left aux 2 mute {b6-5: res } } {b4-0: gain/atten x1.5, 08=0dB,00=12dB } { } b# , {right aux 2 control reg } {b7 : 1=right aux 2 mute } {b6-5: res {b4-0: gain/atten x1.5, 08=0dB, } 00=12dB } { } b# , {left DAC control reg } {b7 : 1=left DAC mute } {b6 : res } {b5-0: attenuation x 1.5 db } { } b# , {right DAC control reg } {b7 : 1=right DAC mute } {b6 : res } {b5-0: attenuation x 1.5 db } { } b# , {data format register } {b7 : res {b5-6: } } {0=8-bit unsigned linear PCM } {1=8-bit u-law companded {2=16-bit signed linear PCM } } {3=8-bit A-law companded } {b4 : {0=mono, 1=stereo } } {b0-3: sampling frequency } {0= 8. {1= } } {2= 16. } {3= {4= } } {5= 18.9 } {6= 32. {7= } } {8=. } {9= 37.8 {a=. } } {b= 44.1 } {c= 48. {d= } } {e= 9.6 } {f= {(b0) : 0=XTAL MHz; } } { 1=XTAL MHz } { } b# , {interface configuration reg } {b7-4: res } {b3 : 1=autocalibrate } {b2-1: res } {b0 : 1=playback enabled } { } b# , {pin control reg } {b7 : logic state of pin XCTL1 } {b6 : logic state of pin XCTL0 }
202 {b5 : master - 1=tri-state CLKOUT } {slave - x=tri-state CLKOUT } {b4-0: res } { } b# , {miscellaneous information reg } {b7 : 1=16 slots per frame, 0=32 s.p.f } {b6 : 1=2-wire system, 0=1-wire system } {b5-0: res } { } b# ; {digital mix control reg } {b7-2: attenuation x 1.5 db } {b1 : res } {b0 : 1=digital mix enabled } {*********************************************************************}.ENDMOD; Const.kon {********************************************************************** Dette modul er et.include modul, der rummer konstanter til ez-lite kittet. **********************************************************************} {********************************************************************** Adresser til 2181'es memory mappede registre }.CONST idma_adr= 0x3fe0;.CONST bdma_biad_adr=.const bdma_bead_adr= 0x3fe1; 0x3fe2;.CONST bdma_bdma_ctrl_adr= 0x3fe3;.CONST bdma_bwcount_adr=.const pfdata_adr= 0x3fe4; 0x3fe5;.CONST pftype_adr= 0x3fe6;.CONST sport1_autobuf_adr=.const sport1_rfsdiv_adr=.const sport1_sclkdiv_adr=.const sport1_control_reg_adr=.const sport0_autobuf_adr=.const sport0_rfsdiv_adr=.const sport0_sclkdiv_adr=.const sport0_control_reg_adr=.const sport0_tx_channels0_adr=.const sport0_tx_channels1_adr=.const sport0_rx_channels0_adr=.const sport0_rx_channels1_adr=.const tscale_adr=.const tcount_adr=.const tperiod_adr=.const dm_wait_reg_adr=.const system_control_reg_adr= 0x3fef; 0x3ff0; 0x3ff1; 0x3ff2; 0x3ff3; 0x3ff4; 0x3ff5; 0x3ff6; 0x3ff7; 0x3ff8; 0x3ff9; 0x3ffa; 0x3ffb; 0x3ffc; 0x3ffd; 0x3ffe; 0x3fff; {********************************************************************** Indhold til 2181'es memory mappede registre }.CONST idma= 0;.CONST bdma_biad= 0x0010; {Peger paa Init_Cmds. }.CONST bdma_bead=.const bdma_bdma_ctrl= 0; b# ;.const bdma_bwcount= 13;.CONST pftype=.const pfdata= b# ; 0;.CONST sport1_autobuf= 0;.CONST sport1_rfsdiv= 0; 201
203 .CONST sport1_sclkdiv= 0;.CONST sport1_control_reg=.const sport0_autobuf= 0; b# ;.const sport0_rfsdiv= 0;.CONST sport0_sclkdiv=.const sport0_control_reg= 0; b# ;.const sport0_tx_channels0= b# ;.const sport0_tx_channels1=.const sport0_rx_channels0= b# ; b# ;.const sport0_rx_channels1= b# ;.const tscale=.const tcount= 0; 0;.CONST tperiod= 0;.CONST dm_wait_reg=.const system_control_reg= b# ; b# ;.const icf_clear_irq= b# ; {Clearer alle intrrpts. }.CONST icntl00= b#00000; {Ingen nesting..const mstat_go= b# ; Level. } {Timer er enabled}.const imask_ena_tx0_irq= b# ;.const imask_ena_rx0_irq= b# ; {Ena timer, irqe, rx0. } {********************************************************************** 2181'es registre og memory mappede registre sport0_autobuf= b# ; *_receive autobuffering 0=off, 1=on * transmit autobuffering 0=off, 1=on ** receive M *** receive I ** transmitm *** transmiti * BIASRND MAC biased rounding control bit * CLKODIS CLKOUT Disable Control Bit sport0_rfsdiv=0; rfsdiv=sclk Hz/RFS Hz - 1 sport0_sclkdiv=0; SCLK=CLKOUT/(2(sclkdiv + 1) sport0_control_reg= b# ; ****_SLEN Serial Word Length - 1 ** DTYPE Data Format * INVFRS Invert Receive Frame Sync * INVTFS Invert Transmit Frame Sync * IRFS Internal receive Frame Sync Enable * ITFS Internal transmit Frame Sync Enable * TFSW Transmit Frame Sync Width * TFSR Transmit Frame Sync Required * RFSW Receive Frame sync Width * RFSR Receive Frame Sync Required * ISCLK Internal Serial Clock Generation * MCE Multichannel Enable Specielt i multichannel mode faaes: ****_SLEN Serial Word Length - 1 ** DTYPE Data Format * INVFRS Invert Receive Frame Sync * INVTDV Invert Transmit Data Valid * IRFS Internal receive Frame Sync Enable * ITFS Internal transmit Frame Sync Enable **** MFD Multichannel Frame Delay * ISCLK Internal Serial Clock Generation * MCE Multichannel Enable 202
204 sport0_tx_channels0= b# ; ****************_transmit word enables: channel_no.=bit_no sport0_tx_channels1= b# ; ****************_transmit word enables: channel_no.=bit_no sport0_rx_channels0= b# ; ****************_receive word enables: channel_no.=bit_no sport0_rx_channels1= b# ; ****************_receive word enables: channel_no.=bit_no DM_Wait_Reg= b# ; ***_IOWAIT0 *** IOWAIT1 *** IOWAIT2 *** IOWAIT3 *** DWAIT * udefineret=0 BWCOUNT= b# ; **************_bit 0-13 BDMA word count. BIAD= b# ; **************_bit 0-13 BDMA internal address. BEAD= b# ; **************_bit 0-13 BDMA external address. BDMA Control= b# ; **_BType:00=24b PM, 01=16b DM, 10=8msb DM, 11=8lsb DM. * BDir:0=from BM, 1=to BM. * BCR:Prog.ex. during BDMA, Inhib. prog.ex. during BDMA. **** Not used. ******** BMPage. PF_Type= b# ; ********_PFType. **** CMSel. *** BMWait. * Not used. System_Control_Reg= b# ; ***_PWAIT program Memory Wait States ******* Uden betydning for Saettes til 0 * SPORT1 Configure. 1=seriel port * SPORT1 Enable * SPORT0 Enable *** Uden betydning for Saettes til bit 0-7:clear bit. bit 8-15:force bit. IFC=b# ; *_Timer * SPORT1 rx eller IRQ0 * SPORT1 tx eller IRQ1 * BDMA interrupt * IRQE 203
205 * SPORT0 rx * SPORT0 tx * IRQ2 * Timer * SPORT1 rx eller IRQ0 * SPORT1 tx eller IRQ1 * BDMA interrupt * IRQE * SPORT0 rx * SPORT0 tx * IRQ2 ICNTL=b#00000; *_IRQ0 sensitivity. 0=level. 1=edge * IRQ1 sensitivity * IRQ2 sensitivity * Bruges ikke=0 * Interrupt Nesting. 1=Enable MSTAT=b# ; *_Data register bank select * FFT bit reverse mode (DAG1) * ALU overflow latch mode, 1=sticky * AR saturation mode, 1=saturate, 0=wrap * MAC result, 0=fractional, 1=integer * Timer Enable * Go Mode **********************************************************************} off PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\ADI_DSP\21XX\BIN; SET ADI_DSP=C:\ADI_DSP asm21 main > asmout.txt asm21 init >> asmout.txt asm21 subr >> asmout.txt asm21 var >> asmout.txt asm21 ptrs >> asmout.txt asm21 FIFOsend >> asmout.txt asm21 FIFOmodt >> asmout.txt asm21 uart >> asmout.txt asm21 MODTAGER >> asmout.txt asm21 inout >> asmout.txt asm21 sender >> asmout.txt asm21 fejl >> asmout.txt ld21 main subr var ptrs init FIFOsend FIFOmodt uart modtager inout sender fejl -a ezkit_lt -e system -x -g >> asmout.txt type asmout.txt pause 204
206 9 Underskrifter Århus den 16. juni Rune Søe-Knudsen Morten Rask Søren Rasmussen Jess Grinsted Thomas Jørgensen Robert John Guilford Johnny Rene Petersen 205
Modulationer i trådløs kommunikation
Modulationer i trådløs kommunikation Valg af modulationstype er et af de vigtigste valg, når man vil lave trådløs kommunikation. Den rigtige modulationstype kan afgøre, om du kan fordoble din rækkevidde
Der er derfor, for at alle kan sende, kun tilladt, at sende intermitterende. Altså korte pakker. ( Dette skal dog verificeres!!)
MHz KIT Rev: /- Det er ikke tilladt, at man bare udsender radiobølger på den frekvens, man ønsker. Forskellige frekvenser er udlagt til forskellige formål. Nogle til politiet, militæret, FM-radio-transmission,
Øvelsesvejledning. Frekvenskarakteristikker Simulering og realisering af passive filtre.
ELT2, Passive filter, frekvenskarakteristikker Øvelsesvejledning Frekvenskarakteristikker Simulering og realisering af passive filtre. Øvelsen består af 3 dele: 1. En beregningsdel som du forventes at
MCE2040 SERIEL KOMMUNIKATIONSMODUL
Kokkedal Industripark 4 DK-2980 Kokkedal DANMARK Tlf.: +45 49 18 01 00 Fax: +45 49 18 02 00 MCE2040 SERIEL KOMMUNIKATIONSMODUL Overførsel af status og vægt for digitale vejeceller via simpel PC/PLC protokol
Lidt tankevirksomhed i fbm. udvikling og fremstilling af en 23 transverter
Lidt tankevirksomhed i fbm. udvikling og fremstilling af en 23 transverter Af Istvan Zarnoczay OZ1EYZ 29. august 2008 Krav/ønsker osv. Inden man går i gang med sådan et projekt skal man gøre sig klart
Interferens. Afstand (d interferer ) til det interfererende System. Afstand (d) mellem sender og modtager
Interferens Interferens er et alvorligt problem for short range enheder, men der er muligheder for at teste resistensen over for interferensen. I denne artikel beskrives nogle af de konsekvenser og scenarier,
WEA-Base Brugervejledning til vejetransmitter
WEA-Base Brugervejledning til vejetransmitter Version 3.4 WEA-Base Brugervejledning til vejetransmitter WEA-Base Brugervejledning til vejetransmitter Version 3.4 Indholdsfortegnelse 1. Tekniske data...
QUICKVEJLEDNING til Piccolo Light
QUICKVEJLEDNING til Piccolo Light Montering 1. Piccolo Light kan installeres uden brug af kommunikation via GSM, men installeres et SIM-kort i enheden, vil man bl.a. kunne få alarmer som sms og email.
QUICKVEJLEDNING til multiguard DIN6. Montering
QUICKVEJLEDNING til multiguard DIN6 Montering 1. Klargør et SIM-kort, så pinkoden er 1234 eller deaktiveret. Monter kortet i enheden. Enheden har nu 1234 som password eller kører uden password. Kortet
FireBUS PARKERINGSVENTILATION
FireBUS PARKERINGSVENTILATION QUICK GUIDE Quick guiden beskriver hvordan et mindre anlæg kan installeres og idriftsættes. Alle moduler tildeles en individuel adresse på DIP-switchen i modulet Modulerne
ELCANIC A/S. ENERGY METER Type ENG110. Version 3.00. Inkl. PC program: ENG110. Version 3.00. Betjeningsvejledning
ELCANIC A/S ENERGY METER Type ENG110 Version 3.00 Inkl. PC program: ENG110 Version 3.00 Betjeningsvejledning 1/11 Generelt: ELCANIC A/S ENERGY METER Type ENG110 er et microprocessor styret instrument til
Allan Nelsson - OZ5XN. Licenced since 1970
Allan Nelsson - OZ5XN Licenced since 1970 WSPR Weak Signal Propagation Reporter WSPR udtales whisper (som at hviske) WSPR er et digitalt beaconsystem (4-FSK) WSPR rapporteres af modtagende stationer til
Journal JTAG: Udarbejde af: Benjamin Grydehøj I samarbejde med PDA Projektgruppen. Elektronikteknologafdelingen på Erhvervsakademi Fyn.
Journal JTAG: Udarbejde af: Benjamin Grydehøj I samarbejde med PDA Projektgruppen Elektronikteknologafdelingen på Erhvervsakademi Fyn. Journal JTAG Xilinx XC9536 29-9-3 Generel beskrivelse af JTAG: JTAG:
SD2DUG24. Dupline bus masterkanalgenerator. Fordele. Beskrivelse
Dupline bus masterkanalgenerator Fordele Integreret system. Dupline er varemærket for Carlo Gavazzi's 2- og 3-leder bus-system. Omkostningsbesparende. Bussystemet er en velafprøvet metode til at reducere
Hold 6 Tirsdag. Kristian Krøier, Jacob Christiansen & Thomas Duerlund Jensen Fag: ELA Lærer: Jan Petersen (JPe) Dato for aflevering: 29.
ELA journal: Øvelse 3 Grundlæggende Op. Amp. Koblinger. Dato for øvelse:. nov. 00 & 9. nov. 00 Hold 6 Tirsdag Kristian Krøier, Jacob Christiansen & Thomas Duerlund Jensen Fag: ELA Lærer: Jan Petersen (JPe)
Trådløs Radio modtager
Trådløs Radio modtager Installations vejledning for type: RRA85-C2V, 2 relæer, 230VAC RRA85-C2P, 2 relæer, 12/24 AC/DC RRA85-C4V, 4 relæer, 230VAC RRA85-C4P, 4 relæer, 12/24 AC/DC IP 44 DanZafe 1 I. PRODUKTBESKRIVELSE
Nye krav til måling af RF-emission > 1 GHz
Nye krav til måling af RF-emission > 1 GHz Der findes i dag stadig flere produkter, der kommunikerer i frekvensområdet over 1 GHz. Samtidig øges den interne klokfrekvens i moderne elektronik, mens kravene
SunFlux Varenr.: 03104
SunFlux Varenr.: 03104 Guide og specifikationer for SunFlux Master Sensor LED loftlampe m. RF mikrobølge sensor & Master-Master trådløst netværk SunFlux Master Sensor Lampe V.2. er fjerde generations mikrobølgesensor
SPIDER Quick guide. DATO: August 2017 FORHANDLER: WASYS A/S. Langebjergvænget Roskilde
SPIDER Quick guide DATO: August 2017 FORHANDLER: WASYS A/S Langebjergvænget 18 4000 Roskilde +45 7221 7979 Indhold Om SPIDER... 3 Funktioner ved SPIDER... 3 Spændingsforsyning... 3 Installation og fysiske
Projekt. Analog Effektforstærker.
Projekt. Analog Effektforstærker. Udarbejdet af: Klaus Jørgensen. Gruppe: Klaus Jørgensen Og Morten From Jacobsen. It og Elektronikteknolog. Erhvervsakademiet Fyn Udarbejdet i perioden: 7/0-03 /-03 Vejledere:
Arduino Programmering
Microcontroller, Arduino I teknologi skal vi lære at lave programmer til uc for at have muligheden til eksamen at kunne lave intelligente el-produkter. I hvert fald skal vi have set mulighederne, og forstået
MCE9637 DeviceNet Modul
Kokkedal Industripark 4 DK-2980 Kokkedal DANMARK Tlf: +45 49 18 01 00 Fax: +45 49 18 02 00 MCE9637 DeviceNet Modul MCE9637 til overførsel af status og vægt for digitale vejeceller Gælder for: PIC nr.:
ELCANIC A/S Counter Type CNT150 Version 2.00 Inkl. PC programmet: Cnt150 Version 3.00 Betjeningsvejledning
ELCANIC A/S Counter Type CNT150 Version 2.00 Inkl. PC programmet: Cnt150 Version 3.00 Betjeningsvejledning Generelt: ELCANIC A/S COUNTER Type CNT150 er en microprocessor baseret tæller. Specielt designet
2x50 ETHERNET MODUL. RS485 slave med Ethernet-IP. Gælder for: Program nr.: AUXSLAVE v1 Dokument nr.: 0422md2x50-2v1 Dato:
Kokkedal Industripark 4 DK-2980 Kokkedal Denmark [email protected] Tel +45 49 180 100 Fax +45 49 180 200 2x50 ETHERNET MODUL RS485 slave med Ethernet-IP Gælder for: Program nr.: AUXSLAVE.140422.2v1 Dokument
Transceiver målinger.
Transceiver målinger. Denne gang senderen - teori og lidt praksis. Varighed 45 min. EDR Horsens Afdeling, 12. april. 2018, OZ2OE Transceiver måling - målinger kan kræve masser af udstyr Sender måling 1)
Total systembeskrivelse af AD1847
Total systembeskrivelse af AD1847 Af Anna Hampen Jens Jørgen Nielsen Johannes Bjerrum Johnny Nielsen 3.semester HIH Anna Hampen, Jens Nielsen, Johannes Bjerrum, Johnny Nielsen 1 Indholdsfortegnelse Indledning...3
Signalbehandling og matematik 1 (Tidsdiskrete signaler og systemer)
Signalbehandling og matematik 1 (Tidsdiskrete signaler og systemer) Session 1. Sekvenser, diskrete systemer, Lineære systemer, foldning og lineære tidsinvariante systemer Ved Samuel Schmidt [email protected]
Microcontroller, Arduino
Microcontroller, Arduino Programmerbar elektronik. uc Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Forstå princippet i programmering af en uc og se mulighederne. Programmeringen
FireBUS BRANDSIKRINGSAUTOMATIK For spjældsikrede og røgventilerede systemer
FireBUS BRANDSIKRINGSAUTOMATIK For spjældsikrede og røgventilerede systemer QUICK GUIDE For anlæg med mindre end 12 spjæld og mindre end 100 m kabel-længde er der ikke behov for den store planlægning,
Dæmpet harmonisk oscillator
FY01 Obligatorisk laboratorieøvelse Dæmpet harmonisk oscillator Hold E: Hold: D1 Jacob Christiansen Afleveringsdato: 4. april 003 Morten Olesen Andreas Lyder Indholdsfortegnelse Indholdsfortegnelse 1 Formål...3
DSP Digitale signal behandling Lkaa
DSP Digitale signal behandling 213 Lkaa Ugens progam Mandag Tirsdag Onsdag Torsdag Fredag Digitale signaler FFT Filter Ålborg Flyvevåbnet R&S Ålborg FPGA og DSP samt rundvisni ng Filter signal FIR filter
Mean Well, LCM-serie installations vejledning.
Egenskaber: 180 -> 295 VAC (LCM-25: 180 277 VAC) Indbygget aktivt power factor funktion Udgangsstrøm indstilles med DIP kontakter Indbygget DALI interface og simpel kontakt dæmpning (DA version) Indbygget
Brugervejledning for Modtager RX 300
DENNE BRUGERVEJLEDNING GÆLDER FRA SOFTWARE VERSION 2.2 Brugervejledning for Modtager RX 300 KNOP ELEKTRONIK A/S Fabriksvej 20=7600 Struer=Mail: [email protected]=web: www.knop.dk=tlf.: 9784 0444=Fax.: 9784
QUICKVEJLEDNING til multiguard Master IO. Montering
QUICKVEJLEDNING til multiguard Master IO Montering 1. Klargør et SIM-kort, så pinkoden er 1234 eller deaktiveret. Monter kortet i enheden. Enheden har nu 1234 som password eller kører uden password. Kortet
MAGNETISK LÆNGDE MÅLESYSTEM
SERIE MIX MAGNETISK LÆNGDE MÅLESYSTEM Ideel for aggressive miljøer Berøringsløs måling Opløsning fra 1,0 til 0,00 mm Mulighed for reference puls Firkant digital "Sensor" output signal i TTL eller HTL Vel
GT2000 GT2000. Brugervejledning
Brugervejledning www.gsmteknik.dk 20.2.2019 Side 1 Tekniske specifikationer Spænding Strømforbrug GSM frekvenser Antal kombi indgange Belastning relæudgang Arbejdstemperatur 9-30 VDC typisk 12VDC eller
Ingeniørhøjskolen i Århus 2006 Transceiver Projektrapport Gruppe 3
Transceiver til trådløst PC-lokalnet Projektrapport 4. Semester Gruppe 3 Forår 2006 - afleveret den 16. juni 2006 Projektvejleder: John Rohde Søren Rasmussen Stud. nr.: 02288 Johnny Rene Petersen Stud.
AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund
AVR MP3 29-05-08 Indholdsfortegnelse 1 Introduktion...2 2 Udviklingsmiljø...2 3 Beskrivelse af systemet...3 3.1 VS1001k...3 3.2 MP3 file formatet...6 4 Konklusion...6 5 Litteratur liste...6 6 Illustrations
Fag: Projekt E1PRJ1 Emne: Kravspecifikation Softdrink-Automat Gruppe: 6 Dato: 10. april 2003 Medlemmer: Benjamin Sørensen, Joanna Christensen, Jacob
Fag: Projekt E1PRJ1 Emne: Kravspecifikation Softdrink-Automat Gruppe: 6 Dato: 10. april 2003 Medlemmer: Benjamin Sørensen, Joanna Christensen, Jacob Nielsen, Jesper Kock, Klaus Eriksen, Mikkel Larsen og
System Arkitektur og Integration
Mikael Svenstrup System Arkitektur og Integration 1/24 System Arkitektur og Integration MM11: Seriel kommunikation 2 (SW) Indhold Mikael Svenstrup System Arkitektur og Integration 2/24 Tidligere har i
Dansk Mink Papir. Teknisk brugermanual
Dansk Mink Papir Teknisk brugermanual Styring til FIX tørrekasse Beskrivelse Enheden styrer en AC blæser-motor via en relæudgang. Betjening foregår via et tastatur og et display, og brugeren kan vælge
TRUST WIRELESS VIDEO & DVD VIEWER
TRUST WIRELESS VIDEO & DVD VIEWER Brugervejledning Version 1.0 1 1. Æskens indhold Kontroller venligst æskens indhold. Den skal indeholde følgende: 1. Transmitter (sender) 2. Modtager 3. Strømforsyning
Generelle specifikationer.
8 Kanals sender / modtager system Sender Modtager Generelle specifikationer. F21 E2 8 Enkelt tryks knapper Hvert tryk kan programmeres individuelt eller I forbindelse med andre. Knapperne kan blandt andet
Arduinostyret klimaanlæg Afsluttende projekt informationsteknologi B
Arduinostyret klimaanlæg Afsluttende projekt informationsteknologi B Udarbejdet af: Mathias R W Sørensen, klasse 3.4 Udleveringsdato: 02-03-2012 Afleveringsdato: 11-05-2012 IT-vejleder: Karl G. Bjarnason
Soolai BRUGERVEJLEDNING SPL-32R / SPL-32T
Soolai DK BRUGERVEJLEDNING SPL-32R / SPL-32T Indholdsfortegnelse Tillykke købet af din Soolai SPL-32R / SPL-32T!... 4 Specifikationer... 4 Trådløs modtager SPL-32R funktioner... 5 SPL-32R betjeningsvejledning...
Analoge indgange og A/D konvertering. Analoge udgange
Programmering for begyndere Brug af Arduino Programmeringskursus Analoge indgange og A/D konvertering Analoge udgange Knud Krogsgaard Jensen OZ1QK Oversigt Oversigt over i aften: A/D konvertering iterations
EVA LED CANDLE. - levende LED lys. NEWTEK Kærvej 39, DK-5220 Odense SØ +45 2124 2454 / [email protected] og +45 2184 3715 / gea@newtek.
EVA LED CANDLE - levende LED lys Hollandske EVA Optic B.V. har specialiseret sig indenfor udvikling af høj kvalitets LED løsninger til specielle applikationer. Alle produkter udvikles og fremstilles i
En krystalstabil oscillator til dit næste projekt
En krystalstabil oscillator til dit næste projekt Af OZ6YM, Palle A. Andersen Ved et tilfælde, medens jeg en dag sat og surfede lidt på nettet, faldt jeg over en konstruktion af en VFO. Dem er der et hav
Mean Well, LCM-serie installations vejledning.
Egenskaber: 180 -> 295 VAC (LCM-25: 180 277 VAC) Indbygget aktivt power factor funktion Udgangsstrøm indstilles med DIP kontakter Indbygget DALI interface og simpel kontakt dæmpning (DA version) Indbygget
15. Digital kode vælger (hvid DIP switch) 16. Kanal vælger (gul DIP switch) 17. Batteri hus
Babyalarm MBF 8020 DK 1.. INDHOLD 1 x sender med integreret oplader, 1 x modtager, 1x ladestation for oplader 2 x strømforsyninger, 2 x specielle opladte batteri pakker 1 x Bruger manual 2.. KOMPONENTER
MANUAL FANTRONIC 20AMP. TRIAC SLAVEENHED FOR VENTILATION VER:FAN 1.1 SKIOLD GØR EN FORSKEL!
MANUAL SKIOLD GØR EN FORSKEL! FANTRONIC 20AMP. TRIAC SLAVEENHED FOR VENTILATION VER:FAN 1.1 981 002 317 Ver. 01 11-03-2013 Indhold 1. INTRODUKTION... 4 2. BESKRIVELSE FANTRONIC... 5 2.1 SÅDAN FUNGERER
Datamaters arkitektur og programmering
Mikael Svenstrup Datamaters arkitektur og programmering 1/24 Datamaters arkitektur og programmering MM11: Seriel kommunikation 2 (SW) Indhold Mikael Svenstrup Datamaters arkitektur og programmering 2/24
Analog Øvelser. Version. A.1 Afladning af kondensator. Opbyg følgende kredsløb: U TL = 70 % L TL = 50 %
A.1 Afladning af kondensator Opbyg følgende kredsløb: U TL = 70 % L TL = 50 % Når knappen har været aktiveret, ønskes lys i D1 i 30 sekunder. Brug formlen U C U start e t RC Beskriv kredsløbet Find komponenter.
Nedenstående opgaver er lavet til en Allen-Bradley PLC, men uden videre tilpasses andre PLC typer.
PLC, analogteknik Øvelse 1 Nedenstående opgaver er lavet til en Allen-Bradley PLC, men uden videre tilpasses andre PLC typer. Timer 1.1 "TON" Timer on delay: I skal konstruerer en styring, hvor en lampe
Hi-Fi forstærker med digital styring
Hi-Fi forstærker med digital styring POWER VOLUME VÆLGER BAS DISKANT MUTE OP NED MUTE Klass #39 P3 PROJEKT 008 GRUPPE 39 INSTITUT FOR ELEKTRONISKE SYSTEMER AALBORG UNIVERSITET DEN. 7 DECEMBER 008 Titel:
Video Projector Controller. Brugermanual
Jægergårdsgade 152/05A DK-8000 Aarhus C DENMARK WWW.WAHLBERG.DK l Video Projector Controller Brugermanual WWW.WAHLBERG.DK TELEPHONE +45 86 18 14 20 CELL PHONE +45 40 52 20 88 EMAIL: [email protected] Feb
Microcontroller, Arduino
Microcontroller, Arduino Kompendium til Arduino-programmering i Teknologi. Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Vi skal forstå princippet i programmering af en uc og se
2/3 Akset digital tæller
SERIE Z59E 2/3 Akset digital tæller for Elgo Magnetisk målebånd og / eller Encoder ELGO - ELECTRIC Gerätebau und Steuerungstechnik GMBH D - 78239 Rielasingen, Postfach 11 30, Carl - Benz - Strafle 1 Telefon
PAR-600-CO2. Datablad. ØLAND A/S Vi arbejder for din succes Energivej 3-7, 2750 Ballerup, Tel. 7020 1911, Fax 4453 1051 www.oeland.
-DK-17-01-08 Anvendelse Øland automatik PAR-600- anvendes, hvor der ønskes at måle og eller/regulerer rumluftens indhold, temperatur og relativ fugtighed. Automatikken er særdeles velegnet til styring
Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering...
Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering... 3 Kildekoden... 4 Variabler... 4 Setup... 4 Loop... 4 Indledning
QUICKVEJLEDNING til 4-moduler. Montering
QUICKVEJLEDNING til 4-moduler Montering 1. Klargør et SIM-kort, så pinkoden er 1234 eller deaktiveret. Monter kortet i enheden. Enheden har nu 1234 som password eller kører uden password. Kortet vendes
Spektrumrepræsentation
Spektrumrepræsentation (Kapitel 3) Jens D. Andersen Datalogisk Institut Københavns Universitet p.1/35 $ $ $ Spektrumrepræsentation Matematisk repræsentation af en sinusoide: hvor "! er en fasor. Mere komplicerede
4. Semesterprojekt System Arkitektur. MyP3000 I4PRJ4 E2004
Ingeniørhøjskolen i Århus 20. december 2004 IKT Dalgas Avenue 2 8000 Århus C 4. Semesterprojekt System Arkitektur MyP3000 I4PRJ4 E2004 Gruppe 4: Benjamin Sørensen, 02284 Tomas Stæhr Berg, 03539 Nikki Ashton,
Opgaver - PLC - analogteknik - forbindelsesteknik...3 Opgaver - PLC - analogteknik - programmering...9
PLC - analogteknik INDHOLDSFORTEGNELSE Opgaver - PLC - analogteknik - forbindelsesteknik...3 Opgaver - PLC - analogteknik - programmering...9 2-20 Rekv. 0 Prod. 20-11-2005-21:51 Ordre 000 EFU OPGAVER -
Brugervejledning. Trådløs HD Sender & Modtager Sæt
Brugervejledning Trådløs HD Sender & Modtager Sæt Indholdsfortegnelse Functions and features... Fejl! Bogmærke er ikke defineret. Package contents... Fejl! Bogmærke er ikke defineret. 1. Product overview...
GSM / SMS dør/port kontrol enhed
11-07-2013 GSM / SMS dør/port kontrol enhed 6 stk. Digitale indgange med egen tekst besked via SMS 4 stk. Udgange med aktivering via SMS besked 4 stk. Administrator telefonnumre der modtager SMS alarm
Sampling. Reguleringsteknik for Grundfos Lektion 6. Jan Bendtsen
Sampling Reguleringsteknik for Grundfos Lektion 6 Jan Bendtsen Indhold Basal sampling A/D-konvertering Nyquist-frekvens Kvantisering Aliasing Feedbacksystemer Eksempel: servokontrol af motor Strøm til
QUICKVEJLEDNING til 4-moduler. Montering
QUICKVEJLEDNING til 4-moduler Montering 1. Klargør et SIM-kort, så pinkoden er 1234 eller deaktiveret. Monter kortet i enheden. Enheden har nu 1234 som password eller kører uden password. Kortet vendes
KOMPONENT BESKRIVELSE
Beskrivelse : S12-20-8A tegningsnummer 630014 Program som styrer 5 individuelle trykforløb på samme tid. Kan køre med intern tryk-reservoir. Kommunikerer med PC-program 714014 Dato Sign. Beskrivelse af
Baofeng/Pofung GT-3 mk II GT-3TP mk III. Brugervejledning. v Kinaradio.dk
Baofeng/Pofung GT-3 mk II GT-3TP mk III Brugervejledning v. 2.1 Kinaradio.dk 1 Tastaturlayout og funktioner: UV5R/GT-3 Layout 1. Antenne 2. LED lommelygte 3. ON/OFF/VOLUME 4. LCD 5. Side knap 1/CALL (radio/alarm)
Testsignaler til kontrol af en målekæde
20. marts 2007 RL 12/07 OFC/THP/CB/lm MILJØSTYRELSENS Testsignaler til kontrol af en målekæde Resumé Der er udarbejdet testsignaler, som gør det muligt at kontrollere en samlet målekæde. Testsignalerne,
SSI-9001 IP65. Installations vejledning. SSIHuset v/svane Electronic ApS. GSM fjern kontrol og alarm system
SSI-9001 IP65 GSM fjern kontrol og alarm system Installations vejledning SSIHuset v/svane Electronic ApS Vejledning Kontakt Tænd/sluk 1 - Strømforsyning: Forbundet til egen 12V / 1.5A strømforsyning (*)
Velkommen til. EDR Frederikssund Afdelings Almen elektronik kursus. Steen Gruby OZ9ZI
Emne 18: Måleteknik Velkommen til EDR Frederikssund Afdelings Steen Gruby 1 Emne 18: Måleteknik I øvrigt Tidsrum :1900 2200 I pause ca. i midten Toilettet er i gangen mellem køkken og dette lokale De der
www.ic-electronic.com
www.ic-electronic.com Soft starter med indbygget motorbeskyttelse, strøm og spændingskontrol 3 faset kontrolleret med indbygget by-pass Nominel driftspænding 400VAC Frekvens 45... 65Hz selvindstilling
En Krystalstabil Oscillator til dit næste projekt
1 En Krystalstabil Oscillator til dit næste projekt Efteråret 2017, af OZ6YM, Palle A. Andersen Ved et tilfælde, medens jeg en dag sat og surfede lidt på nettet, faldt jeg over en konstruktion af en VFO.
4X29 ANALOG SYSTEM. Overførsel af vægt via analogt udgangssignal
Kokkedal Industripark 4 DK-2980 Kokkedal Denmark [email protected] Tel +45 49 180 100 Fax +45 49 180 200 4X29 ANALOG SYSTEM Overførsel af vægt via analogt udgangssignal Gælder for: Program nr.: STD.120322.0
IP & GPRS IP (+ GPRS) transceivere
IP & GPRS IP (+ GPRS) transceivere IP/GPRS serie IP ER FREMTIDEN FRA ANALOG TIL DIGITAL Den perfekte løsning i enhver situation Transmission af alarminformation via IP at slutbruger er nødt til at udskifte
1. Landeindstillinger og funktionsmæssig sikkerhed 2. 4. Specifikationer for ULX 4000-inverter 9
Indholdsfortegnelse Indholdsfortegnelse 1. Landeindstillinger og funktionsmæssig sikkerhed 2 2. Tyskland, landeindstillinger 4 3. Frankrig 8 4. Specifikationer for ULX 4000-inverter 9 L00410594-01_01 1
Installationsmanual SuperSail Marine Alarm Marine Alarm Wireless
Installationsmanual SuperSail Marine Alarm Marine Alarm Wireless Side 1 af 8 Indholdsfortegnelse 1 PAKKENS INDHOLD... 3 2 INSTALLATION... 4 2.1 PLACERING... 4 2.2 FORBRUG... 4 2.3 12V TILSLUTNING... 4
Installationsmanual SuperSail Marine Alarm Marine Alarm Wireless
Installationsmanual SuperSail Marine Alarm Marine Alarm Wireless Side 1 af 8 Indholdsfortegnelse 1 PAKKENS INDHOLD... 3 2 INSTALLATION... 4 2.1 PLACERING... 4 2.2 FORBRUG... 4 2.3 12V TILSLUTNING... 4
QUICKVEJLEDNING til multiguard DIN9. Montering
QUICKVEJLEDNING til multiguard DIN9 Montering 1. Klargør et SIM-kort, så pinkoden er 1234 eller deaktiveret. Monter kortet i enheden. Enheden har nu 1234 som password eller kører uden password. Kortet
Parallelbox 2. Installationsmanual
Parallelbox Installationsmanual Side Parallelbox Indholdsfortegnelse. Generelt.... Forbindelser.... Programmering...4. Standardprogrammering...4. Lysdiodeindstilling for aktiv indgang (00)...5. Lysdiodeindstilling
QUICKGUIDE multiguard Klima
QUICKGUIDE multiguard Klima Montering 1. Klargør et SIM-kort, så pinkoden er 1234 eller deaktiveret. Monter kortet i enheden. Enheden har nu 1234 som password eller kører uden password. Kortet vendes som
AKG198 monteringsguide
G198 alarm: Alarm med to håndsendere, ultrasoniske kabinesensorer og 115 db sirene med batteri back-up Bemærk: G198 kan kun monteres i biler med centrallåssystemer som enten er stelstyret eller plusstyret.
SEITRON TRÅDLØS RUMTERMOSTAT
SEITRON TRÅDLØS RUMTERMOSTAT DTP F85 BC0 0SE SEITRON TRÅDLØS RUMTERMOSTAT Drift og vedligehold Integreret føler, mulighed for brug af ekstern føler. Lavt batteriniveau indikator Mulighed for at fastlåse
Tilslutning- og programmeringseksempler
VLT MicroDrive FC 051 Indholdsfortegnelse Forord... 3 Oversigt effekt og styre kreds VLT MicroDrive... 4 Initialisering af frekvensomformeren... 5 Tilslutning af motorbeskyttelse... 6 Start/stop med analog
QUICKVEJLEDNING til 9-moduler. Montering
QUICKVEJLEDNING til 9-moduler Montering 1. Klargør et SIM-kort, så pinkoden er 1234 eller deaktiveret. Monter kortet i enheden. Enheden har nu 1234 som password eller kører uden password. Kortet vendes
Installationsmanual SuperSail Marine Alarm Marine Alarm Wireless
Installationsmanual SuperSail Marine Alarm Marine Alarm Wireless Side 1 af 8 Indholdsfortegnelse... 1 1 PAKKENS INDHOLD... 3 2 INSTALLATION... 4 2.1 PLACERING... 4 2.2 FORBRUG... 4 2.3 12V TILSLUTNING...
Måle og test I. Lasse Kaae 2012
Måle og test I Lasse Kaae 2012 Plan for de næste 2 uger Uge 1 grundlæggende VEE NI Labview (Torsdag) Anders Meisner Uge 2 Workshop VEE VEE instrument-styring Labview NI USB 6008 Måle øvelser Lasse Kaae
Brugervejledning Side 1
Deluxe trådløs relæboks Brugervejledning www.gsmteknik.dk 04.06.2019 Side 1 Indholdsfortegnelse 1. Tekniske specifikationer 3 2. Indkodning med alarm 4 3. Indkodning af RFID brikker. 5 4. Sletning af RFID
Programmering af CS7002 GSM/GPRS modul Version 5
Comfort CSx75 Programmering af CS7002 GSM/GPRS modul Version 5 Introduktion CS7002 GSM/GPRS modulet er en fuldt integreret enhed som kan sende alarmer trådløst enten via GSM eller GPRS nettet. Der er desuden
Enes Kücükavci Roskilde Tekniske Gymnasium 20 05 2010 Mathias Turac Informationsteknolog B Vejleder: Karl Bjranasson Programmering C
Indhold Indledning(Enes)... 2 Problemstilling (Enes)... 2 Teori (Enes)... 2 Løsningsforslag (Enes)... 4 RFID relæet (Mathias)... 6 Krav (Enes og Mathias)... 8 Målgruppen (Mathias)... 8 Rekvirent... 8 Implementering(Mathias)...
OZ5BIR SWR/POWERMETER
OZ5BIR SWR/POWERMETER 2-KANAL POWERMETER OG SWR METER. Vejledning i betjening og kalibrering af OZ5BIR SWR/Powermeter Software version OZ1OP v.1.1.1., build 64. side 1 INDHOLD Beskrivelse... 3 Generelt...
