This application is related to Ser. No. 10/269,914, titled “HOST BASED SATELLITE POSITIONING SYSTEMS”, filed Oct. 10, 2002, and Ser. No. 10/269,104 titled “NAVIGATION PROCESSING IN HOST BASED SATELLITE POSITIONING SOLUTIONS”, filed Oct. 10, 2002, both of which are incorporated herein by reference in their entirety.
1. Field of the Invention
This invention relates to satellite positioning systems. In particular, this invention relates to satellite positioning systems implemented using the processing power of a host in layered communication with tracker hardware.
2. Related Art
Worldwide use of satellite positioning systems (SPS), such as the Global Positioning System (GPS) is growing at a rapid pace. Current trends are calling for the incorporation of GPS services into a broad range of electronic devices and systems, including Personal Digital Assistants (PDAs), cellular telephones, portable computers, automobiles, and the like. At the same time, manufacturers constantly strive to reduce costs, simply designs and produce the most cost-attractive product possible for consumers.
In the past, providing a GPS solution, such as handheld GPS devices, often required expensive dedicated GPS signal reception and processing hardware, as well as dedicated post processing hardware for resolving location measurements, displaying location coordinates, updating map displays, and the like. However, given the rapid growth in speed, sophistication, and processing power of the host microprocessors present in the host computer devices (e.g., in a cell phone, personal digital assistant or automobile), the possibility exists for allowing the host computer to bear the burden not only of running its regular applications, but also to operate as part of the GPS solution. Such an approach is presented in U.S. Pat. No. 6,430,503, titled “Distributed GPS Navigation System”, the entirety of which is incorporated herein by reference in its entirety.
Currently, however, there is a strong push toward incorporating GPS solutions in many electronic devices designed by numerous manufacturers. Of course, each device varies considerably in architecture, operating system, hardware interfaces, and the like. Prior GPS solutions did not provide the flexibility that allowed the solutions to be adapted to a wide range of electronic devices. Instead, expensive customized solutions were needed for each device, thereby undesirably increasing costs and delaying the introduction of GPS services into a wide range of devices. The prior GPS host solutions also rely on interrupts to the host computer in order to service a GPS function. The use of interrupts adversely impacts the performance of the host computer.
Known GPS solutions are often developed or customized for specific devices and applications. Such customization increases the complexity of implementing GPS systems on numerous platforms and operating systems. Further, known GPS systems are often not able to take advantage of changes in software and hardware without changing a large portion of the software in a GPS device. The customized or specific device design approach also limits the ability to create application program interfaces that can be marketed and delivered separate from the GPS hardware.
Therefore, a need exists for implementations of GPS solutions that overcome the problems noted above and others previously experienced.
Methods and systems consistent with the present invention provide a layered host based SPS solution. The SPS is a GPS solution implemented in a layered form that is flexible and extensible, and that can be adapted to meet the needs of many different platforms. As a result, a wide variety of electronic devices may incorporate GPS functionality with less expense using less development time.
In one implementation, a host based positioning system includes host computer system that connects through a tracker hardware interface to a dedicated hardware space vehicle tracker. The host processing system also uses a layered approach having a user application layer, communication processing layer, client-server interface processing layer, user interface manager and protocol layer, navigation processing layer, and tracker interface layer. A processor in the host processing system runs the positioning engine and the functions provided by the different layers.
The tracker hardware interface receives positioning information from the space vehicle tracker (tracker hardware). Through functions in the tracker interface, the location data is communicated to the host computer.
Other apparatus, methods, features and advantages of the present invention will be or will become apparent to one with skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features and advantages be included within this description, be within the scope of the present invention, and be protected by the accompanying claims.
The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention. In the figures, like reference numerals designate corresponding parts throughout the different views.
The invention may be better understood with reference to the following figures. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principals of the invention. Moreover, in the figures, like reference numerals designate corresponding parts throughout the different views.
In
The tracker hardware 102 may be receive power from the DC power supply 110 that is separate from the power supply of the host computer 104, or in an alternate embodiment may receive power from the host computer 104 via the hardware tracker interface link 112. Further, the GPS antenna 106 may be separate from the tracker hardware 102 or integrated within the same housing as the tracker hardware 102.
Turning to
An operating system 216 (e.g., Windows CE, Palm OS, UNIX, QNX, or the like) is a plurality of instructions that reside in and are executed from memory 208. A plurality of user applications 218 communicates with a positioning library 220 and the operating system 216. One of the user applications 218 may receive position information from the positioning library 220, and may also communicate commands to the positioning library 220. The user application 218 may be virtually any program that uses positioning information, including, as examples, a mapping program, course charter, location aid, and the like.
The host computer 104 connects through the hardware tracker interface 214 and the interface connection 112 to the tracker hardware 102. The hardware tracker interface 214 may be virtually any type of data transfer interface (as examples, a serial, parallel, PCMCIA card, USB, PC Card, or network interface). In one implementation, the hardware tracker interface 214 is an RS232 port running at 38,400 bps, N-8-1 that communicates up to 2 KB of data per second between the tracker hardware 102 and the computer host 104.
In other implementations, the tracker hardware (as illustrated by the reference numeral 222) is more closely incorporated into the host computer 104. Thus, rather than connecting to the computer host 104 through the interface connection link 112, for example, the tracker hardware 222 may be directly coupled to the host computer 104 via address, data, and control buses 224. As will be explained in more detail below, the host computer 104 receives and processes navigation information from the hardware tracker 102, or in an alternate embodiment 222 in order to provide the plurality of user applications 218 with position information.
Although aspects of the present invention are depicted as being stored in memory 208, one skilled in the art will appreciate that all or part of systems and methods consistent with the present invention may be stored on or read from other machine-readable media, for example, secondary storage devices such as hard disks, floppy disks, and CD-ROMs; a signal received from a network; or other forms of ROM or RAM either currently known or later developed. Further, although specific components of positioning system 100 are described, one skilled in the art will appreciate that a positioning system suitable for use with methods, systems, and articles of manufacture consistent with the present invention may contain additional or different components.
In
The tracker hardware 102 may be implemented with components available from SiRF Technology, Inc. of San Jose, Calif. For example, the RF interface circuit 302 may be implemented as a GRF2i/LP integrated circuit. The location processing circuit 306 may be implemented, as examples, as a GSP2t integrated circuit or GSP2e integrated circuit. The tracker hardware 102 minimizes the overhead on the host computer 104 and operating system 216 by keeping low the maximum transmission rate of raw measurements to the host computer 104 (e.g., one measurement per second).
In
The tracker interface sub-modules 404 communicate with the tracker hardware 102 via the hardware tracker interface (214,
Each of the plurality of user applications may expect data in one of a plurality of location data standards. Such location or position standards include, but are not limited to; different versions of NMEA183 location data and binary location data. Each of the user applications 218 may require a different format for location data. The host navigation processor sub module 406 receives location data via a data structure from the tracker interface module 404 and formats the data for the user applications 218. The host navigation process sub module 406 also manages communication with the user applications 218 with assistance from the operating system. An example of such communication is pipes in an UNIX operating system.
Turning to
User applications 218 in the user application layer 602 communicate with a communication interface 614 via an API. In response to initiation of each of the user applications 218, the communication interface 614 notifies the host navigation sub module 406 in the navigation processing layer 610 and the user interface manager 618 in the user manager and protocol processing layer 608. The host navigation processing sub-module 406 then provides the appropriate location data for the user application 218 to the user interface manager 618. The user interface manager 618 communicates with the communication interface 614 in order to forward the appropriate location data to a required data forwarder 620. The data forwarder 620 formats the location data for one of the respective user applications 218. The formatted location data is then sent to the user application 218 that requires the location data.
Thus, the ability to have numerous user applications 218 accessing tracker hardware 102 is accomplished through a layered approach. Further, the communication manager 614 in conjunction with the host navigation processor sub module 406 and the user interface manager 618 enable multiple user applications 218 to have diverse location data formats while still sharing common resources and software code.
Turning to
In
The user interface manager 618, in step 810, receives the location data from the tracker hardware 102 via the tracker interface sub module 404 and the host navigation processor sub module 406. In step 812, the data forwarder 620 is configured in response to data from the user interface manager 618. The data may be in the form of location data, or in an alternate embodiment in the form of an instruction. In yet another embodiment the data may be a combination of location data and an instruction.
The data forwarder 620 formats the location data for transmission to the user application 218 in step 814. Thus, the procedure of sending data between the tracker hardware 802 and user application 218 via the multiple layers of processing is complete in step 816 when the data arrives at the user application 218.
It is appreciated by those skilled in the art that the process shown in
Additionally, machine-readable signal bearing medium includes computer-readable signal bearing mediums. Computer-readable signal bearing mediums have a modulated carrier signal transmitted over one or more wire based, wireless or fiber optic networks or within a system. For example, one or more wire based, wireless or fiber optic network, such as the telephone network, a local area network, the Internet, or a wireless network having a component of a computer-readable signal residing or passing through the network. The computer readable signal is a representation of one or more machine instructions written in or implemented with any number of programming languages.
Furthermore, the multiple process steps implemented with a programming language, which comprises an ordered listing of executable instructions for implementing logical functions, can be embodied in any machine-readable signal bearing medium for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, controller-containing system having a processor, microprocessor, digital signal processor, discrete logic circuit functioning as a controller, or other system that can fetch the instructions from the instruction execution system, apparatus, or device and execute the instructions.
Turning next to
The tracker interface driver 904 and interface module 906 may be tailored to any particular host system. For example, the tracker interface driver 904 may be Windows CE serial interface functionality, while the interface module 906 may be tailored to accepting and processing data in any particular format provided by the tracker 902 and the interface driver 904. The navigation processor module 908 communicates with the tracker 902 and produces SPS data and status information from the data received from the tracker 902. In turn, the user interface module 910 forwards the data and status information to a user application 916 that has requested the data.
In the navigation processing module, the receive manager module 1014 generally receives the messages sent from the message router module 1008 and forwards them to the navigation processor module 908 for processing. In certain instances, however, the message router module 1008 may instead send messages directly to the main module 1010 (generally for messages that do not need to be processed by the navigation processor module 908). The error processor module 1012 checks messages for errors and generates responsive messages that inform the navigation module that an error is present.
In the user manager module, the message packet builder 1018 is provided to create any preselected packet structure for messages to be delivered to the data forwarders 912 through the illustrated queues. In addition, the message processor module 1016 is available to accept messages from the main module 1010, determine if the messages should be routed through the COM module 914, and if so, send the messages.
With regard next to
The hardware interface layer 1106 may be replaced or configured to support any desired hardware interface. For example,
The foregoing description of an implementation of the invention has been presented for purposes of illustration and description. It is not exhaustive and does not limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practicing of the invention. For example, the described implementation includes software but the present invention may be implemented as a combination of hardware and software or in hardware alone. Note also that the implementation may vary between systems. The invention may be implemented with both object-oriented and non-object-oriented programming systems. The claims and their equivalents define the scope of the invention.
Number | Name | Date | Kind |
---|---|---|---|
5416712 | Geier et al. | May 1995 | A |
5497339 | Bernard | Mar 1996 | A |
5506588 | Diefes et al. | Apr 1996 | A |
5519403 | Bickley et al. | May 1996 | A |
5528248 | Steiner et al. | Jun 1996 | A |
5589835 | Gildea et al. | Dec 1996 | A |
5663734 | Krasner | Sep 1997 | A |
5663735 | Eshenbach | Sep 1997 | A |
5781156 | Krasner | Jul 1998 | A |
5812087 | Krasner | Sep 1998 | A |
5825327 | Krasner | Oct 1998 | A |
5831545 | Murray et al. | Nov 1998 | A |
5831574 | Krasner | Nov 1998 | A |
5832247 | Gildea et al. | Nov 1998 | A |
5841396 | Krasner | Nov 1998 | A |
5874914 | Krasner | Feb 1999 | A |
5884214 | Krasner | Mar 1999 | A |
5920283 | Nicholson et al. | Jul 1999 | A |
5945944 | Krasner | Aug 1999 | A |
5999124 | Sheynblat | Dec 1999 | A |
6002363 | Krasner | Dec 1999 | A |
6016119 | Krasner | Jan 2000 | A |
6047258 | Allison et al. | Apr 2000 | A |
6052081 | Krasner | Apr 2000 | A |
6057759 | Marsh | May 2000 | A |
6061018 | Sheynblat | May 2000 | A |
6064336 | Krasner | May 2000 | A |
6067044 | Whelan et al. | May 2000 | A |
6104338 | Krasner | Aug 2000 | A |
6104340 | Krasner | Aug 2000 | A |
6107960 | Krasner | Aug 2000 | A |
6108603 | Karunanidhi | Aug 2000 | A |
6111540 | Krasner | Aug 2000 | A |
6131067 | Girerd | Oct 2000 | A |
6133853 | Obradovich et al. | Oct 2000 | A |
6133871 | Krasner | Oct 2000 | A |
6133873 | Krasner | Oct 2000 | A |
6133874 | Krasner | Oct 2000 | A |
6150980 | Krasner | Nov 2000 | A |
6185427 | Krasner | Feb 2001 | B1 |
6208290 | Krasner | Mar 2001 | B1 |
6208291 | Krasner | Mar 2001 | B1 |
6209090 | Aisenberg et al. | Mar 2001 | B1 |
6212133 | McCoy et al. | Apr 2001 | B1 |
6215441 | Moeglein | Apr 2001 | B1 |
6215442 | Sheynblat | Apr 2001 | B1 |
6236354 | Krasner | May 2001 | B1 |
6239742 | Krasner | May 2001 | B1 |
6255988 | Bischoff | Jul 2001 | B1 |
6256578 | Ito | Jul 2001 | B1 |
6259399 | Krasner | Jul 2001 | B1 |
6272430 | Krasner | Aug 2001 | B1 |
6289041 | Krasner | Sep 2001 | B1 |
6307504 | Sheynblat | Oct 2001 | B1 |
6313786 | Sheynblat | Nov 2001 | B1 |
6314308 | Sheynblat | Nov 2001 | B1 |
6317687 | Morimoto et al. | Nov 2001 | B1 |
6377209 | Krasner | Apr 2002 | B1 |
6377891 | Gilbert | Apr 2002 | B1 |
6384777 | McBurney et al. | May 2002 | B1 |
6401037 | Muller et al. | Jun 2002 | B1 |
6408196 | Sheynblat | Jun 2002 | B2 |
6411254 | Moeglein et al. | Jun 2002 | B1 |
6411892 | Van Diggelen | Jun 2002 | B1 |
6417801 | Van Diggelen | Jul 2002 | B1 |
6421002 | Krasner | Jul 2002 | B2 |
6429814 | Van Diggelen et al. | Aug 2002 | B1 |
6430503 | McBurney | Aug 2002 | B1 |
6433731 | Sheynblat | Aug 2002 | B1 |
6453237 | Fuchs et al. | Sep 2002 | B1 |
6480146 | Ferrandis et al. | Nov 2002 | B1 |
6484097 | Fuchs et al. | Nov 2002 | B2 |
6487499 | Fuchs et al. | Nov 2002 | B1 |
6490521 | Wiener | Dec 2002 | B2 |
6510387 | Fuchs et al. | Jan 2003 | B2 |
6542821 | Krasner | Apr 2003 | B2 |
6583757 | Krasner | Jun 2003 | B2 |
6597311 | Sheynblat | Jul 2003 | B2 |
6611755 | Billings et al. | Aug 2003 | B1 |
6662103 | Skolnick et al. | Dec 2003 | B1 |
6703971 | Pande et al. | Mar 2004 | B2 |
6718409 | Houlberg | Apr 2004 | B2 |
20010009407 | Honda et al. | Jul 2001 | A1 |
20020002592 | Aoki et al. | Jan 2002 | A1 |
20020029108 | Liu et al. | Mar 2002 | A1 |
20020070881 | Tseng et al. | Jun 2002 | A1 |
20020102988 | Myllymaki | Aug 2002 | A1 |
20020115445 | Myllymaki | Aug 2002 | A1 |
20020196181 | Fall | Dec 2002 | A1 |
20020198658 | Tamaka et al. | Dec 2002 | A1 |
20030234739 | Orler et al. | Dec 2003 | A1 |
20090270110 | Ardalan | Oct 2009 | A1 |
Number | Date | Country |
---|---|---|
6 036190 | Feb 1994 | JP |
Number | Date | Country | |
---|---|---|---|
20050234982 A1 | Oct 2005 | US |