关 闭

新闻中心

EEPW首页>工控自动化>设计应用> 基于AMBA总线的智能卡控制器设计

基于AMBA总线的智能卡控制器设计

作者: 时间:2009-12-22 来源:网络 收藏

  块传输(如图5所示)的接收过程和字符传输类似,按照起始位、8 b数据位的状态机接收数据。一个字节接收完毕后返回IDLE,当没有发送任务时就进入下一次起始位等待。一个字节数据发送完毕后有若干个ETU的保护时间,然后进入Prepare状态准备发送下一个字节数据。当所有数据发送完毕后,系统维持一个块保护时间BGT(Block Guard Time),然后进入IDLE等待新任务。

  3.3 读写数据缓冲器模块

  由于APB上连接多个功能模块,如USB,UART等都需要占用进行数据传输,只能通过发出请求在有限时间占有总线。这使得在进行读写操作时会申请不到总线从而来不及存储已收到的数据或者来不及获取新的发送数据,增加读写数据缓冲器实现数据暂存可以很好地解决这个问题。缓冲器采用宽度为8位,深度为16的同步FIFO。该FIFO通过在最高位额外设置1 b来判断空/满标志位。当读写指针的8 b数据位和1 b最高位都相同时,FIFO为空。当读写指针的8 b数据位相同并且1 b最高位相反时,FIFO为满。根据FIFO的空满状态来请求或停止新的数据。

  3.4 APB总线接口模块

  ARM内核通过APB总线读写,完成了对寄存器的设置、中断状态的读取以及收发数据的读写,读写时序需要符合APB总线协议。

  系统通过总线接口模块设置了工作频率,传输方式、编码方式、时钟转换因子、波特率调整因子。当解析出智能卡为异步半双工字符传输模式时,设置字符发送完毕后的保护时间和最大等待时间。当解析出智能卡为异步半双工块传输模式时,设置块之问保护时间,最大等待之间,以及块内字符间的最大等待时间。系统按照上述设置工作。

  系统在设定的参数下完成对接收FIFO的读取和对发送FIFO的写人,并且发出读写使能信号控制FIFO读写。

  在收发控制模块产生中断后,对中断状态寄存器设置并交由软件处理。

  4 仿真结果及FPGA验证

  智能卡控制器采用RTL级的Verilog实现,在系统仿真过程中编写智能卡仿真模型。使用Synopsys公司VCS对控制器进行功能仿真和验证。对智能卡的数据收发波形如图6所示。

  从仿真结果可以看出,智能卡控制器符合ISO7816-3协议,可以对智能卡进行复位及读写操作。

  在FPGA验证中,采用Altera公司的StratixⅡ芯片。将智能卡控制器、总线等模块的RTL代码烧录到ARM开发板的FPGA中,并且将外接一块带有智能卡插槽的扩展板与ARM开发板连接。使用ARM的调试软件ARMulator对控制器进行功能测试。测试结果表明该控制器可以成功完成对智能卡的复位和数据读写操作。

  5 结 语

  根据上述VCS仿真和FPGA验证的结果,说明该智能卡控制器已经达到功能要求,实现了ISO/IEC7816-3传输协议。利用Design Compiler对该模块进行综合并编写脚本对芯片的面积和时序进行优化,最终逻辑单元为1 368 cells,符合目标,实现了对智能卡的数据复位及收发操作。


上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭