STK卡技术简介
来源:中国一卡通网 作者:握奇 发布时间:2005-06-01 17:00:06 字体:[大 中 小]
关键字:STK卡技术简介
摘 要:STK卡技术简介
STK是SIM Tool Kit的英文缩写.即用户识别应用开发工具。它包含一组指令用于手机与SIM卡的交互,这样可以使SIM卡运行卡内的小应用程序,实现增值服务的目的。之所以称小应用程序,是因为受SIM卡空间的限制,STK卡中的应用程序都不大,而且功能简单易用。目前市场提供的主流STK卡主要有16K和32K两种;64K卡也在积极的市场推广中。
STK卡与普通SIM卡的区别在于,在STK卡中固化了应用程序。通过软件激活提供给用户一个文字菜单界面。这个文字菜单界面允许用户通过简单的按键操作就可实现信息检索,甚至交易。例如终端用户想查询天气预报,在没有STK增值服务的情况下,用户需要手动编辑短消息TQ 010,再将短消息发送到168服务平台。这样用户需要记住TQ是天气预报的命令代码和168服务平台号。事实上命令代码有很多如GP代表股票查询,HF代表电话费查询等。因此要用户将所有的命令代码记住是不现实的也是很不方便的。STK通过固化在卡中的程序,提供给用户天气预报等菜单提示,这样用户只需要输入想要查询地区的长途区号即可查询到天气情况。从而使用户不必记忆命令代码和服务平台号,达到方便用户的目的。
STK增值服务的实现基础是GSM的短消息。因此,只要是GSM网络覆盖到的地方,就可以提供文字信息服务,服务范围广大;而且文字短消息价格便宜,仅在成功传递时才收费,并且不包含漫游费;基于上述原因STK卡用户数猛增,该商业模式现正趋于成熟。
STK卡的平台不统一使各个厂商的开发的STK程序互不兼容。这样每个卡商的应用程序只能运行于各自特定的平台。从而给运营商带来很大的不便。JAVA技术应用于STK卡中就是Java卡。有关Java卡的技术问题本文不予讨论,因为这方面的资料有很多。本文仅对握奇公司的STK实现及特点作简单的介绍。
首先,握奇公司的STK卡完全遵循GSM11.11,GSM11.14,GSM03.08等一系列规范,因此其使用性方面与其他公司的STK卡没有任何区别,并完全能够满足不同运营商的包括信息查询、股票交易、银行交易的各种需求。其次,握奇公司的STK卡的实现方式类似JAVA卡的实现方式,也是在SIM卡内有解释器,解释执行字节码方式实现的。与JAVA卡的区别是解释器是自主开发的,而字节码也是采用握奇公司专有格式。握奇公司的STK卡解决方案的优点是,针对于SIM卡的应用进行了程序设计上的优化,因此解释器的执行效率和占用空间明显优于JAVA卡的解释器。基于上述原因握奇公司的STK卡程序运行的速度快并且能在相同容量的卡片上实现更多的应用。再次,握奇公司的STK卡可以有选择性的和PKI结合使用,是通过在卡内实现的R.S.A算法来进行签名验证。从而使利用手机来从事移动商务活动不再是纸上谈兵。
握奇公司的STK程序开发流程如下图:
握奇公司的STK卡开发使用专用的脚本语言,这种脚本语言是一种介于高级程序开发语言和汇编语言之间的专用开发语言。它有自己专有的语法规则和特殊的流程控制。同时它借鉴了高级语言的部分优点,例如程序的顺序、选择、循环结构。握奇公司的STK卡开发工具实现了对内存的动态分配,从而给开发的过程带来了极大的方便。与高级语言一样,握奇公司的STK卡开发工具同样提供了简单实用的函数,既提供了一系列API供程序开发者调用。例如,在STK应用中最常用的命令有SelectItem、GetInput、发送短消息等。因此,开发工具中针对每个常用命令提供一个脚本函数,这样使开发者不必记忆GSM规范中的命令格式,从而大大的提高了开发效率。
下面用一个具体的实例进一步说明握奇公司的STK开发工具,这个例子是我们非常熟悉的天气查询。经过修剪的代码如下:
信息资讯
00 Goto(0B210C)
01 SelectItem@($00,信息资讯,(天气预报//00))
02 SetVar&($A1,038161F8)
03 SetVar&($09,01)
04 GetRecVar($A2,7F106F42,$09,19,09)
05 SetVar@($EF,消息正在发送…)
06 SetVar&($20,20)
07 SetVar#($04,TQ)
08 GetInput@($05,长途区号:,05,00,02,)
09 GSMSM($04$20$05,00,04,$EF,$A1,$A2)
10 DisplayText@(消息发送成功!)
11 Exit()
12 DisplayText@(消息发送失败!)
13 Exit()
从脚本程序可以看到,握奇的STK卡开发语言具有小巧、简单的特点。这段程序的功能是查询天气情况。它的业务流程是:用户输入想要查询地区的长途区号(如010),STK程序将天气查询代码TQ和用户输入区号010以TQ 010形式组织上行数据包,并将数据包以普通短信的形式发送到168服务平台。
握奇公司的脚本语言必须以开始,以结束,但是它们并不算程序的内容。程序的第1行在脚本语言中定义为0行(见程序前面的编号,以下叙述均以标号为准)。
程序在一般的情况下是顺序执行的,即按照行号的大小顺序执行。GOTO语句是设置程序的跳转流程的。比如在本例中0B就是在出现未定义的错误时,程序的跳转地址。遇到这种情况一般的处理是直接退出程序。而21是短消息发送失败后的错误返回码,0C是出现21号错误(短消息发送失败)时的跳转地址,在本例中跳转到12行,显示消息发送失败!。为了例子程序更加简洁易懂,本例程并没有处理其他错误。
SELECTITEM是显示人机交互界面,既显示天气预告供用户选择。
SERVAR是赋值语句。第2行的语义是?quot;038161F8赋给A1变量。执行词语后A1变量存储的内容就是168服务平台号的TPDA形式。
GETRECVAR的作用是从纪录文件中读取所需的数据。在本例中就是从6F42文件中读取短消息服务中心号码。
GETINPUT的作用是取得用户输入。在本例中就是让用户输入地区长途号。第一个参数是用来存放用户输入内容的。第二个参数是提示信息。第三个参数是用户输入内容的最大长度。第四个参数是用户输入的编码格式,在本例中仅允许数字输入。第五个参数是用户输入内容的最小长度。
GSMSM的功能是发送短消息。第一个参数是发送的内容,在本例中发送的内容是$04,$20,$05变量的连接。第二个参数是PID。第三个参数是短消息的编码格式,在本例中是以英文编码格式发出的。第四个参数是提示信息如消息正在发送…第五个参数是TPDA。第六个参数是短信中心号。
DISPLAYTEXT的功能是显示提示信息。参数的内容就是要显示的内容。
EXIT退出程序。
以上仅对握奇公司的STK卡的开发做了一个的概述,目的是让读者对握奇公司的STK卡解决方案有一个初步的认识。
新闻投稿合作邮箱:yktchina-admin@163.com 字体[大 中 小] [收藏] [进入论坛]