引 言
随着片上系统(SoC,System on Chip)时代的到来,包括复杂可编程逻辑器件(CPLD,Complex ProgrammableLogic Devi(e)和现场可编程门阵列(FPGA,Field Programmable Gate Array)的可编程逻辑器件(具有在系统可再编程的独特优点),应用越来越广泛。这给用于可编程逻辑器件编程的下载电缆提出了更高的要求。
本文研究基于IEEEll49.1标准的USB下载接口电路的设计及实现。针对Altera公司的FPGA器件Cy-ckone,通过分析它的边界扫描测试结构和各种JTAG指令,研究它的编程过程和编程特点,并提出设计方案。在接口电路硬件设计中,选用FTDI公司的USB控制芯片FT2蛎BM,实现USB物理层和链路层协议的解析;Altera公司的可编程逻辑器件EPM7064实现接口逻辑。与传统的基于PC并口的下载电缆相比,本设计的USB下载接口电路具有支持热插拔、体积小、便于携带、降低对PC硬件伤害、编程速度快等明显优点。
目前已开发的USB下载线一般需要在主机端另行设计软件来控制与下载线及目标器件之间的通信和数据传送;但是这样不仅繁琐,而且可能由于PC机操作系统的不同而影响兼容性。本文讨论的USB下载线能在A1tera公司的QuartusII开发环境下直接使用,无须在主机端另行设计通信软件。
1 系统结构及工作原理
接口电路的整体结构框图如图l所示。由于USB下载电路涉及了IEEEll49.1标准和USB协议,所以接口电路主要包含两大部分。一部分是USB接口,它连接主机和可编程逻辑器件,主要功能是进行USB和并行I/O口之间的数据格式转换,用USB控制芯片实现。另一部分是JTAG接口,它连接USB控制芯片和需要编程的逻辑器件,主要功能是进行并行I/O口和JTAG之间数据的转换,转换逻辑通过对可编程逻辑器件进行设计来实现。其他还包括一些必要的时钟电路和电压转换电路。
从主机传来的USB数据,由USB控制芯片转换为8位并行数据,经数据总线送到CPLD的可编程I/O引脚。CPLD的数据也可以通过数据总线送回USB控制芯片,然后转换为USB的数据格式传回主机。CPLD收到USB控制芯片传送来的数据后,对数据进行解析,然后转换为符合IEEEll49.1标准的编程数据和指令,从TCK、TMS和TDI串行输出到要编程的可编程逻辑器件。从可编程逻辑器件返回的符合IEEEll49.1标准的校验数据从TDO串行输入到CPLD,转换为8位并行数据传送给USB控制芯片,最后返回主机进行校验。[page]
USB控制芯片FT245BM负责解释USB协议,完成双方数据通信。其内部有USB协议引擎,并且集成的电平转换器使FIFO和控制信号能与电压为5 V、3.3 V的逻辑器件接口。USB接口电路原理如图2所示。
2 对目标器件的配置过程
对目标器件的配置流程如图3所示。
(1)识别USB下载接口
Quanus II编程器通过PC的USB接口向FT245BM依次发7e、7f、7c三个数据。FT245BM经PC的USB接口向编程器依次返回3个数据03。在编程器收到返回的3个03以后,编程器就识别此USB下载接口电路为它的下载硬件平台。
(2)测试BST电路
测试包括以下几个方面:
复位测试;
指令寄存器移位测试;
标志寄存器移位测试。
(3)下载编程数据
这个步骤把所有的编程数据从PC下载进可编程逻辑器件的配置存储器。因为这一步骤下载的编程数据庞大,所以下载时采用特快模式,并且不进行校验,避免影响下载速度。下载选用的指令是Ahcra公司自己定义的DOWNLOAD指令(00 0000 0010)。
(4)内建自测试
内建自测试是在电路内部建立测试生成、施加、分析和测试控制结构,使得电路能够测试自己。
(5)校验器件的IDCODE
在整个编程流程结束以前,再一次校验器件的ID—CODE,确认器件的BST电路在下载编程数据后足否工作正常。这一步的过程和标志寄存器移位测试完全相同。
(6)返回测试逻辑复位状态
保持TMS为高6个TCK周期,使TAP控制器进入测试逻辑复位状态,并且让TMS保持为高电平,以保持测试逻辑复位状态。这样器件的测试逻辑失效,器件的核心逻辑开始正常工作。