Мобильный телефон в качестве пульта управления микропроцессорной системой (А.В.Пахомов)

Статья опубликована в журнале "Радио" №7, 2011. В статье описан вариант управления микропроцессорной системой (МПС) с помощью сотового телефона (СТ). Клавиатура СТ используется для ввода команд в МПС, а экран СТ для отображения поступающей из МПС информации. Сопряжение СТ с МПС осуществляется с помощью последовательного интерфейса. В качестве иллюстрации метода приводится абстрактная МПС на базе микроконтроллера (МК) MCS51 (AT89C51), управляемая СТ Siemens CF62. В статье описаны АТ команды, используемые в программе МК.

Введение

Часто в радиолюбительской практике приходится сталкиваться с задачей получения информации о ходе процессов в микропроцессорной системе (МПС) с одновременным воздействием на ход этих процессов. Обычно для этой цели используется несколько выводов МК для подключения индикатора и небольшой клавиатуры. Удобным было бы применение небольшого пульта (терминала), на экран которого выводится информация из микропроцессорной системы, а с его клавиатуры поступают команды в МПС. Прогресс нам может в этом помочь - такой пульт есть практически у каждого современного человека - это мобильный телефон. Каждый такой аппарат имеет экран и клавиатуру, а взаимодействие с МПС можно осуществлять через последовательный порт, имеющийся в большинстве "старых" дешевых "трубок". Взаимодействие МПС и СТ можно реализовать двумя способами:

Первый - "правильный" заключается в запуске на СТ специальной терминальной программы, задача которой состоит в приеме байта через последовательный интерфейс и отображение его на экране с одной стороны и вывод через тот же интерфейс кода нажатой на СТ клавиши. Для реализации этого решения требуется СТ с последовательным портом и поддержкой Java 2 Micro Edition с профилем MIDP 2.0, т.к. только с этой версии включена поддержка последовательного порта. Этот способ очевиден и не рассматривается в статье: все материалы по реализации способа можно найти в книге [3].

Второй - "не правильный" заключается в использовании АТ+С команд для вывода данных на экран и опроса клавиатуры телефона. Способ не требует поддержки телефоном Java (хотя наличие хотя бы MIDP 1.0 не помешает). Данный способ и описывается в предлагаемой статье. .

Команды работы с клавиатурой

Подключенный к СОМ порту компьютера (в нашем случае микроконтроллера (МК)) СТ можно рассматривать как обычный внешний модем. Для управления модемами через СОМ порт применяются АТ (от Attention - внимание) команды. Такая команда представляет из себя текстовую строку, начинающуюся символами "АТ", далее следуют символы собственно команды и ее аргументов и заканчивается строка символом (0Dh, "Возврат каретки" - по-русски). Существуют общепринятые рекомендации [1] по реализации АТ команд. Естественно, не каждый модем (в нашем случае СТ) поддерживает весь перечень команд, кроме того, для GSM, существуют свои рекомендации по реализации дополнительных АТ (часто называют АТ+С) команд, специфичных для сотовой связи (рекомендации ETSI GSM, либо более удобный русскоязычный труд [2]).

Первой по популярности использования следует признать команду ATZ (сброс настроек), поддерживаемую всеми модемами (телефонами). На примере выполнения этой команды видно, что телефон (по умолчанию) отправляет обратно все получаемые им символы команды, а, в случае ее успешного исполнения, завершает команду строкой "ОК" и символами (0Dh,0Ah) до и после этой строки. Это необходимо учитывать при разработке программы микроконтроллера в части анализа правильности выполнения команды.

Из всего многообразия АТ+С команд, для работы с клавиатурой СТ удобно использовать команду АТ+CKEV. Это не совсем команда: последовательность символов +CKEV сопровождает каждое нажатие (отпускание) клавиши СТ, если это было разрешено командой AT+CMER. Действие команд удобно рассмотреть на примере:

  • AT+CMER=3,2,0,0,0
  • OK
  • +CKEV: "2",1
  • +CKEV: "2",0
  • +CKEV: "5",1
  • +CKEV: "5",0
  • AT+CMER=0,0,0,0,0
  • OK

Здесь в первой строке в СТ подается команда "включить режим уведомления о нажатых клавишах", в ответ (строка 2) СТ сообщает об успешном ее исполнении. В строках с третьей по шестую СТ сообщает о нажатии и отпускании кнопок "2" и "5" на клавиатуре телефона. В последней паре строк в СТ подается команда "выключить режим уведомления о нажатых клавишах", в ответ СТ сообщает об успешном ее исполнении. Символы, соответствующие нажимаемым клавишам, приведены в таблице 1.

Клавиша телефона Передаваемый ASCII символ HEX код символа
левая программируемая
[
5B
правая программируемая
]
5D
снять трубку (зеленая)
S
53
положить трубку (красная)
E
45
вверх
^
5E
вниз
V
56
вправо
>
3E
влево
<
3C
цифровые
1,...,9,0
31,…,39,30
"звездочка"
*
2A
"решетка"
#
23

Таблица 1 Символы, передаваемые сотовым телефоном при нажатии/отпускании клавиш

Команды вывода на экран

Для вывода информации на экран СТ рекомендуется использовать команду AT+CDIS. Однако, имевшиеся в распоряжении автора СТ ее не поддерживают. Поэтому в качестве команды вывода данных на экран СТ используется команда эмуляции нажатия клавиш СТ AT+CKPD. Для того, чтобы СТ начал понимать эту команду следует предварительно отправить в него команду AT+CMEC - выбор управляемого в СТ устройства (клавиатура, дисплей, индикатор). Действие команды эмуляции нажатий клавиш также удобно показать на примере:

  • ATZ
  • OK
  • AT+CMEC=2
  • OK
  • AT+CKPD=2,3
  • OK

Здесь в первой строке в СТ подается команда сброса, в ответ (строки 2, 4, 6) СТ сообщает об успешном исполнении посланной команды. В следующей строке в СТ посылается команда выбор клавиатуры в качестве управляемого устройства (без этой команды не отрабатывается AT+CKPD). В пятой строке в СТ подается команда "нажатие клавиши "2"", где 3 - длительность нажатия клавиши (3 * 0,1сек).

Java приложение для работы с экраном и клавиатурой (простейший редактор/просмотрщик)

При использовании АТ команд для обмена данными с СТ, сам СТ может находиться в обычном состоянии. В этом случае выдаваемые из МПС команды эмуляции нажатия клавиш клавиатуры кроме отображения символов на экране производят с СТ реальные действия. Таким образом СТ может перейти в режим вызова абонента, передачи СМС и пр. Программисту МПС следует учитывать это, формируя сообщения, отправляемые по последовательному каналу.

В некоторой степени снять эту заботу может простенькое Java приложение, запущенное на СТ перед включением МПС. Таким приложением может быть, например, обычный текстовый редактор. В этом случае на экране будет удобнее просматривать всю информацию, поступающую из МПС. Текст такого приложения приведен в таблице 2, а результат упаковки в файлах Text2.jar и Text2.jad. Освоить Java программирование поможет, например, книга [3]. На рис.1 показано фото СТ С60 с запущенным приложением в работе с МПС.

плата

Рис.1 Фото сотового телефона Siemes С60 с запущенным Java приложением

Сопряжение МПС с СТ (схема иллюстрации)

В качестве иллюстрации использования СТ в качестве пульта управления МПС на рисунке 2 показана абстрактная схема на МК АТ89С51 (DD1). МПС реализует следующий алгоритм работы: после подачи питания, через несколько секунд светодиод VD1 начинает мигать, при замыкании кнопки S2, частота миганий увеличивается.

плата

Рис.2 Принципиальная схема МПС

В качестве пульта управления предполагается использование СТ с COM интерфейсом (использовались телефоны Siemens C60, CF62). Аппаратное подключение телефона к микроконтроллеру не вызывает трудностей. Используются только линии передачи данных (Tx, Rx): контакт 3 телефона (Tx) соединяется с входом последовательного приемопередатчика микроконтроллера (P3.0), а контакт 4 (Rx) - с выходом P3.1. Никаких согласований по уровню (питание телефона 3,3В) не требуется, т.к. микросборка на входе телефона имеет и защитные диоды, и привязку уровня, и фильтрующие конденсаторы.

C СТ воспринимается следующее воздействие на МПС: при нажатии клавиши "1" СТ - светодиод включается постоянно, при нажатии "2" - гаснет, нажатие "3" восстанавливает мигание. На экране СТ после включения питания отображается номер версии программы МК (*105*), замыкание кнопки S2 приводит к выводу на экран "#4", размыкание - "#5".

Скорость связи по последовательному интерфейсу телефон выбирает автоматически (с целью более точного соответствия стандартному значению, при частоте кварцевого резонатора микроконтроллера 14,3 МГц (от старой видеокарты компьютера), была выбрана скорость связи 1200 бит/с). Параметры посылки - длина 8 бит, без контроля, 1 стоп бит.

Цепи подключения кварцевого резонатора Q1 и "сброса" - стандартные. Светодиод VD1 (любой светодиод до 10 мА). Схема собрана на макетной плате рис.3 (на фото на плате много "лишних" деталей, не используемых в данном случае)

плата

Рис.3 Внешний вид макета МПС с подключенным телефоном

Особенности программы МПС (инициализация, прием данных, вывод данных)

Коды программы приведены в таблице 3, текст программы на ассемблере - в таблице 4.Алгоритм программы более подробно выглядит так: гасится светодиод, производится настройка таймера и последовательного порта МК. В СТ дважды посылается команда сброса ATZ. После второй посылки анализируется наличие ответа ОК от СТ. Если ответ отсутствует, дальнейших обращений к СТ программа не делает. Далее в СТ подается команда подавления эхо-команд ATE0 для уменьшения потока данных в последовательном канале. Выдаются две управляющие AT+C команды для включения клавиатуры и работы команд эмуляции нажатия клавиш (см.выше). Далее начинается основной цикл работы программы. Для взаимодействия с телефоном используются две подпрограммы: ReadKey - анализ нажатия клавиш клавиатуры телефона, ScrStr - вывод строки символов в СТ. Подробнее процедуры описаны в комментариях к программе.

Выводы

Описываемый способ воздействия на МПС и получения сведений о ее работе может помочь разработчикам во многих случаях. Как достоинства можно отметить - использование распространенного и дешевого оборудования в качестве терминала, малое число соединительных линий МПС - СТ (последовательный интерфейс), легкореализуемая возможность питания СТ от МПС или МПС от СТ (можно отдельно рассмотреть питание СТ от МПС: для этого цепь "+5В" соединяют с контактом 1 12-ти контактного разъема СТ. Помимо прочего, СТ можно использовать как источник питания для МПС. Для этого кроме указанного подключения контакта 1, контакты 5 и 7 разъема СТ соединяют с общим проводом через резисторы номиналом 10 килоом).

Вместе с тем способ не лишен недостатков - это прежде всего задействование достаточно больших ресурсов МПС в работе (таймер, последовательный порт). И все же описанное решение может помочь в реализации различных МПС.

Список литературы:

  1. ITU-T Recommendation V.25 ter: Serial asynchronous automatic dialling and control - http://www.itu.int/rec/T-REC-V.25ter-199707-S/en
  2. AT-команды. Руководство по использованию АТ-команд для GSM/GPRS модемов.: Пер. с англ. - М.: Серия "Библиотека Компэла". ЗАО "Компэл", 2005. - 432 с.
  3. Горнаков С.Г. Программирование мобильных телефонов на Java 2 Micro Edition. - М.: ДМК Пресс, 2004. - 336с.:ил.

 

Первый вариант статьи отослан в редакцию журнала "Радио в июле 2010 года,

Второй (измененный) вариант статьи отослан в редакцию жкрнала "Радио" в марте 2011 года,

Статья опубликована в журнале в июле 2011 года,

Статья (второй вариант) размещена на этом сайте 29 октября 2011 года

 

 
Сайт создан в системе uCoz