《电子技术应用》
您所在的位置:首页 > 其他 > 设计应用 > 家电远程监控系统中MMS发送的研究与实现
家电远程监控系统中MMS发送的研究与实现
来源:微型机与应用2010年第10期
张 秋,吕 杨
(昆明理工大学 信息工程与自动化学院,云南 昆明650051)
摘要: 通过GPRS网络,基于家电远程监控系统可以将室内摄像机采集的图片信息发送到用户的手机终端。用户只需连接GPRS网络,便可轻松获取家电的图像信息。
Abstract:
Key words :

摘  要: 通过GPRS网络,基于家电远程监控系统可以将室内摄像机采集的图片信息发送到用户的手机终端。用户只需连接GPRS网络,便可轻松获取家电的图像信息。
关键词: MMS;GPRS;嵌入式系统

    随着科技水平的不断提高和社会的不断进步,人们对于家居安全性的要求也与日俱增。因此,智能化的家电监控系统就有了广阔的发展空间。本文研究了在家电远程监控系统中应用MMS发送方式实现监控目的的方法。由于家电远程监控系统基于嵌入式平台,硬件资源相对较少,因此在MMS封装方式和发送协议的选择上需要充分考虑和权衡。
1 MMS相关技术与协议
    在家电远程监控系统中,最重要的环节是家电监控信息的发送。在硬件资源十分有限的嵌入式平台上,封装与发送包含图片信息的MMS,选择占用资源少、适合嵌入式系统的彩信封装方式和通信协议。
    (1)SMIL语言
    同步多媒体集成语言SMIL(Synchronized Multimedia Integration Language)[1]专为流式多媒体设计,用来规定多媒体片断在什么时候、在什么地方、以什么样的方式播放,可通过时序排列对声音、影像、文字及图形文件进行顺序安排。
    (2)MIME封装
    使用SMIL语言描述的MMS,在通过无线网络发送的时候,必须通过某种方式把SMIL和附属的内容包装在一起,作为一个unit发送出去,同时还要保证SMIL文件各个部分内容的reference变得有效。因此可以使用MIME(Multipart Internet Mail Extensions)规范。MIME负责把所有的独立的图像、声音、文本、视频内容以及SMIL文件本身捆绑在一起,这个规范称为MIME Encapsulation Aggregate Documents,用于告诉接收的手持终端,这个MMS的内容是相互关联并且相互参考的[2]。
    (3)WAP协议与HTTP协议的比较
    家电远程监控系统是在嵌入式平台上构建的,硬件资源相对较少,所以在网络协议的选择上需要充分考虑硬件资源是否能够满足需要。WAP(Wireless Application Protocol)是一种向移动终端提供互联网内容和先进增值服务的全球统一的开放式协议标准, 是简化了的无线Internet 协议。在嵌入式设备的小屏幕上很难显示标准Web发布的内容,同时屏幕间的切换非常不便。HTTP协议没有针对无线网络做特殊处理,如长时间延时、非连续信号覆盖以及带宽有限。在Internet应用中,HTTP协议以低效率的文本格式发送数据,而非压缩的二进制方式。所以,在无线通信服务中使用普通Internet协议,会导致成本高、速度慢且难以大规模应用的问题。为了解决此类问题,对WAP协议进行了很好的优化处理,如对无线网络的长延时和中低带宽进行优化,利用高度压缩的二进制方式传输数据。在WAP协议中,会话功能解决了不连续覆盖的问题,并且在IP不可用时自动改用其他优化协议传输信息[3]。
    综上所述,在分析了WAP协议和HTTP协议之后,本文采用WAP协议,以便在嵌入式系统硬件资源较少的情况下实现MMS的发送。
2 MMS发送的研究与实现
2.1 手机模块拨号上GPRS网

    连接无线网络的基本步骤是:手机模块通过串口向无线模块发送AT命令,无线模块进行拨号连接到中国移动GPRS的WAP网关,获得临时分配的IP地址、DNS地址和临时端口号。连接成功后,手机模块从GPRS的WAP网关上获得一个动态IP地址,该IP地址一般是10.188.xxx.xxx。然后,无线模块传输TCP/IP数据包,访问GPRS网内的主机,发送封装好的MMS信息。
    (1)AT+CGDCONT=l,“IP”,“CMWAP”
    此命令用于设置GPRS接入网关。其中第二部分表示PDP(Packet Data Protocol)类型为IP;第三部分表示接入网关为移动梦网,APN是CMWAP,表示中国移动网应用接口。APN也可以设置为CMNET,CMNET主要应用于PC、笔记本电脑、PDA等[4]。
    (2)ATD *99***1#
    ATD用于设置拨号方式,同时完成拨号,使手机模块进入在线状态。ATD指令采用如下两种格式:
    格式一:ATD*99[*[<called address>][*[<L2P>][*[<cid>]]]]#
其中99是服务码,也可用98,国内一般用99。<called address>是w.x.y.z格式的IPv4地址;<L2P>是用于TE和ME连接的Layer2协议或用于PPP协议的Layer2协议;<cid>是表明PDP上下文的一个数字编号,用AT+CGDCONT命令创建,一般为1或20。
    格式二:ATD*98[*<cid>]#
    具体含义与格式一相同。
    国内最常用的是:ATD *99***1#,本设计中就是采用了此种格式。用ATD指令,若成功连线则返回“CONNECT”,否则返回“NO CARRIER”。当手机模块返回“CONNECT”,说明手机模块已经连上了移动GPRS的WAP网关,之后即为通过三阶段协商建立PPP链路的过程[5]。
2.2 用QT实现UDP Soket数据收发
    在WAP协议发送MMS的过程中,使用UDP协议发送数据与WAP网关进行交互。在QT 4中,QUdpSoket类可以用来发送和接收UDP数据报。具体的实现方法如下:
    (1)创建QUdpSocket对象
        QUdpSocket *udpSocket;
        udpSocket=new QUdpSocket;
    (2)绑定WAP网关地址参数
        udpSocket->bind(WAPHostIP,9201);
    WAPHostIP是一个QT自定义的QhostAddress类,表示IP地址。WAP网关的IP为10.0.0.172,端口是9201。
    (3)发送、接收数据
        udpSocket->writeDatagram(qPrintable(str),4096,
WAPHostIP,9201);//发送数据
        char buffer[4096];
        udpSocker->readDatagram(buffer,4096,0,0);//接收数据在此之前要进行信号和槽的连接:
        connect(sendButton,SIGNAL(clicked()),this,SLOT
(send_slot()));
        connect(udpSocket,SIGNAL(readyRead()),this,SLOT
(recv_slot()));
2.3 实现过程
    当GPRS模块成功连接服务器并且进入在线模式,就可以控制手机模块发送彩信。数据的收发程序用UDP Socket实现,在此过程中, WAP网关的IP为10.0.0.172,端口是9201。
    (1)手机模块向WAP网关发起Connect请求
    数据包由两部分组成:WTP PDU和WSP PDU
    例如:
         0001 0A OO OO 12 01 10 OO 00
其中,发送数据序列中前4字节“0A 00 00 12”是WTP Invoke PDU;第5字节“01”是WSP会话Connect代码,第6~8字节是WSP Connect PDU。
    (2)服务器确认连接
    服务器返回数据如下(30字节):
    0001 12 80 00 02 B5 C5 15 00 15 45 6E 63 6F 64 69 6E....Encodin
    00 17 67 2D 76 65 72 73 69 6F 6E 00 31 2F 32 00...g-version.1.2.
    返回数据中第1~3字节是WTP Result PDU,其余为WSP协议数据单元;第4字节“02”是WSP会话连接确认(ConnectReply)的代码;第5~30字节是WSP ConnectReply PDU。
    (3)控制设备发送WTP确认完成会话连接
    控制设备发送WTP确认(WTP Acknowledgement,3字节)为:18 00 00。
    (4)控制设备发送WTP、WSP和MMS包
    控制设备首先发送WTP和WSP(49字节):
    0001 0E 00 01 1 2 60 1A 10 68 74 74 70 3A 2F 2F 6D 6D...http://mm
    0017 73 63 2E 6D 6F 6E 74 6 5 72 6E 65 74 2E 63 6F 6D SC.monternet.com
    0033 2F BE 80 BE C7 80 A1 09 80 77 61 70 00 77 61 70/....wap.wap
    0049 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00....
    发送数据序列中,前4个字节“0E 00 01 12”是WTP Invoke PDU,后45个字节是WSP协议数据单元。
    (5)网关返回事务操作结果,控制设备发送WTP确认完成会话
    当网关返回事务操作结果后,然后控制手机模块发送WTP确认(WTP AcknowledgementPDU):
    1C 00 01。
    家电远程监控系统的硬件资源十分有限,经过对各种封装方式和传输协议的研究分析,在此系统中采用MIME封装和WAP协议完成彩信的封装和发送。经过实验,本文所阐述的方法成功地在家电远程监控系统中实现了MMS的发送。
参考文献
[1] SMIL[OL].[2009-12].http://baike.baidu.com/view/147922.htm?fr=ala0.
[2] TCP/IP和WAP协议结构的比较[OL].[2000-5].http://www.lhtelecom.com/accept/intel/168/tcpwap.htm.
[3] CMWAP和CMNET的区别[OL].[2007-12].http://www.51nb.com/forum/thread-295540-1-1.html.
[4] 余琴,赵振华.基于GPRS的SOCKET通信的应用研究[J]. 单片机及嵌入式系统应用,2005(11):52-53,57.

此内容为AET网站原创,未经授权禁止转载。