High Definition, Low Delay, SDR-basert videooverføring i UAV-programmer Integrerte RF-agile transceivere er ikke bare mye brukt i programvaredefinerte radio (SDR) 1-arkitekturer i mobiltelefonbasestasjoner, for eksempel multiservice distribuert tilgangssystem (MDAS) og små celle, men også for trådløs HD-videooverføring for industrielle, kommersielle og militære applikasjoner, som ubemannede luftfartøyer (UAV). Denne artikkelen vil undersøke en implementering av bredbånds-videosignalsignalkjeder ved hjelp av AD9361 AD9364 2,3 integrerte transceiver IC, mengden data som sendes, den tilsvarende RF-okkuperte signalbåndbredden, transmisjonsavstanden og transmitterrsquos-effekten. Det vil også beskrive implementeringen av PHY-laget av OFDM og nåværende hoppefrekvens tidstestresultater for å unngå RF-interferens. Til slutt vil vi diskutere fordelene og ulempene mellom Wi-Fi og RF-agile transceiver i bredbånds trådløse applikasjoner. Signalkjeden Figur 1 illustrerer det forenklede trådløse videooverføringsskjemaet ved hjelp av AD9361AD9364 og en BBIC. Kameraet fanger bildet og overfører videodata til en basebandprosessor via Ethernet, HDMI reg. USB, eller et annet grensesnitt. Image codingdecoding kan håndteres av maskinvare eller FPGA. RF-fronten inkluderer bryteren, LNA og PA til den programmerbare integrerte transceiveren. Hvor mye data må sendes Tabell 1 viser den signifikante størrelsesforskjellen mellom ukomprimerte og komprimerte datahastigheter. Ved å bruke høy effektivitets videokoding (HEVC), også kjent som H.265 og MPEG-H del 2, kan vi redusere datahastigheten og spare båndbredde. H.264 er for øyeblikket et av de mest brukte formatene for opptak, komprimering og distribusjon av videoinnhold. Det presenterer et stort skritt fremover i videokomprimeringsteknologi, og er en av flere potensielle etterfølgere til den mye brukte AVC (H.264 eller MPEG-4 Del 10). Tabell 1 oppsummerer ukomprimerte og komprimerte datahastigheter i forskjellige videoformater. Forutsetninger inkluderer en videobitdybde på 24 biter og en rammeprosent på 60 fps. I 1080p-eksemplet er datahastigheten 14,93 Mbps etter komprimering, som da lett kan håndteres av basebandprosessoren og det trådløse PHY-laget. Tabell 1. Komprimert datahastighetssignalbåndbredde AD9361AD9364 støttekanalbåndbredder fra lt200 kHz til 56 MHz ved å endre prøvefrekvens, digitale filtre og decimering. AD9361AD9364 er null-IF-transceivere med I - og Q-kanaler for å overføre komplekse data. De komplekse dataene inkluderer ekte og imaginære deler, som svarer til henholdsvis I og Q, som lokaliserer med samme frekvensbåndbredde for å doble spektrumeffektiviteten sammenlignet med en enkelt del. Den komprimerte videodata kan kartlegges til I - og Q-kanalene for å lage konstellasjonspunkter, som er kjent som symboler. Figur 2 viser et 16 QAM eksempel hvor hvert symbol representerer fire biter. For et enkeltbærersystem trenger I og Q digital bølgeform å passere gjennom et pulsformingsfilter før DAC for å forme det overførte signalet innenfor en begrenset båndbredde. Et FIR-filter kan brukes til pulsforming, og filterresponsen er illustrert i figur 4. For å opprettholde informasjonens trofasthet, er det en minste signalbåndbredde som tilsvarer symbolhastigheten. Og symbolhastigheten er proporsjonal med den komprimerte videodatasatsen som vist i ligningen nedenfor. For OFDM-systemet, bør de komplekse dataene moduleres til subcarrierene ved hjelp av IFFT, som også overfører signalet i en begrenset båndbredde. Antallet biter som overføres med hvert symbol, avhenger av modulasjonsordren. I hvilken alfa er filterbåndbreddeparameteren. Fra de tidligere formlene kan vi utlede denne ligningen, slik at vi kan beregne den RF-okkuperte signalbåndbredden som oppsummert i tabell 2. Tabell 2. Opptatt RF-signalbåndbredde med form for modulasjonsordre (alfa 0,25) AD9361AD9364, med opptil 56 MHz signal båndbredde, støtter alle Tabell 2-videoformatoverføringer og enda høyere rammepriser. Høyere bestillingsmodulasjon opptar mindre båndbredde og symbolet representerer flere informasjonsbiter, men en høyere SNR er nødvendig for demodulering. Overføringsavstanden og senderens strøm I applikasjoner som UAVer er maksimal overføringsavstand en kritisk parameter. Imidlertid er det like viktig at kommunikasjonen ikke blir cutoff selv på begrenset avstand. Oksygen, vann og andre hindringer (unntatt fritt romdemping) kan dempe signalet. Figur 6 viser modellen for trådløs kommunikasjonskanal-tap. Mottaker følsomhet er normalt tatt som minimum inngangssignal (S min) som kreves for å demodulere eller gjenopprette informasjonen fra senderen. Etter at mottakerens følsomhet er oppnådd, kan maksimal overføringsavstand beregnes med noen antagelser, som vist her: (SN) min er det minste signal-støyforholdet som trengs for å behandle et signal. NF er støyfiguren til mottakeren k er Boltzmannrsquos konstant 1,38 ganger 10 ndash23 joulek T 0 er absolutt temperatur på mottakerinngangen (Kelvin) 290 KB er mottakerens båndbredde (Hz) Parameteren (SN) min er avhengig av modulasjonsmodulasjonsordren. Med samme SNR får lavere ordremodulasjon en lavere symbolfeil, og med den samme symbolfeil trenger høyere rekkefølge modulering høyere SNR å demodulere. Så når senderen er langt borte fra mottakeren, er signalet svakere og SNR kan ikke støtte den høye ordens demodulasjon. For å holde senderen online og opprettholde et videoformat med samme video datahastighet, bør baseband bruke lavere ordre modulering på bekostning av økende båndbredde. Dette bidrar til å sikre at de mottatte bildene ikke er uskarpe. Heldigvis gir programvaredefinert radio med digital modulasjon og demodulering muligheten til å endre moduleringen. Den forrige analysen er basert på antagelsen om at senderens RF-effekt er konstant. Mens større RF-overføringskapasitet med samme antenneforsterkning kommer til en fjernere mottaker med samme mottakerfølsomhet, bør maksimal overføringseffekt oppfylle FCCCE-strålingsstandarder. I tillegg vil bærefrekvensen påvirke overføringsavstanden. Som en bølge forplanter seg gjennom rommet, er det et tap på grunn av spredning. Det frie rommet tapet bestemmes av hvor R er avstanden, lambda er bølgelengden, f er frekvensen, og C er lysets hastighet. Derfor vil den større frekvensen ha mer tap over samme friarealavstand. For eksempel vil bærefrekvensen på 5,8 GHz bli dempet med mer enn 7,66 dB sammenlignet med 2,4 GHz over samme overføringsavstand. RF-frekvens og veksling AD9361AD9364 har et programmerbart frekvensområde fra 70 MHz til 6 GHz. Dette vil tilfredsstille de fleste NLOS-frekvensapplikasjoner, inkludert ulike typer lisensierte og ulisensierte frekvenser, for eksempel 1,4 GHz, 2,4 GHz og 5,8 GHz. 2,4 GHz frekvensen er mye brukt for Wi-Fi, Bluetooth reg. og IoT kortfattet kommunikasjon, noe som gjør den stadig overfylt. Ved å bruke den for trådløs videooverføring og styresignaler øker sjansene for signalinterferens og ustabilitet. Dette skaper uønskede og ofte farlige situasjoner for UAVer. Ved hjelp av frekvensomkobling for å opprettholde en ren frekvens vil data og kontrolltilkobling være mer pålitelig. Når senderen registrerer en overfylt frekvens, bytter den automatisk til et annet bånd. For eksempel vil to UAVer som bruker frekvensen og opererer i nærheten, forstyrre hverandres kommunikasjon. Automatisk bytte av LO-frekvens og gjenvalg av bandet vil bidra til å opprettholde en stabil trådløs forbindelse. Adaptivt å velge bærefrekvens eller - kanal i oppstartperioden er en av de ypperlige funksjonene i høy end-UAV. Frekvenshopping Frekvensfrekvenshopping, som er mye brukt i elektroniske motforanstaltninger (ECM), bidrar også til å unngå forstyrrelser. Normalt hvis vi ønsker å hoppe frekvensen, trenger PLL å låses etter prosedyren. Dette inkluderer å skrive frekvensregisterene, og gå gjennom VCO-kalibreringstid og PLL-låsetid, slik at intervallet for hoppefrekvensen er omtrentlig til hundrevis av mikrosekunder. Figur 7 viser et eksempel på hoppende sender LO frekvens fra 816,69 MHz til 802,03 MHz. AD9361 brukes i normal frekvensbyttermodus, og senderens RF-utgangsfrekvens hopper fra 814,69 MHz til 800,03 MHz med en 10 MHz referansefrekvens. Hoppefrekvenstiden testes ved bruk av E5052B som vist på figur 7. VCO-kalibrering og PLL-låsingstid er ca. 500 mikrober i henhold til figur 7b. Signalkildeanalysatoren E5052B kan brukes til å fange PLL-transientresponsen. Figur 7a viser bredbåndsmodus for forbigående måling, mens figur 7b og 7d gir betydelig fin oppløsning i frekvens - og fasetransientmåling med frekvenshopping. 6 Figur 7c viser utgangseffektresponsen. 500 mikros er et veldig langt intervall for hoppeprogrammet. AD9361AD9364 inkluderer imidlertid en rask låsemodus som gjør det mulig å oppnå raskere enn normale frekvensendringer ved å lagre sett med syntetiseringsprogrammeringsinformasjon (kalt profiler) i devicersquos-registret eller basebandprocessorens minneplass. Figur 8 viser testresultatet ved hjelp av hurtiglåsemodus for å implementere hoppefrekvensen fra 882 MHz til 802 MHz. Tiden er nede til mindre enn 20 mikron, ifølge figur 8d-fasesponsen. Fasekurven er tegnet ved å referere til fasen på 802 MHz. SPI-skrivetiden og VCO-kalibreringstiden elimineres begge i denne modusen på grunn av at frekvensinformasjon og kalibreringsresultater blir lagret i profiler. Som vi kan se, viser figur 8b den hurtige frekvenshoppevnen til AD9361AD9364. Implementering av PHY LayermdashOFDM Orthogonal Frequency Divisions Multiplexing (OFDM) er en form for signalmodulasjon som deler en høy datahastighetsmodulerende strøm på mange langsomt modulerte smalbånds nærtliggende delbærere. Dette gjør det mindre følsomt for selektiv frekvensfading. Ulempene er et høyt topp til gjennomsnittlig effektforhold og følsomhet for transportørforskyvning og drift. OFDM er mye brukt i bredbånds trådløs kommunikasjon PHY lag. Den kritiske teknologien til OFDM inkluderer IFFTFFT, frekvenssynkronisering, synkronisering av samplingstid og symbolframe-synkronisering. IFFTFFT skal implementeres via FPGA på raskest mulig måte. Det er også svært viktig å velge intercarriers intervall. Intervallet skal være stort nok til å motstå mobilitetskommunikasjon med Doppler frekvensskift og liten nok til å bære flere symboler innenfor begrenset frekvensbåndbredde for å øke spektrumeffektiviteten. COFDM refererer til en kombinasjon av kodingsteknologi og OFDM-modulering. COFDM med sin høye motstand for signaldemping og fremre feilkorrigerende (FEC) fordeler kan sende videosignaler fra ethvert bevegelige objekt. Kodingen vil øke signalbåndbredden, men det er vanligvis verdt avveien. Ved å kombinere modellbasert design og automatiske kodegenereringsverktøy fra MathWorks med de kraftige Xilinx reg Zynq SoCs og Analog Devices integrerte RF-transceivere, SDR-systemdesign, verifisering, testing og implementering, kan det være mer effektivt enn noensinne, noe som fører til høyere ytelsesradio systemer og redusere tiden til markedet. 7 Hva er fordelene med Wi-Fi-droner utstyrt med Wi-Fi, er det veldig enkelt å koble til mobiltelefoner, bærbare datamaskiner og andre mobile enheter, noe som gjør dem veldig praktiske å bruke. Men for trådløs videooverføring i UAV-applikasjoner, tilbyr FPGA plus AD9361-løsningen mange fordeler over Wi-Fi. Først og fremst, i PHY-laget, reduserer fleksibel frekvensomkobling og rask hopping av AD9361AD9364 interferens. De fleste integrerte Wi-Fi-sjetonger opererer også på det krevende 2,4 GHz-frekvensbåndet uten frekvensbånd-gjenvalgsmekanisme for å gjøre den trådløse tilkoblingen mer stabil. For det andre, med FPGA plus AD9361-løsningen, kan overføringsprotokollen defineres og utvikles fleksibelt av designere. Wi-Fi-protokollen er standard og basert på et toveishåndtrykk med hver pakke med data. Med Wi-Fi må hver datapakke bekrefte at en pakke ble mottatt, og at alle 512 byte i pakken ble mottatt intakt. Hvis en byte går tapt, må hele 512 bytepakken overføres igjen. 8 Mens denne protokollen sikrer pålitelighet, er det komplisert og tidkrevende å gjenopprette den trådløse datalinken. TCPIP-protokollen vil forårsake høy ventetid som resulterer i video og kontroll i ikke-sanntid, noe som kan føre til UAV-krasj. SDR-løsningen (FPGA plus AD9361) bruker en enveis strøm av data, noe som betyr at drone i himmelen overfører videosignalet som en TV-kringkasting. Det er ingen tid for å sende om igjen pakker når sanntidsvideo er målet. I tillegg tilbyr Wi-Fi ikke riktig sikkerhetsnivå for mange applikasjoner. Ved å bruke krypteringsalgoritmen og brukerdefinerte protokollen er FPGA plus AD9361AD9364-løsningen langt mindre mottakelig for sikkerhetstrusler. Videre gir den eneveis utsendte datastrømmen overføringsavstandskapasiteter to til tre ganger den av Wi-Fi-tilnærminger. 8 Fleksibiliteten fra den programvaredefinerte radiokapasiteten gjør det mulig å justere digital modulasjonsdemodulering for å tilfredsstille avstandskravene eller og justere til endring av SNR i komplekse romstrålingsmiljøer. Konklusjoner Denne artikkelen illustrerte de kritiske parametrene ved bruk av en FPGA plus AD9361AD9364 løsning for implementering av high definition trådløs videooverføring. Med fleksibel frekvensbåndskifte og hurtigfrekvenshopping, er det mulig å etablere en mer stabil og pålitelig trådløs forbindelse for å motstå den stadig mer komplekse strålingen i rommet og redusere sannsynligheten for et krasj. I protokollaget er løsningen mer fleksibel, ved hjelp av en enveisoverføring for å redusere trådløs etablerings tid og opprette lavere ventetidsforbindelse. I industrielle og kommersielle applikasjoner som landbruk, kraftkontroll og overvåkning, stabile, sikre og pålitelige overføringer er avgjørende for suksess. Referanser 2 AD9361 dataark. Analog Devices, Inc. 3 AD9364 dataark. Analog Devices, Inc. 4 Ken Gentile. Applikasjonsnotat AN-922, Grunnleggende for pulseformet filter. Analog Devices, Inc. 5 Scott R. Bullock. Transceiver og systemdesign for digital kommunikasjon. 4. utgave. SciTech Publishing, Edison, NJ, 2014. Wei Zhou er en applikasjonsingeniør for Analog Devices, Inc. som støtter design og utvikling av RF-transceiverprodukter og - applikasjoner, spesielt i trådløse videotransmisjon og trådløse kommunikasjonsfelt. Han har jobbet i ADIs sentrale applikasjonssenter i Beijing, Kina, i fem år som støtter ulike produkter, inkludert DDS, PLL, høyhastighets DACADC og klokker. Før han kom til ADI, mottok han sin B. S. grad fra Wuhan University, Wuhan, Kina, i 2006, og hans M. S. grad fra Institute of Electronics, kinesisk vitenskapsakademi (CAS), Beijing, Kina, i 2009. Han jobbet som en RF - og mikrobølgeovnskrets og systemdesigningeniør for et luftfartsteknologiselskap fra 2009 til 2011. Relaterte artikler Relaterte produkter RF Agile TransceiverHomemade GPS-mottaker Bildet ovenfor er front-end, første mikser og IF-forsterker av en eksperimentell GPS-mottaker. Den venstre SMA er koblet til en kommersiell antenne med integrert LNA og SAW filter. En syntetisert første lokaloscillator driver bunnen SMA. Pin headers til høyre er strøminngang og IF utgang. Sistnevnte er koblet til en Xilinx FPGA som ikke bare utfører DSP, men også vert for en fraksjonal-N-frekvenssyntese. Mer om dette senere. Jeg var motivert for å designe denne mottakeren etter å ha lest arbeidet 1 av Matjax017E Vidmar, S53MV, som utviklet en GPS-mottaker fra bunnen av, og brukte hovedsakelig diskrete komponenter for over 20 år siden. Hans bruk av DSP etter en hardbegrensende IF og 1-bit ADC interesserte meg. Mottakeren beskrevet her fungerer på samme prinsipp. Dens 1-biters ADC er 6-polet IC nær tapphodene, en LVDS-utgangskomparator. Skjult under støy, men ikke utryddet i bi-nivå kvantisert mush som oppstår, er signaler fra alle satellitter i sikte. Alle GPS-satellitter overfører på samme frekvens, 1575,42 MHz, ved hjelp av direkte sekvensspredningsspektrum (DSSS). L1-bæreren er spredt over en 2 MHz båndbredde og dens styrke på jordens overflate er -130 dBm. Termisk støykraft i samme båndbredde er -111 dBm, så et GPS-signal på mottakanten er 20 dB under støynivået. At noen av signalene som er tilstede, overlappes på en annen og begravet i støy, er gjenopprettelige etter at tosidig kvantisering virker motintuitiv. Jeg skrev en simulering for å overbevise meg selv. GPS bygger på korrelasjonsegenskapene til pseudo-tilfeldige sekvenser kalt Gold Codes for å skille signaler fra støy og hverandre. Hver satellitt overfører en unik sekvens. Alle ukorrelerte signaler er støy, inkludert de av andre satellitter og hardbegrensede kvantiseringsfeil. Ved å blande med samme kode i riktig fase sprer de ønskede signalene og sprer seg videre. Smalbåndsfiltrering fjerner deretter bredbåndsstøy uten å påvirke ønsket (igjen smal) ønsket signal. Hard-begrensende (1-bit ADC) nedbryter SNR med mindre enn 3 dB, en pris verdt å betale for å unngå maskinvare AGC. Mai 2013 Update Dette er nå en virkelig bærbar, batteridrevet 12-kanals GPS-mottaker med nøkkelferdig programvare, som kjøper og sporer satellitter, og kontinuerlig omberegner posisjonen uten brukermedvirkning. Det komplette systemet (under, venstre) består av: 16x2 LCD-skjerm, Raspberry Pi Model A-datamaskin, to tilpassede kretskort, kommersiell patchantenne og Li-Ion batteri. Totalt strømforbruk er 0,4A for batterilevetid på 5 timer. Raspberry Pi er drevet gjennom båndkabelen som knytter GPIO-heisen til Frac7 FPGA-kortet og krever ingen andre tilkoblinger. For tiden kjører Pi Raspbian Linux. En mindre distro ville forkorte tid til å fikse først. Etter oppstart fra SD-kort starter GPS-programvaren automatisk. Ved utgang, gir det et middel til å slå av Pi riktig før du slår av. Pi-programvareutvikling ble gjort hovedsakelig via SSH og FTP over en USB Wi-Fi dongle. Kildekode og dokumentasjon finner du nederst på denne siden. Begge tilpassede PCB er enkle 2-lags PTH-brett med kontinuerlige bakkeplaner på bunnen. Går med klokken rundt Xilinx Spartan 3 på Frac7 FPGA-bordet: Fra klokken 12 til klokken 3 er sløyfefilteret, VCO, strømbryteren og prescaleren av mikrobølgefrekvenssyntetiseringsenheten nederst til høyre, joysticken og JTAG-kontakten og klokken 6 klokken et pinsett for Raspberry Pi båndkabel. Langt til venstre er LCD-kontakten. I nærheten av venstre er en temperaturkompensert spenningsstyrt krystalloscillator (TCVCXO) som gir en stabil referansefrekvens, viktig for GPS-mottak. TCVCXO er bra, men ikke helt opp til GPS-standard når man opererer unboxed på vindfulle steder. Blåsing på den forskyver 10.000000 MHz-krystalloscillatoren med rundt 1 del i 10 millioner eller 1 Hz, som forstørres 150 ganger av syntetiseringsapparatet PLL. Dette er nok til å øyeblikkelig låse opp satellittsporingsløypene, hvis det gjøres plutselig. Anordningen er også litt sensitiv for infrarød, f. eks. fra halogenpærer og fjernsyns fjernbetjeninger Da de først ble postet i 2011, var dette en firekanals mottaker, noe som betyr at den bare kunne spore fire satellitter samtidig. Minst fire er påkrevd for å løse for brukerposisjon og mottakerens klokkeslett, men større nøyaktighet er mulig med flere. I den originale versjonen fyldte fire identiske forekomster av sporingsmodulen FPGA. Men de fleste flops var bare klokka en gang per millisekund. Nå serier en tilpasset soft-core CPU inne i FPGA behandlingen og bare 50 av FPGA-stoffet kreves for en 8-kanals mottaker eller 67 for 12 kanaler. Antall kanaler er en parameter i kilden og kan gå høyere. Posisjonsnøyaktighet er best når antennen kan se 360deg av himmelen og motta signaler fra alle retninger. Generelt, jo flere satellitter er i sikte, jo bedre. To eller flere satellitter på samme lager kan føre til det som kalles dårlig geometri. Den beste løsningen så langt var plusmn1 meter på en veldig åpen plassering med 12 satellitter, men nøyaktigheten er vanligvis plusmn5 meter i fattigere steder med færre satellitter. September 2014 Update Kildekoden for dette prosjektet har blitt re-released under GNU General Public License (GPL). Arkitekturbehandling er delt mellom FPGA og Pi etter kompleksitet og haster. Pi håndterer matteintensiv tungløfting i sitt eget tempo. FPGA syntetiserer den første lokale oscillatoren, tjenester høy prioritet hendelser i sanntid og spor satellitter autonomt. Pi kontrollerer FPGA via et SPI-grensesnitt. Heldigvis brukes samme SPI til å laste inn FPGA-konfigurasjonsbitstrøm og binær kjørbar kode for den innebygde CPU. FPGA-en kan også styres via en Xilinx Platform USB JTAG-kabel fra en Windows-PC og automatisk oppdager hvilket grensesnitt som er i bruk. L1-frekvensene nedkonverteres til en 1. IF ved 22.6 MHz ved å blande med en lokal oscillator på 1552.82 MHz på frontpanelet på GPS3. Alle påfølgende IF og baseband signalbehandling er gjort digitalt i FPGA. To proporsjonal-integrerte (PI) kontrollere per satellitt, sporbærer og kodefase. NAV-data overført av satellittene samles i FPGA-minne. Dette lastes opp til Pi, som kontrollerer paritet og ekstrakter ephemerides fra bitstrømmen. Når alle nødvendige orbitalparametere er samlet, tas et stillbilde av visse interne FPGA-tellere, fra hvilket tidspunkt overføringen beregnes til pluss 15n presisjon. Mye av 1552.82 MHz synthesizer er implementert i FPGA. Man kan forvente jitterproblemer, med en fasetektor med annen logikk, men det fungerer. Syntetiseringsutgangspektral-renhet er utmerket, selv om FPGA-kjernen veksle bort rasende og ikke alle på harmonisk relaterte frekvenser. Denne tilnærmingen ble tatt fordi et styre som lik Frac7 allerede eksisterte fra et tidligere syntetiseringsprosjekt. Å legge til en frontend var den korteste ruten til en prototypemottaker. Men den første versjonen var ikke bærbar: den hadde ubeleilig strømkrav og ingen frekvensfrekvens. Signalbehandling til og med hard-limiter: LMH7220-komparatoren har en maksimal inngangsforskjellspenning på 9,5mV. Forsterket termisk støy må komfortabelt overstige dette for å holde det veksle. Svake GPS-signaler påvirker kun komparatoren nær nulloverganger. De samples av støyen. For å anslå støynivået ved komparatorinngangen, tabulerer vi gevinster, innsettingstap og støyfigurer: In-band-støy ved mikserutgangen er -1740.828-1.5-3.920- 610log10 (2,5e6) -73 dBm eller 52microV RMS. Blenderen er resistivt avsluttet i 50 ohm, og trinnene arbeider deretter med høyere impedans. Den diskrete IF-stripen har en total spenningsøkning på 1000, slik at komparatorinngangsnivået er 52mV RMS. LMH7220 legger til 59 dB forsterkning som gir totalt 119 dB for hele IF. Utnyttelse av så mye gevinster ved en frekvens var en risiko. For å minimere det ble det brukt balansert krets over et fast bakkeplan og skjermet vridet par bærer utgangen til FPGA. Motivasjonen var enkelhet, unngått en annen konvertering. I praksis er kretsen stabil, slik at spillingen blir betalt. Aktiv dekoder Q1 leverer 5V for fjernkontrollen LNA. MMIC forsterker U2 gir 20 dB forsterkning (ikke ved IF) og sikrer lav total systemlydfigur, selv om lange antennekabler brukes. L1 og L2 er håndviklede mikrobølgekøler med svært høy selvresonansfrekvens, montert vinkelrett på hverandre og fjernet fra bakken. Vind 14 svinger, luftkjerne, 1 mm innerdiameter fra 7 cm lengder på 32swg emaljeret kobbertråd. Sjekket med sporingsgeneratoren på en Marconi 2383 SA, disse var gode til 4 GHz. Mini-kretsene MBA-15L DBM ble valgt for sitt lave 6 dB konverteringstap ved 1,5 GHz og lav 4 dBm LO-drivkrav. R9 slutter IF-porten. Tre fullt differensielle IF-forsterkerstrinn følger blanderen. Lav-Q parallelle innstilt kretser spunnet mellom samlere setter -3 dB båndbredden rundt 2,5 MHz og forhindrer oppbygging av DC-forskyvninger. L4, L5 og L6 er screenet Toko 7mm spoler. BFS17 ble valgt for sin høye (men ikke for høye) 1 GHz f T. Jeg er 2mA for laveste støy og rimelig betar e. Den 22,6 MHz 1ste IF er nedgradert digitalt til 2,6 MHz ved under-prøvetaking ved 10 MHz i FPGA. 2,6 MHz ligger nær sentrum av 5 MHz Nyquist båndbredden. Det er best å unngå det eksakte senteret, av grunner som forklares senere. Flere andre første IF-frekvenser er mulige: 27,5 MHz, som gir spektruminversjon ved 2. IF, har også blitt forsøkt vellykket. Det er en avveining mellom bildeproblemer ved lavere og tilgjengelig BFS17-gevinst ved høyere frekvenser. Signal deteksjon innebærer å løse tre ukjente: hvilke satellitter er i sikte, deres Doppler-skift og kodefaser. Et sekventielt søk av dette tredimensjonale rommet fra en såkalt kaldstart kan ta mange minutter. En varm start med almanakdata for å spåre posisjoner og hastigheter krever fortsatt et kodesøk. Alle 1023-kodefaser må testes for å finne maksimal korrelasjonstopp. Beregning av 1023 korrelasjonsintegraler i tidsdomenet er svært kostbart og overflødig. Denne GPS-mottakeren bruker en FFT-basert algoritme som tester alle kodefaser parallelt. Fra kaldt tar det 2,5 sekunder på en 1,7 GHz Pentium for å måle signalstyrke, Doppler-skift og kodefase for hver synlig satellitt. Raspberry Pi er litt tregere. Med overlinje som betegner konjugasjon, er krysskorrelasjonsfunksjonen y (Tau) av komplekst signal s (t) og kode c (t) forskjøvet av offset Tau: Korrelasjonssteorien fastslår at Fourier-transformasjonen av en korrelasjonsintegral er lik produktet av det komplekse konjugatet av Fourier-transformasjonen av den første funksjonen og Fourier-transformasjonen av den andre funksjonen: FFT (y) CONJUGATE (FFT (s)) FFT (c) Korrelasjon utføres ved basebånd. 1.023 Mbps CA-koden er 1023 chips eller 1ms lang. Forward FFT lengde må være et flertall av dette. Prøvetaking ved 10 MHz for 4 ms resulterer i en FFT-binstørrelse på 250 Hz. 41 Doppler-skift må testes ved å rotere frekvensdomenet, en boks om gangen, opp til plusmn20-bokser plusmn5 KHz. Rotasjon kan brukes til enten funksjon. Den 22,6 MHz 1ste IF fra 1-biters ADC er underprøvd av en 10 MHz klokke i FPGA, digital nedkonvertering av den til en 2. IF på 2,6 MHz. I programvare, er den andre IF nedkonvertert til kompleks baseband (IQ) ved hjelp av kvadratur lokale oscillatorer. For bi-nivå signaler, er blanderne enkle XOR-porte. Selv om det ikke er vist ovenfor, blir prøvene midlertidig buffret i FPGA-minne. Pi kan ikke akseptere dem ved 10 Mbps. 1.023 Mbps og 2.6 MHz er generert av numerisk styrte oscillator (NCO) fase akkumulatorer. Disse frekvensene er ganske store sammenlignet med samplingsfrekvensen, og er ikke eksakte sub-harmoniske av det. Følgelig har NCOs fraksjonelle sporer. Antall prøver per kodechip dithere mellom 9 og 10. Heldigvis er DSSS-mottakere tolerante for smalbåndsinterferere, ekstern eller selvgenerert. Kompleks baseband transformeres til frekvensdomene ved hjelp av en fremad FFT som bare må beregnes én gang. En FFT av hver satellitt-CA-kode er pre-beregnet. Behandlingstid domineres av den indre, mest sløyfe som utfører skiftende, konjugering, kompleks multiplikasjon og en invers-FFT per satellitt-Doppler-test. Raspberry Pis Videocore GPU kan brukes til å øke hastigheten. Ved 10 MHz samplingsfrekvens er kodesfasen løst til nærmeste 100ns. Typisk CCF-utgang er illustrert nedenfor: Beregning av topp til gjennomsnittlig effekt over disse dataene gir et godt estimat av SNR og brukes til å finne de sterkeste signalene. Følgende ble mottatt klokken 20:14 GMT den 4. mars 2011 i Cambridge, Storbritannia med antennen på en utenfor nordvendt vindusskinne: Fra nordlige breddegrader vil flere GPS-satellitter generelt bli funnet i den sørlige himmelen, dvs. mot ekvator. Ved å ta lengre prøver øker SNR, noe som avslører svakere signaler, men avbestilling oppstår når opptaket spenner over NAV-dataoverganger. Fremover FFT lengde er et integrert antall millisekunder, men den inverse FFT kan forkortes, ganske enkelt ved å kaste bort data i høyfrekvente skuffer. SNR er bevart, men kodefasen er ikke så skarpt løst. Ikke desto mindre er et godt estimat av toppstilling oppnådd ved vektet gjennomsnittlig de to sterkeste tilstøtende hyllene og luft-tester tyder på at dette kunne fungere til og med helt kort, inverse FFT-lengder. Etter å ha oppdaget et signal, låses neste trinn, sporer det og demodulerer 50 bps NAV-data. Dette krever to interavhengige faselåste sløyfer (PLLs) for å spore kode og bærerfase. Disse PLLene må fungere i sanntid og implementeres som DSP-funksjoner i FPGA. Pi-programvare har en tilsynsrolle: bestemme hvilke satellitter som skal spores, overvåke låsestatus og behandle mottatte NAV-data. Sporsløyfer er gode for å opprettholde lås, fordi de har svært smale båndbredder, men det samme gjør dem fattige til å anskaffe lås uten hjelp. De kan ikke se utover sløyfebåndbredden for å fange noe lenger unna. Innledende faser og frekvenser må forhåndsinnstilles til målkodfasen og Doppler-skiftet på målsatellitten. Dette er orkestrert under Pi-kontroll. Løkkene skal være låst fra begynnelsen og forblir så. Kodefase måles i forhold til FFT-prøven. Koden NCO i FPGA tilbakestilles ved begynnelsen av prøvetaking og akkumulerer fase ved en fast 1.023 MHz. Den er senere justert med den mottatte koden ved å midlertidig stoppe fasakkumulatoren. Doppler-skift på 1575.42 MHz-bæreren er plusmn5 KHz eller plusmn3 ppm. Det påvirker også 1,023 Mbps koden med plusmn3 chips per sekund. Lengden på pause er justert for kodekryp i tiden siden prøven ble tatt. Heldigvis er kode Doppler proporsjonal med carrier Doppler, som vi har et godt estimat for. Maskinvare-programvareoppdeling I diagrammet nedenfor viser fargekoding hvordan implementeringen av sporing DSP nå deles mellom maskinvare og programvare. Tidligere ble dette gjort i maskinvare, med identiske parallelle forekomster gjentatt for hver kanal, som gjorde ineffektiv bruk av FPGA-ressurser. Nå er den langsommere 1 KHz-prosesseringen gjort av programvare, og dobbelt så mange kanaler kan bli innkvartert i halvparten av FPGA-eiendommen. De seks integrere-og-dump akkumulatorene (Sigma) er låst inn i et skiftregister på koden epoken. Et serviceforespørsels flagg signaliserer CPU, som leser data-bit-serielt. Med 8 kanaler aktive blir 8 av CPU-tid brukt til å utføre oprdBit-instruksjonen. Men det er rikelig med tid, og seriell IO bruker FPGA-stoffet økonomisk. Luxuries som RSSI og IQ logging (for eksempel for scatter plots) kan nå bli tilbudt. F (z) loopfilteroverføringsfunksjonene svelger 2 av CPU-båndbredde per aktiv kanal. Disse er standard proporsjonal-integrerte (PI) - kontrollere: 64-biters presisjon brukes og får koeffisienter KI og KP, selv om de er begrenset til kraftene på 2, er dynamisk justerbare. Hver kanal som må vente på sin tur, kan NCO-rate-oppdateringer bli forsinket med titalls eller hundrevis av mikrosekunder etter en kodeposisjon, men dette introduserer ubetydelig faseforskyvning ved frekvenser der fasemargin er bestemt. Tynne spor er 1-bit, representativt representant plusmn1. 2.6 MHz-bæreren blir først spredt ved å blande med tidlig, sen og punktlig koder. I og Q komplekse basebandprodukter fra den andre rangeringen av XOR-gateblandere er oppsummert over 10000 prøver eller 1ms. Denne lavpassfiltreringen reduserer dramatisk båndbredden og øker dermed SNR. Downsampling til 1 KHz krever bredere fremadgående dataveier i programvareområdet. Kodefase spores ved hjelp av en konvensjonell forsinkelseslås eller tidlig sen gate. Strøm i de tidlige og sentrale kanalene beregnes ved hjelp av P I 2 Q 2, som er ufølsom for fase. Tidlige og sent koder er en chip fra hverandre, dvs. frac12-chip foran og bak punktlig. Dette diagrammet bidrar til å få feilfølelsen riktig: En Costas Loop brukes til carrier tracking og NAV data recovery i punktlig kanal. NAV-data, m, er hentet fra I-arm-tegnbiten med 180deg-faseusikkerhet. k er mottatt signalamplitude og theta er faseforskjell mellom mottatt bærer (sans modulasjon) og lokal NCO. k varierer fra rundt 400 for de svakeste gjenopprettelige signalene opp til over 2000 for de sterkeste. Legg merke til hvordan feilperioden som er tilbakemelding til F (z) plantekontrolleren i Costas Loop, er proporsjonal med mottatt signalkraft ksup2. Sporingshelling, og dermed sløyfevinst, varierer også med signalstyrken i kodebøylen. Nedenfor er et Bode-plott med åpen-sløyfe gevinst for Costas Loop på k500: Costas Loop båndbredde er rundt 20 Hz, som handler om optimal for carrier tracking. Kodsløyfebåndbredde er 1 Hz. Støymakt i slike båndbredder er liten og løkkene kan spore svært svake signaler. Ovennevnte kI og kP jobber for de fleste signaler, men trenger å slippe en hakk for de aller sterkeste. Scilab spår, og scatter plots bekrefter, utbruddet av ustabilitet på kge1500. Paritetsfeil forekommer ikke med mindre prøver går i motsatt halvdel av IQ-planet. (i) Ustabilitet ved kge1500 Ovennevnte er 2 påfølgende rammer med 5 underrammer hver. Underrammer er 300 bit lange og tar 6 sekunder å overføre. Kolonne 1 er preamble 10001011. Dette vises ved starten av hver underramme, men kan forekomme hvor som helst i dataene. 17-bit-telleren i kolonne 5 er ukentlig (TOW) og tilbakestilles til null ved midnatt søndag. 3-bit-telleren i kolonne 7 er underramme-ID 1 til 5. Underrammer 4 og 5 er underkommunikert i 25 sider hver, og en komplett datarmelding omfattende 25 fulle rammer tar 12,5 minutter å overføre. Jeg bruker bare data i underrammer 1, 2 og 3 for tiden. Løsning for brukerposisjon Hver GPS-satellitt overfører posisjon og tid. Subtrahering av tid sendt fra tid mottatt og multiplisere med lysets hastighet er hvordan en mottaker måler avstanden mellom seg selv og satellittene. Å gjøre det med tre satellitter ville gi tre samtidige likninger i tre ukjente (brukerposisjon: x, y, z) hvis den presise tiden var tilgjengelig. I praksis er mottakerklokkene ikke nøyaktige nok, den nøyaktige tiden er en fjerde ukjent, fire satellitter er derfor påkrevet og fire samtidige ligninger må løses: En iterativ metode brukes fordi ligningene er ikke-lineære. Ved å bruke jordens senter (0, 0, 0) og den omtrentlige tiden som utgangspunkt, konvergerer algoritmen i bare fem eller seks iterasjoner. Løsningen er funnet selv om brukerklokkefeilen er stor. Satellittene har atomklokker, men disse har også feil og korreksjonskoeffisienter i underramme 1 må påføres overføringstidspunktet. Typiske justeringer kan være hundrevis av mikrosekunder. Ukorrigert tidspunkt for overføring dannes ved å skalere og legge til flere tellere. Tidsuke (TOW) i sekunder siden midnatt søndag sendes hver underramme. Datakanter markerer 20ms intervaller innenfor 300-bit subframes. Koden gjentar 20 ganger per databit. Kodelengde er 1023 chips og chip rate er 1.023 Mbps. Til slutt legges de 6 mest signifikante brikkene i kode NCO-fasen, fikseringstid for overføring til pluss 15n. Satellittposisjoner ved korrigert overføringstid beregnes ved bruk av ephemeris i underrammer 2 og 3. Orbitalposisjon ved en referansetidsål (tid for ephemeris) er gitt sammen med parametere som tillater (x, y, z) posisjon som skal beregnes opp til noen få timer før eller etter. Ephemerider oppdateres jevnlig og satellitter overfører bare sine egne. Langsiktig baner av hele konstellasjonen kan forutsies mindre nøyaktig ved bruk av Almanac-data i underrammer 4 og 5, men dette er ikke viktig hvis et raskt FFT-basert søk brukes. Løsninger beregnes i jordbaserte, jordbundne (ECEF) koordinater. Brukerens plassering er omgjort til breddegrad, lengdegrad og høyde med en korreksjon for eksentrisitet av jorden, som bøyer ved ekvator. Scatterdiagrammet nedenfor illustrerer repeterbarhet, fordelene med gjennomsnitt og effekten av dårlige satellittvalg. Rutenettfeltene er 0.001deg på hver side. Blå prikker markerer 1000 rettelser. Gult trekanter markerer tyngdepunktene: (i) Nordvendt vindusramme (ii) Takantenne (iii) Østvendt vindusbøyle Den stramme klyngen (ii) ble oppnådd ved hjelp av satellitter i fire forskjellige kvartaler av himmelen. Bare takantenne hadde en klar utsikt i alle retninger. Men gode fikser ble oppnådd ved gjennomsnittsnivå, selv om halve himmelen var skjult. Takoppdateringer viser også spredning som (i) og (iii) hvis feil satellitter er valgt. Ovennevnte løsninger ble generert uten å kompensere for ionosfæriske forplantningsforsinkelser ved bruk av parametere på side 18 av underramme 4 som skulle påføres fordi dette er en enkeltfrekvensmottaker. Ionospherisk brytning øker sti lengder mellom brukere og satellitter. I april 2012 løst jeg en feil som forårsaket betydelige feil i brukerposisjonsløsninger. Opprinnelig, ved å ikke omdanne satellittposisjoner fra jord-sentrert jordbundet (ECEF) til jord-centrert-inertialkoordinater, ignorerte jeg effektivt jordens rotasjon i løpet av de 60 til 80 ms som signaliserer i flyet. Jeg ser nå posisjonsoppløsningsnøyaktigheter på plusmn 5 meter etter gjennomsnittsnivå, selv med begrenset satellittsynlighet. Ive opprettet et vedlegg som viser hvordan den iterative løsningen er utviklet, med utgangspunkt i en geometrisk rekkefølge, som er lineærisert ved hjelp av en Taylor-serieutvidelse, og løst ved matrisemetoder, for det spesielle tilfellet av fire satellitter eller det generelle tilfellet av mer, med mulighet til å bruke vektede minst-kvadrater for å kontrollere påvirkning av bestemte satellitter. Du finner denne og løsning C kildekoden i koblingene nederst på siden. Jeg er takknemlig for Dan Doberstein for å sende meg et tidlig utkast til sin GPS-bok 2 som hjalp meg med å forstå løsningsalgoritmen. Den offisielle US Government GPS Interface Specification 3 er en viktig referanse. Signalmonitor Ovennevnte kretsarrangement, for det meste implementert i FPGA, sprer seg ved å ta produktet av 1-bits IF og punktlig kode, og gir 50 bps datamodulasjon. En liten hakk på grunn av BPSK-bærerundertrykkelse kan bare sees: Disse spektrene viser samme spredt overføring ved forskjellige spenninger og oppløsning båndbredder (RBW). Doppler-skift var -1,2 KHz. Støygulvet er antennens termiske støy forsterket og filtrert av IF stripen. -3 dB båndbredde ser rundt 3 MHz, litt bredere enn planlagt. Den spredte bæreren er 5 dB over støy ved 30 KHz RBW og 25 dB over ved 300 Hz RBW. Mottatt signalstyrke ved antennen kan estimeres som -174110log10 (30e3) 5 -123 dBm. Det overrasker meg fortsatt hvor bra domenerinformasjonen er bevart gjennom hardt begrensende. LVDS-senderen har en konstant utgangsstrøm på 1mW i 100 ohm. Peak effekt sett på SA kan ikke overstige 0 dBm. Her ser vi dette tilgjengelige strømspredningen over en rekke frekvenser. Bredbånds integrert strømspektral tetthet må være First local oscillator Ive har bygd eksperimentelle fraksjonelle N-syntetiserere ved bruk av generell programmerbar logikk i flere år: Xilinx Spartan 3 FPGA Frac7 ble bygget for dette formålet, men jeg hadde ingen anelse om at Frac5 ville bli brukt i en GPS mottaker når jeg opprinnelig laget det. Bildet nedenfor viser hvordan ROS-1455 VCO-utgangen på Frac5 var resistivt delt mellom utgangen SMA og en Hittite HMC363 divide-by-8 prescaler. 200 MHz divider-utgangen blir dirigert (differensielt) i FPGA, hvilken fase låser den til en hovedreferanse ved hjelp av metoder dokumentert i mine tidligere prosjekter. Mikrobølgeomkretsen på Frac7 er lik, men bruker en Mini-krets 3dB splitter. Høy stabilitet og lavfase støy oppnås, som det fremgår av VCO-utgangspektraene vist nedenfor. Når Frac5 ble opprinnelig utviklet, var det som en dedikert frekvenssynteseapparat unngått samtidig veksling på frekvenser som ikke var harmonisk relatert for å minimere intermodulasjonssporer. FPGA var statisk når klokkeimpulser som skiftede fasedetektorutgangen krysset stoffet. Ingen slik luksus er praktisk når FPGA er vert for en GPS-mottaker, men heldigvis er den lokale oscillatorutgangen god: Marconi 2383-spektrumanalysatorene 50 MHz STD OUTPUT ble brukt som hovedkilde for Frac5 og alle interne GPS-mottakerklokker. GPS-mottakere trenger nøyaktigheter bedre enn 1 ppm (deler per million) for å måle plusmn5 KHz Doppler-skift på 1575.42 MHz L1-bærebølgen. Eventuell frekvensusikkerhet vil nødvendiggjøre et bredere søkeområde. Embedded CPU Min originale GPS-mottaker kunne bare spore 4 satellitter. Det tilgjengelige stoffet ble ikke brukt effektivt og FPGA var fullt. Identisk logikk ble gjengitt for hver kanal og kun klokkeaktivert ved 1 KHz-kodeperioden. GPS-oppdateringshastighetene er ganske uønskede og det meste av den parallelle behandlingen kan enkelt gjøres i rekkefølge. Embedding av en CPU for denne oppgaven har både økt antall kanaler og frigjort plass i FPGA. Denne CPU utfører direkte FORTH-primitiver som opprinnelige instruksjoner. Besøkende til min Mark 1 FORTH Computerside vil allerede være oppmerksom på min interesse for språket. FORTH er ikke vanlig og bruken her kan være en esoterisk barriere, men jeg kunne ikke motstå å gjøre en annen FORTH CPU, denne gangen i FPGA, etter å ha sett det utmerkede J1-prosjektet, som var en inspirasjon. FORTH er et stabelbasert språk, som i utgangspunktet betyr at CPUen har stabler i stedet for generelle formålregister. Wikipedia har en god oversikt. FPGA-ressurser: 360 skiver 2 BRAMs Enhetssyklus instruksjon utførelse FORTH-lignende, dual-stack arkitektur 32-biters stakk og ALU-dataveier 64-biters dobbel presisjonsoperasjoner Hardware multiplikator 2k byte (utvidbar til 4k byte) kode og data RAM Macro assembler kodeutvikling Minne og IO To BRAMs brukes: en for hovedminne, den andre for stabler. Xilinx blokk RAM er dobbeltported, slik at en forekomst kan være vert for både data og retur stabler. Hver stakkpeker spenner over halvparten av matrisen. Dobbel porting av hovedminne tillater datatilgang samtidig med opplæring. En minnesport er adressert av programtelleren, den andre av T, toppen av stakken. Skriver til den PC-adresserte porten brukes også til nedlasting av kode, programtelleren som gir inkrementerende adresser. Kode og data deler hovedminnet, som er organisert som 1024 (utvidbart til 2048) 16-biters ord. Minnetilgang kan være 16-, 32- eller 64-bits, ordlinjert. Alle instruksjonene er 16-bit. Total kode pluss datastørrelse på GPS-applikasjonen er mindre enn 750 ord, til tross for at alle løkkene blir rullet ut. IO er ikke minnekartet, og har sitt eget 36-bits utvalgte plass (12 i 12 ut 12 hendelser). En-varm koding brukes til å forenkle valgt dekoding. IO-operasjoner er forskjellige 1-bitars serielle, 16- eller 32-biters parallelle. Seriell data skifter 1 bit per klokke syklus. Hendelser brukes hovedsakelig som hardware strober og avviker fra skriver ved å ikke hoppe over stabelen. Instruksjonsformat 24 instruksjoner ut av en mulig 32 er for tiden allokert i opcode space h80XX - h9FXX. Disse er for det meste operasjoner med null operand stabell ALU. Ret alternativet, som utfører retur fra subrutinen, utføres parallelt, i samme syklus. Add-immediate er den eneste one-operand instruksjonen. Et innbydingsalternativ strekker seg (stablet, underforstått) tilleggs presisjon. hF0000 - hFFFF er ekstra. Stablere og ALU-dataveier er 32-biters, men 16-, 32- og 64-biters operasjoner støttes. 64-biters verdier okkuperer to steder på stakken, med minst signifikante biter på toppen. Top of stack, T og next on stack, N, er registrert utenfor BRAM for effektivitet. Bortsett fra 64-biters venstre skifte (opshl64) som er hardt tilkoblet for enkeltsykluskjøring, er alle andre dobbelte presisjonsfunksjoner programvaresubrutiner. Monteringsspråk GPS-innebygd binær ble opprettet ved hjelp av Microsofts Macro Assembler MASM. Dette støtter bare x86 mnemonics, men opkoder er deklarert ved hjelp av equ og kode er samlet ved hjelp av dw-direktiver. MASM gir ikke bare etikettoppløsning, makroekspansjon og ekspresevaluering, men også datastrukturer. MASM dup () operatøren brukes i stor grad for å rulle opp løkker, f. eks. dw N dup (opcall dest) kaller en subrutine N ganger. Dette fragmentet gir litt smak av kilde stil. Stack-effekt kommenteres på hver linje: opfetch16 og opstore16 er primitives. opstore32 og opstore64 er subrutiner eller sammensatte instruksjoner som kan brukes som om de var primitiver. T er faktisk 15: 0,31: 16 etter opswap16. men vi bryr oss ikke om de øvre 16 bitene her. opstore16 forlater adressestabeldybden kan bare endre plusmn1 per syklus. Purister kan foretrekke: dw N addi Verts serielle grensesnitt FPGA kan styres via SPI av Raspberry Pi, eller av en Windows PC ved hjelp av en Xilinx Platform USB JTAG-kabel. Det er to nivåer av forespørselsprioritet: Send ny kommando og avstemning for svar på tidligere Nye kodebilder kopieres til hovedminne via en tredje BRAM som kobler CPU - og serieklokke-domenene. Dermed lastes ned binære bilder automatisk. Vertskommandoer er fanget i broen BRAM, og CPU-signalet er signalisert til handling dem. Dens svar er samlet av verten fra broen ved neste skanning. De øverste nivåene i hovedløpene for vertsforespørsler. Det første ordet av noen vertsmelding er en kommandokode. Requests are dispatched through the Commands jump table: optor moves vector to the return stack. Some host requests (e. g. CmdGetSamples) elicit lengthy responses. Data ports on the CPU side of the bridge are 16-bit. The CPU can read and write these via the data stack however, more direct paths exist for uploading main memory and GPS IF samples. The instruction opwrEvt GETMEMORY transfers a memory word directly to the bridge, using T as an auto-incrementing pointer. GETMEMORY is the only event which has stack effect. The instruction opwrEvt GETSAMPLES transfers 16 bits from the IF sampler: Unrolling loops at assembly time with dup() trades code size for performance, avoiding a decrement-test-branch hit and the entire application binary is still tiny however, long loops must be nested, as illustrated above. CHANNEL data structure An array of structures holds state variables and buffered NAV data for the channels. MASM has excellent support for data structures. Field offsets are automatically defined as constants and the sizeof operator is useful. The epoch service routine (labelled Method: ) is called with a pointer to a CHANNEL structure on the stack. Affecting OO-airs, stack-effect comments refer to it as this throughout the routine. A copy is conveniently kept on the return stack for accessing structure members like so: The Chans array is regularly uploaded to the host. Raspberry Pi application software The Raspberry Pi software is multi-tasked using what are variously known as coroutines, continuations, user-mode or light-weight threads. These co-operatively yield control, in round-robin fashion, using the C library setjmplongjmp non-local goto, avoiding the cost of a kernel context-switch: Up to 16 threads can be active:Embedded Engineering In post. Jeg skal vise deg hvordan du implementerer det enkleste mulige digitale filteret kvoterende gjennomsnittlig filterkvot. Selv om det er veldig enkelt å implementere, men fortsatt i mange applikasjoner, er dette mer enn godt nok. for eksempel å redusere tilfeldig støy fra signalet. selvfølgelig når det er veldig enkelt har det problemer som. det har ingen veldig skarp filterrespons. Kanal 1-inngang. fei fra 20Hz til 6kHz, kanal 4 (grønn) 15-punkts filtrert utgang, M (rød) - utgang i freq-domene lørdag 1. oktober 2016 Dette prosjektet er den siste delen i å lage et veldig kraftig sollys. I dette prosjektet intigrerer vi LTC3478 Basert philips lumileds Driver og BQ24650 Basert MPPT Solar Li-Ion charge Controller. Vi bruker totalt 3 9 Watt hver LED-driverbord og en ladestyring for å lade 6 Cell 7.6V 20000mah li-løvebatteri. Det er 4 LED-bar-grafdisplay for å vise estimat for batterinivå og en enkelt knapp for å kontrollere Onoff, Different Level av lysstyrke. og velg en. alle eller få av LED-plater til litup. Det er ikke mye å beskrive i form av skjematisk og fastvare som alle Firmware og Schmeatic aer allerede på min github-konto. Brukergrensesnittpanelet er laget av PCB med 4 batteristatus LED en port for solpanelkontakt og en kontrollbryter. Når batteriet er ladet, lyser LED-status tilsvarende, og når batteriet slipper, blir ledestatus oppdatert tilsvarende. I tillegg til det lille solbelysningsprojektet som jeg jobbet med, har jeg laget denne lille solenergi-laderen for å lade opp litiumionbatteri (li-ion). Circuit Utnytt Texas Instrument BQ24650 i hjertet av sløyfen for å kontrollere ladingen. som krets har ekstern mosfet så maksimalt 160charge nåværende kan justeres til virkelig høye verdier. 160Circuit aksepterer solcelleverdier fra 5V til 28V. Jeg har testet den med 12V nominell (17Volts åpen krets) 160. og 24 Volt nominelt solpanel ved batteriladningsstrøm opptil 4A. For tiden installert i huset mitt siden noen måneder. Lading av et 20000 mah li-ion batteri. Kretskortet har stor 4-polet høykapasitets Molex-kontakt for solpanel. 6-polet kontakt for batteri og lastbryter. Det er også mulig å koble NTC til batteritempraturovervåking. BQ24650 kan automatisk overvåke temperaturen på batteriet. Microcontroller har dedikert 3 PWM utgang for LED-dimmer og 6 gpio pin-header for bettery status ledet og en brukergrensesnitt nøkkel. Hallo zu Deutsch Leser. Das ist mein erste Artikel auf Deutsch. Jeg habe viel aufrufe aus Deutschland deshalb Jetzt ab, ich werde auch auf Deutsch publisher weilich Detusch lerne und mehr mehr bungen. Jedes Article wird auf Deutsch und English. wenn wir Widerspruch zwischen dem Artikel auf Deutsch und Englisch haben, die English berwiegt weil Meine erfahrungen auf deutsch kurze ist.160 160 160 160Så begynner vi. Heutzutage arbeit ich an einem Projekt. quotMPPT Solar li-ion Laderquot. Bei diesem projekt brauche ich eine160sehr160vollmacht 25W LED leicht. aber 25W er viel pels ein160LED-Triber. Dette er en av de mest kjente 25 W LED-Triber zu entwerfen. Hauptsorge Auf die Projket quotMPPT Solar - lon Laderquot ist zu Lernen wie MPPT Larder Arbeitet und wie die software Algorithmus sind. Das Projekt ist ein teil von ein Projekt was publiziere ich spter.160 160 160 160 Jeg jobbet med å jobbe med en 160little solbelysningsprosjekt , jeg trenger en virkelig lys, gal 25W 160LED belysning. Men problemet var for 25W det var mye strøm for LED og det krever noen ferdigheter for å lage en så høy LED-driver. Hovedmål for dette prosjektet er å få en nedstigningskunnskap om MPPT-ladestyring og MPPT-ladingsalgoritmer. Dette prosjektet er en del av prosjektet. at jeg vil legge inn senere. 160160160 Dette innlegget kommer til å være fjerde del i serie med å lage et Linux-kompatibelt ARM-kort hjemme. klikk først. Andre og tredje for å gå til tidligere deler, så vi kan starte. Hva er en Bootloader, Hvorfor trenger vi it160 en oppstartslaster er et program som er den første som skal utføres av CPU. det gir noen svært spesifikke formål å sette opp noen svært viktige ting før du laster hovedprogrammet (kan være OS) inn i main memoryquot. det er derfor det kalles boot loader. Avhengig av behov kan oppstartslaster gjøre en annen oppgave (vi vil dekke dem her). Det er forskjellige former og størrelser på bootloaders. de tjener alle nesten samme formål. med mikrokontroller. Noen ganger laster det faktisk ikke hovedprogrammet inn i minnet, men overfører utføringspekeren til hovedprogrammet slik at hovedprogrammet kan kjøre direkte danner minnet der det er. Styret Med 4,3 tommers LCD-kjører Qt5-applikasjon for å vise JPEG-bilde og tid
No comments:
Post a Comment