zoukankan      html  css  js  c++  java
  • 【关注图像采集视频传输】之 Cy3014 usb3.0 FIFO接口

    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 FilesCypressFX3 SDKfirmwareslavefifoslfifoasynccyfxslfifogpifdscr.c;另一个目录是C:Program FilesCypressFX3 SDKfirmwareslavefifoslfifosync cyfxslfifogpifdscr.c。用记事本打开后,可以发现主要是定义了一个数组,const uint32_t CyFxSlFifoAsyncGpifConfData[][2] ={...},不像CY7C68013A是用分散的寄存器来定义的(原理上都一样,都是寄存器)。

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

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

    FIFO

      从引脚连接上,可以说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有效后(没有数据可读),结束此读的过程。

  • 相关阅读:
    资源加载相关
    Ubuntu 使用root登陆帐户
    安装zookeeper时,启动成功,可是状态查询未成功
    使用WinSCP远程连接虚拟机
    分布式服务管理框架-Zookeeper客户端zkCli.sh使用详解
    js怎么监听一类标签的点击事件
    js获取select标签选中的值
    学习
    druid
    Linux上非root用户jdk环境变量配置
  • 原文地址:https://www.cnblogs.com/ccjt/p/4551425.html
Copyright © 2011-2022 走看看