1 基于USB3.0技术和FPGA器件实现多串口数据采集与传输系统的设计-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于USB3.0技术和FPGA器件实现多串口数据采集与传输系统的设计

电子设计 来源:郭婷 作者:电子设计 2019-04-23 08:22 次阅读

多串口数据通信技术主要研究数据的多串口采集、存储和处理。由于串口通信技术的广泛应用,使得多串口采集卡一直是研究的热点,从早期的基于PCI总线的多串口数据采集卡到后来的基于USB的多串口数据采集卡,以及现在的基于USB3.0的多串口数据采集卡。

PCI采集卡由于使用不方便,逐渐被淘汰,目前USB传输系统被广泛应用。USB2.0理论传输速度为480Mb/s,而USB3.0的传输速率可高达5Gb/s,且在USB2.0的基础上又增加了超高速传输模式。本文设计的系统中有80个485传输通道,每个通道的速率为1~10Mb/s,最高传输速率可达800Mb/s,USB2.0已不能满足此要求。因此本文采用了Cypress的CYUSB3014和Altera的CycloneIII系列FPGA,CYUSB3014保证与PC的传输性能,FPGA负责多串口数据的采集以及对CYUSB3014的控制。

1 EZ-USB3.0 FX3与FPGA接口设计

1.1系统框架

整个多串口数据采集与传输系统框图如图1所示。图中虚线部分为该系统的硬件框图,整个系统由3部分组成,USB3.0芯片选择了业界性能表现最好的Cypress的CYUSB3014芯片(简称FX3芯片),理论上通信速率可达4.8Gb/s,该芯片除了拥有GPIF2.0接口可方便与外设进行通信外,还有标准的SPI、UARTI2C、I2S与外设进行通信;FPGA采用了Cyclone3C40系列的芯片,逻辑资源、片上RAM以及I/O脚数目都能充分满足本系统设计;80路485传输芯片采用了ADIADM3485E,是一款3.3V低功耗数据收发器,提供±15kV的ESD保护,适用于多点总线线路的半双工通信。共模输入范围-7V~+12V,数据速率可达12Mb/s,能满足本系统的设计要求。

基于USB3.0技术和FPGA器件实现多串口数据采集与传输系统的设计

图1多串口数据传输系统框图

1.2 FX3与FPGA的通信设计

FX3与FPGA通信主要分为两类:

(1)FX3对FPGA的配置信息:PC通过FX3将串口的相关信息发送给FPGA,如各串口的奇偶校验、波特率、空闲位、每路的统计信息等配置,此类信息数据量比较小;

(2)FX3与FPGA的大容量数据通信:FPGA将485采集的数据通过FX3传输到PC.

为了有效地利用FX3的超高速数据传输特性,针对这两种不同的数据类型,本设计将两种数据通道分开设计,其中配置信息较少,而采集的485数据容量很大,为了不使配置信息数据打断485数据通道,将配置信息和数据信息通过两个独立的通道进行传输,其中配置信息采用了通过FX3的UART和FPGA进行通信,通信格式如下:

①EZ-USB向FPGA发送命令格式

基于USB3.0技术和FPGA器件实现多串口数据采集与传输系统的设计

②FPGA返回命令格式

基于USB3.0技术和FPGA器件实现多串口数据采集与传输系统的设计

FX3每发一条配置参数给FPGA,FPGA都会返回相应配置回应,并通知FX3可以继续发送下一条配置信息,在配置信息都发送完成后,FX3最后会发送一条配置完成命令,此时FPGA会启动外围接口电路进入正常的数据采集过程。

2 USB3.0芯片固件设计

Cypress公司为USB3.0芯片提供了一个开发包,其中包括了典型的固件代码。对USB3.0芯片固件的设计,可利用EZ-USBFX3固件函数库简化加速USB3.0固件程序的开发。固件程序主要完成的工作有:初始化、处理标准的USB设备请求及USB挂起时的电源管理等。任务循环的流程图如图2所示。

基于USB3.0技术和FPGA器件实现多串口数据采集与传输系统的设计

图2任务循环流程图

3 FPGA逻辑设计

FPGA采用了Altera公司的CycloneIII系列的3C40-C8,其逻辑门数有200万门左右,最高工作频率可以达到300MHz.整个工程使用了Verilog语言编写,整个工程的综合、布局布线都是在Quartus11.0版本下进行,仿真软件使用Modelsim6.5se版本。本设计中FPGA逻辑设计主要包括485数据采集模块及与FX3的读写时序控制逻辑,整个工程使用逻辑单元,片上RAM使用率接近系统的95%,整个系统工作频率为100MHz.

3.1逻辑模块设计

系统的逻辑模块分为时钟模块、FX3发送/接收缓存模块、发送/接收控制模块、FX3读写控制模块、485接收模块、485发送模块以及配置串口参数模块。

整个系统的数据流分为两个过程:485数据采集过程和485发送控制命令过程。

(1)485数据采集过程:485数据通过485接收模块传送给FX3接收缓存模块,在FX3数据接口没有被占用时,通过FX3读写控制模块发送给USB3.0芯片并传到PC端。

(2)485数据发送过程:USB3.0芯片通过FX3读写控制模块将数据发送到FX3发送缓存模块中,在收发控制模块检测到相关串口空闲后通过485发送模块将相关数据发送出去。

485收发相对于USB3.0速度来说,属于慢速设备。为了提高USB3.0总线利用率,此处只设计了两种缓存,即接收缓存和发送缓存,大小都设置为512KB,80路的485接收和发送buffer最终都汇聚到这两种缓存上,有效地减少了短包和空包发生率。

3.2 FX3接口时序

FPGA与FX3之间采用了Slavefifo模式,FPGA通过状态标志的flaga、flagb、flagc、flagd来判断FX3的接收/发送缓存的数据状态,当flaga/flagc为高时,表示FX3缓存中接收到了数据;当flagb/flagd为高时,表示FX3的发送缓存为非满状态,FPGA可对其进行写数据操作。

图3所示为FX3的A通道读时序,FPGA先检测i_usb_flaga是否为高电平,如果为高电平则表示A通道buffer中有数据可读,此时将通道地址信号设置为0,片选信号o_usb_slcs_n/o_usb_sloe_n拉低,o_usb_slrd_n信号拉低后,在4个时钟之后,数据将出现在io_usb_dq上,如果进行写操作则将o_usb_slwr_n拉低。对应的通道号地址选对,同时将片选信号拉低即可,写通道时序如图4所示。

基于USB3.0技术和FPGA器件实现多串口数据采集与传输系统的设计

图3 FX3的A通道数据读取时序

基于USB3.0技术和FPGA器件实现多串口数据采集与传输系统的设计

图4 FX3的B通道写数据时序

4通信速度实验结果

利用Cypress的Streamer软件,可以测试该USB3.0传输系统的传输速率。将Packets per Xfer设置为256,在win764位下(电脑配置为华硕N53XI241SN,Fresco FL1000系列的控制器)的传输速率测试结果为2.5Gb/s,满足了整个系统的性能,如图5所示。

基于USB3.0技术和FPGA器件实现多串口数据采集与传输系统的设计

图5读速率测试结果图

该系统适合于超高速数据的传输,具有电路简单、体积小等优点。FPGA技术与USB3.0的结合有极大的灵活性和可扩展性,基于FPGA和USB3.0的突出优点,该设计方案必将应用在更广阔的领域。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21729

    浏览量

    602955
  • 收发器
    +关注

    关注

    10

    文章

    3424

    浏览量

    105959
  • usb
    usb
    +关注

    关注

    60

    文章

    7935

    浏览量

    264451
收藏 人收藏

    评论

    相关推荐

    基于FPGA+USB3.0接口的高速数据传输系统设计

    满足设计高速数据采集系统的设计要求,而USB3.0技术的出现无疑解决了上述窘困。因此,本设计选用了USB3.0芯片CYUSB3014作为
    发表于 08-09 14:18

    USB 3.0高速传输模块XILINX版 USB开发板 USB3.0开发板

    电源总功耗不得超过2.5瓦。USB3.0-XILINX-DDR3模块应用●高速数据采集传输●高速视频,图像采集传输●打印机●扫描仪●高速
    发表于 09-20 15:08

    USB 3.0开发板 USB3.0+fpga开发板 FPGA开发板

    200MHz(FPGA采用-6等级时),FPGAUSB3.0芯片及FPGA跟外部IO之间的走线均采用等长设计,保证高速信号的可靠传输。两
    发表于 09-20 15:22

    USB 3.0开发板 USB3.0+FPGA开发板

    200MHz(FPGA采用-6等级时),FPGAUSB3.0芯片及FPGA跟外部IO之间的走线均采用等长设计,保证高速信号的可靠传输。两
    发表于 11-21 11:25

    USB 3.0高速传输模块XILINX版 USB3.0模块 USB3.0开发板

    电源总功耗不得超过2.5瓦。USB3.0-XILINX-DDR3模块应用●高速数据采集传输●高速视频,图像采集传输●打印机●扫描仪●高速
    发表于 01-08 14:28

    USB 3.0开发板 USB3.0+FPGA开发板 FPGA开发板 USB开发板

    200MHz(FPGA采用-6等级时),FPGAUSB3.0芯片及FPGA跟外部IO之间的走线均采用等长设计,保证高速信号的可靠传输。两
    发表于 01-08 14:30

    USB 3.0高速传输模块XILINX版 USB3.0开发板 USB3.0模块

    电源总功耗不得超过2.5瓦。USB3.0-XILINX-DDR3模块应用●高速数据采集传输●高速视频,图像采集传输●打印机●扫描仪●高速
    发表于 01-15 10:40

    USB 3.0开发板 USB3.0+FPGA开发板 FPGA开发板

    ->PC机和PC->USB->FPGA数据传输实例;●USB3.0读速度测试实例;●USB3.0写速度测试实例;●虚拟16路逻辑分析仪实例;
    发表于 01-15 10:50

    基于USB2.0与FPGA技术的高速数据采集系统的设计

    基于USB2.0与FPGA技术的高速数据采集系统的设计 基于USB2.0与
    发表于 04-22 19:56 1615次阅读
    基于<b class='flag-5'>USB</b>2.0与<b class='flag-5'>FPGA</b><b class='flag-5'>技术</b>的高速<b class='flag-5'>数据采集</b><b class='flag-5'>系统</b>的设计

    基于FPGAUSB接口的通道数据采集系统

    设计了一种基于FPGAUSB接口的通道数据采集系统。该系统采用在
    发表于 12-28 10:34 91次下载
    基于<b class='flag-5'>FPGA</b>和<b class='flag-5'>USB</b>接口的<b class='flag-5'>多</b>通道<b class='flag-5'>数据采集</b><b class='flag-5'>系统</b>

    FPGAUSB3.0通信-USB3.0 PHY简介

    实现的情况)才可以,所以目前使用USB3.0时,搭档FPGA的最优解就是外置USB3.0 PHY片。 USB3.0 PHY简介 首先我们需要
    的头像 发表于 11-09 09:36 8776次阅读
    <b class='flag-5'>FPGA</b>和<b class='flag-5'>USB3.0</b>通信-<b class='flag-5'>USB3.0</b> PHY简介

    FPGAUSB3.0通信-USB3.0 PHY介绍

    可以和FPGA搭配使用的USB3.0 PHY芯片通过之前的介绍
    发表于 12-20 19:11 34次下载
    <b class='flag-5'>FPGA</b>和<b class='flag-5'>USB3.0</b>通信-<b class='flag-5'>USB3.0</b> PHY介绍

    基于FPGAUSB3.0回环传输测试方案

    本文开源一个FPGA项目: USB3.0 LoopBack 。基于FPGAUSB3.0通信方案有很多,其中非常好用的一款USB3.0芯片是
    的头像 发表于 10-01 09:49 3914次阅读
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>USB3.0</b>回环<b class='flag-5'>传输</b>测试方案

    什么是USB3.0usb3.0usb2.0有什么区别?

    什么是USB3.0usb3.0usb2.0有什么区别 USB3.0是指“超级速度USB”,它是一种高速
    的头像 发表于 10-27 14:31 8789次阅读

    FPGA通道数据采集传输系统

    一、系统总体方案设计 为了满足油田增压站对数据采集的需求,我们设计了一套基于FPGA通道数据采集
    的头像 发表于 12-09 10:45 181次阅读
    <b class='flag-5'>FPGA</b>的<b class='flag-5'>多</b>通道<b class='flag-5'>数据采集</b><b class='flag-5'>传输</b><b class='flag-5'>系统</b>