Новый законченный ГНСС-модуль для «Интернета вещей» Teseo-LIV3F производства STMicroelectronics
Первый модуль на базе собственного чипа
Один из ведущих мировых производителей активных электронных компонентов STMicroelectronics в конце 2018 года объявил о начале массовых продаж ГНСС-модуля Teseo-LIV3F, изготовленного на базе собственного чипа Teseo-III [1].
Это первый опыт STM в изготовлении и выводе на рынок законченного модуля на базе собственного чипа. Прежде руководство STM придерживалось идеи, что производитель чипов отдает долю рынка модулей на базе своего чипа сторонним фирмам.
Сегодня острая конкурентная борьба ведется между такими крупнейшими ведущими производителями ГНСС-чипов, как Broadcom, CSR, Furuno, Mediatek, Qualcomm, STMicroelectronics, Texas Instruments.
В настоящее время 27 крупных фирм мира выпускают около трехсот моделей ГНСС-модулей самого различного назначения [2].
В первую пятерку этого рынка входят такие хорошо известные фирмы, как:
- u-blox AG — 52 модели ГНСС;
- Locosys — 27 моделейГНСС;
- FURUNO Electric Co., Ltd — 24 модели;
- Telit Communications — 22 модели;
- Navisys — 21 модель.
Лидером в производстве и продажах ГНСС-модулей является концерн u-blox, который выпускает 52 модели GNSS-приемников, способных удовлетворить требованиям большинства популярных приложений.
Среди этих двадцати семи фирм есть и такие, которые выпускают модули на базе чипов STM Teseo-III, например ST-1612-DG, Locosys [3] и L26-DR Quectel [4]. Одна из причин, побудивших STMicroelectronics заняться производством ГНСС-модулей, была связана со все возрастающей популярностью рынка оборудования, предназначенного для «Интернета вещей» (IoT). Несмотря на то, что сейчас выпускается около трехсот моделей ГНСС-модулей, всего несколько из них удовлетворяют трем базовым принципам изделий для IoT: минимально необходимая функциональность, минимальное энергопотребление, минимальные габаритные размеры. Именно эти требования и послужили основой при разработке модуля Teseo-LIV3F. Другая причина производства модуля заключалась в том, что никто, кроме разработчиков STM, не знает лучше все особенности функционирования базового чипа и всех деталей C-code, необходимых для управления модулем с помощью микроконтроллера STM32.
Основные технические характеристики модуля Teseo-LIV3F
Модуль Teseo-LIV3F спроектирован таким образом, чтобы максимально облегчить его использование в конечном изделии. В самом простейшем варианте для запуска модуля в работу достаточно подать на него напряжение питания, подключить пассивную антенну и вывести две линии для связи с управляющим микроконтроллером — Rx и Tx (рис. 1) [5].
Простота интеграции Teseo-LIV3F и совместимость с Arduino открывает широкие возможности для использования этого модуля в профессиональных и любительских устройствах, работающих в сетях LPWAN, в частности GNSS-LoRa [6, 7].
Следует обратить особое внимание на встроенную флэш-память 16 Мбит, которая позволяет сохранять результаты позиционирования, работать в режиме Assisted GNSS с 7-дневными альманахами и эфемеридами, обновлять и переконфигурировать программное обеспечение модуля. Режим Assisted GNSS предоставляет модулю возможность сразу после включения определять местоположение, используя недельные данные положения ближайшей спутниковой группировки, а также продолжать поиск спутников в закрытых помещениях
и в условиях отсутствия реальных сигналов.
В модуле поддерживается уровень ST Android GNSS Hardware Abstraction Layer — HAL, который предусматривает использование устройств на базе Teseo-LIV3F со смартфонами и планшетами с поддержкой операционной среды Android.
Модуль выполнен в конструктиве LCC-18. Внешний вид модуля Teseo-LIV3F показан на рис. 2.
Из основных отличительных черт модуля Teseo-LIV3F нужно, прежде всего, отметить следующие:
- одновременная работа с космическими навигационными системами GPS L1C/A, SBAS L1C/A, QZSS L1C/A, GLONASS L1OF, BeiDou B1, Galileo E1B/C;
- чувствительность: –163 дБм;
- погрешность определения координат в режиме Standalone: 1,5 м (CEP);
- встроенная память: Flash 16 Мбит для хранения ПО, результатов определения местоположении, скорости, времени, а также информации, необходимой для Assisted GNSS;
- встроенное программное обеспечение управления, выполняющее все операции GNSS, включая поиск спутников, отслеживание, навигацию и вывод данных в NMEA;
- три режима работы даталоггера;
- программируемая конфигурация режимов работы и протоколов вывода данных;
- контроль геозон (Geofencing);
- поддержка одометра;
- поддержка интерфейсов UART и I2C;
- режимработыPositioning Sensor;
- работаврежимеDifferential-GPS всоответствиисRTCM; Commission for Maritime Services;
- широкий диапазон напряжений питания: 2,1–4,3 В;
- встроенный генератор реального времени: 32 кГц (RTC);
- миниатюрный корпус LCC: 9,7×10,1×2,5 мм;
- интервал рабочих температур: –40…+85 °C
- потребляемая мощность в режиме Standby: 17 мкВт;
- потребляемая мощность в режиме Tracking: 75 мВт.
Блок-схема модуля Teseo-LIV3F показана на рис. 3 [8].
Базовым элементом модуля служит ГНСС-чип Teseo-III производства STMicroelectronics. Радиочастотный тракт включает входной каскад (RF — Front-End) и 5-сигнальный процессор (Baseband processor — BBP) последнего поколения G3BB+, являющийся проприетарной интеллектуальной собственностью STMicroelectronics.
Сигнальный процессор полностью совместим с технологиями обработки сигналов основных мировых космических навигационных систем (КНС): GPS, Galileo, GLONASS и BeiDou.
Во входном каскаде (RF) чипа Teseo-III используется метод понижения частоты до промежуточной с дальнейшей цифровой обработкой сигнала. Цифровой конвертер DDC снижает частоту сигналов спутников до промежуточной: GPS-Galileo — от 1575,42 до 4,092 МГц; GLONASS — от 1601,718 до 8,57 МГц; BeiDou — от 1561,098 до 10,23 МГц. Сигнальный процессор обрабатывает сигналы на промежуточной частоте, выполняет операции дискретизации и кодирование данных. Кроме того, BBP контролирует поиск и сопровождение спутников по отдельной группировке или одновременно по всем. При этом количество контролируемых каналов может быть задано программным образом. Неиспользуемые каналы отключаются, что экономит электропитание.
Кварцевый генератор с термокомпенсацией TCXO вырабатывает ультрастабилизированную тактовую частоту 26 МГц, необходимую для контроля процесса работы понижающего конвертера в RF-блоке. От стабильности функционирования TCXO зависит время первой фиксации (TTFF — Time To First Fix) и работа модуля в условиях слабых и отраженных сигналов.
Все функциональные блоки базового чипа управляются с помощью мощного процессорного ядра ARM946 в соответствии со стандартом AMBA. Модуль имеет 16 Мбит программируемой флэш-памяти, предназначенной для хранения встроенного программного обеспечения, параметров работы и альманахов КНС.
Блок питания модуля содержит схему SMPS (switched-mode power supply), обеспечивающую распределенный вариант электропитания с переключением режимов работы, и микромощный LDO-стабилизатор STMicroelectronics с малым падением напряжения BKLDO (Backup low-dropout).
Для ввода питания в модуле Teseo-LIV3F используются три линии: VCC — pin 8, VCC_IO — pin 7 и VBAT — pin 6 (рис. 1). Модуль имеет расширенный диапазон основного напряжения питания VCC: 2,1–4,3 В. Для того чтобы избежать конфликтных ситуаций при бросках тока, при включении питания и изменении режимов работы, рекомендуется шунтировать вывод VCC с помощью дросселя, например 27 нГн
Murata LQG15HS27NJ02.
Линия VBAT предназначена для электроснабжения слаботочных схем резервного RAM и RTC. Целесообразно задействовать эту линию от отдельного источника, который всегда находится во включенном состоянии. Диапазон изменений VBAT также составляет 2,1–4,3 В. По линии VCC_IO (pin 7) подается питание 3,3 В на пользовательские вводы/выводы IO.
Модуль оснащен схемой реального времени RTC и резервной статической памятью ОЗУ 32 кбайт. Эти схемы, которые всегда находятся под напряжением питания, используются для вывода модуля из экономичного режима энергопотребления, а также обеспечивают дальнейший теплый или горячий старт ГНСС-приемника при выходе на нормальный режим работы. При этом отсчет времени осуществляется с помощью RTC, тактируемых частотой 32,768 кГц. Резервное СОЗУ предназначено для сохранения эфемерид и других параметров КНС, применяемых при теплом или горячем старте.
Модуль Teseo-LIV3F имеет два коммуникационных порта: UART и I2C (рис. 4). Последовательный порт UART, предназначенный для обмена данными в NMEA-формате с удаленным хостом, удовлетворяет стандарту 16C650 UART. Он работает с классическими коммуникационными параметрами, например 8 data bits; No parity; 1 stop bit; 9600 bauds rate. Скорость передачи данных выбирается программно и может принимать значения: 9600, 14400, 19200, 38400, 57600, 115200, 230400, 460800, 921600 бит/с.
Этот интерфейс имеет две линии RX0 и TX0 pin, с помощью которых реализуется прием и передача данных с использованием буферной памяти предварительного хранения FIFO. Буферная память позволяет передавать до 64 байт информации в посылке и принимать 64 байт информации с четырьмя статусными битами (break, frame, parity, overrun). Структура фреймов для обоих направлений передачи подробно описана в документе [9].
Для пакетов, передаваемых от Teseo-LIV3F на удаленный хост-сервер, фрейм должен включать следующую информацию:
- незапрашиваемая информация, например координаты;
- ответ на запросы сервера;
- подтверждение (Acknowledge — ACK);
- сообщение об ошибке NACK.
В посылке, передаваемой от удаленного хоста к модулю Teseo-LIV3F,содержатсязапросыкомандноготипа: Read Requests Write reset, initialization Requests. Управление интерфейсом UART осуществляется с помощью стандартных команд NMEA и специальных команд, разработанных STMicroelectronics.
Модуль Teseo-LIV3F оснащен встроенным программируемым 2-проводным интерфейсом I2C, разработанным Philips Semiconductor. Следует подчеркнуть, что этот интерфейс не может функционировать в полнодуплексном режиме. В модуле Teseo-LIV3F I2C использует только две двунаправленные линии с открытым коллектором и подтягивающими резисторами: Serial Data Line (pin SDA) и Serial Clock Line (pin SCL).
Teseo-LIV3F всегда выступает в роли ведомого и не может самостоятельно начать сеанс связи. Удаленный сервер периодически направляет модулю запросы о наличии информации, готовой к пересылке.
Из основных свойств I2C Teseo-LIV3F можно отметить следующие:
- скорость передачи в нормальном режиме работы: 100 кГц;
- скорость передачи в ускоренном режиме работы: 400 кГц;
- программируемая адресация и режимы работы.
Так же, как и UART, интерфейс I2C поддерживает сообщения NMEA. Модуль Teseo-LIV3F поддерживает протоколы NMEA 0183 Version 4.0
и RTCM Version 2.3 [10, 11].
Интерфейс I2C предназначен для навигационных приложений, в которых GNSS непрерывно заполняет буфер навигационными сообщениями о координатах, скорости, высоте и другими параметрами контролируемого объекта. При этом внешний микроконтроллер должен периодически скачивать такую информацию и освобождать буферную память.
Стандартные NMEA-сообщения через интерфейс I2C представляют собой зеркальные отражения NMEA-сообщений, отправляемых по интерфейсу UART.
В ряде случаев удаленный хост не контролирует постоянно поток NMEA-сообщений, а запрашивает их только в случае реализации каких-либо внешних событий, например срабатывание триггера превышения порогов акселерометра, гироскопа и т. д. Такие приложения получили название I2C Positioning Sensor.
Целесообразно отметить назначение остальных контактных площадок модуля Teseo-LIV3F. На ввод RF_IN (pin 10) подается сигнал от внешнего малошумящего антенного усилителя. Схема подключения внешней антенны через LNA-усилитель показана на рис. 5.
Внешний малошумящий усилитель (LNA) подразумевает использование пассивной антенны с усилителем на той же самой плате, на которой расположен модуль Teseo-LIV3F.
В этом случае наилучший результат будет достигнут, если разместить LNA и SAW-фильтр непосредственно перед RF-входом модуля.
В качестве пассивного варианта могут быть использованы как микрополосковые (patch antenna), так и чип-антенны (chip antenna), например универсальная модель Taoglas CGGBP.25.4.A.02 GPS+Glonass+BeiDou 25х25.
В том случае, когда применяется малошумящий антенный усилитель (LNA), блок активной антенны может быть размещен за пределами печатной платы конечного устройства, на которой напаян сам модуль Teseo-LIV3F. При этом следует учитывать, что длина кабеля должна быть не менее 2 см.
Для оптимизации экономного энергопотребления в спящем режиме следует предусмотреть возможность выключения LNA через вывод, совместимый с линией питания VCC_IO. Для этой цели используется GPIO модуля AntOFF (pin 13). Кроме того, с помощью этого вывода можно отключать ток активной антенны (рис. 5). Подтягивающий резистор 10 кОм необходим для поддержания низкого уровня в спящем режиме.
Контакт PPS (pin 4) предназначен для секундной метки времени (One Pulse Per Second). Период импульсов на этом выводе может быть установлен с помощью специальной команды. Рекомендуется предусмотреть вариант шунтирования данного вывода на «землю» с помощью емкости 56 пФ.
Вывод Wake_Up (pin 5) предназначен для подачи внешнего сигнала прерывания, выводящего модуль из режима экономии энергопотребления.
Аппаратная перезагрузка модуля реализуется через линию SYS_RESETn (pin 9) подачей на него сигнала низкого уровня.
Основные технические характеристики модуля Teseo-LIV3F приведены в таблице 1.
Параметр |
GNSS |
GPS + GLONASS |
GPS + BeiDou |
GPS + Galileo |
Единицы |
Базовый чип |
Teseo-III STM, 48 каналов слежения + 2 быстрых канала |
||||
Время первой фиксации |
Холодный старт |
< 32 |
< 36 |
< 30 |
с |
Теплый старт |
< 25 |
< 29 |
< 26 |
||
Горячий старт |
< 1,5 |
< 2,5 |
< 2 |
||
Чувствительность |
Слежение |
–163 |
–163 |
–163 |
дБм |
Навигация |
–158 |
–158 |
–158 |
||
Повторный захват |
–156 |
–156 |
–156 |
||
Холодный старт |
–147 |
–147 |
–147 |
||
Теплый старт |
–148 |
–148 |
–148 |
||
Горячий старт |
–154 |
–151 |
–154 |
||
Максимальный темп выдачи данных |
– |
10 |
10 |
10 |
Гц |
Точность измерения скорости |
50% @ 30 м/с |
0,01 |
– |
0,01 |
м/с |
50% @ 0,5g |
0,1 |
– |
0,1 |
м/с |
|
Точность измерения курса |
50% @ 30 м/с |
0,01 |
– |
0,01 |
° |
50% @ 0,5g |
2,3 |
– |
2,4 |
° |
|
Точность определения плановых координат |
Автономныйрежим |
< 1,8 |
< 1,5 |
– |
м |
SBAS |
< 1,5 |
– |
– |
|
|
Точность определения маркера времени |
RMS 99% |
– |
– |
– |
% |
Габаритные размеры |
9,7×10,1×2,5 |
мм |
|
|
|
Предельные эксплуатационные значения |
Перегрузки |
< 4,5 |
< 4 |
< 4,5 |
g |
Высота |
18000 |
18000 |
18000 |
м |
|
Скорость |
515 |
515 |
515 |
м/с |
|
Интервал рабочих температур: –40…+85 °С |
|||||
Напряжение питания: 2,1–4,3 В |
В модуле Teseo-LIV3F поддерживаются режимы экономного энергопотребления.
Библиотека программного обеспечения модуля Low Power Management предусматривает два перестраиваемых режима экономного энергопотребления (Adaptive Low Power Modes — LPM): активный (Active Low Power Mode — A LPM) и ждущий (Standby Periodic Low Power Mode — SP LPM).
При работе в активном режиме модуль выполняет следующие действия:
- передает информацию о зафиксированных спутниках (FIX) в заданном темпе от 1 до 10 Гц;
- автономным образом обновляет эфемериды;
- поддерживает калибровки RTC.
Периодический режим SP LPM используется в тех случаях, когда не нужна высокая точность навигационных данных. В этом варианте интервал выдачи сообщений о фиксации спутников составляет 5 с–24 ч.
В зависимости от выбранного интервала возможны два типа работы модуля: работа с прерываниями Wait For Interrupt WFI и режим глубокого сна Standby state.
Модуль может ожидать прерывание WFI, когда он работает в режиме A LPM, при котором часы системного времени переключены в состояние генератора ждущего режима (RING oscillator). В этом случае удаленный сервер посылает по последовательному порту NMEA-сообщение, активирующее линию прерывания Wakeup (External Interrupt, Pin pin 5).
Состояние Standby State (SS) реализуется в случае, когда модуль находится в состоянии SP LPM. Переключение в режим SS может быть осуществлено аппаратным образом при выключении основного питания OFF VCC (pin 6). При этом отключаются также питание VCC_IO (pin 7), VCC_RF (pin 14) и линия SYS_RESETn (pin 9) устанавливаются на низкий уровень (рис. 1). В режиме SS единственное питание VBAT подается только на схемы резервного СОЗУ и часы реального времени. Ток потребления в этом режиме не превышает 6 мкА. Режим может быть активирован также с помощью программного обеспечения.
Режим SS определяется комбинацией следующих факторов:
- система находится в состоянии зафиксированных спутников с точным позиционированием (Position Accurate Сondition) (FIX available);
- эфемериды доступны для каждой из контролируемых спутниковых группировок;
- альманахи, эфемериды и другая навигационная информация получены модулем для каждого из зафиксированных спутников.
Структурная схема работы модуля в режиме Periodic Low Power Mode показана на рис. 6.
В состоянии приостановки SUSPEND в памяти модуля сохранены предварительно накопленные навигационные данные о доступных спутниках всех поддерживаемых группировок. В этом состоянии работают три таймера: FixPeriod, EPH refresh и RTC calibration. Первые два таймера ответственны за обновления данных о зафиксированных спутниках и эфемеридах. Таймер RTC контролирует нахождение в состоянии SUSPEND. Если стандартные данные NMEA не будут рассчитаны в течение 8 с, модуль снова возвращается в состояние ожидания SUSPEND. Если таймер обновления эфемерид срабатывает во время вычисления, происходит переход в состояние EPH-REFRESH, а сигнал GNSS декодируется в течение 40–60 с.
Состояние EPH_REFRESH соответствует периоду, в течение которого загружаются новые данные эфемерид. В случае стандартных настроек этот режим осуществляется в течение 40–60 с каждые 32 мин.
Калибровка RTC реализуется при первом переходе модуля в состояние SUSPEND и повторяется каждые 5 мин.
Управление режимами энергосбережения осуществляется с помощью стандартных NMEA-команд $PSTMLOWPOWERONOFF, которые конфигурируют блоки данных CDB-ID 200 (Application ON/OFF bit 32) и CDB-ID 257 (Periodic operating mode setting 1).
Кроме того, существует специальная команда PSTMCFGLPA, разработанная STM для оптимизации процессов энергосбережения.
Программное обеспечение модуля Teseo-LIV3F
Модуль Teseo-LIV3F поставляется с полным комплектом программного обеспечения STMicroelectronics, позволяющим реализовать следующие базовые функции GNSS: обработка сигналов всех крупных спутниковых систем навигации; поиск, слежение и сопровождение спутников; вычисление, навигационные параметры и оформление протокола в стандартном формате NMEA или в бинарном формате STM. Кроме того, ПО модуля Teseo-LIV3F включает поддержку таких важных приложений, как Assisted GNSS (ST-AGNSS), Data Logging, Geofencing, Odometer, Adaptive Low Power Modes.
С помощью команды $ PSTMGETSWVER можно в формате NMEA выбрать все возможные приложения программного обеспечения: GNSS Library, GPS App Version, Binary Image Version, Sw configuration Version, WAAS Library Version, AGPS Library Version, Chip Version, Log message.
Во время загрузки модуля Teseo-LIV3F на текущем последовательном порту выводится информация об используемой конфигурации ПО.
Модуль Teseo-LIV3F поддерживает протоколы NMEA 0183 Version 3.1, и RTCM Version 2.3.
Формат связи между удаленным сервером и модулем Teseo-LIV3F может быть установлен различными способами в зависимости от того, как взаимодействует хост с процессором модуля — напрямую или через встроенное программное обеспечение чипа.
Модуль Teseo-LIV3F обрабатывает сигналы ССН и выдает результаты в виде стандартных NMEA-сообщений: GNS, GPGGA, $GPGLL, GSA, GSV, GPRMC, $GPVTG, GPZDA, GPGST, DTM.
Кроме того, концерн STMicroelectronics разработал специальные проприетарные сообщения ST NMEA, показанные в таблице 2. Эти сообщения выводят важную дополнительную информацию о зарегистрированных спутниках, которая не была определена в стандартном протоколе NMEA. Все специальные сообщения начинаются с символов $PSTM.
Сообщение |
Описание |
$PSTMDIFF |
Данные дифференциальной коррекции |
$PSTMPRES |
Результаты позиционирования |
$PSTMVRES |
Результаты определения скорости |
$PSTMPA |
Алгоритм позиционирования |
$PSTMSAT |
Спутниковая информация |
$PSTMSBAS |
Дополнения |
$PSTMSBASCORR |
Данные спутниковой коррекции |
$PSTMTIM |
Системное время |
$PSTMTG |
Время и количество использованных спутников |
$PSTMTS |
Отслеживаемые спутниковые данные |
$PSTMKFCOV |
Стандартное отклонение и ковариация |
$PSTMAGPS10 |
ST-AGPS прогноз эфемерид |
$PSTMNOTCHSTATUS |
Состояние фильтра |
$PSTMCPU |
Процессор и настройка скорости CPU |
$PSTMPPSDATA |
Темп выдачи сообщений |
$PSTMTRAIMSTATUS |
Состояние TRAIM |
$PSTMTRAIMUSED |
Спутники, использованные для временной коррекции |
$PSTMTRAIMRES |
Дополнительные сообщения и исправления |
$PSTMTRAIMREMOVED |
Спутники, удаленные алгоритмом временной коррекции |
$PSTMLOWPOWERDATA |
Режим с низким энергопотреблением |
$PSTMGALILEOGGTO |
Сообщения системы GGTO |
Программное обеспечение Teseo-LIV3F поддерживает системные конфигурирующие команды в соответствии с NMEA 0183 v 3.1. Перечень стандартных конфигурирующих команд, используемых модулем, приведен в таблице 3.
Команда |
Описание команды |
PSTMCFGPORT |
Конфигурация порта символьных данных |
PSTMCFGCLKS |
Режим часов и настройка скорости |
PSTMCFGMSGL |
Конфигурация списка сообщений |
PSTMCFGTHGNSS |
Настройка порога алгоритма GNSS |
PSTMCFGTDATA |
Настройка времени и данных |
PSTMCFGCONST |
Связанная конфигурация группировки |
PSTMCFGSBAS |
Конфигурация алгоритма SBAS |
PSTMCFGPPSGEN |
Общая конфигурация PPS |
PSTMCFGPPSPUL |
PPS Pulse, связанная конфигурация |
PSTMCFGPPSSAT |
PPS Satellite, связанная конфигурация |
PSTMCFGPOSHOLD |
Конфигурация удержания позиции |
PSTMCFGTRAIM |
Конфигурация PPS Traim |
PSTMCFGSATCOMP |
Настройка спутниковой компенсации PPS |
PSTMCFGLPA |
Конфигурация алгоритма малой мощности |
PSTMCFGAGPS |
Вспомогательная конфигурация GNSS |
PSTMCFGAJM |
Конфигурация подавления помех |
PSTMCFGODO |
Конфигурация одометра |
PSTMCFGLOG |
Конфигурация даталогера |
PSTMCFGGEOFENCE |
Конфигурация геозон |
Каждая команда содержит адрес, параметр и контрольную сумму: <command-ID>, <parameters>*<checksum><cr><lf>.
На рис. 7 схематически показан процесс конфигурирования модуля Teseo-LIV3F с помощью протокола NMEA. Все параметры конфигурации сгруппированы в конфигурирующие блоки данных (Configuration Data Blocks — CDB). Настройка по умолчанию для блока данных конфигурации задана специальным двоичным файлом. При стартовой загрузке ПО возможны три состояния системы, в зависимости от конкретных CDB. Текущая конфигурация (Current configuration), записанная в RAM, определяет каждый конкретный параметр, заданный пользователем. Конфигурация по умолчанию (Default configuration) хранится во флэш-памяти и соответствует заводским настройкам. Резервная копия ПЗУ хранится в энергонезависимой памяти (NVM stored configuration). Она определяет все параметры, модифицированные пользователем.
Кроме конфигурирующих ПО, модуль поддерживает специальные команды ST NMEA Command, позволяющие за одно действие провести несколько операций (табл. 4).
Команда |
Описание |
$PSTMINITGPS |
Инициализация положения и времени GPS |
$PSTMINITTIME |
Инициализация времени GPS с использованием формата UTC |
$PSTMINITFRQ |
Инициализация центральной частоты |
$PSTMSETRANGE |
Установка частотного диапазона для поиска спутников |
$PSTMCLREPHS |
Очистка всех эфемерид |
$PSTMDUMPEPHEMS |
Сброс эфемерид |
$PSTMEPHEM |
Загрузка эфемерид |
$PSTMCLRALMS |
Очистка всех альманахов |
$PSTMDUMPALMANAC |
Сброс альманахов |
$PSTMALMANAC |
Загрузка альманахов |
$PSTMCOLD |
Холодный старт |
$PSTMWARM |
Теплый старт |
$PSTMHOT |
Горячий старт |
$PSTMSRR |
Перезапуск системы |
$PSTMGPSRESET |
Перезапуск GPS |
$PSTMGPSSUSPEND |
Режим ожидания GPS |
$PSTMGPSRESTART |
Старт GPS |
$PSTMGNSSINV |
Недействительный статус зафиксированного GNSS спутника |
$PSTMTIMEINV |
Недействительно время GPS |
$PSTMSBASONOFF |
Включить/отключить действие SBAS |
$PSTMSBASSAT |
Установка идентификатора спутника SBAS |
$PSTMGETRTCTIME |
Текущее время RTC |
$PSTMSELECTDATUM |
Установка геодезических локальных данных, отличных от WGS84 |
$PSTMDATUMSETPARAM |
Преобразование локальных геодезических данных в WGS84 |
$PSTMSETCONSTMASK |
Установка маски созвездия GNSS |
$PSTMNOTCH |
Установка режима работы ANF |
$PSTMPPS |
Командный интерфейс для управления скоростью вывода информации |
$PSTMSETPAR |
Установка параметров системы в блоке данных конфигурации |
$PSTMGETPAR |
Получить системный параметр из блока данных конфигурации |
$PSTMSAVEPAR |
Сохранение системных параметров в резервной памяти GNSS |
$PSTMRESTOREPAR |
Восстановление системных параметров (заводские настройки) |
$PSTMNMEAREQUEST |
Отправить набор сообщений NMEA в соответствии с сообщением ввода |
В качестве примера можно привести последовательность команд установки параметров UART:
- $PSTMSETPAR,3102,0×9 — установка скорости передачи данных;
- $PSTMSAVEPAR — сохранение параметров;
- $PSTMSRR — перезапуск модуля с новыми параметрами.
Модуль Teseo-LIV3F поддерживает работу с корректирующими поправками реального времени в соответствии с протоколом RTCM 2.3. Модуль обеспечивает прием сигналов от всех навигационных спутников, находящихся в зоне его радиовидимости. При работе с протоколом RTCM модуль обрабатывает навигационную информацию, используя известные точные координаты опорной станции. Эта дополнительная информация позволяет рассчитать дифференциальные поправки к измеренным псевдодальностям относительно каждого спутника в виде стандартных сообщений в формате RTCM 2.3, описание которых приведено в таблице 5.
Код сообщения RTCM |
Описание |
RTCM#1 |
Коды ошибок дифференциальной коррекции GPS |
RTCM#9 |
Частичная дифференциальная коррекция GPS |
RTCM#31 |
Коды ошибок дифференциальной коррекции ГЛОНАСС |
RTCM#34 |
Частичная дифференциальная коррекция ГЛОНАСС |
Сообщения 1 и 31 соответствуют кодам ошибки GPS и ГЛОНАСС, определенным с помощью соответствующей опорной станции в одно и то же время.
Сообщения 9 и 34 содержат частичную корректирующую информацию о кодах ошибок спутников GPS и ГЛОНАСС соответственно. Для получения полной информации необходимы дополнительные сообщения. Как правило, сообщения 9 и 34 содержат дополнительные уточнения и исправления, которые не были отправлены в предыдущих сообщениях.
Возможность работы с протоколом RTCM активируется в блоке CDB-ID 200. Других дополнительных настроек не требуется.
В модуле поддерживается режим A-GNSS (Assisted GNSS), позволяющий существенно уменьшить время первого определения координат, которое зависит от актуальности хранящегося в памяти приемника альманаха и от орбитальных данных (эфемерид). Система вспомогательных серверов (Assisted GNSS), постоянно собирающих и обрабатывающих информацию со всех спутниковых группировок, снабжает Teseo-LIV3F свежими альманахами и эфемеридами, полученными для видимых модулем спутников. Тем самым значительно сокращается время холодного и теплого старта.
При работе в автономном режиме STAGNSS autonomous модуль использует ранее полученные реальные эфемериды, сохраненные в его внутренней памяти. Эти данные можно с некоторой ошибкой использовать в течение пяти дней при холодном и теплом старте. По мере поступления новых данных они загружаются в память модуля. Работа в этом режиме запускается командой с удаленного сервера $PSTMSTAGPSONOFF. Выбор NMEA-формата сообщения модуля при этом определяется командами $PSTMAGPS и $PSTMAGLO.
При работе с ассистирующим сервером применяется режим Predicted AGNSS (PAGNSS), при котором модуль имеет доступ к сети связи этого сервера. В таком случае ST-AGNSS использует технологию GPStream фирмы Rx Networks, позволяющую прогнозировать поведение спутников системы GPS на орбите. Подробное описание данной методики можно посмотреть на сайте фирмы Rx Networks. Уникальная методика моделирования эфемерид GPStream увеличивает зону приема сигнала GPS в городской местности и уменьшает время загрузки навигационного приложения до нескольких секунд при холодном и теплом старте. Основное преимущество подобной технологии заключается в том, что она имеет открытую, независимую архитектуру, позволяющую интегрировать ее в любые сети, облегчая и ускоряя интеграцию с любыми сетями. Продукция Rx Networks совместима с чипами других производителей. В частности, системы GPStream PGPS и GPStream SAGPS имеют интерфейс, совместимый с устройствами GPS-навигации таких известных концернов, как, например, STMicroelectronics, Texas Instruments, Ericsson, Infineon, uBlox, Marvell, Atmel, CSR/SiRF, Atheros, Intel и других.
Технология GPStream фирмы Rx Networks предоставляет пользователю возможность свободно использовать устройства с поддержкой GPStream PGPS для любых сетевых технологий, а устройства с GPStream SAGPS в системах с ограниченным или запрещенным сетевым доступом.
В режиме Network Assisted сеть ассистирующих станций через GPStream снабжает модуль информацией, на основе которой формируется прогноз оперативных эфемерид на следующие
14 суток для ССН ГЛОНАСС и GPS. Это уникальное решение сочетает преимущество универсального протокола A-GNSS и легкий доступ к данным опорных станций. При этом дополнительные данные занимают всего около 8 кбайт памяти при еженедельном обновлении. Начальная фаза загрузки информации, необходимой для моделирования эфемерид, получила название «порождающий код» (Seed ST-AGNSS).
Разница между двумя режимами работы A-GNSS заключается в том, что в случае автономной работы ST-AGNSS модуль использует только свои собственные ранее накопленные данные эфемерид. В варианте P-AGNSS управляющий сервер должен получить от ассистирующей станции порождающий код (Seed ST-AGNSS) и передать его модулю Teseo-LIV3F. В то же время возможен переход от режима P-AGNSS к 14-дневному. Работа в каждом из режимов задается с помощью специальных команд.
Передача кодов инициализации (seed) осуществляется по следующей схеме:
- хост генерирует запрос HTTP-серверу ассистирующей поддержки;
- сервер передает пакет данных с порождающим кодом (Seed ST-AGNSS) на хост;
- хост пересылает Seed ST-AGNSS модулю Teseo-LIV3F;
- программное обеспечение модуля генерирует прогноз эфемирид на ближайшие 14 суток.
Адрес URL запрашивается в следующем формате: http://{server address}:{port number}/{request string}. Адрес сервера и номер порта предоставляются службой поддержки Rx Networks.
В строке {request string} указываются необходимые параметры, такие, например, как время загрузки, идентификатор поставщика оборудования (для ST — Rom20Bub78), дополнительный идентификатор модели (ST-TODO), запрос ключа пароля доступа.
В модуле Teseo-LIV3F поддерживается версия PGPS 7.x seeds, в которой данные по спутникам ГЛОНАСС и GPS в бинарном формате передаются в отдельных 56 блоках. Каждый блок данных, соответствующий отдельному спутнику, пересылается модулю с помощью специальных NMEA-команд.
Подробным образом работа модуля Teseo-LIV3F с сервером Rx Networks Assisted GNSS описана в документе [15].
Модуль Teseo-LIV3F может действовать в режиме реального времени RTC AGNSS при наличии сетевого соединения, с помощью которого осуществляются загрузки с ассистирующего сервера таких параметров видимой спутниковой группировки, как текущее время, эфемериды, альманахи, оценочное положение. Все вспомогательные данные записываются в резервную память модуля.
Работа с ассистирующими данными реализуется посредством специальных команд NMEA:
- $PSTMINITTIME — текущее время;
- $PSTMINITGPS — текущее время и позиция;
- $PSTMEPHEM — эфемериды;
- $PSTMALMANAC — альманахи.
Кроме формата NMEA, данные модуля Teseo-LIV3F могут быть выведены и в бинарном формате (PSTMVER,BINIMG_4.5.5_ARM*1B).
Двоичный формат может быть использован для конфигурирования блоков данных и изменения заводских настроек. Стандартная настройка конфигурации каждого блока данных жестко зашита в двоичном коде.
Подробное описание работы модуля Teseo-LIV3F с сообщениями и командами стандартов NMEA, RTCM и Binary приведено в [14].
Программное обеспечение модуля поддерживает ряд таких важных функций, как, например, регистрация и запись текущих навигационных параметров (Data Logging — DL), работа с геозонами (Geofencing), измерение пройденного пути (Odometer).
Функция DL конфигурируется с помощью блоков данных CDB-266/267, в которых задаются параметры: минимальная скорость записи данных, минимальный интервал между значениями, тип фиксируемых данных, параметры буферной памяти (кольцевой или стандартный буфер). Для работы с этой функцией используются команды PSTMLOG CREATE/START/STOP/ERASE/STATUS/REQQUERY.
Возможны два сценария работы даталогера. В первом варианте модуль Teseo-LIV3F самостоятельно посылает уведомление хосту о заполнении буфера через порт UART. При этом хосту не нужно постоянно опрашивать модуль.
Во втором случае хост периодически должен отправлять команду запроса статуса модуля — PSTMLOGREQSTATUS с последующими операциями чтения и записи по интерфейсам I2C/SPI.
Функция контроля геозоны позволяет модулю выдавать соответствующее сообщение NMEA при пересечении заданной зоны координат. Программное обеспечение Teseo-LIV3F поддерживает как минимум восемь круговых перестраиваемых геозон. Для этой функции также возможны два варианта. В одном случае хост запрашивает состояние модуля с использованием I2C и SPI. В другом варианте модуль самостоятельно шлет NMEA-сообщение при пересечении геозоны. Для работы с этой функцией используются команды PSTMGEOFENCE CFG/REQ. Параметры контроля геозон задаются в блоке CDB 268.
Функция одометра Odometer позволяет определять пройденное модулем расстояние при использовании только данных позиционирования. Опция Odometer имеет только два состояния — «активен» и «не активен». При активации одометр сообщает расстояние от «земли» до последнего сброса. Одометр можно настроить и включить в конфигураторе прошивки через CDB-ID. Одометр также может послать сообщение NMEA, когда запрограммированное расстояние будет пройдено. Функция одометра управляется командами PSTMODO START/STOP/RESET.
Из стандартных опций можно упомянуть активное подавление помех (Anti-Jamming), которое контролируется в модуле командой $PSTMCFGAJM.
Разработчикам собственных приложений для устройств, выполненных на базе модуля Teseo-LIV3F, следует обратить внимание на программное обеспечение ST TESEO-SUITE, предназначенное для работы с устройствами на базе ГНСС-чипов семейства Teseо. Существует также облегченная версия этой программы — Teseo-Suite Light. Компьютерная программа TESEO-SUITE может одновременно управлять работой нескольких устройств Teseo. Программа имеет несколько интерфейсов, позволяющих конфигурировать модуль, отслеживать в режиме реального времени видимые спутники, а также обмениваться информацией с каждым из них [16].
Графический пользовательский интерфейс предоставляет возможность сравнивать сигналы различных группировок спутников и оптимальным образом настраивать оборудование.
При старте программы на экране монитора появляется окно выбора контролируемого устройства (рис. 8). Здесь нужно просто найти в появляющемся подменю модуль EVB-LIV3F и выбрать его с помощью клавиши Add Device.
Затем на вкладке Device Configuration нужно выбрать протокол и параметры передачи данных (рис. 9).
На этом предварительные настройки следует считать законченными и можно приступать к управлению модулем.
Программа ST TESEO-SUITE предоставляет пользователю расширенный интерфейс для работы с NMEA-сообщениями и командами (рис. 10). Пользователь может выбрать из списка в левой части экрана необходимые команды и передать их конкретному спутнику. При этом в правой части экрана будет наблюдаться реакция спутника в виде ответных NMEA-сообщений.
В программу встроен картографический блок, позволяющий наблюдать положение модуля на карте местности в реальном времени.
Подробная техническая информация, а также демоверсия программы находятся на сайте [16].
Из других особенностей ПО модуля Teseo-LIV3F можно также отметить, что библиотека программ STMicroelectronics содержит уровень ST Android GNSS Hardware Abstraction Layer (HAL) для системы с поддержкой Linux. Этот уровень определяет стандартный интерфейс для устройств на базе чипа ST Teseo-III. Благодаря данному уровню модуль Teseo-LIV3F совместим с устройствами Android независимо от реализации драйверов более низкого уровня. Подробная информация о работе с уровнем HAL доступна в разделе README репозитория GitHub [17].
Отладочные средства модуля Teseo-LIV3F
Наиболее простой вариант для начальных работ с модулем Teseo-LIV3F может быть реализован с помощью отладочного модема EVB-LIV3F [18]. Этот модем позволяет освоить работу с модулем легко, быстро и с минимальными затратами. Внешний вид модема EVB-LIV3F показан на рис. 11. Внутри корпуса модема размещена плата с модулем и минимальным набором интерфейсов.
Модем EVB-LIV3F имеет следующие интерфейсы:
- кнопка «Включение/выключение питания»;
- кнопка Reset;
- разъем микро-USB для подключения интерфейса UART модуля Teseo-LIV3F;
- напряжение питания 2х2-штырьковый разъем;
- разъем SMA Female для ГНСС-антенны;
- сигналы Teseo-LIV3F-I2C 4х1-штырьковый разъем.
Для контроля режима работы на торцевой стороне модема размещены светодиодные индикаторы (рис. 11в): PWR Red LED (питание включено); PPS Green LED (нормальный режим работы).
Интерфейс UART используется для работы с командами и сообщениями NMEA, а также для загрузок файлов двоичного формата. Интерфейс UART организован через разъем USB. Поэтому для нормальной работы последовательного интерфейса с помощью моста UART/USB-FT232RQ необходимо установить драйвер виртуального COM-порта (VCP). Драйверы устройства VCP позволяют устройству FT232RQ на EVB-LIV3F проявляться в прикладной программе ПК в качестве стандартного COM-порта. Этот драйвер можно скачать с веб-сайта FTDIChip [19]. В таком варианте прикладное программное обеспечение, запущенное на ПК, будет работать с устройством FT232RQ так, как оно бы работало со стандартным аппаратным COM-портом.
Разъем CN302 используется для подключения четырех сигнальных линий интерфейса I2C: VCC_IO, I2C_SDA, I2C_SCL, GND. Этот интерфейс позволяет организовать связь между внешним мастер-устройством I2C и модулем Teseo-LIV3F, который всегда выступает в роли ведомого.
К разъему SMA можно подключать как активную, так и пассивную ГНСС-антенну. Для питания активной антенны нужно предусмотреть дополнительное питание 3,3 В.
Напряжение питания модема подается на выводы № 1 и 3 четырехконтактного разъема. Другие два вывода этого разъема предназначены для контроля тока потребления [18].
Для работы с EVB-LIV3F можно использовать отмеченные выше программы ST TESEO-SUITE или Teseo-Suite Light.
Еще одно отладочное средство — X-NUCLEO-GNSS1A1 expansion board with TESEO-LIV3F — предоставляет разработчикам дополнительные возможности при проектировании новых оригинальных устройств [20]. В частности, этот комплект разработчика совместим с отладочной платой производства STMicroelectronics — STM32 Nucleo boards [21] и наиболее популярной платой экосистемы Arduino — Arduino Uno R3 с процессором ATmega328 [22].
Отладочная плата X-NUCLEO-GNSS1A1 представляет собой законченное устройство в виде печатной платы, на которой размещены: модуль GNSS Teseo-LIV3F, интерфейсы для связи с внешними устройствами и система электропитания. Плата может использоваться в разных конфигурациях в многочисленных приложениях STM32 Nucleo.
Внешний вид отладочной платы STM32 Nucleo boards показан на рис. 12.
Основные технические характеристики отладочной платы X-NUCLEO-GNSS1A1:
- Рабочее напряжение питания 3,3–5 В.
- Температура окружающей среды –40…+85 °C.
- Чувствительность ГНСС-приемника: не менее –162 дБм (режим слежения).
- Интерфейсы:
- порт UART;
- порт I2C.
- Программируемые цифровые вводы/выводы.
- EXTINT линия выхода из состояния энергосбережения.
- Поддержка протокола NMEA.
- Работа в режиме A-GNSS.
- Совместимость с платами STM32 Nucleo.
- Совместимость с разъемом Arduino UNO R3.
- Фильтры LNA и SAW РЧ-блока.
- Разъем SMA для подключения внешней ГНСС-антенны.
- Держатель батареи автономного питания.
- Соответствие стандартам RoHS и WEEE.
Плата расширения X-NUCLEO-GNSS1A1 совместима с разъемом Arduino UNO R3 и разъемом ST morpho, поэтому ее можно подключить к плате разработчика STM32 Nucleo и установить вместе с дополнительными платами расширения STM32 Nucleo.
Расположение разъемов на плате X-NUCLEO-GNSS1A1 для подключения ее к платам STM32 Nucleo boards и Arduino Uno R3 показано на рис. 13.
Семейство STM32 NUCLEO — это отладочные платы, разработанные STMicroelectronics для программирования устройств на базе микроконтроллеров серии STM32. Все платы оборудованы программатором/отладчиком ST-Link/V2 или ST-Link/V2-1, позволяющим производить полноценную отладку приложений.
Внешний вид платы STM32 Nucleo board показан на рис. 14.
Плата X-NUCLEO-GNSS1A1 может быть подключена к плате STM32 Nucleo board при использовании следующего оборудования:
- ПК Microsoft Windows (7, 8 и выше) с установленным программным обеспечением X-CUBE-GNSS1A1;
- STM32 Nucleo development board NUCLEO-L053R8 илиNUCLEO-F401RE;
- кабель A to Mini-B USB для соединения STM32 Nucleo board с ПК.
Функциональные возможности отладочной платы могут быть расширены за счет разнообразных модулей, совместимых с Arduino Uno Rev3, ST morpho. Поэтому на основе платы STM32 Nucleo можно успешно разработать надежную систему для различных приложений с использованием линейки готовых устройств и плат расширения, совместимых с ST morpho и Arduino.
В настоящее время плата Arduino Uno Rev3 считается самым популярным изделием в линейке открытой микропроцессорной платформы-конструктора Arduino.
Плата Arduino Uno включает микроконтроллер Atmel AVR ATmega328; систему электропитания, содержащую линейные стабилизаторы напряжения +5 и +3,3 В; элементы обвязки для программирования, а также интерфейсы для связи с другими схемами. Тактовая частота 16 МГц. Поскольку в микроконтроллер предварительно прошивается загрузчик BootLoader, то внешний программатор не нужен.
Базовый процессор ATmega328 позволяет разрабатывать на основе Arduino Uno Rev3 самые различные приложения. Благодаря массовому выпуску всевозможных клонов миллионы пользователей во всем мире создают свои приложения и выкладывают их в свободном доступе в Интернете.
Внешний вид платы Arduino Uno показан на рис. 15.
Перечисленные в этой статье свойства и характеристики модуля Teseo-LIV3F позволяют использовать его в самых разнообразных приложениях «Интернета вещей», таких, например, как системы контроля перемещения детей, пожилых людей, животных, мелких грузов; автоматизированных производственных линиях; беспилотных машинах и механизмах; дронах и многих других приложениях.
Особенно следует отметить новое бурно развивающееся направление малогабаритных беспилотных летательных аппаратов. По данным Goldman Sachs, к 2020 году оборот продаж дронов превысит $100 млрд [23].
- www.st.com/content/st_com/en/products/positioning/gnss-modules/teseo-liv3f.html#samplebuy-scroll
- www.everythingrf.com/search/gps-gnss-modules
- www.endrich.com/fm/2/ST-1612-DG_datasheet_v0.pdf
- www.gpsworld.com/quectel-launches-dead-reckoning-gnss-module-l26-dr
- www.st.com/content/ccc/resource/technical/document/user_manual/group0/a5/d6/03/c4/b2/26/46/d4/DM00399112/files/DM00399112.pdf/jcr:content/translations/en.DM00399112.pdf
- www.ztrackmap.com
- www.instructables.com/id/Dragino-LoRa-GPS-Tracker-1
- www.st.com/resource/en/datasheet/teseo-liv3f.pdf
- www.st.com/content/ccc/resource/technical/document/user_manual/group0/5b/f7/86/c6/95/c7/49/20/DM00398983/files/DM00398983.pdf/jcr:content/translations/en.DM00398983.pdf
- www.geostar-navi.com/files/docs/geos5/GeoS_NMEA_protocol_v4_0_rus.pdf
- www.rtcm.org/differential-global-navigation-satellite—dgnss—standards.html
- www.st.com/content/ccc/resource/technical/document/application_note/group0/bf/e0/1d/7c/93/51/45/90/DM00528962/files/DM00528962.pdf/jcr:content/translations/en.DM00528962.pdf
- www.st.com/content/ccc/resource/sales_and_marketing/presentation/application_presentation/group0/1d/27/24/da/c9/3a/45/06/TESEO_LIV3F_pres/files/I2C_GNSS_Sensor.pdf/jcr:content/translations/en.I2C_GNSS_Sensor.pdf
- www.st.com/content/ccc/resource/technical/document/user_manual/group0/5b/f7/86/c6/95/c7/49/20/DM00398983/files/DM00398983.pdf/jcr:content/translations/en.DM00398983.pdf
- www.st.com/content/ccc/resource/technical/document/application_note/group0/07/cc/a0/9d/d3/f4/44/37/DM00496876/files/DM00496876.pdf/jcr:content/translations/en.DM00496876.pdf
- www.st.com/en/embedded-software/teseo-suite.html
- www.github.com/github
- www.st.com/content/ccc/resource/technical/document/user_manual/group0/51/21/3a/b3/a5/15/48/49/DM00460636/files/DM00460636.pdf/jcr:content/translations/en.DM00460636.pdf
- www.ftdichip.com/FTDrivers.htm
- www.st.com/en/ecosystems/x-nucleo-gnss1a1.html
- www.st.com/en/ecosystems/stm32-nucleo.html?querycriteria=productId=SC2003
- www.robotechshop.com/shop/arduino/arduino-board/arduino-uno-r3-china/?v=f9308c5d0596
- www.goldmansachs.com/insights/topics/drones.html