专业的流量仪表资料网
|
基于USB接口的数据采集系统的设计与实现(2)2004年9月 本系统中采用一种比较独特的PS方式对FPGA进行配置:将FPGA的5个配置管脚DCLK、CONF DONE、nCONFIG、nSTATUS、DATAO分别与USB控制器的5个I/O管脚USB 、 、 、 经过三态缓冲后相连;然后在软件(驱动程序)编程中通过设置AN2135SC芯片内与这5个I/O管脚相关联的I/O口寄存器PORTACFG、OEA、PORTCCFG、OEC来实现FPGA上电时通过PS方式的自动配置的(配置文件采用二进制格式,如rbf格式等),如图4所示。
图4 FPGA自动配置示意图 AN2135SC的I/O端口的定义以及配置命令见参考文献[3],FPGA的PS配置方式及相应的时序见参考文献[5]。以下是实现FPGA上电后自动配置功能的部分代码,实践证明,这种自动配置方式具有节约成本、省时、高效的特点。 Void TD ∥Called once at startup
…… PORTACFG=O ;∥ Congigure PA4 as DCLK out-put port,PA5 as CONF DONE in port OEA= ; ;∥ as output port, as n out-put port ;∥ PC4 as Nstatus input port ,PC5 as DATAO output port …… OUTC&=0 ;∥ ∥ 10 the are ∥ ∣= 08; ∥Set Nconfig=1; …… 3.4 数据传输通道的实现 本系统中EN USB芯片工作于快速数据传输模式。在这种模式下,芯片提供的一个8位并行的数据总线可以与外部的FIFO结构相连接。当USB总线开始一次数据传输时,芯片将发出一个读或写通信号。与此信号同步,芯片与外部FIFO每次可以完成一个字节的数据交互。把它和USB总线上的块传输模式相结合,芯片并行总线上就可以实现大数据量的传输。 由于本解决方案是将EPGA输出的数字信号发送到上位机去,因此在数据传输通道中只涉及到了USB总线读的操作。在这种条件下,EP1K30中实现数据传输通道的程序流程图如图5所示。 在图5中,EP1K30在采集到A/D转换器的12位输出数据之后,为把它发送到AN2135SC芯片中,必须首先转换为8位数据,我们将12位数据分层高4位和低8位两部分,分高、低字节两次发送出去。其中高字节的高4位传送12位数据的高4位,低4位填充0。A/D转换器的12位数据分成两个字节后,先传送低字节,后传送高字节,后传送高字节。我们利用EP1K30芯片中的嵌入式阵列块(EAB),借助ALTERA公司提供的双端口RAM宏函数,生成一个2K大小的双端口缓冲器来缓冲数据。
图5 数据传输通道程序流程图 每次数据总线读操作的启动均由AN2135SC芯片发送一个读选通信号来实现。AN2135SC芯片发送到EP1K30芯片的读选通信号可以作为上述缓冲器数据输出的同步信号,EP1K30芯片也利用这个选通信号来控制缓冲器的输出地址指针。实现这部分功能的AHDL源代码如下: ; ; 00000000000”then
|
无锡求信流量仪表有限公司 |