Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как устроен внешний GSM/GPRS модем
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
RKS
Есть потребность вынести модем из устройства. Отдельно запитать, отдельно обогевать, отдельно выбирать SIM карту. От устройства до модема идет 9-ти проводный интерфейс - полный RS232. Но кроме этих сигналов модем надо как то аппаратно включить и аппаратно обрезетить. Использовать сигналы не по назначению нельзя. Поменять разъеме на устройстве нельзя. На корпусе модема тоже поместится только DB9. Пока есть только идея поставить мелкий контроллер с UARTОм который услышав специально выдуманные команды дернет аппартным RESETом или аппаратным включателем. Похоже на изобретение велосипеда. Хочу узнать как это делается правильно...
andrewlekar
Довольно сложное и неоправданное решение. В идеале, добавить нужных веревок. Компромиссное решение - поставить модем, который включается автоматически при подаче питания и, в общем, не нуждается в аппаратном сбросе. Вейвком, более-менее подойдёт.
V_G
Неужели все стандартные сигналы RS232 так сильно нужны? Лично я обхожусь RxD, TxD.
Пересмотрите свои потребности в этом плане.
Harbinger
Цитата(RKS @ Jan 24 2011, 22:29) *
отдельно выбирать SIM карту.

Из нескольких? Тоже по команде (сигналу) извне??? Тогда без дополнительного контроллера о двух UART таки не обойдётся. Чтобы "прозрачно" транслировал модулю его команды, а свои обрабатывал по-своему - ресетил модуль, коммутировал карточки и т.п.
Slonofil
Модем модему рознь. Например, GNS-300RS (на основе SIM300) имеет две возможности для сброса. Одна - по питанию отдельным входом (типа аппаратного сброса), причём на разъёме RJ12 заведено и питание, и сброс, так что можно управлять модемом со своей платы, если есть такая возможность; вторая - по переводу ноги DTR в единицу или отрицательным импульсом. Логика управления реализована на встроенном в модем контроллере. Глядите на возможность Вашего модема, может имеется нечто подобное.
RKS
Мы уже имеем модем на основе HiloNC. Заказчик им доволен. Менять его не получится. Надо сделать такой же но автономный . Аппратный сброс обязательно нужен, причем необходима возможность его сбрасывать с центрального процессора. Были мысли по поводу неиспользуемых линий, но не хочется изобретать свой интерфейс. Заказчик ставит свой софт на другое оборудование, которое в этом случае будет необходимо "дотачивать" аппаратно. Программно это значительно проще - если вообще понадобится.

Заказчик хочет иметь минимум 2 а лучше 3 симкарты. Не знаю зачем - не спрашивайте. Сейчас как-то обходится двумя. Выбираем мы их с центрального процессора. Соответственно контроллер рядом с модулем сделает это получив специальную команду.
Я не понял зачем для нашего решения два порта! Контроллер может слушать своим приемником обе линии между процессором и GSM модулем - и RXD и TXD (используем монтажное ИЛИ). Я пока не встречал ситуации когда сигнал есть одновременно на обоих линиях. Если такое возможно - расскажите. Я планировал дождаться пока модуль что-нибудь ответит на "кривую" команду и после этого контроллер ее отработает.


rx3apf
Цитата(RKS @ Jan 25 2011, 15:13) *
Заказчик хочет иметь минимум 2 а лучше 3 симкарты. Не знаю зачем - не спрашивайте. Сейчас как-то обходится двумя. Выбираем мы их с центрального процессора. Соответственно контроллер рядом с модулем сделает это получив специальную команду.

Тогда и управление питанием тоже таким же способом надо делать, слушать порт и ловить команду. Во времена внешних телефонных модемов тоже практиковалось дополнительное управление питанием (даже у приличных модемов бывали проблемы с зависанием), для этого либо смотрели за поведением DTR либо вообще использовали второй COM. Если категорически не хочется использовать два порта для связи с PC, то только смотреть за содержимым основного...
RKS
Цитата(Harbinger @ Jan 25 2011, 09:23) *
Из нескольких? Тоже по команде (сигналу) извне??? Тогда без дополнительного контроллера о двух UART таки не обойдётся. Чтобы "прозрачно" транслировал модулю его команды, а свои обрабатывал по-своему - ресетил модуль, коммутировал карточки и т.п.


Я не понял зачем 2 UARTа нужны контроллеру. Может я чего-то не знаю. Зачем контроллеру пропускать черех себя обмен? Мне кажется что просто подглядывать достаточно.
rx3apf
Цитата(RKS @ Jan 25 2011, 17:12) *
Я не понял зачем 2 UARTа нужны контроллеру. Может я чего-то не знаю. Зачем контроллеру пропускать черех себя обмен? Мне кажется что просто подглядывать достаточно.

Вероятно, предполагалось, что управляющие команды вырезаются из потока. Я думаю, что это вовсе не обязательно...
RKS
Цитата(rx3apf @ Jan 25 2011, 19:49) *
Вероятно, предполагалось, что управляющие команды вырезаются из потока. Я думаю, что это вовсе не обязательно...


Команда RESET настолько первостепенна что совершенно неважно в какой позе модуль ее случайно услышит и что на нее попытается ответить. Контроллер его тут же обрезетит. Потом если нужно придет команда SIMSWITCH а за ней POWERON. В промежутках между резетом и включением можно заняться подогревом - что-нибудь установить и проконтролировать выполнение. Предполагалось такая логика.
Harbinger
Цитата(RKS @ Jan 25 2011, 14:13) *
Я не понял зачем для нашего решения два порта! Контроллер может слушать своим приемником обе линии между процессором и GSM модулем - и RXD и TXD (используем монтажное ИЛИ). Я пока не встречал ситуации когда сигнал есть одновременно на обоих линиях.

Бывает такое, хоть вероятность и небольшая. Незапрашиваемые сообщения, которые модуль может выдать по собственной инициативе. И не все из них можно отключить.

Цитата(rx3apf @ Jan 25 2011, 18:49) *
Вероятно, предполагалось, что управляющие команды вырезаются из потока. Я думаю, что это вовсе не обязательно...

Не обязательно, если не напрягает принимать от модуля "ERROR" в ответ, вместе с ответом от контроллера wink.gif.
rx3apf
Цитата(RKS @ Jan 25 2011, 20:32) *
Потом если нужно придет команда SIMSWITCH а за ней POWERON. В промежутках между резетом и включением можно заняться подогревом - что-нибудь установить и проконтролировать выполнение. Предполагалось такая логика.

Я бы сделал так же, как обработку esc-посылки ("+++") - защитная пауза, команда, защитная пауза. И можно еще сделать условием неактивный DTR, например...

Цитата(Harbinger @ Jan 25 2011, 22:19) *
Не обязательно, если не напрягает принимать от модуля "ERROR" в ответ, вместе с ответом от контроллера wink.gif.

Ну, если управляющие команды тоже будут иметь префикс "AT" - то да, будет "ERROR". Можно игнорировать, можно не использовать такой префикс - по желанию.
Harbinger
Да даже "ERROR" в ответ на "AT+какая-то хрень" не обязательно будет (тут как-то писали, что Benq M23A на невалидные команды реагирует согласием, OK то есть, и ничего не делает при этом sm.gif ).
ssokol
Цитата(Harbinger @ Jan 25 2011, 23:19) *
(тут как-то писали, что Benq M23A на невалидные команды реагирует согласием, OK то есть, и ничего не делает при этом sm.gif ).

А разве это не противоречит GSM Specification?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.