(2)图4为FIFO Read时序波形,它描述了采集数据的读传输,S0为非活动状态,S1为读操作的引导状态并将REN#置低。当接收到FPGA发送的DataRDY=1 后,跳入S2。将S2设为FlowState,逻辑控制数据从FPGA中读出并操作REN#的状态,即当Tcxpire=1时,将REN#置高,跳入 IDIE状态。在FlowState状态下,WEN#置高,写使能关闭。
5.3 数据采集流程
程序开始,主函数调用TD_Init()和Gpiflnit()函数,初始化寄存器,并通过2个自动指针寄存器AUTOPTR1和AU-TOPTR2,把生成的GPIF波形程序调入器件的RAM,然后状态机开始运行,产生所设计的控制波形。采集参数下传后,FPGA解析参数,延时,EZ-USB FX2向FPGA发送读使能信号,开始采集数据,数据采集程序流程如图5所示。如果FP-GA返回DataRDY=1,在TD_Poll()函数中执行读取数据传输程序。完成该过程后,程序根据主机请求,开始自动上传数据。
6 结束语
基于FPGA控制电路、EZ-USB FX2高速传输的数据采集系统,可同时采集16位生物电信号;EZ-USB FX2采用GPIF接口模式,8051可不参与数据传输,以突破高速、全速下的传输模式,解决了外围设备和EZ-USB FX2接口之间存在的传输瓶颈问题:同时A/D转换脱离了EZ-USB FX2,而由FPGA完全控制,避免了直接上传时的数据丢失。该系统设计具有结构简单、数据不丢失且传输速率高等优点,因此在生物电信号数据采集中具有良好的实用价值和应用前景。