УДК 608.4, 681.3
Ганюшкин Александр Львович, Игнатюк Виктор Александрович
Владивостокский государственный университет экономики и сервиса Владивосток, Россия
Программное обеспечение макета для удаленного управления и мониторинга
Изложены проведенная разработка и отладка программного обеспечения разработанного устройства, согласование протоколов передачи данных, отладка алгоритма и программного обеспечения устройства. Бинарный протокол предоставляет пользователю расширенный набор выходных данных, включая «сырую» измерительную информацию, альманахи и эфемериды. Кроме того, через него производится формирование установок, запросов на выдачу данных, команд управления, а также обновление встроенного ПО приемника. Протокол включает в себя как входные, так и выходные сообщения. Управление приемником производится только по бинарному протоколу. В результате проведения работы все указанные процедуры выполнены, полученные данные проанализированы.
Ключевые слова и словосочетания: ассемблер, микроконтроллер, ОБЫ-модуль, ОБЫ-канал, модуль ШБЫО 218, АТ+СРЫБ, алгоритм, команда ассемблера, число спутников, зона радиовидимости, протокол обмена ШМЕА.
Цель данной работы заключается в разработке и отладке программного обеспечения разработанного устройства, согласовании протоколов передачи данных, отладке алгоритма и программного обеспечения устройства. Бинарный протокол предоставляет пользователю расширенный набор выходных данных, включая «сырую» измерительную информацию, альманахи и эфемериды. Кроме того, через него производится формирование установок, запросов на выдачу данных, команд управления, а также обновление встроенного ПО-приемника.
Протокол включает в себя как входные, так и выходные сообщения. Управление приемником производится только по бинарному протоколу. Выходные сообщения (пакеты) делятся на следующие группы:
- Пакеты 0х00...0х3Б: беззапросные (т.е. формируемые автоматически)
- Пакеты 0x40... 0х7Б: ответы на установки
- Пакеты 0x80... 0хББ: ответы на запросы
- Пакеты 0хС0... 0хБЕ: ответы на команды Состав входных сообщений:
- Пакеты 0х00... 0х3Б: не используются
- Пакеты 0x40... 0x7F: установки
- Пакеты 0x80... 0xBF: запросы
- Пакеты 0xC0... 0xFF: команды
Ответы на установки, запросы и команды формируются приемником в ответ на соответствующие входные сообщения [1 - 7].
NMEA протокол поддерживает семь стандартных выходных сообщений: GGA, GLL, GSA, GSV, RMC, VTG, ZDA и нестандартное входное сообщение SWPROT. Выходные сообщения формируются в соответствии со стандартом NMEA 0183 v3. Каждое стандартное сообщение может быть замаскировано (выключено) путем выдачи соответствующей команды в бинарном протоколе. По умолчанию GGA, GS , A GSV, RMC выдаются, а GLL, VTG, ZDA не выдаются. Также через пакет «0х4Е» преамбула сообщений может быть задана либо в соответствии со стандартом v3.01 («GP», «GN», «GL» в зависимости от используемой спутниковой системы), либо всегда «GP».
Сообщения NMEA имеют следующую структуру: $aaccc,c--
c*hh<CR><LF>
1. «$» - начало сообщения.
2. «aaccc» - адресное поле. Буквенно-цифровая информация, предназначенная для идентификации источника и типа сообщения. Первые два символа - идентификатор сообщения, определяющий используемую в решении навигационную систему: «GP» - GPS; «GL» - ГЛОНАСС; «GN» -ГЛОНАСС + GPS. Последние три символа - мнемоника формата сообщения, определяющая формат данных последующего сообщения.
3. «,» - разделитель полей. Является началом каждого поля, кроме адресного и контрольной суммы. Если данный символ следует за пустым полем, то это признак того, что данные не передаются.
4. «с—с» - блок данных сообщения, следует за адресным полем и представляет собой группу полей с передаваемыми данными. Последовательность полей данных фиксирована и определяется третьим и последовательными символами в адресном поле. Поле данных может быть переменной длины и начинается с символа «,».
5. «*» - разделитель контрольной суммы. Следует за последним полем данных в сообщении. Разделитель является признаком того, что следующие два символа являются шестнадцатеричным представлением контрольной суммы сообщения.
6. «hh» - поле контрольной суммы. Абсолютное значение вычисляется как исключающее 8-битные символы, расположенные между «$» и «*» (не включая эти символы). Шестнадцатеричное значение старших 4-х бит и младших 4-х бит преобразуется в два ASCII символа (0 - 9, A - F -верхний регистр). Старший символ передается первым. Контрольная
сумма передается во всех сообщениях. Пример формирования контрольной суммы: $GPGSV,5,5,17,77,71,048,53*43.
7. <CR><LF> - завершающие символы [7].
Команды, используемые для передачи данных и осуществления управления GSM/GPRS модулем, всегда начинаются с АТ (от английского Attention - внимание) и заканчиваются на <CR>. Ответы начинаются и заканчиваются командами <CR><LF> (кроме формата ответа ATV0 DCE) и ATQ1 (подавление результирующего кода).
- Если синтаксис команды неверен, то выдается «ERROR».
- Если синтаксис команды верен, но при этом был передан с неверными параметрами, то выдается строка +CME ERROR: <Err> или +CMS ERROR: <SmsErr> с соответствующими кодами ошибок, если до этого CMEE было присвоено значение 1. По умолчанию значение CMEE составляет 0, и сообщение об ошибке выглядит только как «ERROR».
- Если последовательность команд была выполнена успешно, то выдается «ОК».
В некоторых случаях, например, при AT+CPIN? или добровольных незапрашиваемых сообщениях, модем не выдает ОК в качестве ответа [8].
После изучения структуры протоколов и управляющих команд модулей перейдем к запуску модулей.
Полученные результаты
Подключение GSM/GPRS модуля WISMO218 к GPRS-каналу связи реализовывалось с помощью стандартной программы ОС Windows - «Г и-пер терминал», можно отследить передаваемые AT-команды, а так же ответы модуля на принимаемые им команды и таким образом, осуществить диагностику работы модуля. В проведенном лабораторном испытании вместо стандартной программы «Гипертерминал» была использована программа «Device Monitoring Studio». В описываемом испытании осуществлялось подключение к GPRS-каналу связи без передачи данных, так как используемый модуль не имеет в составе своей архитектуры встроенный TCP/IP-стек. После включения модуля осуществляется поиск сети GPRS, поскольку в его настройках предварительно был установлен автоматический поиск сети, командой AT+COPS=0, модуль выдал сообщение по завершению автопоиска: +CGREG:1 - зарегистрирован, «домашняя» сеть. Следующей командой AT+CGACT=1 активируем определенный PDP-контекст. После того как команда выполнена, модуль находится в командном режиме. Если какой-либо PDP-контекст уже находится в запрашиваемом состоянии, это состояние не изменяется. Если запрашиваемое состояние любого определенного контекста не может быть установлено, возвращается ответ ERROR или +CME ERROR. В свою очередь, модуль успешно реагирует на переданную команду и выдает сообщение
OK - команда принята. Команда AT+CGATT=1 используется для того, чтобы установить соединение с GPRS-сервисом. После того как команда была выполнена, модуль также остается в командном режиме и отвечает, что регистрация прошла успешно. Используя команду AT+CGDATA= «PPP»,1 - осуществляем вызов оператора с последующим использованием «PPP» - точка-точка. Реагируя на запрос, модуль отсылает сообщения, означающие, что установлено GPRS-соединение (+CR: GPRS), выполняется подключение (CONNECT). После чего вводим следующие символы «+++» - переход в командный режим - «ОК», затем получаем установленное соединение. Чтобы полностью удостовериться в успешном подключении, вводим команду AT+CGPADDR=1 - вывести список адресов PDP -контекста. В результате получаем адрес узла +CGPADDR: 1, «10.26.255.134», к которому удалось подключиться. В рассматриваемом примере подключение осуществлялось при помощи GSM/GPRS-оператора «Акос», имя адреса внешней сети которого «internet.akos.ru». В данном случае адрес является динамическим, поэтому при повторном запросе он будет измененным.
На рисунках представлен пример принимаемых координат по протоколу NMEA v3 GLONASS/GPS модуля GEOS-1M SMD. Передаваемые параметры отслеживались программой «GeosDemo v1.34» в стандартной ANSII кодировке (рис. 1).
Рис. 1. Полученные данные по протоколу NMEA v3 GLONASS/GPS модуля GEOS-1M SMD
Перед началом приема данных в программе «ОеовБешо у1.34» были установлены следующие параметры: режим ГЛОНАСС+ОРБ; разрешение ис-
пользования 2D; разрешение экстраполяции; продолжительность экстраполяции 5 с; динамический фильтр включен; темп выдачи выходных данных 1 Гц; параметры портов RS232 №0 и №1 57600, 2-стоповых бита, без четности; маска GDOP 15; маска угла места 5°; параметры секундной метки выдается, полярность - положительная, привязка - к шкале времени GPS, длительность - 1 мс, сдвиг - 0 нс; NMEA сообщения GGA, GSA, GSV, RMC, VTG - выдаются; GLL, ZDA - не выдаются; преамбула - «GP» (рис. 2).
SGPRMC,02S0S0.00,А,4310.7108,N,13154.6462,Е,000.10424,134.9,021011,,,A*5F
SGEGGA,0250S1.00,4310.7106,N,13154.6461,Е,1,03,4.5,00040.8,И,0023.4,М,,*65
Рис. 2. Полученные данные по протоколу NMEA v3 GLONASS/GPS модуля GEOS-1M SMD (в увеличенном масштабе)
Рассмотрим подробнее принимаемые данные NMEA сообщений GGA, GSA, GSV, RMC, VTG.
Сообщение GGA - данные определения места по GPS. Время, место и данные, относящиеся к наблюдению, определяются как по GPS, так и по ГЛОНАСС.
Согласно полученным данным сообщение GGA имеет следующий вид: $GPGGA,025051.00,4310.7106,N,13154.6461,E,1,03,4.5,00040.8,M,0023.4,M,,*65.
Для того чтобы прочитать принятые данные, необходимо структурировать строку сообщения, после чего она будет выглядеть следующим образом:
$--GGA,hhmmss.sss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh
Далее разложим сообщение по частям:
1) «--» - преамбула сообщения («GP» установлено по умолчанию);
2) «hhmmss.sss» - время навигационных определений;
3) «llll.ll,a» - широта, N/S;
4) «yyyyy.yy,a» - долгота, E/W;
5) «x» - показатель качества обсервации: 0 = нет данных, 1 = обсервация получена, 2 = обсервация в дифференциальном режиме;
6) «xx» - число использованных в решении спутников;
7) «x.x» - величина горизонтального геометрического фактора (HDOP);
8) «x.x,M» - высота антенны над уровнем моря (геоидом), м;
9) «x.x,M» - превышение геоида над эллипсоидом WGS84, м;
10) «x.x» - размер дифференциальных поправок. В режиме GPS или GPS+ГЛОНАСС это размер последней полученной поправки по спутни-
кам ОРБ. В режиме ГЛОНАСС это возраст последней полученной поправки по спутникам ГЛОНАСС;
11) «хххх» - идентификатор дифференциальной станции 0^1023.
Поля 11 и 12 содержат значения только в дифференциальном режиме с использованием поправок ЯТСМ. Во всех других случаях передаются пустые поля.
Для рассмотрения остальных сообщений проведем те же операции.
Сообщение ОБА - фактор ухудшения точности, используемые для навигации спутники.
Количество спутников в предложении ОБА зависит от количества спутников навигационной системы, участвующих в решении навигационной задачи. Минимальное количество позиций номеров спутников в предложении ОБА равно 12. Если спутников в решении меньше 12, то передаются пустые поля. Если спутников в решении больше 12, то полей с номерами спутников столько, сколько спутников в решении.
Полученное сообщение ОБА имеет следующий вид: $ОРО8А,А,2,03,06,69,,,,,,,,,,6.6,4.5,4.8*34
После преобразования:
$--О8А,а,х,хх, ... ,хх,х.х,х.х,х.х*ЬЬ
Полями данного предложения являются:
1) «а» - режим управления количеством определяемых координат: М = ручное, указан режим, А = автоматическое переключение;
2) «х» - режим работы: 1 = обсервация невозможна, 2 = определяются две координаты, 3 = определяются три координаты;
3) «хх...хх» - номера спутников, используемых для решения навигационной задачи, для ОРБ используются номера 1^32, для ГЛОНАСС 65^96;
4) «х.х» - пространственный геометрический фактор ухудшения точности (РБОР);
5) «х.х» - горизонтальный геометрический фактор ухудшения точности (ИБОР);
6) «х.х» - вертикальный геометрический фактор ухудшения точности (УБОР).
Сообщение ОБУ - видимые спутники.
Число спутников в зоне радиовидимости, номер спутника, угол возвышения, азимут и отношение сигнал/шум. Одно предложение может содержать информацию от 1 до 4 спутников, дополнительные данные о спутниках передаются в следующих предложениях. Номер предложения указывается в первых двух полях данных. Для спутниковых систем зарезервированы следующие номера: для ОРБ 1^32, для ГЛОНАСС 65^96.
Полученные сообщения:
$ОРО8У,5,1,17,01,15,194,38,55,056,47,06,41,059,48,07,51,288,28*72
$ОРО8У,5,2,17,08,29,314,26,11,35,200,37,13,07,234,25,16,44,10,48*75
$ОРО8У,5,3,17,67,73,027,,69,05,293,33,70,05,342,,77,35,115,*7Е $ОРО8У,5,4,17,78,73,022,,79,12,315,,81,25,199,,87,35,036,*7С $ОРОБУ,5,5,17,88,79,126,*44 Преобразованное сообщение:
$--ОБУ,х,х,хх,хх,хх,ххх,хх, ... ,хх,хх,ххх,хх*ЬЬ Поля данного предложения:
1) «х» - общее число сообщений;
2) «х» - номер сообщения;
3) «хх» - общее число спутников в зоне радиовидимости;
4) «хх» - номер спутника;
5) «хх» - угол возвышения спутника, градусы 00^901;
6) «ххх» - азимут истинный, градусы 000^3601;
7) «хх» - отношение сигнал/шум 00^99 дБ, если спутник не сопровождается не передается.
Сообщение ЯМС - рекомендуемый минимальный набор данных имеет фактический вид:
$ОРКМС,025050.00,А,4310.7106,К,13154.6462,Б,000.10424,134.9,0210
11,,,А*5Б
Структура принятого сообщения: $--КМС,ккшш88.88,А,1Ш.11,а,ууууу.уу,а,х.х,х.х,хххххх,х.х,а,а*кк
Поля данного предложения:
1) hhmmss.ss - время;
2) A - статус (A/V);
3) llll.ll,a - широта, N/S;
4) yyyyy.yy,a - долгота, E/W;
5) x.x - скорость в узлах;
6) x.x - курс в градусах;
7) xxxxxx - дата: ddmmyy (день/месяц/год);
8) x.x,a - магнитное склонение в градусах, E/W ;
9) a - индикатор режима: A = автономная обсервация, D = дифференци-
альный режим, N = данные недостоверны, Е = данные получены счислением. Сообщение УТО - курс и скорость относительно грунта имеет вид: $ОРУТО,134.9,Т,,,0000.1Л,0000.2,К,А*4С.
Структура принятого сообщения следующая:
$--УТО,х.х,Т,х.х,М,х.хЛ,х.х,К,а^<СК>^Е>
Поля данного предложения:
1) х.х,Т - магнитный курс в градусах;
2) х.х,М - курс истинный в градусах;
3) х.х^ - скорость в узлах;
4) х.х,К - скорость, км/ч;
5) а - индикатор режима: А = автономная обсервация, Б = дифференциальный режим, N = данные недостоверны [9].
После описания структуры принятых сообщений можно выделить наиболее необходимую информацию для последующего ее использования, например: координаты, высота над уровнем моря, скорость движения, время, дата, курс, видимые и используемые спутники. Координаты места положения 43.1071060 - широта и 131.5464610 - долгота; высота антенны над уровнем моря - 40.8 м; скорость движения 0.02 км/ч, время навигационных определений 02:50:51; дата 02.10.11; магнитный курс 134.90; общее число спутников в зоне радиовидимости - 17, используемых в решении - 3.
В результате проведения исследований разработанные модули успешно прошли лабораторные испытания. Но также было выявлено, что для передачи данных по GPRS каналу необходим TCP/IP-стек, в используемом модуле WISMO 218 он отсутствует. Т ем не менее, существует аналог используемого модуля со встроенным TCP/IP-стеком -WISMO 228. Таким образом, в последующих работах используемый модуль будет заменен на его аналог, так как будут проводиться исследования в области передачи данных по GPRS-каналу. В целом все поставленные задачи успешно выполнены, разработана методика отладки устройства, произведено согласование основных узлов, уровней сигналов, протоколов передачи данных. Разработаны передающий и мониторинговый модули, проведены исследования и лабораторные испытания модулей. Произведены некоторые корректировки электрических схем, а также схем печатных плат устройств.
1. Wireless Standard Modem WISMO218 Product Technical Specification & Customer Design Guidelines: Техническая документация GSM/GPRS модуля WISMO218 фирмы WAVECOM, 2009. - 97 c.
2. Беспроводной стандартный модуль WISMO: руководство пользователя // WAVECOM Wireless Standard Modem WISMO Series Development Kit User Guide, 2009. - 76 c.
3. Техническая документация микросхемы FT232R USB UART / FT232R USB UART Future Technology Devices International Ltd, 2005. - 29 с.
4. WPM100 руководство пользователя // WMP100 Development Kit User Guide, 2007. - 72 c.
5. ГеоС-^ Руководство по эксплуатации. Версия 1.0 / ООО «КБ «ГеоСтар навигация». - Москва, 2010. - 73 c.
6. Протокол обмена BINR. - М.: Литера «О», 2005. - 86 с.
7. Протокол обмена NMEA. - М.: Литера «О», 2004. - 19 с.
8. AT-команды: руководство по использованию АТ-команд для GSM/GPRS модемов / пер. с англ. - М.: ЗАО «Компэл», 2005. - 432 с.
9. Протокол обмена NMEA (IEC 61162). - М. : Литера «О», 2009. - 22 с.