基于FPGA和LabVIEW的USB高速传输系统设计

时间:2022-06-18 01:01:29

基于FPGA和LabVIEW的USB高速传输系统设计

【摘要】针对大数据量传输问题,设计了基于FPGA和Labview的USB高速传输系统,使FPGA、USB技术和LabVIEW软件设计优势得到了有效的发挥。通过FPGA的控制,高速、高带宽USB串行接口将数据传输到PC终端,在PC终端程序开发采取的LabVIEW软件为USB传输系统提供了便捷性,具有一定的工程实用价值。

【关键词】现场可编程门阵列;通用串行总线;高速传输;虚拟仪器

1.引言

数据采集系统中需将大量的数据传输给PC机,传统的RS232串口传输速度较慢,不适合大数据量传输。USB是一种高效快速、价格低廉、体积小、功耗低、时钟频率高、并支持热拔插的串行通信接口,高速传输速率可达到480Mb/s,能够实现数据的高速传输。

2.系统整体设计

系统主要由FPGA主控电路,USB接口电路和上位机部分组成。其中FPGA为Cyclone II系列,主要芯片为EP2C8Q208C8N;USB接口芯片为CY7C68013A,它通过将USB 2.0收发器、串行接口引擎(SIE)、增强型8051微控制器,以及可编程外设接口集成到一个芯片中。该芯片支持12Mbps全速和480Mbps高速两种传输模式,带有16KB的片内RAM和4KB的FIFO存储器。配置有3种不同的接口模式:Ports(端口模式)、GPIF Master(可编程接口模式)和Slave FIFO(主从模式)。本文选用Slave FIFO模式;上位机主要由Labview来实现。

FPGA与CY7C68013A的信号连接如图1所示。

图1 FPGA与CY7C68013A的连接信号图

3.硬件设计

USB传输系统主要包括FPGA控制模块和USB接口模块。USB接口模块主要包括USB芯片、E2PROM、USB接口电路等,其连接如图2所示。

4.软件设计

USB传输系统涉及USB固件程序、驱动程序、上位机接收程序以及slave FIFO模式下的FPGA逻辑设计。本文着重介绍固件程序设计和上位机接收程序部分。

图3 固件程序开发流程图

4.1 固件程序设计

固件程序是USB开发的重要环节,它主要功能包括初始化、辅助硬件完成相应的任务、处理中断请求、收发数据以及电路控制。CY7C6S013A芯片内置增强型8051单片机,因此可以用KEIL软件进行固件程序的编写。

Cypress公司为了方便用户编程,提供了完整的固件框架和函数库。用户只需添加或修改相应的代码即可完成固件程序的开发,从而提高了开发效率。固件程序开发流程图如图3所示。

按功能区分整个固件程序可分为三个部分:(1)固件文件(fw.c),USB芯片的固件程序的核心,一般无需修改,主要用来完成USB外设请求以及协议通信;(2)功能文件(bulkloop.c),为用户自由开发预留的文件,用户为实现功能编写的代码就写在这里,同时预留了功能函数并完成中断响应;(3)描述符文件(dscr.a51),定义了枚举设备时所需用的各类描述符信息,根据用户需要进行编写,包括设备描述符、接口描述符、端点描述符、字符串信息。

主程序的源代码如下:

void main(void)

{//初始化

Sleep=FALSE;//禁止休眠模式

Rwuen=FALSE;//禁止远程唤醒

Selfpwr=FALSE;//禁止自供电

GotSUD=FALSE;//清SETUP令牌包来时的标志位

//初始化用户设备

TD_Init();//定向USB描述符

USB_Descriptor();

USB_Interrupt();//中断

USB_ReConnect();

//任务县城线程

while(TRUE)//主循环

{//列举用户设备

TD_Poll();

if(GotSUD)

{SetupCommand();

GotSUD = FALSE;/清SETUP标记

}

if (Sleep)//检查并处理

{if(TD_Suspend())

{Sleep = FALSE;//清Sleep标记

do

{EZUSB_Susp();//空闲状态处理

}

while(!Rwuen && EZUSB_EXTWAKEUP());

EZUSB_Resume();

TD_Resume();

}

}

}

}

4.2 上位机接收程序设计

上位机是USB的主机,它需要实现的功能就是接收来自存储在Flash中的测量数据,并保存在PC机中。本文中的上位机程序是使用LabVIEW开发的。

上位机与USB通信靠三步完成:(1)找到并打开设备;(2)与设备通信;(3)关闭设备。其中先将Flash中的数据读出存在硬盘内,然后在从硬盘读取数据完成数据的波形显示,并非边写边读,这样减少了内存空间的使用。LaVIEW程序及前面板如图5所示。

5.总结

本文结合FPGA、USB技术和Labview软件设计优势,开发了基于FPGA和LabVIEW的USB高速传输系统。通过FPGA的控制,高速、高带宽USB串行接口将数据传输到PC终端,在PC终端程序开发采取的LabVIEW软件为USB传输系统提供了便捷性。

参考文献

[1]马向玲,杨辉,王海玲,吴亚男.基于FPGA的多路数据光纤传输系统设计与实现[J].计算机测量与控制,2011,02:363-366.

[2]程海狮,黄玉清.基于FPGA+USB2.0多通道数据采集系统设计[J].西南科技大学学报,2011,01:56-60.

[3]张思杰,赵泰,汪振兴,石岭.基于FPGA的USB接口数据采集系统设计[J].电子技术应用,2011,05:98-100.

[4]张继军,刘小平,陶治洲,杨芳,顾适夷,范少池.基于FPGA的远程USB高速传输系统设计[J].舰船电子对抗,2012,05:97-100.

[5]甘建伟,秦付军,王鹏.基于FPGA的高速多通道数据采集系统设计[J].电子技术应用,2013,04:55-57+61.

[6]袁宝红,付奎,张德祥.基于FPGA和LabVIEW的USB数据采集与传输系统[J]. 仪表技术与传感器,2013,09:24-27.

[7]唐磊.基于FPGA的USB、Flash控制器设计[D].北京:北京交通大学,2010.

作者简介:

董淑伟(1989―),女,山东莱阳人,中北大学硕士研究生在读,研究方向:动态测试与智能仪器。

郑宾,中北大学教授。

上一篇:基于五类线的新一代智能型多功能可视对讲联网... 下一篇:基于FPGA的小数分频器的设计与实现