-
Die
vorliegende Erfindung bezieht sich auf persönliche mobile berechnende Geräte, allgemein bekannt
als mobile Geräte.
Genauer gesagt, bezieht sich die vorliegende Erfindung auf ein System
und Verfahren zum Übermitteln
zu, Empfangen und Berichtigen von Informationen auf mobilen Geräten.
-
Mobile
Geräte
sind kleine elektronische berechnende Geräte bezeichnet als Personal
Digital Assistants. Viele solcher mobilen Geräte sind Funkrufempfänger (Pager),
tragbare Geräte,
oder handflächengroße Geräte, welche
komfortabel in die Hand passen. Ein kommerziell verfügbares Gerät wird unter
dem Markennamen HANDHELD PC verkauft (oder H/PC), ein anderes wird
unter dem Markennamen PALM PC (oder P/PC) verkauft, die beide Software
besitzen, die von Microsoft Corporation aus Redmond, Washington
zur Verfügung
gestellt wird.
-
Im
Allgemeinen schließt
das mobile Gerät
einen Prozessor, Random Access Memory (RAM), und ein Eingabegerät wie z.
B. eine Tastatur, Touchpad oder Eingabeknöpfe und ein Display mit ein.
Die Tastatur kann in das Display integriert sein, wie z. B., wenn
die Tastatur als berührungsempfindliches
Display eingebaut ist. Eine Kommunikationsschnittstelle ist optional
vorgesehen und wird allgemein verwendet, um mit dem Desktop-Computer
zu kommunizieren. Eine austauschbare oder wiederaufladbare Batterie
versorgt das mobile Gerät.
Optional kann das mobile Gerät
Energie von einer externen Energiequelle bekommen, die die eingebaute
Batterie außer Kraft
setzt oder wiederauflädt.
-
In
manchen älteren
Anwendungen wird das mobile Gerät
in Verbindung mit einem Desktop Computer verwendet. Zum Beispiel
kann der Benutzer des mobilen Gerätes auch Zugriff zu einem Desktop Computer
haben und verwendet diesen in der Arbeit oder zuhause oder beides.
Wenn das mobile Gerät ein
H/PC-Markengerät
oder anderes ähnliches
Gerät ist,
verwendet der Benutzer üblicherweise
dieselben Arten von Anwendungen auf beiden Geräten, dem Desktop Computer und
dem mobilen Gerät.
Deshalb ist es recht vorteilhaft für solche mobilen Geräte, darauf
ausgelegt zu sein, mit dem Desktop Computer verbunden zu werden,
um Informationen auszutauschen und Informationen mit dem Desktop
Computer zu teilen.
-
Eine
andere Technik, um dem mobilen Gerät Informationen zur Verfügung zu
stellen, ist durch eine kabellose Übertragungsverbindung. Solche
Informationen können
Email oder Nachrichten, Wetter-, Sport-, Verkehrs- und lokale Ereignisinformationen einschließen. Solche
Informationen können
von einem Desktop Computer, der mit dem Internet verbunden ist,
bezogen werden, und über
eine Kabelverbindung geliefert werden. Jedoch kann es wünschenswert
sein, solche Informationen auch über
eine kabellose Verbindung zu überbringen.
Ein kabelloser Empfänger
in dem mobilen Gerät
kann so funktionieren, dass Informationen empfangen werden, wenn
sie zu dem mobilen Gerät
geschickt werden.
-
In
dem Fall, dass das mobile Gerät
ein Funkrufempfänger
ist, hat jeder Funkrufempfänger
in einem gegebenen System eine oder mehrere Adressen. Wenn eine
Nachricht über
einen kabellosen Kanal übermittelt
wird, ist sie für
eine Adresse bestimmt. Alle Funkrufempfänger, die diesem kabellosen
Kanal zugeordnet sind, empfangen die Nachricht und überprüfen die
Adresse, die in der Nachricht enthalten ist, gegen ihre eigene Adresse.
Dieser Adressabgleichsalgorithmus kann entweder in Hardware oder
in Software, oder in einer Kombination von Hardware und Software
implementiert werden. Wenn die Adresse, verbunden mit der eingehenden
Nachricht, nicht mit irgendeiner der Adressen des Funkrufempfängers übereinstimmt,
wird die Nachricht verworfen. Wenn die Adresse jedoch mit einer
der Adressen des Funkrufempfängers übereinstimmt,
kann die Nachricht akzeptiert werden und zu Software oder Hardware
in einem höheren
Level des Protocol Stack auf dem Funkrufempfänger zur geeigneten Verarbeitung weitergeleitet
werden.
-
Wenn
das mobile Gerät
ein Funkrufempfänger
ist, oder wenn es einen Funkrufempfänger beinhaltet, birgt es eine
Anzahl von Nachteilen. Zum Beispiel sind Funkrufnetzwerke herkömmlicherweise Einwegnetzwerke,
in denen eine Nachricht zu einem oder mehreren Funkrufempfängern in
einer Open-Loop-Umgebung übermittelt
oder gesendet wird. In diesem Fall ist es schwierig, wenn nicht
unmöglich,
zu ermitteln, ob das Zielgerät
(oder die Zielgruppe von Geräten)
die Nachricht empfangen hat. Es ist auch schwierig, wenn nicht unmöglich, zu
ermitteln, ob das Zielgerät
eine fehlerfreie Nachricht erhalten hat.
-
Einweg-Funkrufnetzwerke
sind geneigt, Fehler zu erzeugen, die dazu führen, dass manche der Nachrichten
fehlerhaft sind. In machen Fällen
hat die Funkrufindustrie dies als akzeptabel erachtet, weil der
Benutzer manchmal den richtigen Nachrichteninhalt ermitteln kann,
selbst wenn die Nachricht Fehler enthält, einfach aus dem Kontext
der Nachricht heraus. In einigen Fällen jedoch ist dies höchst unerwünscht. Zum
Beispiel, wenn die Nachricht eine Telefonnummer enthält oder
wichtige Aktienpreisinformationen, so können diese Informationen in
einem Fehler verloren gehen. Dies wird unakzeptabel für den Benutzer.
-
Viele
Jahre hat die Funkrufindustrie daran gearbeitet, dieses Problem
zu lösen.
Die Industrie hat schrittweise Verbesserungen an dem Over-the-air-Funkrufprotokoll
gemacht, welches zum Übermitteln
der Nachrichten verwendet wird. Das Motorola-FLEX-Funkrufsystem und
das POCSAG-Funkrufsystem haben eine verbesserte Datentransferqualität, aber
immer noch begleitet von Fehlern in den Nachrichten.
-
Ein
weiteres Verfahren, welches in dem Bestreben implementiert wurde,
sicherzustellen, dass eine Nachricht zu ihrem Ziel fehlerfrei übermittelt
wurde, ist das zweifache Senden der Nachricht. Tatsächlich sind
manche Funkrufumgebungen so fehleranfällig, dass als eine Standardbetriebstechnik
jede Nachricht zweimal auf dem Funkrufsystem versendet wurde. Herkömmliche
Funkrufempfänger
haben die Möglichkeit,
die Tatsache zu verstecken, dass eine Nachricht zweimal gesendet
wurde, solange der Text der zwei Nachrichten exakt derselbe ist.
Wenn beide Instanzen der Nachricht fehlerfrei empfangen wurden,
wird deshalb eine Instanz der Nachricht einfach verworfen oder versteckt,
und der Benutzer sieht nur eine fehlerfreie Instanz der Nachricht.
Wenn jedoch eine oder beide der Instanzen Fehler haben, werden beide
dem Benutzer angezeigt, um dem Benutzer zu erlauben, in seiner oder
ihrer Vorstellung Teile von beiden Instanzen der Nachricht zusammenzufügen, um
den Inhalt der korrekten, fehlerfreien Nachricht zu ermitteln.
-
Dies
kann auch ein höchst
unerwünschtes Verfahren
sein. Solch ein Verfahren ist unbequem und mühsam, indem es mehr Arbeit
auf Seiten des Benutzers erfordert, um den korrekten Inhalt der Nachricht
zu ermitteln. Des Weiteren sind manche Nachrichten nicht notwendigerweise
vom durchschnittlichen Benutzer lesbar und erfordern eine gewisse
Menge von Datenbearbeitung, bevor die Daten dem Benutzer angezeigt
werden. In dem Fall, einfach zwei Instanzen derselben Nachricht
zu senden, wobei beide Instanzen Fehler enthalten, beseitigt nicht das
Zuverlässigkeitsproblem
des Einweg-Funkrufs.
-
Die
US-A-4 759 022 offenbart ein Verfahren und einen Empfänger zum
Empfangen von Nachrichten, die über
Funk in Form von codierten Zeichen gesendet wurden. In diesem Zusammenhang
nennt US-A-4 759 022 das Organisieren der Nachrichten in Blöcken und
Codieren wie zitiert in dem POCSAG-Bericht. Zusätzlich beschreibt dieses Dokument,
dass es Kontrollbits in jedem Bit gibt, wobei es mit acht von diesen
möglich
ist, zu ermitteln, ob der empfangene oder temporär gespeicherte Block fehlerfrei
ist oder fehlerbehaftet. Wenn die Nachricht zum zweiten Mal empfangen
wird, wird noch einmal für
jeden der Blöcke
ermittelt, ob er fehlerfrei oder fehlerbehaftet ist. Eine endgültige Version
der Nachricht wird zusammengesetzt aus einem Block von jedem Blockpaar,
welcher fehlerfrei ist. Wenn keiner der Blöcke in einem Paar fehlerfrei
ist, wird dies für den
Block ausgeführt,
der am wenigsten Fehler enthält.
Des Weiteren können
zusätzliche
Kontrollbits alternativ verwendet werden zum Korrigieren von Fehlern
in den empfangenen Blöcken.
In dem Fall, wo die Nachricht schon das erste Mal als sie gesendet
wurde als fehlerfrei festgestellt ist, wird sie sofort als die endgültige Version
der Nachricht benannt und wird gespeichert. Ein Signal wird als
Zeichen gesendet, dass eine neue Nachricht zum Lesen zur Verfügung steht.
-
Die
US-A-5 463 646 bezieht sich auf ein Verfahren für eine Fehlerkorrektur eines übermittelten Datenworts
und speziell zur Fehlerkorrektur von unterakustischen Datenwörtern, die über einen
Sprachkanal übermittelt
worden sind. In Übereinstimmung mit
dem beschriebenen Verfahren werden Datenwörter bis zu dreimal übermittelt,
solange keine Empfangsbestätigung
von dem Übermittler
empfangen worden ist. Wenn irgendeine von den drei möglichen Wiederholungen
der empfangenen Datenwörter
decodierbar sind, wird eine Eingangsbestätigung übermittelt. Wenn keins der
Datenwörter
decodiert werden konnte, weil sie z. B. nicht-korrigierbare Fehler enthalten,
wird ein bitweiser Mehrheitsbeschluss auf den Datenwörtern durchgeführt.
-
Die
US-A-S 721 743 beschreibt ein Verfahren und System zum Kommunizieren
von Nachrichten in einer Umgebung, welche Fading beansprucht. In Übereinstimmung
mit dem beschriebenen Verfahren und System werden zu übermittelnde
Daten codiert und formatiert und eine Prüfsumme wird für die codierten
und formatierten Daten ermittelt. In einer Variante des beschriebenen
Verfahrens und Systems wird jede Nachricht mindestens zweimal übermittelt und
eine endgültige
Version der Nachricht wird Codeword für Codeword zusammengesetzt
durch Vergleichen der entsprechenden Codewords in der entsprechenden Übermittlung
und Auswählen
der besseren Version. Wenn die endgültige Version zusammengesetzt
ist, wird die Prüfsumme
berechnet und verglichen, um das Ende der Nachricht zu ermitteln.
-
Es
ist deshalb die Aufgabe der vorliegenden Erfindung, ein verbessertes
Verfahren und Gerät zum
Empfangen einer Nachricht über
eine kabellose Verbindung vorzulegen, welche des Weiteren die Identifikation
von fehlerhaften Teilen von erster und zweiter Instanz einer empfangenen
Nachricht verbessern.
-
Diese
Aufgabe wird durch ein Verfahren entsprechend des unabhängigen Anspruchs
1 und auch durch ein Gerät
entsprechend dem unabhängigen Anspruch
9 gelöst.
-
Erste
und zweite Instanzen einer Nachricht werden über eine kabellose Verbindung
empfangen. Es wird ermittelt, ob die erste und zweite Instanz der Nachricht
einen Fehler enthält.
Wenn beide Instanzen einen Fehler enthalten, wird eine fehlerfreie
Instanz der Nachricht von den zwei fehlerbehafteten Instanzen durch
das Vereinen von Teilen der ersten und zweiten Instanzen rekonstruiert.
-
1 ist
ein vereinfachtes Blockdiagramm, das eine Ausführungsform eines mobilen Gerätes in einem
System entsprechend einem Aspekt der vorliegenden Erfindung veranschaulicht.
-
2 ist
ein detaillierteres Blockdiagramm einer Ausführungsform eines mobilen Gerätes wie
in 1 gezeigt.
-
3 ist
eine vereinfachte bildhafte Darstellung einer Ausführungsform
eines mobilen Gerätes wie
in 2 gezeigt.
-
4 ist
eine vereinfachte bildhafte Darstellung einer anderen Ausführungsform
eines mobilen Gerätes
wie in 2 gezeigt.
-
5 ist
ein Blockdiagramm einer Ausführungsform
eines Desktop Computers entsprechend eines Aspekts der vorliegenden
Erfindung.
-
6 ist
ein detaillierteres Blockdiagramm eines Übertragungssystems, das ein
mobiles Gerät entsprechend
einem Aspekt der vorliegenden Erfindung einschließt.
-
7 ist
ein Datenstrukturdiagramm, das eine Nachricht darstellt, die mit
einem Protokoll entsprechend einem Aspekt der vorliegenden Erfindung gepackt
ist.
-
8 ist
ein Ablaufdiagramm, das die Funktion eines mobilen Gerätes zum
Ermitteln, ob Instanzen einer Nachricht vereint werden sollen, entsprechend
einer Ausführungsform
der vorliegenden Erfindung, darstellt.
-
9 ist
ein Ablaufdiagramm, das die Funktion eines mobilen Gerätes zum
Vereinen von Instanzen einer Nachricht entsprechend einer Ausführungsform
der vorliegenden Erfindung darstellt.
-
10A bis 10G sind
Repräsentationen
von Instanzen von Nachrichten, welche entsprechend dem Ablaufdiagramm,
dargestellt in 9, vereint wurden.
-
11 ist
ein Ablaufdiagramm, das die Funktion eines mobilen Gerätes zum
Vereinen von Instanzen entsprechend einer anderen Ausführungsform
der vorliegenden Erfindung darstellt.
-
1 stellt
ein System 10 dar, in welchem die vorliegende Erfindung
implementiert werden kann. System 10 schließt Inhaltsanbieter 12,
kabellosen Träger 14,
Desktop Computer 16 und mobiles Gerät 18 ein. Inhaltsanbieter 12 bietet
irgendeinen passenden Typ von Daten von einer Datenbank oder anderen
Datenquelle an. Zum Beispiel wird der Inhaltsanbieter 12 nachstehend
besprochen als ein Anbieter von kabellosen Diensten o der anderen
Typen von Diensten behandelt, welche von einem Benutzer des mobilen
Gerätes 18 gewünscht werden.
Beispiele solcher Dienste schließen Nachrichten, Wetter und Sportdienste,
Aktienkursdienste, Verkehrsnachrichtendienste, etc. ein.
-
Kabelloser
Träger 14 wird
in größerem Detail später in der
Anmeldung beschrieben. Jedoch kurz gesagt, ist der kabellose Träger 14 eingerichtet
zum Empfangen von Dienstinhalt und Codierungsnachrichten (nachstehend
Inhalt) vom Inhaltsanbieter 12 über eine Einwahl oder direkte
Internetverbindung, oder eine Netzwerkverbindung. Der Weg, über welchen
der kabellose Träger 14 Informationen
vom Inhaltsanbieter 12 erhält, kann geschützte oder
nichtgeschützte
Mittel beinhalten. Zum Beispiel, in einer illustrativen Ausführungsform,
abonniert der kabellose Träger 14 active
Channels auf der Webseite eines Inhaltsanbieters unter Verwendung
des INTERNET EXPLORER Markenprodukts, welches von Microsoft Corporation
erhältlich
ist. Die INTERNET EXPLORER Markenkomponente zieht Daten von der
Webseite und speichert sie in einem Cache zur späteren Übertragung zum mobilen Gerät 18.
-
Kabelloser
Träger 14 beinhaltet
auch einen kabellosen Informationsserver (wireless Information server,
WIS) 20. Server 20 teilt den Inhalt, welcher von
Inhaltsanbieter 12 empfangen wurde, in Teile, welche kompatibel
sind mit dem bestimmten Transporttyp, welcher vom kabellosen Träger 14 verwendet
wird. Beispielsweise kann der Server 20 die Daten so teilen,
dass maximale Paketgrößenbedingungen,
Zeichensatzanforderungen, etc. für
den verwendeten Kanaltyp oder Transporttyp erfüllt sind. Vor der Übertragung
werden die Daten möglichst
in eine unterschiedliche Form übersetzt.
Wie später
in der Anmeldung detaillierter beschrieben, können solche Umwandlungen verschiedene
Formen von Verschlüsselung
einschließen
und können
auch Kompression, Codierung, etc. einschließen. Sobald die Daten entsprechend
geteilt worden sind, so dass sie die Transportbedingungen erfüllen, werden
die Daten für
die Übermittlung
durch die Luft über
ein kabelloses Netzwerk (wie z. B. über einen Funkrufkanal) konfiguriert,
um direkt auf dem mobilen Gerät 18 empfangen
zu werden. Die übertragenen
Daten werden von einem kabellosen Empfänger und Treiberkomponente 22 auf
dem mobilen Gerät 18 empfangen,
wo die Daten für
die Verwendung durch das mobile Gerät 18 präpariert
werden.
-
Das
mobile Gerät 18 kann
auch ein Modem 24 einschließen. Daher kann der Diensteinhalt
anstatt durch den kabellosen Träger 14 übermittelt
zu werden, direkt vom Inhaltsanbieter 12 durch eine direkte
Einwahl-Modemverbindung zum mobilen Gerät übertragen werden.
-
Desktop
Computer 16 wird auch später in der Patentschrift detaillierter
beschrieben. Jedoch, kurz gesagt, ist der Desktop Computer 16 vorzugsweise mit
einem Standard-Webbrowser
ausgestattet, wie z. B. der INTERNET EXPLORER 4.0 Markenkomponente,
käuflich
erhältlich
von Microsoft Corporation aus Redmond, Washington. Wenn dies der
Fall ist, können
die Benutzer des Desktop Computers 16 vorzugsweise Channel
in einer normalen Weise abbonieren, welche dem Benutzer bestimmten
Channel-Inhalt zur Verfügung
stellt, welcher offline oder online durchsucht werden kann. Desktop
Computer 16 kann deshalb wiederholend neuen Inhalt zur
weiteren Übermittlung
an das mobile Gerät 18 abrufen oder
empfangen.
-
Desktop
Computer 16 schließt
auch illustrativ die Synchronisierungskomponente 26 ein.
Kurz gesagt ist die Synchronisierungskomponente 26 konfiguriert
zum Interagieren mit einer optionalen, ähnlichen Synchronisierungskomponente 28 auf
dem mobilen Gerät 18,
so dass Dateien, welche Gegenstand einer Synchronisierung sind,
vom Desktop Computer 16 zum mobilen Gerät 18 synchronisiert
werden können
oder umgekehrt. Sobald sie synchronisiert sind, enthalten beide
Dateien (auf Computer 16 und mobilem Gerät 18)
aktuelle Informationen.
-
Im
Speziellen kann das mobile Gerät 18,
in der bevorzugten Ausführungsform,
entweder mit dem Desktop Computer 16 oder einem anderen
mobilen Gerät 18,
oder beidem, synchronisiert werden. In diesem Beispiel sind Eigenschaften
von Objekten, die in einem Objektspeicher auf dem mobilen Gerät 18 gespeichert
sind, ähnlich
zu den Eigenschaften von anderen Instanzen desselben Objekts, das
in einem Objektspeicher auf dem Desktop Computer 16 oder
einem anderen mobilen Gerät 18 gespeichert sind.
Deshalb wird, wenn ein Benutzer eine Instanz des Objektes gespeichert
in dem Objektspeicher auf dem Desktop Computer 16 verändert, die
zweite Instanz von diesem Objekt in dem Objektspeicher des mobilen
Gerätes 18 aktualisiert,
wenn das mobile Gerät
das nächste
Mal mit dem Desktop Computer 16 verbunden ist, so dass
beide Instanzen von demselben Objekt aktuelle Daten enthalten. Dies
wird als Synchronisierung bezeichnet.
-
Um
Synchronisierung durchzuführen,
laufen die Synchronisierungskomponenten 26 und 28 auf beiden,
mobilem Gerät 18 und
Desktop Computer 16 (oder einem anderen mobilen Gerät 18).
Die Synchronisierungskomponenten kommunizieren miteinander durch
genau definierte Schnittstellen, um Kommunikation und Synchronisierung
zu steuern.
-
In
einer illustrativen Ausführungsform
kommuniziert das mobile Gerät 18 mit
dem Desktop Computer 16 über ein physisches Kabel, wobei
unter Verwendung eines seriellen Kommunikationsprotokolls kommuniziert
wird. Andere Kommunikationsmechanismen werden auch durch die vorliegende
Erfindung in Erwägung
gezogen, so wie z. B. Infrarot (IR)-Kommunikation oder andere geeignete
Kommunikationsmechanismen.
-
2 ist
ein detaillierteres Blockdiagramm des mobilen Gerätes 18.
Das mobile Gerät 18 schließt illustrativ
einen Mikroprozessor 30, Speicher 32, Input/Output
(I/O)-Komponenten 34,
Desktop-Kommunikationsschnittstelle 36, kabelloser Empfänger 37 und
Antenne 39 ein. Diese Komponenten des mobilen Gerätes 18 können zur
Kommunikation miteinander über
einen geeigneten Bus 38 gekoppelt werden.
-
Der
Speicher 32 ist vorzugsweise als permanenter elektronischer
Speicher implementiert, so wie z. B. Random Access Memory (RAM)
mit einem batteriebetriebenen Backup-Modul (nicht gezeigt), so dass
Informationen, die in Speicher 32 gespeichert sind, nicht
verloren gehen, wenn die allgemeine Energieversorgung des mobilen
Gerätes 18 ausgeschaltet
wird. Ein Teil des Speichers 32 ist illustrativ als adressierbarer
Speicher zur Programmausführung
reserviert, während
ein anderer Teil des Speichers 32 optional zur Speicherung
verwendet wird, wie z. B. zur Simulierung eines Speichers auf einem Disk-Laufwerk.
-
Speicher 32 kann
ein Betriebssystem 40, ein Ausführungsprogramm 42 (wie
z. B. eine persönliche Informationsverwaltung
oder PIM, ein elektronisches Mailprogramm, etc.) einschließen, sowie
einen Objektspeicher 44. Während des Betriebs wird das
Betriebssystem 40 illustrativ durch den Prozessor 30 vom
Speicher 32 ausgeführt.
Das Betriebssystem 40 ist in einer Ausführungsform ein WINDOWS CE Markenbetriebssystem,
käuf lich
erwerbbar von Microsoft Corporation. Das Betriebssystem 40 wurde
für mobile
Geräte
entwickelt und implementiert Datenbankeigenschaften, welche vom
PIM 42 durch eine Reihe von exponierten Anwendungsprogrammschnittstellen
und Verfahren benutzt wird. Die Objekte im Objektspeicher 44 werden
illustrativ durch PIM 42 und Betriebssystem 40 gepflegt,
zumindest teilweise in Erwiderung zu Aufrufen der exponierten Anwendungsprogrammschnittstellen
und Verfahren.
-
I/O-Komponenten 34 werden
in einer Ausführungsform
zur Verfügung
gestellt, um Eingabe- und Ausgabefunktionen von einem Benutzer des
mobilen Gerätes 18 zu
ermöglichen.
I/O-Komponenten 34 werden detaillierter in Bezug auf 3 und 4 beschrieben.
Desktop-Kommunikationsschnittstelle 36 wird optional zur
Verfügung
gestellt als irgendeine passende Kommunikationsschnittstelle. Schnittstelle 36 wird
illustrativ zum Kommunizieren mit dem Desktop Computer 16,
Inhaltsanbieter 12, und kabellosem Träger 14 verwendet,
wie mit Bezug auf 1 beschrieben. Deshalb kann
die Kommunikationsschnittstelle 36 Synchronisierungskomponente 28 zum Kommunizieren
mit dem Desktop Computer 16 einschließen und Modem 24 zum
Kommunizieren mit dem Inhaltsanbieter 12. Der kabellose
Empfänger und
Treiber 22 werden zum Kommunizieren mit dem kabellosen
Träger 14 verwendet.
-
3 ist
eine vereinfachte bildhafte Darstellung einer bevorzugten Ausführungsform
eines mobilen Gerätes 18,
welches gemäß der vorliegenden
Erfindung verwendet werden kann. Das mobile Gerät 18, wie in 3 dargestellt,
kann ein Desktop-Assistent sein, der unter der Bezeichnung H/PC
verkauft wird, und Software hat, die von Microsoft Corporation zur
Verfügung
gestellt wird. In einer Ausführungsform schließt das mobile
Gerät 18 eine
minimierte Tastatur 43, Display 45 und Stift 46 ein.
In der in 3 gezeigten Ausführungsform
ist das Display 45 ein Liquid Crystal Display (LCD), welches
einen kontaktsensitiven Bildschirm in Verbindung mit dem Stift 46 verwendet.
Der Stift 46 wird verwendet, um auf das Display 45 an
bestimmten Koordinaten zu drücken
oder zu berühren,
um bestimmte Benutzereingabefunktionen zu ermöglichen. Die minimierte Tastatur 43 ist
illustrativ als eine minimierte alphanumerische Tastatur implementiert,
mit irgendwelchen passenden und gewünschten Funktionstasten, welche
auch zur Ermöglichung
bestimmter Benutzereingabefunktionen zur Verfügung gestellt werden.
-
4 ist
eine andere vereinfachte bildhafte Darstellung des mobilen Gerätes 18 gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung. Das mobile Gerät 18, wie in 4 dargestellt, schließt manche
Elemente, welche ähnlich
zu denen sind, die mit Bezug auf 3 beschrieben
wurden, und die gleichermaßen
nummeriert wurden. Zum Beispiel schließt das mobile Gerät 18,
wie in 4 gezeigt, auch einen berührungsempfindlichen Bildschirm 45 ein,
welcher in Verbindung mit Stift 46 verwendet werden kann,
um bestimmte Benutzer-Eingabefunktionen durchzuführen. Wenn das mobile Gerät 18 als
ein Pager implementiert ist, ist der Bildschirm 45 nicht
berührungsempfindlich
und Stift 46 ist nicht notwendig.
-
Es
sollte beachtet werden, dass das Display 45 für das mobile
Gerät,
wie gezeigt in den 3 und 4, dieselbe
Größe oder
verschiedene Größen untereinander
haben kann, aber es wäre üblicherweise
viel kleiner als ein konventionelles Display, was mit einem Desktop
Computer verwendet wird. Zum Beispiel kann das Display 45,
gezeigt in den 3 und 4, durch
eine Matrix definiert sein mit nur 240 × 320 Koordinaten oder 160 × 160 Koordinaten, oder
jede andere geeignete Größe. Wenn
das mobile Gerät 18 ein
Pager ist, kann das Display 45 noch kleiner sein.
-
Das
mobile Gerät 18,
gezeigt in 4, schließt auch eine Anzahl von Benutzereingabetasten
oder -knöpfen
(so wie z. B. Scroll-Rad 47) ein, welche es dem Benutzer
erlauben, durch Menüoptionen
oder andere Display-Optionen zu blättern, welche auf dem Display 45 angezeigt
werden, oder welche es dem Benutzer erlauben, Anwendungen zu wechseln
oder Benutzereingabefunktionen auszuwählen, ohne das Display 45 zu
berühren.
Zusätzlich schließt das mobile
Gerät 18,
gezeigt in 4, veranschaulichend auch einen
Ein- und Ausschalter 49, welcher verwendet werden kann,
um die Stromversorgung des mobilen Gerätes 18 an- und auszuschalten.
-
Es
sollte auch beachtet werden, dass das mobile Gerät 18 in der in 4 dargestellten
Ausführungsform
ein Gebiet für
Handschriften 51 einschließt. Das Gebiet für Handschriften 51 kann
in Verbindung mit dem Stift 46 verwendet werden, so dass
der Benutzer Nachrichten schreiben kann, welche in Speicher 46 für eine spätere Verwendung durch
das mobile Gerät 18 gespeichert
werden. In einer erläuternden
Ausführungsform
werden die handgeschriebenen Nachrichten einfach in handgeschriebener
Form gespeichert und können
durch den Benutzer wieder aufgerufen werden und auf dem Display 45 angezeigt
werden, so dass der Benutzer die handgeschriebenen Nachrichten,
die in das mobile Gerät 18 eingegeben
wurden, nochmals durchsehen kann. In einer anderen Ausführungsform
ist das mobile Gerät 18 mit
einem Zeichenerkennungsmodul ausgestattet, so dass der Benutzer
alphanumerische Informationen in das mobile Gerät 18 durch das Schreiben
dieser alphanumerischen Information auf dem Gebiet 51 mit
dem Stift 46 eingeben kann. In diesem Beispiel erkennt
ein Zeichenerkennungsmodul in dem mobilen Gerät 18 die alphanumerischen Zeichen
und konvertiert die Zeichen in Computer-erkennbare alphanumerische
Zeichen, welche durch die Anwendungsprogramme 42 in dem
mobilen Gerät 18 verwendet
werden können.
-
Wo
das mobile Gerät 18 als
ein Pager implementiert ist, werden natürlich Stift 46 und
das Gebiet für
Handschriften 51 nicht benötigt. Anstatt dessen kann das
mobile Gerät 18 einfach
mit einem Bildschirm 45, Benutzereingabeknöpfen 47,
Ein- und Ausschalter 49 und einem kompakten Gehäuse ausgestattet
sein.
-
5 und
die zugehörige
Erörterung
beabsichtigen eine kure, allgemeine Beschreibung eines geeigneten
Desktop Computers 16 zu geben, in dem Teile der Erfindung
implementiert werden können. Obwohl
es nicht notwendig ist, wird die Erfindung zumindest in Teilen im
allgemeinen Kontext von Computer-ausführbaren Instruktionen beschrieben,
sowie z. B. Programmmodulen, welche durch einen Personalcomputer 16 oder
mobiles Gerät 18 ausgeführt werden.
Im Allgemeinen schließen
Programmmodule Routinen, Objekte, Komponenten, Datenstrukturen, etc.
ein, die bestimmte Aufgaben durchführen oder bestimmte abstrakte
Datentypen implementieren. Des Weiteren werden Fachleute es begrüßen, dass der
Desktop Computer 16 durch andere Computersystemkonfigurationen
implementiert sein kann, einschließlich Multiprozessorsystemen,
Mikroprozessor-basierter oder programmierbarer Unterhaltungselektronik,
Netzwerk-PCs, Minicomputern,
Großrechnern
und Ähnlichen.
Die Erfindung kann auch in verteilten Computerumgebungen ausgeführt werden, wo
Funktionen durch dezentrale, verarbeitende Geräte durchgeführt werden, die durch ein Kommunikationsnetzwerk
verbunden sind. In einer verteilten Computerumgebung können Programmmodule
in beiden, lokalen oder dezentralen Speichergeräten, lokalisiert sein.
-
Mit
Bezug auf 5 schließt ein beispielhaftes System
zur Implementierung des Desktop Computers 16 einen Allzweckcomputer
in der Form eines konventionellen Personal computers 16 ein,
einschließlich
Prozessoreinheit 48, einem Systemspeicher 50 und
einem Systembus 52, der verschiedene Systemkomponenten
koppelt, einschließlich
dem Systemspeicher 50 mit der Prozessoreinheit 48.
Der Systembus 52 kann irgendeiner von verschiedenen Busstrukturtypen
sein, einschließlich
einem Speicherbus oder Speichercontroller, einem Peripheriebus und
einem lokalen Bus, unter Verwendung irgendeiner von einer Vielzahl
von Busarchitekturen. Der Systemspeicher 50 schließt Read
Only Memory (ROM) 54 und Random Access Memory (RAM) 55 ein.
Ein Basic Input/Output-System (BIOS) 56, welches die elementaren
Routinen beinhaltet, die helfen Informationen zwischen Elementen
innerhalb des Desktop Computers 16 zu transferieren, wie
z. B. während
des Starts, ist in ROM 54 gespeichert. Der Desktop Computer 16 schließt des Weiteren
ein Festplattenlaufwerk 57 zum Lesen von und Schreiben
zu einer Festplatte (nicht gezeigt), einem magnetischen Disk-Laufwerk 58 zum
Lesen von oder Schreiben zu entfernbaren magnetischen Disks 59 und
einem optischen Disk-Laufwerk 60 zum Lesen von und Schreiben
zu einer entfernbaren optischen Disk 61, wie z. B. einer
CD-ROM oder anderem optischen Medium, ein. Das Festplattenlaufwerk 57,
magnetische Disk-Laufwerk 58 und optische Disk-Laufwerk 60 sind
mit dem Systembus 52 durch eine Festplattenlaufwerksschnittstelle 62,
magnetischer Disk-Laufwerkschnittstelle 63 bzw. einer optischen Laufwerksschnittstelle 64 verbunden.
Die Laufwerke und die zugehörigen
computerlesbaren Medien stellen permanenten Speicher für computerlesbare
Instruktionen, Datenstrukturen, Programmmodule und andere Daten
für den
Desktop Computer 16 zur Verfügung.
-
Obwohl
die hierin beschriebene beispielhafte Umgebung eine Festplatte,
eine entfernbare magnetische Disk 59 und eine entfernbare
optische Disk 61 einsetzt, sollte es von Fachleuten begrüßt werden, dass
andere Arten von computerlesbaren Medien, welche Daten speichern
können,
auf die mit einem Computer zugegriffen werden können, so wie z. B. magnetische
Kassetten, Flash-Speicherkarten, Digital Video Disks (DVDs), Bernoulli
Kartuschen, Random Access Memories (RAMs), Read Only Memory (ROM)
und Ähnliches,
ebenfalls in der beispielhaften Arbeitsumgebung verwendet werden
können.
-
Eine
Anzahl von Programmmodulen kann auf der Festplatte, magnetischen
Disk 59, optischen Disk 61, ROM 54 oder
RAM 55 gespeichert werden, einschließlich einem Betriebssystem 65,
einem oder mehreren Anwendungsprogrammen 66 (welches PIMs
ein schließen
kann), andere Programmmodule 67 (welche Synchronisierungskomponenten 26 einschließen können) und
Programmdaten 68. Ein Benutzer kann Befehle und Informationen
in den Desktop Computer 16 durch Eingabegeräte, wie
z. B. einer Tastatur 70, einem Zeigegerät 72 und Mikrofon 74,
eingeben. Andere Eingabegeräte
(nicht gezeigt) können
einen Joystick, ein Gamepad, Satellitenschüssel, Scanner oder Ähnliches
einschließen.
Diese und andere Eingabegeräte
sind meist mit der Prozessoreinheit 48 durch eine serielle
Anschlussschnittstelle 76 verbunden, welche an den Systembus 52 gekoppelt
ist, können
aber durch andere Schnittstellen verbunden sein, wie z. B. einer
Soundkarte, einem Parallelanschluss, Spieleanschluss oder Universal
Serial Bus (USB). Ein Monitor 77 oder anderer Typ von Anzeigegerät ist auch
mit dem Systembus 52 über
eine Schnittstelle verbunden, wie z. B. einer Grafikkarte 78.
Zusätzlich
zu dem Monitor 77 können
Desktop Computer typischerweise andere Peripherie-Ausgabegeräte einschließen, wie
z. B. Lautsprecher 75 und Drucker.
-
Der
Desktop Computer 16 kann in einer Netzwerkumgebung arbeiten,
die logische Verbindungen zu einem oder mehreren dezentralen Computern
(andere als das mobile Gerät 18)
verwendet, wie z. B. einen dezentralen Computer 79. Der
dezentrale Computer 79 kann ein anderer Personalcomputer,
ein Server, ein Router, ein Netzwerk-PC, ein Peer-Gerät oder anderer
Netzwerkknoten sein, und schließt üblicherweise
viele oder alle der oben in Bezug auf den Desktop Computer 16 beschriebenen Elemente
ein, obwohl nur ein Speichergerät 18 in 4 dargestellt
wurde. Die logischen Verbindungen, beschrieben in 4,
schließen
ein Local Area Network (LAN) 81 und ein Wide Area Network
(WAN) 82 ein. Solche Netzwerkumgebungen sind Standard in
Büros,
firmenweiten Computernetzwerken, Intranets und dem Internet.
-
Wenn
er in einer LAN-Netzwerkumgebung verwendet wird, ist der Desktop
Computer 16 mit dem Local Area Network 81 durch
eine Netzwerkschnittstelle oder Adapter 83 verbunden. Wenn
er in einer WAN-Netzwerkumgebung verwendet wird, schließt der Desktop
Computer 16 üblicherweise
ein Modem 84 oder andere Mittel zum Herstellen von Verbindungen über das
Wide Area Network 82, wie z. B. das Internet ein. Das Modem 84,
welches intern oder extern sein kann, ist mit dem Systembus 52 über eine
serielle Anschlussschnittstelle 76 verbunden. In einer
Netzwerkumgebung können
Programmmodule, die relativ zum Desktop Computer 16 dargestellt
werden, oder Teile davon, einschließlich der Synchronisierungskomponente 26,
in lokalen oder dezentralen Speicher geräten gespeichert werden. Es
wird begrüßt, dass
die gezeigten Netzwerkverbindungen exemplarisch sind und andere
Mittel zum Herstellen einer Kommunikationsverbindung zwischen den
Computern verwendet werden können.
-
Der
Desktop Computer 16 führt
ein Betriebssystem 65 aus, das üblicherweise in einem permanenten
Speicher 54 gespeichert ist und auf dem Prozessor 48 läuft. Ein
geeignetes Betriebssystem ist ein Windows-Markenbetriebssystem,
das durch Microsoft Corporation verkauft wird, wie z. B. WINDOWS 95 oder
WINDOWS NT-Betriebssysteme, andere abgeleitete Versionen von Windows-Markenbetriebssystemen
oder ein anderes geeignetes Betriebssystem. Andere geeignete Betriebssysteme
schließen Systeme
ein, wie z. B. Macintosh OS, verkauft von Apple Corporation, und
das OS/2 Presentation Manager, das von International Business Machines (IBM)
aus Armonk, New York, verkauft wird. Anwendungsprogramme werden
bevorzugt in Programmmodulen 67 gespeichert, in flüchtigen
oder permanenten Speicher oder können
in irgendeine der in 5 gezeigten Komponenten von
einer Floppy Disk 59, CD-ROM-Laufwerk 61 geladen
werden, von einem Netzwerk über
Netzwerkadapter 83 heruntergeladen werden oder unter Verwendung
anderer geeigneter Mechanismen geladen werden.
-
Eine
Dynamically Linked Library (DLL), die eine Vielzahl von ausführbaren
Funktionen einschließt,
wird mit PIMs in dem Speicher zur Ausführung durch Prozessor 48 assoziiert.
Zwischenprozessor- und Zwischenkomponenten-Aufrufe werden unter
Verwendung des Component Object Model (COM) bewerkstelligt, wie
es üblich
ist, in Programmen geschrieben für
Microsoft Windows-Markenbetriebssysteme. Kurz gesagt, wenn COM verwendet wird,
hat eine Softwarekomponente, wie z. B. eine DLL, eine Anzahl von
Schnittstellen. Jede Schnittstelle legt eine Vielzahl von Methoden
dar, welche individuell aufgerufen werden können, um verschiedene Dienste
anzuwenden, die von der Softwarekomponente angeboten werden. Zusätzlich sind
die Schnittstellen ausgestattet, so dass Methoden oder Funktionen
von anderen Softwarekomponenten aufgerufen werden können, welche
optional ein oder mehrere Parameterargumente empfangen und zurückgeben.
-
Im
Allgemeinen ist die DLL, die mit der bestimmten PIM oder anderem
Programm assoziiert ist, speziell aufgebaut, um in Verbindung mit
dem PIM zu arbeiten und um Desktop-Synchronisationsschnittstellen
darzulegen. Die DLL wiederum ruft Schnittstellen auf, die durch
den PIM dargelegt werden, um auf Daten zuzugreifen, die individuelle
Eigenschaften der Objekte darstellen, die in einem Objektspeicher vorgehalten
werden. Der Objektspeicher kann sich selbstverständlich in irgendeinem der Speicherkomponenten
befinden, die mit Bezug auf 4 beschrieben
wurden.
-
6 ist
ein detailliertes Blockdiagramm von bestimmten Komponenten des in 1 gezeigten Systems. 6 zeigt
Inhaltsanbieter 12 und zeigt auch den kabellosen Träger 14 und
das mobile Gerät 18 mit
mehr Details. 6 zeigt, dass der kabellose Träger 14 einen
Protokollgenerator 200 und kabellosen Sender 202 einschließt. Zusätzlich wird
in 6 gezeigt, dass das mobile Gerät 18 eine Funkhardware 204,
eine Treiberkomponente 206, einen Router 208,
Fehlererkennungs- und -korrekturkomponenten (oder rekonstruierende
Komponenten) 210, andere Umsetzer 212 und Zielkomponente 214 einschließt.
-
Inhaltsanbieter 12 stellt
dem Protokollgenerator 200 in dem kabellosen Träger 14 Inhalt
zur Verfügung.
Protokollgenerator 200 verändert den Inhalt, um ihn in
einer gewünschten
Form anzuordnen, entsprechend dem Übertragungsprotokoll, welches durch
das System implementiert ist. Protokollgenerator 200 setzt
illustrativ den Inhalt für
eine bessere Übermittlung
durch den kabellosen Träger 14 um. Solche
Umsetzungen können
Codieren, Verschlüsselung,
Komprimierung, etc. einschließen.
Der Inhalt wird illustrativ in Protokollpakete zerlegt, welche den kabellosen
Sender zum Übermitteln
zu der Funkhardware 204 in dem mobilen Gerät 18 zur
Verfügung
gestellt werden. Eine illustrative Datenstruktur für übermittelte
Nachrichten wird detaillierter mit Bezug auf 7 weiter
unten beschrieben. In der Ausführungsform,
in 6 dargestellt, ist die Übertragungsverbindung zwischen
dem kabellosen Träger 14 und
dem mobilen Gerät 18 eine
kabellose Übertragungsverbindung,
wie z. B. einem Paging-Kanal.
-
Funkhardware 204 empfängt die
Pakete und führt
auf einer niedrigen Ebene Filterungen durch, um zu ermitteln, ob
die Nachrichten, die durch den kabellosen Träger 14 übermittelt
wurden, für
das spezielle mobile Gerät 18 vorgesehen
sind. In einer illustrativen Ausführungsform kann zusätzlich eine
Filterung auf einer hohen Ebene vorgesehen sein, um die Nachrichten
basierend auf Header- und Protokollinformationen weiter zu filtern,
die zusammen mit den Nachrichten vom kabellosen Träger 14 übermittelt wurden.
Die Funkhardware 204 kann z. B. als ein entfernbares Hardwareelement,
wie z. B. einer Funk-PCMCIA-Karte, implementiert sein.
-
Treiber 206 ist
bevorzugter Weise ausgebildet, um ein geeignetes Protokoll zum Empfangen
von Nachrichten von der Funkhardware 204 und Weitergeben
dieser zu einer Komponente zur Verarbeitung auf einer höheren Ebene
zu implementieren. Der Router 208 ist in einer illustrativen
Ausführungsform üblicherweise
als ein Anwendungsprogramm implementiert, das konfiguriert ist,
um etliche Input/Output (I/O)-Kontrollaufrufe zu verwenden, um verschiedene Funktionsabläufe durchzuführen. Treiber 206 unterstützt und
implementiert die I/O-Kontrollaufrufe entsprechend einer vordefinierten
Syntax und Funktion.
-
Router 208 gibt
die empfangenen Nachrichten zu der Fehlererkennungs- und – korrektionskomponente 210 weiter.
Die Fehlererkennungs- und -korrektionskomponente 210 wird
unterhalb detaillierter beschrieben und ermittelt, ob eine Nachricht
irgendwelche Fehler enthält.
Komponente 210 versucht auch, Fehler zu korrigieren durch
das Vereinen von zwei Instanzen derselben Nachricht, um eine fehlerfreie
Nachricht zu erhalten. Die resultierende Nachricht wird zurück zu dem
Router 208 gegeben, welcher wiederum die Nachricht optional
an andere Umsetzer 212 zur weiteren Verarbeitung gibt.
Umsetzer 212 schließt
veranschaulichend Umsetzer ein, die ergänzend zu jenen aus Protokollgenerator 200 und kabellosem
Träger 14 sind.
Solche Umsetzer können decodierende
Umsetzer, Entschlüsselungsurnsetzer, Dekomprimierungsumsetzer,
etc. sein. Sobald die Nachricht umgesetzt worden ist, gibt der Router 208 die
Nachricht zu ihrem eventuellen Ziel 214 weiter. Das Ziel
kann einfach ein Anzeigemodul oder anderes Anwendungsprogramm, wie
z. B. ein E-Mail-Programm, etc. einschließen.
-
In
allen Funkrufumgebungen gibt es eine bestimmte Wahrscheinlichkeit,
dass ein einzelnes Stück
einer Nachricht einen Fehler enthält. Zum Beispiel ist in manchen
Funkrufumgebungen die Wahrscheinlichkeit, dass irgendein Byte in
einem gegebenen Funkruf fehlerhaft ist, ca. 1 %. Jedoch steigt dies zu
20 bis 30 % für
das nächste
Byte in diesem Funkruf stark an, nachdem das erste Byte fehlerhaft
ist. Jedoch ist die Wahrscheinlichkeit sehr gering, dass dasselbe
Datenstück
in zwei identischen Funkrufen (d. h. in zwei Instanzen von demselben
Funkruf), die direkt aufeinander folgenden gesendet wurden, fehlerhaft
ist. Diese Wahrscheinlichkeit liegt unter normalen Umständen an
der Grenze von 0,01 %. Die Wahrscheinlichkeit wird z. B. größer, wenn
der Empfänger
aus dem Funkrufbereich herausgegangen ist, in einen Tunnel gegangen
ist oder in anderer Weise unerreichbar geworden ist. Die vorliegende
Erfindung nutzt die signifikant kleinere Wahrscheinlichkeit aus,
dass zwei Instanzen von einer Nachricht in denselben Datenblöcken Fehler
enthalten werden.
-
7 zeigt
eine Datenstruktur 220, welche zum Senden von Nachrichten
entsprechend einem Aspekt der vorliegenden Erfindung verwendet.
Das Protokoll, welches mit Bezug auf 7 beschrieben wird,
wird erläuternd
auf eine Nachricht vor dem Network Layer-Protokoll angewandt. In einem Funkrufsystem
bedeutet dies, dass der Layer veranschaulichend zwischen den Anwendungs-
und Netzwerk-Layern eingefügt
wird.
-
Die
Datenstruktur 220 schließt ein oder mehrere Kennzeichnungen 222,
eine Reihenfolgenummer 224, Fehlererkennungs (oder Redundanz)-Information 226 und
Nachrichtenhauptteil oder Nutzdateninformation 228 ein.
Es sollte beachtet werden, dass die Felder 222, 224 und 226 entweder
an den Anfang oder das Ende des Nachrichtenhauptteils 228 platziert
werden können,
zwischen dem Anfang und dem Ende der Nachricht 228 geteilt
werden können,
darüber
verteilt werden können,
zwischen die Nutzdateninformation 228 gemischt oder darin
beinhaltet sein können
oder in irgendeiner anderen geeigneten Weise gestaltet werden können.
-
Nachrichtenhauptteil 228 ist
einfach die Originalnachricht, welche zu dem mobilen Gerät 18 übermittelt
werden soll. Die Fehlerüberprüfungsinformation 226 kann
etliche Formen einnehmen. Zum Beispiel in herkömmlichen Funkrufprotokollen
wird eine solche Information in einer Weise ausgestattet, um zu
ermitteln, ob die bestimmte gesendete Nachricht Fehler hat. In dem
System nach POCSAG ist die Information Redundanzinformation, welche
einfach verwendet wird, um zu ermitteln, ob die Nachricht irgendwelche
Fehler enthält.
In dem FLEX-Funkrufsystem ist die Information 226 ausgestattet
zur Implementierung eines komplexeren Fehlererkennungsalgorithmus.
In diesem System kann die Information 226 nicht nur verwendet
werden, um zu ermitteln, ob ein Fehler vorhanden ist, sondern auch
zu ermitteln, welche Bytes in der Nachricht fehlerhaft sind.
-
Für beide
dieser Systeme und anderer konventioneller Funkrufsysteme kann das
zugrundeliegende Protokoll, welches schon vorhanden ist, verwendet
werden, um zu ermit teln, ob die Nachricht Fehler hat. Gemäß einer
Ausführungsform
der vorliegenden Erfindung in einem System mit POCSAG-Typ wird die
Information 226 ergänzt,
um eine zusätzliche
Prüfsumme,
zyklischen Redundanzcode (cyclic redundancy code, CRC) oder andere
Informationen einzuschließen,
welche verwendet werden können,
sobald die Nachricht gemäß der vorliegenden
Erfindung korrigiert worden ist, um zu ermitteln, dass die korrigierte
Nachricht fehlerfrei ist. In einer erläuternden Ausführungsform
schließt
solche ergänzende
Information 226 eine 7 Bit-Prüfsumme ein, die ausgelegt ist,
um Prüfsummenwerte
in dem Bereich von OX20 bis OX7E zu erzeugen. In einem System mit
FLEX-Typ müssen
solche ergänzenden
Informationen nicht bereitgestellt werden.
-
Die
Nachrichtreihenfolgennummer 224 wird verwendet, um zwei
entsprechende Instanzen einer Nachricht zu identifizieren. Veranschaulichend
ist die Reihenfolgennummer 224 eine groß genuge Zahl, dass, wenn die
Reihenfolge sich überschlägt, die Nachricht,
welche die vorherige Nummer verwendet hat, die Fehlerkorrektionsfunktion
gelöscht
hat. Dies kann erläuternd
eine Reihenfolgennummer sein, die von dem existierenden Funkrufprotokoll
zur Verfügung
gestellt ist, oder eine Nummer, welche zu dem Nachrichten-Overhead hinzugefügt wurde.
Zum Beispiel ist die Nachrichtenreihenfolgennummer 224 eine
Standardeigenschaft des FLEX-Typ-Protokolls. In einem System mit
POCSAG-Typ ist die Reihenfolgennummer zu dem Funkruf-Overhead hinzugefügt, weil
es dort keine Methode auf Protokollebene gibt, die diese Nummer
in solch einem System einschließt. In
einer erläuternden
Ausführungsform
hat die Reihenfolgennummer Werte im Bereich von OX20 bis OX7E, so
dass 94 Reihenfolgennummern verfügbar sind.
Jedoch können
auch weniger Werte verwendet werden. In einer anderen illustrativen
Ausführungsform
werden nur 64 Werte verwendet.
-
Kennzeichnungsinformation 222 ist
vorzugsweise einfach ein Kennzeichner, der den Funkruf als einen
identifiziert, der das Fehlerkorrektionssystem gemäß der vorliegenden
Erfindung verwendet. Dies kann einfach die Form eines freien Bit
in dem Funkrufprotokoll einnehmen oder ein Bit oder Byte in dem hinzugefügten Nachrichten-Overhead.
Die Information indiziert einfach, dass der kabellose Träger 14 zwei
Instanzen derselben Nachricht senden wird. Der Kennzeichner 222 wird
nicht vorausgesetzt. Jedoch erlaubt er es einer Implementierung
der vorliegenden Erfindung, Ressourcen zu sparen. Zum Beispiel Ressourcen,
welche anderweitig verwendet werden könnten, um Korrekturen gemäß der vorliegenden Erfindung
auszuführen,
können
freigesetzt werden, wenn es von vornherein bekannt ist, dass zwei
Instanzen nicht gesendet werden. In einer veranschaulichenden Implementierung,
wenn kein Kennzeichner vorhanden ist, wird angenommen, dass alle
Nachrichten in zwei Instanzen gesendet werden.
-
8 ist
ein Ablaufdiagramm, das den Arbeitsablauf eines mobilen Gerätes 18 darstellt,
sobald es die Nachricht wie mit Bezug auf 7 beschrieben
empfängt.
Das mobile Gerät 18 steuert
zuerst die Nachricht, wie z. B. durch den Router 208, zu der
Fehlererkennungs- und -korrektionskomponente 210. Die Komponente 210 führt Funktionen
durch, die mit Bezug auf 8 behandelt werden, und gibt die
Nachricht zur weiteren Verarbeitung zurück zu Router 210.
Daher wird die zusätzliche
Protokollhülle,
mit Bezug auf 7 beschrieben, von der Nachricht
entfernt, bevor sie zur weiteren Verarbeitung zu dem Anwendungs-Layer
auf dem mobilen Gerät 18 weitergesendet
wird.
-
8 zeigt,
dass, sobald eine neue Nachricht empfangen worden ist, wie durch
Block 230 angedeutet, die Komponente 210 ermittelt,
ob die Kennzeichnungsinformation 222 angibt, dass zwei
Instanzen der Nachricht gesendet werden. Dies ist mit Block 232 angedeutet.
Wenn nicht, gibt die Komponente 210 die Nachricht einfach
zur weiteren Verarbeitung zurück
zu dem Router 208, wie durch Block 234 gezeigt.
-
Wenn
die Nachricht jedoch als Wiederholung gekennzeichnet ist, ermittelt
die Komponente 210, ob dies eine neue Nachricht ist (d.
h., ob dies die erste Instanz oder die zweite Instanz der Nachricht
ist). Dies wird durch Block 236 gezeigt. Wenn dies die erste
Instanz ist, setzt die Komponente 210 einen Timer und wartet
für die
vorgesehene Time out-Dauer, um den zweiten Funkruf zu empfangen.
Die Time out-Dauer, welche in den Timer implementiert ist, kann
von dem bestimmten zu verwendenden Funkrufsystem abhängig sein,
und wird gesetzt, um genügend
Zeit zu gewährleisten,
um einen zweiten Funkruf zu empfangen. In einer beispielhaften Ausführungsform
ist die Time out-Dauer zirka 5 Minuten. Die Komponente 210 löscht auch
alle Vereinigung-Flags. Dies wird durch Block 238 angedeutet.
-
Die
Komponente 210 ermittelt anschließend, ob die erste Instanz
der Nachricht fehlerfrei ist, wie durch Block 240 gezeigt.
Durch Ausführen
dieses Schritts kann die Komponente 210 einfach einen gewöhnlichen
POCSAG oder FLEX-Typ eines Fehlererkennungsalgorithmus implementieren.
Wenn die erste Instanz der Nachricht fehlerfrei ist, wird diese Instanz
der Nachricht von Komponente 210 zur weiteren Verarbeitung
zu dem Router 208 zurück
gereicht. Dies ist durch Schritt 242 angedeutet. Wenn jedoch die
erste Instanz dieser Nachricht einen Fehler enthält, setzt die Komponente 210 ein
Vereinigungs-Flag, das anzeigt, dass die Nachricht, wenn sie eintrifft,
mit einer zweiten Instanz vereint werden muss, und die erste Instanz
wird in einem Nachrichtenpuffer gespeichert. Dies wird durch Block 244 angedeutet.
Wenn die zweite Instanz dieser Nachricht nicht innerhalb der vom
Timer gesetzten Time out-Dauer empfangen wird, gibt die Komponente 210 die
fehlerbehaftete Nachricht einfach zu dem Router 208 zurück und setzt
Fehler-Flags, die angeben, dass die Nachricht fehlerbehaftet ist.
-
Wenn
die zweite Instanz der Nachricht empfangen wird, wird sie durch
die Blöcke 230 und 232 wie
oben angegeben bearbeitet. Bei Block 236 jedoch wird die
Komponente 210 ermitteln, dass dies nicht eine neue Nachricht
ist, weil sie die gleiche Reihenfolgennummer wie die vorherige Instanz
der Nachricht hat. Deshalb setzt die Verarbeitung gemäß Block 246 fort.
Die Komponente 210 stoppt dann den Timer, welcher bei Block 238 gesetzt
wurde, und ermittelt, ob die erste Instanz der Nachricht fehlerfrei war.
Dies wird durch Block 248 angedeutet.
-
Wenn
die erste Instanz der Nachricht fehlerfrei war, lässt Block 210 die
zweite Instanz der Nachricht einfach fallen, weil die erste Nachricht
schon zur weiteren Verarbeitung zurückgegeben wurde. Dies wird
durch Block 250 gezeigt.
-
Wenn
die erste Instanz Fehler enthält,
führt die
Komponente 210 dann einen Fehlererkennungsalgorithmus durch,
um zu ermitteln, ob die zweite Instanz, welche gerade empfangen
worden ist, fehlerfrei ist. Dies wird durch Block 252 angedeutet.
Wenn die zweite Instanz fehlerfrei ist, lässt die Komponente 210 einfach
die erste Instanz der Nachricht aus dem Puffer fallen und gibt die
zweite Instanz der Nachricht zur weiteren Verarbeitung zurück zu dem
Router 208. Dies ist durch Block 254 gezeigt.
-
Wenn
bei Block 252 die Komponente 210 ermittelt, dass
die zweite Instanz auch fehlerhaft ist, dann versucht Block 210 die
zwei Instanzen der Nachricht zu vereinen, um eine fehlerfreie Nachricht zu
erhalten. Dies wird durch Block 256 angezeigt. Die vereinte
Nachricht wird dann zur weiteren Verarbeitung von der Komponente 210 zurück zu dem
Router 208 gegeben. Dies ist durch Block 258 angedeutet. Sobald
die Nachricht zu rückgegeben
worden ist, wird die Information, zugehörig zu der Nachricht, von dem Puffer
fallen gelassen und irgendwelche zu der Nachricht gehörigen Timer
werden auch gestoppt.
-
Die
Ausführungsform,
die in 8 gezeigt wird, verwendet erläuternd Timer, um Ressourcen
in dem mobilen Gerät 18 frei
zu setzen, so dass es auf andere empfangene Funkrufe rechtzeitig
reagieren kann, wenn die zweite Instanz einer gegebenen Nachricht
noch nicht empfangen worden ist.
-
9 und 10A bis 10G zeigen
jedoch eine veranschaulichende Ausführungsform eines Vereinigungsprozesses
gemäß einem
Aspekt der vorliegenden Erfindung. Zuerst empfängt das mobile Gerät 18 zwei
Nachrichten. Die Komponente 210 ermittelt anschließend, dass
die zwei Nachrichten eigentlich zwei Instanzen derselben Nachricht sind.
Komponente 210 vergleicht die Reihenfolgennummern in den
Nachrichtenköpfen,
um dies zu ermitteln. Dies wird durch Blöcke 260 und 262 in 9 angezeigt,
und die Nachrichten werden durch Numerale 264 und 266 in 10A angegeben.
-
Die
Nachrichten werden mit einschließenden Header-Informationen
dargestellt (I1 HEADER bezeichnet die Header-Informationen für Instanz
1 und I2 HEADER bezeichnet die Header-Informationen für Instanz
2). Die Nachrichten 264 und 266 werden auch mit
fünf Datenblöcken in
der Nachricht dargestellt, die als B1–1 bis B5–1 für Instanz 1 und B1–2 bis B5–2 für Instanz
bezeichnet sind. Die Datenblöcke, welche
Sternsymbole enthalten, sind jene Datenblöcke, welche fehlerhaft sind,
obwohl Komponente 210 jetzt noch nicht weiß, dass
diese die Datenblöcke sind,
welche Fehler enthalten.
-
Wenn
die Reigenfolgennummern in den Header-Informationen nicht übereinstimmen
und der Timer abgelaufen ist, dann gibt die Komponente 210 einfach
die erste Instanz als die echte Nachricht zurück und setzt dazugehörige Fehler-Flags.
Dies wird durch Block 268 gezeigt. Wenn jedoch bei Block 262 die
Reihenfolgennummern übereinstimmen,
vergleicht die Komponente 210 anschließend zugehörige Datenblöcke in den
zwei Instanzen, um zu ermitteln, welche Datenblöcke in einer Instanz nicht
mit den entsprechenden Datenblöcken
in einer anderen Instanz übereinstimmen.
In der Ausführungsform, gezeigt
in 10A, sind die Datenblöcke B1, B2, B4 und B5 von Instanz
1 (Nach richt 264) verschieden von Instanz 2 (Nachricht 266).
Das Vergleichen der Datenblöcke
ist durch Block 270 in 8 angedeutet.
-
Die
Komponente 210 ermittelt dann eine Liste von Permutationen,
welche notwendig sind, um alle Kombinationen der Daten zu testen.
Mit anderen Worten ermittelt Komponente 210 die Liste von
Permutationen, welche durch Austauschen von nicht übereinstimmenden
Datenblöcken
von der zweiten Instanz der Nachricht 266 in entsprechende
Datenblockpositionen in der ersten Instanz der Nachricht 264 gebildet
werden kann. Dies ist durch Block 272 in 8 angedeutet.
Die Komponente 210 geht dann durch die Liste der Permutationen
und führt
den Redundanzalgorithmus mit jeder Permutation aus, bis eine von
den Permutationen als fehlerfrei ermittelt worden ist.
-
In
der Ausführungsform,
die in den 10A bis 10G dargestellt
ist, ist die Permutationsliste grau gekennzeichnet, in der nur ein
Datenblockaustausch von einer Permutation zur nächsten gemacht wird. Natürlich können viele
andere Algorithmen verwendet werden, um die Permutationsliste zu
erzeugen und auch sehr effektiv zu durchsuchen. Die vorliegende
Beschreibung fährt
der Einfachheit halber mit Bezug auf einen grau codierten Typ einer
Listsuche fort.
-
Sobald
die Permutationsliste erzeugt worden ist, setzt die Komponente 210 eine
aktuelle Nachrichtenkombination als die erste Permutation in die
Liste. Dies wird durch Block 274 gezeigt. Die Komponente 210 erzeugt
anschließend
die aktuelle Nachrichtenkombination durch Austauschen eines Datenblocks von
der zweiten Instanz 266 in die erste Instanz 264 und
berechnet eine Prüfsumme über die
kombinierte Nachricht. Dies wird durch Block 276 angedeutet.
In dem dargestellten Beispiel in 10B ersetzt
die Komponente 210 den ersten Datenblock in der ersten Instanz 264 mit
dem ersten Datenblock in der zweiten Instanz 266. Natürlich enthält die erste
Instanz 264 immer noch einen Fehler in dem vierten Datenblock. Deshalb
berechnet die Komponente 210 die Prüfsumme, um zu sehen, ob es
korrekt ist, was nicht der Fall ist. Dies wird durch Block 278 gezeigt.
-
Weil
die Prüfsumme
noch immer nicht korrekt ist, ermittelt die Komponente 210,
ob alle Kombinationen in der Permutationsliste getestet worden sind.
Dies wird durch Block 280 gezeigt. Wenn sie getestet wurden,
gibt die Komponente 210 einfach die erste Instanz 264 als
die echte Nachricht zurück
und setzt zugehörige
Fehler-Flags, wie in Block 268 gezeigt. Wenn jedoch nicht
alle Permutationen getestet worden sind, setzt die Komponente 210 die
aktuelle Nachrichtenkombination auf die nächste Permutation in der Permutationsliste.
Dies wird durch Block 282 in 9 gezeigt.
Die Komponente 210 erzeugt anschließend die nächste Permutation durch Austauschen
anderer Datenblöcke
in Instanz 264 von Instanz 266, und berechnet
die Prüfsumme.
Dies ist wieder durch Block 276 gezeigt und wird in 10C dargestellt.
-
10C zeigt, dass die kombinierte Nachricht nun
den ersten und zweiten Datenblock von der zweiten Instanz 266,
ersetzt in der ersten Instanz 264, einschließt. 10C stellt auch dar, dass der zweite und vierte
Datenblock immer noch fehlerhaft sind, so dass die Prüfsumme nicht
korrekt sein wird.
-
Dieser
Prozess setzt sich in einer grau codierten Version fort, wie in
den 10B bis 10G dargestellt,
bis eine fehlerfreie rekonstruierte Nachricht gefunden ist, oder
bis alle Permutationen getestet worden sind. Zum Beispiel platziert
in 10D die Komponente 210 den ersten Datenblock
von der ersten Instanz 264 in der kombinierten Nachricht
zurück, so
dass nur der zweite Datenblock von der zweiten Instanz 266 ausgetauscht
worden ist. Die kombinierte Nachricht enthält nun drei fehlerbehaftete
Datenblöcke
und die Prüfsumme
wird wieder nicht korrekt sein.
-
In 10E enthält
die kombinierte Nachricht den ersten, dritten und fünften Datenblock
von der ersten Instanz 264, hat aber den zweiten und vierten Datenblock
ausgetauscht von der zweiten Instanz 266. Die kombinierte
Nachricht ist immer noch nicht korrekt.
-
In 10F schließt
die kombinierte Nachricht nur den dritten und vierten Datenblock
von der ersten Instanz 264 ein und enthält den ersten, zweiten und
vierten Datenblock von der zweiten Instanz 266. Die kombinierte
Nachricht ist immer noch nicht korrekt.
-
In 10G enthält
die kombinierte Nachricht den zweiten, dritten und fünften Datenblock
von der ersten Instanz 264 und den ersten und vierten Datenblock
von der zweiten Instanz 266. Daher ist bei Block 278 in 9 die
kombinierte Nachricht korrekt, und die Komponente 210 ermittelt,
dass die Prüfsumme
korrekt ist. Die Komponente 210 gibt anschließend die
kombinierte Nachricht als die echte Nachricht zurück, wie
in Block 284 in 9 dargestellt.
-
11 ist
ein Ablaufdiagramm, das eine Ausführungsform der Funktionsweise
von Komponente 210 darstellt, unter Verwendung eines FLEX-Typ-Funkrufprotokolls.
In Erinnerung, dass in einem solchen Protokoll Fehlererkennungsinformation 266 (7)
nicht nur anzeigt, dass ein Fehler vorhanden ist, sondern auch den
bestimmten Datenblock identifiziert, der fehlerhaft ist. In diesem
Beispiel vergleicht die Komponente 210 den Nachrichten-Header,
um sicherzugehen, dass die Reihenfolgennummern übereinstimmen. Dies wird in
den Blöcken 286 und 288 in 11 angedeutet.
Wenn sie nicht übereinstimmen,
gibt die Komponente 210 einfach die erste Instanz der Nachricht
als die echte Nachricht zurück
und setzt zugehörige
Fehler-Flags. Dies wird durch die Blöcke 290 und 292 angezeigt.
-
Wenn
jedoch die Reihenfolgennummern übereinstimmen,
ermittelt die Komponente 210, dass zwei Instanzen derselben
Nachricht empfangen worden sind. Die Komponente 210 bezieht
dann die Identität
der fehlerhaften Datenblöcke
in der ersten Instanz, welche sie durch Implementieren des FLEX-Typ-Fehlererkennungsalgorithmus
berechnet hat. Es sollte beachtet werden, dass viele Fehlererkennungsalgorithmen
bekannt sind, welche den Ort von fehlerbehafteten Datenblöcken in
einem Datenstrom identifizieren können. Deshalb kann irgendein geeigneter
Erkennungsmechanismus verwendet werden, solange die zugehörige Fehlererkennungsinformation
in der Protokolldatenstruktur eingeschlossen ist, die der Komponente 210 zur
Verfügung gestellt
wird. Das Beziehen der Identität
der fehlerhaften Datenblöcke
wird durch Block 294 in 11 gezeigt.
-
Die
Komponente 210 kann optional auch die Identität fehlerhafter
Datenblöcke
in der zweiten Instanz beziehen. Wenn manche von diesen dieselben sind,
wie jene fehlerhaften in der ersten Instanz, kann eine komplett
fehlerfreie Nachricht nicht zurückgegeben
werden. In diesem Beispiel korrigiert die Komponente 210 einfach
jene Teile der Nachricht, welche durch Rekonstruktion einer Nachricht
mit so vielen fehlerfreien Datenblöcken wie möglich korrigiert werden kann,
und gibt die teilweise korrigierte Nachricht als die echte Nachricht
zurück
und setzt wieder Fehler-Flags. Wenn jedoch angenommen wird, dass
dieselben Datenblöcke,
welche in der ersten Instanz fehlerhaft sind, in der zweiten Instanz
nicht fehlerhaft sind, ersetzt die Komponente 210 die fehlerfreien
Da tenblöcke
von der zweiten Instanz für
die fehlerbehafteten Datenblöcke
in der ersten Instanz, wie durch Block 296 in 11 gezeigt.
-
Die
Komponente 210 kann anschließend einfach die korrigierte
als die echte Nachricht zurückgeben,
oder sie kann optional (als eine zusätzliche Fehlerüberprüfungsvorsichtsmaßnahme)
eine Prüfsumme
berechnen, die auf der korrigierten Nachricht basiert, wie durch
Block 298 gezeigt. Wenn die Prüfsumme korrekt ist, wie bei
Block 300 ermittelt, gibt die Komponente 210 die
korrigierte Nachricht als die echte Nachricht zurück. Dies
ist durch Block 302 angedeutet. Wenn jedoch die Prüfsumme bei
Block 300 nicht korrekt ist, gibt die Komponente 210 einfach
die erste Instanz als die echte Nachricht zurück und setzt Fehler-Flags,
wie durch die Blöcke 304 und 292 in 11 gezeigt.
-
Daher
ist es ersichtlich, dass die vorliegende Erfindung etliche bedeutende
Vorteile gegenüber
früheren
Systemen bieten kann, z. B. ist das System nützlich für Datenfunkrufanwendungen,
weil es da nicht möglich
sein sollte, dass die Korrektur solcher Nachrichten auf dem Benutzer
lasten. Ebenso stellt die vorliegende Erfindung ein System zur Verfügung, welches
nicht so unkonventionell oder lästig
ist wie frühere
Verfahren. Des Weiteren erscheint das System von einer Endbenutzerperspektive
aus verlässlicher,
weil die Anzahl der Nachrichten, welche Fehler enthalten und welche
dem Benutzer gezeigt werden, reduziert wurde.