8K智能卡DTT4C08及其應(yīng)用程序設(shè)計
出處:維庫電子市場網(wǎng) 發(fā)布于:2023-07-21 14:39:14
摘要:大唐微電子技術(shù)有限公司8K智能CPU卡的基本硬件結(jié)構(gòu)、應(yīng)用開發(fā)方法,介紹了一種作為電信智能卡接受ME命令的散轉(zhuǎn)接口應(yīng)用程序設(shè)計技巧,節(jié)約了程序空間。
關(guān)鍵詞:智能CPU卡 芯片操作系統(tǒng) 程序設(shè)計
大唐微電子技術(shù)有限公司自主開發(fā)設(shè)計的DTT4C08是具有低功耗、高性能、可反復(fù)擦寫的FLASH程序存儲器和8KEEPROM數(shù)據(jù)存儲器的8位8K智能CPU卡芯片,采用自上而下(Top-Down)設(shè)計方法設(shè)計實現(xiàn)。
1 DTT4C08芯片簡介
1.1 DTT4C08管腳定義(模塊狀態(tài))
其管腳定義和布局。
1.2 基本硬件結(jié)構(gòu)
中央處理CPU、16K字節(jié)程序存儲器FLASH、256字節(jié)數(shù)據(jù)存儲順SRAM、可電擦寫的8K數(shù)據(jù)存儲器EEPROM。DTT4C08芯片利用FLASH工藝技術(shù),制作成編程速率快、擦寫時間短、面積小的FLASH存儲器,并具備了相應(yīng)的控制、接口和防攻擊電路,具有更安全、更開放、更靈活的特點;DTT4C08芯片CPU指令集與MCS-51完全兼容。
1.3 DTT4C08芯片其它說明
(1)8K字節(jié)的EEPROM數(shù)據(jù)存儲器支持頁操作和字節(jié)操作;
(2)256字節(jié)的內(nèi)部SRAM單元,支持位尋址;
(3)帶時鐘頻率檢測器。當(dāng)外部時鐘停止時,置片上FLASH于stand by狀態(tài),EEPROM、SRAM停止工作,以減少功耗。
2 基于DTT4C08的智能卡應(yīng)用開發(fā)方法
2.1 芯片操作系統(tǒng)軟件設(shè)計方法
下面以電信智能卡操作系統(tǒng)(COS)開發(fā)流程為例簡要說明基于DTT4C08軟件的應(yīng)用開發(fā)。應(yīng)用外接設(shè)備執(zhí)行操作,卡片上電后,首先進行參數(shù)初始化,向移動終端發(fā)送ATR,卡與移動終端ME進行傳輸協(xié)議商定,然后開始接收命令數(shù)據(jù)并進行數(shù)據(jù)分析,根據(jù)分析結(jié)果散轉(zhuǎn)到相應(yīng)命令子程序入口并執(zhí)行命令,命令結(jié)束后卡發(fā)給移動終端響應(yīng)。一條指令執(zhí)行流程結(jié)束,卡重新開始接收數(shù)據(jù),執(zhí)行下一條指令。
電信智能卡COS主控程序流程。
2.2 芯片操作系統(tǒng)軟件調(diào)試環(huán)境
芯片操作系統(tǒng)編碼完成后可利用大唐微電子推薦的“集成調(diào)試環(huán)境+讀寫器模擬器”軟件仿真系統(tǒng)進行軟件仿真測試。該仿真系統(tǒng)涵蓋了智能卡應(yīng)用開發(fā)對仿真器的仿真需求,能夠模擬條例ISO7816標(biāo)準(zhǔn)的I/O輸入輸出,超出了通常意義上的軟件仿真。整個芯片操作系統(tǒng)經(jīng)過仿真之后就可以程序列卡上,由真實的“卡”作為“調(diào)試載體”,使得開發(fā)過程與實際應(yīng)用環(huán)境完全一致。
3 一種散轉(zhuǎn)接口應(yīng)用程序設(shè)計方法
卡(DTT4C08芯片)接收ME的命令數(shù)據(jù)要進行數(shù)據(jù)分析,根據(jù)分析結(jié)果散轉(zhuǎn)到相應(yīng)命令子程序入口并執(zhí)行命令。命令數(shù)據(jù)即應(yīng)用協(xié)議數(shù)據(jù)單元(APDU)的信息結(jié)構(gòu)。
其中CLA是命令類別,取值為“A0”,當(dāng)CLA=FF時,為PTS過程的頭標(biāo);INS為指令代碼,用來區(qū)分別不同的命令。ME通過I/O雙向數(shù)據(jù)線按順序?qū)⒚顢?shù)據(jù)串行發(fā)送給卡,卡將CLA、INS、P1、P2和P3分別暫存于R3、R4、R5、R6和R7,將數(shù)據(jù)體暫存于RAM的指定連續(xù)單元。簡單的命令散轉(zhuǎn)判斷程序如下:
CJNE R4,#0A4H,NEXT_INS01 ;通過INS判斷具體命令
LJMP SELECT ;轉(zhuǎn)向SELECT指令處理程序
NEXT_INS01:CJNE R4,#0F2H,NEXT_INS02
LJMP STATUS ;轉(zhuǎn)向STATUS指令處理程序
NEXT_INS02:CJNE R4,#0B0H,NEXT_INS03
LJMP READ_DINARY ;轉(zhuǎn)向READ_BINARY 指令處理程序
NEXT_INS03: ……
NEXT_INS34:CJNE R4,#14H,NEXT_INS22
LJMP TERMINAL_RESPONSE
;轉(zhuǎn)向TERMINAL_RESPONSE指令處理程序
NEXT_INS35:出錯處理
除標(biāo)準(zhǔn)GSM命令外,加上SIM卡發(fā)行、調(diào)試等附加命令的散轉(zhuǎn)處理,卡至少需處理35條指令(210字節(jié)),占用了較多的程序空間。本文利用堆棧和子程序返回指令,通過查表判斷散轉(zhuǎn)入口的設(shè)計技巧,巧妙地獲得指令處理入口地址,散轉(zhuǎn)程序只需要131字節(jié),大大節(jié)省了程序空間。需要處理的命令越多,節(jié)省的程序空間越多。
MOV R2,#(Command_INS_END-Command_INS)/3 命令個數(shù)
MOV DPTR,#Command_INS ;INS 命令表起始地址
Command_INS_LOOP:CLR A
MOVC A,@A+DPTR
XRL A,R4
JZ find_INS_in_table ;A=R4,找到相應(yīng)命令
INC DPTR
INC DPTR
INC DPTR
;沒找到,指向下一命令信息地址
DJNZ R2,Command_INS_LOOP
;查找下一個出錯處理
find_INS_in_table:
MOV A,#02H
MOVC A,@A+DPTR
PUSH ACC
;相應(yīng)命令處理程序入口低地址入棧
MOV A,#01H
MOVC A,@A+DPTR
PUSH ACC
;相應(yīng)命令處理程序入口高地址入棧
RET ;借用RET指令將堆棧中的數(shù)據(jù)彈出給PC地址指針,轉(zhuǎn)向相應(yīng)命令處理程序入口
Command_INS:DB 0A4H
DW SELECT ;SELECT命令
DB 0F2H
DW STATUS ;STATUS命令
DB 0B0H
DW READ_BINARY
;READ_BINARY命令
……
DB 14H
DW TERMINAL_RESPONSE
;TERMINAL_RESPONSE命令
Command_INS_END: ;35個命令
4 結(jié)束語
采用DTT4C08芯片的智能卡可進行拓展功能的應(yīng)用開發(fā),在金融、醫(yī)療、保險、出入口控制、各種預(yù)付費場合有廣泛的應(yīng)用領(lǐng)域和推廣價值。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 什么是氫氧燃料電池,氫氧燃料電池的知識介紹2025/8/29 16:58:56
- SQL核心知識點總結(jié)2025/8/11 16:51:36
- 等電位端子箱是什么_等電位端子箱的作用2025/8/1 11:36:41
- 基于PID控制和重復(fù)控制的復(fù)合控制策略2025/7/29 16:58:24
- 什么是樹莓派?一文快速了解樹莓派基礎(chǔ)知識2025/6/18 16:30:52









