Как проверить gsm modem
1. Что надо знать для грамотного подбора усилителя сотовой связи?
мощность сотового сигнала - принимаемого от базовой станции на улице (рядом с Вашим помещением)
частотный диапазон сотового сигнала - 800, 900, 1800, 2100 или 2600 МГц (для России, CНГ и Европы)
стандарт сотовой связи - GSM, 3G или 4G-LTE
Современные смартфоны на базе iOS (iPhone) или Android (Samsung, HTC, Xiaomi, Asus) - помогут измерить все 3 параметра
2. Как измерить сигнал GSM/3G/4G с приложением на Android?
ЭТО ЛУЧШИЙ МЕТОД ДЛЯ САМОСТОЯТЕЛЬНОГО ИЗМЕРЕНИЯ СИГНАЛА!
- Сотовые Вышки, Локатор- наглядно на карте
- Net Monitor Lite- наглядно и подробно
NB! Для Андроид 4.3 и выше. Ограниченная поддержка Dual SIM смартфонов для Андроид 5.1 и выше.
Шаг 1. Установите приложение на смартфон. На Dual SIM смарфтонах отключите вторую SIM карту.
Шаг 2. Фиксируем телефон в требуемом стандарте (напр. GSM) - в меню "Настройки/Беспроводные сети/ Мобильные сети" выберите пункт "Только сети 2G"
Шаг 3. Открываем приложение и на главном экране проверяем Мощность сигнала RSSI (-75 дБм), Стандарт связи (G - GSM) и частоту ARFCN (816, 1800 МГц)
БОНУС! На карте показываются ближайшие вышки Вашего оператора - именно в ту сторону надо будет направлять уличную антенну при установке репитера.
Частоты с 1 по 124 - диапазон стандарта GSM 900. Выбирайте готовые комплекты или профессиональные репитеры 900 МГц (GSM/3G-900)
Частоты с 512 по 885 - диапазон стандарта GSM 1800. Выбирайте готовые комплекты или профессиональные репитеры 1800 МГц (GSM/4G-1800)
Частоты с 974 по 1023 - диапазон стандарта E-GSM 900. Выбирайте готовые комплекты или профессиональные репитеры 900 МГц (EGSM/3G-900)
Частоты с 2937 по 3088 - это диапазон стандарта 3G - 900 МГц. Выбирайте готовые комплекты или профессиональные репитеры 900 МГц
Частоты с 10562 по 10838 - это диапазон стандарта 3G - 2100 МГц. Выбирайте готовые комплекты или профессиональные репитеры 2100 МГц
Шаг 1. Установите приложение на смартфон. На Dual SIM смарфтонах отключите вторую SIM карту.
Шаг 2. Фиксируем телефон в требуемом стандарте (напр. GSM) - в меню "Настройки/Беспроводные сети/ Мобильные сети" выберите пункт "Только сети 2G"
Шаг 3. Открываем приложение и на главном экране проверяем Мощность сигнала RSSI (-71 дБм), Стандарт связи (G - GSM) и частоту ARFCN (816, 1800 МГц)
Частоты с 1 по 124 - диапазон стандарта GSM 900. Выбирайте готовые комплекты или профессиональные репитеры 900 МГц (GSM/3G-900)
Частоты с 512 по 885 - диапазон стандарта GSM 1800. Выбирайте готовые комплекты или профессиональные репитеры 1800 МГц (GSM/4G-1800)
Частоты с 974 по 1023 - диапазон стандарта E-GSM 900. Выбирайте готовые комплекты или профессиональные репитеры 900 МГц (EGSM/3G-900)
Частоты с 2937 по 3088 - это диапазон стандарта 3G - 900 МГц. Выбирайте готовые комплекты или профессиональные репитеры 900 МГц
Частоты с 10562 по 10838 - это диапазон стандарта 3G - 2100 МГц. Выбирайте готовые комплекты или профессиональные репитеры 2100 МГц
2.3 метод №3. инженерное меню Android
NB! Работает не на всех смартфонах Android. Рекомендуем использовать специализированные Приложения из раздела №1
Шаг 1. Фиксируем телефон в требуемом стандарте (напр. GSM) - в меню "Настройки/Беспроводные сети/ Мобильные сети" выберите пункт "Только сети 2G"
Шаг 3. Проверяем Мощность сигнала RxPwr ( -94) - уровень сигнала GSM в дБм (децибел на милливатт) и Стандарт связи (GSM).
Шаг 4. Проверяем диапазон GSM 900 или 1800 - в верхней строке указан стандарт GSM - в данном случае GSM1800. Напротив параметра T будет указан номер рабочей частоты GSM - в данном случае 549 частота
Частоты с 1 по 124 - диапазон стандарта GSM 900. Выбирайте готовые комплекты или профессиональные репитеры 900 МГц (GSM/3G-900)
Частоты с 512 по 885 - диапазон стандарта GSM 1800. Выбирайте готовые комплекты или профессиональные репитеры 1800 МГц (GSM/4G-1800)
Частоты с 974 по 1023 - диапазон стандарта E-GSM 900. Выбирайте готовые комплекты или профессиональные репитеры 900 МГц (EGSM/3G-900)
Частоты с 2937 по 3088 - это диапазон стандарта 3G - 900 МГц. Выбирайте готовые комплекты или профессиональные репитеры 900 МГц
Частоты с 10562 по 10838 - это диапазон стандарта 3G - 2100 МГц. Выбирайте готовые комплекты или профессиональные репитеры 2100 МГц
3. Как измерить сигнал GSM/3G/4G на iPhone?
NB! Работает не на всех смартфонах Apple.
Рекомендуем взять на время Android смартфон и использовать специализированные Приложения из раздела №1
Ниже приведена инструкция по измерению сигнала для iPhone моделей 4-5 с IOS до 12.0.
Начиная с IOS 13.xx измерить сигнал GSM - невозможно, т.к. из меню убрана возможность выбора GSM стандарта
Шаг 2. Проверяем уровень сигнала GSM - числовое значение -86 в верхнем левом углу показывает уровень сигнала GSM в дБм (децибел на милливатт)
Значок E (EDGE) или G (GPRS) - говорит о том, что Ваш телефон находится в сети GSM, а не в сети 3G
Шаг 3. Проверяем диапазон GSM 900 или 1800 - нажимаем меню GSM Cell Environment -> GSM Cell info -> Neighboring Cell -> выбираем 0-й канал.
Запишите или сделайте скриншот цифры напротив ARFCN (это номер рабочей частоты)
Частоты с 1 по 124 - диапазон стандарта GSM 900. Выбирайте готовые комплекты или профессиональные репитеры 900 МГц (GSM/3G-900)
Частоты с 512 по 885 - диапазон стандарта GSM 1800. Выбирайте готовые комплекты или профессиональные репитеры 1800 МГц (GSM/4G-1800)
Частоты с 974 по 1023 - диапазон стандарта E-GSM 900. Выбирайте готовые комплекты или профессиональные репитеры 900 МГц (EGSM/3G-900)
Шаг 2. Проверяем уровень сигнала 3G - числовое значение -95 в верхнем левом углу показывает уровень сигнала 3G в дБм (децибел на милливатт) Значок 3G (UMTS) или H (HSDPA) - говорит о том, что Ваш телефон находится в сети 3G, а не в сети GSM
Шаг 3. Проверяем диапазон 3G 2100 или 900 МГц - нажимаем меню UMTS Cell Environment -> Neighbor Cells -> UMTS Set -> выбираем 0-й канал.
Запишите или сделайте скриншот цифры напротив Downlink Frequency (это номер рабочей частоты)
Частоты с 2937 по 3088 - это диапазон стандарта 3G - 900 МГц. Выбирайте готовые комплекты или профессиональные репитеры 900 МГц
Частоты с 10562 по 10838 - это диапазон стандарта 3G - 2100 МГц. Выбирайте готовые комплекты или профессиональные репитеры 2100 МГц
4. Хочу чтобы сигнал измерил профессионал
Не хотите далее углубляться в технические описания, стандарты и прочие детали?
У Вас есть необходимость решить проблему плохого приема сотового сигнала?
Тогда, специалисты компании “Сетевой Элемент” со многолетним опытом работы быстро, четко и качественно помогут Вам решить провести профессиональное радиоизмерение сотового сигнала на Вашем объекте!
Вы получите полную картину по слабому сигналу и способам его усиления с помощью репитеров сотового сигнала.
Сделайте первый шаг!
Оставьте ЗАЯВКУ на нашем сайте
Перепечатка данного материала разрешена при указании ссылки (поместить ссылку на эту статью) на сайт компании "Сетевой Элемент"
Бывают моменты, когда нас выводит из себя такая штуковина как GSM модуль к любительской плате контроллера. И в такие моменты не понимаеш или у тебя программа кривая, или монтаж хреновый или сам модем дохлый изначально.
Я советую в такой момент, а ещё лучше сразу после приобретения, просто взять и проверить надёжным способом раз и навсегда, дохлый он или нет.
Для проверки понадобится переходник преобразователь с USB компьютера на UART (RS232). Они стоят не дорого и в домашнем хозяйстве Ардуинщика часто бывают полезными.
Так же понадобится установленная программа Arduino IDE, которая тоже в хозяйстве Ардуинщика не помешает (здесь можно улыбнуться).
Как пример возьму китайский модуль на основе M590E. Они конечно бывают в разных исполнениях, но это один из простейших и он один из немногих, у которого имеется удобно читаемая маркировка гребёнки, что для нас сейчас будет очень важно. Так как бывают такие модули, в гребёнках которых запросто можно запутаться - они не подписаны и имеют множество незадействованных контактов.
Итак возьмём и соединим преобразователь USB в TTL UART и наш модуль при помощи специальных соединительных проводов мама-мама.
Такие модули стандартно подключаются следующим макаром:
USB -> UART | GSM модуль |
5V | U пит (5V) |
GND | GND |
TXD | RXD |
RXD | TXD |
Если есть вывод BOOT у модуля GSM, как в моем случае, то необходимо соединить его с общим проводом GND. Это вывод для перевода модема в спящий режим и обратно.
Теперь запускаем Arduino IDE и проверим наконец наш многострадальный GSM-модуль.
Подключаем преобразователь UART к USB порту компьютора. На самом преобразователе должен гореть светодиод. На проверяемом модуле светодиод периодически загорается и гаснет.
Если у вашего модуля есть светодиод питания, то он будет гореть постоянно. Если не горит, то у вас проблемы с питанием или короткое замыкание в модуле.
Если светодиод занятости модема не мигает, это нас настораживает, но не останавливает - может просто сгорел светодиод или он плохо припаян.
После появления нового COM-порта в меню Инструменты -> Порт программы Ардуино, выбираем этот порт и запускаем Монитор порта.
Настройки самого монитора порта видим на следующей картинке: CR (Возврат каретки); 9600 бод.
Просто перебираем скорости в настройках Монитора порта Arduino IDE и пробуем вводить команду AT. Если ничего не получилось, то можно при скорости 9600 монитора порта попробовать задать скорость модему такой командой AT+IPR=9600. Если после этого вы не добились ответа OK от него, то проблемы с коммуникацией.
Теперь делаем завершающий штрих: звоним на номер сим-карты, вставленной в исследуемое устройство.
В результате можно сделать уверенный вывод насчёт функционирования подопытного GSM устройства. Или работает или в ремонт или в топку.
Не связывается … Не набирается … не коннектится… срывается … Это может быть по слишком многим причинам. Мы рассматриваем тот случай, когда Вы уверены, что правильно настраивали Windows, и все равно что-то не в порядке. При этом возникает естественный вопрос – а само оборудование, то есть модем, железо – оно-то хоть исправно? Или нет? Ведь если неисправен сам модем, бесполезно надеяться, что поможет возня с перестановкой Windows.
Мы описываем простейшую проверку модема и некоторые рекомендации по его внутренней настройке.
Если у Вас снижена скорость обмена данными по телефонной коммутируемой линии, эти сведения тоже могут помочь.
Все современные модемы имеют скорость не ниже 33600. Многие – 56К. Это – скорость обмена с сетью по проводам, и она неизмеримо меньше скорости самого компьютера. Поэтому никаких особенных задержек не должно быть уже на 386 с ЛЮБЫМ модемом на 33600. При переходе к более быстрым машинам скорость работы с сетью НЕ увеличивается. Если у Вас любой Pentium, и любой модем 33600 или 56К, обмен должен идти быстро.
Есть много легенд. О том, что внешние модемы лучше внутренних, о том, что одни чипсеты совсем плохие, а другие лучше всех, о том, что некоторые модемы адаптированы к советским линиям связи, о том, что WIN-модемы хуже эмулирующих COM-порт …
В этих легендах есть доля правды. Но очень малая доля. Советуем Вам утвердиться в мысли, что модем 56K ВСЕГДА хорош и исправен. Вот этот аппаратик, что Вы купили – Вы купили его не зря. Вы сможете его настроить самостоятельно или с минимальной помощью компьютерщика, и потом спокойно и уверенно работать, не гадая на кофейной гуще.
С какой стати Вам самим настраивать? Конечно, лучше иметь друзей-специалистов (покажите им этот текст – может и им пригодиться). Но в любом случае Вы имеете дело с малопредсказуемыми внешними факторами – первое, советской телефонной сетью, второе – с заведомо глючной Windows, третье – с мнением, навязываемым продавцами. Поэтому Вам будет приятно обладать точными сведениями о состоянии “фундамента” Вашего интернета –сведениями о пригодности Вашего модема, проверенными собственноручно.
О скорости. Протоколы 56К поддерживаются не всеми провайдерами. Скорость эта односторонняя (в обратную сторону все равно 33600), поэтому в среднем получается что-то среднее между 33600 и 56000. Некоторые программы показывают скорость в других единицах – в CPS (букв в секунду) или в BPS (тот, который не B битов, а именно байтов в секунду). При этом на скорости 33600 цифра скорости должна быть примерно такая: 4000, то есть 33600, поделенное на 8
Ну, может быть, 2200 или 3100. Иногда поднимается до 6000 – 8000, и это очень хорошо. Но не 120, не 500, не 900! Если такие цифры все время на модеме 33600 или 56К – что-то не в порядке.
Вот минимальный тест исправности модема. Настоятельно советуем выполнить его, если модем пришел к Вам отдельно от собственной заводской упаковки. Модем могли где-то по пути подстроить под свои конкретные условия.
1. Пуск – Выполнить – Набираем HYPERTRM – Запускаем.
2. Наберите латынью ATZ и нажмите Enter (любая команда кончается этой кнопкой).
На следующей строчке должно появиться Ok. Появилось? Почти наверняка все: модем и узлы связи с ним в системном блоке - исправно. ATZ – команда сброса модема в исходное положение. Не появилось Ok? Наберите AT&F и нажмите Enter. AT&F – команда восстановления изначальных заводских настроек модема. Добейтесь ответа Ok. Если никак – зовите помощников.
3. Наберите AT&F (восстановление заводской настройки). Наберите AT&W0
Команда AT&W0 записывает заводские, изначальные, настройки, которые Вы перед этим загрузили по AT&F, в настройки включения. То есть теперь Вы уверены, что при включении модем станет таким, как его настроили на заводе. Можно немного “подергать” телефонную линию:
4. Наберите ATL3 (максимальная громкость динамика). Ответ, как всегда, должен быть – Ok
5. ATH1 - и модем должен снять трубку.
В динамике – знакомый Вам гудок станции. ATH0 – положить трубку. ATDP111222333 – это набор номера 111222333. Можете позвонить куда-нибудь такой командой, а на параллельном телефоне потом снять трубку и продолжить голосом. Но это – лишнее. Модем проверку прошел. Набираем ATH0 и выходим из программы ТЕРМИНАЛ.
Остальные команды модема описаны в прилагаемой к нему книжечке. Нет книжечки? Печально. Вообще никаких книжечек при компьютере нет? Вдвойне печально, и это допустимо только если фирма наверняка обеспечивает гарантийные обязательства. Книжечки эти Вам не очень нужны, а вот специалистам, которые будут Вам помогать – они нужнее всего.
Если это все получилось, то 99.99%, что трудности не из-за модема и даже не из-за линии, а из-за неверных установок в программах связи с провайдером, в самой Windows (например, в конфликте с другими устройствами – часто с мышью, принтером, звуковой или сетевой картой), в особенностях процедуры регистрации у провайдера … Это может быть материалом толстой книжки. Но сам модем ИСПРАВЕН. Еще бы – раз работают его внутренний процессор и схемы связи с линией, так что он даже принимает данные, которые Вы визуально контролируете.
На самом деле то, что мы написали, не совсем верно. Все-таки, запуская ТЕРМИНАЛ под Windows, Вы тестируете не только модем, но и саму Windows, ее заведомо глючные межпрограммные интерфейсы, а также драйвер модема. Но тестирование ручным вводом команд помогает свести влияние ошибок Windows к минимуму. Лучше всего тестировать оборудование под DOSом или UNIXом, без Windows. К сожалению, это не всегда возможно – а именно, для тех самых WIN-модемов. Эти модемы имеют нестандартное управление (только под Windows), и работать с ними возможно только под Windows, смиряясь с риском того, что при установке другой версии Windows или другой версии драйвера WIN-модем перестанет работать.
Теперь о СТРОКЕ ИНИЦИАЛИЗАЦИИ.
ПУСК – ПРОГРАММЫ – СТАНДАРТНЫЕ – УДАЛЕННЫЙ ДОСТУП К СЕТИ – и на нужном Вам соединении нажмите ПРАВУЮ кнопку.
Теперь СВОЙСТВА – НАСТРОЙКА – УСТАНОВКА СВЯЗИ – (ох, и неудобно искать, тем более что в разных версиях оно по-разному расположено!) – ДОПОЛНИТЕЛЬНО – а вот и строка инициализации. Параметры обычно такие: контроль передачи – аппаратный (RTS/CTS), остальные любые.
Вот более или менее универсальная строка инициализации:
Расшифровываем эту тарабарщину.
AT – признак начала команды
L3 – громкость на максимум (бывают еще L2 , L1)
M1- звук только при наборе номера и синхронизации модемов. Потом – не пищать.
&P3 – ускоренный набор цифр (трещит быстро). Если слишком быстро – уберите &P3
%C1 – управление выбором режима сжатия. Помогает тому, чтобы сжатие включилось независимо от того, какой способ (MNP или V42bis) поддерживает модем на том конце.
%E2 – автоматическое уменьшениевосстановление скорости передачи при плохом качестве линии.
S48=7 – заставляет модемы выяснять друг у друга, на каких режимах они способны работать.
S46=138 – включить сжатие данных
S36=7 – обеспечивает попытку связаться в режиме MNP, если модемы не смогли выяснить свои возможности. Описываемая комбинация параметров заставляет модемы связываться так: 1) пробуем сжатие V42bis 2) не вышло – пробуем MNP 3) не вышло и тут – тогда без сжатия. Дело в том, что при большом числе модемов у провайдера там могут оказаться модемы без V42bis или же без MNP – тогда нужно пробовать оба варианта.
N3 – включает режим исправления ошибок
S6=2 – говорит, что гудок при снятии трубки может появиться и через 2 секунды. Если позднее – модем попытается снова положитьснять трубку.
S7=15 – за сколько секунд модемы должны разобраться со своими возможностями и установить связь. В это время входит время набора номера. Если модемы за 15 секунд с момента снятия трубки не законнектились, модем будет звонить заново. Вот здесь и зарыта советская собака! Очень часто модемы не распознают сигнал занятости линии, выдаваемый нашими, так сказать, АТС. Просто сигналы занятости (короткие гудки) не соответствуют стандарту по тону, громкости или по интервалам. Поймет “занято” – хорошо. Сразу будет звонить снова. Не поймет ничего, что там выдает убитая АТС – тогда будет звонить повторно через 15 секунд. И никакие адаптации под “особенности” совестких АТС не помогут – слишком много возможно этих “особенностей”.
Бывает тяжелый случай – когда модем не распознает даже тот гудок станции, который раздается при снятии трубки (параметр S6). Ну конечно, это не модем виноват… послушайте ухом, что там творится. Если так, вставьте перед S6=2 без всяких пробелов конструкцию X0 (икс ноль) – тогда модем будет через заданные в S6 две секунды начинать набор номера независимо от того, что слышно в трубке. Подчеркиваю, что вариант X0 (“самый тяжелый случай”) в строке инициализации, той, что вверху, НЕ указан. При надобности вставляйте сами.
Итак, самый тяжелый случай: X0S6=2S7=15 – то есть сигналы станции все кривые: и гудок, и “занято”. Модем будет работать так:
- не слушая ничего, через 2 секунды начнет набирать номер.
- Если за 15 секунд не будет связи (то есть коннекта, взаимопонимания модемов), то будет звонить снова.
S10=50 – это значит, что 5-секундные разрывы линии допустимы. Пропадание сигнала в линии более чем на 5 секунд приведет к обрыву сеанса связи. Если линия рассоединится или слишком сильно заглючится менее, чем на 5 секунд – модем будет пытаться продолжить сеанс с того же места.
У меня стоит сейчас такая строка инициализации:
AT- признак начала команды, больше ничего не значит
L0 – пищать тихо
M1 – пищать только при коннекте
&P3 – ускоренный набор (работает НЕ ВЕЗДЕ и не имеет смысла при тоновом наборе)
а вот это ещё что такое:
а это вот что. В машине модем 56К. Линия+провайдер не могут работать на этой скорости. Однако всё равно пытаются начать. При этом при установлении соединения (если нет +MS …) слышны характерные очень длинные разноцветные писки и визги. Модемы пытются и так и этак начать работать на высокой скорости. Строка инициализации AT+MS=11,1,300,33600 заставляет модемы Ваш и провайдера СРАЗУ связываться на 33600, НЕ пробуя более высокие скорости и не теряя на это время.
Проверено на чипсете Rockwell.
*** Дополнение: строку инициализации для других типов модемов Вы можете найти эдесь:
Не так давно друг предложил мне работу, связанную с созданием прошивки для микроконтроллера, который должен был связываться с сервером при помощи GSM-модуля SIM900D. Ранее я с программированием микроконтроллеров дела не имел, да и на C программировал последний раз в студенческие времена, но любопытство перевесило и я принялся за работу. Документация по данной железке присутствует в интернете, однако хороших примеров работы с TCP/IP в коде найти не удалось. Ничего не оставалось, кроме как обложиться документацией, запастись сигаретами и чаем и приступить к лавированию между граблями. А граблей оказалось немало. Собственно, поэтому я и написал эту статью — чтобы другим было легче.
Далее будет много AT-команд, не слишком много кода и очень много букв.
Что было нужно
Требовалось написать код, который мог бы инициализировать GSM-модуль, устанавливать подключение с сервером, получать и отправлять произвольные данные, проверять состояние подключения и работать без сбоев. А также быть достаточно компактным, чтобы уместиться в ограниченной памяти микроконтроллера и оставить место для основной функциональности и еще чуть-чуть про запас.
Что получилось в итоге
Получился код на C, который может все, что было нужно. Из-за требований компактности, разбирать ответы и генерировать строки пришлось при помощи своего кода, который даже стыдно показать честному народу. Поэтому рекомендую всем использовать для этих целей регулярные выражения. Свой код я тоже собираюсь перевести на легковесный движок регулярных выражений, но уже после создания полнофункциональной прошивки.
Код требует функций/макросов для работы с последовательным портом, а также наличия функций memset и memcpy. Так что его с относительной легкостью можно перенести на другую платформу, не зацепив по пути кучу библиотек.
И как оно выглядит?
Программирование и тестирование проводилось под Windows 7. Код, полученный в результате, стал основным материалом для этой статьи. Я не стану приводить код полностью и комментировать его, а вместо этого покажу алгоритм настройки и работы с GSM-модулем.
Как работать с последовательным портом
Это достаточно просто. Под целевой микроконтроллер есть макросы для отправки/получения данных через USART, но так как отлаживать такой код проще со стационарного компьютера, мне была предоставлена связка из переходника USB<->USART и GSM-модуля. Оставалось только научиться работать с последовательным портом под Windows. Это оказалось просто. Вкратце, последовательный порт представляется в ОС обычным файлом, передача информации осуществляется функциями ReadFile и WriteFile. Нужно только установить кое-какие параметры при помощи функций SetCommTimeouts и SetCommState.
Вот как выглядит функция инициализации порта:
Как происходит общение с GSM-модулем
После того, как последовательный порт настроен, в него можно отправлять AT-команды. Первой командой должна быть последовательность "AT\r" , позволяющая модулю автоматически настроить скорость передачи по последовательному порту. Ответ, который можно получить после этого из порта, будет выглядеть как "AT\r\r\nOK\r\n" .
Примерно так и выглядят вспомогательные функции для отправки команды и получения ответа.
Инициализация модуля
Установка и разрыв подключений
- index указывает порядковый номер подключения, может принимать значения от 0 до 7.
- mode определяет протокол, который будет использоваться соединением. Может быть «TCP» или «UDP».
- address задает адрес сервера. Если при настройке были указаны DNS-сервера, то можно использовать как IP-адрес, так и доменное имя.
- port задает порт сервера, с которым будет устанавливаться соединение.
- "index,ALREADY CONNECT" это значит, что подключение с заданным индексом уже установлено и стоит его поискать.
- "index,CONNECT OK" тут все очевидно.
- "index,CONNECT FAIL" означает, что возникли проблемы с установкой соединения.
Передача данных
Данные передаются командой "AT+CIPSEND=index,length" , где index указывает подключение, по которому нужно передать данные, а length задает длину пакета данных. Кстати, узнать MTU для каждого подключения можно при помощи команды "AT+CIPSEND=?" .
Если все хорошо, то модуль в ответ на команду выдаст приглашение ">" , после которого нужно переслать в последовательный порт данные. Как только модуль получит количество байт, равное length , он скажет что-то типа "index,SEND OK" . Вообще, можно не использовать параметр length , однако в таком случае окончание пакета данных должно быть указано явно при помощи символа 0x1A , в терминале сочетание Ctrl+Z. Для передачи произвольных данных такой вариант, очевидно, не подходит.
Как видите, передача данных — процесс не слишком сложный. Поэтому переходим к самому интересному — приему данных.
Прием данных
Так вот, принимать данные можно командой "AT+CIPRXGET=2,index,length" . Двойка означает режим приема, в данном случае байты просто высыпаются в последовательный порт. Можно также задать получение данных в виде HEX-текста, видимо, ради предотвращения конфликтов с программным управлением потоком. Мне это не потребовалось, ибо управление потоком я вообще не использую. Параметр length задает размер пакета данных, который мы желаем получить за один раз.
В ответ мы получим нечто вида "+CIPRXGET:2,index,received,excess\r\n__DATA__\r\nOK\r\n" . В поле received будет находиться количество байт, находящихся в пакете данных __DATA__ , а поле excess будет содержать количество байт, ожидающих своей очереди в буфере модуля. Так что если поле received равно нулю, можно с чистой совестью заявлять, что получать нечего. Собственно, пользуясь этим, я и реализовал неблокирующую функцию для приема данных.
В заключение
Настоятельно рекомендую перед написанием кода освоиться в AT-командах при помощи PuTTY, который прекрасно работает с последовательным портом.
Надеюсь, информация из этой статьи поможет кому-нибудь написать код для своего SIM900. Вполне возможно, что принципы работы с GSM-модулем, изложенные выше, можно применить и к модулям других моделей, а, возможно, и производителей.
Настраивая внешнее оборудование (антенну) для вашего модема, важным показателем является уровень, шумы, качество сигнала и многое другое.
Все эти показатели, цифры, аббревиатуры и не понятные значения вводят вас в панику.
Давайте разберем все по порядку.
Где смотреть эти показатели?
В меню модема. На примере модем Huawei e 3372 h с прошивкой от HiLink Huawei .
Заходим в меню модема 192.168.8.1 . Далее во вкладку «Настройки»- в левом меню «Система» - вкладка «Информация об устройстве»
Это выглядит приблизительно так:
А здесь, как раз все что нам нужно.
Если вы используете модем с прошивкой Dashboard (Stick) в Wi-Fi роутере, на примере рассмотрим Роутер ZyXEL Keenetic.
На примере программы MDMA.
На какие показатели обратить внимание?
Показатель уровня принимаемого сигнала, RSSI (англ. received signal strength indicator) (телекоммуникации) — полная мощность принимаемого приёмником сигнала. Значение измеряется в дБ (dBm).
RSRQ (Reference Signal Received Quality) - характеризует качество принятых пилотных сигналов. Значение RSRQ измеряется в дБ (dB).
RSRP (Reference Signal Received Power) – среднее значение мощности принятых пилотных сигналов (Reference Signal) или уровень принимаемого сигнала с Базовой Станции. Значение RSRP измеряется в дБ (dBm). Мощность сигнала модема 4G / LTE также можно определить с помощью индикаторов SIGNAL STRENGTH на верхней панели устройства (зависит от типа и модели устройства, в некоторых моделях может отсутствовать или отличаться от представленного). Максимальному уровню соответствуют три горящих индикатора. Если ни один индикатор не горит, значит, уровень сигнала недостаточен для соединения с сетью LTE. При значениях RSRP= -120 dBm и ниже LTE-подключение может быть нестабильным или вообще не устанавливаться.
SINR (Signal Interference + Noise Ratio) также называемый CINR (Carrier to Interference + Noise Ratio) – отношение уровня полезного сигнала к уровню шума (или просто соотношение сигнал/шум). Чем выше данное значение, тем лучше качество сигнала. При значениях SINR ниже 0 скорость подключения будет очень низкой, т.к. это означает, что в принимаемом сигнале шума больше, чем полезной части, при этом вероятность потери LTE-соединения также существует. Значение SINR измеряется в дБ (dB).
CQI (Channel Quality Indicator). Для каждой абонентской станции UE (User Equipment) и каждого частотного блока несущей формируются индикаторы качества канала CQI. В зависимости от требуемой для UE скорости передачи данных базовой станцией принимается решение о количестве ресурсных блоков, выделяемых тому или иному пользователю, а какие именно частотные блоки выделять пользователям, зависит от индикатора CQI. Пользователям выделяются те ресурсные блоки, которые обладают наивысшим CQI, а значит, наилучшим соотношением сигнал/шум. Этот параметр может принимать значения от 0 до 15. Чем выше значение, тем лучше (тем выше скорость, которую может выделить базовая станция оператора LTE).
Одним из ключевых показателей, на которые требуется обратить внимание это RSSI.
так ка RSSI показывает в отрицательном значение, (в нашем случает это -61dBm) нужно стремиться к минимальному отрицательному показателю в сторону 0 (нуля).
На практике показатель до -55 считается отличным. Показания -60 . -70 хорошими. Ну а значения -78 уже не из радужных, но все таки работать на нем можно. При больших показателях, нужно принимать меры.
1. Можно попробовать поместить модем ближе к окну (бывает его даже приклеивают к форточке), метод вполне эффективный, если вышка оператора не далеко.
Если он не помог, то:
2. Метод 2. Использование внешнего усилителя, антенны.
Подбираем антенну нужного вам усиления 12dBm, 14dBm, 18dBm, 21dBm . и т.д.
Выбор антенн сейчас велик.
Антенну желательно поднимать выше использую стеновой кронштейн или мачту.
Это те способы, которые помогут нам увеличить уровень сигнала и стабилизировать наше интернет соединение.
При уровне сигнала в 3G диапазоне -80 . -100 dBm. Для его нормализации воспользуйтесь антенной UMTS 21 дБ ANT-1920-20 RN 1900 - 2100.
Для усиления в диапазоне LTE (4G) вам поможет антенна MIMO направленная 2500-2700 мГц.
Как понять какая антенна вам более оптимально подходит?
Вы можете, написать или позвонить нам. Мы подскажем как лучше поступить. Мы дадим вам тестовый период, что бы вы убедились, что это именно то оборудование которое вам подошло.
Читайте также: