STK卡技術簡介
文章出處:http://www.nyfzw.net 作者:握奇 人氣: 發表時間:2011年09月08日
[文章內容簡介]: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卡的解釋器?;谏鲜鲈蛭掌婀镜腟TK卡程序運行的速度快并且能在相同容量的卡片上實現更多的應用。再次,握奇公司的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服務平臺。
握奇公司的腳本語言必須以
程序在一般的情況下是順序執行的,即按照行號的大小順序執行。GOTO語句是設置程序的跳轉流程的。比如在本例中0B就是在出現未定義的錯誤時,程序的跳轉地址。遇到這種情況一般的處理是直接退出程序。而21是短消息發送失敗后的錯誤返回碼,0C是出現21號錯誤(短消息發送失?。r的跳轉地址,在本例中跳轉到12行,顯示消息發送失??!。為了例子程序更加簡潔易懂,本例程并沒有處理其他錯誤。
SELECTITEM是顯示人機交互界面,既顯示天氣預告供用戶選擇。
SERVAR是賦值語句。第2行的語義是?quot;038161F8賦給A1變量。執行詞語后A1變量存儲的內容就是168服務平臺號的TPDA形式。
GETRECVAR的作用是從紀錄文件中讀取所需的數據。在本例中就是從6F42文件中讀取短消息服務中心號碼。
GETINPUT的作用是取得用戶輸入。在本例中就是讓用戶輸入地區長途號。第一個參數是用來存放用戶輸入內容的。第二個參數是提示信息。第三個參數是用戶輸入內容的最大長度。第四個參數是用戶輸入的編碼格式,在本例中僅允許數字輸入。第五個參數是用戶輸入內容的最小長度。
GSMSM的功能是發送短消息。第一個參數是發送的內容,在本例中發送的內容是$04,$20,$05變量的連接。第二個參數是PID。第三個參數是短消息的編碼格式,在本例中是以英文編碼格式發出的。第四個參數是提示信息如消息正在發送…第五個參數是TPDA。第六個參數是短信中心號。
DISPLAYTEXT的功能是顯示提示信息。參數的內容就是要顯示的內容。
EXIT退出程序。
以上僅對握奇公司的STK卡的開發做了一個的概述,目的是讓讀者對握奇公司的STK卡解決方案有一個初步的認識。
本文關鍵詞:STK卡技術簡介
上一篇:智能卡與指紋識別技術[ 09-08 ]
下一篇:光卡簡介[ 09-08 ]