Wednesday 11 September 2019

low power - GPS Almanac versus Sky Search


The total almanac data is transmitted in 25 navigation messages. Each navigation message takes at least 30 seconds to transmit. So, receiving the almanac data from the satellites takes at least 12.5 minutes, not taking Assisted GPS into account for the moment. If the signal was lost while receiving the message, the entire message has to be received again. This could double the time it takes to download the almanac data, depending on which navigation message is missing.


However, all the almanac data really does is give you a clue which satellites to look for. This information is not really worth the time and energy it needs when designing a low-power system. It requires you to keep track of the time, rough/last known location and almanac data.


Most GPS receivers nowadays include a lot of channels correlators, up to 256 from what I've seen. A satellite signal is repeated every millisecond and could be shifted by 1023 bits. Using a single channel per satellite, determining whether the satellite is in view or not could take one second, before it moves on to the next satellite. With 256 channels, determining whether the satellite is in view or not could only take 4 milliseconds.


Performing a sky search means that the receiver will process all the satellites and check if they are in view. This sounds more logical to me than downloading the almanac data to determine which satellite to look for. With as many as 256 channels, it would theoretically only take 100 milliseconds to know which satellites are in view and needs their ephemeris data downloaded from.


So the question here is: is downloading the almanac really necessary? Would it be better to skip downloading the almanac data when the amount of available energy is low? Especially when you want to avoid the need of having a RTC etc.





Edit:


I made a wrong assumption about the satellite signal decoding attempts, as pointed out by Dmitry.


However, the question remains if it would be feasible to ignore the almanac data. For instance, the datasheet of the Maestro A2035-H GPS module states that it has over 400,000 correlators. It consumes 40 mA while searching for visible satellites and 29 mA while tracking (getting the ephemeris data and calculating the position). It only takes 35 seconds to acquire a fix with a cold start, without a recent almanac or time and position estimate.


To me, it seems like it ignores the almanac like I suggested. Has the almanac still any use?



Answer



There are several points highlighted in Wikipedia article about GPS signals acquisition:



  • Only satellites with a clear line of sight can be acquired without the almanac. Satellites visible via reflections cannot be used.

  • Far more that 1023 decoding attempts are required to detect a signal from a single satellite (Wikipedia gives two estimations: 40,920 and 104,346 assessments, depending on the method used).


  • Once one satellite is found, getting the almanac from it requires little power since you only have to run a single channel. Running 256 channels in parallel will require 256 times more power.


In the end, there may be situations when you can do without an almanac. If your device is stationary and no obstacles are around to block the view, you may be able to find satellites directly. Whether this will save you some energy will depend on how much your memory and RTC will consume vs running 256 channels in parallel, and how often you will use the GPS receiver.


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...