Приемник и передатчик для использования в спутниковой навигационной системе

Иллюстрации

Показать все

Изобретение относится к области радиотехники, а именно к спутниковой навигации или спутниковому позиционированию, и может быть использовано в спутниковых навигационных системах. Технический результат заключается в обеспечении высокой скорости передачи битов навигационных данных. Для этого приемник в спутниковой навигационной системе, включающей группировку из множества спутников, каждый из которых передает сигнал, содержащий расширяющий код, имеет по меньшей мере одно устройство хранения кодов, которое содержит комбинаторную логику для хранения кода с памятью, содержащего фиксированный набор символов, включая дешифрование адресов, при этом хранящийся код с памятью соответствует расширяющему коду, входящему в сигнал, который передает спутник. Приемник дополнительно имеет коррелятор для осуществления корреляции входного сигнала и хранящегося расширяющего кода из одного устройства хранения кодов. Комбинаторная логика для хранения кодов с памятью и обеспечения адресных функций интегрирована на уровне физического компонента без четкого разделения между двумя этими функциями. 4 н. и 13 з.п. ф-лы, 6 ил.

Реферат

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

Спутниковые навигационные системы играют все более важную роль в разнообразных областях применения, включая портативные устройства для определения местоположения, бортовые навигационные системы автомобилей и т.д. Основной спутниковой навигационной системой, используемой в настоящее время, является глобальная система позиционирования (GPS, от английского - global positioning system), управляемая министерством обороны США. К 2003 г. объем продаж оборудования GPS в мире составил около 3,5 миллиардов долларов, и ожидается, что он будет устойчиво расти в течение ближайших нескольких лет. Предполагается, что в конце этого десятилетия будет введен в действие европейский аналог спутниковой навигационной системы под названием "Галилео" (Galileo).

Спутниковая навигационная система состоит из группировки спутников, каждый из которых передает на землю один или несколько сигналов. Основной составляющей сигнала спутника является так называемый расширяющий код (кодовая последовательность, применяемая для расширения спектра сигнала), также именуемый кодом позиционирования, синхронизации или определения дальности, который объединяют с навигационной информацией. Затем полученное сочетание используют для модулирования несущей на заданной частоте для передачи на землю. Обычно каждый спутник осуществляет передачу на множестве частот, что помогает компенсировать влияние ионосферы, повысить точность и увеличить объем передаваемых данных.

В некоторых случаях множеством сигналов могут модулировать одну несущую с использованием соответствующей схемы уплотнения. Например, предполагается, что некоторые сигналы системы Galileo будут передаваться по каналу передачи данных, объединенному с пилотным каналом. Пилотный канал содержит только расширяющий код, но не содержит навигационной информации, тогда как канал передачи данных содержит как расширяющий код, так и навигационную информацию.

Расширяющий код сигнала спутника обычно представляет собой заданную последовательность простейших элементов или элементарных посылок кода (далее также именуемых "импульсами") и служит для решения двух основных задач. Во-первых, расширяющий код обеспечивает механизм установления синхронизации и доступа (CDMA, коллективный доступ с кодовым разделением каналов, от английского - code division multiple access), позволяющий приемнику захватить сигнал спутника. За счет этого каждый спутник (и обычно каждый сигнал, передаваемый таким спутником) имеет собственный код синхронизации. При первом включении приемника неизвестно, сигналы каких спутников могут быть приняты, поскольку некоторые спутники, входящие в группировку, находятся ниже горизонта для данного конкретного местоположения в данное конкретное время. Приемник использует коды синхронизации для захвата сигнала, поступающего от первого спутника. После этого может быть осуществлен доступ к навигационной информации, содержащейся в сигнале.

Впоследствии она служит справочной информацией для других спутников группировки и позволяет относительно быстро обнаруживать остальные видимые для приемника спутники.

Во многих спутниках применяется двухстадийный процесс вхождения в синхронизм. На первой стадии приемник осуществляет одновременную корреляцию входного сигнала и набора расширяющих кодов спутников. В частности, приемник осуществляет поиск расширяющего кода любого спутника с поправкой на любую возможную ошибку синхронизации спутника и приемника и на любой возможный доплеровский сдвиг спутника и приемника (который зависит от перемещения спутника в космическом пространстве относительно пользователя). Если установлено, что корреляционное значение превышает заданный порог, осуществляют вторую стадию, предусматривающую более подробный анализ соответствующего сочетания расширяющего кода спутника, ошибки синхронизации и доплеровского сдвига. Этот осуществляемый на второй стадии анализ позволяет проверить и подтвердить или при необходимости отклонить грубое вхождение в синхронизм.

Второй основной задачей расширяющего кода является вычисление расстояния от спутника до приемника, исходя из времени прохождения сигнала от спутника до приемника. После этого методом трилатерации определяют местоположение приемника в трехмерном пространстве при условии, что известны местоположения спутников (указанные в навигационной информации, принимаемой от спутников). Теоретически трилатерация может быть осуществлена с использованием параметров сигналов как минимум трех спутников, если предположить, что известна ошибка синхронизации приемника и спутника. Поскольку на практике эта ошибка синхронизации обычно не известна, не считая специальных приемников, с целью компенсации неизвестной ошибки синхронизации приемника получают параметры сигнала по меньшей мере одного дополнительного спутника. При наличии доступных сигналов дополнительных спутников может быть определено местоположение на основании статистических данных с использованием любого соответствующего алгоритма, такого как алгоритм наименьших квадратов. При этом также может быть получено определенное показание ошибки, связанной с расчетным местоположением.

Важным параметром расширяющего кода является скорость передачи его импульсов, поскольку это, в свою очередь, влияет на точность, с которой может осуществляться определение местоположения. Другим важным параметром расширяющего кода является его общая длина, иными словами, число импульсов расширяющего кода до его повторения. Одной из причин этого является тот факт, что расширяющий код конечной длины способен вызвать неоднозначность при определении местоположения. При большей длине расширяющего кода такая неоднозначность ослабляется, а также обеспечивается лучшее разделение сигналов, поступающих из различных источников, и повышается их устойчивость к помехам. В тоже время при более длинном периоде повторения расширяющего кода может быть задержано вхождение в синхронизм с сигналом, а также требуется наличие у приемника большей способности к обработке данных. Как правило, длина расширяющего кода также влияет на скорость передачи данных, применимую для передачи навигационных данных, поскольку на каждую полную последовательность расширяющего кода обычно приходится только один бит (наименьшую единицу информации) навигационных данных. В связи с этим, чем длиннее период повторения расширяющего кода, тем ниже скорость передачи битов навигационных данных.

Известен способ решения данной задачи, который заключается в использовании иерархического расширяющего кода, включающего первичный и вторичный коды. Если допустить, что первичный код содержит N1 импульсов (элементов), а вторичный код содержит N2 импульсов, первые N1 импульсы всего расширяющего кода соответствуют первичной последовательности исключающее ИЛИ с первым импульсом вторичного кода, следующие N1 импульсы расширяющего кода представляют собой повтор N1 импульсов первичного кода, на это раз исключающее ИЛИ со вторым импульсом вторичного кода и так далее. В результате получаем общий период повторения кода, равный N1×N2, однако, вхождение в синхронизм может осуществляться на основе только первичного кода.

Расширяющие коды GPS реализованы с использованием линейных регистров сдвига с обратными связями (ЛРСОС), в которых выбранные выходные сигналы n-разрядного сдвигового регистра отводят и снова подают на вход. Обратные связи в ЛРСОС можно отобразить в виде многочлена N-го порядка, при этом действие ЛРСОС может быть полностью задано его многочленом и начальной установкой ЛРСОС.

В качестве расширяющих кодов GPS используют золотые коды, которые обладают некоторыми особыми математическими свойствами. Одно из них состоит в том, что они генерируют выходной сигнал псевдослучайного шума (PRN, от английского - pseudo-random noise) с периодом повторения 2N-1, за счет чего относительно компактный ЛРСОС способен генерировать выходной сигнал с большим периодом повторения. Золотые коды также обладают хорошими автокорреляционными свойствами, что способствует вхождению в синхронизм по кодовой комбинации и точности определения местоположения. В частности, автокорреляционная функция имеет четко выраженный пик при нулевом временном сдвиге и относительно небольшой пик при всех остальных (т.е. не нулевых) временных сдвигах. В тоже время важно выбрать набор золотых кодов с хорошими взаимными корреляционными свойствами, при которых взаимная корреляционная функция различных кодов остается относительно слабой. Это важно для установления синхронизации с сигналом, поскольку помогает предотвращать случайное принятие кода синхронизации одного спутника за код синхронизации другого спутника. Дополнительным важным практическим критерием выбора расширяющего кода является наличие равного (или почти равного) числа единиц и нолей, что известно как симметричный код.

Дополнительную информацию о спутниковых навигационных системах можно почерпнуть из книги Misra и Enge под названием "Global Positioning System: Signals, Measurements and Performance", издательство Ganga-Jamuna Press, 2001 г., ISBN 0-9709544-0-9; книги Bradford W. Parkinson и James J. Spilker Jr под названием "Global Positioning System: Theory and Applications", тома 1, 2, ISBN 1-56347-106-Х, публикация Американского института аэронавтики и астронавтики; работы Hollreiser и др. под названием "Galileo User Segment Overview", стр.1914-1928, ION GPS/GNSS 2003, сентябрь 2003 г. Портленд, штат Орегон; и работы Hollreiser и др. под названием "Galileo Test User Segment - First Achievements and Application", GPS World, июль 2005 г.

Несмотря на то, что использование золотых кодов в существующих спутниковых навигационных системах хорошо известно, такие коды имеют ряд недостатков. Например, они доступны только при определенной длине кода (2N-1, при этом в многочлене ЛРСОС могут использоваться не все значения N). Обычно длина кода задана соотношением между скоростью передачи импульсов расширяющего кода и скоростью передачи битов навигационной информации. Если длина кода ограничена длиной доступного золотого кода, это подразумевает ограничение скорости передачи импульсов и скорости передачи битов, что, в свою очередь, влияет на другие параметры, такие как время установления синхронизации и точность определения местоположения. В некоторых случаях ограничение длины кода длиной золотых кодов преодолевают за счет использования усеченных золотых кодов, но это усечение отрицательно сказывается на математических свойствах кодового набора (с точки зрения автокорреляционной функции и т.д.).

Соответственно, в заявках РСТ/ЕР2004/014488 и РСТ/ЕР2005/007235 предложено использовать в качестве спутниковых расширяющих кодов заказные последовательности символов. За счет этого можно создавать расширяющие коды произвольной длины, а также оптимизировать различные свойства, такие как автокорреляция и взаимная корреляция независимо от других ограничений. Такой расширяющий код в дальнейшем именуется в описании кодом "с памятью", поскольку обычно в приемнике хранится вся комбинация элементарных посылок (сигналов) кода. В этом состоит отличие от генерации комбинации элементарных посылок алгоритмическим способом, как в случае золотого кода, в котором для генерации кода алгоритмическим способом в соответствии с его многочленом используют ЛРСОС, а не хранят комбинацию элементарных посылок всего кода. Следует отметить, что, поскольку коды с памятью, как правило, создают из последовательностей (псевдо)случайных чисел, обычно к ним неприменимы методы сжатия данных.

Набор кодов с памятью для приемника может храниться в ПЗУ какого-либо типа, таком как флэш-память. Затем во время начальной загрузки эти коды могут быть загружены в набор микросхем приемника для использования при обнаружении расширяющих кодов во входных сигналах спутников. Если в сам набор микросхем приемника загружают полные коды с памятью, это может привести к очень существенной непроизводительной нагрузке на ячейки памяти в наборе микросхем приемника. В качестве альтернативы коды могут быть загружены во внешнее (по отношению к набору микросхем приемника) ОЗУ, и в этом случае потребуется лишь сравнительно небольшое увеличение общих потребностей в памяти для хранения программ и(или) данных для обычной работы приемника. Тем не менее в этом случае вероятно потребуется специализированный высокоскоростной интерфейс для загрузки в реальном времени кодов из ОЗУ в набор микросхем приемника, а также некоторая дополнительная внутренняя буферизация в самом наборе микросхем приемника.

На фиг.1 показана типичная реализация ЛРСОС, который применим, например, в наборе микросхем обычного приемника GPS. В базовое оборудование входит регистр 11 сдвига, имеющий длину N, плюс два дополнительных регистра 12, 13, каждый из которых также имеет длину N. Конструкция регистра сдвига как такового является универсальной за счет того, что отводы обратной связи не реализованы аппаратно. Вместо этого обратной связью между различными стадиями регистра 11 сдвига управляют с помощью полиномиального значения, которое загружают в один из двух дополнительных регистров (полиномиальный регистр 12). Затем, исходя из значения, хранящегося в другом дополнительном регистре (регистре 13 выбора начальной конфигурации) осуществляют начальную установку ЛРСОС. Тем самым путем ввода соответствующих значений в полиномиальный регистр и регистр выбора начальной конфигурации можно привести показанный на фиг.1 ЛРСОС в соответствие с требованиями заказчика.

Показанный на фиг.1 ЛРСОС имеет 3N ячеек памяти (поскольку регистр 11 сдвига, полиномиальный регистр 12 и регистр 13 выбора начальной конфигурации имеют по N ячеек памяти каждый). Как указано выше, в максимальном золотом коде число ячеек памяти в регистре 11 сдвига с обратными связями связано с длиной (L) выходного кода следующей зависимостью: N=2log(L+1). Поскольку в основе золотого кода обычно лежит сочетание выходов двух ЛРСОС, общее число ячеек памяти T(S) для золотого кода можно выразить как T(S)=6*2log(L+1). Кроме того, генератор стандартного кода ЛРСОС имеет определенную комбинаторную логику для обеспечения отводов обратной связи (XOR) в также небольшой конечный автомат/контроллер, объединенный со счетчиком (или компаратор + регистр), для переустановки, перезагрузки и перезапуска в конце последовательности.

В отличие от этого при непосредственной реализации кода с памятью в приемнике для каждого кода, сохраняемого в приемнике, включая соответствующие дешифраторы адресов, может потребоваться память полной емкости. Память может являться статической или динамической в зависимости от выбранной технологии реализации. Наиболее широко распространенные технологии (ASIC, от английского - application-specific integrated circuits, специализированная интегральная схема, FPGA, от английского - Field Programmable Gate Array, программируемая пользователем вентильная матрица) поддерживают статическую память. Кроме того, с целью обеспечить считывание правильной ячейки памяти обычно используют небольшой конечный автомат или контроллер для генерации адреса. Если допустить, что эквивалентное количество логических элементов ячейки статической памяти составляет 1,5 NAND2 (NAND2 соответствует логическому элементу И-НЕ с двумя входами и обычно имеет 6 транзисторов), то при использовании 0,18-µм технологии площадь каждой ячейки памяти составит 18,75 µм2. Если допустить, что конечный автомат/контроллер имеет 200 логических элементов, а код содержит 4096 импульсов (что соответствует сигналу L1 системы Galileo), получаем 6344 логических элементов NAND2 с общей площадью 79300 µм2. В качестве альтернативы, если код содержит 10230 импульсов, как у сигнала Е5 системы Galileo, и исходя из приведенных выше допущений, получаем 15545 логических элементов NAND2 с общей площадью 194312 µм2 (пренебрегая любой экономией за счет регулярности структуры). Это может представлять собой существенную непроизводительную нагрузку на набор микросхем приемника.

Отметим, что в случае кода с памятью T(S)≈L. Иными словами, число ячеек памяти растет прямо пропорционально длине кода, а не пропорционально логарифму кода, как случае реализации на базе ЛРСОС. С связи с этим ясно, что с увеличением длины расширяющего кода для применения кодов с памятью требуется существенно большее число ячеек памяти, чем при обычном подходе с использованием ЛРСОС. Эта проблема усугубляется тем, что в приемнике должен храниться не один расширяющий код, а полный набор расширяющих кодов для всех спутников и всех интересующих сигналов.

Соответственно, в одном из вариантов осуществления изобретения предложен приемник, применимый в спутниковой навигационной системе, включающей группировку из множества спутников, каждый из которых передает сигнал, содержащий расширяющий код. Приемник имеет по меньшей мере одно устройство хранения кодов, которое содержит комбинаторную логику для хранения кода с памятью, представляющего собой фиксированный набор импульсов (простейших элементов или элементарных посылок кода). Хранящийся код с памятью соответствует расширяющему коду, входящему в сигнал, передаваемый спутником. Комбинаторная логика имеет функциональные возможности дешифрирования адресов для извлечения заданной части хранящегося кода с памятью. Причем как в этом варианте осуществления изобретения, так и в раскрытых далее подразумевается, что внутренняя аппаратная конфигурация комбинаторной логики приспособлена для хранения набора данных и не содержит стандартных ячеек памяти, при этом комбинаторная логика для хранения кодов с памятью и обеспечения адресных функций интегрирована на уровне физического компонента без четкого разделения между двумя этими функциями. Приемник также имеет коррелятор для осуществления корреляции входного сигнала и хранящегося кода с памятью, извлеченного из устройства хранения кодов.

Подразумевается, что при обычной реализации ячейки памяти, например в виде триггера или регистра, в ее основу положена последовательная логика, которая поддерживает состояние, зависящее от ранее введенных данных, при этом в устройство загружают данные для хранения в виде входных сигналов. В отличие от этого расширяющий код может считаться сохраненным в комбинаторной логике в силу аппаратной реализованной конфигурации комбинаторной логики.

Также подразумевается, что ЛРСОС, используемый для генерации расширяющего кода в существующем приемнике, содержит последовательную, а не комбинаторную логику, поскольку его выходной сигнал зависит от внутреннего состояния регистров. Кроме того, коды, которые способен генерировать ЛРСОС, ограничены кодами, заданными определенными математическими алгоритмами. По существу, можно скорее считать, что в ЛРСОС хранится математический алгоритм (который может использоваться для генерации кода), а не код как таковой. В отличие от этого комбинаторная логика может использоваться для хранения общего или произвольного расширяющего кода, например кода без каких-либо заданных математических свойств и кода, который генерирован без использования заданного математического алгоритма. Таким образом, комбинаторная логика может использоваться для хранения заказного кода с памятью, который был оптимизирован применительно к конкретной спутниковой навигационной системе (Отметим, что комбинаторная логика не ограничена таким заказным кодом с памятью; она также может использоваться для хранения кодов с памятью, который соответствует золотому коду или какой-либо иной математической последовательности).

Обычно в приемнике хранится отличающийся расширяющий код для каждого сигнала каждого спутника, входящего в группировку навигационных спутников (для обеспечения услуг, поддерживаемых приемником). В их число могут входить расширяющие коды для заменяющих спутников, которые используют в качестве резервных на случай отказа каких-либо спутников в группировке. Существуют различные способы, которыми набор расширяющих кодов можно закрепить за устройством(ами) хранения кодов. Например, в одном из вариантов осуществления для хранения полного набора расширяющих кодов для всех спутников в группировке может использоваться одно устройство хранения кодов. В другом варианте осуществления расширяющий код для каждого сигнала каждого спутника может храниться в отдельном устройстве хранения кодов. Специалисту в данной области техники может быть известно множество других промежуточных способов закрепления кодов с памятью за устройствами хранения кодов.

В одном из вариантов осуществления приемник имеет множество каналов приема, при этом хранящийся код с памятью для спутника может подаваться из устройства(в) хранения кодов в любой из каналов приема с целью корреляции с входным сигналом, принимаемым по этому каналу приема. Так, хотя сами коды с памятью аппаратно реализованы посредством комбинаторной логики, закрепление расширяющих кодов за различными каналами приема может быть гибким. Эта гибкость полезна, поскольку в любое заданное время и в любом заданном местоположении на земле видимым является только определенное подмножество навигационных спутников (остальные могут быть закрыты зданиями или находиться ниже горизонта). Соответственно, за счет гибкого закрепления расширяющих кодов из устройства(в) хранения кодов за различными каналами приема число каналов приема в приемнике может быть меньше общего числа спутников, поскольку в процессе работы система закрепляет за каналами приема расширяющие коды для видимых в данный момент спутников. Кроме того, эта гибкость полезна на случай отказа спутника в группировке, когда его место занимает один из резервных спутников (при условии, что расширяющий код для этого резервного спутника уже хранится в приемнике).

Отметим, что число каналов приема сигнала заданного класса в существующих приемниках также обычно меньше числа спутников в группировке. Это достигается за счет соответствующей настройки каждого ЛРСОС в канале приема на сигнал искомого спутника (с использованием многочлена и регистров начальной установки, показанных на фиг.1). Хотя комбинаторную логику устройства(в) хранения кодов невозможно гибко настроить таким способом в процессе работы, определенная гибкость может быть обеспечена на уровне архитектуры приемника.

В одном из вариантов осуществления устройство хранения кодов способно определять конкретный сегмент одного или нескольких импульсов хранящегося кода с памятью с целью его вывода. Способность выбора определенной части кода с памятью позволяет выводить код с памятью через ограниченное число выходных выводов, а также лучше согласуется со схемами поиска кода с памятью для нормального использования. Устройство хранения кодов может иметь генератор последовательностей, позволяющий устройству последовательно проходить за один раз через один или несколько импульсов кода, созданного комбинаторной логикой, и(или) адресную функцию, позволяющую выбирать для вывода конкретную часть кода с памятью. Отметим, что такой механизм вывода может быть реализован в последовательной логике (например, для прохождения через код), но этот последовательный вывод кода можно считать логически отличающимся от хранения кода с помощью комбинаторной логики (даже если хранение и вывод кода затем объединены на уровне физических компонентов устройства хранения кодов).

Вывод из устройства хранения кодов может осуществляться по одному импульсу за один раз, или каждый вывод может содержать набор из множества импульсов. Отметим, что этот последний вариант отражает дополнительное различие между хранением расширяющего кода в комбинаторной логике и использованием ЛРСОС, поскольку ЛРСОС выводит только по одному импульсу за один раз. В отличие от этого, поскольку в блоке комбинаторной логики хранится вся комбинация элементарных посылок кода, для одновременного вывода в любое заданное время (если это желательно) доступно множество импульсов кода.

Устройство хранения кодов особо применимо для реализации в виде программируемой пользователем вентильной матрицы (FPGA) или специализированной интегральной схемы (ASIC, такой как матрица логических элементов, стандартный элемент), хотя может применяться любая соответствующая полупроводниковая технология (например, полностью заказная технология и т.д.). Поскольку комбинаторная логика обычно совместима с имеющимися схемными решениями FPGA и(или) ASIC, комбинаторная логика может быть спроектирована и реализована с использованием стандартных средств разработки полупроводников. Подразумевается, что применение стандартных технологий, таких как FPGA и ASIC, также способствует реализации комбинаторной логики в увязке с основным набором микросхем приемника (за счет чего отпадает необходимость в высокоскоростном интерфейсе между устройством(-ами) хранения кодов одного устройства и отдельным набором микросхем приемника).

Устройство(а) хранения кодов может(гут) использоваться для хранения множества уровней иерархического кода. Например, устройство хранения кодов может использоваться для хранения первичного кода и(или) вторичного кода. Отметим, что, если в устройстве(ах) хранения кодов хранится как первичный код, так и соответствующий вторичный код, они могут храниться в виде одной длинной последовательности (отображающей окончательный комбинированный код для вывода) или в виде первичного и вторичного кодов по отдельности. Подразумевается, что последняя конфигурация является более компактной, поскольку в этом случае необходимо хранить только N1+N2 импульсов по сравнению с N1×N2 импульсов для хранения полной (комбинированной) кодовой последовательности. В других вариантах осуществления комбинаторная логика может использоваться только для хранения одного уровня иерархического кода, например первичных кодов.

В настоящем изобретении также предложен спутник, применимый в спутниковой навигационной системе, включающей группировку из множества спутников, каждый из которых передает сигнал, содержащий расширяющий код. Спутник имеет по меньшей мере одно устройство хранения кодов, которое содержит комбинаторную логику для хранения кода с памятью, содержащего фиксированный набор импульсов. Код с памятью соответствует расширяющему коду, входящему в сигнал, который передает спутник. Таким образом, подход, применяемый для генерации в приемнике расширяющего кода для корреляции с входным сигналом, также применим для генерации расширяющего кода для передачи спутником.

Кроме того, в настоящем изобретении предложен способ работы приемника, применимого в спутниковой навигационной системе, включающей группировку из множества спутников. Каждый спутник передает сигнал, содержащий расширяющий код. При осуществлении способа создают по меньшей мере одно устройство хранения кодов, которое содержит комбинаторную логику для хранения кода с памятью, содержащего фиксированный набор импульсов. Код с памятью соответствует расширяющему коду, входящему в сигнал, который передает спутник. При осуществлении способа дополнительно осуществляют корреляцию входного сигнала и расширяющего кода, хранящегося в комбинаторной логике.

В настоящем изобретении также предложен способ изготовления приемника, применимого в спутникового навигационной системе, включающей группировку из множества спутников, каждый из которых передает сигнал, содержащий расширяющий код. При осуществлении способа определяют расширяющий код спутника для хранения в приемнике и создают по меньшей мере одно устройство хранения кодов, содержащее комбинаторную логику для хранения фиксированного набора импульсов, соответствующих расширяющему коду спутника.

В одном из вариантов осуществления комбинаторную логику генерируют путем создания спецификации фиксированного набора импульсов на языке описания аппаратных средств. Затем эта спецификация может быть реализована на желаемой платформе с использованием логического синтеза. Отметим, что для определения желаемого выходного кода в спецификации комбинаторной логики, созданной на языке описания аппаратных средств, может использоваться константа. Соответственно, единственным изменением, необходимым для определения отличающегося расширяющего кода, является обновление значения константы.

Далее лишь в порядке примера подробно описаны различные варианты осуществления изобретения со ссылкой на следующие чертежи, на которых:

на фиг.1 показана блок-схема обычного линейного регистра сдвига с обратными связями (ЛРСОС),

на фиг.2 - блок-схема, иллюстрирующая хранение кода с памятью с использованием комбинаторной логики согласно одному из вариантов осуществления изобретения,

на фиг.3 - блок-схема, иллюстрирующая архитектуру приемника согласно одному из вариантов осуществления изобретения, в котором все коды с памятью хранятся в одном устройстве хранения кодов,

на фиг.4 - блок-схема, иллюстрирующая архитектуру приемника согласно другому варианту осуществления изобретения, в котором каждый код с памятью хранится в отдельном устройстве хранения кодов,

на фиг.5 - блок-схема, иллюстрирующая способ разработки устройства хранения кодов для хранения кодов с памятью согласно одному из вариантов осуществления изобретения и

на фиг.6 - пример блок-схемы на основе списка соединений (узлов), созданного проиллюстрированным на фиг.5 способом согласно одному из вариантов осуществления изобретения.

На фиг.2 схематически проиллюстрирован кодогенератор 10 с устройством 15 хранения кодов согласно одному из вариантов осуществления изобретения. Кодогенератор 10 используется для хранения и вывода одного или нескольких кодов с памятью и, следовательно, заменяет такое устройство, как показанный на фиг.1 ЛРСОС в обычном приемнике. С логической точки зрения можно считать, что кодогенератор 10 содержит два основных компонента, а именно устройство 15 хранения кодов и генератор 25 последовательностей. Устройство 15 хранения кодов содержит комбинаторную логику (логическую схему) 20, которую используют для хранения кода с памятью и обеспечения дешифрирования адресов. Генератор 25 последовательностей используют для определения адреса желаемой части кода с памятью для вывода путем загрузки соответствующих начальных адресов и приращения текущих адресов (Отметим, что при физической реализации функциональные возможности этих двух компонентов, по-видимому, будут объединены, как это более подробно пояснено далее, и поэтому между комбинаторной логикой и генератором последовательности не существует четкого разделения, тем не менее с логической или функциональной точки зрения оба компонента могут рассматриваться по отдельности).

В приведенном на фиг.2 примере комбинаторная логика 20 имеет определенное число выходов 50. Выходы 50 определены для заданного адреса в зависимости от конкретной конфигурации логических элементов в комбинаторной логике 20. Во время загрузки 40 в генератор 25 последовательностей адресов загружают начальный адрес 30. Затем адрес из генератора 25 последовательностей адресов в качестве адреса 45 вводят в устройство 15 хранения кодов, и на выходах 50 комбинаторной логики 20 появляется соответствующая часть кода с памятью.

Генератор последовательности адресов осуществляет приращения адреса 45 с каждым импульсом тактового сигнала 55 при условии наличия разрешающего входного сигнала 35. Вследствие этого на выходах 50 комбинаторной логики 20 появляются соответствующие доли или части кода с памятью. В противном случае при отсутствии разрешающего сигнала выбранный адрес 45 и, следовательно, выходы комбинаторной логики 20 остаются постоянными.

Подразумевается, что, поскольку логический блок 20 является комбинаторным, а не последовательным, в нем не хранится информация о состоянии. Следовательно, комбинаторную логику обычно не считают формой запоминающего устройства. Тем не менее конфигурацию логических элементов в комбинаторной логике 20 можно рассматривать как некую форму (аппаратно реализованной) памяти, и поэтому выходы 50 комбинаторной логики 20 соответствуют хранящемуся множеству битов (наименьших единиц информации). Таким образом, комбинаторная логика может считаться одной из форм постоянного запоминающего устройства (ПЗУ), в котором хранится множество битов для каждого адреса 45. Вместе с тем отмечаем, что "содержимое" комбинаторной логики является фиксированным (при условии, что блок комбинаторной логики реализован аппаратно), и не может быть обновлено в отличие от многих стандартных форм ПЗУ, таких как флэш-память, ЭСППЗУ, которые все же поддерживают определенную форму механизма записи. Кроме того, внутренняя конфигурация комбинаторной логики 20 является индивидуальной (заказной) для хранящегося множества битов в отличие от оперативного запоминающего устройства (ОЗУ), которое обычно состоит из стандартных ячеек памяти, в которые затем загружают значения данных. Иными словами, в большинстве обычных запоминающих устройств общая аппаратная структура запоминающего устройства и содержание данных, хранящихся в устройстве, логически разделены (аналогичное разделение также относится к показанной на фиг.1 архитектуре ЛРСОС). Вместе с тем в комбинаторной логике 20 такое разделение отсутствует, поскольку аппаратная структура непосредственно соответствует (т.е. отражает или отображает) фактическому содержанию хранящихся данных (плюс дешифрирование адресов).

Выходы 50 комбинаторной логики 20 могут быть рассчитаны на отображение любого заданного множества битов путем выбора соответствующей конфигурации логических элементов в комбинаторной логике (как это более подробно описано далее). Следовательно, проиллюстрированная на фиг.2 комбинаторная логика применима для хранения последовательности импульсов, соответствующей коду с памятью, и, таким образом, выходы 50 логического блока соответствуют последовательности импульсов кода с памятью (Подразумевается, что при этом задают соответствующее упорядоченное расположение выходов 50 комбинаторной логики 20 для согласования с последовательным характером кода с памятью. Это может быть достигнуто посредством слияния дешифрирования адресов с фактическим содержанием кода с памятью во время логического синтеза, как это более подробно описано далее).

В случае кода с памятью, имеющего длинную последовательность L, содержащую (например) несколько тысяч импульсов, обычно неудобно параллельно выводить все импульсы кода с памятью, поскольку для этого потребовалось бы очень большое число выходных выводов. Кроме того, для работы приемника обычно не требуется выводить сразу весь расширяющий код. Вместо этого комбинаторная логика 20 выводит подмножество одного или нескольких импульсов кода с памятью для каждого выбранного адреса 45.

Например, в зависимости от общей архитектуры приемника:

1. На каждое циклическое изменение адреса 45 может быть предусмотрен один импульс. Затем этот импульс маршрутизируют в единственный коррелятор приемника. В этом случае в комбинаторной логике 20 содержится только один код с памятью.

2. Если в комбинаторной логике 20 содержатся несколько кодов с памятью (например, коды с памятью для нескольких сигналов и(или) нескольких спутников), должен быть предусмотрен коллективный доступ с разделением времени для нескольких корреляторов приемника. При такой реализации комбинаторная логика 20 выводит первую подпоследовательность первого кода с памятью, когда адрес 45 прирастает до определенного значения. Эту подпоследовательность маршрутизируют в соответствующий первый коррелятор приемника. Пока первый коррелятор приемника обрабатывает эту подпоследовательность, комбинаторная логика 20 обеспечивает различные корреляторы приемника другими подпоследовательностями различных кодов с памятью. После того, как обслужены все корреляторы приемника, генератор последовательности возвращается к первому коррелятору приемника и предоставляет ему вторую подпоследовательность первого кода с памятью.

Длина отдельных подпоследовательносте