基于MTK平台的短信控制远程终端实现方案
随着信息社会的快速发展,手机已经成为现代生活中人们不可缺少的工具。与此同时,手机的快速普及和手机功能的丰富使得仅将其运用于生活和工作中似乎并不能充分发挥它的全部功能。比如,现阶段大部分手机都具有的拍照功能,完全可以将其应用于监控系统等工业控制领域;同样,目前手机都具有的短信通信功能,充分发挥其廉价和方便的特性,将其运用于智能家居领域,只需要发送一条对应的短信指令便能控制家中对应的家用电器。本文结合手机和短信的各自特性,通过手机发送短信控制基于MTK平台的远程终端,在远程终端接上负载(比如电饭煲、摄像头),远程终端在接收到固定指令的短信后控制外接负载的开断,便可实现短信控制基于MTK平台的远程终端。在本文所介绍的系统中,只需要发送一条短信内容为“on”的指令,便可打开远程终端的外接负载,操作完成后MTK远程终端根据控制情况自动回复一条操作是否成功的信息;发送一条短信内容为“off”的指令便可关断远程终端的外接负载,操作完成后MTK远程终端根据控制情况自动回复一条操作是否成功的信息;若接收到其他指令,则不对远程终端的外接负载采取任何操作,也不回复信息给客户。
1 MTK平台介绍
1.1 MTK硬件平台
MTK(MediaTek)是台湾联发科技多媒体芯片提供商的简称,其生产的手机基带芯片有MT6205、MT6217、MT6218、MT6219、MT6235等。在MTK手机方案家族中,内部集成了ARM7核和DSP核的MT6225以其优越的无线通信特性成为目前使用最广泛、最稳定、最成熟的手机开发平台,从2005年推出到现在,出货芯片数量可以亿来计算。
1.2 MTK软件架构
MTK软件架构和硬件相结合作为远程终端的开发平台,软件架构对于开发尤为重要。图1所示为MTK平台软件整体架构。
图1 MTK平台软件构架
MTK的软件架构用到了层的概念,它将各功能模块分为不同的层,每个层实现其各自的功能特性。整个软件构架主要由Remote MMI、MMI、L4、Drivers和PS/L1几个部分构成。Remote MMI即RMI,如PC端,可使用AT命令通过串口与协议栈通信;L4为MMI/AT与协议栈之间的适配层;Drivers包含设备及外围设备的各种驱动;PS/L1中的L1(Layer1)为协议栈的最底层,它是GSM的物理层,直接处理信号数据;另外,协议栈里面的L2和L3包含大量的GSM/GPRS需求,而且提供一个优秀的GGSM/GPRS平台给应用程序;MMI即Man Machine Interface,通常称为人机界面,它分为文字界面和图形界面两种。MMI包括用户的接口构架、应用以及与协议栈的通信,MMI的构架如图2所示。
图2 MMI架构图
由图2可知,MMI主要由Application Layer、Framework和UI Layer三个部分组成。
① Application Layer: 主要包括用户自己定义的程序,用来实现各种功能。如果用户需要在MTK的平台上添加一些功能,这些功能的程序就是在这个地方添加。
② Framework:由事件处理、历史机制、OSL、文件系统和NVRAM组成,它接收来自所有任务的时间,帮助应用程序控制屏幕,并提供给应用程序各种系统调用接口。
③ UI Layer:包含Category Screens、UI Elements、Themes、Fonts、Image和Graphics Library,它为应用程序提供界面显示的相关功能。
本系统的远程终端的实现选用的手机基带芯片为MTK6225,选用它的主要原因是其具有成熟的硬件基础和软件架构以及高性价比。
2 系统框架
图3为基于MTK平台的短信控制远程终端的总体框架。系统由客户端、远程终端、负载3个模块组成。客户端是任何一部具有短信通信功能的手机;远程终端为以MTK6225为主控芯片的MTK平台,利用MTK平台的短信模块功能及其闲置的GPIO口实现对负载(需要远程控制的对象)的控制。
图3 基于MTK平台的短信控制远程终端的总体框架
3 系统实现
3.1 MTK6225 GPIO口的驱动
GPIO[3](General Purpose Input Output,通用输入输出端口)。MTK6225提供了53个通用输入/输出口和4个通用输出口。MTK通过对I/O口的复用来减少I/O端口的个数,每个GPIO口有4种工作模式,即模式0~3。每个GPIO口都可通过软件配置为输入、输出或特定用途的双向口。其被用作输入使用时,GPIO口可作为中断源。本文选择GPIO口GPIO45的模式0,即配置端口为输入/输出模式。在MTK6225的平台中,对GPIO的操作有以下3步:
① 确定要操作的引脚是在GPIO模式。通过函数GPIO_ModeSetup(kal_uint16 pin,kal_uint16 conf_data)设置。其中pin为端口号,conf_data为模式的选择。本文试验中对GPIO模式的设置如下。GPIO_ModeSetup((kal_uint16)GPIO_port_45, (kal_uint16)0)
② 配置该引脚为输入/输出。通过函数void GP
信息 相关文章:
- IBM成功制出石墨烯射频接收器 (02-07)
- 量子通信何时真正的进入现实生活(06-14)
- USBee:电脑不联网也能被窃取数据(08-31)
- 天线如何设计可以降低手机电磁辐射对人体健康影响?(07-13)
- 盘点RFID系统待解决的问题(03-03)
- 基于SpringBoot微服务架构的城市一卡通手机充值支撑系统研究(09-27)