1 引言
自动测试系统ATS(Automatic TEST System)集成测试所需的全部激励与测量设备,计算机高效完成各种模式的激励及响应信号的采集、存储与分析,对被测单元进行自动状态监测、性能测试和故障诊断。总线是ATS的重要组成部分,是计算机与测试硬件内部及外设传递信息的公共通路,其性能参数直接影响ATS整体的功能实现和性能指标。
通用串行总线USB(Universal Serial Bus)主要用于PC与外围USB设备互联。其物理连接是一种分层的菊花链结构,最多支持5 Hub层及127个外设。该结构独立性强。抗干扰性强、传输速率高、占用资源有限、使用灵活、支持热插拔,因此USB技术逐渐成为现代ATS数据传输的发展趋势。
这里通过Cypress公司的USB单片机CY7C68013A的PE和GPIF接口实现计算机与测试控制器件FPGA和缓冲FIFO的高速数据通信,完成ATS测试指令信号和数据的下载,自检和反馈数据的上传功能,实现测试技术的智能化。重点从USB硬件和固件代码设计阐述在测试系统数据传输过程中 USB技术的应用。
2 USB接口通信工作流程
USB具有灵活的1二作流程,如图1所示。
图1中,USB设备的工作流程从设备连接→上电→复位→分配地址→配置操作→执行固件代码,6大工作状态,这些状态在USB主机的控制下实现状态间的转换和总线的访问。USB设备随时根据总线活动情况判断是否进入或退出挂起状态,节省USB系统的功耗。
从图1分析可知,USB通信包括USB系统应用软件、设备及总线驱动程序和USB固件3层。应用软件设计由2部分组成:动态链接库和应用程序。动态链接库负责与内核态的USB功能驱动程序通信并接收应用程序对USB设备I/O的各种操作请求,应用程序调用Win32 APl函数DeviceToCon-trol向设备发出命令;USB设备驱动程序通过总线驱动程序发出输入输出请求(IRP),实现对USB设备信息的发送和接收;总线驱动程序负责总线检测、电源管理和USB事务处理,固件程序实现FX2器件的初始化设置,设备请求处理,电源管理和外围通信功能,是整个通信架构的核心。在测试系统中,通过固件代码建立数据物理通道并实现通信协议,用户可通过测试软件对USB设备进行功能控制,实现数据的有效通信和测试任务高效、可靠地完成。
3 测试系统USB硬件电路原理
CY7C68013A(简称68013A)集成USB2.0收发器、串行接口引擎(SIE)、增强8051内核和可编程外围接口,提供一个高效的USB2.0解决方案,它可配置为3种数据通信模式:端口、GPIF和Slave FIFO模式。本设计利用GPIF方式快速、灵活等特点,有效地解决了端口方式下USB2.0设备数据传输速度瓶颈,大大提高了数据的传输速率。FX2专门为GPIF提供外围接口信号,如8/16位数据线、CTL、Ready信号及地址线。从通用性、低功耗等方面考虑,将68013A的PA,PB,PD和 PE 4个I/O端口,6个CTL[5:0]和6个RDY[5:0]与FIFO或FPGA相连实现数据通信和握手、控制等功能。
图2为GPIF方式硬件连接框图,其中IFCLK是双向时钟信号,当配置为输出时,IFCLK被FX2驱动为30 MHz/48MHz:当配置为输入时,时钟范围为5~48 MHz;GPIFADR(9)信号为外部设备提供地址线,在总线上地址值是自增的;FD[15:0]是USB主机通过FX2和外部设备进行数据传输的数据线,可配置成8位或16位;CTL[5:0]为外设控制信号,如读写选通、使能等;RDY[5:0]为外设状态检测信号,如外部FIFO的空、满等。
整个系统的工作原理:主机通过应用软件设置将相应的测试指令和数据经USB总线下载到68013A内部FIFO中,按照同件代码配置相关寄存器、端口和中断,实现与FIFO和FPGA的数据通信。外部使用两片FIFO匹配数据传输速率,由外部控制信号RD(或RD2)/WR(或WR2)来控制数据的读/写。为防止数据的空读或写溢出,用标志端EF和HF标明FIFO状态。这种内外FIFO双缓冲设计为大容量、高速数据传输提供更大的缓冲空间和时序匹配。 FPGA从FIFO1接收数据的同时,按照从PE口收到的Status[7:0]指令,判断所接收数据的类型和职能,将数据传输到相应的测试调理和输出电路,执行相应操作,判断被测试对象的工作情况;如从PE端口收到的是自检命令,则将测试数据回采,判断系统自身工作情况。被测试对象反馈的信号和测试采集的数据,自检数据经FPGA数据融合处理,从FIFO2传到68013A的GPIF接收端口,所有CY7C68013A的内部数据和端口操作全部由固件程序描述。