|
From: | Ed W |
Subject: | Re: [gpsd-dev] NMEA time calculation question |
Date: | Mon, 07 May 2012 19:48:49 +0100 |
User-agent: | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:12.0) Gecko/20120428 Thunderbird/12.0.1 |
On 07/05/2012 19:04, tz wrote:
On Mon, May 7, 2012 at 1:41 PM, Ed W <address@hidden> wrote: But my understanding is that we get the data (very quickly) after the poll is done. Therefore we should get a decently accurate timestamp of the end of the USB poll. So the poll event might be quick random, but we should at least know when it took place. Is this correct? So in practice USB polls will take place at intervals from 0.5ms to 1.5ms, however, we should be able to timestamp *when* they take place, even if we can't predict them in advance. Seems like this is not a problem in practice and possibly beneficial
See I think if you measure the end of the sentence then you get a different error than if you measure the start of the sentence. This is because you have an unknown quantisation at the end which isn't present at the start (or at least the size of the error is smaller)
Sorry, which error can't you measure? Also I don't see why you can't so can you please explain why you think you can't? To recap, my expectation is that if you put it on a scope, the Venus chipset will send the initial $ with PPS level precision, and even subsequent bit will be delivered with very low jitter at 9,600 baud until the end of the ZDA sentence. Can you please shoot down that expectation if it's not true? The follow-on is that *if* the per character transmit time is constant and low jitter, then it's not a problem that our observation process of those characters is high jitter. As long as we can observe "now" with decent accuracy then we can collect enough samples to infer the exact arrival time, even though there is jitter in the observation process. Key question is whether a) initial bit is delivered with precision (you confirmed yes) and b) subsequent bits are also delivered with low jitter? Can you confirm/deny b)?
What process causes this? Once the USB bus wakes up and polls the device, where does the data go for the rest of the time before delivering it to the operating system? Generally buffering things is tricky and expensive so I would have expected a much simpler algorithm where the USB bus wakes up occasionally and simply delivers whatever is waiting at that point - as such we can measure the wakeup event, it's "now". Thanks for your insight Ed W |
[Prev in Thread] | Current Thread | [Next in Thread] |