关 闭

新闻中心

EEPW首页>工控自动化>设计应用> USB通信技术在自动测试系统中的应用

USB通信技术在自动测试系统中的应用

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

图2为GPIF方式硬件连接框图,其中IFCLK是双向时钟信号,当配置为输出时,IFCLK被FX2驱动为30 MHz/48MHz:当配置为输入时,时钟范围为5~48 MHz;GPIFADR(9)信号为外部设备提供地址线,在总线上地址值是自增的;FD[15:0]是主机通过FX2和外部设备进行数据传输的数据线,可配置成8位或16位;CTL[5:0]为外设控制信号,如读写选通、使能等;RDY[5:0]为外设状态检测信号,如外部FIFO的空、满等。

本文引用地址://m.amcfsurvey.com/article/202645.htm

整个系统的工作原理:主机通过应用软件设置将相应的测试指令和数据经总线下载到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的内部数据和端口操作全部由固件程序描述。

4 固件程序设计
68013A固件负责处理主机各种设备请求,控制68013A与外围电路FPGA进行数据传输,协调主机和FPGA 之间的通信。设计利用Cypress公司生产的EZ-USB固件程序框架,其中包括初始化、处理USB设备请求、中断和USB电源管理等任务,固件的编译在KeilμVision2的集成开发环境中进行。68013A固件设计流程如图3所示。该设计主要包括5个部分:fw.c(框架源文件)、 periph.c(用户任务调度函数文件)、dscr.a51(描述符表)、USBJmpTb.OBJ(中断跳转表)、Ezusb.lib(EZ_USB 库文件)。用户仅需对dscr.a51和pe-riph.c修改文件中部分代码即可完成USB设备的各种功能。periph.c文件通过调用任务分配、标准设备请求和中断处理等函数来处理USB事件。其中主要修改TD_Init()和TD_Poll()两个任务分配函数。TD_Init()函数用于负责初始化端点状态变量,配置外围I/O接口及设置端口初始值。TD_Poll()主要是初始化功能寄存器,并对设备进行重新列举,完成主机对设备的配置任务;执行过程中响应中断,对中断作相应处理并控制外围电路。



评论


相关推荐

技术专区

关闭