一种用于智能卡仿真调试系统的接口
技术领域
本发明涉及智能卡仿真调试技术领域,特别是用于智能卡仿真调试系统的接口。
背景技术
智能卡仿真调试系统中一般包括控制单元和仿真单元两个部分,其中控制单元用于和计算机接口连接,仿真单元用于对智能卡的软硬件功能进行模拟。现有技术中,控制单元通过串行或并行的接口对仿真单元的数据进行处理、对仿真调试过程进行控制。问题在于,智能卡产品种类繁多,所需的仿真单元的硬件设计各不相同,造成控制单元与仿真单元接口的种类也各式各样。另外,大部分智能卡的系统时钟和控制单元的时钟各不相同,使得仿真调试时控制单元和仿真单元之间形成异步时钟系统,这时用普通的串行接口和并行接口无法保证双方的可靠通讯。
发明内容
为了解决上述现有技术中存在的问题,本发明的目的是提供一种用于智能卡仿真调试系统的接口。使用本发明接口可实现多个不同的仿真单元,从而仿真不同的智能卡,还可以保证异步时钟系统的可靠工作。
为了达到上述的发明目的,本发明的技术方案以如下方式实现:
一种用于智能卡仿真调试系统的接口,它用于智能卡仿真调试系统中控制单元与仿真单元的连接,并可实现控制单元与仿真单元之间的数据交换和仿真调试操作。其结构特点是,它包括:
来自控制单元的地址线一;
来自仿真单元的地址线二;
与控制单元双向通讯的数据线一,数据线一和控制单元进行各种
数据的读写;
与仿真单元双向通讯的数据线二,数据线二和仿真单元进行各种
数据的读写;
来自控制单元的时钟输入线一;
来自仿真单元的时钟输入线二;
一个写寄存器组;
一个读寄存器组;
一套相对于控制单元对写寄存器组和读寄存器组进行地址译码的地址译码电路一及
一套相对于控制单元对写寄存器组和读寄存器组进行地址译码的地址译码电路二;
写寄存器组用来接收控制单元发出的各种控制信号和数据,并把控制信号和数据发送给仿真单元;
读寄存器组用来响应仿真单元发来的信号,接收仿真单元发出的数据,并把数据发送给控制单元;
写寄存器组的时钟是控制单元的系统时钟;
读寄存器组的时钟是仿真单元的系统时钟。
在上述接口中,所述写寄存器组包括:
控制寄存器,用来存储控制单元写入的控制参数;
地址寄存器,用来存储控制单元要访问的仿真单元的地址;
写数据寄存器,用来存储控制单元写入的数据,然后输出到仿真单元;
写调试寄存器,用来存储控制单元写入的调试信号,然后加载到仿真单元;
写握手寄存器,用来接收控制单元发出开始调试的信号,然后加载到仿真单元。
在上述接口中,所述读寄存器组包括:
读数据寄存器,用来存储仿真单元写入的数据,并输出到控制单元;
读调试寄存器,用来写入仿真单元的调试操作结果,然后输出到控制单元;
读握手寄存器,用来写入仿真单元结束调试的信号,结束调试操作。
本发明由于采用了上述的接口,使用它就可以在用户的计算机程序和控制单元不做任何变化的情况下实现多个不同的仿真单元,从而仿真不同的智能卡。同时,通过接口中写握手寄存器和读握手寄存器传递的握手信号,可以实现控制单元与仿真单元中异步时钟系统的可靠工作。
下面结合附图和具体实施方式对本发明做进一步说明。
附图说明
图1为本发明接口用于智能卡仿真调试系统的连接示意图;
图2为本发明接口的工作原理图;
图3为本发明接口中的写寄存器组、读寄存器组分别与控制单元、仿真单元之间的信号传递关系图。
具体实施方式
将本发明应用于智能卡仿真调试系统中,处理主机与控制单元相连,控制单元与仿真单元通过本发明接口连接,仿真单元通过其所设的接触卡接口或非接触卡天线与外部读卡装置交互数据,如图1所示。
参看图2和图3,本发明接口包括地址线一1、地址线二2、数据线一3、数据线二4、时钟输入线一5、时钟输入线二6、采用控制单元系统时钟的写寄存器组7、采用仿真单元系统时钟的读寄存器组8、地址译码电路一9及地址译码电路二10。接口中部分线路的功能如表1所示。
名称 |
方向(相对于控制单元) |
功能定义 |
data[7:0] |
双向 |
数据总线 |
rd_n |
输出 |
读信号,低有效 |
wr_n |
输出 |
写信号,低有效 |
addr[6:0] |
输出 |
地址线 |
表1
地址线一1和时钟输入线一5来自控制单元,地址线二2和时钟输入线二6来自仿真单元,数据线一3、数据线二4分别与控制单元、仿真单元双向通讯。地址线一1通过地址译码电路一9连接到写寄存器组7,地址线二2通过地址译码电路二10连接到写寄存器组7。写寄存器组7接收控制单元发出的各种控制信号和数据,并把控制信号和数据发送给仿真单元。读寄存器组8接收仿真单元发来的数据和响应信号,并把数据发送给控制单元。写寄存器组7包括控制寄存器71、地址寄存器72、写数据寄存器73、写调试寄存器74和写握手寄存器75。控制寄存器71存储控制单元写入的控制参数,地址寄存器72存储控制单元要访问的仿真单元的地址,写数据寄存器73、写调试寄存器74和写握手寄存器75分别存储控制单元写入的数据、调试信号和握手开始信号并输出到仿真单元。读寄存器组8包括读数据寄存器81、读调试寄存器82和读握手寄存器83。读数据寄存器81和读调试寄存器82分别存储仿真单元写入的数据和仿真调试的结果并输出到控制单元,读握手寄存器83写入仿真单元传送的握手结束信号。上述寄存器的功能如表2所示。
译码地址 |
名称 |
寄存器组 |
名称 |
功能 |
0 |
W_ADDR |
(7) |
地址寄存器 |
存储控制单元要访问的仿真单元的地址 |
1 |
W_DAT |
(7) |
写数据寄存器 |
控制单元写入的数据,仿真单元读出 |
2 |
CON |
(7) |
控制寄存器 |
控制单元写入的控制参数 |
3 |
W_DEBUG |
(7) |
写调试寄存器 |
控制单元写入的调试信号 |
4 |
W_SHAKE |
(7) |
写握手寄存器 |
控制单元写入的握手信号 |
5 |
R_DAT |
(8) |
读数据寄存器 |
控制单元读出的数据,仿真单元写入 |
6 |
R_DEBUG |
(8) |
读调试寄存器 |
控制单元读出的调试信号 |
7 |
R_SHAKE |
(8) |
读握手寄存器 |
控制单元读出的握手信号 |
表2
表3是表2中控制寄存器CON的定义。
R/W(D7) |
备用(D6-D3) |
Se12(D2-D0) |
读写选择高为读低为写 | |
仿真单元处理器地址空间选择:000程序地址选择001内部数据地址选择010外部数据地址选择011特殊功能寄存器选择100处理器程序计数器(PC)选择101断点地址选择 |
表3
表4是表2中写调试寄存器W_DEBUG的定义。
D2 |
D1 |
D0 |
Step_n |
Stop_n |
bpdis |
表4
表5是表4中写调试寄存器W_DEBUG的功能组合。
step_n |
stop_n |
bpdis |
功能 |
0 |
0 |
X |
程序单步运行 |
0 |
0 |
X |
停止运行 |
X |
1 |
0 |
全速运行,遇断点停止 |
X |
1 |
1 |
全速运行 |
表5
本发明接口使用时包括数据交换的操作和仿真调试的操作,其中数据交换的控制步骤为:
①控制单元向接口中的控制寄存器71写入控制信息;
②控制单元向接口中的写数据寄存器73写入数据;
③控制单元向接口中的写握手寄存器75写入握手开始信号,并传递给仿真单元;
④仿真单元收到握手开始信号后,分别从控制寄存器71和写数据寄存器73中读入相应的控制信息和数据,执行数据交换操作;
⑤仿真单元在数据交换完成后向接口中的读数据寄存器81写入交换后的数据,并向接口中的读握手寄存器83写入握手结束信号,数据交换操作结束。
其中仿真调试的操作步骤为:
①控制单元向接口中的写调试寄存器74写入调试信号,设置其中的单步、停止、断点、禁止等仿真调试程序;
②控制单元向接口中的写握手寄存器75写入握手开始信号,并传递给仿真单元;
③仿真单元收到握手开始信号后,进行相应的仿真调试操作;
④仿真单元在仿真调试完成后向接口中的读调试寄存器82写入仿真调试的结果,并向接口中的读握手寄存器83写入握手结束信号,仿真调试操作结束。