新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 基于MTK平台的短信控制远程终端实现方案

基于MTK平台的短信控制远程终端实现方案

作者: 时间:2011-02-15 来源:网络 收藏

  由图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口实现对负载(需要远程控制的对象)的控制。

基于MTK平台的短信控制远程终端的总体框架


图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 GPIO_InitIO(char direction,char port)设置。其中direction为输入INPUT(0)或者输出OUTPUT(1),port为端口号。本文试验中对GPIO口的输入/输出设置如下,设置GPIO45为输出,即可通过它的输出来控制外接负载。GPIO_InitIO((char)1, (char)GPIO_PORT_45)

  ③ 读写数据。通过函数void GPIO_WriteIO(kal_char data,kal_char port)设置,其中data为1(高电平)或者0(低电平),port为端口号。本文试验中对GPIO口引脚写数据操作如下。GPIO45输出高电平,即可打开外接负载;GPIO34输出低电平,即可关断外接负载。GPIO_WriteIO((char)1,(char)GPIO_PORT_45)GPIO_WriteIO((char)0,(char)GPIO_PORT_34)

  在本文所做试验中,对GPIO初始化成功并对GPIO端口读写数据完成后,需要通过函数GPIO_ReadIO(char port)来读取GPIO端口的状态,通过读取其端口状态来和写到GPIO口的数据相比较,若匹配则说明控制成功,反之则失败,其中port为端口号。

  3.2 MTK的短信模块

  3.2.1 MTK短信接收的流程

  从函数InitializeAll()中初始化开始,到显示在MTK的手机界面,提示用户读取的过程中经历中断、协议处理、MMI层收到新短信,更新短信计数器,转换短信数据,并压入未读短信队列等操作。

  3.2.2 MTK发送短信息的核心函数

  相比于日常生活中短信通信不同的是此平台是根据对远程终端的控制情况而自动回复的。自动回复信息需要知道发送短信到MTK远程终端的手机的号码,还需要自填充自动回复的短信内容。void mmi_frm_sms_send_sms_seg(void)为MTK6225发送短信的核心函数,自动回复是在此函数的基础上将发送短信到MTK终端的手机号码作为该函数的形参,对发送内容的自填充也在该函数中定义:char * content=the bulb turn on successfully;(此处即为根据接收到的指令对外接负载采取操作后,自动回复信息的内容,根据操作结果不同自填充短信内容即不同)。



关键词: 信息

评论


相关推荐

技术专区

关闭