2009-02-16 4 views
5

Я разбираю данные NMEA GPS с устройства, которое отправляет отметки времени без миллисекунд. Насколько я слышал, эти устройства будут использовать конкретную триггерную точку, когда они отправляют предложение с отметкой времени .000 timestamp - afaik the $ в предложении GGA.GPS Синхронизация времени

Итак, я разбираю предложение GGA и беру временную метку при приеме $ (я компенсирую любые другие символы, которые читаются в той же операции, используя скорость последовательного порта).

Из этой информации я вычисляю смещение для коррекции системного времени, но когда я сравниваю время, установленное на некоторых серверах NTP, я получаю постоянную разницу в 250 мс - когда я исправляю это вручную, я в пределах отклонения 20 мс, что подходит для моего приложения.

Но, конечно, я не уверен, откуда это смещение, и если это как-то специфично для мыши GPS, которую я использую, или моей системы. Я использую неправильный символ $, или кто-то знает, как именно это должно быть обработано? Я знаю, что этот вопрос очень нечеткий, но любые подсказки о том, что может вызвать это смещение, будут очень полезны!

Вот некоторые примеры данных из моего устройства, с символом $ я буду считать, как смещение времени отмечено:

$GPGSA,A,3,17,12,22,18,09,30,14,,,,,,2.1,1.5,1.6*31 
$GPRMC,003538.000,A,5046.8555,N,00606.2913,E,0.00,22.37,160209,,,A*58 
-> $ <- GPGGA,003539.000,5046.8549,N,00606.2922,E,1,07,1.5,249.9,M,47.6,M,,0000*5C 
$GPGSA,A,3,17,12,22,18,09,30,14,,,,,,2.1,1.5,1.6*31 
$GPGSV,3,1,10,09,77,107,17,12,63,243,30,05,51,249,16,14,26,315,20*7E 
$GPGSV,3,2,10,30,24,246,25,17,23,045,22,15,15,170,16,22,14,274,24*7E 
$GPGSV,3,3,10,04,08,092,22,18,07,243,22*74 
$GPRMC,003539.000,A,5046.8549,N,00606.2922,E,0.00,22.37,160209,,,A*56 
-> $ <- GPGGA,003540.000,5046.8536,N,00606.2935,E,1,07,1.5,249.0,M,47.6,M,,0000*55 
$GPGSA,A,3,17,12,22,18,09,30,14,,,,,,2.1,1.5,1.6*31 
$GPRMC,003540.000,A,5046.8536,N,00606.2935,E,0.00,22.37,160209,,,A*56 
-> $ <- GPGGA,003541.000,5046.8521,N,00606.2948,E,1,07,1.5,247.8,M,47.6,M,,0000*5E 

ответ

2

Вы должны принять во внимание то, что происходит на в GPS устройстве:

  • принимает спутниковый сигнал и вычисляет положение, скорость и время.
  • подготовить NMEA сообщение и поместить его в буфер последовательного порта
  • передают сообщение

GPS устройства имеют относительно медленных процессоров (по сравнению с современными компьютерами), так что задержкой вы наблюдаете является результатом обработки, что устройство должно между созданием позиции и моментом он начинает передавать данные.

Here is one analysis задержки в GPS-приемниках потребительского класса от 2005. Там вы можете найти измерение латентности для конкретных предложений NMEA.

+0

Итак, я прочитал, что включение сигнала PPS является запатентованной функцией в некоторых устройствах GPS, что обеспечит точность msec - в общем случае смещение 0,25 с, как указано в опубликованной вами бумаге, швы должны быть хорошо думаю :) Спасибо! – VolkA