CYUSB3014延续了CY7C68013A最吸引人的地方,那就是实现高速数据传输的Slave FIFO接口,应用这种模式,据说数据传输率可以达到320MB/s.

  同USB2.0的芯片CY7C68013集成了一个通用可编程接口GPIF一样,USB3.0的芯片CYUSB3014也含有通用可编程接口GPIF,并且升级到GPIF II。通用可编程接口GPIF就是一个可编程的状态机,可以与外部的Processor, ASIC, 或者FPGA无胶粘逻辑相连,实现高速数据传输。CYUSB3014的通用可编程接口GPIF II 特点如下:

1、芯片CYUSB3014本身既可做主机,也可做从机;

2、最多提供256个可编程的状态(State);

3、支持8位、16位、32位的数据总线宽度;

4、最高工作频率可以至100MHHz;

5、最多提供16个输入输出的状态引脚,用来实现握手信号。

  通用可编程接口GPIF II可以实现同步(synchronous)和异步(asynchronous)Slave FIFO接口,从编程的角度来说,是用描述符来实现的。安装完SDK后,可以打开相应的关于描述符的文件看一下,具体的目录如下:C:\Program Files\Cypress\FX3 SDK\firmware\slavefifo\slfifoasync\cyfxslfifogpifdscr.c;另一个目录是C:\Program Files\Cypress\FX3 SDK\firmware\slavefifo\slfifosync\ cyfxslfifogpifdscr.c。用记事本打开后,可以发现主要是定义了一个数组,const uint32_t CyFxSlFifoAsyncGpifConfData[][2] ={...},不像CY7C68013A是用分散的寄存器来定义的(原理上都一样,都是寄存器)。

要实现FIFO接口,硬件上要用到的引脚较多,可以自己查阅Datasheet,这里主要对异步传输,用一个引脚连接图和时序图来说明数据是怎样实现高速传输的。

  下图是一个说明异步传输的引脚连接图,

  从引脚连接上,可以说FX3与FX2并没有什么区别,用的还是那些引脚,名字也完全一样。外部的处理器充当主机,控制FX3进行数据传输。下图是一个异步传输的读时序,

  下面对时序图进行一下分析:

1、外部主机发出片选信号,选中FX3芯片(上图中最上面的SLCS信号出高变低,低电平有效)。

2、外部主机发出FIFO ADDR选择信号,此信号与FX2中的FIFO ADDR信号相同,但概念上略有区别,以后会有说明(上图中上面的第二个信号FIFO ADDR)。

3、外部主机发出读SLRD信号,低电平有效(上图中的上面第三个信号SLRD,低电平有效)。

4、同时,外部主机发出SLOE信号,允许FX3将数据送到数据总线上;在读过程中,此信号可以一直保持为有效,低电平有效,或者些信号可以与SLRD连接在一起(上图中上面数第四个信号,低电平有效)。

5、外部主机发出SLRD信号后,FX3开始准备数据,之后将数据放在数据总线上(延迟时间为图中的tRDO)。第一个数据读取完后,FX3内部的数据指针自加1或减1,将第二个数据放在总线上(SLRD信号有效后),直到标志位FLAGA或FLAGB有效后(没有数据可读),结束此读的过程。

【关注图像采集视频传输】之 Cy3014 usb3.0 FIFO接口的更多相关文章

  1. 关注图像采集视频传输之USB3.0 应用

    参考文献 百度文库 http://baike.baidu.com/link?url=82OyhoL1AsNaT35CvscmeZqHjlggtFw-Cez2qYwjLHNXGhXfv38pUlsIJB ...

  2. 【关注图像采集视频传输】之CYUSB3014 EZ-USB FX3 Software Development Kit

    网址:http://www.cypress.com.与之前的High Speed FX2相比,新的产品叫Super Speed  FX3,沿用了之前的命名习惯.FX2芯片内嵌一个8051核,FX3则内 ...

  3. USB3.0 和usb 2.0的区别

    USB3.0拥有10倍于USB2.0的速度,可惜DIY“江湖”险恶,如果咱们不掌握如何识别USB3.0的方法,很容易被JS忽悠.何况,USB3.0主板不等于USB3.0机箱,很多朋友在选购时都忽略了一 ...

  4. USB3.0之高速视频传输测试 双目相机(mt9p031、mt9m001)带宽高达300M测试 配合isensor测试 500万像素15fps

    最近完善了下USB3.0的视频开发测试,主要优化了FPGA程序和固件,及其同步方式.对带宽和图像效果进行了仔细的测试 开发板架构(2CMOS+FPGA+2DDR2+USB3.0) 评估板底板配合2个M ...

  5. USB3.0 图像视频传输 开发 CYUSB3014开发基础(导入官方例程) 转

    CYPREE提供的FX3_SDK开发包里面有很多基础的内容,除了前面提到的几个pdf文件外,还有三个文件夹,是官方提供的基础例程.学习CYUSB3014应该就从这里开始,从这几个例程开始.例程共有三个 ...

  6. CC1605&CC1604 usb3.0+FPGA 高速视频采集 双目相机测评

    CC1605&CC1604 usb3.0+FPGA 高速视频采集 双目相机测评 摄像头配置:ov5640.OV5642.mt9p031.mt9m001c12stm OV5640 xclk:24 ...

  7. 速度竟差9倍!6款32GB USB3.0优盘横评

    速度竟差9倍!6款32GB USB3.0优盘横评 2014-08-22 05:04:00  [  中关村在线 原创  ]   作者: 蒋丽 |  责编:孙玉亮 收藏文章 分页阅读 分享到 评论(90) ...

  8. 第二十六篇:USB3.0高带宽ISO(48KBytes/125us)实战

    USB3.1技术已经推出, 10Gbps的速率足以满足数据, HD视频传输的要求. 要步入USB3.1的研发, 还得将USB3.0的基础打扎实. 微软提供的SUPER MUTT仅仅包括一个接口0, 其 ...

  9. 硕盟SM-A44|USB3.0转RJ45千兆网口转换器(TYPE A USB3.0 TO RJ45)

    硕盟SM-A44是一款USB3.0转RJ45千兆网口转换器.,转换USB端口到以太网端口.它让你投入低成本就可以轻松拥有千兆以太网.可将网络连接到台式机,笔记本电脑等等设备.硕盟 USB千兆网卡采用嵌 ...

随机推荐

  1. SqlServer2005 查询 第二讲 distinct

    今天我们来说distinct关键字的用法. distinct - distinct:我们可以这样理解成[过滤重复值] - select distinct deptno from emp // -- 首 ...

  2. 微擎 manifest.xml

    微擎 manifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns= ...

  3. nyoj 513-A+B Problem IV (java BigDecimal, stripTrailingZeros, toPlainString)

    513-A+B Problem IV 内存限制:64MB 时间限制:1000ms 特判: No 通过数:1 提交数:2 难度:3 题目描述: acmj最近发现在使用计算器计算高精度的大数加法时很不方便 ...

  4. mysql初级了解

    mysql是一个关系型数据库系统,可以存放若干个数据库,每个数据库中 可以存放若干张表,每张表中可以存放若干条记录 基本代码: 1.查看数据库   show databases: 2.创建数据库    ...

  5. C# Json之序列化与反序列化

    前言:在实际开发过程中经常都要和Json打交道,序列化与反序列化就成了开发中必不可缺的技能.本篇博客就教大家如何进行Json序列化与反序列化. 首先要添加引用NuGet包,Newtonsoft.Jso ...

  6. (四)OpenStack---M版---双节点搭建---Glance安装和配置

    ↓↓↓↓↓↓↓↓视频已上线B站↓↓↓↓↓↓↓↓ >>>>>>传送门 1.创建glance数据库 2.获得 admin 凭证来获取只有管理员能执行的命令的访问权限 3 ...

  7. Tesseract处理规范的文字

  8. 从BWM生产学习工厂模式

    工厂模式应用非常之广,在JDK底层源码以及各大主流框架中随处可见,一般以Factory结尾命名的类,比如Mybatis中的SqlSessionFactory,Spring中的BeanFactory等, ...

  9. 附011.Kubernetes-DNS及搭建

    一 Kubernetes DNS介绍 1.1 Kubernetes DNS发展 作为服务发现机制的基本功能,在集群内需要能够通过服务名对服务进行访问,因此需要一个集群范围内的DNS服务来完成从服务名到 ...

  10. 复制节点(cloneNode)

    DOM提供用来复制节点方法. cloneNode():将为给定节点创建一个副本,这个方法的返回值是一个指向新建克隆节点的引用指针, reference = node.cloneNode(deep) 这 ...