短消息模块详细设计ot.docx
- 文档编号:10526981
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:18
- 大小:524.05KB
短消息模块详细设计ot.docx
《短消息模块详细设计ot.docx》由会员分享,可在线阅读,更多相关《短消息模块详细设计ot.docx(18页珍藏版)》请在冰豆网上搜索。
短消息模块详细设计ot
短消息模块详细设计
摘要:
本文简单介绍了GSM和PHS短消息的协议要点及其差异,展讯GSM平台短消息模块的基本功能操作的实现,设计了GSM/PHS双模短消息模块基本功能操作的系统方案,给出了各功能模块的详细处理流程。
关键词:
短消息,GSM,PHS,双模
1SMS协议要点:
短消息的定义主要参考GSM协议[1][2]和PHS协议[3]。
2PMN层软件整体架构
PMN层主要由PMN任务及其子模块(如PMN_CC,PMN_MM,PMN_PB,PMN_SMS,PMN_PHONE等子模块)构成。
PMN的PMN_CORE就是PMN层任务入口,负责PMN任务的初始化,接收信号,并负责分发给PMN各子模块进行处理;PMN子模块分别负责完成电话本、短消息、呼叫控制、开关机等具体功能的实现和信号处理;对外,PMN层通过PMN、MN的EVENT及API与MMI子系统进行交互、通过PMN_COMMAND子模块接口与COMMAND命令子系统进行交互,完成PHS系统基本功能及其与GSM系统的通讯与协调。
其结构框图如下所示:
PMN层在PHS系统的功能相当于GSM系统的MN层,当需要和PHS子系统通讯的时候,MMI子系统会将用户的请求发送到PMN,PMN将收到的信号分发给相应的子模块进行处理。
当手机没有插入SIM卡时,PMN需要接收MMI子系统的电话本操作请求、PHS短信的操作请求等。
3PMN_SMS和MMI的接口
目前展讯SMS模块的实现是:
SIM卡和ME中的短消息都是通过调用MN_API函数实现的;而TOSHIBAPHS的SMS模块与PHS主板侧必须交互的功能要通过ATcommand实现的。
这就迫使我们不得不增加一个PMN_SMS层来实现PHSSMS模块的读取,保存,接收,发送等功能,对于读写PHS短消息到手机,由于目前NV只存在于GSM主板FLASH中,所以我们也可以采用调用MN_API实现PHSNVRAM短消息的读写,但最好将PHS消息保存到单独的NV区。
其结构框图如下:
图2短消息模块结构框图
从该图中可以看出手机中的短消息分GSM和PHS短消息,SIM/PIM卡插入就可以读出相应NV数据区保存的短消息。
对于手机中短消息的读写主要修改MMI层代码,相对比较少,主要是增加了保存PHS消息的类型,读写都通过消息类型来判断当前要读写的消息是GSM短消息还是PHS短消息。
读写SIM卡中的短消息不需要改变,仍旧通过MN_API实现。
修改最多的还是读写PIM卡,需要增加PMN_SMS模块来。
EXT_MMI模块比较简单,其主要作用是中转MN_API及PMN_API的函数。
PMN_SMS模块是和MN_SMS相对应的,主要给MMI提供API接口。
4短消息模块开机初始化流程图
4.1展讯GSM平台短消息模块开机初始化流程
展讯平台短消息模块的初始化过程是先初始化MMS消息(包括MT消息和MO消息),然后初始化SIM卡中的SMS(MT和MO短消息),最后初始化NVRAM中保存的SMS(MT和MO消息)。
其初始化数据放置在全局变量中,每读取一条MT/MO消息就将其插入到MT/MO对应队列中,对于MT消息按照时间顺序插入队列,当初始化完成时,也完成了排序。
全局变量中保存了消息列表所需的信息、收到的短消息总数、成功发送的短消息总数、发送失败的消息总数等信息。
初始化完成后,可以进行短消息模块的功能操作了。
短消息模块开机初始化流程图如下:
图3展讯GSM短消息模块初始化流程图
4.2GSM/PHS短消息模块初始化流程设计
在无SIM/PIM卡的情况下,不允许读取NV_GSM/NV_PHS中保存的短消息。
为了实现最小化修改GSMModuleMMI模块代码,我们采取GSM短消息读取优先,PHS短消息为次的策略来设计GSM/PHS短消息初始化过程。
即在SIM卡和PIM卡均工作正常的情况下,首先初始化GSMModuleSMS信息,GSMmoduleSMS初始化完成后再初始化PHSModuleSMS信息。
依照此策略设计的短消息模块初始化流程如下:
图4GSM/PHS短消息模块初始化流程图
5发送短消息流程设计
5.1头信息(DataHead)
MS与网络之间传送短消息的单元为一个消息片断(MessageSegment[1])。
用户视角的一个短消息对应一个PHS消息片断;或者一个或多个GSM消息片断。
PHS短消息没有头信息,所以也就没有随后描述的串接和路由功能,但GSM短消息定义了串接头。
GSMSMS的内容字段TPDU中的TP-UD,可能会包含一个头信息块。
这个DataHead的类型包括:
串接信息,路由信息等。
对于常用的传送文本的短消息,实际的文字内容应该是TP-UD字段中除DataHead以外的内容,DataHead的长度在TP-UD字段的第一个字节,展讯平台头信息的长度为5。
5.2字符编码标准
表2GSM和PHS支持的编码方式比较
协议
协议编码标志位数
协议编码标志
字符编码位数(bit)
字符集
GSM
2bit
11保留
00b
7
GSM默认编码,字符集见[3]
01b
8
UserSpecific
10b
16
ISO/IEC10646:
UCS2
PHS
8bit
0x04~0xFF保留
0x00
8
ASCII
0x01
8或16
GB2312
0x02
16
UNICODE
0x03
8或16
BIG5
5.3文字内容长度和串接短消息
短消息类别
普通消息长度(Byte)
是否支持串接
串接短消息最大长度
GSM
140
支持
UCS2:
5*134
DEFAULT:
5*153
PHS
116
不支持
说明:
GSM串接短消息是依据TP-UD中的串接短消息头,标志几个MessageSegment组成一个串接Message,在MMI响应用户“阅读”,“删除”,“存储”时当作一个整体对待。
一个串接DataHead会占用5个字节,还有一个字节被占去了,目前没找到被谁占去了,所以,TP-UD字段最多有134=140-6字节用于存储文字内容,UCS2编码下,一个串接Segment最多传送67=(140-6)*8/16个字符,目前展讯平台最大支持5条串接,所以GSM所能支持的最大中文字数为335=5*67。
对GSM/PHS来说,由于可以选择通过不同的模块进行发送,需要考虑编辑的内容的最大长度该如何取值的问题。
一种方案是在进入短信编辑的时候,通过判断当前设置的待机模式来预先设置允许编辑的短信内容的最大长度;另外一种方案是还是按照目前GSM设置的可编辑的最大长度,当短信长度大于116Bytes的时候,若选择通过PHS模式发送的时候,提示用户短信长度超界,是否继续发送,若选择继续,则分几条发送出去。
目前GSM允许发送的最大长度有点太长,考虑改小一点。
5.4网络提供的暂存功能
GSM网络提供短信中心(SMC),SMC提供暂时存储功能。
如果用户手机暂时不能接收短信(包括MS通知网络存储空间满,MS无法接通,和MS关机等情况),SMC将暂存消息,待用户手机恢复正常后,再发送给用户。
PHS只在MS无法接通及MS关机等情况下才暂存短信,PHS正常开机情况下,网络不会暂存短信,这样在MS存储满时会造成一些问题,下面是一中解决办法。
当PHS存储空间满,收到新短信时,PMN_SMS按照一定的策略(例如找时间最早的那条消息)覆盖一条旧短信:
当执行上述操作时,MMI面临的问题:
(1)若此时MMI正通过PMN_SMS逐个读取短信显示列表,若读到被选中覆盖的消息并且此时消息还未被覆盖时,则不读取此条消息,视此消息被删除掉了,待新的短信覆盖了此条消息后,重新更新消息列表。
(2)若此时用户正在“阅读”被选中覆盖的短信且此消息还未被覆盖掉,则正常读取此条短信,将欲被覆盖的短信内容显示出来。
待消息被覆盖掉之后再阅读,就显示覆盖后的消息内容。
5.5状态报告
用户在发送消息完成后所看到的提示是MS和SMC之间的操作结果,用户若想知道发送的短消息是否为对方成功接收就需要接收“状态报告”,表明此条短信是否已发送到接收人。
若想知道消息是否被目的方成功接收,在发送的消息的时候,需要将状态报告标志位置成真,这样SMC在将短信成功转发给接受方后,将发送状态报告消息给发送方。
GSMSMC提供了状态报告服务,但是PHS网络未提供此服务,所以通过PHS网络发送消息得不到状态报告回执,我们无法判断此条消息是否被接收方成功接收。
5.6有效期
GSM短信在发送时带有有效期字段,SMC会根据这个字段值决定该条SMS在SMC的缓存期限。
PHS短信没有这个字段。
5.7发送短信流程
5.7.1GSMModule发送短消息流程图
图5GSM模式发送短消息流程图
5.7.2PHSModule发送短消息流程图
图6PHS模式发送短消息流程图
5.7.3GSM/PHS发送短消息框图
图7GSM/PHS发送短消息框图
说明:
发送短信分只发送不保存和发送并保存两种选择,所以在框图中能够看到MN_SMS与SIM和NVRAM的交互,PMN_SMS与PIM和NVRAM的交互。
对于发送并保存流程是先保存发送内容,然后再发送。
5.7.4GSM/PHS发送短消息流程设计
GSM/PHS发送短消息流程图设计如下:
图8GSM/PHS发送短消息流程图
6接收短消息设计
展讯平台接收短消息的实现是:
底层收到新消息,然后上传给MN层,由MN层完成新短信保存(SIM/GSM_NV),当MN完成短信保存后,向MMI发送APP_MN_SMS_IND信号通知收到了新短信,MMI收到此消息后进行响铃更新新短信图标等操作,通知用户来了新消息。
MN层提供了设置优先保存NV或者优先保存SIM卡。
PHS接收新短信的实现是底层收到新消息,将数据通过串口传到PMN层,由PMN层完成新消息保存(PIM/PHS_NV),保存完成后,PMN向MMI发送APP_PMN_SMS_IND消息,MMI收到此消息后进行响铃音,更新待机图标等处理。
6.1GSMModule接收新消息流程
图9GSMModule接收消息流程图
6.2PHSModule接收消息流程图
图10PHSModule接收短消息流程图
6.3GSM/PHS接收新消息设计框图
图11GSM/PHS接收新消息框图
6.4GSM/PHS接收新消息流程图
从GSM/PHS接收消息框图,我们可以看出两个Module的处理过程是相互独立的,保存消息的处理分别在MN层和PMN层。
所以这里就不写双模接收消息流程了,对于同时收到GSM短消息和PHS短消息或者连续接收多条PHS短信的情况(对于连续接收多条GSM消息的情况,GSMModule应该已有处理),只在MMI层的更新消息队列的时候可能会产生冲突,可以在MMI增加一个消息队列,在上一条消息列表信息更新完毕之后再进行下条消息的更新。
7保存编辑消息
7.1GSMModule保存编辑消息流程
图12GSMModule保存编辑短信流程图
7.2PHSModule保存编辑短信
8其他说明
1.信息设置
PHS短消息无信息有效期以及不需要设置信息中心号码。
所以信息设置里的这两个菜单项对PHS不起作用。
PHS在发送短消息的时候不需要获取这两个信息。
所以若为PHS单待机时,是否需要将这两个菜单项屏蔽?
2.对于发送短消息,在编辑完短信内容,选择发送/发送并保存菜单,输入目的号码后,若选择左软件确定,则选择默认模式(GSM优先/PHS优先)发送;若选择中心键,则进入发送模式选择菜单,用户可以自由选择模式(GSM/PHS)进行发送。
3.PHS无彩信功能,所以若是PHS单待机,需要关闭彩信相关菜单,例如收件箱中的操作菜单中的回复彩信菜单,需要关闭。
若为双待机,只要跟MMS有关的都走GSMModule。
4.其他细节问题。
9参考文献
[1]GSM03.40.720Release1998
[2]GSM03.38.6.0.1DataCodingSchemeRelease1997
[3]中国电信短消息规范(正式版本).TIF
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 短消息 模块 详细 设计 ot