Новый GSM-модуль Neoway M680 OpenCPU с возможностью загрузки приложений пользователя

№ 3’2015
PDF версия
Компания Neoway выпустила бюджетный ультракомпактный GSM-модуль M680 OpenCPU, одной из ключевых особенностей которого является возможность использования его в качестве управляющего контроллера. Такое решение позволяет снизить стоимость и уменьшить габариты оборудования. В статье рассматривается как сам модуль, так и основные возможности платформы Neoway OpenCPU.

M680 OpenCPU (рисунок) — четырехдиапазонный GSM-модуль GPRS class 12 (скорость 85,6 кбит/с), обеспечивающий возможность загрузки приложений разработчиков. Модуль выполнен в 83-контактном корпусе LGA. M680 OpenCPU построен на микросхеме GSM-процессора MediaTek MT6260, прекрасно зарекомендовавшей себя в модулях M660, M680 и M660A. Основные технические характеристики модуля приведены в таблице 1.

Таблица 1. Технические характеристики GSM-модуля M680 OpenCPU

Название

Значение

Частотный диапазон, МГц

850, 900, 1800, 1900

Максимальная мощность, Вт

2 (для диапазонов 850, 900) 1 (для диапазонов 1800, 1900)

Чувствительность, дБм

–107

Максимальная скорость GPRS, кбит/с

85,6

Набор AT-команд

GSM 07.07, расширенные команды

Интерфейсы

2×UART, SPI, I2C, 3ADC, 15×GPIO, USB 1.0, PCM

Процессор

ARM7-EJ, 360 МГц

Доступная память, кбайт

512 ОЗУ, 200 flash, 512 File System

Напряжение питания, В

3,5–4,3

Ток потребления в режиме сна, мА

менее 2

Размеры, мм

18×15×2,1

Рабочая температура, ºC

–40…+85

Модуль также характеризуется расширенным набором аудиоинтерфейсов: два микрофонных входа, три аудиовыхода и цифровой интерфейс PCM. Описание аналоговых аудиоинтерфейсов приведено в таблице 2.

Таблица 2. Аналоговые аудиоинтерфейсы модуля M680 OpenCPU

Обозначение вывода

Направление (вход/выход)

Название

Примечание

SPKP

Выход

Громкоговоритель, положительный вывод

Максимальная выходная мощность 0,8 Вт на нагрузке 8 Ом

SPKN

Громкоговоритель, отрицательный вывод

MICP0

Вход

Микрофон 0, положительный вывод

Максимальная разность потенциалов между выводами не должна превышать 200 мВ

MICN0

Микрофон 0, отрицательный вывод

EAR-L

Выход

Левый наушник

Допустимо подключение наушников с сопротивлением 16 или 32 Ом

EAR-R

Правый наушник

MIC1

Вход

Микрофон 1

 

RECN

Выход

Аудиовыход, положительный вывод

Аудиовыход, рассчитанный на нагрузку 32 Ом

RECP

Аудиовыход, отрицательный вывод

GSM-модуль M680 OpenCPU

Рисунок. GSM-модуль M680 OpenCPU

Описание модуля M680 OpenCPU невозможно без краткого обзора его программной платформы. Платформа OpenCPU позволяет использовать GSM-модуль в качестве управляющего контроллера и содержит три уровня: ядра, программных интерфейсов (API) и приложения пользователя. Приложение пользователя представляет собой программу на языке Си и может использовать программные интерфейсы, которые включают в себя UART, GPIO, I2C, SPI, USB, ADC, аудио, а также интерфейсы работы с оперативной и flash-памятью, файловой системой, таймерами, прерываниями, системным временем. Взаимодействие ядра с пользовательским приложением реализуется с помощью функций обратного вызова (callback). Когда в системе происходит определенное событие, вызывается соответствующая этому событию callback-функция. Все callback-функции должны быть зарегистрированы в приложении перед началом их использования. Приложение может содержать до семи задач (tasks), взаимодействующих друг с другом.

Пользователю доступны до 32 таймеров, API работы с системным временем. Для управления модулем из приложения пользователя с помощью AT-команд используется виртуальный порт UART. Например, следующее выражение посылает на виртуальный UART команду AT+CSQ: Neoway_VirtualUartSend(NEOWAY_MOD_USER1,»AT+CSQ\r»,7);

Кроме стандартных команд управления модулем, разработчику доступно большое количество дополнительных AT-команд, облегчающих разработку. К ним относятся команды работы с протоколами TCP, UDP, FTP, DNS, HTTP, HTTPS, SMTP, POP3, ICMP, работы с файлами, определения местоположения модуля по идентификаторам базовых станций, автоматического включения/выключения модуля, eCall и др.

Для управления режимом пониженного энергопотребления предназначена функция Neoway_Sleep(). Выражение Neoway_Sleep(NEOWAY_TRUE) включает режим пониженного энергопотребления, а выражение Neoway_Sleep(NEOWAY_FALSE) выключает его. В режиме Sleep модуль принимает входящие звонки и SMS-сообщения и автоматически возвращается в спящий режим по их завершении.

Для отладки программы может использоваться тестовая функция Neoway_TestFunction(), которая выполняет заданную пользователем последовательность команд при подаче на физический интерфейс UART модуля команды AT+TEST=<PARAM>, где PARAM – любая заранее определенная последовательность символов.

Также для целей отладки может использоваться функция Neoway_Print(), предназначенная для вывода последовательности символов на физический UART модуля.

В качестве примера приведем текст приложения, которое при нажатии внешней кнопки осуществляет звонок на заданный номер.

/***********************************************************************

Программа, выполняющая вызов на номер +71234567890 при появлении высокого уровня на выводе 40 GSM-модуля M680 OpenCPU

***********************************************************************/

#ifdef __EXAMPLE_HELLOWORLD__

#include "neoway_openplatform.h"

U8 AT_MAKE_CALL[] = "ATD+71234567890;\r"; // AT-команда совершения вызова на номер +71234567890

void Neoway_UserInit(void)

{

            Neoway_StopWatchdog(); //Остановить watchdog

            Neoway_InterruptInit(44,NEOWAY_INT_10); //Установить GPIO 44 (pin 40) как прерывание 10

            Neoway_InterruptSetDebounceTime(NEOWAY_INT_10,40); //Установить время дребезга контактов — 40 тиков

            Neoway_InterruptSetPolarity(NEOWAY_INT_10,NEOWAY_TRUE); //Установить полярность сигнала – высокий уровень или передний фронт

            Neoway_InterruptSetTriggerMode(NEOWAY_INT_10,NEOWAY_FALSE); //Прерывание по уровню сигнала

}

void Neoway_UserTask1(NeowayMsgTypeStruct msg_type,NeowayModuleTypeEnum mod_type)

{

           

            switch(msg_type.msg_id)

            {

                        case NEOWAY_MSG_ID_INT_NOTIFY10:

                                               Neoway_VirtualUartSend(NEOWAY_MOD_USER1, AT_MAKE_CALL, strlen(AT_MAKE_CALL));          // Позвонить на номер

                                   break;

                        default:

                                   break;

            }

}

void Neoway_IntResponse(NeowayIntNumEnum int_no,NeowayModuleTypeEnum mod_id)

{

            if(int_no==NEOWAY_INT_10)

            {

                        Neoway_SendMsgTask(mod_id,NEOWAY_MOD_USER1,NEOWAY_MSG_ID_INT_NOTIFY10,NULL,0); // Послать сообщение NEOWAY_MSG_ID_INT_NOTIFY10 в Neoway_UserTask1 при поступлении прерывания 10

            }

}

void Neoway_RegisterCallbackFunction(void)

{

            Neoway_RegisterCallBack(NEOWAY_KB_ID_USER_TASK_1,(U32)Neoway_UserTask1);  //Регистрация функции Neoway_UserTask1

            Neoway_RegisterCallBack(NEOWAY_KB_ID_INT_RESPONSE,(U32)Neoway_IntResponse);          //Регистрация функции Neoway_IntResponse

}

#endif

В данном примере функция Neoway_UserInit() используется для остановки Watchdog и конфигурирования вывода 40 модуля в качестве входа прерывания. При поступлении прерывания функция обработки прерываний Neoway_IntResponse() посылает сообщение об этом событии в задачу UserTask1, после чего функция Neoway_UserTask1() осуществляет вызов на номер +71234567890.

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

Загрузка приложения в модуль может осуществляться как через UART с помощью программы FlashTool, так и удаленно, используя TCP-соединение. Процедура загрузки приложения описана в [1] и на сайте www.wless.ru.

Примеры приложений, инструкцию на русском языке по установке компилятора и работе с примерами, а также программу FlashTool можно получить у официального дистрибьютора Neoway в России — компании ЭФО.

 

Заключение

GSM-модуль Neoway M680 OpenCPU может использоваться в качестве управляющего контроллера в приложениях, где необходимо уменьшить стоимость и габариты разрабатываемого устройства. Готовые программные примеры, недорогие отладочные средства и оперативная поддержка производителя позволяют уменьшить время и стоимость вывода продукта на рынок.

Литература
  1. Neoway_OpenCPU_Development_Guide_V2_5. pdf
  2. Neoway_OpenCPU_API_Description_V2_0. pdf
  3. Neoway_M680_OpenCPU_Module_Hardware_ User_Guide_V1_4.pdf
  4. Neoway_M680_GPRS_Module_AT_Command_ Set_V1_9.pdf
  5. www.wless.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *