Архитектура построения и особенности организации прикладного программного обеспечения Глонасс/GPS навигационного сигнализатора

№ 2’2009
PDF версия
Растущий рынок навигационной аппаратуры потребителей сигналов глобальных навигационных систем ГЛОНАСС (Россия), GPS Navstar (США) и (в перспективе) Galileo (Европа) требует различных вариантов исполнения и специализации аппаратуры. Наряду с ГЛОНАСС/GPS навигационным контроллером [1], предназначенным для систем мониторинга транспорта, находит достаточно широкий спрос и персональная носимая телематическая аппаратура.

На рис. 1 представлена функциональная схема персонального навигационного сигнализатора ГЛОНАСС/GPS.

Функциональная схема навигационного сигнализатора ГЛОНАСС/GPS

В состав сигнализатора ГЛОНАСС/GPS входят следующие основные компоненты:

  • навигационный приемник сигналов спутниковых систем ГЛОНАСС/GPS, позволяющий определять текущее местоположение сигнализатора, его скорость движения и момент времени, в который определены эти параметры;
  • встроенная в корпус сигнализатора совмещенная ГЛОНАСС/GPS-антенна, принимающая сигналы навигационных спутников глобальных систем позиционирования;
  • беспроводной процессор WMP100 компании Wavecom, выполняющий как функцию GSM-модуля, позволяющего использовать весь спектр услуг GSM-сетей, так и функцию центрального управляющего процессора устройства;
  • интегрированную в печатную плату GSM-антенну;
  • элементы управления и интерфейса (кнопки, микрофон, динамик, USB-порт).

Питание сигнализатора осуществляется от трех аккумуляторных батарей размера AA. Можно также использовать одноразовые батареи.

Сигнализатор ГЛОНАСС/GPS выполняет следующие функции:

  • определение навигационных параметров пользователя (географические координаты, скорость и время их определения);
  • запись текущих навигационных параметров и состояний сигнализатора (работа датчика движения, нажатие кнопок и пр.) во встроенную энергонезависимую память (сохранение маршрутов);
  • выход в Интернет с использованием технологии GPRS и установку TCP/IP-соединения с программой диспетчерского центра;
  • передачу на диспетчерский центр маршрутов, сохраненных во встроенной памяти сигнализатора;
  • передачу текущих навигационных параметров и состояний с помощью SMS на заранее заданный телефонный номер;
  • управление входящими голосовыми вызовами кнопками «Прием» и «Отбой»;
  • осуществление исходящих голосовых вызовов на заранее запрограммированные телефонные номера при нажатии соответствующих кнопок клавиатуры;
  • поддержка подключения к персональному компьютеру по шине USB для редактирования параметров работы сигнализатора с помощью специальной управляющей программы;
  • передача по USB в персональный компьютер маршрутов из встроенной памяти сигнализатора.

Прикладное программное обеспечение выполняется с помощью беспроводного процессора WMP100, реализующего одновременно две функции: функцию GSM-модуля и функцию центрального управляющего процессора устройства. Поддержка первой функции осуществляется программным обеспечением Open AT компании Wavecom. Поддержка второй функции — приложением Open AT, написанным для работы на процессоре WMP100. Общая структура программно-математического обеспечения (ПМО) сигнализатора представлена на рис. 2.

Структура программно-математического обеспечения сигнализатора

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

  1. Модуль работы с внешними прерываниями. В этом модуле реализованы обработчики асинхронных событий: нажатие кнопок клавиатуры, нажатие кнопки выключения прибора, подключение/отключение USB-кабеля, срабатывание датчика движения.
  2. Модуль управления устройствами через выходы общего назначения. В состав модуля входят процедуры управления световой индикацией, переключения режимов работы источника питания, включения/выключения навигационного приемника.
  3. Модуль управления микросхемой постоянной памяти FRAM. Модуль включает процедуры чтения из памяти и запись в память настроек и параметров работы сигнализатора. Обмен осуществляется по шине I2C. При операциях записи/чтения рассчитывается контрольная сумма блока данных и проверяется контроль целостности считанных данных.
  4. Модуль управления внутренним «черным ящиком» сигнализатора. В модуле реализованы процедуры работы с флэш-памятью процессора, позволяющие читать сообщения из циклического буфера и писать сообщения в циклический буфер, организованный во флэш-памяти.
  5. Модуль управления голосовыми вызовами. В модуле описаны процедуры, обеспечивающие работу с GSM-сервисом процессора WMP100 и установку с его помощью исходящих, а также прием входящих голосовых вызовов.
  6. Модуль обработки AT-команд пользователя. В него включены процедуры обработки AT-команд, с помощью которых внешняя программа для персонального компьютера может считывать из сигнализатора и записывать в него параметры работы и настройки, а также давать команды на включение/выключение работы тех или иных устройств в тестовых целях.
  7. Модуль таймеров и часов реального времени (RTC). В модуле реализованы процедуры управления часами реального времени (инициализация, чтение, подстройка), а также обработчики таймеров, обеспечивающие основной цикл работы сигнализатора и синхронизирующие включение/выключение навигации, формирование сообщений, запись сообщений во внутренний «черный ящик» прибора, отправку сообщений через сервисы SMS и GPRS.
  8. Модуль приема навигационных данных. В модуль входят процедуры начальной инициализации навигационного приемника, а также процедуры приема и обработки сообщений, поступающих по последовательному порту UART от навигационного приемника в формате протокола NMEA-0183.
  9. Модуль обработки навигационных данных. В состав модуля входят процедуры расчета критериев формирования очередных отчетов: по времени, по изменению навигационных параметров, по входу/выходу из контрольных точек.
  10. Модуль работы с SMS. В модуле описаны процедуры формирования и отправки SMS-сообщений на заданные телефонные номера, а также процедуры декодирования и обработки входящих SMS с командами диспетчера.
  11. Модуль работы с GPRS. Модуль состоит из процедур подключения к TCP/IP-серверу с помощью сервиса GPRS и передачи содержимого «черного ящика» в диспетчерский центр.

Основной режим работы сигнализатора — это режим ожидания. В данном режиме навигационный приемник отключен, беспроводной процессор поддерживает регистрацию в GSM-сети, способен принимать входящие голосовые вызовы и SMS, но не имеет активных голосовых или GPRS-соединений, и поэтому находится в режиме пониженного энергопотребления (ядро тактируется от генератора 32 кГц вместо номинального 104 МГц). Выход из данного режима осуществляется по ряду событий:

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

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

  • Местоположение вычислено.
  • Истек тайм-аут — максимальное время ожидания навигационного решения (Tfix).
Основной цикл работы сигнализатора

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

  • С момента формирования последнего отчета прошло заданное время (Trep).
  • С момента формирования последнего отчета объект прошел заданное расстояние (Srep).
  • С момента формирования последнего отчета объект вошел или вышел из контрольной точки.

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

  • SMS успешно отправлено.
  • SMS не может быть отправлено за заданное время (Tsms).

Затем сигнализатор входит в режим отправки через Интернет. Если это задано в настройках, то происходит выход в Интернет с помощью услуги GPRS, затем подключение к TCP/IP-серверу, по заданному IP-адресу и порту. При успешном подключении сигнализатор отправляет на сервер все не переданные ранее отчеты из «черного ящика». При завершении передачи сигнализатор возвращается в исходный режим ожидания. Завершением передачи данных считаются следующие события:

  • Все данные успешно переданы.
  • Данные не могут быть переданы более чем за заданное время (Tgps).

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

При нажатии кнопки вызова предустановленного номера сигнализатор входит в режим установки голосового вызова (рис. 4). Происходит набор номера телефона. После завершения вызова со стороны вызываемого номера сигнализатор вновь переходит в состояние ожидания.

Цикл работы сигнализатора при установке голосового вызова

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

При нажатии кнопки выключения (переводе ее в состояние «выключено») сигнализатор завершает регистрацию в GSM-сети, выключает навигационный приемник, если тот включен, и входит в режим выключения (рис. 5), выход из которого возможен только при повторном нажатии кнопки выключения (переводе ее в состояние «включено»). В режиме выключения не работают никакие устройства за исключением часов реального времени (RTC).

Цикл работы сигнализатора при выключении

При подключении по интерфейсу USB к персональному компьютеру сигнализатор входит в режим конфигурации (рис. 6). При входе в данный режим выключается навигационный приемник и завершаются активные соединения в сети GSM.

Цикл работы сигнализатора при подключении порта USB и обновлении встроенного программного обеспечения

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

При определении входящего SMS-сообщения сигнализатор переходит в режим считывания SMS. Если SMS является корректной командой запроса состояний, то происходит переход в начало основного цикла работы.

При определении входящего голосового вызова сигнализатор переходит в режим определения вызывающего номера, и, в зависимости от настроек, устанавливается или не устанавливается голосовое соединение. При завершении голосового соединения сигнализатор возвращается в режим ожидания.

Литература
  1. Басюк М. Н., Колотов Р. Б., Савицкий Ф. Ф., Хожанов И. В., Чубаров С. А. Особенности архитектуры построения и организации прикладного программного обеспечения ГЛОНАСС/GPS навигационного контроллера для управления подвижными объектами // Беспроводные технологии. 2009. № 1.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *