您可以添加到网摘 让更多人关注此文章:
摘 要:本文在近年来手机增值服务飞速发展的背景下,考虑到嵌入式系统在人们日常生活中广泛应用的现状与目前SP(Service Provider服务提供商)的增值服务系统的架构体系的特点,提出了一种基于嵌入式系统的增值服务技术的应用解决方案。并且通过对系统的各个功能模块的设计与实现做出详细的说明,阐明了整个增值服务系统的技术特点和设计思想。 关键词:嵌入式系统;增值服务;短信息
1. 引言 近年来,随着手机技术的迅猛发展,功能的不断增多,人们对手机的使用已经不再局限于传统的语音通话上了,而是越来越多地用到了非语音的功能,比如SMS(Short Message Service短信息),彩信等等,也就是手机增值服务[1]。而能够把手机增值服务应用到嵌入式系统中,使得手机能够与嵌入式系统进行短信息的交互,那么这样的一种增值服务技术的发展前景将会是非常有前途的。本文就是给出了这种增值服务系统的一个完整的解决方案。 开发中,嵌入式系统的程序部分使用的开发环境是Keil C,而其余所有的程序均使用Java来编写,且已经成功地移植到Linux平台上。此外,下面所提到的SP使用的数据库为SQL Server 2000。下面将对整个增值服务系统的设计与实现进行论述。 2. 增值服务系统的整体架构 各大移动运营商提供给自己的SP的增值服务体系架构和接口都是相似的[2],如中国移动的体系架构,如图1所示,整个基于嵌入式系统的增值服务系统是由嵌入式系统、增值服务系统网关和SP及其内嵌的接入模块组成的。SP负责向用户提供丰富多彩的增值服务,但如果由于资金不足等原因不能申请成为SP时,可以在现有的SP中嵌入一个接入模块,同样可以达到提供增值服务的目的,本文介绍的就是这种解决方案。 当MS(Mobile Subscriber手机用户)想要发送一条短信息到嵌入式系统时,短信息首先被发送到基站,基站再把它发到SMSC(Short Message Service Center短信中心),SMSC通过SMPP协议(Short Message Peer to Peer短消息点对点协议)再把短信息转发到ISMG(Internet Short Message Gateway互联网短信网关)[3]。 ISMG是中国移动与其SP进行通信的门户,ISMG与SP的通信的底层是TCP/IP协议,而应用层是CMPP(China Mobile Peer to Peer中国移动点对点协议)协议。

然后,SP按照CMPP协议从ISMG接收到关于此短信息的所有必要信息(如MS的手机号码,MS点播的服务代码等等)后把该条短信息的相关数据传给SP内嵌的接入模块,然后接入模块通过TCP/IP发送到增值服务系统网关,由网关解析这些信息并重新编码,再发送到PSTN(Public Switched Telephone Network公共开关电话网络),最后由嵌入式系统从PSTN接收到该条短信息的所有信息,并显示在它的LCD上。至此完成了由MS到嵌入式系统的短信息通信,而由嵌入式系统到MS的短信息通信过程也是类似的[4]。
下面,将针对系统各部分的每个功能模块逐一地进行介绍,并详细地叙述它们如何实现的。
3. 嵌入式系统部分
3.1 嵌入式系统的特点和开发背景
许多嵌入式系统都有串口和LCD,这样就能够通过编程与外界通信并显示信息,但由于嵌入式系统的存储器容量比较小,在上面开发程序必须要注意节约存储器的使用。此次所用的嵌入式系统是由台湾研发的网络信息电话,使用的是8051系列的芯片,拥有两个串口,其中一个与内置的Modem相连,可以与外界通信,此外还有一个128*64的LCD可以用来显示接收到的短信息,一个键盘用来输入要发送的短信息内容。整个嵌入式系统部分的开发是建立在底层的串口,LCD以及键盘的API都已经由这家台湾公司提供了的基础上。
3.2 Modem的AT指令简介
AT指令为所有调制解调器制造商所使用的一个调制解调器命令语言。只要用连接线把串口和Modem连接起来,使得可以通过串口向Modem进行输入,就可以让Modem与Modem之间通过使用AT指令经PSTN进行通信的。这是由于Modem有两种工作模式:指令模式与数据传输模式。
3.3 Modem通讯模块
表1 Modem通讯模块的自定义帧
字段 |
所占字节 |
字段 |
所占字节 |
DLE |
1 |
发送时间 |
20 |
STX |
1 |
保留字段 |
20 |
类型 |
1 |
内 容 |
160 |
帧序号 |
2 |
DLE |
1 |
源号码 |
20 |
ETX |
1 |
目的号码 |
20 |
|
|
Modem通讯模块是嵌入式系统部分的主体,它负责与外界(其它的Modem)进行通讯。由于Modem之间的传输是连续的字节流,因此必须要定义一些建立在数据链路层上的帧,才能够把实际要传输的每个数据包从连续的字节流中区分出来。如表1所示,DLE STX和DLE ETX都是自定义的常量,数值是十六进制数的10 02和10 03,分别代表着一个帧的开始与结束。如果一个帧的内容中有这两个常量,那么可以在发送此帧时插入一个DLE,如10 02插入DLE后变为10 10 02,接收此帧时,遇到连续的10 10就检查是否紧跟着02,如果是就删除中间的10,这样就既可以接收到正确的数据,又避免了从字节流中不能正确地截取帧。类型字段有两种可能值:一种是DATA,即数据帧,代表此帧传输的是数据;一种是ACK,即确认帧,代表此帧是对已收到某一数据帧的确认。帧序号是标志该帧的唯一标志,发送过程中不断递增,达到最大值后可以循环使用。由于手机短信息的英文长度可以长达160个字节(中文为140个字节),所以内容字段规定为160个字节。对于数据帧,内容字段存放短信息的内容;对于确认帧,内容字段存放它所指明的已收到数据帧的帧序号。
当Modem通讯模块接收到从MS发来的短信息时,只是简单地发送确认帧。当Modem通讯模块发送短信息到MS时,它把一个数据帧发送到目的端Modem,然后等待对此数据帧的确认帧的返回,如果超过一定的时间还没有收到返回,Modem通讯模块将会重发此数据帧,重发超过一定的次数就放弃发送此数据帧。如果在等待确认帧的返回时,有新的数据帧需要发送,那么将会允许发送一定数量的数据帧,超过这个数量以后就不再发送,直到有对之前发送帧的确认帧返回。
4. 增值服务系统网关部分
4.1 功能简述

图2 增值服务系统网关
增值服务网关的主要作用是在PSTN和Internet(数据通过TCP/IP传送)之间进行数据的转发。因此定义了两种类:Frame与ShortMessage。在内部,Modem通讯模块与协议转换模块之间传送的对象是Frame,TCP/IP通讯模块与协议转换模块之间传送的对象是ShortMessage,Frame与ShortMessage之间通过协议转换模块来互相转换。所以网关的功能就是解析从PSTN收到的包含短信息内容的Frame后重新编码为ShortMessage再发送到TCP/IP,或者解析从TCP/IP收到的包含短信息内容的ShortMessage后重新编码为Frame再发送到PSTN。网关中所有模块的活动都通过调用日志模块提供的接口来进行日志的记录。由于协议转换模块的实现比较简单,而网关的Modem 通讯模块跟嵌入式系统的Modem通讯模块的设计思想是相似的,不同的只是网关的Modem 通讯模块调用的是Sun提供的Java的串口API,屏蔽了很多底层的实现细节,在开发中更加容易使用。因此下面只对TCP/IP通讯模块和日志模块进行说明。
[1] [2] 下一页
|