当前位置:首页 > 通信技术 > 通信技术
[导读]随着信息社会的快速发展,手机已经成为现代生活中人们不可缺少的工具。与此同时,手机的快速普及和手机功能的丰富使得仅将其运用于生活和工作中似乎并不能充分发挥它的全部功能。比如,现阶段大部分手机都具有的拍照

随着信息社会的快速发展,手机已经成为现代生活中人们不可缺少的工具。与此同时,手机的快速普及和手机功能的丰富使得仅将其运用于生活和工作中似乎并不能充分发挥它的全部功能。比如,现阶段大部分手机都具有的拍照功能,完全可以将其应用于监控系统等工业控制领域;同样,目前手机都具有的短信通信功能,充分发挥其廉价和方便的特性,将其运用于智能家居领域,只需要发送一条对应的短信指令便能控制家中对应的家用电器。本文结合手机和短信的各自特性,通过手机发送短信控制基于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 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";(此处即为根据接收到的指令对外接负载采取操作后,自动回复信息的内容,根据操作结果不同自填充短信内容即不同)。

  3.2.3MTK接收短信息数据结构体

  MTK将收到的短信息的相关参数打包成结构体,以下为MTK关于接收到短信内容相关信息的结构体。MTK平台每一条短信的内容分成若干段,一个字节为一段。其中no_msg_data为接收到的段数,数组msg_data[1]接收到的信息的第一段数据,以接收到的第一段的数据为索引,解析接收到内容后通过判断远程终端接收到的短信内容来对远程终端外接负载采取相应操作。

  typedef struct{

  ……

  U16 no_msg_data;

  U8 msg_data[1];

  } mmi_frm_sms_deliver_msg_struct;

  3.3  MTK远程终端的控制程序流程

  基于MTK平台的远程控制终端在接收到控制信息后,MTK自动回复和对负载采取操作的代码在函数void mmi_frm_sms_new_sms_ind(void *inMsg)中被调用。此函数的功能是将L4层的数据转换成MMI层的数据,并对接收到的数据进行处理,直至显示到远程终端界面上。将MTK作为远程终端,不需要将接收到的控制负载的信息显示在界面上,所以为了屏蔽发送来的信息显示在终端界面,应把接收到的短信添加到短信记录中的函数CHISTIncRecvdSMS注释掉。装有SIM卡的远程终端经常收到如10086之类的服务信息,为了屏蔽这些不必要的信息,对发送信息进来的号码长度进行判断,加上中国的电话区位号86,则若为手机发送一共为13位。由于MTK的代码是分模块的,当在短信模块中调用其他模块的函数时,就需要在这个函数被调用的文件里面加上相应的头文件。图4为条件判断和对打开/关断负载的函数的调用以及对短信自动回复的函数的调用情况。


 


图4  远程终端控制负载及自动回复流程

  3.4  试验结果

  将一支发光二极管作为远程控制终端的外接负载,正极接MTK6225的GPIO45,负极接MTK6225的GND,GPIO45默认为低电平,刚接上时发光二极管处于熄灭状态。用手机发送短信内容为“on”的指令到基于MTK平台的远程控制终端时,发光二极管亮,远程控制终端返回信息“ the bulb turn on successfully”;用手机发送短信内容为“off”的指令到基于MTK平台的远程控制终端时,发光二极管熄灭,远程控制终端返回信息“ the bulb turn off successfully”。发送其他内容的短信指令到远程控制终端时,发光二极管没有响应且不返回任何信息。试验结果表明,基于MTK的短信控制远程终端的方案切实可行。

  结语

  充分发挥MTK平台高性价比的优势, 提出将MTK手机平台应用于控制领域,设计了基于MTK平台的短信控制远程终端的实现方案,并通过试验验证了该方案的可行性。该方案具有成本低、开发周期短、组网方便、易于扩展等优点,为通信和控制相关领域的研究和开发人员提供了参考。

 

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭