DE60109702T2 - Systemempfänger und Verfahren zur Satellitennavigation - Google Patents

Systemempfänger und Verfahren zur Satellitennavigation Download PDF

Info

Publication number
DE60109702T2
DE60109702T2 DE60109702T DE60109702T DE60109702T2 DE 60109702 T2 DE60109702 T2 DE 60109702T2 DE 60109702 T DE60109702 T DE 60109702T DE 60109702 T DE60109702 T DE 60109702T DE 60109702 T2 DE60109702 T2 DE 60109702T2
Authority
DE
Germany
Prior art keywords
code
navigation
data
satellite
mode
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60109702T
Other languages
English (en)
Other versions
DE60109702D1 (de
Inventor
Paul W. San Francisco McBurney
Arthur N. Cupertino Woo
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Eride Inc
Original Assignee
Seiko Epson Corp
Eride Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp, Eride Inc filed Critical Seiko Epson Corp
Publication of DE60109702D1 publication Critical patent/DE60109702D1/de
Application granted granted Critical
Publication of DE60109702T2 publication Critical patent/DE60109702T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/0009Transmission of position information to remote stations
    • G01S5/0045Transmission from base station to mobile station
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/03Cooperating elements; Interaction or communication between different cooperating elements or between cooperating elements and receivers
    • G01S19/05Cooperating elements; Interaction or communication between different cooperating elements or between cooperating elements and receivers providing aiding data
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/03Cooperating elements; Interaction or communication between different cooperating elements or between cooperating elements and receivers
    • G01S19/07Cooperating elements; Interaction or communication between different cooperating elements or between cooperating elements and receivers providing data for correcting measured positioning data, e.g. DGPS [differential GPS] or ionosphere corrections
    • G01S19/071DGPS corrections
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/24Acquisition or tracking or demodulation of signals transmitted by the system
    • G01S19/25Acquisition or tracking or demodulation of signals transmitted by the system involving aiding data received from a cooperating element, e.g. assisted GPS
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/0009Transmission of position information to remote stations
    • G01S5/0018Transmission from mobile station to base station
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/35Constructional details or hardware or software details of the signal processing chain

Description

  • Die vorliegende Erfindung bezieht sich auf Satellitennavigations-Empfänger und -Systeme sowie insbesondere auf Vorrichtungen und Verfahren für einen Betrieb in Bereichen mit äußerst geringer Signalstärke und jene, die Positionslösungen sehr schnell initialisieren und ausgeben können.
  • GPS-Empfänger (GPS/Global Positioning System = Globales Positionierungssystem) verwenden Signale, die sie normalerweise von mindestens drei die Erde umkreisenden Satelliten empfangen, um Navigationsdaten, wie etwa die Position und die Geschwindigkeit zu ermitteln. GPS-Signale sind weltweit kostenfrei verfügbar und werden derzeit routinemäßig genutzt, um den Aufenthaltsort von Kraftfahrzeugen innerhalb eines Stadtblocks oder mit höherer Genauigkeit zu ermitteln. Dualfrequenzträger-GPS-Empfänger verfolgen normalerweise zwei Hochfrequenzträger L1 und L2, die den GPS-Satelliten zugeordnet sind, um akkumulierte Deltabereichsmessungen (ADR) aus der P-Code-Modulation auf diesen Trägerfrequenzen zu erzeugen und führen gleichzeitig eine Zeitverfolgung des L1-C/C-Codes aus, um Codephasenmessungen durchzuführen. Die Trägerfrequenz L1 ist 1.575,42 MHz zugewiesen und die Trägerfrequenz L2 befindet sich bei 1.227,78 MHz. Kostengünstigere Empfänger stimmen lediglich eine Trägerfrequenz ab und verfügen daher nicht über geeignete Informationen, um die lokalen troposphärischen und ionosphärischen Signalausbreitungsverzögerungen zu berechnen, die als Positionsfehler auftreten. Bei derartigen Frequenzen breiten sich die Hochfrequenzträgersignale quasioptisch aus. Somit können Gebäude, Gebirge und der Horizont den Empfang blockieren und Mehrwegereflexionen einen guten Empfang stören.
  • Jede einzelne Konstellation von GPS-Satelliten im erdnahen Orbit sendet einen von 32 einzigartigen Kenncodes in einer CDMA-Anordnung (CDMA/code-division multiple access = Codierter Mehrfachzugriff). Dies ermöglicht es sämtlichen der zahlreichen GPS-Satelliten, im Signalspreizungsmodus auf derselben Frequenz zu senden, plus oder minus einer Dopplerfrequenz-Verschiebung dieser Frequenz, wie sie aus der Relativgeschwindigkeit des Satelliten resultiert. Bestimmten Satelliten werden aus einem dadurch entstehenden Durcheinander von Signalen und Rauschen durch Korrelieren eines 1.023-"Chip"-Codes mit einem der 32 Pseudozufallszahl-(PRN-)Sequenzcodes geortet, die einzelnen GPS-Satelliten zugeordnet sind. Diese Codes werden nicht unbedingt phasengleich zueinander gesendet. Daher beinhaltet das "Auffinden" eines GPS-Satelliten zunächst das Absuchen unterschiedlicher Trägerfrequenzen, um der Dopplertrequenz-Verschiebungen und Oszillatorungenauigkeiten Rechnung zu tragen, und das Suchen nach einer Codeübereinstimmung unter Verwendung 1.023 unterschiedlicher Codephasen und mindestens 20 möglicher Korrelationscode-Vorlagen.
  • In großen Städten mit hohen Gebäuden können einer oder mehrere der GPS-Satelliten, die von einem bestimmten Empfänger verfolgt werden, vorübergehend blockiert sein. In manchen Situationen können derartige Blockierungen eine Verfolgung sämtlicher darüber befindlicher GPS-Satelliten verhindern, wobei derartige Ausfälle einige Minuten andauern können. Zudem sind die GPS-Signale für Fahrzeuge, die sich durch Untertühren unter Land oder unter Wasser bewegen, nicht verfügbar.
  • Wenigstens ein herkömmlicher GPS-Fünfkanalempfänger bündelt beim Einschalten sämtliche seiner Kanäle auf einen Satelliten. Damit wird dem Problem der Unsicherheit der Satellitensignalfrequenz Rechnung getragen, die infolge von Dopplereffekten und lokalen Oszillatorungenauigkeiten im Empfänger existiert. Eine Suche nach einem speziellen Satelliten im scheinbaren Dopplertrequenzspektrum wird parallel ausgeführt. Beispielsweise durch Segmentieren des möglichen Dopplerfrequenzspektrums in genau so viele Segmente, wie Empfängerkanäle vorhanden sind. Daraufhin wird jeder der zahlreichen Empfängerkanäle angewiesen, eine Suche innerhalb eines bestimmten Segments durchzuführen.
  • Die einzelne größte Ungenauigkeit stammt von den Zufallsfrequenzen, die infolge typischer lokaler Oszillatorungenauigkeiten bei der Inbetriebnahme auftreten. Da her ist die scheinbare Dopplerfrequenz nur innerhalb weiter Suchgrenzen bekannt. Das Wissen um die tatsächliche Dopplerfrequenz ist nicht sehr hilfreich, da der lokale Oszillator an sich so weit vom Nominalwert entfernt sein kann.
  • Vom Standpunkt des Benutzers aus, sind wenigstens zwei Betriebseigenschaften der GPS-Empfgänger des Standes der Technik nicht zufriedenstellend. Derartige herkömmliche Empfänger versagen in geschlossenen Räumen häufig ihren Dienst, da die Gebäude den lokalen Signalfeldstärkepegel unter die maximale Empfindlichkeit des Empfängers absenken. Und die meisten Empfänger benötigen sehr viel Zeit, um einen Positionslösung ab einem Kaltstart zu erzeugen.
  • Aufwendige Berechnungen in GPS-Empfängern erfordern hohe Taktraten und sehr viel teuren Speicherplatz. Dadurch wird wiederum teure und umfangreiche Hardware notwendig. Hersteller wie auch Benutzer würden leichtere und dünnere Navigationslösungen schätzen, die kostengünstige Plattformen nutzen oder bereits vorhandene Plattformen anderer Applikationen nutzen können.
  • Das Internet bietet zudem individuellen GPS-Empfängern die Möglichkeit, Differential-Korrekturdaten in ihren Bereichen zu überwachen und rechenintensive Aufgaben an regionale Webserver abzugeben, die über Hochleistungsprozessoren verfügen.
  • SnapTrack Inc. (San Jose, CA) ist ein kommerzieller Anbieter drahtlos unterstützter GPS-(WAG-)Systeme. Zeit, Frequenz und ungefähre Aufenthaltsortsdaten werden aus einem drahtlosen Netzwerk extrahiert, um bei einer GPS-Signalverarbeitung in einem Navigationsempfänger unterstützend mitzuwirken. Einer derartige Technologie ist in einer Reihe von US-Patenten beschrieben, die SnapTrack erteilt sind, wie etwa: 5.945.944; 5.663.734; 5.781.156; 5.825.327; 5.831.574; 5.841.396; 5.812.087; 5.874.914; 5.884.214 und dergleichen. Siehe auch das US-Patent 6.078.290.
  • US-A-4 445 118 beschreibt ein Satellitennavigationssystem in einem GPS-System, bei dem ein Ortungshilfssignal, das von einer Bodensteuerstation erzeugt wird, zu den mobilen Endgeräten weitergeleitet wird, um die Datenverarbei tungsfunktionen zu vereinfachen, die in diesen Endgeräten ausgeführt werden. Das Hilfssignal reduziert das Benutzergerät durch Vereinfachung der Signalspreizungs-Signaldemodulation und durch reduzierte Datenverarbeitungsfunktionen, die zuvor im Benutzerendgerät ausgeführt wurden.
  • Ein Ziel der vorliegenden Erfindung besteht darin, ein Satellitennavigationssystem anzugeben, das mit äußerst geringen Signalstärkepegeln arbeiten kann.
  • Dieses Ziel wird durch den Gegenstand des unabhängigen Anspruchs 1 erreicht.
  • Bevorzugte Ausführungsformen der Erfindung sind Gegenstand der abhängigen Ansprüche.
  • Ein weiterer Aspekt der vorliegenden Erfindung besteht darin, einen Satellitennavigationsempfänger anzugeben, der Positionslösungen unmittelbar nach jedem Kaltstart erzeugt.
  • Ein weiterer Aspekt der vorliegenden Erfindung besteht darin, ein Satellitennavigationssystem anzugeben, das kostengünstig ist.
  • Ein weiterer Aspekt der vorliegenden Erfindung besteht darin, ein Satellitennavigationssystem anzugeben, das mit dem Internet zusammenarbeitet.
  • Ein Aspekt der vorliegenden Erfindung besteht darin, ein System anzugeben, dessen verbesserte Genauigkeit und Leistungsfähigkeit über Zeitdifferenz- und Frequenzdifferenzinformationen unterstützt werden kann, die in einem Netzwerk verteilt werden.
  • Kurz gesagt beinhaltet ein GPS-Positionierungssystem gemäß einem Aspekt der vorliegenden Erfindung einen System-On-Chip-Empfänger, einen Netzwerk-Client und einen Webserver. Der Webserver kann die Betriebsart einer einfachen Beobachtungsplattform unterstützen, bei der der System-On-Chip-Empfänger Informationen lediglich weiterleitet, oder kann eine halbautonome Betriebsart unterstützen, bei der der System-On-Chip-Empfänger in der Lage ist, seine Position für 15 Minuten seit seinem letzten Kontakt mit dem Webserver zu berechnen. Der Webserver enthält seine eigenen lokalen GPS-Konstellations-Messplattformen, um eine Datenbank von GPS-Messfehlern, Ephemeris-, Alamanach- und anderen Satellitendatennachrichten aufzubauen. Informationen von unzureichend arbeitenden Satelliten mit Problemen werden ausgefiltert. Der Netzwerk-Client ist von traditionellen rechenintensiven Aufgaben unter Verwendung ganzzahliger Arithmetik und kommunizierender Binärzahlen anstelle von Flieskommazahlen und der Benutzung transzendenter mathematischer Funktionen befreit. In einer Betriebsart werden Positionsfixierungen vom Webserver aus Daten bereitgestellt, die vom Netzwerk-Client zugeführt werden. Der System-On-Chip-Empfänger enthält Schaltkreise, um die Empfängerempfindlichkeit und die Suchgeschwindigkeit zu verstärken.
  • Ein Vorteil der vorliegenden Erfindung besteht darin, dass ein System und ein Verfahren angegeben werden, mit denen die Kosten des Navigationsgerätes des Benutzers verringert werden.
  • Ein weiterer Vorteil der vorliegenden Erfindung besteht darin, dass ein System und ein Verfahren angegeben werden, die die Empfindlichkeit und die Zeit zu ersten Fixierung in ausreichendem Maße für Straßenschluchten und die Benutzung in geschlossenen Räumen verbessern.
  • Ein weiterer Vorteil der vorliegenden Erfindung besteht darin, dass ein System und ein Verfahren angegeben werden, die Datenbankdienste höherer Ordnung über das Internet verfügbar machen, die sich auf Benutzer-Positionsfixierungen in Echtzeit und bereits abgelaufener Zeit beziehen.
  • Diese sowie andere Ziele und Vorteile der vorliegenden Erfindung werden dem Fachmann ohne Zweifel verständlich sein, nachdem er die folgende detaillierte Beschreibung der bevorzugten Ausführungsformen gelesen hat, die in den unterschiedlichen Zeichnungen dargestellt sind.
  • 1 ist ein Funktionsblockschaltbild einer Ausführungsform eines Benutzer-Navigationssystems der vorliegenden Erfindung, das auf ein Benutzergerät, einen Netzwerk-Client und einen Webserver verteilt ist;
  • 2 ist ein Funktionsblockschaltbild einer Ausführungsform eines digitalen Signalprozessors der vorliegenden Erfindung, der eine hardwareimplementierte Statusmaschine, die den Betrieb der Empfänger-Mischer aufrechterhält, und eine softwareimplementierte Statusmaschine enthält, die den Datenbedarf der hardwareimplementierten Statusmaschine deckt;
  • 3 ist ein Funktionsblockschaltbild der höchsten Ebene des Firmware-Betriebssystems, das von einem eingebetteten RISC-Prozessor ausgeführt wird, sowie dessen Schnittstelle zur Navigationsplattform; und
  • 4 ist ein Funktionsblockschaltbild der Takterzeugung und der Steuerung, die Bestandteil des Empfängers von 1 ist.
  • Eine Ausführungsform des Positionsbestimmungssystems der vorliegenden Erfindung ist in 1 gezeigt und ist im folgenden mit dem allgemeinen Bezugszeichen 100 gekennzeichnet. Das System 100 beinhaltet einen Empfänger 102, einen Netzwerk-Client 104, der dem Empfänger zugeordnet ist, sowie einen Webserver 106, der vom Empfänger und vom Client entfernt ist. Eine Mikrowellenantenne 108 empfängt Signale für den Empfänger 102, die von GPS-Satelliten im Orbit gesendet werden. Ein zweite Mikrowellenantenne 110 empfängt Signale lokal am Webserver 106, die von einigen dieser GPS-Satelliten im Orbit gesendet werden.
  • Obwohl der Empfänger 102 vom Webserver 106 entfernt ist, befindet er sich im selben geographischen Gebiet und kann weiterhin von differentialen, ionosphärischen und troposphärischen Korrekturen profitieren, die vom Webserver 106 berechnet werden.
  • Der Empfänger 102 enthält eine Hochfrequenz-(HF-)Stufe 112, einen digitalen Signalprozessor (DSP) 114 und einen Mikrocomputer (μC) 116. Der μC enthält einen RAM (Random Access Memory), einen ROM (Read Only Memory) und einen Mirkoprozessor, der auf Befehle höherer Ordnung vom Client 104 reagiert. Ein derartiger RAM und ROM haben normalerweise eine geringe Größe, um die Herstellungs- und Betriebskosten zu senken. Daher ist es bei den Ausführungsformen der vorliegenden Erfindung von Bedeutung, dass nichts im Empfänger 102 verwendet wird, um Satelliten-Ephemeris- oder Almanachdaten zu speichern. Bei wenigstens einer Betriebsart hängt der Empfänger 102 in bedeutendem Maße von periodischen Aktualisierungen einer Gruppe von Polynomen durch den Webserver 106 ab, die jeweils eine Position und Geschwindigkeit des sichtbaren Satelliten anzeigen.
  • Bei einer Ausführungsform der vorliegenden Erfindung ist der DSP 114 vorzugsweise als dedizierter Logik-Gate-Aufbau einer Statusmaschine, wie etwa als applikationsspezifischer integrierter Schaltkreis (ASIC), oder mit einer Gate-Anordnung implementiert. Der μC 116 ist dazu programmiert, eine zweite Statusmaschine, die eine Firmware oder Software verwendet, wie etwa eine softwareimplementierte Statusmaschine, zu implementieren. Die beiden Statusmaschinen arbeiten in einer symbiotischen Beziehung, um die phasengleichen Abtastungen und die Quadratur-Abtastungen, die von der HF-Stufe 112 zugeführt werden, in Navigationsmessungen zu konvertieren, die vom μC 116 konstruiert und weitergeleitet werden. Serielle Kommunikationsverbindungen 116 und 120 transportieren diese Messungen zu einer Navigationsplattform, z. B. entweder zum Client 104 oder durch diesen zum Webserver 106. Eine derartige Navigationsplattform sendet den suchenden Satelliten die vorzunehmenden Messungen und dergleichen zurück.
  • Kommunikationsverbindungen 122 und 124 zwischen dem Client 104 und dem Webserver 106 beinhalten vorzugsweise das Internet und verwenden die Transfer-Control-Protocol-/Internet-Protocol-(TCP-/IP-)Technologie. Drittbenutzer haben vorzugsweise wenigstens Zugriff auf den Webserver 106.
  • Ein Teil oder sämtliche der Kommunikationsverbindungen 118, 120, 122 und 124 können drahtlos sein. Spezielle Applikationen können von diesen drahtlosen Verbindungen abhängen oder durch diese ermöglicht werden. Dies würde insbesondere dann zutreffen, wenn der Empfänger 102 batteriebetrieben ist und von einem Benutzer oder Fahrzeug getragen bzw. transportiert wird.
  • Bei allen Ausführungsformen der vorliegenden Erfindung ist es wichtig, dass keine Flieskommaarithmetik oder Basis-10-Berechnungen vom Empfänger 102 ausgeführt werden. Einfach-präzise und natürlich doppelt-präzise Flieskommaoperationen sind zu prozessorintensiv für den geringen Energieverbrauch und die geringen Taktraten, die vorzugsweise ein untrennbarer Bestandteil des Empfängers 102 sind. Anstelle dessen müssen sämtliche Berechnungen und Lösungen der Empfängerposition in einer ganzzahligen Basis-2-Arithmetik, wie etwa 32 Bit binär, ausgeführt werden. Dies erfordert wenigstens eine Betriebsart, in der der Webserver 106 troposphärische, ionosphärische, selektiv verfügbare (SA) und differentielle Korrekturdaten berechnet und weiterleitet, die als ganze Zahlen auf der Basis 2 formatiert sind. Ist dies nicht möglich, muss der Client 104 diese Aufgaben ausführen.
  • Der GPS-Navigations-Almanach und die -Ephemeris werden vom Webserver 106 mit seinem eigenen Referenzstations-GPS-Empfänger erworben und reduziert, um einfache Polynome bereitzustellen, die jeweils die Position und Geschwindigkeit jedes Satelliten kennzeichnen. Derartige Polynome veralten natürlich im Laufe der Zeit, wobei jedoch periodische Kontakte zwischen dem Client 104 und 106 über das Internet in kritischem Maße davon abhängig sind, um ausreichend aktuelle Orbitdaten bereitzustellen. Der Empfänger 102 ist somit von der speicherintensiven Aufgabe befreit, die momentanen Ephemeris- und Almanachdaten im lokalen RAM/ROM zu halten und muss nicht die 258-intesive Arbeit des RISC-Prozessors ausführen, in doppelt-präziser Flieskommamathematik die Satellitenorbitpositionen für jede Positionsfixierung lokal zu berechnen.
  • Bei einer gewerblichen Ausführungsform der vorliegenden Erfindung gehört der Webserver 106 einem unabhängigen Dienstanbieter und wird von diesem betrieben. Abonnenten- oder nutzungsgebundene Gebühren werden Benutzern in Rechnung gestellt, die den Empfänger 102 und/oder den Netzwerk-Client 104 benutzen. Der Empfänger 102 ist alternativ dazu weiterhin in ein IP-(Intellectual-Property-)Paket für integrierte Halbleiterschaltkreisvorrichtungen applikationsspezifischer Netzwerk-Clients 104 eingebunden. Eine derartige IP wird für eine Lizenzgebühr und Hardwarekosten OEMs (Original Equipment Manufacturers = Originalzubehör-Herstellern) der Netzwerk-Clients 104 verkauft.
  • Die Hochfrequenzstufe 112 und der DSP 114 bilden einen "Hardware-Enabler", der kommerziell als Verilog-Code in einem Bündel mit Software für den μC einem OEM verkauft werden kann, damit dieser in seinen Produkten enthalten ist. Ein derartiger Hardware-Enabler ist vorzugsweise in einem einzigen integrierten Schaltkreis (IC) als SOC (System-On-Chip) implementiert. Es können zudem andere Arten einer HDL (Hardware Description Language) und eines Softwareprogrammiercodes, wie etwa C++, Visual-Basic und dergleichen verwendet werden.
  • Der Client 104 kann in einer von wenigstens vier Betriebsarten betrieben werden: autonom, halbautonom, "dünn" und super-dünn. In der autonomen Betriebsart ist der Client 104 die Navigationsplattform und deckt den Informationsbedarf des Empfängers 102 selbst ohne die Hilfe eines Webservers 106. Bei allen anderen Betriebsarten fungiert der Webserver 106 als Navigationsplattform.
  • In der halbautonomen Betriebsart zieht der Client 104 den Webserver 106 periodisch für Informationen hinzu. In der dünnen Betriebsart leitet der Client 104 die Daten zwischen dem Empfänger 102 und dem Webserver 106 einfach weiter. Die dünne Betriebsart wird bevorzugt, da sie die einzige ist, die es am besten ermöglicht, die Kosten zur Herstellung und des Betriebs des Clients 104 auf ein Minimum zu reduzieren. In der super-dünnen Betriebsart werden Zeitdifferenz- und/oder Frequenzdifferenz-Informationen, die von anderen Beobachtern beigesteuert werden, über ein Netzwerk kommuniziert, um die Unsicherheiten der lokalen Zeit und der lokalen Frequenz zu verringern.
  • Während des Betriebs muss der Empfänger 102 simultan nach GPS-Mikrowellensignalen in zwei Domänen suchen, wie etwa der Frequenz- und der Code-Phase. Der lokale Oszillator und die Doppler-Verschiebung, die von der Satellitenrelativgeschwindigkeit verursacht wird, erzeugen Trägertrequenz-Unsicherheiten, die gestreut sind. Die augenblickliche GPS-Satelliten-Pseudozufallszahl-(Pseudozufallszahl-)Codephase ist eine weitere Unbekannte. Empfangssignale, die sich über dem "Grundrauschen" befinden, sind relativ einfach und schnell zu suchen. Schwache Signale in Gebäuden gehen jedoch in einem Rauschen in der Größenordnung von 20 dB unter. Jeder Besuch bei einer Frequenz-/Codephasen-Binärdatei muss dort lange genug andauern, um das Grundrauschen mit Verarbeitungsgewinnen zu "unterdrücken", die von Codekor relatoren erzeugt werden. Schwache Signale erfordern es zudem, dass die Such-Binärdateien feinere Schritte zwischen Binärfrequenzen und Binär-Codephasen beispielsweise wegen des Aliasing haben. Somit muss eine größere Zahl von Binärdateien durchsucht werden, wobei jede Binärdatei mehr Verarbeitungszeit erfordert, was die Durchsuchungszeit exponential erhöht.
  • Der Webserver 106 gibt Echtzeit-Navigationsdaten an das Internet aus. Es existieren derzeit andere Dienste, die Navigations- und Initialisierungsdaten im Internet bereitstellen, die teilweise oder nicht in Echtzeit sind, wobei diese zum Teil anstelle von Echtzeit-Navigationsdaten, die zum Empfänger 102 gesendet werden, oder zu deren Gültigkeitsprüfung verwendet werden können. Eine primäre und wichtige Aufgabe des Webservers 106 besteht in der Entlastung des Empfängers 102 hinsichtlich der Navigationsberechnungsarbeiten. Der Umfang, in dem eine derartige Entlastung erfolgen kann, hängt von der Regelmäßigkeit des Kommunikationskontaktes ab, die zwischen dem Empfänger 102 und dem Webserver 106 realisiert werden kann. Die tatsächlichen Messungen, die der Empfänger 102 erhält, werden zum Webserver 106 weitergeleitet.
  • Alternative Ausführungsformen der vorliegenden Erfindung beinhalten Webserver 106, die eine Datenbankverarbeitung zu Abstraktionen und Zwecken einer höheren Ordnung ausführen. Beispielsweise enthält die Serverplattform eine Bereitschafts- und Qualitätsüberwachungseinrichtung, die die statischen Beobachtungen prüft und eine Einbeziehung falscher Informationen in die Datenbank von Messfehlern und Satellitendatenmeldungen verhindert. An einer anderen Stelle könnte der Webserver 106 Positionslösungsinformationen im Verlauf der Zeit für das Muster der Orte sammeln, die der Empfänger 102 über einen Zeitraum von Stunden, Tagen, Wochen, Monaten, Jahren und dergleichen besucht. Derartige Informationen können anschließend verarbeitet werden, um zu schätzen, wo sich der Benutzer des Empfängers 102 befindet, wo der Benutzer gewesen ist, oder wo der Benutzer wahrscheinlich in der Zukunft sein wird. Derartige Informationen sind für Versand, Uhrzeit, Hausarrest, Personaleinsatz, Bestandsaufnahmen, Anlagenverwaltung, Militär, Sicherheit und andere Arten von Anwendungen nützlich. Positionsinformationen können interpretiert werden, um intelligent darauf zu schließen, was der Benutzer zu einem beliebigen Zeitpunkt tut. Wenn beispielsweise die Po sition des Benutzers mit der eines örtlichen Gemüsehändlers übereinstimmt, könnte davon ausgegangen werden, dass der Benutzer beim Einkaufen ist. Es können auch Markierungen vom Benutzer im Webserver 106 erzeugt werden, wie etwa durch die Stadtverwaltung, die mit der elektronischen Datenbank den unveränderbaren Ort von Löschhydranten, Netzstromwandlern oder Fahrbahnen und dergleichen zuordnet und in dieser "kennzeichnet".
  • Die Präsenz von Informationen im Internet über eine Benutzerposition kann von Werbe- und Marketingfirmen genutzt werden, um Kontextnachrichten an den Benutzer in Echtzeit zu senden. Derartige Daten werden bei einer gewerblichen Ausführungsform der vorliegenden Erfindung in Echtzeit verkauft.
  • Bei einer Ausführungsform der vorliegenden Erfindung trägt ein Benutzer den Empfänger 102 und verbindet sich über Funk mit dem Client 104. Ein Schilauf des Benutzers könnte beispielsweise aufgezeichnet und später an einem Kiosk wiedergegeben werden. Ein Jogginglauf könnte bei einem weiteren Beispiel von einem persönlichen Trainer analysiert werden, um spezielle Übungsanweisungen zu überprüfen. Bei derartigen Anwendungen könnte der Empfänger 102 vollständig in einer Armbanduhr mit Stromhalbleitertechnik integriert sein.
  • Ausführungsformen der vorliegenden Erfindung erhöhen die Empfindlichkeit des Empfängers und verringern gleichzeitig Suchzeiten, indem Signalabtastungen, die man vom SOC-Empfänger 102 erhält, für zahlreiche Prozessoren kopiert werden, die unterschiedliche Binärfrequenz-/Codephasen-Hypothesen parallel ausführen. Im Durchschnitt wird die korrekte Binärfrequenz-/Codephasen-Hypothese selbst in geschlossenen Räumen und in Fahrzeugen sehr schnell gefunden.
  • Im allgemeinen verwenden Ausführungsformen der vorliegenden Erfindung Internet-Webserver, um Daten, die von entfernten GPS-Empfängern gesammelt werden, derart zu verarbeiten, dass die Signalempfindlichkeit erhöht und Suchzeiten im Vergleich zu herkömmlichen Empfängern und Verfahren verkürzt werden.
  • 2 zeigt eine System-On-Chip-(SOC-)Ausführungsform der vorliegenden Erfindung und ist im folgenden durch das Bezugszeichen 200 gekennzeichnet. Das SOC enthält zwei Basisteile, die in einem Stück Silizium integriert sind, eine hardwareimplementierte Statusmaschine und eine softwareimplementierte Statusmaschine. In 1 sind diese beiden Funktionshälften separat als DSP 114 und μC 116 dargestellt.
  • Die hardwareimplementierte Statusmaschine gibt Abtastungen von der HF-Stufe 112 (1) ein. Sie verwendet eine zugewiesene Gate-Logik, um mit dem Betrieb der Empfängermischers schrittzuhalten. Eine softwareimplementierte Statusmaschine, die auf einem eingebetteten RISC-Prozessor ausgeführt wird, versorgt den Echtzeitdatenbedarf der hardwareimplementierten Statusmaschine. Ein derartiger eingebetteter RISC-Prozessor kann mit der kommerziellen Vorrichtung XEMICS coolRISC® CR816 (Schweiz) implementiert werden. Die softwareimplementierte Statusmaschine kommuniziert normalerweise mit dem μC 116 (1) über serielle Kommunikationskanäle.
  • Das SOC 200 stellt einen Taktoszillator 202 und einen Taktmanager 204 bereit, die einen numerisch gesteuerten Codeoszillator (NCO) 206, einen Codegenerator einen 18-teiligen Codespeicher 210, einen lokalen Digitaloszillator 212, einen Träger-NCO 214, einen zehnteiligen Trägergenerator 216 und einen zehnteiligen Trägermixer 217 ansteuern. Eine finite Statusmaschine (FSM) 218 erzeugt Daten, um 352 zehnteilige Codehypothesespeicher 220, 352 Codemisch-Korrelatorenpaare 222 und 352 Verriegelungsspeicherpaare 224 zu versorgen. Ein Hypothesespeicher 226 bildet eine Schnittstelle mit einem Leistungssummenregister 228, das Informationen empfängt, die aus den Verriegelungsspeicherpaaren 224 stammen. Eine Gruppe von M1-, M2- und M3-Orten 230, 232 und 234 sowie Leistungsregister führen ihre Ausgaben dem μC 1116 zu.
  • Ein Verstärkungscontroller 236 führt einem Multiplexer 238 phasengleiche Abtastungen ("I") und Quadratur-("Q"-)Abtastungen zu. Eine Datenwähleinrichtung 240 schaltet periodisch zwischen durch Bezug gespeicherten Abtastungen aus einem Abtastspeicher A 242 und einem Abtastspeicher B 244 hin und her. Ein Abtaststeuersignal 246 bestimmt, welcher Speicher in einem Zeitraum gefüllt wird und aus welchem gelesen wird. Der Verstärkungscontroller 236 stellt ein "I"-Gleichstrom-Verschiebungssignal 247 über einen ersten Impulsfrequenzmodu lator 248 bereit. Ein "Q"-Gleichstrom-Verschiebungssignal 250 wird über einen zweiten Impulsfrequenzmodulator 252 rückgemeldet. Ein AGC-Rückmeldungssignal 254 wird über einen dritten Impulsfrequenzmodulator 256 ausgegeben.
  • Die softwareimplementierte Statusmaschine des μC 116 als Teil des SOC 200 basiert vorzugsweise auf einem RISC-Prozessor 258 geringer Leistung mit einem XEMICS coolRISC® (Schweiz) RISC-Mikroprozessor. Zudem werden eine Digitalzellenbibliothek CooLib® und ein 8-Bit-RISC-Kern CoolRISC® als IP-Produkte vertrieben. Siehe "http://www.xemics.ch". Die Firmware der softwareimplementierten Statusmaschine benutzt einen DROM (Random Access Memory) 260, einen SRAM (Static Random Acccess Memory) 262 sowie einen Flash-Speicher 264. Eine Einschalt-Rücksetzlogik 266 erzeugt Einschalt-Rücksetzungen. Ein temperaturkompensierter Kristalloszillator (TCXO) 268 erzeugt eine stabile Zeitgabebasis für den RISC-Prozessor 258. Kommunikationen zwischen dem RISC-Prozessor 258 und dem Client 104 (1) werden durch eine serielles Eingangs/Ausgangs-(SIO-)Peripheriegerät 270, wie etwa RS-232, einen Universal Serial Bus (USB), ein Ethernet und dergleichen verwaltet.
  • Ein Frequenzdifferenz-Kommunikationsanschluss 271 nimmt an der Verteilung von Informationen über ein Netzwerk Teil, die bei der Verringerung der lokalen Frequenzunsicherheiten des SOC 200 hilfreich sind. Ein Zeitdifferenz-Kommunikationsanschluss 272 nimmt in ähnlicher Weise bei der Verteilung von Informationen über ein Netzwerk teil, die bei der Verringerung der lokalen Zeitunsicherheiten des SOC 200 hilfreich sind. Eine oder beide werden bei der Formulierung von Suchstrategien verwendet, die die Zeit zur ersten Fixierung, die Empfängerempfindlichkeit und die Lösungsgenauigkeit verbessern können. Derartige Verbesserungen werden normalerweise bei der Nachbearbeitung durch stromabwärtige Datenverbraucher erreicht, wie etwa den Netzwerkserver.
  • 3 zeigt die Ausführungsform eines Statusmaschinen-Steuerprogramms der vorliegenden Erfindung, das im folgenden mit Bezugszeichen 300 gekennzeichnet ist. Das Statusmaschinen-Steuerprogramm 300 enthält eine Einschalt-Initialisiereinrichtung 302, einen Taktgenerator- und -controller 304, eine Betrieb sartblockanordnungs-Programmsteuerschleife 306, einen Vorberechnungs- und Wiedergabeblock 308 und einen für einen Verriegelungsspeicher verfügbaren Block 310. Das FSM 300 bildet normalerweise eine Schnittstelle mit einer Navigationsplattform 312 und arbeitet in deren Abhängigkeit. Eine derartige Navigationsplattform 312 wird auf dem Client 104 in der vollständig autonomen Betriebsart und auf dem Webserver 106 in den schmalen Client- und den halbautonomen Betriebsarten versorgt. Die Navigationsplattform befindet sich im wesentlichen an der Stelle, an der die Navigationslösungen berechnet werden.
  • Das Statusmaschinen-Steuerprogramm 300 versetzt die unterstützende Hardware normalerweise nach dem Einschalten und der Initialisierung in einen Tiefschlaf, in dem sie beispielsweise Takte manipuliert und einen Halt-Befehl im RISC-Prozessor 259 (2) ausführt. Eine Unterbrechung auf einer seriellen Eingangsleitung weckt den Taktgenerator und -controller 304 auf. Dadurch wacht die softwareimplementierte Statusmaschine auf. Es beginnt die Erzeugung einer Unterbrechung von einer Millisekunde (MSEC=On), die mit der Erhöhung eines Master-Zeitgebers Msec24 beginnt. Ein Temperatursensor, ein Zeitdifferenzzähler und ein Frequenzdifferenzzähler nehmen jeweils eine Ausgangsmessung vor. Der HF- und der Abtasttakt (SCLK=on) werden eingeschaltet, wodurch eine AGC-Programmsteuerschleife aktiviert wird. Ein Abtastspeicher A oder B muss darauf warten, dass die AGC-Programmsteuerschleife initialisiert ist und stabil wird.
  • Der Abtastspeicher wird manuell ein- und ausgeschaltet, indem beispielsweise ein "sampleMemoryControl"-Kennzeichen eingeschrieben wird. Ein Wert "1" schaltet des Speicher ein, und ein Wert "0" schaltet ihn ab. Der Abtastspeicher wird vorzugsweise immer dann automatisch eingeschaltet, wenn eine neuer gültiger Betriebsartblock definiert wird. Die Navigationsplattform kann auch andere Betriebsarten befehlen, indem beispielsweise das "RF"- und das "Msec"-Kennzeichen jeweils ein- oder ausgeschaltet wird. Die RF=OFF- und die Msec=ON-Betriebsart wird verwendet, um die Zeit beizubehalten, jedoch die Verfolgung von Satelliten auszusetzen. Dadurch wird weniger Energie verbraucht, wenn die GPS-Fixierrate, wie etwa alle zehn Sekunden, niedrig ist. Die RF=OFF- und Msec=OFF-Betriebsarten gestatten es der finiten Statusmaschine 300 in die Tiefschlafbetriebsart zurückzukehren. Die RF=ON-, Msec=ON- und sample memory=OFF-Betriebsarten halten die RF-AGC aktiv, wobei keine Satelliten verfolgt werden.
  • Die Einschalt-Initialisierungseinrichtung 302 stellt die Ausgangszustände für eine Zahl von Variablen der finiten Statusmaschine ein. Variable, die lokal sind, das heißt, die sich nicht in einem Betriebsartblock befinden, werden im Code ausdrücklich in ihrer ersten Verwendung identifiziert. Andernfalls befinden sich sämtliche Variablen im Betriebsartblock. Tabelle "I" zeigt einen Weg, um die Einschalt-Initialisierungseinrichtung 302 in der Software zu implementieren. Zwei Variable MBP und LAP werden initialisiert, bevor der die Wiedergabetakt gestartet wird.
  • Tabelle "I"
    Figure 00150001
  • Die Logik des Taktgenerators und -controllers 304 ist detaillierter in 4 dargestellt. Ein Taktgenerator und -controller 400 enthält einen Mastertakt (MCLK), der beispielsweise mit 27.456 MHz arbeitet. Eine MSEC-Datenwähleinrichtung 404 gestattet die Softwaresteuerung einer Mastertakt-(MCLK-)Ausgabe durch den RISC-Prozessor 258. In ähnlicher Weise gestattet eine PCLK-Datenwähleinrichtung 406 die Softwaresteuerung einer Wiedergabetaktausgabe. Eine "÷ 13"-Dividiereinrichtung 408 reduziert die Mastertaktfrequenz auf die Abtasttaktfrequenz. Eine programmierbare Abwärtszähleinrichtung 410 reduziert den Mastertakt auf einen Takt von 13,0 KHz, wenn sie geladen ist, um von 2.111 auf 0 herabzuzählen. Eine SCLK-Datenwähleinrichtung 412 gestattet die Softwaresteuerung einer Abtasttakt-(SCLK-)Ausgabe. Eine "÷ 64"-Dividiereinrichtung 414 und eine "÷ 33"-Dividiereinrichtung 416 sind in Reihe geschaltet und verringern die Mastertaktfrequenz auf eine 1-ms-Impulsfrequenz. Eine programmierbare Aufwärtszähleinrichtung 418 zählt 16.777.215 Zyklen des Mastertaktes. Eine "÷ 10"-Dividiereinrichtung 420 reduziert die Mastertaktfrequenz auf eine 10-ms-Impulsfrequenz, um sie beispielsweise als Unterbrechung zu verwenden. Der Taktgenerator und -controller 400 enthält weiterhin eine Aufwärtszähleinrichtung 424, eine Zustands-Ein/Aus-Wähleinrichtung 426 für schreibbare Daten, eine programmierbare 12-Bit-Aufwärts-/Abwärts-Zähleinrichtung 428 und ein beschreibbares Initialisierungswertregister 430.
  • Für einen gültigen Betriebsartblock muss die softwareimplementierte Statusmaschine einen Betriebsartblock initialisieren. Lediglich die softwareimplementierte Statusmaschine kann Daten in den Betriebsartblock schreiben, der die Parameterzahl definiert. Die FSM 300 kann derartige Daten nach der Initialisierung nicht schreiben. Die softwareimplementierte Statusmaschine stellt blockWriteFlag=1 ein, so dass dieser Block nicht von der finiten Statusmaschine gewählt wird, bis das Kenzeichen gelöscht ist. Nach dem Schreiben der geeigneten Daten stellt die softwareimplementierte Statusmaschine blockWriteFlag=0 ein.
  • Jedesmal wenn die softwareimplementierte Statusmaschine ein blockWriteFlag (geändert von "1" auf "0") löscht, zeichnet die finite Statusmaschine diese Ereignis mit newModeBlockFlag auf. Dies ist eine Variable der finiten Statusmaschine, die global, d. h. nicht spezifisch für einen Betriebsartblock ist.
  • Die Betriebsartblockanordnungs-Programmsteuerschleife 306 repräsentiert eine Hauptprogramm-Programmsteuerschleife der finiten Statusmaschine 300. Die oberste Ebene der Programmsteuerschleife wird immer dann erreicht, wenn ein startOfNewRecord-Ereignis stattfindet, und zudem immer dann, wenn die Programmsteuerschleife im Leerlauf ist und ein newModeBlockFlag eingestellt ist. Einige Variable sind für die finite Statusmaschine 300 global. Eine "MBP"-Variable ist ein 5-Bit-Betriebsartblock-Adressverweis, wobei 0 bis 16 mögliche Werte sind. Eine "numModeBlocks"-Variable speichert die Zahl der definierten Betriebsartblöcke in der Betriebsartblockanordnung (MBA). Ein "recordToggle"-Kennzeichen ist eine Ein-Bit-Zähleinheit, die sich alle 10 Millisekunden ändert. Eine "Msec4"-Variable ist eine Vier-Bit-Zähleinheit, die sich jede Millisekunde ändert und eigentlich gleich den vier niedrigstwertigen Bits der "Msec24"-Variablen ist.
  • Die beiden Variablen "playbackState" und "playbackStateCnt" werden verwendet, um die Zahl der Mastertakte zu überwachen, die bei jedem Schritt der finiten Statusmaschine verbraucht werden. Diese Variablen werden hauptsächlich verwendet, um zu beobachten, wie die finite Statusmaschine arbeitet. Sie können jedoch ebenfalls verwendet werden, um Race-Zustände zu vermeiden, wie sie bekannt sind, wenn sich die finite Statusmaschine in bestimmten kritischen Bereichen befindet, in denen globale Daten geschrieben werden, die von mehr als einem finiten Statusmaschinenblock verwendet werden. PlaybackState wird gemäß dem Ort in der Statusmaschine geändert. Die Zähleinrichtung kann entweder eine Aufwärts- oder Abwärtszähleinrichtung sein, abhängig davon, wie die Zähleinrichtung initialisiert ist. Eine Initialisierung auf null macht aus der Variablen eine Aufwärtszähleinrichtung, wohingegen eine Initialisierung auf Werte ungleich null aus der Variablen eine Abwärtszähleinrichtung macht. Befindet sich playbackState im Null-Zustand, ist playbackStateCnt zwangsläufig im Leerlauf.
  • Tabelle II
    Figure 00180001
  • NweModeBlockFlag muss mit Vorsicht gelöscht werden. Die Löschung der Variablen darf durch eine softwareimplementierte Statusmaschine nicht im selben Takt erfolgen wie die Löschung von blockWriteFlag. Dies würde verhindern, dass der Betriebsartblock in dem Fall ausgeführt wird, in dem MBP=numModeBlocks oder die Betriebsartblock-Adresse, die geschrieben wird, geringer ist als der momentane MBP.
  • Der Vorberechr ungs- und Wiedergabeblock 308 wird immer dann ausgeführt, wenn modeBlockPointer auf einen neuen aktiven Betriebsartblock eingestellt wird. Die Steuerung springt von der Betriebsartblockanordnungs-Programmsteuerschleife hierher und kehrt nach Erledigung zur Programmsteuerschleife zurück. Ein Herausspringen kann erfolgen wenn ein startOfNewRecord-Ereignis eintritt. Ein Blockstatus im Betriebsartblock wird mit einem stoppedPlayback-Kennzeichen markiert. Die softwareimplementierte Statusmaschine entscheidet, wie auf eine derartige Situation reagiert werden soll.
  • Tabelle III
    Figure 00190001
  • Figure 00200001
  • Figure 00210001
  • Figure 00220001
  • Figure 00230001
  • Figure 00240001
  • Die Verriegelungsspeicherverfügbarkeits-Programmsteuerschleife 310 reagiert auf neue Verriegelungsspeicherdaten. Die Verriegelungsspeicher werden niemals gelöscht, sondern es wird in sie am Ende jeder Wiedergabe geschrieben. Werden sie vor der nächsten Wiedergabe nicht verarbeitet, gehen die Daten verloren und werden nicht als Fehler mitgeteilt. Die Verfügbarkeit von neuen Verriegelungsspeicherdaten wird mitgeteilt; wenn die latchActivePointer-(LAP-)Variable auf einen gültigen Betriebsartblockwert eingestellt ist, der geringer ist als die Zahl von Betriebsartblöcken (numModeBlocks). Somit ist der Betrieb des Verriegelungsspeicher-Verfügbarkeitsblocks ereignisgesteuert. Sobald latchActivePointer unter einen geringeren Wert als numModeBlocks fällt, läuft der Block: Wenn jedoch die Initialisierung der Verriegelungsspeicherverfügbarkeits-Verarbeitung länger als einige wenige Takte dauert, muss die Initialisierung erfolgen, bevor die Daten tatsächlich verfügbar werden.
  • HyPMem verfügt über ein neues Verfahren, das die Speicherbank- und Zelladressblöcke verwenden kann, die automatisch umbrechen, ohne tatsächlich die Speicherzellen zu benutzen. Auf diese Weise können bei Ausführung der Freilandbetriebsart, die nicht hypHem benutzt, weiterhin diese beiden Register zum Wiederfinden des Ortes von maxData verwendet werden. Dieses Verfahren ist France's hypMem-Macro-Beschreibung hinzugefügt.
  • Werden maxData abgerufen, werden sie bei jedem Eintrag aktualisiert. Somit wird maxdataUpdateRate zu einem Ein-Bit-Wort und wird durch die Arbeit maxDataUpdate ersetzt. MaxDataReportRate wird entfernt und in der Software bearbeitet.
  • Es wird angenommen, dass, wenn eine Wiedergabe beendet ist, die arbeitenden Korrelatoren in die Korrelator-Verriegelungsspeicher kopiert werden, latchAvail auf eins eingestellt und der Verriegelungsspeicher-Verfügbarkeitsverweis (LAP) als Arbeitsbetriebsartblock-Verweis (MBP) eingestellt wird.
  • Wenn maxData nicht verarbeitet wird, werden neue Wiedergaben gemeldet, wenn sämtliche Wiedergaben für einen Betriebsartblock abgeschlossen sind. Diese Überprüfung könnte im Vorberechnungs- und Wiedergabeblock erfolgen, wobei es jedoch vorgezogen wird, diesen Schritt nur in einem Abschnitt auszuführen. Dies wird im Verriegelungsspeicher-Verfügbarkeitsblock durchgeführt, da wir auf die Aktualisierung von maxData warten, bevor wir der softwareimplementierten Statusmaschine mitteilen, das ein Betriebsartblock für einen weiteren Eintrag bearbeitet wurde.
  • Sobald der neue Betriebsartblock begonnen wird, besteht die Wahrscheinlichkeit, das die Verriegelungsspeicherdaten weiterhin von der letzten Wiedergabe des vorangehenden Betriebsartblocks verarbeitet werden. Somit können die Daten, die der maxData-Analyse im normalen Vorberechnungsabschnitt zugeordnet sind, nicht initialisiert werden. Daher muss eine Initialisierungsprogramm-Steuerschleife für jeden Betriebsartblock bei jedem Eintrag aufgerufen werden.
  • Tabelle IV
    Figure 00250001
  • Figure 00260001
  • Figure 00270001
  • Figure 00280001
  • Ein Problem tritt dann auf, wenn der LAP auf den Ruhezustand von numMode-Blocks rückgesetzt wird, sofern der Wiedergabeblock ebenfalls den LAP auf den MBP im selben Takt einstellt. Oben war im Wiedergabeblock playbackState auf sieben unmittelbar vor dem Schreiben des neuen LAP eingestellt. Somit sollte jede Änderung an den LAP aufgeschoben werden, sofern playbackState=7 ist.
  • Um eine hohes Maß an Parallelität zu erzielen, wird eine große Bank von Hypothesen parallel implementiert, die dieselbe Trägermischung benutzen. Zur größtmöglichen Flexibilität werden virtuelle Codegeneratoren zum Synthetisieren eines höchst wahrscheinlichen _ Chipabstandes für die "search"-Betriebsart und eines schmaleren Abstandes für die "timeTrack"-Betriebsart bevorzugt. Für eine große Zahl von Codehypothesen kann jedoch die Implementierung mit virtuellen Codegeneratoren zu teuer sein.
  • Die Periode des 2.112-MHz-Abtasttaktes beträgt etwa die Hälfte einer Chip-Zeit. Um genau zu sein, ist sie 31/64 oder 1/64 kürzer als ein halber Chip. Für diesen Abstand ist die Zahl von Codehypothesen zur Abdeckung des 1.023-Chipbereiches 2.112. Dies erfordert drei Prozent (66 zusätzliche Codeorte) mehr Speicherplatz als die 2.046 Orte für einen perfekten Chipabstand benötigen.
  • Jüngste Testdaten zeigen an, dass der A-priori-Grenzfall-Modelliertehler für eine typische Kristallfrequenz etwa bei ±0,5 PPM (±787 Hz) bei Temperaturmodellierung liegt. Um sicherzugehen und eine bestimmte Unsicherheit für den Benutzerpositions-Fehlereffekt auf der Frequenz einzuräumen, wird vorzugsweise ein Frequenzbereich von ±1.000 Hz für den ersten Satelliten gesucht. Gibt es ein hohes Maß an Sicherheit über die Frequenzinformationen, die man bei einer ersten Suche gewonnen hat, kann der Frequenzsuchbereich nachfolgender Satelliten eingeschränkt werden, um Zeit und Aufwand zu sparen. Alternativ dazu können derartige Suchzeiteinsparungen mit einer geringeren Taktgeschwindigkeit getauscht werden, wie man sie in kostengünstigerer Hardware vorfindet.
  • Ein "Prädiktionsintervall" (PDI) ist die kohärente Integrationsperiode eintreffender und lokal erzeugter Signale; die unmittelbar vor dem Quadrieren endet, um die Potenz zu erhalten. Für ein Prädiktionsintervall von 10 ms ist das Frequenzverhalten der Trägertrequenzmischung eine Synchronfunktion mit den ersten Nullstellen bei ±100 Hz. Normalerweise ist der Frequenzsuchschritt derart gewählt, dass die nächste gesuchte Frequenz ihren Spitzenwert bei der Nullstelle der vorangehenden Frequenz hat. In diesem Fall wird alle 100 Hz gesucht, wobei die 1,5-dB-Bandbreite jedes Frequenzsuchschrittes ±50 Hz beträgt. Es werden 20 vollständige Codesuchen benötigt, um den gewünschten Bereich von ±1.000 Hz abzudecken.
  • Bei einem Zwei-Puffer-HF-Abtastschema wird jede Codehypothese, die durch eine Bank von Korrelatoren definiert ist, für ein vollständiges 10-ms- Vorhersageintervall in nur 2.112 Takten, wie etwa der Zahl von Abtasttakten in einer Millisekunde, aktualisiert. Die HF-Abtastungen werden mit derselben Teil-Millisekundenzeit in allen zehn Millisekunden vorgenommen. Diese werden anschließend gemischt und auf einen einzigen Abtasttakt korreliert, weshalb ein neuer Satz von Abtastungen zu jedem Abtasttakt gelesen wird. In zehn Millisekunden und bei 27.456 MHz gibt es 27.456 Mastertakte, die 130 Gruppen von 2.112 Abtastungen erzeugen können. Eine Gruppe von 2.112 Abtastungen, die eine spezielle Code- und Frequenzhypothese mischt, wird hier als "Wiedergabe" bezeichnet.
  • Wenn 20 vollständige Codesuchen in 120 Wiedergaben mit einigen verbleibenden Takten ausgeführt wurden, die für die Einrichtung benötigt wurden, dann ist die Zahl (N) von Wiedergaben, die erforderlich ist, um ein Codespektrum (1.023 Chips) zu ergeben 20*N = 120. In diesem Beispiel ist N = 6. Die Anzahl von "I" und "Q" Korrelatorenpaaren ist somit 2.112/6 = 352 für eine Gesamtzahl von 704 Korrelatoren. Dies ist in 2 gezeigt.
  • Eine alternative Ausführungsform erhöht die Mastertaktgeschwindigkeit um einen Faktor zwei, um beispielsweise eine Gesamtzahl von 260 Wiedergaben zu erreichen. Die Zahl von Wiedergaben kann auf zwölf erhöht werden, um ein vollständiges Codespektrum zu erreichen. Auf diese Weise werden lediglich 126 Korrelatorenpaare für eine Gesamtzahl von 352 einzelne Korrelatoren benötigt. Für dieses Beispiel sind 176 Korrelatoren mit einer Wiedergabegeschwindigkeit von 2*(27.456 MHz) = 54.912 MHz gewählt.
  • Der Code-NCO 206 ist eine 6-Bit-Addiereinrichtung, die 2.112 MHz Abtasttakte in 1.023 MHz konvertiert. Sie erzeugt einen Codetakt und ein div3-Signal, wenn es drei Abtastakte, die für einen Codetakt benötigt werden, anstelle der beiden normalen Abtasttakte gibt. Es gibt keine Verschiebungsmöglichkeit, aber die Phase kann durch Festlegen einer Ausgangszustandsvariablen "ncolnitialCondition" eingestellt werden.
  • Der Codegeneratorblock 208 verwendet zwei 10-Bit-Verschieberegister, um eine bestimmte Pseudozufallszahl zu erzeugen. Dieser Block beinhaltet drei Tabellen suchen auf der Basis der gewünschten Chipphase und der Pseudozufallsnummer; dies sind G1, G2 und G2-Verschiebung.
  • Der Code- und div3-Speicher 210 verwendet zwei Verschieberegister, um die Codegenerator- und div3-Ausgabesignale auf denselben Abtasttakt einzutakten und zu verzögern. Die Verzögerungstiefe ist im Grenzfall 17 1-Bit-Zustände für jedes Signal. Diese sind die Eingangssignale in die virtuellen Codegeneratoren für die Suche oder "meas-mode".
  • Der virtuelle Codegeneratorblock kann eine relative Verzögerung von ±31 64-Chips relativ zum Code im Verzögerungsspeicher synthetisieren. Positive Verzögerungen verwenden eine Kombination aus dem punktuellem Taktschlag und dem spätem Taktschlag. Frühe Verzögerungen verwenden eine Kombination aus dem punktuellen und dem frühen Taktschlag. Es gibt eine Gruppe von fünf virtuellen Codegeneratoren, die in der "search"-Betriebsart verwendet werden, und dann einen weiteren Vorrat von 15*5 virtuellen Codegeneratoren für eine Gesamtzahl von 16*5 = 80, die in der "timeTrack"- Betriebsart verwendet werden.
  • Ein Satz von fünf virtuellen Codegeneratoren wird hier als "Supervirtueller Codegenerator" bezeichnet. Dieser erzeugt die Phasen, die über einen 10-ms-Eintrag erforderlich sind, um die Doppler-Trajektorie zu kompensieren.
  • Der virtuelle Codegeneratorspeicher 208 enthält einen Satz von fünf 1-Bit-Verschieberegistern mit einer Länge von 176 am Ausgang der fünf virtuellen Codegeneratoren, die verwendet werden, um den Code-Doppler für das 10-ms-Prädiktionsntervall in der "search"- Betriebsart zu erzeugen. Die früheste Zustand 0 ist die direkte Ausgabe des virtuellen Codegenerators. Der letzte Zustand "175" ist 175 Abtasttakte vom Zustand 0 verzögert.
  • Der Codeverschiebespeicher wird verwendet, um den Zustand des gesamten Codeerzeugungsblocks auf einen bestimmten Abtasttakt einzutakten. Diese Daten werden bei einer nachfolgenden Wiedergabe erneut geladen, um eine virtuelle Codeverschiebung zu erzeugen.
  • Der digitale lokale Oszillator (DLA) 212 dividiert den Abtasttakt durch 16 und erzeugt eine 16-Zustandsvariable, die dloState genannt wird und von null bis 15 bei 132 kHz aufwärts zählt. Sie wird zur Erzeugung der letzten IF der Signalausgabe aus der letzten HF-Stufe verwendet.
  • Der Träger-NCO 214 oder der MasterTräger-NCO ist ein 24-Bit-Register, bei dem der Abtasttakt als seine Eingabe (528 kHz) durch vier dividiert wird, wobei die vier höchstwertigen Bits als ncoState decodiert werden, der von null bis 15 bei einer Frequenz aufwärts oder abwärts zählt (abwärts bei einer negativen Frequenz), die dem TrägerNcoValue entspricht.
  • Der SumState ist eine 4-Bit-Zahl, die die Summe von dloState und ncoState ist. Sie steht für die Phase, die durch die Summe des Doppler und der letzten IF erzeugt wird.
  • Die realStateCount-Variable zählt die Zahl der aufeinanderfolgenden Abtasttakte, wobei sich der Zustand des MasterTräger-NCO nicht ändert. Die Variable kann zudem verzögert werden, indem der Zähler vordividiert wird, bevor die Zählung erhöht wird. Dies ist erforderlich, um dem begrenzten Bereich der 4-Bit-Verzögerung gerecht zu werden, wenn der Doppler sehr klein ist.
  • Ein supervirtueller Träger-NCO ist eine Gruppe virtueller Träger-NCOs, die dieselbe Frequenz wie der MasterTräger-NCO erzeugen, jedoch bei Phasenverschiebungen, die modulo eine Millisekunde von der Masterträger-NCO-Phase verzögert sind. Jeder virtuelle Träger-NCO hat zwei 4-Bit-Register, wie etwa die "Verschiebung" und die "Verzögerung". Jeder virtuelle Träger-NCO erzeugt eine 4-Bit-Phasenverschiebung von der Phase des sumState. Die Verzögerungsvariable kann ein Additionsbit der Verzögerung addieren, wenn die momentane realState-Count die Verzögerungsvariable überschreitet, oder fortschreiten, wenn der Doppler negativ ist.
  • Der Träger-Mischer 216 mischt die HF-Abtastungen mit der Trägerphase, die von jedem der zehn NCOs erzeugt wird. Es gibt nur einen Träger-Mischer. Alle zehn Millisekunden der Abtastungen werden zugleich in derselben Teil- Millisekundenphase gemischt.
  • Der Code-Mischer erzeugt eine massive Parallelität, wobei bis zu 176 unterschiedliche Codehypothesen pro Mischung in der "search"- Betriebsart erzeugt werden können. In der "timeTrack"- Betriebsart, sind lediglich 16 verfügbar, da elf Korrelatoren erforderlich sind, um die Mischung in unterschiedlichen Zeitabschnitten zu isolieren. Für jede Hypothese gibt es einen Mischer sowie einen Phasengleich- und Quadratur-Integrator, wie etwa die "I"- und "Q"-Korrelatoren 222.
  • Die Hypotheseverriegelungsspeicher 224 sind Haltregister für "I" und "Q" der letzten Hypothese. Die Verriegelung wird derart angewendet, dass die nächste Mischung beginnen kann, ohne dass darauf gewartet werden muss, dass der RISC-Prozessor 258 die Daten liest. Jede neue Mischung überschreibt die alten Daten, so dass die Lesevorgänge des RISC-Prozessors 258 bis dahin die verriegelten Daten abrufen müssen.
  • Die digitale Signalverarbeitung wird durch eine Anzahl unterschiedlicher Variablen gesteuert, die geschrieben werden können. Die Variable der Satelliten-Pseudozufallszahl (SV:PRN) wird geschrieben, um eine neue Suche zu definieren. GPS-Satelliten im Orbit verwenden Pseudozufallszahlencodes 01–32. WAAS und Pseudolite sind im 33–4x-Bereich definiert. Eine Wortlänge von sechs Bits ist die minimale Anforderung. Die Codestartphasenvariable ist die "StartingCodePhase" und definiert die relative Startphase in 64 Teilen eines Chips. Dies ist ein vorzeichenloses 2-Byte-Wort und steht für die Phase rechts vom aller ersten Codefenster in der "search"- Betriebsart und links vom Codefenster in der "meas"- Betriebsart. Der Codephasenbereich ist 0–(1.023*64 – 1) = 0 bis 65.471. Es gibt 64 unbenutzte Werte, die berücksichtigt werden, wenn die Codephase ein gestellt wird. Die StartingCodePhase-Zahl kann auf einfache Weise in Chips und 64-tel gebrochen werden.
  • Tabelle V
    Figure 00340001
  • Beispielsweise hat eine Codephase von 100 Chips und 17/64 eines Chips eine startingCodePhase=6.417. Wenn eine Obergrenze durch Addieren von mehr als 1.023*64 überschritten wird, wird lediglich ein Chip der Phase addiert, da die tote Zone einen ganzzahligen Chip bei einem Rollover von einer großen Phase zu einer kleinen Phase borgt.
  • Wenn in ähnlicher Weise eine positive Phase von einer kleinen startingCodePhase abgezogen wird, führt das Verfahren einen Rollunder aus und belegt die tote Zone um zu einer großen Phase überzugehen. Die Korrektur besteht darin, 1 zu subtrahieren, da die unkorrigierte Phase um 1 zu groß ist, um von der kleinen Phase zur großen Phase überzugehen.
  • Die Doppler-Start-"CarrierNcoValue"-Variable ist in Träger-NCO-Einheiten von Bits definiert. Ein mit einem Vorzeichen versehenes 3-bit-Wort wird verwendet, um den Träger-Doppler in einer Zykluszahl pro Sekunde darzustellen. Eine finale Zwischenfrequenz (IF) von 132 kHz braucht in dieser Variablen nicht enthalten zu sein, da die finale IF durch einen digitalen lokalen 16-Status-Oszillator außerhalb des Träger-NCO demoduliert wird. Der Träger-NCO hat 24 Bits mit einem Eingangstakt, der der Abasttakt geteilt durch vier ist. Der Skalierungsfaktor für die Konvertierung des TrägerNcoValue von Bit zu Hertz ist
    CARRIER_NCO_HZ_PER_BIT = 2.112 MHz/4/2^24 = 0,031471252 Hz/Bit.
  • Um einen Träger-Doppler von 5.000 Hz in Träger-NCO-Einheiten umzuwandeln, wird der Doppler durch die oben erwähnte Konstante dividiert, um Biteinheiten zu erhalten und einen TrägerNcoValue=158875 zu erreichen. Somit gilt CarrierNco-Value=Carrier-Doppler in Hz/CARRIER_NCO_HZ_PER_BIT. Diese Division erfolgt im Navigationsprozessor und wird zum DSP in einer normalen Steuernachricht gesendet.
  • Es gibt normalerweise drei DSP-Betriebsarten, (1) "search"-Betriebsart (nicht ko härent), (2) "weakMeas"-Betriebsart (nicht kohärent) und (3) "timeTrack"-Betriebsart (kohärent). Die momentane Betriebsart ist mit der DSPmode-Variablen definiert. Wenn ein Code in der DSPmode = "search"-Betriebsart erzeugt wird, erzeugt ein am weitesten rechts gelegener Korrelator eine Phase, die durch die startingCodePhase definiert ist. Ein derartiges Übereinkommen vereinfacht den Vorbereitungsbetrieb.
  • In zwei Betriebsarten gibt es nur eine Frequenzmisch-Annahme, wobei sämtliche Korrelatoren mit dem Ergebnis der 1-ms-Trägerfrequenzmischungen arbeiten, die mit den zehn VNCO erzeugt wurden. Die virtuellen Träger-NCO erzeugen die kohärente Phase einer Sinuswelle für eine bestimmte Millisekunde über ein 10-ms-Prädiktionsintervall.
  • Das es nur eine Frequenzhypothese pro Mischung gibt, wird die erforderliche Parallelität in der Codedomäne unter Verwendung einer Anzahl paralleler Codephasenhypothesen erzeugt. In diesem Fall nimmt jedes Korrelatorenpaar denselben Ausgang der Trägerfrequenzmischung und mischt anschließend eine unterschiedliche Codephasen-Annahme.
  • In der "search"-Betriebsart (nicht kohärente Betriebsart) erfolgt die Codeverschiebung für jeden Korrelator auf der Rechtes seine oder später durch Verzögern des Codes um einen Abtasttakt, wie beispielsweise exakt 31/64. Somit ist in der "search"-Betriebsart der hypothesisSpacing unveränderbar und nicht steuerbar. Es gibt ein Korrelatorpaar für jede Codehypothese, die die phasengleichen Ergebnisse und Quadratur-Ergebnisse für eine vollständige 10-ms-Korrelation enthalten.
  • Um eine Code-Dopplerverschiebung, die über eine 10-ms-Mischung auftritt, und die erforderliche Phasenspanne aufzunehmen, werden fünf virtuelle Codegeneratoren mit fünft 176-Status-1-Bit-Verschieberegistern benutzt. Diese werden mit einem Abtasttakt getaktet, um die 31/64 eines Chipzwischenraumes zu erzeugen.
  • Der virtuelle Codegenerator erzeugt einen Phasenverschiebung relativ zur Referenzphase, die durch den Mastercode-NCO und den Codegenerator definiert ist.
  • Jeder virtuelle Codegenerator erzeugt die Phasenverschiebung über zwei Millisekunden, um eine 10-ms-Spanne mit fünf virtuellen Codegeneratoren abzudecken. Die Trägermischung für zwei Millisekunden verwendet dieselbe Codemischung. Ein virtueller Codegenerator ist zu viel, da es keine Langzeit-Bias gibt, wenn der Code-Doppler-NCO ordnungsgemäß gehandhabt wird.
  • Für einen Träger-Doppler von 20 kHz müssen die virtuellen Codegeneratoren lediglich ±10/64 eines Chips einer Phasenänderung infolge des Code-Doppler über zehn Millisekunden erzeugen. Diese relative Phasenverschiebung kann mit nur drei Codeversionen erreicht werden. Die frühe Codeverschiebung, 10/64 eines Chips aufwärts verwendet einen frühen Code-Taktschlag und den punktuellen Taktschlag, wenn die Zählvariable des virtuellen Codegenerators null ist. In ähnlicher Weise wird die späte Codeverschiebung unter Verwendung des punktuellen Code-Taktschlag und des späten Taktschlag erzeugt, wenn die Zählvariable des virtuellen Codegenerators null ist.
  • Es werden lediglich drei Zustände des Code- und div3-Speicherblocks für die "search"-Betriebsart verwendet.
  • Die Ausgabe jedes der fünf virtuellen Codegeneratoren wird in dessen eigenes 1-Bit-Verschieberegister eingegeben, das 176 Zustände lang ist und mit dem Abtasttakt getaktet ist. Der frühe Taktschlag ist tatsächlich die Ausgabe des Generators.
  • Im Detail werden bei jedem Abtasttakt und nach der Aktualisierung des codeNco und des Zustandes des Codegenerators, die Verschieberegister getaktet, wodurch sich die Inhalte der Register um eine Zelle nach rechts bewegen. Die vorherigen fünf Zustände auf der rechten Seite werden verworfen.
  • Der Zustand des virtuellen Codegenerators wird als Startphase (früheste Phase) betrachtet und direkt in das erste Korrelatorpaar weitergegeben. Die Vorbereitung des Codeerzeugungsblocks für die "search"-Betriebsart umfasst zwei Schritte, die Vorbereitung des Code- und div3-Speichers und anschließend die Vorbereitung des Speichers in Gestalt der Verschieberegister am Ausgang der virtuellen Codegeneratoren. Details der Vorbereitung sind im Vorbereitungsabschnitt erläutert.
  • Beträgt die gewünschte Codephase 100 Chips und 17/64 eines Chips, dann ist eine geringfügige Einstellung an der Hardwarephase erforderlich, um den frühen, punktuellen und späten Verzögerungen Rechnung zu tragen, so dass die gewünschte Codephase in der punktuellen Verzögerung beim ersten Takt der Wiedergabe erzeugt wird und zudem sämtliche Verzögerungen gültig sind, wenn die Wiedergabe beginnt. Um dies zu tun, wird die gewünschte Codephase um das abgeändert, was der Vorbereitungseffekt ist, was im Fall er "search"-Betriebsart, wenn lediglich drei Zustände vom Code- und div3-Speicherblock verwendet werden, der Umstand ist, dass der Code-NCO und der Codegenerator für die erforderliche Taktzahl betrieben werden, bis die frühesten drei der Register gefüllt sind.
  • Der punktuelle Code im 176-Zustand wird durch Verschieben der Register um 1 beim ersten Abtasttakt der Wiedergabe initialisiert. Der Verzögerungsblock, der 176 tief ist, wird in zwei Schritten vorbereitet. Der erste bereitet den Verzögerungsblock vor, der verwendet wird, um die virtuellen Codegeneratoren zu versorgen. Die zweite Vorbereitung füllt anschließend den Verzögerungsblock, der die Ausgabe aus den virtuellen Codegeneratoren verwendet.
  • Für die zweite Vorbereitung werden die virtuellen Codegeneratoren die erforderlich Zahl von Abtasttakten getaktet, um den zweiten Verzögerungsspeicher zu füllen. Die gewünschte punktuelle Phase befindet sich im rechtesten Verzögerungsregister bei einem ersten Abtasttakt der Wiedergabe.
  • Auf die "weakMeas"-Betriebsart wird nach einer Serie fehlgeschlagener Suchen nach einer Gruppe von Satelliten ausgeweicht. Die Leistungsspitzen einzelner Suchen werden erneut besucht, diesmal mit einer feineren Suchauflösung. In der "weakMeas"-Betriebsart wird ausreichend Zeit darauf verwendet, eine große Zahl von Satelliten parallel zu suchen, weil sich dadurch die Unsicherheit verringert.
  • Es kann eine weitere Art des Korrelatorenabstandes implementiert werden, so dass das Ergebnis ausreichend genau ist, um eine Positions- und eine Geschwindigkeitsfixierung vorzunehmen. Bei einer Simultansuche von acht Satelliten können beispielsweise fünfzehn Frequenzen für jeden Satelliten durchsucht werden, wobei 120 der 130 verfügbaren Hypothesen verwendet werden. Dies spart genügen Mastertakte für die Vorberechnung zwischen Hypothesen ein. Die Mittenfrequenz kann auf die beste Frequenz zur Suchzeit eingestellt werden, wobei sich acht Frequenzen auf jeder Seite befinden. Eine Schrittgröße von 50 Hz bietet einen Bereich von ±425 Hz. Für ein 1-g-Beschleunigungsmodell, d. h. somit 10 m/s2 in zehn Sekunden, ist die maximale Geschwindigkeitsänderung g*10 = 100 m/s = 500 Hz. Eine Schrittgröße von 50 Hz führt zu einem maximalen Frequenzfehler von 25 Hz, was etwa fünf m/s der Geschwindigkeit ist. Dies liegt auf der Grenze eines akzeptablen Rauschverhaltens für eine Geschwindigkeitsfixierung. Somit kann die Schrittgröße verringert werden, wenn bekannt ist, dass die Benutzerdynamik kleiner ist.
  • In der Codedomäne werden alle 176 Korrelatoren verwendet, um eine weitere Codesuche mit einem sehr geringen Abstand zwischen jeder Codehypothese zu erzeugen. Ein Schema verwendet 2/64 eines Chipabstandes, so dass der schwerstwiegende Fehler 1/64 eines Chips, etwa 4,5 Meter ist. Dies erfüllt die Sollbereichsgenauigkeit für schwache Signale.
  • Es wird ein Codehypotheseabstand erzeugt, wobei 16 supervirtuelle Codegeneratoren bestehend aus jeweils fünf virtuellen Codegeneratoren verwendet werden, um das Code-Dopplerprofil über den 10-ms-Eintrag zu erzeugen. Der Abstand der virtuellen Codegeneratoren beträgt 2/64 eines Chips. Auf diese Weise wird ein Fenster einer Codehypothese erzeugt, das 0, 2, 4, 6, 10, 12; 14, 16, 18, 20, 22, 24, 26, 28, 30 Vierundsechzigstel eines Chips von einem Referenz-Code-Taktschlag ist. Die Ausgaben der virtuellen Codegeneratoren werden um einen Abtasttakt (31. Teile) verzögert, um ein sehr langes feines Codehypothesefenster zu erzeugen.
  • Die Verschiebung zwischen jedem supervirtuellen Codegenerator ist vorzugsweise immer dieselbe. Ein erster virtueller Codegenerator in jedem supervirtuellen Codegenerator gibt 1 = 0/64, 2 = 2/64, 3 = 4/64, 4 = 6/64, 5 = 8/64, ..., 16 = 30/64 eines Chips aus. Die Verschiebungen aufeinanderfolgender virtueller Codegeneratoren in jedem supervirtuellen Codegenerator sind dieselben wie bei den vorangehenden virtuellen Codegeneratoren, mit Ausnahme der Doppler-Trajektorie über das 10-ms-Prädiktionsintervall. Diese Daten werden in einem Virtuell-Codegenerator-Vorberechnungsschritt programmiert.
  • Die Ausgabe jedes virtuellen Codegenerators wird zu einem 11-Bit-Verschieberegister gesendet. Ein am weitesten links gelegener Zustand jedes Verschieberegisters ist derselbe Wert wie die momentane Ausgabe des virtuellen Codegenerators, d. h. der Zustand 0 hat eine Verzögerung von null. Ein finaler Zustand auf der rechten Seite ist zehn Abtasttakte von der Ausgabe des virtuellen Codegenerators verzögert.
  • Die Korrelatoren sind der Codeerzeugung zugeordnet. Ein erster Korrelator nimmt einen Code, der in einem ersten Zustand eines ersten Supervirtuell-Codegenerator-Verzögerungsregisters vorhanden ist. Ein 16. Korrelator nimmt einen Code, der in einer ersten Verzögerung des 16. supervirtuellen Codegenerators vorhanden ist. Anschließend nimmt der 17. Korrelator den zweiten Zustand des Verschieberegisters des ersten supervirtuellen Codegenerators, und der 32. Korrelator nimmt den zweiten Zustand des Verschieberegisters des 16. supervirtuellen Codegenerators, etc..
  • Die supervirtuellen Generatoren werden verwendet, um 2/64 eines Chipabstandes zu erzeugen. Jeder virtuelle Codegenerator gibt die Code-Doppler-Trajektorie über einen 10-ms-Eintrag aus. Alle 16 supervirtuellen Codegeneratoren erzeugen einen Phasenbereich von 30/64 eines Chips bei 2/64 Abstand. Durch Verzögern der Ausgabe jedes supervirtuellen Codegenerators kann der Kamm des Phase, die mit 31/64-Schritten erzeugt wird, repliziert werden. Die maximale Zahl möglicher Verzögerungen ist durch die Zahl von Korrelatoren begrenzt. Die magische Zahl ist 11 da 176 = 16*11. Dies führt zu einem maximalen Bereich von 1.
  • 1/32 einer Chip-Suchmaschine wird erzeugt, indem die Ausgabe der supervirtuellen Codegeneratoren durch mehrere Abtasttakte verzögert wird. Der Gesamtbereich bei Verwendung sämtlicher elf Verzögerungen ist 340/64 = 5 Chips und 2/64 eines Chips. Die größeren Linen haben eine Verschiebung, die modulo 31 ist.
  • Alle Verzögerungen, die größer als 30/64 sind, werden durch die Verzögerungsregister erzeugt. Sämtliche Verzögerungen zwischen null und 30 werden von den Verzögerungsregistern erzeugt.
  • In der "timeTrack"-Betriebsart werden feinere 2/64-Korrelatorabstände aus 1/64 bis 3/64 erzeugt, wie etwa für ein Maximum von 16 individuellen Codehypothesen. Es werden weniger Hypothesen erzeugt, so dass die Korrelatoren für die Möglichkeit einer kohärenten Integration genutzt werden können. Die Mischung kann für jeden von zehn Codezeitabschnitten getrennt werden, anstelle zehn separate Millisekunden in unterschiedliche Korrelatoren zu trennen.
  • Dadurch wird eine Synchronisation mit den 50-Hz-Navigationsdaten bei der GPS-Sendung ermöglicht, so dass nicht über eine Datenbitgrenze integriert werden muss. Dadurch werden Verlusste verringert und die Möglichkeiten einer ganzzahligen Millisekundenzeitgabe verbessert.
  • Ausführungsformen der vorliegenden Erfindung können derart ausgebildet sein, dass sie einem herkömmlichen Verfolgungsempfänger mit einer unbegrenzten zahl von Kanälen gleichen. Dies wird hier als "timeTrack"-Betriebsart bezeichnet, wobei die Zeit durch Beobachten des Datenbits ermittelt werden kann und anschließend die Navigationsdaten demoduliert werden, um die Zeit vom GPS zu erhalten. Dies ist in den beiden anderen Betriebsarten nicht möglich, da das Signal zu schwach ist, um die Navigationsdaten zu beobachten. Um zehn Millisekunden abzudecken, werden elf Korrelatoren benötigt, um eine optimale Erfassung einer Navigationsdaten-Bitgrenze zu gestatten. Die maximale Zahl verwendeter Korrelatorenpaare ist (15*2 + 11) = 41, vorausgesetzt alle 16 Codehypothesen werden benutzt. In diesem Fall verwenden 15 Codehypothesen zwei Korrelatorenpaare, und eine Codehypothese verwendet elf Paare. Es können so wenig wie 16 Paare und 32 Paare in anderen Betriebsarten verwendet werden.
  • Während der herkömmlichen Verfolgung ist normalerweise ein Codehypothese auf einem Code-Autokorrelations-Funktionsspitzenwert zentriert. Das entsprechende Korrelatorpaar steht für den besten Signalrauschabstand und ist das beste Mittel, um halbzyklische Trägerfrequenz-Phasenänderungen zu beobachten.
  • Die anderen Codehypothesen können ebenfalls derartige Änderungen beobachten, wobei jedoch die Zahl der Korrelatoren, die von der softwareimplementierten Statusmaschine gelesen werden müssen, zu groß wäre.
  • In der "timeTrack"-Betriebsart steht lediglich eine Codehypothese pro Wiedergabe für eine Option von elf Korrelatoren. Der relative Ort dieser Codehypothese ist variabel. Die Zahl der Codehypothesen, die auf jeder Seite des Spitzenwertes verwendet werden sollen, kann verändert werden.
  • Die anderen Codehypothesen in der "timeTrack"-Betriebsart teilen den 10-ms-Eintrag in ein oder zwei Korrelatorpaare. Es gibt zwei Optionen für die Zwei-Korrelatoren-Betriebsart. Bei der ersten wird der 10-Millisekundenblock in zwei 5-Millsekungsnblöcke geteilt. Bei der zweiten wird der 10-Millisekundenblock gemäß einer Schätzung des Ortes der Navigationsdaten-Phasenumkehrung geteilt.
  • Die Korrelatoren abseits des Spitzenwertes werden für die Verzögerungsverriegelungs-Programmsteuerschleife verwendet. Der Leistungsunterschied wird zwischen den Codehypothesen auf jeder Seite der zentralen Codehypothese untersucht, um Steuerinformationen zu bilden.
  • Das Fortschreiten von der Suche zur Verfolgung beginnt mit der Benutzung der Suchlogik, um einen Codespitzenwert zu finden. Die "search"-Betriebsart übergibt zur "timeTrack"-Betriebsart Sämtliche Korrelatoren sind derart konfiguriert, dass sie in zwei 5-Millisekunden-Blöcke ausgeben, bis der Codespitzenwert geklärt ist. Sobald der Code bekannt ist, erfolgt eine Nebenkeulenprüfung des Frequenzspitzenwertes. Eine 11-Korellatoren-Option kann einen großen Frequenzfehler in den 1-ms-Ausgaben erfassen. Nachdem der Codespitzenwert und die Frequenzspitzenwerte geklärt sind, wird die 11-Korrelatoren-Codehypothese auf dem Spitzenwert plaziert und Zeit darauf verwendet, nach einem Phasenumkehrpunkt zu suchen. Das Ergebnis kennzeichnet die Millisekunde, bei der ein Bitübergang auftritt.
  • Die anderen Korrelatorenpaare verbleiben in einer 5-Millisekunden-Blockoption, bis der Bitübergang bekannt ist. Die Korrelatoren schalten um, um die Daten auf jeder Seite des Bitübergangs in die beiden Korrelatoren einzugeben.
  • Als Beispiel dafür dient die Ziehharmonika-Betriebsart, mit 16 Codehypothesen, getrennt durch einen _ Chip für einen Bereich von acht Chips. Der Bereich ist zwei Chips für den _ Chipabstand. Es ist ein engerer Abstand bis auf 1/64 möglich, wobei Mehrfachwiedergaben verwendet werden können, um breitere Codemischungen mit sehr geringen Abständen zu erzeugen.
  • Eine zusätzliche Gruppe von 15*5 virtuellen Codegeneratoren wird verwendet, um die Ziehharmonikaverschiebung über die 16 Codehypothesen zu erzeugen. Eine relative Phasenverschiebung wird aus 0–15*32/64 eines Chips erzeugt. Wenn jedoch der Code-Dopplereffekt von ±10/64 enthalten ist, gibt es einen Bereich eines ungünstigsten Falls von –10 bis 15*32 + 10, wie etwa –10 bis 490 (< 16*31). Somit werden nur ein frühes Register, ein punktuelles Register und 16 späte Register benötigt. Der Codegeneratorstatus wird als das frühe Register benutzt.
  • In der "serach"-Betriebsart werden die Code- und div3-Speicherregister derart vorbereitet, dass der vollständige Block beim ersten Abtasttakt der Wiedergabe gültig ist. Die Codeerzeugung für die "time-Track"-Betriebsart unterscheidet sich von der "search"-Betriebsart dadurch, dass es keine zusätzlichen Verzögerungen an den Ausgängen der virtuellen Codegeneratoren gibt. Es existiert lediglich die Vorbereitungsphase, so dass es einfacher ist festzulegen, dass ein punktueller Korrelator die zweite Verzögerung ist und die anderen Verzögerungen später erfolgen. Die erste wahre Verzögerung als frühe Verzögerung ist tatsächlich direkt die Ausgabe des Codegenerators. Die niedrigeren Korrelatorzahlen stehen für die frühere Phase.
  • Es gibt zwei Korrelator-Betriebsarten in der "timeTrack"-Betriebsart. In der "before BTT-detection"-Betriebsart wird das 10-ms-Prädiktionsintervall in elf Teile gebrochen, die anstelle der Millisekunde den CA-Code-Zeitraum als Grenzlinie haben. Da nur eine Millisekunde abläuft, tritt der erzeugte Zeitraum zum exakt selben Zeitpunkt in jeder Millisekunde ein. Der Zeitraum könnte für jede zu kompensierende Millisekunde verzögert werden. Dies ist nicht wirklich erforderlich, da ein Fehler lediglich dann auftritt, wenn es eine Phasenumkehr gibt, die durch die Navigationsdaten bewirkt wird, und dies im schlechtesten Fall nur fünf Abtasttakte in der Millisekundenintegration beeinflusst, in der die Umkehrung aufgetreten ist.
  • Die "before BTT-detection"-Betriebsart ist bei der Einrichtung der Phase des Navigationsdatenbit von Bedeutung. Anschließend ist es ausreichend, in einem Bereich einer erwarteten Bitübergangszeit in nur zwei Korrelatorpaare zu korellieren. Anschließend kann eine zweite Betriebsart "after BTT-detection" aktiviert werden. Die Prozessorfirmware erhält die identifizierte Millisekunde und sendet diese als Korellations-Teilungslinie. Sämtliche vorherigen Daten einer linken Seite des Zeitraums in einer derartig festgelegten Millisekunden gelangen in einen Korrelator auf der linken Seite (LHS). Alle nachfolgenden Daten auf einer rechten Seite des Zeitraums in der festgelegten Millisekunde gelangen in einen Korrelator auf der rechten Seite (RHS). Die Daten in der festgelegten Millisekunde vor dem CA-Code-Zeitraum gelangen in den LHS-Korrelator, wohingegen die Daten nach dem CA-Code-Zeitraum in den RHS-Korrelator gelangen.
  • Eine BTTmode-Variable ist nur in der "timeTrack"-Betriebsart, d. h. DSPmode=3 ("timeTrack"-Betriebsart), wirksam. Ist BTTmode=0, dann verwenden alle Codehypothesen lediglich einen oder zwei Korrelatoren in Abhängigkeit einer weiteren Variablen. Ist BTTmode=1–15, arbeitet eine Codehypothese in der Vor-Erfassungs-Betriebsart. Die elf Korrelatoren, die in der Codehypothese verwendet werden sind gleich BTTmode. Wenn beispielsweise BTTmode=7 ist, dann arbeitet die Codehypothese mit dem Index 7 in der Vor-BTT-Erfassungs-Betriebsart. Es wird angenommen, dass die Indizierung von 0 bis 15 erfolgt, was bedeutet, dass die 0-te Codehypothese nicht in der Vor-Betriebsart laufen kann. Dies ist zulässig, da die Vor-Option zwischen einem Satz von Nach-BTT-Erfassungsbetriebsart-Korrelatorpaaren zentriert ist.
  • Eine BTT-Millisekunden-Variable legt einen erwarteten Datenbit-Übergangspunkt fest. Ist BTT-Millisekunde=0 oder 11 bis 14, dann wird lediglich ein Korrelator für die Codehypothesen in der Nach-Erfassungs-Betriebsart unabhängig von einer Millisekunde oder dem Zeitraum verwendet. Ist BTT-Millisekunde=1, 10, dann werden zwei Korrelatoren für die Codehypothesen in der Nach-BTT-Erfassungs-Betriebsart verwendet. Zudem basiert die Trennung auf dem Zeitraum innerhalb dieser festgelegten Millisekunde. Wenn beispielsweise BTT-Millisekunde=3 ist, dann ist der Teilungspunkt der Zeitraum in der dritten Millisekunde.
  • Ist BTT-Millisekunde=15, dann wird die Korrelation in zwei Korrelatoren in der Mitte des 10-ms-Eintrags unabhängig vom Zeitraumsort geteilt. BTTmode und BTT-Millisekunde erzeugen sechs "timeTrack"-Betriebsart-Verarbeitungsoptionen. Die beiden Variablen BTTmode und BTT-Milllisekunde können fünf unterschiedliche Arten der Mischung für die "timeTrack"-Betriebsart erzeugen. Der Mischer hat drei Optionen, die Mischdaten können allesamt addiert, zwischen zwei Korrelatoren geteilt oder durch den Zeitrum getrennt werden. Es können wenigstens sechs Verfahren bei der Implementierung Anwendung finden.
  • Ein erstes Verfahren hat die geringste Zahl zu lesender Korrelatoren, keine BTT und ein 10-ms-Prädiktionsintervall je Korrelator. BTTmode=0 und BTT-Milliskunde=0. Jede Codehypothese wird an einen Korrelator ausgegeben. Dies ist in Wahrheit dasselbe wie die Mischung für Such- und "weakMeas"-Betriebsarten. Diese Betriebsart ist geeignet, wenn ein großes Codefenster betrachtet wird, um die Leistung nach einer Freiland-"search"-Betriebsart zu finden und keine Zeitgabeinformationen vorhanden sind, um die geringste Zahl zu lesenden Korrelatoren zu erzeugen.
  • Es gibt einen gewissen Datenverlust, da die Navigationsdaten-Phasenumkehr innerhalb eines 10-ms-Eintrags auftreten kann. Jeder andere 10-ms-Eintrag erfährt jedoch keinen derartigen Verlust. Der Eintrag geht vollständig verloren, wenn sich die Phasenumkehrung exakt in der Mitte einer 10-ms-Periode befindet. Die Hälfte der verfügbaren Leistung geht verloren, wenn sich die Phase alle 20 Millisekunden in der Mitte eines Eintrags ändert.
  • Ein zweites Verfahren hat die zweitgeringste Zahl zu lesender Korrelatoren, keine BTT und zwei 5-ms-Prädiktionsintervalle je Korrelator. BTTmode=0 und BTT-Millisekunde=15. Jede Codehypothese wird an zwei Korrelatoren ausgegeben, die jeweils eine Dauer von exakt fünf Millisekunden haben. Diese Betriebsart ist geeignet, wenn ein großes Codefenster betrachtet wird, um die Leistung beispielsweise nach einer Freiland-"search"-Betriebsart zu finden, wenn keine Zeitgabeinformationen verfügbar sind und der Verlust infolge der Phasenumkehrun gen minimiert werden soll.
  • In gewisser Weise kann eine 5-ms-Leistungsberechnung ausgeführt oder die Phasenumkehr gekennzeichnet werden, so dass nicht über diese integriert wird. Eine 5-ms-Prädiktionsintervall-Option ist ebenfalls hilfreich, um eine Frequenzspitze infolge einer größeren Frequenzbandbreite, wie etwa 200 Hz anstelle von 100 Hz, zu finden.
  • Ein drittes Verfahren sucht nach BTT-Informationen der Vor-BTT-Erfassung und hat zwei 5-ms-Prädiktionsintervalle je Korrelator. BTTmode=(1 bis 15) und BTT-Millisekunde=15. Sämtliche Codehypothesen mit Ausnahme der einen, die durch BTTmode erfasst wurde, werden an zwei Korrelatoren ausgegeben, die eine Dauer von exakt fünf Millisekunden haben. Die Codehypothese gleich der BTTmode wird in elf Korrelatoren ausgegeben. Diese Betriebsart eignet sich, nachdem die Code- und Frequenzspitzen geklärt wurden und wenn nach Phasennavigationsdaten von Phasenumkehrungen gesucht wird.
  • Eine viertes Verfahren sucht nach BTT-Informationen der Vor-BTT-Erfassung, wobei ein 10-ms-Prädiktionsintervall in jedem Korrelator verwendet wird. BTTmode=(1 bis 15) und BTT-Millisekunde=0. Jede Codehypothese wird an einen Korrelator ausgegeben, mit Ausnahme der Codehypothese, die durch BTTmode festgelegt wurde. Diese Betriebsart ist etwas eigenartig, minimiert jedoch die Zahl von Korrelatoren, die durch die softwareimplementierte Statusmaschine zu lesen sind.
  • Ein fünftes Verfahren behält BTT bei, wobei der Korrelator an einem Zeitraum von BTT-Millisekunde geteilt ist und BTTmode=(1–15) und BTT-Millisekunde=(1–10). Sämtliche Codehypothesen, außer der einen, die durch BTTmode festgelegt wurde, werden an zwei Korrelatoren ausgegeben. Der Teilungspunkt ist der Zeitraum der Millisekunde, festgelegt durch die BTT-Millisekunde. Die Untersuchung der einen Millisekunden-Korrelatorwerte hält an, um zu beobachten, wann der Umbruch des Zeitraums über die Grenze einer Millisekunde erfolgt. Dadurch wird die beste ganzzahlige Millisekundenbereichs-Leistungsfähigkeit erzeugt. Die Verfolgungslogik kann zu einem 20-ms-Prädiktionsintervall zu Verfolgungsmöglichkei ten eines maximal schwachen Signals mit einer wahren kohärenten 20-ms-Integrationsperiode umschalten.
  • Ein sechstes Verfahren stoppt die Suche von BTT, wobei der Korrelator an einem Zeitraum von BTT-Millisekunde geteilt ist. BTTmode=0 und BTT-Millisekunde=(1–10). Sämtliche Codehypothesen werden an zwei Korrelatoren ausgegeben, wobei der Teilungspunkt der Zeitraum der Millisekunde ist, festgelegt durch BTT-Millisekunde.
  • Dieses Verfahren eignet sich, wenn die Ziehharmonika-Betriebsart verwendet wird, um Spitzenwerte mit sehr geringen Abständen genauer zu untersuchen. Der Spitzenwert wird für die reflektierte Leistung untersucht und um zu verifizieren, dass sich kein größerer Strahl in der Nähe befindet.
  • Die Verfolgungslogik kann zu einem 20-ms-Prädiktionsintervall zu Verfolgungsmöglichkeiten eines maximal schwachen Signals Dank einer wahren kohärenten 20-ms-Integrationsperiode umschalten.
  • Eine numHypotheses-Variable steuert die Zahl von Codehypothesen, die bei jeder Wiedergabe ausgeführt wird. Diese eine vorzeichenlose Byte ist die Zahl von Korrelatoren, die in der Mischung verwendet werden. Diese Verfahren kann zusammen mit der Nach-Erfassungs-BTT-Betriebsart verwendet werden, um eine herkömmliche Verfolgungsbetriebsart geringer Leistung zu erzeugen.
  • NumHypotheses ist zudem in mehr als einer Betriebsart gültig. Es kann ein schmalerer Bereich durchsucht werden, um Zeit und Leistung zu sparen, indem keine ungeeigneten Codehypothesen gesucht werden. Für die "search"-Betriebsart bedeutet dies, wie viele der Verschiebeverzögerungsregister aktiv sind. In diesem Fall ist die Zahl der aktiven Korrelatoren gleich numHypotheses.
  • Für die "weakMeas"-Betriebsart bedeutet dies, wie viele der Verzögerungen am Ausgang der virtuellen Codegeneratoren aktiv sind. Die Zahl der aktiven Korrelatoren ist (16*numHypotheses), da die 16 supervirtuellen Codegeneratoren aktiv gehalten werden. Ist numHypotheses eins, erstreckt sich der Bereich, der abge sucht wird, von startingCodePhase zu startingCodePhase plus 30/64 eines Chips. Für die "timeTrack"-Betriebsart bedeutet dies, wie viele der supervirtuellen Codegeneratoren aktiv sind. Die Zahl der aktiven Korrelatoren ist eine Funktion der BTT-Betriebsart, die oben erläutert wurde.
  • Eine hypothesisSpacing-Variable steuert den Abstand in 1/64 eines Chips zwischen jeder Codehypothese. In der "search"-Betriebsart ist der Abstand fest mit 31/64 eines Chips verbunden, so dass diese Variable ignoriert wird. In der "weakMeas"-Betriebsart wird der Korrelatorabstand automatisch auf 2/64 eines Chips programmiert. Somit wird die hypothesisSpacing-Variable hauptsächlich in der "timeTrack"-Betriebsart verwendet. Dies ist eine vorzeichenlose 5-Bit-Zahl mit einem Bereich von 1–32.
  • Eine numCodeWindows-Variable repräsentiert die Zahl der Häufigkeit, mit der eine Codehypothesen-Öffnung zu einer neuen Phase für einen gegebene Frequenz verschoben wird. Um eine vollständige Codeabtastung sämtlicher möglicher Codehypothesen zu bekommen, hat diese Variable einen Wert von zwölf. Somit ist dies eine 4-Bit-Zahl mit einem Bereich von 1 bis 16. Sie wird lediglich in der "search"-Betriebsart verwendet und sowohl in der "weakMeas"- als auch der "timeTrack"-Betriebsart ignoriert.
  • Eine windowShift-Variable steuert die Verschiebung der Codephase, die zwischen aufeinanderfolgenden Codefenstern auftreten muss, wenn numCodeWindows größer als eins ist. Da das Codefenster in der "search"-Betriebsart wiederholt wird, ist der Abstand einfach das Produkt aus (numHypotheses*31). Dies kann im DSP 114 als eine Verschiebung nach links um fünf und anschließendes Subtrahieren der originalen Zahl, wie etwa (x*31 = x*32 – x), berechnet werden. Eine timesTwoMode-Variable schaltet bei Bedarf eine schnellere Wiedergabemöglichkeit ein, wie etwa wenn ein größerer Frequenzbereich abgesucht werden muss.
  • Eine Dividierbetriebsart kann erforderlich sein, um den Takt langsamer laufen zu lassen und Betriebsleistung in der "timeTrack"-Betriebsart zu sparen, wie etwa wenn nur einige wenige Wiedergaben ausgeführt werden müssen. Eine numRecords-Variable ist die Zahl aufeinanderfolgender Einträge, um den momentanen Satz von Hypothesen auszuführen. Jeder Wert größer als 1 bedeutet, dass wir wirklich jeweils nur nach einem Satelliten suchen, und somit können wir bei dem momentanen Hypothesensatz bleiben, da wir nicht zu anderen Satelliten umschalten. Davon wird lediglich in der "search"-Betriebsart Gebrauch gemacht. Beispielsweise, um bei einem Satelliten für eine Sekunde zu bleiben. In diesem Fall hätte die Variable einen Wert von 100. Dies ist eine vorzeichnlose 8-Bit-Zahl für einen Bereich von bis zu 2,55 Sekunden.
  • Eine numFreq-Variable ist die Zahl von Frequenzen, die mit den momentanen Codehypothesen durchsucht werden soll. Dies ist eine vorzeichenlose 5-Bit-Zahl mit einem Bereich von 1–20. Sie arbeitet zusammen mit einer Schrittgrößen-Variablen, um eine Frequenzsuche zu definieren.
  • Eine fregStep-Variable repräsentiert den Frequenzabstand zwischen aufeinanderfolgenden Suchfrequenzen. Die Schrittgröße sollte im allgemeinen die Frequenz entsprechend dem Prädiktionsintervall sein. Es können jedoch kleinere Größen bei der Messung verwendet werden, um die Frequenzspitze feinabzustimmen.
  • Eine Suche beginnt auf der Seite der kleinsten Frequenz und setzt sich zu einer größten Frequenz fort. Sie deckt denselben Bereich wie eine Suche ab, die in der Mitte beginnt und sich in beiden Richtungen ausbreitet. Ein derartiges Verfahren kann im DSP 114 einfacher implementiert werden.
  • Es wird beispielsweise angenommen, dass wir ±400 Hz bis etwa 1.000 Hz absuchen wollen. Wir würden die Startfrequenz auf 650 Hz einstellen und anschließend acht Schritte von 100 Hz ausführen, um die verbleibenden Frequenzen zu erzeugen, wie es unten dargestellt ist. In diesem Fall entspricht carrierNcoValue 650 Hz, ist numFreq = 8 und sind fregStep 100 Hz.
  • Wir gehen davon aus, dass wir keinen doppelten Speicher für supervirtuelle Träger-NCO-Variable Verschiebung und Verzögerung wie auch für virtuelle Codegenerator-Variable C1, C2bit, Zählzahl und Zustand haben. Auf diese Weise wird der Bedarf an einem zusätzlichen Speicher vermieden. Dies bedeutet, dass sich der DSP im Leerlauf befindet, wenn diese berechnet werden, was eine längere Einrichtungszeit aber eine geringere Anzahl von Gates bedeutet. Wenn später eine Beschleunigung entschieden wird und zusätzliche Gates erschwinglich sind, sollte die Pufferung der vorberechneten Konstanten bei der Berechnung der Wiedergabe in Erwägung gezogen werden.
  • Dieser derzeitige Ansatz ist zulässig, da die ±1.000-Hz-Frequenzsuche eine sehr geringe Vorberechnung zum Ausführungszeitpunkt erfordert. Tatsächlich tritt sie lediglich beim ersten 10-ms-Eintrag auf. Es müssen ausreichend Ressourcen vorhanden sein, um die 20 Vorberechnungen in den 20 verbleibenden Wiedergabetakten vorzunehmen. Ist dies nicht der Fall, kann zusätzlicher Bedarf erforderlich sein, um die Vorberechnungsergebnisse zu speichern, bevor sie tatsächlich in die Bestimmungsregister geladen werden.
  • Der Aufbau der Statusmaschine des DSP 114 beinhaltet normalerweise die Entscheidung, wie der Wiedergabetakt gewählt und gesteuert wird. Es wird eine startPlayback-Variable verwendet, um einen Wiedergabetakt zu starten und eine Wiedergabemischung zu beginnen. Eine Variable playbackSamplesToGoCount definiert die Zahl von verbleibenden Abtastungen, die in einer Mischung verarbeitet werden sollen. Sie wird mit 2.112 plus der Zahl der Vorbereitungstakte initialisiert und bei jedem Abtasttakt verringert, der verarbeitet wird. Die Verarbeitung ist abgeschlossen, wenn der Ausgangswert null erreicht. Eine Variable playbackClock-Selector wählt eine Wiedergabetaktgeschwindigkeit. Wenn der Wert null ist, wird der Mastertakt direkt verwendet. Ist der Wert eins, wird der Mastertakt mit zwei multipliziert. Ein playbackClock-Takt wird benutzt, um sämtliche Laufzeitblöcke zu betätigen. Ein primingComplete-Signal zeigt an, wann die Vorbereitung abgeschlossen und die Mischung zum Starten bereit ist. Es ist während der Vorbereitung null. Ein playbackComplete-Signal zeigt an, wann eine vollständige 2.112-Abtastmischung fertig ist und die Korrelationsergebnisse in den Halteverriegelungsspeichern gültig sind. Es ist während der Vorbereitung ebenfalls null, oder wenn eine Wiedergabe vom RISC-Prozessor 258 gelöscht worden ist.
  • Drei mögliche Zustände können dieselbe Statusmaschine benutzen. Die typischste Suche besteht darin, sämtliche Codephasen über einen Mehrfachfrequenzbe reich zu suchen. Dies erfolgt, bevor die Zeit oder die Position des Benutzers bekannt ist. Die Statusmaschine führt automatisch eine 10-ms-Mischung bei allen Codes und Frequenzen für den definierten Bereich aus.
  • Jede Suche verwendet das gesamte Wiedergebpotential, so dass verhindert werden muss, dass andere Hypothesen parallel abgespielt werden. Dies würde andernfalls den Fortbestand der Mischung zerstören, solange nicht alle Zustände gesichert und wiederhergestellt wurden. Diese Autonomie ist erforderlich, so dass ein Block mit voller Geschwindigkeit gefahren werden kann, ohne dass Takte dadurch verschwendet werden, dass darauf gewartet werden muss, bis der Mirkoprozessor den nächsten Zustand versorgt. Die Codesuche kann festgelegt werden, indem der Startcode, der Abstand zwischen jedem Code und die Zahl der zu suchenden Codes definiert wird. Auf der Basis des 176-Korrelatorenmodells mit 31/64 eines Chipabstandes können wir die vollständigen 1.032 Chips in zwölf Schritten durchsuchen. Der Befehl an den DSP 114 besteht darin, sämtliche 176 Hypothesen zu verwenden und zwölf aufeinanderfolgende Mischungen auszuführen, wobei der Code um 176 Abtastakte zwischen jeder Mischung verschoben wird, um einen weiteren Abschnitt des Codespektrums zu durchsuchen. Ist die erste Wiedergabe vollständig, verschiebt der DSP 114 automatisch den Code, beginnt mit der nächsten Verschiebung und fährt mit dem Vorgang fort, bis die Zahl der Suchen, die bei einer Frequenz erforderlich sind, erschöpft ist. Eine Frequenzsuche wird durch Wiederholen des Vorgangs für eine Anzahl von Frequenzen und die Schrittvariablen "numFreq" und "fregStep" ausgeführt.
  • Eine erste Suchtechnik verwendet sämtliche Wiedergaben für eine Satellitenvorrichtung (SV) bei allen Codephasen, ±1.000 Hz und einer Sekunde. Eine weitere Technik besteht darin, lediglich einen kleinen Bereich des Codespektrums zu durchsuchen, so dass weniger als alle Codehypothesen verwendet werden. Es wird nur eine Wiedergabe für eine breite nicht-köhärente Durchsuchung verwendet. Dadurch wird Betriebsleistung gespart, wenn der ungefähre Codeort bekannt ist, wobei auf der Basis eines Unsicherheitszunahme-Modells nicht weiter als notwendig gesucht werden muss.
  • Die "timeTrack"-Betriebsart verwendet eine Wiedergabe für eine schmale kohä rente Suche. Eine derartige Suche richtet eine Integrationsgrenze mit einer Navigationsdatenbit-Phasenumkehr aus. Die "timeTrack"-Betriebsart ist von herkömmlicher Art, wobei eine Integrationsperiode mit einem lokal erzeugten Verlaufsübernahme-(CA-)Zeitraum und nicht mit der Millisekunde synchronisiert ist. Das Ziel besteht darin, die Integration über ein Phasenintervall hinaus zu vermeiden, und verlangt eine größere Zahl von Korrelatoren an einer gegebenen Phase, um individuelle Integrationen in unterschiedlichen Zeiträumen zu sichern. Für ein 10-ms-Prädiktionsintervall werden elf Korrelatoren benötigt, um die Daten für zehn Zeiträume ordnungsgemäß zu sichern. Die Zahl erforderlicher Codehypothesen ist auf 16 verringert, da 16*11 = 176.
  • Die "timeTrack"-Betriebsart kann wie eine Ziehharmonika zusammengezogen und ausgedehnt werden. Der Abstand zwischen jeder Codehypothese kann zwischen 1/64 und 32/64 eines Chips eingestellt werden. Dies wird durch 16 virtuelle Codegeneratoren ermöglicht. Die unterschiedlichen Codehypothesen werden aus 17 Codegenerator-Ausgabeverzögerungs-Taktschlägen und einem "div3"-Signal aus einem Code-NCO simuliert. Die "timeTrack"-Betriebsart kann alle Zeiträume eines 10-ms-Prädiktionsintervalls für eine separate Ausgabe oder eine Ausgabe wählen, die in zwei Teile um den Zeitraum geteilt ist.
  • Die Statusmaschine höherer Ordnung hat vorzugsweise drei Haupt-Programmsteuerschleifen. Eine Aufzeichnungs-Programmsteuerschleife läuft lediglich in der "search"-Betriebsart und befiehlt eine Suche über einen großen Frequenzbereich. Sie verbraucht sämtlichen verfügbaren Hypothesenraum, wobei keine weiteren Steuerschleifen dazwischen laufen können.
  • Eine Frequenz-Programmsteuerschleife wiederholt dieselben Codehypothesen bei Mehrfachfrequenzen und bietet einen schnellen Weg, um Mehrfachfrequenzen zu erzeugen. Der Prozessor greift lediglich ein, um eine nächste Suchfrequenz anzuweisen. In Kombination mit der Aufzeichnungs-Programmsteuerschleife, stellt sie eine sehr leistungsfähige Suchmaschine bereit. Die Code-Doppler-NOC können für jede Frequenz unabhängig aktualisiert werden.
  • Eine codeWindow-Programmsteuerschleife wird verwendet, um aufeinanderfol gende Codesuchen durchzuführen. Ein erstes Codefenster wird mit einer Tabellensuche festgelegt, die eine Start-Absolutphase einstellt, und alle nachfolgenden Suchen erzeugen eine Codephase durch relatives Verschieben des Codes.
  • Figure 00520001

Claims (7)

  1. Mobiles Teilnehmer-Satellitennavigationssystem (100) zur Bereitstellung von Navigationslösungen bei Betrieb in Gebieten mit sehr niedriger Signalstärke, wobei das System (100) umfasst: einen ersten Empfänger (102, 108), der so eingerichtet ist, dass er direkt Pseudostreckenmessungen von umlaufenden Navigationssatelliten erfasst, einen zweiten Empfänger (106, 110), der so eingerichtet ist, dass er Satelliten-Almanach- und Ephemeris-Daten erfasst, um Positionslösungen aus den von dem ersten Empfänger (102, 108) ermittelten Pseudostreckenmessungen zu berechnen, wobei das System (100) dadurch gekennzeichnet ist, dass es des Weiteren umfasst: eine Navigationsplattform (312), die so eingerichtet ist, dass sie Navigationslösungen bereitstellt, die aus einer Kombination der direkt von dem ersten Empfänger (102, 108) ermittelten Pseudostreckenmessungen und indirekt ermittelten Satellitennavigations-Daten berechnet werden, die von einem Netzwerk-Server (106) bereitgestellt werden, der den zweiten Empfänger (106, 110) umfasst, wobei: ein Polynom-Modell das Datenkommunikationsvolumen und den Rechenaufwand an der Navigationsplattform (312) durch Näherung und Reduzierung der direkt erfassten Navigationssatelliten-Konstellations-Almanach-, Ephemeris-, Differenzialkorrektur-Daten und Client-Dienste entsprechend einem Polynom-Modell reduziert, wobei das Polynom-Modell Polynome mit ganzzahliger Arithmetik verwendet; eine Netzwerk-Client-Einrichtung (104), die so eingerichtet ist, dass sie mit der Navigationsplattform (312) und dem ersten Empfänger (102, 108) sowie dem zweiten Empfänger (106, 110) kommuniziert, wobei die Netzwerk-Clienteinrichtung so eingerichtet ist, dass sie Zugriff des Polynommodells von dem Netzwerk-Server (106) ermöglicht, und der Netzwerk-Server (106) so eingerichtet ist, dass er die umlaufenden Navigationssatelliten überwacht, und in der Lage ist, ausreichend Daten zu erfassen, um das Polynommodell periodisch zu konstruieren und über ein Netzwerk (118, 120, 122, 124) zuzuführen.
  2. System nach Anspruch 1, wobei die Navigationsplattform (312) des Weiteren so eingerichtet ist, dass sie autonome Positionslösungs-Berechnungen für eine begrenzte Zeit nach einer periodischen Anforderung von Hilfsdaten von dem Netzwerk-Server (106) bereitstellt.
  3. System nach Anspruch 1 oder 2, wobei der Netzwerk-Server (106) eine Messplattform für statische Beobachtungen einer Navigationssatelliten-Konstellation umfasst, und so eingerichtet ist, dass er eine Datenbank von Messfehlern und Satellitendatenmeldungen aufbaut.
  4. System nach Anspruch 3, wobei der Netzwerk-Server (106) eine Bereitschafts- und Qualitäts-Überwachungseinrichtung umfasst, die die statischen Beobachtungen prüft und eine Einbeziehung falscher Informationen in die Datenbank von Messfehlern und Satelliten-Datenmeldungen verhindert.
  5. System nach einem der Ansprüche 1 bis 4, das des Weiteren umfasst: eine Kommunikationsverbindung zwischen dem Netzwerk-Server (106) und den Navigationsplattformen (312); und ein Kommunikationsformat, das über die Kommunikationsverbindung angeboten wird und Almanach- sowie Ephemeris-Satellitenmeldungen an dem Netzwerk-Server (106) auf einfache Polynome entsprechend dem Polynommodell reduziert, die eine momentane Satellitenposition und -geschwindigkeit darstellen, die an der Navigationsplattform (312) verwendet werden, um eine aktuelle Positionslösung mit Echtzeitdaten zu berechnen.
  6. System nach einem der Ansprüche 1 bis 4, das des Weiteren umfasst: eine TCP/IP-Kommunikationsverbindung, die wenigstens einmal zwischen dem Netzwerk-Server (106) und der Navigationsplattform (312) besteht; und ein Informations-Datenpaket-Format, das periodisch wenigstens einmal über die Kommunikationsverbindung angeboten wird und Almanach- sowie Ephemeris-Satellitenmeldungen an dem Netzwerk-Server (106) auf einfache Polynome entsprechend dem Polynommodell reduziert, die eine momentane Satellitenposition und -geschwindigkeit darstellen, die an der Navigationsplattform (312) verwendet werden, um eine aktuelle Positionslösung mit Echtzeitdaten zu berechnen.
  7. System nach einem der Ansprüche 2 bis 6, wobei die Hilfsdaten von dem Netzwerk-Server (106) dem ersten Empfänger bereitgestellt werden und die Hilfsdaten sämtliche Datenspeicherung bezüglich Almanach und Ephemeris aufheben, und wobei nur ganzzahlige Festkommaarithmetik verwendet wird, um die Benutzerposition an der Navigationsplattform (312) zu lösen.
DE60109702T 2000-10-11 2001-10-10 Systemempfänger und Verfahren zur Satellitennavigation Expired - Lifetime DE60109702T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US687044 1991-11-27
US09/687,044 US6437734B1 (en) 2000-10-11 2000-10-11 Satellite navigation receiver and method

Publications (2)

Publication Number Publication Date
DE60109702D1 DE60109702D1 (de) 2005-05-04
DE60109702T2 true DE60109702T2 (de) 2005-08-25

Family

ID=24758781

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60109702T Expired - Lifetime DE60109702T2 (de) 2000-10-11 2001-10-10 Systemempfänger und Verfahren zur Satellitennavigation

Country Status (6)

Country Link
US (1) US6437734B1 (de)
EP (1) EP1197761B1 (de)
JP (1) JP3574429B2 (de)
CN (1) CN100430751C (de)
DE (1) DE60109702T2 (de)
HK (1) HK1046552B (de)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7053824B2 (en) 2001-11-06 2006-05-30 Global Locate, Inc. Method and apparatus for receiving a global positioning system signal using a cellular acquisition signal
US20040143392A1 (en) 1999-07-12 2004-07-22 Skybitz, Inc. System and method for fast acquisition reporting using communication satellite range measurement
US8255149B2 (en) 1999-07-12 2012-08-28 Skybitz, Inc. System and method for dual-mode location determination
US20070200752A1 (en) 2001-06-06 2007-08-30 Global Locate, Inc. Method and apparatus for maintaining integrity of long-term orbits in a remote receiver
US7443340B2 (en) 2001-06-06 2008-10-28 Global Locate, Inc. Method and apparatus for generating and distributing satellite tracking information
US7196660B2 (en) 2000-11-17 2007-03-27 Global Locate, Inc Method and system for determining time in a satellite positioning system
US6937187B2 (en) 2000-11-17 2005-08-30 Global Locate, Inc. Method and apparatus for forming a dynamic model to locate position of a satellite receiver
US6959057B1 (en) * 2001-04-27 2005-10-25 Rockwell Collins Method of enhancing signal tracking in global positioning system receivers
US7548816B2 (en) 2001-06-06 2009-06-16 Global Locate, Inc. Method and apparatus for generating and securely distributing long-term satellite tracking information
US8212719B2 (en) 2001-06-06 2012-07-03 Global Locate, Inc. Method and apparatus for background decoding of a satellite navigation message to maintain integrity of long term orbit information in a remote receiver
US8090536B2 (en) 2001-06-06 2012-01-03 Broadcom Corporation Method and apparatus for compression of long term orbit data
US6651000B2 (en) 2001-07-25 2003-11-18 Global Locate, Inc. Method and apparatus for generating and distributing satellite tracking information in a compact format
JP3449368B2 (ja) * 2001-08-30 2003-09-22 株式会社デンソー 位置特定システム、位置情報サーバならびにコンピュータプログラム
US7656350B2 (en) 2001-11-06 2010-02-02 Global Locate Method and apparatus for processing a satellite positioning system signal using a cellular acquisition signal
US6941109B2 (en) * 2002-02-19 2005-09-06 Seiko Epson Corporation Computing network path delays so accurate absolute time can be forwarded from a server to a client
US6701253B2 (en) * 2002-02-19 2004-03-02 Eride, Inc. Total correction strategy
US6654686B2 (en) * 2002-02-19 2003-11-25 Seiko Epson Corporation No preamble frame sync
US6647339B2 (en) * 2002-02-19 2003-11-11 Seiko Epson Corporation Shared reference station
US6559795B1 (en) * 2002-02-19 2003-05-06 Seiko Epson Corporation High-sensitivity infrequent use of servers
EP1497933B1 (de) * 2002-04-09 2012-03-14 Alcatel Lucent System und verfahren zur realzeitverbindung zwischen einheiten eines überwachungs-, mess- oder datensammlungssystem durch ein direktes digitales satellitenrundfunkmultiplexsystem
US6768448B2 (en) * 2002-08-02 2004-07-27 Qualcomm Incorporated Apparatus and method for time maintenance in a satellite position system receiver
EP1835300B1 (de) * 2002-10-02 2014-05-21 Global Locate, Inc. Verfahren und Vorrichtung um Langzeit-Satellitenbeobachtungsdaten in einem entfernten Empfänger zu nutzen
US7595752B2 (en) 2002-10-02 2009-09-29 Global Locate, Inc. Method and apparatus for enhanced autonomous GPS
US7158080B2 (en) * 2002-10-02 2007-01-02 Global Locate, Inc. Method and apparatus for using long term satellite tracking data in a remote receiver
US6873910B2 (en) * 2002-10-22 2005-03-29 Qualcomm Incorporated Procedure for searching for position determination signals using a plurality of search modes
US6683564B1 (en) * 2002-11-19 2004-01-27 Eride, Inc. High-sensitivity satellite positioning system receivers and reception methods
US7155183B2 (en) * 2003-01-16 2006-12-26 Global Locate, Inc. Method and apparatus for adjusting reference oscillator frequency in a mobile wireless device
US7230999B1 (en) 2003-05-02 2007-06-12 Rockwell Collins, Inc. Method for extended coherent data demodulation for GPS receivers
US7057554B2 (en) * 2004-03-25 2006-06-06 Eride, Inc. Bootstrapping tandem GPS navigation receivers
US7609203B2 (en) * 2005-12-14 2009-10-27 Delphi Technologies, Inc. Method for ephemeris assisted global positioning
US7548200B2 (en) 2006-04-24 2009-06-16 Nemerix Sa Ephemeris extension method for GNSS applications
US7656348B2 (en) * 2006-05-19 2010-02-02 Qualcomm Incorporated System and/or method for determining sufficiency of pseudorange measurements
JP5657192B2 (ja) * 2006-06-23 2015-01-21 クゥアルコム・インコーポレイテッドQualcomm Incorporated Gnssアプリケーションのためのエフェメリス拡張方法及び機器
US7564406B2 (en) * 2006-11-10 2009-07-21 Sirf Technology, Inc. Method and apparatus in standalone positioning without broadcast ephemeris
US8497801B2 (en) 2007-02-05 2013-07-30 Qualcomm Incorporated Prediction refresh method for ephemeris extensions
US7869948B2 (en) * 2007-04-27 2011-01-11 Sirf Technology, Inc. Method and apparatus in positioning without broadcast ephemeris
US8260540B2 (en) * 2007-04-27 2012-09-04 Sirf Technology, Inc. Systems and methods of communication in an assisted navigation system
US8976844B2 (en) 2012-02-14 2015-03-10 The Boeing Company Receiver for detection and time recovery of non-coherent signals and methods of operating same
CN104471440B (zh) * 2012-02-23 2016-08-24 康奈尔大学 低功率异步gps基带处理器
US9798010B2 (en) * 2012-07-31 2017-10-24 Qualcomm Incorporated Devices, methods, and apparatuses for mobile device acquisition assistance
US9405015B2 (en) 2012-12-18 2016-08-02 Subcarrier Systems Corporation Method and apparatus for modeling of GNSS pseudorange measurements for interpolation, extrapolation, reduction of measurement errors, and data compression
US9250327B2 (en) 2013-03-05 2016-02-02 Subcarrier Systems Corporation Method and apparatus for reducing satellite position message payload by adaptive data compression techniques
CA2978714C (en) 2015-03-06 2019-04-02 Gatekeeper Systems, Inc. Low-energy consumption location of movable objects
US10001541B2 (en) 2015-09-04 2018-06-19 Gatekeeper Systems, Inc. Magnetometer and accelerometer calibration for cart navigation system
US9731744B2 (en) 2015-09-04 2017-08-15 Gatekeeper Systems, Inc. Estimating motion of wheeled carts
JP6103167B1 (ja) * 2016-02-22 2017-03-29 三菱電機株式会社 受信装置
EP3593333A4 (de) 2017-03-08 2021-01-20 Gatekeeper Systems, Inc. Navigationssysteme für wagen mit rädern
US11137502B2 (en) * 2018-05-29 2021-10-05 Star Ally International Limited Method and system for signal detection including positioning signals
CA3104632A1 (en) * 2018-06-21 2019-12-26 Ibiquity Digital Corporation Differential correction map for gnss
US11168984B2 (en) * 2019-02-08 2021-11-09 The Boeing Company Celestial navigation system and method
US10934964B1 (en) * 2020-02-03 2021-03-02 Ford Global Technologies, Llc Methods and system for storing and activating a calibration for a vehicle
EP4139711A1 (de) * 2020-04-21 2023-03-01 Javad GNSS, Inc. Verbesserte echtzeitkinematik (rtk)
CN114070307B (zh) * 2022-01-17 2022-04-08 中国电子科技集团公司第二十九研究所 一种宽带快速切换频率合成电路

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4445118A (en) * 1981-05-22 1984-04-24 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Navigation system and method
US5323322A (en) * 1992-03-05 1994-06-21 Trimble Navigation Limited Networked differential GPS system
US5689431A (en) * 1995-04-18 1997-11-18 Leading Edge Technologies, Inc. Golf course yardage and information system
US5825327A (en) 1996-03-08 1998-10-20 Snaptrack, Inc. GPS receivers and garments containing GPS receivers and methods for using these GPS receivers
US5831574A (en) 1996-03-08 1998-11-03 Snaptrack, Inc. Method and apparatus for determining the location of an object which may have an obstructed view of the sky
US6002363A (en) 1996-03-08 1999-12-14 Snaptrack, Inc. Combined GPS positioning system and communications system utilizing shared circuitry
US5841396A (en) 1996-03-08 1998-11-24 Snaptrack, Inc. GPS receiver utilizing a communication link
US5884214A (en) 1996-09-06 1999-03-16 Snaptrack, Inc. GPS receiver and method for processing GPS signals
US5663734A (en) 1995-10-09 1997-09-02 Precision Tracking, Inc. GPS receiver and method for processing GPS signals
AU7396596A (en) 1995-10-09 1997-04-30 Precision Tracking, Inc. Method and apparatus for determining the location of an object which may have an obstructed view of the sky
CA2667775C (en) * 1995-10-09 2013-12-10 Norman F. Krasner Gps receiver and method for processing gps signals
US5945944A (en) 1996-03-08 1999-08-31 Snaptrack, Inc. Method and apparatus for determining time for GPS receivers
US5812087A (en) * 1997-02-03 1998-09-22 Snaptrack, Inc. Method and apparatus for satellite positioning system based time measurement
US6118977A (en) * 1997-09-11 2000-09-12 Lucent Technologies, Inc. Telecommunications-assisted satellite positioning system
US6078290A (en) 1998-01-06 2000-06-20 Trimble Navigation Limited User-controlled GPS receiver
US6122520A (en) * 1998-02-13 2000-09-19 Xerox Corporation System and method for obtaining and using location specific information
US5999124A (en) 1998-04-22 1999-12-07 Snaptrack, Inc, Satellite positioning system augmentation with wireless communication signals
US6061018A (en) 1998-05-05 2000-05-09 Snaptrack, Inc. Method and system for using altitude information in a satellite positioning system
US6204808B1 (en) * 1998-08-13 2001-03-20 Ericsson Inc. Method and system for aiding GPS receivers via a cellular or PCS network
US6229478B1 (en) * 1998-11-05 2001-05-08 Trimble Navigation Limited Near-real time DGPS network and server system
GB2347035B (en) * 1999-02-16 2003-10-08 Symmetricom Inc Positioning system
US6211819B1 (en) * 1999-08-27 2001-04-03 Motorola, Inc. Mobile station location determination in a radio communication system

Also Published As

Publication number Publication date
HK1046552B (zh) 2009-08-07
JP3574429B2 (ja) 2004-10-06
CN1350183A (zh) 2002-05-22
EP1197761B1 (de) 2005-03-30
DE60109702D1 (de) 2005-05-04
US6437734B1 (en) 2002-08-20
JP2002196066A (ja) 2002-07-10
EP1197761A3 (de) 2003-03-12
EP1197761A2 (de) 2002-04-17
CN100430751C (zh) 2008-11-05
HK1046552A1 (en) 2003-01-17

Similar Documents

Publication Publication Date Title
DE60109702T2 (de) Systemempfänger und Verfahren zur Satellitennavigation
DE69738213T2 (de) Verbesserter gps empfänger mit kommunikationsverbindung
DE112008001112B9 (de) Verfahren und Vorrichtung bei der Positionsbestimmung ohne Ephemeridenaussendung
DE60013662T2 (de) Empfängereichungsverfahren für GLONASS
DE60127955T2 (de) Bestimmung der zeit in einem gps-empfänger
DE60106167T2 (de) Verfahren zum Voraussagen von Navigationsinformation in einer globalen Navigationsanlage
DE10084224B4 (de) Verfahren zur Positionsbestimmung aus GPS-Signalen
DE69629724T3 (de) Kombiniertes gps und kommunikations-system mit geteilten schaltkreisen
DE69929915T2 (de) Verfahren und Vorrichtung zur Bestimmung der Zeit im Satellitenpositionierungssystem
DE112010001482T5 (de) Verwendung von SBAS-Signalen zur Verbesserung von GNSS-Empfänger-Leistung
US6496145B2 (en) Signal detector employing coherent integration
DE102009044628B4 (de) Verfahren und Vorrichtung für eine Synchronisation von schwachen Datenrahmen bei einem Positionsbestimmungssystem
DE19621225B4 (de) Leistungsreduziertes GPS-gestütztes System zum Verfolgen mehrerer Objekte von einem zentralen Ort
DE69723078T2 (de) Verfahren zum effektiven abtasten in einem korrelator
EP1439401B1 (de) Hochempfindliche Satellitenpositionierungssystemempfänger und Empfangsverfahren
DE102004043524B4 (de) RTK-Positionierungssystem und Positionierungsverfahren dafür
DE69919729T2 (de) Empfänger zur positionsbestimmung mit effizientem phasendrehglied
CN100354646C (zh) 在卫星定位系统中使用卫星状态信息的方法和装置
DE102013005058A1 (de) PSEUDO-MAXIMUM-LIKELlHOOD-TRACKING FÜR GLOBALE NAVIGATIONSSATELLITENSYSTEME
DE102013206544A1 (de) Fortschrittliche Positionierung mit globalen Navigationssatellitensystemen (GNSS) unter Verwendung von präziser Satelliteninformation
DE112006003422T5 (de) Dynamisches Umschalten von Trägernachlaufschleifen ohne Verlust der Nachlaufinformationen
DE112008000302T5 (de) Verfahren und Systeme zur Kompensation einer temperaturbezogenen Frequenzverschiebung
DE19705740A1 (de) GPS-Satelliten verwendendes Positionierungssystem
DE60220606T2 (de) Kreuzkorrelationssystem zur Zeitrückgewinnung in Netzwerk-unterstützer GPS-Ortung
DE60312937T2 (de) Synthetische Navigationdaten für einen hochempfindlichen Empfänger eines Satellitenpositionierungssytems

Legal Events

Date Code Title Description
8364 No opposition during term of opposition