系统简介
通用串行总线(USB)支持热插拨,真正的即插即用。USB1.1在全速传输时可以达到12Mbps的传输速率;低速传输时传输速率可达1.5Mbps。USB电缆线只有4根,两根是电源线,传送5V电源,可用来向设备供电;另外两根是信号线,用来传输串行数据。与传统的RS-232串口比较,USB具有传输速度更快、集成化程度更高、编程化更好以及能够支持多个设备等优点。因此在我们的设计中用它来和主机接口实现高速的数据通信。
在数据采集系统中,通常采用单片机或DSP(数字信号处理器)作为CPU,控制ADC(模/数转换器)、存储器和其他外围电路的工作。但是单片机的时钟频率较低,难以适应高速数据采集系统的要求,而DSP虽然可以实现较高速的数据采集,但其速度提高的同时也提高了系统的成本。FPGA(现场可编程门阵列)有单片机和DSP无法比拟的优势:时钟频率高,内部时延小;全部控制逻辑由硬件完成,速度快,效率高;组成形式灵活,可以集成外围控制、译码和接口电路。因此,在本系统中我们用FPGA来控制A/D和USB芯片的运行。系统结构图如图1所示。
图1 系统结构图
图中FPGA采用ALTERA公司生产的APEX 1k系列芯片,型号为EP1K30,通过在EPGA中编写硬件逻辑控制A/D转换器的运行;实现A/D转换器和USB 控制芯片间数据传输的数据总线接口。除此之外,为了保证EPGA和USB控制芯片间数据交互过程的实现,必须在FPGA中提供一个用于传输通信双方控制和状态信息的GPIO接口。
2 A/D转换环节
在该系统中我们采用TI公司的ADS7800。它是12位并行模数转换器[2>,接口简单,很容易控制,最大采样率可达333kHz,输入的电压范围为-10V~+10V或-5V~+5V。ADS7800芯片的数字接口比较简单,可以很方便地与其它数字系统相连接。对此芯片地控制有完全控制模式(full control mode )和孤立控制磨蚀(stand-alone control mode )两种控制方法。
在本系统中,对ADS7800芯片的控制是通过在FPGA芯片中编写控制逻辑来实现的。我们采用了孤立控制模式,在此控制模式下,输出数字信号是12位并行的。
利用FPGA芯片的可编程性可以使用芯片中的12个IO脚作为数据总线,另使用一些IO脚作为ADS7800的控制信号输入,控制模/数变换器以32kHz的速率对模拟输入信号进行采样,采样的数据存入FPGA的RAM中。本系统中所使用的FPGA芯片型号为EP1K30QC208-3,它具有着良好的特性,芯片内部共有3万个逻辑门,容量相当大;6个嵌入式阵列块,可是现最大为3k字节的RAM存储器。
3 系统的设计与实现
3.1 USB接口芯片介绍
在设计中,我们选取Cyprees公司的EZ-USB系列芯片来实现USB接口设备方的控制。它是一款带有多个外设、高度集成的芯片,其功能框图如图2所示。一个集成的USB收发器(transceiver)连接USB总线的D+和D-。串行接口引擎(SIE)对总线上的数据进行编/解码、错误检测、位填充以及USB规范规定的其它信号级操作的实现,并且最终把数据收或发到USB接口部分。
图2 EZ-USB系统框图
内部的微处理器是8051单片机的增强型,提高了执行速度并增加了一些新的特性。它使用内部RAM作为程序和数据存储器;带有16位地址线和8位数据线用来访问外部存储器,特有的快速传输模式可以在外部逻辑和内部USB FIFO间快速地传递数据。
3.2 USB总线数据通信解决方案
在实现数据通信解决方案时,为完成数据流地正常传输,所建立的硬件平台必须能够提供两个接口。首先必须要有一个实现数据传输的数据总线接口;除此之外,为了保证数据交互过程的正常实现,必须提供一个用于传输通信双方控制和状态信息的GPIO接口。
AN2135SC芯片提供了EZ-USB系列芯片的所有接口和功能。在本系统中,我们将利用这款芯片和FPGA芯片配合工作,建立一个基于USB总线接口的数据通信解决方案,以实现将采样信号输出到上位机中的功能。
在此解决方案中,我们选择AN2135SC芯片工作在快速数据传输模式下的8位并行数据总线D[7…0>作为数据传输的总线接口;选择AN2135SC芯片中的通用 C总线主控制器接口作为数据通信过程中进行控制和状态信息传输的GPIO接口。这样,芯片中的一般GPIO引脚就可以用来实现其它功能,方便了系统的进一步扩充。图3所示为AN2135SC芯片与FPGA芯片的接口示意图。
为了使AN2135SC芯片中快速数据传输模式下的数据总线D[7…0>和通用 主控制器分别完成流数据传输和控制状态信息传输的功能,需要在芯片的8051核中编写程序,对AN2135SC芯片内部相关的专用寄存器进行配置[3>。