ROM开发

STK

2017-07-08  本文已影响0人  小的橘子

STK
(SIM Application Toolkit),中文名为SIM卡应用工具包。它包含一系列手机与SIM卡的交互指令,SIM卡可以运行卡内的小应用程序与手机以及用户进行交互,从而实现增值服务的目的。
别名:
CAT:Card Application Toolkit,另一个常用名,Android的STK应用就被命名为CatAppUSAT:USIM Application Toolkit ,3G SIM卡的STK功能。但是一般不会特别指出是3G的STK,所以这个命令不常用。
协议
2G协议:3GPP TS 11.143G协议:
3GPP TS 31.1112G测试协议:
3GPP TS 51.010-43G测试协议:3GPP TS 31.124,里面有大量引用ETSI TS 102.384的case对于测试协议,不论51.010-4,31.124还是102.384,测试项都是27.22.。
功能

Profile Download,配置下载开机初始化SIM卡的过程中,手机告诉SIM卡手机支持哪些STK命令。在STK中,Download指的是手机将数据发送给SIM卡。
Proactive SIM,主动式命令通过主动式命令,SIM卡可以指示手机执行一系列的行为,如:

主动式命令可以认为是STK最重要的功能之一很多其他的功能都需要有主动式命令来构成。
Data download to SIM,数据下载使用Envelope命令,下载点对点短消息或者小区广播给SIM卡。
Menu selection,菜单选择菜单选择功能。一般是刚开机的时候,SIM卡发送菜单给手机,手机缓存下来,生成STK应用(如Android的CatApp)的主菜单。当用户点击进入应用的时候,该菜单会显示给客户,由用户进行选择,从而进入二级菜单或者触发其他功能。
Call control,呼叫控制如果手机/SIM卡支持呼叫控制功能,则手机拨出电话的时候(以及发送SS/USSD),必须先将通话请求发送给SIM卡,SIM卡可以决定是否允许通话/拒绝通话/修改参数之后通话。
MO Short Message control by SIM,短消息控制类似于呼叫控制,SIM卡也可以对发出的短消息进行控制。
Event download,事件下载SIM卡可以向手机发送主动式命令(SET UP EVENT LIST),要求监听一些列事件。当这些事件发生时,手机需要使用ENVELOPE命令通知SIM卡详细的事件信息。这些事件包括:

BIP(Bearer Independent Protocol),承载无关业务 一般使用BIP来表示承载无关业务,其实就是数据网络相关功能,包括5个主动式命令和2个事件。主动式命令包括:

命令流程
因为手机与SIM卡之间的交互,总是手机主动给SIM卡发出命令,这意味着SIM卡是无法主动向手机发出命令的。如下图所示:

这里写图片描述 为此,定义了一个名为Fetch的命令。当手机给SIM卡发送普通命令(如Status等)的时候,SIM卡的返回值可以是:我有一条主动式命令要发出(值为91XX)。当手机收到这个返回值时候,就立即发送Fetch命令给SIM卡,从而在SIM卡的返回值中获取到这条主动式命令。在手机执行完命令之后,需要发送返回值给SIM卡。如果没有后续命令,SIM卡返回结束消息(值为9000)如下图所示: 这里写图片描述 从上图还可以看出,手机对命令的执行结果,通过Terminal Response发送给SIM卡。
Terminal Response可以是:

命令 根据前面的描述,可以总结出来,STK功能通过如下4个命令实现

流程举例
下图是一个最常见的STK流程

命令解析
STK命令为TLV结构,即Tag(标签),Length(长度),Value(值)。如下图所示

TLV结构 命令的Tag在协议11.14的第13.1和13.2章节中定义,常用的有:

举例
下面是一个显示文本命令的实例。在手机开机时,会弹出欢迎界面,这个欢迎界面就是STK的主动式命令“Display Text”发起的。
命令:

D0308103012101820281028D25085C0A656C768475286237FF0C6B228FCE60A84F7F75284E2D56FD8054901A4E1A52A1FF01

解析:

D0:  TAG,表示主动式命令
30:  LENGTH,0x30=48,表示命令的VALUE部分长度为48 byte。
以下是命令内容
81:  Command details tag
03:  Command details length
01:  cmd.number
21:  cmd.type -> DISPLAY TEXT
01:  cmd.qual -> 
  high priority;
  clear message after a delay;

82:  Device identity tag
02:  Device identity length
81:  Devices.source -> SIM
02:  Devices.dest -> Display

8D:  Text string tag
25:  Text string length
08:  Data coding scheme,表示字串使用UCS2编码
5C0A:  UCS2[0]: 尊
656C:  UCS2[1]: 敬
7684:  UCS2[2]: 的
7528:  UCS2[3]: 用
6237:  UCS2[4]: 户
FF0C:  UCS2[5]: ,
6B22:  UCS2[6]: 欢
8FCE:  UCS2[7]: 迎
60A8:  UCS2[8]: 您
4F7F:  UCS2[9]: 使
7528:  UCS2[10]: 用
4E2D:  UCS2[11]: 中
56FD:  UCS2[12]: 国
8054:  UCS2[13]: 联
901A:  UCS2[14]: 通
4E1A:  UCS2[15]: 业
52A1:  UCS2[16]: 务
FF01:  UCS2[17]: !
执行结果就是:手机立即显示“尊敬的用户,欢迎您使用中国联通业务!”,并且显示一会儿后会自动消失
上一篇下一篇

猜你喜欢

热点阅读