Обнуление счетчика недель GPS



    Что случится?


    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;
    • +13
    • 9,7k
    • 9
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 9

      +1
      Что-то мне кажется, проверка там более грамотная. С такой проверкой, если обновить раньше времени то приемник перепрыгнет на 20 лет раньше срока и будет 2040 год.
      Что-то мне подсказывает что в данных поступающих со спутника должны быть и какие-то другие контрольные данные, помимо номера недели.
      Проверка может основываться к примеру на основе даты изготовления приемника, если она всяко позже 1999 года то переход счетчика через ноль должен накинуть в энергонезависимой памяти +20 лет, или основываться на последней принятой дате всё в той же энергонезависимой памяти и для этого приемник надо включать по меньшей мере раз в 10 лет. И это всё актуально для оффлайн-приеников, те что с A-GPS получают стартовую дату с наземных станций по другому каналу и способны отследить эти переходы сверяясь с другим источником.
        +1
        А в чём суть проблемы? Что после «холодного старта» приёмники, выпущенные более 10-15 лет назад, будут в NMEA-сообщениях выдавать неправильную дату?
          0
          может штрафы начнут приходить из прошлого…
          0
          Дата в 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 году, но к тому моменту думаю протокол уже опять измениться.
            0
            Ага, и гарантированы вечные допиливания… нет чтобы заранее выделить счетчику недель 20 бит и данная проблема отложилась бы на тысячелетия, а там глядишь уже будут совсем иные навигационные системы.
              +2
              Возможно даже эти 3 бита с трудом выделили в старых спутниках.
              Вот бы про эти технические подробности лучше автор написал, классная статья была бы.
              0
              13 бит передается на L2CM, но коммерческие приемники с поддержкой L2 только начали появляться, а так их стоимость от 150 тыс. руб. Да, еще обещают на L1C это передавать, но это новый сигнал и надо бы уточнить какие приемники его сейчас могут поддерживать. Взять например uBlox8 — там указан L1 C/A, стало быть 10 бит со всеми вытекающими. Но думаю они то в софте учли событие 06.04.19
              0
              Нужно эпохами проверять начиная с 1980, по 1024 недели. Многие устройства уже с 1999 шлют и там нужно 1024 добавлять. а не 2048.

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                Самое читаемое