STK卡技術簡介
文章出處:http://m.overnightmodel.com 作者:握奇 人氣: 發(fā)表時間:2011年09月08日
[文章內容簡介]:STK卡技術簡介
STK是SIM Tool Kit的英文縮寫.即用戶識別應用開發(fā)工具。它包含一組指令用于手機與SIM卡的交互,這樣可以使SIM卡運行卡內的小應用程序,實現(xiàn)增值服務的目的。之所以稱小應用程序,是因為受SIM卡空間的限制,STK卡中的應用程序都不大,而且功能簡單易用。目前市場提供的主流STK卡主要有16K和32K兩種;64K卡也在積極的市場推廣中。
STK卡與普通SIM卡的區(qū)別在于,在STK卡中固化了應用程序。通過軟件激活提供給用戶一個文字菜單界面。這個文字菜單界面允許用戶通過簡單的按鍵操作就可實現(xiàn)信息檢索,甚至交易。例如終端用戶想查詢天氣預報,在沒有STK增值服務的情況下,用戶需要手動編輯短消息TQ 010,再將短消息發(fā)送到168服務平臺。這樣用戶需要記住TQ是天氣預報的命令代碼和168服務平臺號。事實上命令代碼有很多如GP代表股票查詢,HF代表電話費查詢等。因此要用戶將所有的命令代碼記住是不現(xiàn)實的也是很不方便的。STK通過固化在卡中的程序,提供給用戶天氣預報等菜單提示,這樣用戶只需要輸入想要查詢地區(qū)的長途區(qū)號即可查詢到天氣情況。從而使用戶不必記憶命令代碼和服務平臺號,達到方便用戶的目的。
STK增值服務的實現(xiàn)基礎是GSM的短消息。因此,只要是GSM網(wǎng)絡覆蓋到的地方,就可以提供文字信息服務,服務范圍廣大;而且文字短消息價格便宜,僅在成功傳遞時才收費,并且不包含漫游費;基于上述原因STK卡用戶數(shù)猛增,該商業(yè)模式現(xiàn)正趨于成熟。
STK卡的平臺不統(tǒng)一使各個廠商的開發(fā)的STK程序互不兼容。這樣每個卡商的應用程序只能運行于各自特定的平臺。從而給運營商帶來很大的不便。JAVA技術應用于STK卡中就是Java卡。有關Java卡的技術問題本文不予討論,因為這方面的資料有很多。本文僅對握奇公司的STK實現(xiàn)及特點作簡單的介紹。
首先,握奇公司的STK卡完全遵循GSM11.11,GSM11.14,GSM03.08等一系列規(guī)范,因此其使用性方面與其他公司的STK卡沒有任何區(qū)別,并完全能夠滿足不同運營商的包括信息查詢、股票交易、銀行交易的各種需求。其次,握奇公司的STK卡的實現(xiàn)方式類似JAVA卡的實現(xiàn)方式,也是在SIM卡內有解釋器,解釋執(zhí)行字節(jié)碼方式實現(xiàn)的。與JAVA卡的區(qū)別是解釋器是自主開發(fā)的,而字節(jié)碼也是采用握奇公司專有格式。握奇公司的STK卡解決方案的優(yōu)點是,針對于SIM卡的應用進行了程序設計上的優(yōu)化,因此解釋器的執(zhí)行效率和占用空間明顯優(yōu)于JAVA卡的解釋器?;谏鲜鲈蛭掌婀镜腟TK卡程序運行的速度快并且能在相同容量的卡片上實現(xiàn)更多的應用。再次,握奇公司的STK卡可以有選擇性的和PKI結合使用,是通過在卡內實現(xiàn)的R.S.A算法來進行簽名驗證。從而使利用手機來從事移動商務活動不再是紙上談兵。
握奇公司的STK程序開發(fā)流程如下圖:
握奇公司的STK卡開發(fā)使用專用的腳本語言,這種腳本語言是一種介于高級程序開發(fā)語言和匯編語言之間的專用開發(fā)語言。它有自己專有的語法規(guī)則和特殊的流程控制。同時它借鑒了高級語言的部分優(yōu)點,例如程序的順序、選擇、循環(huán)結構。握奇公司的STK卡開發(fā)工具實現(xiàn)了對內存的動態(tài)分配,從而給開發(fā)的過程帶來了極大的方便。與高級語言一樣,握奇公司的STK卡開發(fā)工具同樣提供了簡單實用的函數(shù),既提供了一系列API供程序開發(fā)者調用。例如,在STK應用中最常用的命令有SelectItem、GetInput、發(fā)送短消息等。因此,開發(fā)工具中針對每個常用命令提供一個腳本函數(shù),這樣使開發(fā)者不必記憶GSM規(guī)范中的命令格式,從而大大的提高了開發(fā)效率。
下面用一個具體的實例進一步說明握奇公司的STK開發(fā)工具,這個例子是我們非常熟悉的天氣查詢。經(jīng)過修剪的代碼如下:
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,消息正在發(fā)送…)
06 SetVar&($20,20)
07 SetVar#($04,TQ)
08 GetInput@($05,長途區(qū)號:,05,00,02,)
09 GSMSM($04$20$05,00,04,$EF,$A1,$A2)
10 DisplayText@(消息發(fā)送成功!)
11 Exit()
12 DisplayText@(消息發(fā)送失敗!)
13 Exit()
從腳本程序可以看到,握奇的STK卡開發(fā)語言具有小巧、簡單的特點。這段程序的功能是查詢天氣情況。它的業(yè)務流程是:用戶輸入想要查詢地區(qū)的長途區(qū)號(如010),STK程序將天氣查詢代碼TQ和用戶輸入?yún)^(qū)號010以TQ 010形式組織上行數(shù)據(jù)包,并將數(shù)據(jù)包以普通短信的形式發(fā)送到168服務平臺。
握奇公司的腳本語言必須以
程序在一般的情況下是順序執(zhí)行的,即按照行號的大小順序執(zhí)行。GOTO語句是設置程序的跳轉流程的。比如在本例中0B就是在出現(xiàn)未定義的錯誤時,程序的跳轉地址。遇到這種情況一般的處理是直接退出程序。而21是短消息發(fā)送失敗后的錯誤返回碼,0C是出現(xiàn)21號錯誤(短消息發(fā)送失敗)時的跳轉地址,在本例中跳轉到12行,顯示消息發(fā)送失?。?。為了例子程序更加簡潔易懂,本例程并沒有處理其他錯誤。
SELECTITEM是顯示人機交互界面,既顯示天氣預告供用戶選擇。
SERVAR是賦值語句。第2行的語義是?quot;038161F8賦給A1變量。執(zhí)行詞語后A1變量存儲的內容就是168服務平臺號的TPDA形式。
GETRECVAR的作用是從紀錄文件中讀取所需的數(shù)據(jù)。在本例中就是從6F42文件中讀取短消息服務中心號碼。
GETINPUT的作用是取得用戶輸入。在本例中就是讓用戶輸入地區(qū)長途號。第一個參數(shù)是用來存放用戶輸入內容的。第二個參數(shù)是提示信息。第三個參數(shù)是用戶輸入內容的最大長度。第四個參數(shù)是用戶輸入的編碼格式,在本例中僅允許數(shù)字輸入。第五個參數(shù)是用戶輸入內容的最小長度。
GSMSM的功能是發(fā)送短消息。第一個參數(shù)是發(fā)送的內容,在本例中發(fā)送的內容是$04,$20,$05變量的連接。第二個參數(shù)是PID。第三個參數(shù)是短消息的編碼格式,在本例中是以英文編碼格式發(fā)出的。第四個參數(shù)是提示信息如消息正在發(fā)送…第五個參數(shù)是TPDA。第六個參數(shù)是短信中心號。
DISPLAYTEXT的功能是顯示提示信息。參數(shù)的內容就是要顯示的內容。
EXIT退出程序。
以上僅對握奇公司的STK卡的開發(fā)做了一個的概述,目的是讓讀者對握奇公司的STK卡解決方案有一個初步的認識。
本文關鍵詞:STK卡技術簡介
上一篇:智能卡與指紋識別技術[ 09-08 ]
下一篇:光卡簡介[ 09-08 ]