Интернет-магазин

Просмотр корзины
В корзине:

товаров - 0 шт.



§ 26. Сопряжение сотового и ПК. Первые опыты по управлению.

Дмитрий Иванов, Январь 2007
Статья впервые опубликованна 14 Мая 2014

Файлы к статье скачать

Где-то я увидел устройство, состоящее из микроконтроллера и подключенного к нему сотового телефона. Это была охранная система, и при обрыве защитного шлейфа МК с помощью сотового делал звонок по указанному номеру. Меня тогда эта тема заинтересовала настолько, что пока не сделал тоже самое (и даже круче) не успокоился.


В самом деле, если посмотреть в тыловую часть моего сотовго телефона Sony Ericsoon T630 (от Автора: для 2007 года вполне неплохая модель), то можно увидеть там аж одинадцати контактный разъем! Понятно что два вывода идут на подзарядку, а остальные?! Так вот оказывается через них можно не только музыку на телефон закачивать но и управлять телефоном! Причем возможности по управлению удивляют: можно отправлять SMS, делать звонки, читать адресную книгу, сообщения, редактировать их, добавлять новые записи, имитировать нажатия кнопок и многое другое!

Причем хочу заметить, что подобными возможностями в той или иной степени обладают все сотовые телефоны, а не только SE T630. Как это работает? Принцип следующий: в составе телефона есть обычный последовательный порт данных (что-то типа COM порта). Существует специальный набор команд, при получении которых по этому порту микропроцессор телефона будет выполнять определенные действия, благо вся начинка телефона находится в его руках.

Теперь давайте перейдем к железу и посмотрим куда чего втыкать надо. Конкретно для SE T630 распиновка порта представлена ниже. Из 11-ти выводов нас будет интересовать только четыре:

  • 4 - RX (линия по которой последовательные данные поступают в телефон)
  • 5 - TX (линия по которой последовательные данные поступают из телефона)
  • 10 - земля
  • 11 - плюс питания

Т.о. можно подключить телефон к последовательному порту компьютера COM и посылать в порт необходимые команды. Но, начнем мы работать с телефоном не с COM порта, а как ни странно с USB. А конкретно, стандартного переходника COM-USB для сотового телефона SE T-630. Почему, спросите Вы? Постараюсь объяснить. Чтобы подключиться к выводам порта телефона необходима его стандартная розетка, поскольку просто подпоять проводники скорее всего не удасться (я например, для моего побоялся) - уж слишком разъем тонкий и узкий. А где ее добыть? Только в готовом кабеле для подключения сотового к компьютеру. Так что начать просто придется с него.

Значит, отправляемся на рынок на поиски этого переходника. Расскажу на примере Москвы и знаменитого рынка "Горбушка". Там мне для моего телефона предложили два варианта: первый, оригинальный data-кабель Sony Ericsson стоимостью 1000 руб и китайский за 300 руб. (это уже лучше). Конечно же я выбрал второй вариант, поскольку вообще сначала собирался просто отрезать розетку и паять самому переходник для COM порта. Сейчас же я думаю что очень удачно купил китайский. Переходники USB-COM с точки зрения программиста устройств сопряжения бывают двух видов: плохие и хорошие. Хорошие, это те, которые при подключении к компьютеру создают на нем виртуальный COM порт, и теперь любая программа может открыть этот порт и обмениваться по нему информацией, не обращая внимания на то что реально это USB. Плохие же, это те, которые портов не создают, а работают только с поставляемым вместе с ними программным обеспечением. Так обычно ведут себя оригинальные фирменные устройства, особенно для дорогих и навороченных телефонов. Ведь фирма-производитель телефона не очень рассчитывает на то, что кто-то будет сам писать программы для управления телефоном, разбираться в каких-то виртуальных портах и т.д. Поэтому, лучше всего брать дешевый переходник (китайсикй), он наверняка "хороший". На фото ниже показано то, что купил я.

Я подключил этот кабель с одной стороны к телефону, с другой воткнул в USB порт моего кмопьютера. Windows потребовала драйвера, которые я незамедлительно всунул ей на компакт-диске, поставляемом совместно с кабелем. Драйвера были быстро установлены и мне было написано, что устройство готово к работе.

Далее решающий момент: заходим Пуск -> Настройка -> Панель управления -> Система -> Оборудование -> Диспетчер устройств -> Порты (COM и LPT) и если там появился какой-то странный COM порт, которого раньше не было - то все Ok! Конктренто у меня появился порт COM6. Если теперь телефон отсоеденить от компьютера, то этот порт тут же исчезнет из списка портов.

Итак, давайте на практике испытаем возможности, которые дает нам программное управление телефонами. Для этого нам нужна программа, которая бы отправляла команды в телефон через COM порт (в нашем случае виртуальный). В следующих статьях мы быдем писать наши собственные программы на С++, а пока воспользуемся готовым решением от Microsoft - терминальной программной HyperTerminal, предназначенной для обмена данными через COM порты, модемы и др. линии связи. Для ее запуска зайдите Пуск -> Программы -> Стандарные -> Связь -> HyperTerminal (наверное, Вы ее не разу до этого не использовали и видете в первый раз). Сначала выскочит окно с вопросом о Вашем желании сделать HyperTerminal используемым по умолчанию TelNet приложением. Ответьте "Да", хотя смысла это ни какого не несет. Далее Вас попросят задать имя для новго подключения; задайте какое хотите.

Теперь необходимо выбрать канал, по которму будет работать HyperTerminal. В списке выберете тот COM порт, к которому подключен телефон. У меня это COM6.

Далее появится окно с настройками порта, но там ничего трогать не нужно. По умолчанию там все стоит правильно. Нажимайте "Ok". Перед Вами появится окно, по принципу работы с которым оно похоже на консоль. Наберите в окне строчку AT и нажмите Enter. При этом строчкой ниже должен появится ответ OK.

Если у Вас произошло то же самое, то все хорошо. Это значит что Ваш телефон поддерживает работу с AT Commands (модемные AT команды). AT Commands - это специальный набор команд для сотового телефона (те самые, с помощью которых мы будем управлять сотовым). Некоторая часть из них стандартизована и поддерживается большинством телефонных апаратов (например, команда проверки "AT"), часть предназначенна для конкретных аппаратов и задается фирмой изготовителем. На сайтах этих фирм можно свободно найти их описание. Весь дальнейший рассказ я буду говорить о командах SE T630, однако большинство из них пойдет и на других телефонах. Иначе (если не пойдет), Вам нужно будет посмотреть их синтаксис для своего телефона, благо общие принципы их записи в телефон полностью аналогичны.

Если вдруг Ok не было,то это значит что либо Ваш телефон не поддерживает AT Commands (что бывает крайне редко, ибо даже самый паршивый телефон их понимает), либо какие-то проблемы с коммуникацией - может быть Вы не тот порт используете, или контакт отошел.

Ну и в конце этой вводной статьи, давайте поднимем Вам аппетит к этой тематике. Наберите строчку ATD89161234567; и нажмите Enter.

И о чудо! Телефон начинает набирать номер 89161234567. Лично для меня это было настоящим открытием. Как надеюсь понятно, что вместо указанного номера можно написать любой другой, как сотовый так и городской. Это мы только что испытали команду по выполнению звонка - ATD.

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



© Дмитрий Иванов
Январь 2007
http://www.kernelchip.ru



© KERNELCHIP 2006 - 2017