西伯利亚新闻与中俄新闻!

忘记密码

智能卡控制器IP核的设计与实现

2016-12-20 10:28 作者: 来源: 本站 浏览: 674 次 我要评论智能卡控制器IP核的设计与实现已关闭评论 字号:

摘要: 本文介绍了一款兼容ISO7816-3协定的智能卡控制器IP核。该IP核能实现对智能卡的探测、电源治理、复位和读写控制等功能。文章侧重于介绍智能卡控制器采取Verilog说话实现数字逻辑的办法。 1、引言 跟着信息技巧的飞速成长,越来越多的处所请求对用户身份的辨...

本文介绍了一款兼容ISO7816-3协定的智能卡控制器IP核。该IP核能实现对智能卡的探测、电源治理、复位和读写控制等功能。文章侧重于介绍智能卡控制器采取Verilog说话实现数字逻辑的办法。
1、引言
跟着信息技巧的飞速成长,越来越多的处所请求对用户身份的辨认以及重要数据的安然存储。而智能卡(SmartCard)又称集成电路卡(Integrated Circuit Card 即IC卡),是具有高的靠得住性安然性和灵活性的数据承载设备,现已被广泛应用于当局、金融、电信、交通及公共事业等范畴。
智能卡控制器是连接智能卡和主控设备的桥梁,因为智能卡的应用赓续增长,越来越多的SOC芯片内嵌了智能卡控制器IP核。这种基于IP核的设计方法已成为IC设计的主流,这里重要介绍智能卡控制器IP核的数字逻辑实现办法以及其在硬盘加密芯片中的应用。
2、协定简介
这里仅对本文中要用到的部分协定内容作扼要解释,具体的协定内容请见参考文献1。
企业信息安全方案  智能卡共有八个触点,个中有效的就C1、C2、C3、C5、C6、和C7六个触点,具体见下表:
表1:智能卡触点
智能卡控制器是经由过程智能卡触点C7(I/O)与控制器进行半双工串行通信的,在每一时刻触点C7只有状况Z和状况A两种状况。
智能卡要传输一个字节(8个Bit)数据的要11个Bit位的时光宽度,鄙人表中被记成t1到t11。个中第一个时刻t1传输的Start位被称为肇端位;第二到第九个时刻,即时刻t2到时刻t9,传输的数据ba到bh为一个字节的八个位;时刻t10传送的pi位为奇偶校验位;最后一个时刻t11传输的Stop位被称为停止位,标记住一个字节(8个Bit)的数据传输完成。请见下表:
nfc安全芯片 表2:智能卡串行传输数据格局
3、微体系构造
3.1、接口旌旗灯号
该IP核接口重要分为CPU总线接口、中断旌旗灯号和智能卡控制接口,这里重要介绍一下有关智能卡控制的接口旌旗灯号,即连接或控制智能卡上有效触点的旌旗灯号,它们为:
1) 智能卡是否存在旌旗灯号IC_PRES:用于探测智能卡座上是否有智能卡存在,当有智能卡插入或拔出时,该旌旗灯号的电平产生跳变,本IP核可以或许探测该旌旗灯号的电平的变更,并以中断等方法申报给CPU;
2) 智能卡电源控制旌旗灯号IC_PWR:用于控制智能卡的电源VCC或VPP(触点C1或C6),用于打开和封闭智能卡电源;
3) 时钟旌旗灯号IC_CLK:同智能卡触点C3相连接,用于向智能卡输入必定频率的时钟旌旗灯号;
4) 复位旌旗灯号IC_RST:同智能卡触点C2相连接,用于向智能卡发出复位旌旗灯号;
5) 双向串行数据旌旗灯号IC_IO:同智能移动手机钱包卡触点C7相连接,用于实现与智能卡的双向数据通信。
3.2、模块和功能
智能卡控制器核内部有发送和接收模块(Transmitter and Receiver)、中断仲裁模块(Interrupt Arbitrator)、函数模块(Function Generator)、时钟模块(Clock Generator)、智能卡接口模块(Interface Device)和拜访存放器模块(Register Access Control)六大年夜模块,这些模块之间的关系见图1所示:
图1 ISO7816智能卡控制器模块构造图
重要模块功能及特点描述如下:
1). 发送和接收模块
发送和接收模块负责处理数据帧的发送和接收。发送模块是将FIFO发送队列中的数据照办设定的格局把并行数据转换为串行数据帧,并经由过程发送端口送出去。接收模块则监督接收端旌旗灯号,一旦出现有效开端位,就进行接收,并实现将接收到的异步串行数据帧转换为并行数据,存入FIFO接收队列中,同时检查数据帧格局是否有错。智能卡控制器的帧构造是经由过程LCR(Line Control Reg)存放器设置的,接收和传送器的状况被保存在LSR(Line Status Reg)存放器中。
2). 中断仲裁模块
当任何一种中断前提被知足时,并且在中断使能存放器(IER, Interrupt Enable Reg)中响应地位1,那么智能卡的中断请求旌旗灯号INT被置为有效状况。为了削减和外部软件的交互,智能卡控制器把中断分为四个级别,并且在中断标识存放器(IIR, Interrupt ID Reg)中标识这些中断。四个级其余中断按优先级级别由高到低的顺序分列为:智能卡插拔中断、接收线路状况中断、接收数据预备好中断和传送拥有存放器为空中断。
3). 函数模块
该模块产生智能卡的相干时序。经由过程向函数存放器(FR, Function Register)响应的地位入相干的参数来探测智能卡、治理电源和产生复位时序等。
4). 时钟模块
时钟模块产生响应频率的时钟供给智能卡,时钟的频率由CPU总线的时钟频率和写入时钟分频存放器(CDR, Clock Divisor Register)的值来决定,关系表达式如下:
fIC_CLK = fCPU /(2 * CDR)
5). 智能卡接口模块
该模块将相干旌旗灯号进行恰当的调剂,以便合适于IC智能卡的通信。
6). 拜访存放器模块
当智能卡控制器被总线控制器选中时,CPU可经由过程读或写操作拜访被地址线选中的存放器。
4、设计实现
这部分将对本智能卡控制器中重要模块的数字逻辑的实现办法一一作简单解释。
4.1、数据接收模块
在设计接收模块的过程中,关键是若何实现Receiver Shift的逻辑电路,下图是本智能卡控制器数据接收模块中有关Receiver Shift逻辑电路的主控状况转换图:
图2 接收模块主控状机
该状况机共有十个状况,个中重要状况是:状况1(REC_START)用来探测数据的肇端位Start;状况2(REC_BIT)用来接收数据ba到bh,构成一个字节;状况3(REC_PARITY)用来接收数据的奇偶校验位;状况4(REC_STOP)探测Stop位。
下面是该状况机控制有关逻辑读入数据的仿真波形图:
图3 接收一个字节数据的状况变换波形图
4.2、数据发送模块
同样, 对于发送模块的设计,重要问题也是若何实现Transmitter Shift的逻辑电路,下图是本智能卡控制器数据发送模块的主控状况转换图:
图4 发送模块主控状机
该状况机共有五个状况:状况1(SEND_START)用来发送数据的肇端位Start;状况2(SEND_BYTE)用来发送数据ba到bh;状况3(SEND_PARITY)用来发送数据的奇偶校验位;状况4(SEND_STOP)发送Sto安全芯片p位,最后状况机转入余暇状况0(SEND_IDLE)。
下面是该状况机控制有关逻辑发送数据的仿真波形图:
图5发送一个字节数据的状况变换波形图
4.3、函数模块
函数模块可以在软件控制下产生激活智能卡和封闭智能卡所需的相干时序。这里简单介绍一下本控制器在软件的指派下,激活智能卡的过程,见下面的波形图。
图6激活智能卡时的波形图
在该波形图中,旌旗灯号IC_PRES起首变低,注解有智能卡插入。接着智能卡控制器经由过程IC_PWR打开智能卡的电源。待电源稳定后,智能卡控制器经由过程IC_CLK向智能卡输出时钟旌旗灯号。同样,在时钟稳定后,智能卡控制器经由过程IC_RST向智能卡输出复位旌旗灯号。最后智能卡控制器在数据旌旗灯号IC_IO上探测到智能卡复位应答(ATR,Answer to Reset),如许就完成了智能卡的激活工作。
5.结论
本筹划所设计的智能卡控制器IP核,采取Verilog HDL说话,以较少的硬件价值,在本公司研发的硬盘数据加密芯片中,m2m技术成功实现了对智能卡密钥的读写控制,并且该筹划具有较强的灵活性,可以便利地移植到其它嵌入式应用体系中,具有较高的应用价值。

  ☞评论暂时关闭,有事请直接联系本站客服,谢谢!