Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Факс через GSM-модем
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
decadent
Уважаемые коллеги!

Возникла задача передачи факса между двумя модемами Siemens G24 -- поэтому пишу сюда. В дальнейшем управление модемом будет вестись с помощью микроконтроллера, поэтому разбираюсь с АТ-командами для организации факсимильной связи. Модем поддерживает класс 1, я могу подключиться к удаленному факсу (пока испытываю соединение с стационарным факсом), получаю от него CONNECT и техническую информацию -- а собственно факсимильное сообщение сформировать и отправить не могу. Посоветуйте, пожалуйста, в каком направлении копать. Заранее благодарю.
decadent
Цитата(decadent @ Feb 26 2009, 19:35) *
Возникла задача передачи факса между двумя модемами Siemens G24


Прошу прощения, конечно же Siemens MC35.
ovik89
Цитата(decadent @ Feb 26 2009, 19:35) *
Уважаемые коллеги!

Возникла задача передачи факса между двумя модемами Siemens G24 -- поэтому пишу сюда. В дальнейшем управление модемом будет вестись с помощью микроконтроллера, поэтому разбираюсь с АТ-командами для организации факсимильной связи. Модем поддерживает класс 1, я могу подключиться к удаленному факсу (пока испытываю соединение с стационарным факсом), получаю от него CONNECT и техническую информацию -- а собственно факсимильное сообщение сформировать и отправить не могу. Посоветуйте, пожалуйста, в каком направлении копать. Заранее благодарю.


насколько я знаю факс представляет собой рисунок значит после соединения надо в бинарнос виде его передавать скорее всего
decadent
Цитата(ovik89 @ Feb 26 2009, 23:41) *
насколько я знаю факс представляет собой рисунок значит после соединения надо в бинарнос виде его передавать скорее всего


Там не просто картинка. Как я понял -- она передается в виде последовательности фреймов, разделенных спецсимволами. Беда в том, что внятного описания структуры этих фреймов я не нашел. Кроме того, мне не обязательно передавать изображение -- достаточно с одного факса на другой передать некоторые двоичные данные -- и это тоже не получается.
shb
Когда то разбирался во всех подробностях с передачей факсов. Для начала нужно изучить рекомендации ITU-T Recommendation\T4.\T30.\T.31. Распиши подробно что ты хочешь и где произошел затык. Какоя конфигурация оборудования. Я так понял что у тебя стоит комп с подключенным MC35. На городской линии стоит факс-аппарат. Ты работаешь в терминалке. У оператора заказал услугу передачи факсов.
Даешь AT+FCLASS=1 затем ATD<номер> получешь CONNECT и затем получаешь DIS (сигнал идентификации возможностей) и на этом все.
Далее нужно переключиться на передачу AT+FTH=3 получить CONNECT и далее передаешь DCS (Команда установки возможностей, где задаешь разрешение факса, протокол, режим исправления ошибок)
После получения ОК ререключаешься в нужный протокол передачи (V.29 например) командой AT+FTM=96, передаешь тренировочную последовательность TCF, переключаешься на прием снова в V.21 командой AT+FRH=3, принимаешь CFR (Подтверждение готовности к приему) или FTT (Отказ в настройке)
Если CFR то AT+FTM=96 и передаешь данные.
Если FTT то снова DCS но уже с протоклом помедленнее AT+FTM=72 ну и так далее.
Да еще забыл сказать что можно переключиться в режим передачи фалов а не факс сообщений. Содержимое самого файла данных может иметь любой тип кодирования. Все команды и их форматы (DCS DIS TCF CFR) прописаны в ITU-T.
decadent
Спасибо за подробный ответ, постараюсь объяснить свою ситуацию.


Цитата(shb @ Feb 27 2009, 12:47) *
Я так понял что у тебя стоит комп с подключенным MC35. На городской линии стоит факс-аппарат. Ты работаешь в терминалке. У оператора заказал услугу передачи факсов.


Именно так.

Цитата(shb @ Feb 27 2009, 12:47) *
Даешь AT+FCLASS=1 затем ATD<номер> получешь CONNECT и затем получаешь DIS (сигнал идентификации возможностей) и на этом все.


После коннекта приходит от факса некоторый набор символов -- какие-то бинарные данные. Прикладываю скриншот.

Цитата(shb @ Feb 27 2009, 12:47) *
Далее нужно переключиться на передачу AT+FTH=3 получить CONNECT и далее передаешь DCS (Команда установки возможностей, где задаешь разрешение факса, протокол, режим исправления ошибок)


Вот в передаче служебных посылок, похоже, проблема.

Цитата(shb @ Feb 27 2009, 12:47) *
Да еще забыл сказать что можно переключиться в режим передачи фалов а не факс сообщений. Содержимое самого файла данных может иметь любой тип кодирования. Все команды и их форматы (DCS DIS TCF CFR) прописаны в ITU-T.


Спасибо за подробное объяснение, все делал почти так же -- значит, мыслю в правильном направлении. Пытался повторить сессию передачи странички, приведенную в этом мануале.

Цитата(shb @ Feb 27 2009, 12:47) *
Для начала нужно изучить рекомендации ITU-T Recommendation\T4.\T30.\T.31.


Похоже, придется их интенсивно проштудировать, благодарю за наводку.
shb
Двигаешся в правильном направлении. Терминалка нужна которая может в НЕХ. Иначе ничего не понять. Для понимания привожу пример удачной передачи факса. Красным выделено начало и конец фремов Нажмите для просмотра прикрепленного файла
decadent
Большое спасибо, буду разбираться. Если будут вопросы -- можно обращаться?

Цитата(shb @ Feb 27 2009, 18:00) *
Терминалка нужна которая может в НЕХ. Иначе ничего не понять.


А какую лучше взять в случае WinXP?
shb
Терминалок навороченных полно, я пользую Serial Port Monitor 4.0 от Eltima Software. Мне нравится. Данные можно передавать в String, HEX, BIN.
Мне не понятна твоя задача (конечная). Передать некоторые двоичные данные с одного факса на другой через ЖСМ. Принимающий факс поймет только факс сообщение. Или ты просто на начальном этапе пытаешся передать хоть что то?
Скачать Serial Port Monitor можно ЗДЕСЬ
decadent
Цитата(shb @ Feb 27 2009, 23:57) *
Мне не понятна твоя задача (конечная). Передать некоторые двоичные данные с одного факса на другой через ЖСМ. Принимающий факс поймет только факс сообщение. Или ты просто на начальном этапе пытаешся передать хоть что то?


Задача -- организовать как можно более дешевую передачу данных с поста мониторинга, каких много и они разбросаны на большой площади -- на компьютер диспетчера. Использовать смски, звонки и GPRS-модемную связь довольно дорого, а факсы слать дешевле, вот и остановились на этом решении.
shb
В этом случае тебе вообще не надо изучать протоколы передачи факса. После соединения двух модемов ЖСМ просто набрать AT+FTM=96 на передающем и AT+FRM=96 на принимающем и в конце файла 10h 03h и все. Правда данные немного надо подготовить. Т.к. 10h является терминатором потока данных, по нему определяется конец данных, нужно в данных если встречается 10h добавить рядом еще одну 10h. Принимающий модем сам разберется с этим и проредит их. А комбинацию 10h 03h воспримет как конец. Все эти протоколы V.21 , V.29 и т.д. необходимы только для формирования аналогового сигнала для синхронизации факс аппарата в городской линии. В твоем случае выхода в город нет а в ЖСМ сети идет поток цифр никак не связанный с факс протоколом как и с протоколами аналоговых модемов V.32, V.34 и V.110.
decadent
Цитата(shb @ Feb 28 2009, 11:27) *
В этом случае тебе вообще не надо изучать протоколы передачи факса. После соединения двух модемов ЖСМ просто набрать AT+FTM=96 на передающем и AT+FRM=96 на принимающем и в конце файла 10h 03h и все. Правда данные немного надо подготовить. Т.к. 10h является терминатором потока данных, по нему определяется конец данных, нужно в данных если встречается 10h добавить рядом еще одну 10h. Принимающий модем сам разберется с этим и проредит их. А комбинацию 10h 03h воспримет как конец.


Спасибо, это очень упростит мою задачу -- в понедельник попробую, отпишусь о результатах. За терминалку спасибо отдельное -- очень удобная программа.
etoja
Останется только:
- убедиться, что данные пришли к получателю в нужном порядке и без ошибок.
- при обрыве соединения организовать докачку, а не повтор сначала
- организовать дозвон из центрального компьютера до всех объектов.

А оплата идёт за время соединения. Если всё правильно посчитать, то окажется , что GPRS соединение дешевле CSD соединения.
decadent
Цитата(shb @ Feb 28 2009, 11:27) *
В этом случае тебе вообще не надо изучать протоколы передачи факса. После соединения двух модемов ЖСМ просто набрать AT+FTM=96 на передающем и AT+FRM=96 на принимающем и в конце файла 10h 03h и все.


Вчера, как обещал, попробовать не смог, работал сегодня. Ситуация следующая: при звонке с одного модема на другой получаю CONNECT, а затем сразу же +FCERROR и NO CARRIER -- связь разрывается. То ли я торможу и не успеваю дать нужные команды, то ли связь почему-то рвется принудительно.
etoja
Ваш тарифный план может не поддерживать такую передачу данных.
decadent
Цитата(etoja @ Mar 3 2009, 15:13) *
Ваш тарифный план может не поддерживать такую передачу данных.


Это проверено -- поддерживается. ВентаФакс отправляет факсы на стационарные аппараты со всех симок. Так что дело не в этом.
shb
Вопросы. Обе симки поддерживают факс? Обязательно проверить. На вызываемом модеме включен овтоответ или сам АТА даешь? Вызываемый факс видит RING FAX при расширенном ответе? Обязательно должен видеть входящий вызов как факсовый. Пока не увидишь RING FAX далее не проверяй. Как включить расширенный ответ при вызове? Не помню. Посмотреть надо. Посмотрел AT+CRC=1
decadent
Цитата(shb @ Mar 3 2009, 16:15) *
Вопросы. Обе симки поддерживают факс? Обязательно проверить. На вызываемом модеме включен овтоответ или сам АТА даешь? Вызываемый факс видит RING FAX при расширенном ответе? Обязательно должен видеть входящий вызов как факсовый. Пока не увидишь RING FAX далее не проверяй. Как включить расширенный ответ при вызове? Не помню. Посмотреть надо. Посмотрел AT+CRC=1


Факс поддерживают обе симки. Передавал данные с помощью ВентаФакса с одной на другую и наоборот.

На вызываемом модеме АТА делаю вручную. Входящий вызов виден как факсовый: +CRING: FAX.
shb
Перед АТА давал FCLASS=1 ? А то у тебя даже соединения не происходит все сразу .CONNECT....+FCERROR....NO CАRRIER..
decadent
Цитата(shb @ Mar 3 2009, 17:11) *
Перед АТА давал FCLASS=1 ?


Давал после открытия порта.

Еще проверил, дав FCLASS=1 непосредственно перед звонком. Та же история.
shb
Наверное все таки надо пройти этап идентификации и установки возможностей. Сделай так.
После получения на приеме ..CONNECT.. сразу передай команду DIS <FF 13 80 00 4E F8 84 80 90 11 10 03> может после этого пойдет.
На передаче должно быть ..CONNECT..<DIS>..OK.. Если и после этого не проходит тогда все по новой и после ..CONNECT..<DIS>..OK.
на передаче выдай команду AT+FTH=3. А после получения CONNECT выдай DCS < FF 13 83 00 46 F8 04 10 03> получишь в ответ .ОК. И в путь.
Команды DIS информирует передатчик о своих возможностях а DCS устанавливает протокол передачи тот самый AT+FTM=96.
Ты мне пиши в личку. Тема похоже интересна только нам. Не будем засорять.
decadent
Цитата(shb @ Mar 4 2009, 08:58) *
Ты мне пиши в личку. Тема похоже интересна только нам. Не будем засорять.


Ок, спасибо, пишу.
Baser
Цитата(shb @ Mar 4 2009, 07:58) *
Ты мне пиши в личку. Тема похоже интересна только нам. Не будем засорять.

А вот тут вы не правы. Любая конкретная техническая информация по какой-либо проблеме может понадобиться. Не мне, так другому, не сейчас, так через полгода - год. Тут, на форуме, хотя бы решение останется. А так, сказали "А" - и затихарились. Нет уж, не скрывайте знаний от народа beer.gif
decadent
Цитата(Baser @ Mar 4 2009, 13:38) *
А вот тут вы не правы. Любая конкретная техническая информация по какой-либо проблеме может понадобиться. Не мне, так другому, не сейчас, так через полгода - год. Тут, на форуме, хотя бы решение останется. А так, сказали "А" - и затихарились. Нет уж, не скрывайте знаний от народа beer.gif


Получим результат -- обязательно отпишусь. Задачка действительно оказалась не из легких.
decadent
Поднимаю снова эту тему, поскольку обещал отписаться, когда будет решена задача. Она частично решена (за помощь огромное спасибо shb!) -- частично в том смысле, что факсы между компьютерами проходят, но если передатчик управляется контроллером -- еще имеются проблемы.

Для реализации факсимильной связи необходимо:
  1. Установить модемы в факсовый режим.
  2. Сделать дозвон
  3. Осуществить синхронизацию модемов между собой
  4. Осуществить синхронизацию модемов с сетью
  5. Передать данные


Установка модемов в режим факса осуществляется командами:
  • AT+FCLASS=1
  • AT+CSNS=2


К сожалению, SIM300 поддерживает только режим FAX CLASS 1. Если нужен более "продвинутый" CLASS 2 -- нужно брать другие модемы.

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

Еще одна особенность -- данные принимаются в составе своеобразного "фрейма", на фоне "несущей" -- для моего случая этой "несущей" оказалась последовательность байтов ff. После самих данных сеть еще вставляет дополнительные байты, однако их назначение осталось для меня непонятным -- но они просто отфильтровываются, поскольку полезной для меня информации там нет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.