摘要:MC33560是安森美半导体公司为智能卡读/写器应用而设计的电源管理与接口集成电路。它通过与微控制器的接口可以对任意类型的智能卡或存储卡电源进行管理。文中介绍了MC33560的主要特点、引脚功能和工作原理,给出了基于MC33560的智能卡读写器应用电路。
1 MC33560的主要特点
MC33560是专门为智能卡读/写器应用而设计的接口集成电路。它能通过简单灵活的微控制器接口来管理任意类型的智能卡或者存储卡。该器件具有待机省电特性而且所需外部器件很少,因而可以广泛用于功耗要求比较严格的嵌入式手持设备中。MC33560的主要特点如下:
●与ISO7816-3标准100%兼容;
●具有很宽的电池供电电压范围(1.8V<Vbat<6.6V);
●内含DC/DC转换器,可对Vcc电源电压进行编程,从而为3V或5V智能卡提供工作电压;
●具有电源管理功能,待机模式下的静态电流非常低;
●内含可编程卡时钟产生器;
●可为并行耦合器操作提供片选功能;
●所有卡输出均具有限流和短路保护功能。
2 MC33560的引脚功能
MC33560具有SO-24和TSSOP-24两种封装形式,全部管脚可以分为控制器接口引脚、智能卡接口引脚及电流限制和热保护引脚等三部分。其引脚排列见图1。
2.1 控制接口引脚功能
2脚(PWRON):内部DC/DC转换器启动操作输入引脚,当器件处于编程模式时,通过该脚可对输出电压开关进行设置。
3脚(INT):该脚可用于指示智能卡电流状态的改变。当进行卡插拔时,该脚的逻辑电平为0;而在CS或PWRON端信号的上升沿,该脚信号被复位为1。在多路应用时,可将两个或两个以上的INT端连在一起与微控制器进行连接并插入检测槽中。
4脚(RDYMOD):该脚为双向端口,其输出为三态?输入采用斯密特触发方式。当RDYMOD被强制为0时,MC33560可通过CS端口上的一个负跳变来将器件设置为编程方式。
5脚(CS):片选引脚。该脚为高时,MC33560的2、6、7、10、20和21脚无效;在CS信号的下降沿,器件进入编程模式。
6脚(RESET):复位引脚。当CS为低时,该脚信号可对14脚上的卡复位信号进行控制;而当CS为高时,该脚信号将被锁定。实际中,该引脚也可以用于编程模式。
7脚(IO):智能卡与微控制器之间的串行I/O信号传输引脚。可与微控制器的串行I/O端口相连。当CS为低时,该脚上的电平传输有效;CS为高时,该脚信号被锁定。
8脚(INVOUT):该脚信号实际上是9脚ASY-CLKIN信号经缓冲和反转后的时钟信号。
9脚(ASYCLKIN):该脚用于连接主微控制器时钟或其它时钟信号。该脚信号可反馈到内部时钟选择电路并以相同的频率传输到CRDCLK端口,也可以通过编程将其二分频或四分频。
10脚(SYNCLK):该脚一般连接微控制器的串行接口时钟信号,以用作智能卡的同步通信。该脚信号可反馈到内部时钟选择电路并通过适当的编程传输到MC33560的CRDCLK端口。在编程模式,该脚信号将在CS端为高时被锁定。
20,21脚(C8,C4):除编程模式外,这两个引脚与I/O引脚具有基本相同的输入输出功能。它们可与微控制器的一个双向端口相连。当CS为低时,该脚的电平传输有效;CS为高时,该脚信号被锁定。
2.2 智能卡接口引脚功能
11脚(CRDIO):该脚一般连接到卡连接器的串行I/O引脚;
14脚(CRDRST):使用时应将该端连接到卡连接器的RESET端;
15脚(CRDCLK):时钟选择电路输出,一般与卡连接器的CLK端相连;其时钟选择可在RDYMOD下变为0时通过2、6和7脚进行编程设置;
16,19脚(CRDC4,CRDC8):通用输入输出口,与CRDIO端口的功能基本相同,通常被分别连接到卡连接器的C4和C8引脚;
17脚(CRDDET):卡连接器的卡检测开关连接端口。该端口上的卡检测相位由18脚决定,使用时应在该脚上接一个上拉或下拉电阻;
18脚(CRDCON):该脚可连至PGND、VBAT或微控制器的其它输出端口。当17脚为0时,该脚为逻辑1;反之,该脚为逻辑0。
2.3 电流限制和热保护引脚功能
1脚(PGND):功率地,应通过适当的布线技术连接到CRDGND端;
12脚(CRDGND):信号地;与卡连接器的地端相连,该端电平可作为所有模拟和数字信号的参考地点;
13脚(CRDVCC):卡电源引脚,设计时可连到卡连接器的VCC端。该端电平可作为11、14、15、16和19脚的高电平参考;
22脚(L1):DC/DC转换器外部电感连接端;
23脚(VBAT):供电电压端口,为2脚到10、17、18、20和21脚高电平逻辑参考。当VBAT电压低于最低阀值时,MC33560的操作被禁止;
24脚(ILIM):该脚可以和PGND相连,也可以通过一个电阻和PGND脚相连,还可以悬空,具体接法可由智能卡线圈所提供的峰值电流来决定。
图3
3 MC33560的工作模式
MC33560共有待机模式、编程模式、激活模式、事务处理模式和空闲模式等五种工作模式,其中待机模式为无卡时的工作模式;编程模式为对MC33560进行编程操作时的模式;而在激活模式下,用户可以查询卡的状态并进行DC/DC转换;在事务处理模式下?MC33560会保持加到卡上电源和选中的时钟信号,并根据电源电压在微处理器和卡之间进行IO、RESET、C4、C8等引脚的信号电平转换;空闲模式指的是卡已上电,但没有进行数据传输时的状态。图2所示是五种工作模式之间的转换关系图。
4 应用设计
4.1 硬件应用电路
图3所示是用MC33560智能卡读写器接口电路和MC68HC705C9微控制器构成的智能卡读写器的硬件应用电路。
4.2 软件编程
在了解了MC33560的硬件工作原理后,接下来的工作就是程序设计。下面是对MC33560进行编程时的部分程序源代码:
static int 33560 programming mode?int status
{
CLEAR_RDYMOD; //inter the programming mode
SET_CS;
Delay;
CLEAR_CS;
/** VCC and Clock of Card programming **/
switch(status)
{
case 0:
//SYNCLK 3v
{
CLEAR_PWRON;
CLEAR_RESET;
CLEAR_DATAIO;
break;
}
…………… // case 1---case 7
} //finished program
Delay;
SET_CS;? //lock the value
SET_RDYMOD; //out of this mode
return 0;
}
设置MC33560进入待机模式的程序代码如下:
static int 33560_standby_mode()
{
33560_reset();
CLEAR_CS;
CLEAR_PWRON;
SET_CS;
return 0;}
对于激活模式,当MC33560被选中后,RDYMOD引脚将变为输出,此时可以查询MC33560的状态。如果发现有卡,则启动DC/DC转换器。然后继续查询RDYMOD引脚以检测是否成功进行了DC/DC转换。该过程的流程图如图4所示。下面是其程序代码:
SET_CS;
SET_PWRON;
Delay;
CLEAR_PWRON;
CLEAR_RESET;
CLEAR_CS; // 当 CS=0时,可以查询33560
switch(RDYMOD)
{
case 0:
33560_standby_mode(); //无卡,进入待机模式
break;
default:
SET_PWRON; // 准备检查DC/DC转换是否成功
loop1:
if(RDYMOD==0)
{
delay; // DC/DC转换过载
goto loop1;
}
SET_CS; //转换ok,进入事务处理模式
CLEAR_CS;
break;
}
5 结束语
在实际应用时,由于尖峰信号,可能会导致错误的INT信号,所以微控制器应插入一个毫秒级的延时,以在PWRON置高时保持卡触点在卡连接器上的稳定。当检测到卡被取出时,卡检测器会激活掉电时序并禁止转换器的转换,通常可以加50μs的延迟。