|
大唐微電子技術有限公司自主開發設計的DTT4C08是具有低功耗、高性能、可反復擦寫的FLASH程序存儲器和8KEEPROM數據存儲器的8位8K智能CPU卡芯片 , 采用自上而下(Top-Down)設計方法設計實現。 1 DTT4C08芯片簡介 1.1 DTT4C08管腳定義(模塊狀態) 其管腳定義和布局如圖1所示。 1.2 基本硬件結構 中央處理CPU、16K字節程序存儲器FLASH、256字節數據存儲順SRAM、可電擦寫的8K數據存儲器EEPROM。DTT4C08芯片利用FLASH工藝技術,制作成編程速率快、擦寫時間短、面積小的FLASH存儲器,并具備了相應的控制、接口和防攻擊電路,具有更安全、更開放、更靈活的特點;DTT4C08芯片CPU指令集與MCS-51完全兼容。
1.3 DTT4C08芯片其它說明 (1)8K字節的EEPROM數據存儲器支持頁操作和字節操作; (2)256字節的內部SRAM單元,支持位尋址; (3)帶時鐘頻率檢測器。當外部時鐘停止時,置片上FLASH于stand by狀態,EEPROM、SRAM停止工作,以減少功耗。 2 基于DTT4C08的智能卡應用開發方法 2.1 芯片操作系統軟件設計方法 下面以電信智能卡操作系統(COS)開發流程為例簡要說明基于DTT4C08軟件的應用開發。應用外接設備執行操作,卡片上電后,首先進行參數初始化,向移動終端發送ATR,卡與移動終端ME進行傳輸協議商定,然后開始接收命令數據并進行數據分析,根據分析結果散轉到相應命令子程序入口并執行命令,命令結束后卡發給移動終端響應。一條指令執行流程結束,卡重新開始接收數據,執行下一條指令。 電信智能卡COS主控程序流程圖如圖2所示。 2.2 芯片操作系統軟件調試環境 芯片操作系統編碼完成后可利用大唐微電子推薦的“集成調試環境+讀寫器模擬器”軟件仿真系統進行軟件仿真測試。該仿真系統涵蓋了智能卡應用開發對仿真器的仿真需求,能夠模擬條例ISO7816標準的I/O輸入輸出,超出了通常意義上的軟件仿真。整個芯片操作系統經過仿真之后就可以下載程序列卡上,由真實的“卡”作為“調試載體”, 使得開發過程與實際應用環境完全一致。 圖3是通過一臺微機實現DTT4C08芯片的仿真調試。 3 一種散轉接口應用程序設計方法 卡(DTT4C08芯片)接收ME的命令數據要進行數據分析,根據分析結果散轉到相應命令子程序入口并執行命令。命令數據即應用協議數據單元(APDU)的信息結構如圖4所示。 其中CLA是命令類別,取值為“A0”,當CLA=FF時,為PTS過程的頭標;INS為指令代碼,用來區分別不同的命令。ME通過I/O雙向數據線按圖4順序將命令數據串行發送給卡,卡將CLA、INS、P1、P2和P3分別暫存于R3、R4、R5、R6和R7,將數據體暫存于RAM的指定連續單元。最簡單的命令散轉判斷程序如下: CJNE R4,#0A4H,NEXT_INS01 ;通過INS判斷具體命令 LJMP SELECT ;轉向SELECT指令處理程序 NEXT_INS01:CJNE R4,#0F2H,NEXT_INS02 LJMP STATUS ;轉向STATUS指令處理程序 NEXT_INS02:CJNE R4,#0B0H,NEXT_INS03 LJMP READ_DINARY ;轉向READ_BINARY 指令處理程序 NEXT_INS03: …… NEXT_INS34:CJNE R4,#14H,NEXT_INS22 LJMP TERMINAL_RESPONSE ;轉向TERMINAL_RESPONSE指令處理程序 NEXT_INS35:出錯處理 除標準GSM命令外,加上SIM卡發行、調試等附加命令的散轉處理,卡至少需處理35條指令(210字節),占用了較多的程序空間。本文利用堆棧和子程序返回指令,通過查表判斷散轉入口的設計技巧,巧妙地獲得指令處理入口地址,散轉程序只需要131字節,大大節省了程序空間。需要處理的命令越多,節省的程序空間越多。
MOV R2,#(Command_INS_END-Command_INS)/3 命令個數 MOV DPTR,#Command_INS ;INS 命令表起始地址 Command_INS_LOOP:CLR A MOVC A,@A+DPTR XRL A,R4 JZ find_INS_in_table ;A=R4,找到相應命令 INC DPTR INC DPTR INC DPTR ;沒找到,指向下一命令信息地址 DJNZ R2,Command_INS_LOOP ;查找下一個出錯處理 find_INS_in_table: MOV A,#02H MOVC A,@A+DPTR PUSH ACC ;相應命令處理程序入口低地址入棧 MOV A,#01H MOVC A,@A+DPTR PUSH ACC ;相應命令處理程序入口高地址入棧 RET ;借用RET指令將堆棧中的數據彈出給PC地址指針,轉向相應命令處理程序入口 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 結束語 采用DTT4C08芯片的智能卡可進行拓展功能的應用開發,在金融、醫療、保險、出入口控制、各種預付費場合有廣泛的應用領域和推廣價值。 |