(2)USB-FIFO
FT245BM是由FTDI公司推出的USB协议芯片。FT245BM内含2个FIFO数据缓冲区。一个是128 B的接收缓冲区,另一个是384 B的发送缓冲区。它们用作USB数据与并行I/O口数据的交换缓冲区。FIFO是实现与外界(微控制器、FPGA或其他器件)数据互换的接口,它主要通过8根数据线DO~D7、读写控制线RD和WR以及FIFO发送缓冲区空标志TXE和FIFO接收缓冲区非空标志RXF来完成数据的交互。FT245BM与FPGA之间的逻辑连接图如图2所示。

通过USB-单片机和USB-FIFO两种传输方式的对比来看,FT245BM USB接口协议芯片具有设计简单、使用简便的特点。但是,由于受其芯片内部FIFO空间所限,导致传输速率有限,最高只能达到1 MB/s左右;同时由于波形数据和控制命令字都是通过DATA(7:0) 8个端口进行输入或输出,所以在传输时是分时复用的,不仅在上位机和底层硬件通信时带来很大的不便,而且降低了信号源的频率,远远小于1 MB/s[3]。
CY7C68013单片机具有传输速率快、程序设计灵活性强、传输速率高等特点。它支持12 Mb/s的全速速率和480 Mb/s高速传输速率,并且用户可以根据实际情况来编写和修改数据传输的程序模块,但是其程序的设计相对FT245BM来说比较复杂,需要用户根据实际需求来开发相关的动态链接库和应用程序,以完成对数据传输的控制。
两种基于USB的设计方法各有优缺点,根据实际实验设计的需要,在传输速率不高、接口设计比较简单的情况下,可以考虑使用FT245BM USB接口协议芯片。而对于传输速率要求较高,接口设计比较复杂,同时要求根据实际需求来设计数据传输模块的场合,可以考虑使用CY7C68013 USB单片机。本设计在前期试验中采用FT245BM,但由于传输速度的限制以及控制的实时性,最终采用了CY7C68013 USB单片机设计模式。
2.2 FPGA控制部分
FPGA程序控制流程图如图3所示。

FPGA有两种工作模式:第一种是数据存储模式,即控制读取FIFO中的波形数据并存储到SRAM中。进入这种工作模式后,FPGA判断FIFO的空信号是否有效;如果FIFO的空信号无效,则FPGA控制FIFO的读信号有效,从FIFO中读取波形数据存储到SRAM中。SRAM的存储方式采用分块存取的方式,在数据读取时可通过分块扫描的方式均匀读出各种波形数据,并且通过简单的修改扫描频率即可控制波形频率。第二种是数据转换模式,即控制读取SRAM中的波形数据传送给D/A转换器,并控制D/A转换器完成转换和对继电器开断。
2.3 D/A转化部分和开关电路[4-5]
DAC715是美国TI公司生产的16位高精度数模转换器,该芯片具有16位数据总线,可在工作电压为±12 V或±15 V时,实现0 V~10 V的模拟电压输出。FPGA主要通过DAC715的输入工作选通信号WR、寄存器控制信号A0和D/A锁存控制信号A1 来控制DAC715完成数模转换。DAC715输入数据与输出电压的对应关系如表1所示。

本设计的开关量采用继电器AQY210,该继电器是电流驱动,电路连接图如图4所示。

本文所设计的信号源利用USB接口技术,实现了计算机命令字和波形数据的实时下载,使得产生的信号频率、幅值和偏置灵活可调,可满足不同的实验要求,同时对外部供电系统可以灵活控制。事实上,这种控制的灵活性也使其在航天测试上得到了广泛运用。 |