基于USB 2.0的边界扫描控制器设计
扫描二维码
随时随地手机看文章
摘要:系统采用CY7C68013及其配置芯片EEPROM完成USB接口部分的功能,采甩ACT8990完成边界扫描部分的功能,为完成部分逻辑功能及对此控制器设计的部分电路加密,采用CPLD EPM3032A实现。接着,给出了整个控制器的软件设计方案,具体讨论了CY7C68013的固件设计,以及利用WindowsDDK开发包开发固件装载驱动程序及控制器驱动程序的方法。调试结果表明,研制的边界扫描控制器功能正常,符合设计要求,具有即插即用、无需外部供电、连接简单可靠等优点。
关键词:边界扫描;USB2.0;JTAG;WDM驱动程序
0 引言
随着超大规模集成电路(VLSI)、表面安装器件(SMD)、多层印制电路板(MPCB)等技术的发展,使得统一测控系统综合基带印制电路板上电路节点的物理可访问性正逐步恶化,电路和系统的可测试性急剧下降,常规测试面临挑战。通过研究VLSI芯片资料表明,大多数VLSI芯片都带边界扫描结构,如果将边界扫描技术应用到板级测试中,无疑将对电路板的连接故障和器件失效的准确诊断起到非常重要的作用。边界扫描测试主控系统是实现这一技术必不可少的硬件系统。从JTAG(Joint Test Action Group)提出该技术至今的十几年中,边界扫描测试技术已得到了一些应用,并将有广阔的应用前景。本设计在分析边界扫描测试受控系统工作机制的基础上提出一种基于USB总线的边界扫描测试主控系统的设计方案和实现电路。此方案具有结构简单、成本低、便携性的特点。
1 边界扫描结构及基本原理
1.1 边界扫描技术的基本原理
边界扫描技术的主要思想是通过在芯片管脚和芯片内部逻辑电路之间增加由移位寄存器构成的边界扫描单元,实现对芯片管脚状态的串行设定和读取,使管脚具有可控性和可观测性。由于移位寄存器允许测试数据移位、更新溯试和捕获锁存,因此它不仅可以用来测试单独的一个芯片,而且可以对电路板进行互连测试。图1给出了边界扫描通路示意图。其中,边界扫描单元在主IC的测试数据输入端(TDI)和测试数据输出端(TDO)之间形成了一个扫描通道,当IC处于正常工作状态时,输入输出信号自由通过边界扫描单元,从正常数据输入端(NDI)到正常数据输出端(TDO)。图1边界扫描通路示意图
1.2 边界扫描物理结构
边界扫描测试的基础是边界扫描测试总线和设计在器件内的边界扫描结构,边界扫描测试总线由TDI(测试数据输入)、TDO(测试数据输出)、TMS(测试模式选择)、TCK(测试时钟)、TRST(测试复位)5条线构成,主要完成测试向量输入、测试响应向量输出和测试控制功能。器件内边界扫描结构主要由TAP测试存取口、TAP控制器和必需的寄存器组成。TAP控制器接受来自边界扫描测试总线的命令,控制边界扫描单元的行动,实现对器件管脚状态的设定、读取和隔离。
1.2.1 寄存器
JTAG边界扫描寄存器至少应包括边界扫描寄存器(DR)、指令寄存器(IR)和旁路寄存器。
(1) 边界扫描寄存器。边界扫描寄存器用于存放测试数据和测试响应数据,它由串行移位级和并行锁存级组成。边界扫描寄存器的工作方式为:加载到TDI的测试数据在TCK的上升沿串行移人边界扫描寄存器,寄存器原来内容在TCK的下降沿被串行移出到TDO,移入移位寄存器的数据可以被锁存到并行输出锁存器中;对应于输出引脚的并行锁存器可并行输出到器件的引脚,移位寄存器可以并行捕获到器件的逻辑输出;对应于输入引脚的并行锁存器可以并行输出到器件的内部逻辑,移位寄存器可捕获输入引脚信息。
(2) 指令寄存器。指令寄存器由串行移位级和并行锁存级组成,其位数由芯片生产厂家定义。常用的指令包括EXTEST、BYPASS、SAMPL-E、INTEST等。TAP控制器根据指令寄存器中选择的指令不同选择将指定的寄存器连接到TDI和TDO之间。
(3) 旁路寄存器。旁路寄存器由一位移位寄存器组成,当其被选通时,直接连接到器件的TDI和TDO之间从而获得最短的扫描路径。旁路寄存器的主要作用有:a.当集成电路IC不需要数据寄存器的扫描存取时将其从扫描链上脱离从而缩短边界扫描结构的扫描通路长度;b.在测试期间,使集成电路IC脱离某种工作模式。
1.2.2 TAP控制器
TAP控制器控制整个边界扫描机制的操作,其核心是16个工作状态转换机制,状态转换由TCK采样TMS的值来实施。
2 硬件设计
控制器硬件可分为两部分:一部分是USB控制芯片,另一部分是JTAG主控芯片,控制器利用USB控制芯片实现USB协议与PC机进行通信,同时通过操作JTAG主控芯片,使其输出到JTAG总线上的数据符合IEEE1149.1标准,从而达到由PC机控制JTAG总线的目的。控制器硬件结构如图2所示。
公司生产的EZ-USBFX2芯片CY7C68013是一种USB接口控制芯片,CY7C68013芯片包括一个加强型的8051处理器、一个串口引擎(SIE)、一个USB2.0收发器、8.5kB片上RAM、4kB的FIFO存储器以及一个通用可编程接口(GPIF)。其GPIF可与任何ASIC或DSP进行连接,它还支持现行所有通用总线标准。本系统USB接口芯片既作为数据传输的中介,同时完成和便携式计算机间的控制信息的交换和控制过程的执行。传输模式:在USB协议定义的4种传输模式中,批量传输和等时传输的速度较快。但批量传输具有差错校验,可以保证数据传输的正确性。在本方案中,因为对数据的准确性要求较高,故采用批量传输方式。采用从PC端下载8051运行代码的方式。这样系统软件修改和功能升级更加灵活,也省掉了外接ROM,使电路更加简洁、可靠。
选择TI公司专门针对系列DSP的边界扫描芯片ACT8990。ACT8990的内部结构主要由队列管理模块、主机模块、串行模块、事件管理器、计数器、命令管理以及读写总线组成。
3 软件设计
本控制器的软件设计包括:固件程序、驱动程序和CPLD逻辑代码以及CY7C68013的配置芯片EEPROM的代码。软件部分包括测试向量生成及分析模块、边界扫描测试运行模块和USB数据传输驱动三部分。测试驱动程序作为下位机程序驻留在边界扫描控制器中。边界扫描测试运行模块和测试向量生成及分析模块作为上位机程序主要包括:测试文件分析、测试向量生成、上下位机通讯、响应向量分析和辅助功能模块。
3.1 测试文件分析
测试软件运行时首先检测文件库中芯片边界扫描描述文件是否齐全,然后进行测试文件加载。测试执行时将被测板网络表文件(Protel软件在设计电路图时生成的标准文件)加载到系统中,分析该文件并生成测试板芯片信息文件和芯片间管脚互连网络节点文件。根据芯片在边界扫描链路上的顺序将芯片名称、封装形式列入到测试板芯片信息文件中。网络节点文件中则给出两个芯片间的网络节点列表以及对应该节点的两个芯片管脚号码,并根据边界扫描描述文件中的定义将互连节点中的TMS、TCK、TDI、TDO节点剔除。生成的这两个文件是供测试向量生成和响应向量分析模块使用。边界扫描描述文件由IEEE1149.1标准定义,就一般测试而言分析该文件主要获得芯片物理管脚号码和边界扫描寄存器位置的对应关系(边界扫描寄存器中靠近TDO的那一位定义为第0位)、边界扫描测试的各种指令、指令寄存器和边界扫描寄存器的描述以及芯片管脚的输入输出类型。
3.2 测试向量生成
进行边界扫描测试时首先应当检验边界扫描链路连接和工作状态是否正常;边界扫描链上的芯片是否正确安装,即执行完整性测试。完整性测试通过后才能允许执行进一步的测试内容。完整性测试是通过捕获扫描链路芯片在TMS状态机经过CAPTURE-IR状态时装载到指令寄存器中的数据以及读取标志寄存器里的芯片ID码与边界扫描描述文件的正确代码进行比较来完成的,在读取指令寄存器捕获值的同时可以通过TDI将下一步的测试指令写入,以节省测试步骤。图3给出了测试软件的流程图。
电路板芯片间的互连测试是边界扫描测试技术的主要测试内容,主要用来检测测试板上各个网络连接是否正常,是否存在固定逻辑故障、开路故障、桥接短路故障和其他特殊故障。根据测试需要,兼顾测试时间和测试精度两方面的要求,在软件中采用了5种不同的测试向量生成算法(分别为改良计数序列算法、计数补偿算法、移位—算法、等权值抗误判算法、极小权值—极大相异性算法)。根据主界面选择的测试要求,将扫描链上不需要进行测试的芯片送入旁路指令,而被测试芯片则送入外测试指令。以此准则生成互联测试指令代码,串行加载到链路芯片的指令寄存器上。互连测试向量则需要根据主界面选择的算法和芯片互连网络节点文件生成。为了保证生成的测试向量能够准确地加载到互连网络节点上,需要对生成的初级测试代码进行处理。变换思想是根据芯片物理管脚和边界扫描单元的对应关系,将生成的对应网络节点管脚的测试数据填入到其在边界扫描链路中对应的位置,形成可加载到扫描链上的测试向量。器件的功能测试主要包括对具有边界扫描结构的芯片或电路板进行功能测试以及对不具有边界扫描结构的器件进行簇测试。其测试数据和测试响应数据都是根据芯片逻辑定义好的。对于簇测试芯片,需要用它周围的具有边界扫描结构的芯片的边界扫描单元作为簇测试芯片的虚拟边界扫描单元,来进行测试数据的加载和捕获。因此网络节点文件不能通过查找网络表文件自动生成,需要自己定义,其格式与执行互连测试时生成的文件相同。读取文件中预先定义的测试向量并变换成能最终加载到链路上的测试向量的方法也与互联测试相同。其他进行采样测试、机内自检测试时只需要输入测试指令分析测试结果,并不需要生成额外的测试数据。
3.3 测试响应分析及故障诊断
测试响应分析及故障诊断模块对测试响应数据进行分析,以确定目标电路板有无故障、故障位置和故障类型,并将分析结果送给主界面进行显示。进行故障分析时首先要对测试响应向量进行初处理,剔除垃圾数据,然后将有效的响应数据代入故障诊断函数进行分析。进行完整性测试故障诊断时,利用芯片列表信息文件和边界扫描描述文件中的定义将响应向量中对应于各个芯片的CAPTURE-IR值和IDCODE值分析出来与标准值进行比较分析,就可以给出故障判断。进行互联测试故障诊断时,需要根据芯片物理管脚和边界扫描单元的对应关系将对应于网络节点文件中网络管脚的测试数据从响应向量中提取出来。然后根据分析规则和输入的测试向量分析出存在固定逻辑故障、开路故障、桥接短路故障和特殊故障的网络号码及其对应的互连芯片管脚号码,并分析给出可能存在的误判或混淆的网络。器件的逻辑功能故障诊断和簇测试故障诊断方式与互联测试基本相同,也需要把对应测试管脚的响应向量从整个测试响应向量中提取出来,与标准的测试结果进行比较从而确定器件的逻辑功能是否正常。
4 测试结果
(1) 扫描链路的测试。先用移位指令命令将取样预加载指令(SAMPLE/PRELOAD)送出,然后用移位数据命令将一系列1010…10测试矢量序列扫入到扫描链路中,同时将其扫回到主控计算机进行比较,判断扫描链路是否完好;
(2)获取器件标识。用移位指令命令对两片支持边界扫描测试功能的芯片发器件标志代码(IDCODE)指令,或对一片CPLD发旁路指令(BY-PASS),另一片发器件标志代码(IDCODE)指令,然后用移位数据命令将32位器件标志从器件标志寄存器扫出,以获得被测器件的器件标志;
(3)互连测试。先用移位指令命令将取样预加载指令(SAMPLE/PRELOAD)送出,然后用移位数据命令将用于互连测试的测试矢量送人芯片1中,随后用移位指令命令将外测试指令(EXTEST)送出,再用移位数据命令将测试响应从芯片2中扫回到主控计算机中,并与正确的响应进行比较,以对所模拟的四路短路故障、开路故障进行诊断并定位。上述测试均得到了正确的结果,此外,在进行扫描链路的测试中,还对FIFO模块支持不间断全速扫描进行了充分的验证。
5 结束语
边界扫描机制的出现是测试及可测试性设计思想的一次飞跃,它提供了一种完整的、标准化的VLSI电路可测试性设计方法。它不仅能对传统的测试问题提供标准和有效的解决方案;同时还能提高系统各级的可测试性。随着边界扫描技术的发展以及日益广泛的应用,开发边界扫描测试系统具有很高的现实意义和市场价值。而边界扫描测试软件作为边界扫描测试系统的操作部分更需要通过合理的设计使测试过程自动化、测试对象通用化、诊断结果精确可靠,更好地发挥边界扫描测试技术的优点,推动边界扫描测试技术的推广和应用。