基于FPGA的图像采集之一 USB2.0

1.USB2.0简介

USB2.0协议时一种高速串行的通信协议,它是半双工的,最高传输速率可达480MHZ/s,并且支持热插拔等特点,目前被广泛使用。

2.项目描述

既然是图像采集,就要有采集图像的设备,它将采集到的数据发送给FPGA,通过LVDS_BUFF模块将串行数据转换成并行数据,并完成时钟域的转换;然后通过SDRAM_CTRL控制模块将数据缓存到SDRAM中;再通过GEN_F(成帧模块)为数据加上帧结构,以及时钟域的切换;最后通过USB_CTRL模块将数据传送给USB芯片,等待上位机来将数据读走。
该项目一共有四个字模块,各个模块之间的关系可见下图,今天首先介绍USB2.0模块,我们使用的USB芯片型号为CY7C68013A。
项目整体架构图
1.gif

3.USB子模块介绍

如下图,FPGA与PC之间通过USB芯片完成数据的传输,USB芯片为两FIFO机制,分别为读、写FIFO。写数据时,FPGA将数据写入到W_FIFO中,FPGA发送一个PKG_END(结束信号),通知PC来取数据。读数据时,PC机先将数据写入R_FIFO,在一定条件下,FPGA通过USB控制模块将数据取出。

2.gif

从开发板手册上可以看到这样几个管脚(管脚名字已改为笔者自己定义的名字)usb_clk,addr,w_en,usb_data,oe,r_en,flag_b,flag_c。我们来分别看看这些管脚的含义。
usb_clk:usb时钟
addr:选择哪一个FIFO。这个很好理解,既然有两块FIFO,那么我当前使用的是哪一块,就要通过这么一个地址来说明。
w_en:写使能,低有效。w_en有效数据才可写入W_FIFO。
oe:读数据时使用,数据导通到管脚。
r_en:读使能,低有效。在oe有效的前提下,r_en有效,才可从R_FIFO中读出数据。
flag_c:空标志。
flag_b:满标志。
usb_data:数据线,FPGA与USB的数据线只有这么一条,它要完成读写操作,因此它的接口类型为IO(输入输出),是一个三态结构。

2.1.三态门结构图解说明

3.gif

注:斜线代表该信号位宽大于1。
三态门结构在IOB中,IOB通过连接PAD(芯片上的IOB与pin连接的接口)与pin连接,将数据输入输出。当en使能时,W_data通过usb_data输出到USB W_FIFO中;当en无效时,R_data通过usb_data将数据读入到R_data中。

2.2.接口说明

1)写接口

4.gif

2)读接口

5.gif

2.3.关键信号时序

1)写时序
6.gif

FPGA写数据时:

1.首先addr选中W_FIFO,延时一个时钟(等待读写FIFO的切换)。

2.检测FIFO为空(flag_C)将W_en有效,同时开始向FIFO中写入数据W_data,记过两个时钟,flag_C拉高。

3.写满FIFO后,W_en无效,通知PC来读数据。

4.Pkg_end为结束标志,随时可以拉底信号,结束写操作,通知PC机来读,这里没有使用该信号。只有写满FIFO,上位机才来取数据。

2)读时序

7.gif

FPGA读数据时:

1.首先addr选中R_FIFO,延时一个时钟(等待读写FIFO的切换)。

2.检测FIFO为满(flag_b)同时将O_en、R_en有效(或者O_en先有效、R_en再有效),开始从FIFO中读出数据R_data,记过两个时钟,flag_b拉高。

3.读空FIFO后,O_en、R_en无效。

注:该项目中只使用了写操作,读操作没有使用,但还是把读时序给出,便于大家理解。USB控制模块是这四个模块中最简单的一个模块,后续还会把其它模块按照笔者自己的理解给出,希望对大家有益。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

下一个雨天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值