微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > EZ-USB FX2接口在生物电信号数据采集系统中的应用

EZ-USB FX2接口在生物电信号数据采集系统中的应用

时间:08-31 来源:互联网 点击:


5 固件程序设计
固件是设备运行的核心,其主要功能是控制EZ-USB FX2处理驱动程序请求(如请求设备描述符、请求或设置设备状态及设备接口等USB2.0标准请求)、向FPGA发送采集参数、通过EZ-USB FX2缓存数据并实时上传至PC等。
本系统中,即使使用外部逻辑和内置通用可编程接口,在没有CPU的干涉下能够通过4个端点FIFO处理高速带宽数据,固件还需器件初始化、GPIF波形初始化、控制和监测GPIF的动作。
5.1 器件初始化
同件初始化函数为TD_Init(),主要负责对EZ-USB FX2的初始化,在同件开始运行时调用该甬数。其初始化工作主要分为以下步骤:
(1)设置EZ-USB FX2的IFCLK输出频率,将时钟频率设置为内部时钟48 MHz;

(2)设置EZ-USB FX2的EP2为BULK、OUT传输方式,EP6为BULK、IN传输方式,均为4倍缓冲;

(3)复位EP2 FIFO并设置为Auto OUT模式,复位EP6FIFO并设置为Auto IN模式;

(4)调用GpifInit()函数,初始化GPIF所需的寄存器;对EP2OUT、GPIF使用EF标志,对EP6IN,GPIF使用FF标志;
(5)初始化PA2为输出引脚并置为低电平,高电平时点亮LED。
5.2 GPIF波形设计
EZ-USB FX2固件程序可指定某个波形为4个端点中的任意一个工作,GPIF将在接口产生使能信号和握手信号,将数据送入或送出端点FIFO。在本系统中,对 FPGA写命令时则通过FIFO Write实现;读取所采集到的数据时,则通过FI-FO Read实现。波形设计如下:
(1)图3为FIFO Write时序波形,用于向FPGA发送采集控制参数。S0为非活动状态,当WEN#置低时跳入S1状态,S2设为Next FIFO Data,依次将数据写入FPGA的寄存器中。

(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完全控制,避免了直接上传时的数据丢失。该系统设计具有结构简单、数据不丢失且传输速率高等优点,因此在生物电信号数据采集中具有良好的实用价值和应用前景。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top