CY7C68013与FPGA接口的Verilog

article/2025/11/7 21:07:13

USB(通用串行总线)是英特尔、微软、IBM、康柏等公司1994年联合制定的一种通用串行总线规范,它解决了与网络通信问题,而且端口扩展性能好、容易使用。最新的USB2.0支持3种速率:低速1.5 Mbit/s,全速12 Mbit/s,高速480 Mbit/s。这3种速率可以满足目前大部分外设接口的需要。

本文介绍了目前使用较多的USB2.0控制器CY7C68013芯片与FPGA(现场可编程门阵列)芯片接口的Verilog HDL(硬件描述语言)实现。本系统可扩展,完全可用于其他高速数据采集系统中。

1 系统构成

本系统主要是由FPGA和USB2.0控制器CY7C268013组成,系统框图及其信号连接关系如图1所示。可以根据实际系统的需要,用FPGA实现预定功能,如数据采集卡、控制硬盘读写等。
 

http://www.21ic.com/d/file/201202/346350893fac758484677e7cdb353ecf.jpg

1.1 控制器CY7C68013

Cypress公司的EZ-USB FX 2是第一个包含USB2.0的集成微控制器,它内部集成了1个增强型的8051、1个智能USB串行接口引擎、1个USB数据收发器、3个8位I/O口、16位地址线、8.5 kB RAM和4 kBFIFO等。增强性8051内核完全与标准8051兼容,而性能可达到标准8051的3倍以上。其框图如图2所示。

http://www.21ic.com/d/file/201202/9cbfa3caed4c2fc4032c210064483a4b.jpg

1.1.1 CY7C68013结构特点

EZ-USB FX2提供了一种独持架构,使USB接口和应用环境直接共享FIFO,而微控制器可不参与数据传输,但允许以FIFO或RAM的方式访问这些共享FIFO,这种被称之为"量子FIFO"的处理架构,较好地解决了USB高速模式的带宽问题。

FX2芯片在数据传输时主要利用了4 kB的FIFO,分为7个端点:EPOIN&OUT、EP1IN、EP1OUT、EP2、EP4、EP6和EP8。其中EPO、EPlIN和EP1OUT是3个64 B的缓存,只能被固件访问,EP0是一个默认的数据输入输出端口缓存;EP1IN和EP1OUT是单独的64 B缓存,呵以配置这些端点为块传输、中断传输或同步传输;端点2、4、6、8是大容量高带宽的数据传输端点,可以配置为各种带宽以满足实际需要,端点2、4是输出端点,端点6、8是输入端点。值得注意的是,端点4、8能配置为每帧512 B,而端点2、6却能配置为每帧512 B或1 024 B,并可配置为2、3、4级,这样EP2或EP6最大能配置为4 kB的缓存。

其在内部的传输控制是通过full(满)和empty(空)两个控制信号来完成的,当full为真时不能再写数据,当empty为真时不能再对FIFO进行读,其内部数据传输示意图如图3所示。

如图3所示,USB执行OUT传输,将EP2端点设成512 B四重FIFO。在USB端和外部接门端都并不知道有四重FIFO。USB端只要有1个FIFO为"半满",就可以继续发送数据。当操作的FIFO写"满"时,FX2自动将其转换到外部接口端,排队等候读取;并将USB接口队列中下一个为"空"的FIFO转移到USB接口上,供其继续写数据。外部接门端与此类似,只要有1个FIFO为"半满",就可以继续读取数据。当前操作的FIFO读"空"时,FX2自动将其转换到USB接口端,排队等候写入;并将外部接口队列中下一个为"满"的FIFO转移到外部接口上,供其继续读取。
 

http://www.21ic.com/d/file/201202/9a1e53cc1ac6ac418c485701b334431a.jpg

FX2有Slave FIFO和GPIF两种接口方式。

Slave FIFO是从机方式,即FX的CPU不直接参与USB数据处理,而是简单地把FX作为USB和外部数据处理逻辑(如ASIC、DSP和IDE(串行接口引擎)控制器)之间的通道,数据流并不经过CPU,而是通过FX的FIFO直接传输。FIFO通过外部主机控制,同时,FIFO提供所需的时序信号、握手信号(满、空等)和输出使能等。

可编程接口GPIF是主机方式,GPIF作为内部主机控制端点FIFO,其core是一个可编程状态机,可以生成多达6个控制输出信号和9个地址输出信号,能外接6个外部Ready输入信号和2个内部Ready输入信号。通过用户自定义的波形描述符来控制状态机,使用软件编程读写控制波形,几乎可以对任何8/16 hit接口的控制器、存储器和总线进行数据的主动读写,非常灵活。

2 接口的Verilog HDL编程实现

在本设计巾采用Slave FIFO从机方式实现FPGA对FX的控制,通过Verilog HDL编程实现。FPGA可以根据实际情况选定。我们在设计时选用Xilinx公司的Virtex-Ⅱ设备(XC2V10004FG456C)。

2.1 异步FIFO读数据

FX读数据也就是数据从FX传到FPGA的过程,其过程如下:

a)反复检测控制线状态,当读事件发生时,即控制线con_out_z=0和RD_disk=10时,转到 b;

b)分配FIFOADR[1:0]=00,这时FIFO指针会指向输出端点,表明使用端点EP2;

c)检查FIFO是否空,当empy=1时表示FIFO不空,转到状态d,否则保持在状态C;

d)赋值SLOE=0,使双向数据线FD在输出状态,采样FD数据线上的数据,并在SLRD的上升沿使FIFO指针门动加1,跳转到e;

e)假如有更多的数据需要读,转到状态b,否则转到状态a。

对读数据编程如下:

http://www.21ic.com/d/file/201202/236a403b8af0e00a96f82046bae091cd.jpg

用Mentor软件Modelsim进行仿真验证,其仿真波形如图4所示。在此过程中,SLRD信号特别重要,在SLRD的下降沿把FlFO中的数据放到FD数据线上;在SLRD的上升沿把FIFO指针加1,并指向下一个单元。
 

http://www.21ic.com/d/file/201202/fd286d2c7aab59c7f9b9831bf606ae9a.jpg

2.2 异步FIFO写数据

向FIFO写数据是读数据的逆过程,也就是把FP-GA数据写入FX的FIFO,其编程过程如下:

a)查询控制信号线con_out_z和WR_disk,看是否有读事件发生,如果有,就转移到状态b,否则保持在状态a;

b)分配FIFOAFR[1:0]=10,FIFO指针指向输入端点,转向状态c;

c)检查FIFO的满标志是否为1,假如fuIl=1,表示FIFO不满,转到状态d,否则保持在状态c;

d)把外部数据indata放在FD上,同时把SLWR拉高,以使得FIFO指针自动加1,然后转到状态e;

e)假如有更多的数据要传输,转到状态b,否则转到状态a。

其程序与写FIFO数据时一样,只是在生成SLWR信号时,需要注意控制信号之间的保持延时时间约束,这可以通过仿真结果进行适当修改。

http://www.21ic.com/d/file/201202/bbc00b4d9846c06824b78bae27bbc811.jpg

读数据信号仿真波形如图5所示。但必须注意的是,在SLWR的下降沿把indata数据线上的数据放到FD数据线上;在SLWR的上降沿把FD数据线上的数据放人FIFO,并同时使FIFO指针加1,指向下一个缓存单元。
 

http://www.21ic.com/d/file/201202/ca3b00b11165fc5956b8a48ea006315d.jpg

3 结束语

现在USB2.O控制器CY7C68013已经应用到许多数据传输领域,由于此芯片灵活的接口和可编程特性简化了外部硬件的设计,提高了系统可靠性,也利于PCB(印制电路板)的制作与调试。本设计可扩展性好,因此可用于需要处理大容量的数据采集系统中。本设计已经用于对IDE硬盘的读写控制中,实现了对IDE硬盘的快速读写。


http://chatgpt.dhexx.cn/article/jRVfFGlY.shtml

相关文章

CY7C68013A之LED闪烁

#include "fx2.h" #include "fx2regs.h"sbit LED_PIN IOD ^ 3;main() {unsigned long i 0;OED | 0x08; //PD3 Output Enable;while(TRUE){if( i > 50000 ){i 0;LED_PIN ~LED_PIN;}} } 程序下载 Download是将程序下载到RAM,Lg E…

CY7C68013与FPGA接口的Verilog_HDL实现

USB(通用串行总线)是英特尔、微软、IBM、康柏等公司1994年联合制定的一种通用串行总线规范,它解决了与网络通信问题,而且端口扩展性能好、容易使用。最新的USB2.0支持3种速率:低速1.5 Mbit/s,全速12 Mbit/s,高速480 Mb…

cy7c68013linux驱动,CY7C68013A USB Board教程2:CY7C68013A USB Board驱动安装

2、我们打开软件,看看可以怎么加载驱动: 3、这里面涉及到模块的VID和PID,具体怎么看呢,详见下图: 4、接着就是修改驱动文件上的VID和PID了,我们打开安装路径下的驱动目录,如下: 5、找…

FPGA----CY7C68013使用记录

一、CY7C68013简介 CY7C68013是Cypress公司的FX2系列芯片,是一款USB2.0芯片,最大传输速度60MByte/S ,半双工通信方式。 功能引脚说明FD0~FD718~25数据线低字节FD8~FD1545~52数据线高字节 FIFOADDR0 FIFOADDR1 37 38 地址线,接收…

数字图像介绍

一、什么是数字图像 数字图像就是将图像用数字表示。 二、数字图像的起源 三、常见的成像方式 电磁波,最基本的单元叫做光子。 光子具有能量。能量E h*f。h是常数,f是频率。 又频率与波长成反比。 3.1 gama射线成像 在核聚变…

数字图像处理(1)——认识数字图像

目录 1、数字图像的构成 2、不同环境图像的存储方式 2.1、计算机中的颜色是离散的 2.2、MATLAB、OpenCV、Python中的图像都是什么 3、图像中的信息 4、数字图像处理的基本步骤 5、预备知识 5.1、邻接性、连通性、区域和边界 5.1.1 邻接性 5.1.2、连通性 5.1.3、区域…

数字图像相关(Digital Image Correlation, DIC)中的非线性优化方法IC-GN的数值解计算

目录 前言内容回顾一.IC-GN中增量 Δ P \Delta \boldsymbol P ΔP的数值解二.写在最后参考引用 前言 由于本人近期正在展开数字图像相关技术用于测量材料形变方向的研究,其中需要对别人现有算法的复现和调研,尽管其中很多算法都已经非常成熟&#xff0c…

数字图像处理:像素间的一些基本关系

图像分析的主要目的之一在于获取图像中感兴趣的目标并对目标之间的关系进行分析;目标是由图像中相关像素联合组成的;相关像素在空间的位置和属性都有密切关系,它们一半构成图像中连通组元;所以要分析像素之间的关系,不…

数字图像和数字图像处理

Digital Image Processing[数字图像和数字图像处理] 数字图像就是指代表图像的矩阵。 数字图像处理就是对图像矩阵进行各种数学运算。 在进行图像处理时需要一些数学基础,主要包括线性系统、傅立叶变换、沃尔什变换和小波变换等。 1. 景象:人眼所看到的外部世界。…

数字图像基本处理算法

数字图像基本处理算法 xizero00 常熟理工学院(CIT) 计算机科学与工程学院 下一代互联网实验室(NGIL Lab) Email:xizero00163.com 由于SIFT算法需要用到很多算法,所以这段时间研究了一下一些最基本的图像处理算法, 好了&…

图像理论知识_什么是数字图像处理?

数字图像处理,即数字,将图像转化为数字的形式,对图像做处理,我们平时所见到的图像,在计算机中都是一组数字,当通过相机捕获现实世界的景物时,相机会捕获现实世界的光源信号,并转化为…

数字图像简介及表示

数字图像处理 数字图像处理(Digital Image Processing)又称为计算机图像处理,是一种将图像信号数字化后利用计算进行处理的过程。图像 图像是三维世界在二维平面的表示,具体来说就是用光学器件对一个物体,一个人或是…

数字图像处理(入门篇)一 图像的数字化与表示

目录 1 人眼图像是如何形成的? 2 图像的感知与获取? 3 图像的数字化 4 数字图像的表示 1 人眼图像是如何形成的? 人眼近似为一个球体,物体的光线经过角膜和晶状体的折射,在视网膜上形成“倒立缩小”的实像。 视网膜…

数字图像处理——相关检测

原理:利用模板与图像做相关运算得到相关值矩阵,相关值最大的位置即检测出的目标位置。相关值计算公式: Matlab代码: clear,clc; car imread(car.png); mask imread(wheel.png); [h1,w1] size(car); [h2,w2] size(mask);car_e…

#DIC#数字图像相关

1.1DIC基本原理 在实验中DIC特指一种种光学测量技术,⽤于在整个⼒学试验过程中测量试样表⾯上不断变化的全场⼆维或三维坐标。测量出的坐标场可⽤于进⼀步导出位移、应变、应变率、速度和曲率等感兴趣量(Quantities-of-Interest,QOI&#xff…

二维数字图像相关算法软件Ncorr的使用心得

二维数字图像相关(2D Digital Image Correlation)是一种非接触式的光学测量方法,常应用于图像分析处理上,它可以根据变形前后的2张或多张图像,求解出规定区域 近似的位移与应变情况。 Ncorr使用流程 Ncorr下载与编译1.下载2.编译 Ncorr通用DI…

数字图像相关(Digital Image Correlation, DIC)中的非线性优化方法(FA-GN与IC-GN)

目录 前言内容回顾一. 非线性优化数学模型二. 前向累加高斯-牛顿法——FA-GN(Forward Additive Gauss-Newton method)三. 逆合成高斯-牛顿法——IC-GN(Inverse compositional Gauss-Newton method)1.非线性优化数学模型变形2.数学…

利用图像来测量的技术——数字图像相关法(DIC)

数字图像相关法 数字图像相关法(digital image correlation method,DIC)是对未变形和变形状态下的试件图像进行计算机处理,获得全场位移的一种方法。也就是说你只需要提供两张图片——一张参考图片(refference image)和一张变形状态下的图片(current image)&#x…

Matlab实现二维数字图像相关(2D Digital Image Correlation, 2D-DIC)【ADIC2D代码复现及原理介绍】

目录 前言一.数字图像相关(Digital Image Correlation)二.相关运算1.数学模型2.形函数3.相关标准其他知识 三.ADIC2D代码解释1.ImgCorr2.SubCorr 四.写在最后参考引用 前言 由于本人近期正在展开数字图像相关技术用于测量材料形变方向的研究&#xff0c…

六款练手的javaweb项目源码!

分享几个项目源码! 1,电子商城项目 采用了Struts、spring、hibernate,数据库使用了MySQL。 2,CRM客户关系管理系统 没有使用框架,采用了jsp、Servlet,数据库使用了Oracle。 3,投票管理系统…