Что случится?
6 апреля 2019 года произойдет второе обнуление счетчика недель GPS (GPS week rollover), первое было 21 августа 1999. Это означает, что в кадре навигационных данных, передаваемых спутниками GPS, после номера недели 1023 будет выдаваться номер недели равный 0, так как в структуре навигационного сообщения под номер недели GPS отведено 10-битное значение (если учесть, что в году порядка 52 недель то 1024 недели это чуть менее 20 лет).
Как это отразится на потребителях?
Приемники, в софте которых предусмотрено это событие, будут продолжать корректно декодировать номер текущей недели GPS из навигационного кадра и для потребителя номер недели будет продолжать увеличиваться, то есть нулевое значение будет автоматически интерпретироваться как 2048, 1 как 2049 и так далее. Но если приемник к этому не подготовлен, то он вернется в прошлое (в 1999 или даже в 1980 год).
Что можно/нужно сделать?
Проверить, что в ваших навигационных приемниках установлена актуальная версия прошивки, т.к. в основном производители в курсе данной ситуации и корректирую софт, дабы у потребителей не было проблем.
Обратиться к производителю приемников или софта, от которого зависит данные, попадающие потребителю.
Также имеет смысл добавить костыль на стороне потребителя – например добавить проверку:
if ( week < 1023 ) week += 2048;
Комментарии (7)
brzsmg
02.04.2019 13:03Дата в GPS состоит из двух частей:
количество недель (от 0 до 1 023 в старом протоколе 10 бит, от 0 до 8 191 в новом 13 бит)
и секундой в неделе (от 0 до 604 800).
Старый протокол используется в оборудовании выпущенном до 2010 года.
И для определения даты, ему необходима приблизительная с точностью до 3584 дней.
Получается что бы 07.04.2019 ваш приемник выдал 21.08.1999 или даже 06.01.1980 он должен быть достаточно старым, и не включавшимся с верной датой более 3584 дней.
Для современных приемников такая проблема случиться в 2137 году, но к тому моменту думаю протокол уже опять измениться.Alexeyslav
02.04.2019 14:51Ага, и гарантированы вечные допиливания… нет чтобы заранее выделить счетчику недель 20 бит и данная проблема отложилась бы на тысячелетия, а там глядишь уже будут совсем иные навигационные системы.
brzsmg
02.04.2019 15:26Возможно даже эти 3 бита с трудом выделили в старых спутниках.
Вот бы про эти технические подробности лучше автор написал, классная статья была бы.
Svrg Автор
02.04.2019 18:2313 бит передается на L2CM, но коммерческие приемники с поддержкой L2 только начали появляться, а так их стоимость от 150 тыс. руб. Да, еще обещают на L1C это передавать, но это новый сигнал и надо бы уточнить какие приемники его сейчас могут поддерживать. Взять например uBlox8 — там указан L1 C/A, стало быть 10 бит со всеми вытекающими. Но думаю они то в софте учли событие 06.04.19
Alexeyslav
Что-то мне кажется, проверка там более грамотная. С такой проверкой, если обновить раньше времени то приемник перепрыгнет на 20 лет раньше срока и будет 2040 год.
Что-то мне подсказывает что в данных поступающих со спутника должны быть и какие-то другие контрольные данные, помимо номера недели.
Проверка может основываться к примеру на основе даты изготовления приемника, если она всяко позже 1999 года то переход счетчика через ноль должен накинуть в энергонезависимой памяти +20 лет, или основываться на последней принятой дате всё в той же энергонезависимой памяти и для этого приемник надо включать по меньшей мере раз в 10 лет. И это всё актуально для оффлайн-приеников, те что с A-GPS получают стартовую дату с наземных станций по другому каналу и способны отследить эти переходы сверяясь с другим источником.