|
GPS приемник и Atmega, посоветуйте модель |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 14)
|
Aug 27 2008, 15:46
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(V000va @ Aug 27 2008, 19:23)  Подскажите плз, нужно увязать GPS приемник и контроллер Atmega8 или Tiny2313. Необходимо принимать время, дату и координаты и выводить на дисплей. Поковырявшись в datasheet и моделях GPS приемников возникло несколько вопросов: 1. Протокол Nmea двусторонний или нет, т.е. прием-предача? Что-то вроде как можно и передавать (никогда не вникал в подробности за ненадобностью), но типично практически все (исключений не знаю) модули по умолчанию просто гонят NMEA (ASCII, 4800), и надо просто разгребать то, что сыплется. 2313, пожалуй, имеет маловато ресурсов. Т.е., наверное, что-то получится сделать, но явно будет тесновато. Mega8 либо 168 - будет самое оно. Цитата 2. Какую модель GPS приемника и антенны выбрать? Читал что в некоторых приемниках некоторых фирм много брака. С модулями от u-blox обычно проблем нет. Жрут мало, стоят не очень дорого. Цитата 3. Как можно реализовывать взаимодействие микроконтроллера и приемника по протоколу Nmea? Ведь необходимо предавать ASCII (буквы) символы в виде команд. Из таблицы ASCII символов пердавать HEX код соответсвующий и в UART или как? (с UART не работал, вот и спрашиваю) Разбирать сообщения, паковать данные. Если ориентироваться на конкретного производителя, то можно воспользоваться и бинарным протоколом, но NMEA - стандарт, и, наверное, правильнее именно на него ориентироваться. Цитата 4. Как нужно(можно) сконфигурировать приемник для моего режима? для координат и времени оптимален скорее всего 2-й режим? Вероятно да. Определяется условиями эксплуатации устройства.
|
|
|
|
|
Aug 28 2008, 02:12
|
Участник

Группа: Свой
Сообщений: 68
Регистрация: 29-12-06
Из: Омск
Пользователь №: 23 999

|
Цитата(V000va @ Aug 27 2008, 18:23)  Подскажите плз, нужно увязать GPS приемник и контроллер Atmega8 или Tiny2313 ... Как можно реализовывать взаимодействие микроконтроллера и приемника по протоколу Nmea? Ведь необходимо предавать ASCII (буквы) символы в виде команд. Из таблицы ASCII символов пердавать HEX код соответсвующий и в UART или как? (с UART не работал, вот и спрашиваю) ... в протоколе NMEA для GPS-устройств есть обязательная команда $GPRMC. Она выдается исключительно ВСЕМИ устройствами самопроизвольно раз в 1..3 секунды и содержит в текстовом виде перечисленные через запятую широту, долготу, азимут, скорость, опционально высоту и контрольную сумму. Остальные команды полностью зависят от изделия, и могут передаваться как инициативно, так и по запросу. Для AVR достаточно будет иметь UART и микруху сопряжения COM-порта. Какой LCD юзать - придумай сам. Схем навалом. Я тут давненько писал прогу для компа по чтению с GPS - посмотри, поюзай, изучи интерпретацию...
|
|
|
|
|
Aug 28 2008, 07:34
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 23-06-08
Пользователь №: 38 503

|
Из прочитанного я понял, что протокол двусторонний, т.к. в некоторых модулях присутсвует конфигурирование режимов работы GPS приемника. Команда $GPRMC выдается приемником (её можно опустить) или ее нужно формировать при конфигурировании тоже? Цитата модули по умолчанию просто гонят NMEA (ASCII, 4800), и надо просто разгребать то, что сыплется. Но ведь гнать в линию модули могут и в GGA, ZTA , GLL формате? Это ведь нужно конфигурировать? Цитата Разбирать сообщения, паковать данные. Ну с разборкой сообщений все опнятно, а что подразумевается под упаковкой? ЗЫ Небольшое уточнение. Многие приемники имеют уже UART выход, все тот же Modulestek имеет P3 TxD2 USART2 Transmit. P4 RxD2 USART2 Receive. Поэтому UART Atmega8 буду использовать для связи с приемником, а не с компом.
|
|
|
|
|
Aug 28 2008, 09:04
|
Участник

Группа: Свой
Сообщений: 68
Регистрация: 29-12-06
Из: Омск
Пользователь №: 23 999

|
Цитата(V000va @ Aug 28 2008, 10:34)  Команда $GPRMC выдается приемником (её можно опустить) или ее нужно формировать при конфигурировании тоже? Но ведь гнать в линию модули могут и в GGA, ZTA , GLL формате? Это ведь нужно конфигурировать?
Ну с разборкой сообщений все опнятно, а что подразумевается под упаковкой?
ЗЫ Небольшое уточнение. Многие приемники имеют уже UART выход, все тот же Modulestek имеет P3 TxD2 USART2 Transmit. P4 RxD2 USART2 Receive. Поэтому UART Atmega8 буду использовать для связи с приемником, а не с компом. Повторяю, $GPRMC всегда выдается приемником. В каком формате оно ползет - читай мануал выбранного приемника. Но обычно тупо в текстовом, разделенное запятыми, на скорости 4800. И чтобы его получить - ничего конфигурять не надо. Просто включи приемник и настрой на спутник. Чтобы конфигурять, достаточно отправить на приемник команду в таком же виде: ( пример) "$GPEMD,1,a#". Тупо текст побайтно. Что нужно конкретно писать - кури мануал. Упаковка - это значит, что в RMC градусы, минуты и секунды пишутся слитно в одном параметре,напр, W0125607 - типо западная долгота, 12 градусов, 56 минут и 07 секунд. Про UART - есть меги с 2-мя уартами  туда и туда. Если нужно, конечно.
|
|
|
|
|
Aug 28 2008, 09:35
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 23-06-08
Пользователь №: 38 503

|
Цитата(Syberian @ Aug 28 2008, 12:04)  Повторяю, $GPRMC всегда выдается приемником. В каком формате оно ползет - читай мануал выбранного приемника. Но обычно тупо в текстовом, разделенное запятыми, на скорости 4800. И чтобы его получить - ничего конфигурять не надо. Просто включи приемник и настрой на спутник. Чтобы конфигурять, достаточно отправить на приемник команду в таком же виде: ( пример) "$GPEMD,1,a#". Тупо текст побайтно. Что нужно конкретно писать - кури мануал. Упаковка - это значит, что в RMC градусы, минуты и секунды пишутся слитно в одном параметре,напр, W0125607 - типо западная долгота, 12 градусов, 56 минут и 07 секунд. Про UART - есть меги с 2-мя уартами  туда и туда. Если нужно, конечно. Так яснее, спасибо. Подскажите, щас вот втыкаю datasheet разных производителей, некоторые пришут что у них NMEA output: GGA, RMC, GSV, GSA (all 1 sec interval), т.е. по кругу гонятся данные в разных форматах. А некоторые пишут что у них просто NMEA выход и не пишут, какой формат вывода GGA, RMC, GSV или какой другой. Есть ли модуль, который выдает данные в зависимости от того как его сконфигурирую? Т.е. хочу, например, в ZDA формате - поставь едеиничку в таком регистре, хочешь в GGA - поставь нолик в этом регистре. Цитата И чтобы его получить - ничего конфигурять не надо. Просто включи приемник и настрой на спутник. Т.е. нужно искать приемник, который выдает сразу в GGA, а не цикл из GGA, RMC, GSV, GSA (all 1 sec interval) Цитата Упаковка - это значит, что в RMC градусы, минуты и секунды пишутся слитно в одном параметре,напр, W0125607 - типо западная долгота, 12 градусов, 56 минут и 07 секунд. С упаковокой понятно, я -то думал что-то сложное.
|
|
|
|
|
Aug 28 2008, 09:46
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(V000va @ Aug 28 2008, 11:34)  Из прочитанного я понял, что протокол двусторонний, т.к. в некоторых модулях присутсвует конфигурирование режимов работы GPS приемника. Но по умолчанию обычно NMEA, и достаточно однонаправленности. Цитата Команда $GPRMC выдается приемником (её можно опустить) или ее нужно формировать при конфигурировании тоже? Но ведь гнать в линию модули могут и в GGA, ZTA , GLL формате? Это ведь нужно конфигурировать? Это не команды, и не форматы. Это сообщения. Из входного потока вылавливаются и обрабатываются нужные, а то, что не нужно - игнорируется. Цитата Ну с разборкой сообщений все опнятно, а что подразумевается под упаковкой? Я имел в виду тот случай, когда принимаемые данные надо как-то преобразовывать. Если есть желание и потребность, можно, конечно, выдавать на экран прямо те фрагменты ASCII, которые присутствуют в сообщении. Но если надо делать какие-то преобразования, то значения в ASCII надо преобразовать в бинарные, обработать, и затем выводить, используя преобразование. Под "упаковкой" я подразумевал только это (и, возможно, применил не вполне корректный термин). Цитата ЗЫ Небольшое уточнение. Многие приемники имеют уже UART выход, все тот же Modulestek имеет P3 TxD2 USART2 Transmit. P4 RxD2 USART2 Receive. Поэтому UART Atmega8 буду использовать для связи с приемником, а не с компом. А с компьютером связь не нужна ? На самом деле, реализовать программный приемник для 4800 - совсем просто (удобно пользоваться для этого функцией ICP), и тогда UART вполне можно отдать для иных целей. Цитата(V000va @ Aug 28 2008, 13:35)  Есть ли модуль, который выдает данные в зависимости от того как его сконфигурирую? Т.е. хочу, например, в ZDA формате - поставь едеиничку в таком регистре, хочешь в GGA - поставь нолик в этом регистре. Т.е. нужно искать приемник, который выдает сразу в GGA, а не цикл из GGA, RMC, GSV, GSA (all 1 sec interval) Насколько подсказывает мой склероз, опциональные сообщения можно отключать у u-Blox, к примеру. А нужно ли это делать ? Если просто фильтровать поток и вылавливать лишь нужные, то можно использовать совершенно любой приемник. Например, туристический eTrex - а готовые изделия, в отличии от модулей, передают то, что считают нужным, и им уже не объяснишь, что это - нужно, а это - не нужно. Типично - раз в секунду все по кругу...
|
|
|
|
|
Aug 28 2008, 09:52
|
Участник

Группа: Свой
Сообщений: 68
Регистрация: 29-12-06
Из: Омск
Пользователь №: 23 999

|
Цитата Подскажите, щас вот втыкаю datasheet разных производителей, некоторые пришут что у них NMEA output: GGA, RMC, GSV, GSA (all 1 sec interval), т.е. по кругу гонятся данные в разных форматах. А некоторые пишут что у них просто NMEA выход и не пишут, какой формат вывода GGA, RMC, GSV или какой другой. Есть ли модуль, который выдает данные в зависимости от того как его сконфигурирую? Т.е. хочу, например, в ZDA формате - поставь едеиничку в таком регистре, хочешь в GGA - поставь нолик в этом регистре.  Повторяю в третий и последний раз. В.С.Е. (все) (all) (alle) (усi) приемники GPS выдают сообщение $GPRMC раз в секунду. Это обязательное требование какого-то там "морского реестра спасателей". И ничего (nothing) для получения своих координат, азимута и скорости в приемник писать не нужно! Просто прими RMC раз в секунду. Остальные сообщения выдают как вместе, так и по отдельности, данные из RMC, режимы приемника, заряд батареи, атмосф. давление и проч "фичи. Их выдача зависит от производителя.
|
|
|
|
|
Aug 28 2008, 10:24
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 23-06-08
Пользователь №: 38 503

|
Цитата(Syberian @ Aug 28 2008, 12:52)   Повторяю в третий и последний раз. В.С.Е. (все) (all) (alle) (усi) приемники GPS выдают сообщение $GPRMC раз в секунду. Это обязательное требование какого-то там "морского реестра спасателей". И ничего (nothing) для получения своих координат, азимута и скорости в приемник писать не нужно! Просто прими RMC раз в секунду. Остальные сообщения выдают как вместе, так и по отдельности, данные из RMC, режимы приемника, заряд батареи, атмосф. давление и проч "фичи. Их выдача зависит от производителя. Ну хорошо, а могу я отключить RMC и GGA включить например? RMC это recommended minimum. И как можно выбирать между форматами выдаваемых в линию сообщений? Это ведь не рационально, выдавать в линию несколько сообщений в разных форматах, но с одинаковыми данными. Цитата Это не команды, и не форматы. Это сообщения. Из входного потока вылавливаются и обрабатываются нужные, а то, что не нужно - игнорируется. А зачем тогда дублировать данные, ведь все сообщения содержат схожую информацию? Как-то $GPRMC, $GPGGA например. Можно сделать так, чтоб в линию выдавалось только одно сообщение како-го то формата? Чтоб не отсеивать по начальному индексу из 3 разных сообщений одно нужное.
|
|
|
|
|
Aug 28 2008, 10:26
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(V000va @ Aug 28 2008, 14:24)  Ну хорошо, а могу я отключить RMC и GGA включить например? Нет. Цитата Можно сделать так, чтоб в линию выдавалось только одно сообщение како-го то формата? Чтоб не отсеивать по начальному индексу из 3 разных сообщений одно нужное. В общем случае - нет.
|
|
|
|
|
Aug 28 2008, 14:13
|
Частый гость
 
Группа: Участник
Сообщений: 87
Регистрация: 23-06-08
Пользователь №: 38 503

|
Цитата(rx3apf @ Aug 28 2008, 13:26)  Нет.
В общем случае - нет. Хм, выходит что только по заголовку сообщения фильтровать то, что тебе нужно. Другого не остается.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|