| RSS



Меню

Bookmark and Share


Статистика
Ваш IP: 18.224.184.149
Вы используете: v





Сейчас на сайте:

Тех поддержка ->

Облако тэгов
ОС видио Tor Обратная сторона антенна 4.6 PHP Эксплоит Windows Server 2008 qip Virtual chroot kernel proc sysctl tune FreeBSD bridge Boot Disk Bluetooth GEO game directx Emulator Python Shell DDoS червь Conficker вирус троян Лаборатория Касперского пиратство apple iPhone ИТ-отрасль Щеголев Microsoft экономический кризис Twitter социальная сеть анонимность Лицензия Open Source ASP.NET MVC уязвимость MySQL база данных файлообмен закон франция пират Skype мобильный Deutsche Telekom Хакер киберпреступник Trend Micro кибератака Германия робот утечка данных персональные данные ноутбук интернет Китай цензура ядро Linux Торвальдс Windows Vista Acer Linux патент браузер Firefox Internet Explorer Opera Net Applications Safari Intel Linux Foundation Moblin Oracle патч банкомат кардер HSM IBM X-Force Cofee сша кибервойна Эстония Dell ИТ-специалист хакерские атаки Pirate Bay контроль кибербезопасность язык программирования The Pirate Bay Пиратская партия утечка информации приговор Mozilla Chrome безопасность Госдума СМИ Windows 8 Баллмер взлом Пентагон ботнет Украина Facebook Cisco cloud Windows XP нетбук торрент музыка биометрический nokia ФБР IP-адрес CIPAV Comcast sms RSA java Google CAPTCHA Symantec спам конфиденциальная информация инсайдер Perimetrix антивирус тест Anti-Malware Windows 7 операционная система Windows провайдер авторское право RapidShare UNIX свиной грипп шантаж дети EFF BluWiki копирайт экстремизм Panda Security cloud computing McAfee Cybercrime Response Unit Bottle Domains HTTPS ICANN студент шпионское ПО Норвегия школьник New York Times XSS YouTube Warner Music кибершпионаж КНДР Ubuntu свободное ПО AMD ATI касперский Россия РФ сервер хостинг фальшивый антивирус Comodo CA Wi-Fi D-Link суд пароль блог фишинг Одноклассники медведев контрафакт мошенник штраф Sony GPS по Gumblar JAVASCRIPT хакеры вредоносное ПО Yahoo ФАС компьютер Софт MPAA кибероружие PandaLabs Red Hat Минкомсвязи сбой ASUSTeK Computer мошенничество Доктор Веб ВКонтакте Cyber-Arc исходный код PCI DSS МВД фильтр порнография BREIN свобода слова Казахстан GEMA Autodesk сисадмин Gmail кредитная карта кибермошенник LiveJournal шифрование криптография Deep Purple банк нанотехнологии Wikipedia zero-day ColdFusion выборы кража данных DNS BIND Android BASIC атака Black Hat Mac OS X Click Forensics Clampi домен фсб Прокуратура Уголовное дело icq Barrelfish киберпреступность Sophos AT&T ошибка Electa Gamma Knife OpenBSD DARPA военные Сайт Visual Studio 2010 .NET Framework 4 Chrome OS электронная почта турция конференция спамер FTC полиция российская ОС Koobface Великобритания БЕЛОРУССИЯ грузия BSA Bittorrent облачные вычисления Azure Европа Dr.Web Билл Гейтс спецслужбы Cryzip Живой Журнал Royal Bank of Scotland смартфон Canonical Pwn2Own F-Secure Symbian Hotmail фильм

Главная » Статьи » Общие Статьи

GPS изнутри

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

GPS (Global Positioning System, Система Глобального Позиционирования) была введена в действие США в 1994 году. Состоит она из 24 спутников и наземных приемных комплексов, коим может являться и твой GPS-навигатор или GPS-модуль (в дальнейшем навигатор). Для точного определения координат твой навигатор должен видеть минимум 4 спутника. В недалеком прошлом точность определения координат вне территории США (а точнее для потребителей не из США) была искусственно снижена, но не так давно это ограничение было убрано и теперь ты можешь определять свое местоположение даже в тайге с точностью до нескольких метров. 

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

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

Какого бы форм-фактора (COM, USB, BlueTooth и т.п.) не был GPS-модуль, он будет логически связан с компьютером через COM-порт, т.е. при подключении создается соединение по последовательному порту. Навигационная информация в большинстве случаев передается по протоколу NMEA. Это самый распространенный протокол передачи для GPS-модулей. Хотя есть и другие протоколы, но мы их рассматривать не будем. 

Ну а теперь самое время узнать как же сделать софтину для работы со всем этим хозяйством. Скажу сразу, что мне не очень хочется сейчас объяснять как тыкать в кнопки в том же VB, статья носит больше ознакомительный характер. Для тех кто в танке я объясню подобно процесс создания программы в следующих статьях. Я освещу лишь наиболее важные моменты и я думаю у тебя все получится. Скажу сразу, что ваять прогу можно в любых языках программирования, лишь бы была возможность работы с последовательным портом и со строками. Первое с чего нужно начать это с открытия COM-порта. Почти все приемники по умолчанию имеют установки: скорость 9600 бит/с, 8/N/1. Как только ты откроешь порт тебе сразу с интервалом в секунду будет приходить навигационная информация примерно такого вида:

$GPGGA,143345.264, 0936.23,N,06354.15,E, 0,06,0.0,230.6,M,0.0,M,0.0,0345*76
$GPRMC,143345.26, A,0936.23,N,06354.15, E,0.0,0.0,230306,0.0,E,A*45
$GPGSA,A,3,03, 04,05,07,11,12,0.0,0.0,0.0*Е2
$GPGSV,1,1,06,05,67,120,20*34

Теперь приступим к разбору:

Данные передаются в виде предложений. Формат предложений следующий:

$AAAAA[, <данные> ]*hh<CR><LF>, где

$ - символ начала предложения (код 24h);
AAAAA - пятисимвольный адрес (имя) предложения;
[, <данные> ] - список полей данных разделенных запятыми (код 2Сh);
* - признак контрольной суммы (код 2Ah);
hh - контрольная сумма;
<CR><LF>, - конечный ограничитель (коды 0Dh и 0Ah).

Типы полей данных.

Тип поля  Обозначение Определение

Специальный формат полей

Статус  A Поле одного символа. А= да, данные достоверны, предупредительного сигнала нет. V= нет, данные не достоверны, есть сигнал предупреждения.
Широта llll.ll Поле постоянной/переменной длины: градусы-минуты доли минуты. 2 знака градусов, 2 знака минут и переменное число знаков долей минуты. Если первый знак градусов или минут отсутствует, то его заменяют нулем с тем, чтобы сохранить постоянное число знаков. Децимальная точка и последующие знаки долей минут являются дополнительными и могут не использоваться, если не нужно большое разрешение.
Долгота yyyyy.yy Поле постоянной/переменной длины: градусы-минуты и доли минуты. 3 знака градусов, 2 знака минут и переменное число знаков долей минуты. Если первые знаки или первый знак минут отсутствует, то их заменяют нулем для того, чтобы сохранить постоянное число знаков. Децимальная точка и последующие знаки долей минут являются дополнительными и могут не использоваться, если не нужно большое разрешение.
Время hhmmss.ss Поле постоянной/переменной длины: часы/минуты/секунды и доли секунды. 2 знака часов, 2 знака минут, 2 знака секунд и переменное число знаков долей секунд. В качестве первого знака часов, минут, секунд может быть поставлен ноль, для сохранения постоянного числа знаков. Если не требуется высокая точность, то децимальная точка и доли секунд могут быть опущены.
Определенные поля   Некоторые поля специально предназначаются для размещения заранее определенных постоянных величин, чаще всего буквенных обозначений. Признаком таких полей является наличие одного или нескольких знаков.

Поля цифровых величин

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

Информационные поля

Изменяемый текст  c—c Поле знаков изменяемой длины.
Постоянное буквенное поле aa Поле постоянной длины, включающее в себя большие или малые буквенные знаки.
Постоянное цифровое поле xx Поле постоянной длины, включающее в себя цифровые знаки.
Постоянное текстовое поле cc Поле знаков постоянной длины.ъ

Примечания:

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

2. Отрицательный знак “-” (код 2Dh) является первым знаком поля, если в нем приводятся отрицательные величины. При использовании отрицательного знака в полях фиксированной длины их длина увеличивается на единицу. При положительных величинах знак опускается.

GGA – Данные определения места по GPS

Время место и данные относящиеся к обсервации.

$GPGGA,hhmmss.sss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh<CR><LF>

Полями данного предложения являются:

1. hhmmss.sss – время навигационных определений;
2. llll.ll,a – широта, N/S;
3. yyyyy.yy,a – долгота, E/W;
4. x – показатель качества обсервации: 0 = нет данных, 1 = обсервация получена, 2 = обсервация в дифференциальном режиме;
5. xx – число используемых спутников;
6. x.x – величина горизонтального геометрического фактора (HDOP);
7. x.x,M – высота антенны над уровнем моря (геоидом), м;
8. x.x,M – превышение геоида над эллипсоидом WGS84, м;
9. x.x – устаревание дифференциальных поправок, то есть время в секундах с момента получения последней дифференциальной поправки, нулевое поле используется в случае выключения дифференциального режима;
10. xxxx – идентификатор дифференциальной станции 0ё1023.

RMC – Рекомендуемый минимальный набор данных по GPS и ГЛОНАСС

Время, дата, координаты и курс счисляемые аппаратурой.

$GPRMC,hhmmss.ss,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,xxxxxx,x.x,a,a*hh<CR><LF>

Полями данного предложения являются:

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 – дата: dd/mm/yy (день/месяц/год);
8. x.x,a – магнитное склонение в градусах, E/W;
9. a – индикатор режима: A = автономная обсервация, D = дифференциальный режим, N = данные недостоверны.

GSA – Фактор ухудшения точности, используемые для навигации спутники

$GPGSA,a,x,xx, ... ,xx,x.x,x.x,x.x*hh<CR><LF>

Полями данного предложения являются:
1. a – режим управления количеством определяемых координат: М = ручное, указан режим, А = автоматическое переключение;
2. x – режим работы: 1 = обсервация невозможна, 2 = определяются две координаты, 3 = определяются три координаты;
3. xx...xx – номера спутников используемых для решения навигационной задачи, количество полей равно количеству каналов приемника, для GPS используются номера 1ё32, для WAAS 33ё64, для ГЛОНАСС 65ё96;
4. x.x – общий геометрический фактор ухудшения точности (PDOP);
5. x.x – горизонтальный геометрический фактор ухудшения точности (HDOP);
x.x – вертикальный геометрический фактор ухудшения точности (VDOP).

GSV – Видимые спутники

Число спутников в зоне радиовидимости, номер спутника, угол возвышения, азимут и отношение сигнал/шум. Одно предложение может содержать информацию об 1 до 4 спутников, дополнительные данные о спутниках передаются в следующих предложениях. Номер предложения указывается в первых двух полях данных. Для спутниковых систем зарезервированы следующие номера: для GPS 1-32, для WAAS 33-64, для ГЛОНАСС 65-96.

$GPGSV,x,x,xx,xx,xx,xxx,xx, ... ,xx,xx,xxx,xx*hh<CR><LF>

Полями данного предложения являются:
1. x – общее число сообщений;
2. x – номер сообщения;
3. xx – общее число спутников в зоне радиовидимости;
4. xx – номер спутника;
5. xx – угол возвышения спутника, градусы 00-90;
6. xxx – азимут истинный, градусы 000-360;
7. xx – отношение сигнал/шум 00-99 дБ, если спутник не сопровождается не передается.

Примечание: поля 4, 5, 7 повторяются для 2, 3 и 4 спутников.

Ну вот теперь, имея описание протокола NMEA и драйвер прямые_руки.sys можешь приступать к построчному разбору пакетов и созданию мега программулины )))).

Категория: Общие Статьи | Добавил: aka_kludge (27.10.2008)
Просмотров: 1818 | Рейтинг: 4.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
    Главная      
...
На службе : дней

13:58
Обновить


Пользователи
aka_kludge
qwerty
LeadyTOR
aka_Atlantis
AdHErENt
mAss
Sissutr
hiss
DrBio
tHick

Поиск


Copyright tHR - TeAM 2024 г. admin: aka_kludge (ICQ:334449009) Moderator's: LeadyTOR, ... Яндекс.Метрика