68013 slave fifo说明文档 - 图文
更新时间:2024-07-03 13:44:01 阅读量: 综合文库 文档下载
- 68013推荐度:
- 相关推荐
USB CPLD开发板同步传输
目录
第一章FX2特性介绍……………………………………………………………….3
1.1介绍………………………………………………………………………..3 1.2结构………………………………………………………………………..3 1.3特征………………………………………………………………………..4 第二章Slave FIFO传输…………………………………………………………….5
2.1概述………………………………………………………………………..5 2.2硬件连接…………………………………………………………………..5 2.3 Slave FIFO的几种传输方式…………………………………………….6
2.3.1 同步Slave FIFO写…………………………………………….6 2.3.2 同步Slave FIFO读…………………………………………….9 2.3.3异步Slave FIFO写…………………………………………….11 2.3.4异步Slave FIFO读…………………………………………….12
第三章 寄存器设置…………………………………………………………..…….15
3.1 IFCONFIG………………………………………………………….……15 3.2 PINFLAGSAB/CD………………………………………………….…...16 3.3 FIFORESET……………………………………………………….…….17 3.4 FIFOPINPOLAR………………………………………………….…….18 3.5 EPxCFG………………………………………………………….………18 3.6 EPxFIFOCFG……………………………………………………….…..19 3.7 EPxAUTOINLENH/L…………………………………………………..20 3.8 EPxFIFOPFH/L………………………………………………………....21 3.9 INPKTEND……………………………………………………………...22 3.10 OUTPKTEND………………………………………………………….22 3.11 EPxFIFOIE和EPxFIFOIRQ………………………………………...22 3.12PORTACFG………………………………………………………….....23 3.13 EPxFIFOBCH EPxFIFOBCL………………………………………...23 3.14 EP24\\68FIFOFLAG……………………………………………………24
1
3.15其它通用寄存器………………………………………………………..25 第四章 同步slave fifo测试操作指南……………………………………….…….26
4.1安装软件包……………………………………………………………....26 4.2同步写FIFO测试……………………………………………………….26 4.3同步读FIFO测试……………………………………………………….30 4.4同步读写FIFO测试…………………………………………………….31 第五章 艾曼FPGA工作室开发板USB2CPLD软件设计…………………….….…….33
5.1 68013固件程序设计…………………………………………………….33 5.2 FPGA源代码设计………………………………………………………35 第六章 USB2FPGA硬件原理图…………………………………………..……...37 第七章 改板后注意的问题……………………………………………….……..…37
2
一.FX2特性介绍
1.1介绍
Cypress Semiconductor公司的EZ-USB FX2是世界上第一款集成USB2.0的微处理器,它集成了USB2.0收发器、SIE(串行接口引擎)、增强的8051微控制器和可编程的外围接口。FX2这种独创性结构可使数据传输率达到56Mbytes/s,即USB2.0允许的最大带宽。在FX2中,智能SIE可以硬件处理许多USB1.1和USB2.0协议,从而减少了开发时间和确保了USB的兼容性。GPIF(General Programmable Interface)和主/从端点FIFO(8位或16位数据总线)为ATA、UTOPIA、EPP、PCMCIA和DSP等提供了简单和无缝连接接口。
1.2结构
CY7C68013结构图如图1所示。它有三种封装形式:56SSOP,100TQFP和128TQFP。
1.3特征:
★ 内嵌480MBit/s的收发器,锁相环PLL,串行接口引擎SIE——集成了整个USB 2.0
3
协议的物理层。
★ 为适应USB 2.0的480MBit/s的速率,FIFO端点可配置成2,3,4个缓冲区。 ★ 内嵌可工作在48MHz的增强型8051,它具有以下特征:
- 具有256Byte的寄存器空间,两个串口,三个定时器,两个数据指针。 - 四个机器周期(工作在48MHz下时为83.3ns)即组成一个指令周期。 - 特殊功能寄存器(包括I/O口控制寄存器)可高速访问。 - 应用USB向量中断,具有极短的ISR响应时间。
- 只用作USB事务管理,控制,不参与数据传输,较好地解决了USB高速模式的带宽问题。
★ “软配置”——USB固件可由USB总线下载,片上不需集成ROM。
★ 拥有四个FIFO接口,可工作在内部或外部时钟下。端点和FIFO接口的应用使外部逻辑和USB总线可高速连接。
★ 内嵌通用可编程接口GPIF,它是一个状态机,可充当主控制器,提供外部逻辑和USB总线的“无胶粘贴”。
★ 一种单片USB 2.0外设解决方案,不需要外部的协议物理层,FX2把所有的功能集成在一个芯片上。
4
状态3:从数据线上读数,使SLRD有效,持续一个IFCLK周期,以递增FIFO读指针,进状态4;
状态4:如需传输更多的数,进状态2,否则进状态IDLE。 状态跳转示意图如下:
几种情况的时序图示意如下(FULL,EMPTY,SLRD,SLOE均假定低有效):
图示正常情况时的时序。
10
图示FIFO被读空时的情况。 2.3.3 异步Slave FIFO写:
异步Slave FIFO写的标准连接图如下:
异步Slave FIFO写的标准时序如下: IDLE:当写事件发生时,进状态1;
状态1:使FIFOADR[1:0]指向IN FIFO,进状态2; 状态2:如FIFO满,在本状态等待,否则进状态3;
状态3:驱动数据到数据线上,使SLWR有效,再无效,以使FIFO写指针递增,进状态4;
状态4:如需传输更多的数,进状态2,否则进状态IDLE。
11
状态跳转示意图如下:
几种情况的时序图示意如下(FULL,EMPTY,SLWR,PKTEND均假定低有效):
图示FIFO中本来没有数据,外部逻辑写入第一个数据时的情况。 2.3.4 异步Slave FIFO读:
异步Slave FIFO读的标准连接图如下:
12
异步Slave FIFO读的标准时序如下: IDLE:当读事件发生时,进状态1;
状态1:使FIFOADR[1:0]指向OUT FIFO,进状态2; 状态2:如FIFO空,在本状态等待,否则进状态3;
状态3:使SLOE有效,使SLRD有效,从数据线上读数,再使SLRD无效,,以递增FIFO读指针,再使SLOE无效,进状态4;
状态4:如需传输更多的数,进状态2,否则进状态IDLE。 状态跳转示意图如下:
几种情况的时序图示意如下(FULL,EMPTY,SLRD,SLOE均假定低有效):
13
图示正常情况时的时序。
14
三、寄存器设置
slave fifo模式下常用寄存器
IFCONFIG PINFLAGAB PINFLAGCK FIFORESET FIFOPINPOLAR EPxCFG EPxFIFOCFG EPxAUTOINLENH:L
EPxFIFOPFH/L PORTACFG INPKTEND EPxFLAGIE EPxFLAGIRQ EPxFIFOBCH:L EPxFLAGS EPxBUF 3.1 IFCONFIG(E601):接口配置寄存器
IFCLKSRC:FIFO时钟内部/外部时钟源选择,0外部时钟源,1内部时钟源。 3048MHZ:如选择内部时钟,30MHz/48MHz频率选择,0 IFCLK时钟30M,1 IFCLK时钟48M。
IFCLKOE:IFCLK时钟输出使能,0关闭,1打开。 IFCLKPOL:IFCLK输出反转使能,0不反转,1反转。
ASYNC:Slave FIFO同步/异步工作方式选择,0同步,1异步。
GSTATE:选择是否将GSTATE[2:0]在PORTE[2:0]输出,0关闭,1使能。 IFCFG1:0:FX2 I/O端口模式选择,也既是上面所说的FX2与外部逻辑传输方式的选择。00:I/O方式;01:reserved;10:Slave FIFO方式;11:GPIF方式。
15
3.2 PINFLAGSAB/CD(E602:E603):FLAGx引脚配置寄存器
FLAGA,FLAGB,FLAGC,FLAGD反映FIFO状态选择。每个脚有编址/固定两种模式:如设为编址模式,则它们都反映FIFOADR[1:0]脚当前所指端点的状态,其中,FLAGA反映“可编程极限”,FLAGB反映“满”标志,FLAGC反映“空”标志,FLAGD不存在;如设为固定模式,它们均可任意设置成反映任意端点的任意标志,而不受限于FIFOADR[1:0]脚当前所指端点的状态。
Slave fifo模式中,用引脚FLAGA~FLAGD来定义用端点FIFO的状态,并可灵活编程来实现FLAGx设置,见表3.2
16
说明:
1. PF表示FIFO编程状态,EF表示FIFO已空,FF表示FIFO已满 2. 0000为索引模式,其它为固定模式
3.3 FIFORESET(E604):端点缓冲区复位寄存器
将FIFO复位到初始状态。具体过程是,写0x80到此寄存器,NAK所有主机请求;写
17
0x02,0x04,0x06,0x08分别复位各个端点;写0x00,结束复位过程。
一般,在每一次开始进行slave FIFO或GPIF传输之前,先复位端点,再清空端点,然后即可进行数据传输。。
NAKALL-0关闭NAK功能,1用NAK响应主控器请求,例如在复位端点FIFO时,为了保证复位正常,防止主控器请求的干扰,先写入0x80,然后复位端点,最后写入0x00,使能请求响应。
EP3~EP0,1复位对应的端点缓冲区,其中EP3~EP0分别对应端点EP8,EP6,EP4,EP2。
3.4 FIFOPINPOLAR(E609):控制引脚极性设置寄存器
Slave FIFO引脚极性设置:0低有效,1高有效。 提示:PF极性没有提供寄存器设置,为高有效。
3.5 EPxCFG(E610:E615):端点2,4,6,8配置
18
VALID-0端点无效,1端点有效
DIR-端点方向,0=OUT方向,1=IN方向,默认端点2,4为IN,端点6,8为OUT TYPE1,TYPE0-端点类型,见表3.4
SIZE-缓冲区大小(仅端点2和端点),0=512字节,1=1024字节 BUF1,BUF0-端点缓冲区个数(仅端点2和端点6),见表3.5
19
3. 6 EPxFIFOCFG(E618:E61B):端点FIFO配置寄存器
INFM1:FIFO状态标志是否提前一个字节有效选择,IN端点满减1,1使能,0非使能。
OEP1:FIFO状态标志是否提前一个字节有效选择,OUT端点空加1,1使能,0非使能。
AUTOOUT:在前面,我们说Slave FIFO方式下的数据传输过程不需要FX2固件的参与,实际上是不确切的,应该说,FX2固件可以不参与数据传输过程,也可以参与。AUTOOUT即可设置。如果设置AUTOOUT为1,则就如上面所说的,FX2固件只需要完成初始化工作,真正的数据传输是不需要FX2固件的参与的,具体的说,当FX2从主机收到一包数据时,外部逻辑即可看到FIFO端点缓冲区状态的改变,然后从中取数。如果设置AUTOOUT为0,则数据传输过程就需要FX2参与了,此时当FX2从主机收到一包数据时,FIFO端点缓冲区状态的改变并不会立刻在端口显现,而是固件先看到FIFO端点状态的改变,此时,FX2固件可以做三件事情:
a.向OUTPKTEND中的SKIP位写0,使FIFO端点状态的改变在端口显现,从而使外部逻辑可以从FIFO端点中读取数据;
b.向OUTPKTEND中的SKIP位写1,丢掉这包数据,这样就相当于主机从来就没有发送这一包数据,外部逻辑当然也不能从FIFO端点中读到这一包数据了;
c.从新编辑这一包数据,设置完全重写整个包的数据,再写EPxBC寄存器,把数据传给外部逻辑。
在FX2复位之后,如果其OUT端点缓冲区内有一包数据未处理,这包数据并不会自动传给外部逻辑。所以,为保证OUT端点缓冲区内没有未处理数据,在reset FX2后,要清空一下OUT端点缓冲区,具体做法就是向SKIP位写1(OUT端点缓冲区有几个缓冲区就写几次)。
AUTOIN:Auto IN和Auto OUT有一点不同,在Auto OUT里,包的大小只能是512
20
或1024,而在Auto IN里,包的大小可以任意设定,甚至可以是0字节,这可以通过EPxAUTOINLENTH/L设置。
和AUTOOUT类似,当设置AUTOIN = 0时,FX2固件可以传输,丢弃,修改外部逻辑传过来的数据,这通过向INPTKEND寄存器的SKIP写不同的值实现。
ZEROLENIN:是否允许传输0字节,1使能,0非使能。
WORDWIDE:8 Bit,16 Bit选择。当选择8 Bit模式时,Port B将是FD[7:0];当选择16 Bit模式时,Port D将是FD[15:8],1则为16位,0则为8位。
3.7 EPxAUTOINLENH/L(E620:E627):端点2,4,6,8AUTOIN长度设置(仅IN端点有效)
设置AUTOIN时自动传输的包大小(注意,不能大于IN端点的缓冲区的大小)。
说明:PL10仅端点2和6有效
3.8 EPxFIFOPFH/L(E630:E637):FIFO可编程PF状态长度设置
21
DECIS-0小于等于门限值PF有效,1大于等于门限值PF有效 PKSTAT- 1.
OUT端点FIFO:门限值为PFC12:0设置,当FIFO长度小于等于门限值(DECIS=0),或者FIFO长度大于等于门限值(DECIS=1),则PF有效。 2. 3.
IN端点FIFO,且PKTSTAT=1:门限值为PFC9:0
IN端点FIFO,且PKTSTAT=0:门限值由两部分组成:PKTS2:0(数据包)再加上PFC9:0(当前数据长度)。
解释:
对于OUT包,极限存储在PFC[12:0]中,在整个FIFO缓冲区中的数据数目少于等于(DECIS=0)或大于等于(DECIS=1)这个极限时,PF将有效。
对于IN包,当PKTSTAT=1时,极限存储在两部分:PKTS[2:0]存储极限包数(已
22
经交给SIE但未传给主机的包数),PFC[9:0]存储极限字节数(正在编辑的包里的字节数)。在整个FIFO缓冲区中的数据数目少于等于(DECIS=0)或大于等于(DECIS=1)这个极限时,PF将有效。
3.9 INPKTEND(E648):结束IN传输
SKIP-当ENH_PKT(REVCTL寄存器bit0)为1时,0表示自动“分配”一个IN缓冲区,1表示将跳过一个IN缓冲区
EP3,EP2,EP1,EP0-代替PKTEND引脚功能,软件强行结束IN端点8,6,4,2 IN数据传输,传输短包。
3.10 OUTPKTEND(E649):强行结束OUT传输寄存器
SKIP-当ENH_PKT(REVCTL寄存器bit0)为1时,0表示自动“分配”一个OUT缓冲区,1表示将跳过一个OUT缓冲区
EP3,EP2,EP1,EP0-代替EPxBLH.7=1引脚功能,软件强行结束OUT端点8,6,4,2数据传输。
3.11 EPxFIFOIE和EPxFIFOIRQ(E652:E657):端点FIFO中断(INT4)使能和请求
EDGPF-PF中断触发沿,0上升沿触发,1下降沿触发
23
PF-1使能端点FIFO PF中断,0非使能 EF-1使能端点FIFO EF中断,0非使能 FF-1使能端点FIFO FF中断,0非使能
PF-0无PF中断,1有PF中断 EF-0无EF中断,1有EF中断 PF-0无FF中断,1有FF中断
3.12PORTACFG:端口A配置
置1使能端口A复用引脚,虽然SLCS出现在PORTACFG.6的位置上,当IFCFG1:0=11时,PORTA.7复用为SLCS,FLAGD也出现在PORTA.7引脚上,当PORTACFG.7置位时,PORTA.7复用为FLAGD输出,当PORTACFG.6和PORTACFG.7均为1,则PORTA.7复用为FLAGD。所以PORTACFG7:6=01时,PORTA.7复用为SLCS。
3.13 EPxFIFOBCH EPxFIFOBCL(E6AB:E6B2):端点FIFO计数
24
当前端点缓冲区中已有的数据数目。 说明:
端点2最大缓冲区计数BC[12:0],为4096字节。 端点6最大缓冲区计数BC[11:0],为2048字节。 端点4和8最大缓冲区计数BC[10:0],为1024字节。
3.14 EP24\\68FIFOFLAG(SFR AB:SFR AC)和EPxFIFOFLGS(E6A7:E6AA):端点FIFO状态标志寄存器
3.15其它通用寄存器
CPUCS(E600):
PORTCSTB:128脚或100脚的RD,WR输出使能。
CLKSPD1,CLKSPD0:CPU频率选择,00:12MHz(默认);01:24MHz;10:48MHz;11:Reserved。
CLKINV:CLKOUT反转选择。 CLKOE:CLKOUT输出使能。
REVCTL(E608):
正常情况下,简单地设置DYN_OUT和ENH_PKT位为1即可。
25
四、同步slave fifo测试操作指南
4.1安装软件包
第一次使用时,首先要安装CYPRESS开发包,安装完毕后,在目录“windows\\system32\\drivers”中有一个文件ezusb.sys,用驱动程序目录下的ezusb.sys将其
26
代替,两个驱动程序文件的区别是,后者将缓冲区的大小扩展为6M字节,详见驱动代码。
图4.1
4.2同步写FIFO测试
插上开发板后,系统默认采用USB接口供电,PC上安装好下载线,并将下载线与开发板FPGA/CPLD的AS下载口或者JTAG下载连接好,下载采用AS方式,将FPGA程序下载到配置芯片中,打开ALTERA的编译软件Quartus 5.0,将“相应目录/写FIFO”下的wr_fifo.qpf项目文件打开,界面见图4.2,点击“change file”,在弹出界面中选择下载文件,将wr_fifo.pof下载到FPGA中。(也可以选择JTAG方式下载到FPGA中,当然这时也可以选择的文件类型有.sof文件格式)
27
图4.2
接着打开CYPRESS EZUSB控制面板,见图4.3,将“相应目录/固件源代码/fw”目录下的固件程序slavefifo.hex,通过USB接口下载到FX2中,下载成功后,提示slave fifo设备安装成功。
28
图4.3
下载完FPGA程序与固件程序后,就可以通过应用程序进行USB传输测试,同步写FIFO测试中,FPGA程序内部生成一个16位递增计数器,写入FX2 FIFO中,并通过FX2发送给PC,如果FX2内部FIFO满,则计数器停止计数,非满则计数并写入FX2的FIFO中。
应用程序位于“相应目录/SYN同步方式/写FIFO/Apptest/Release”目录下.,打开应用程序界面如图4.4,打开应用程序后,首先在下面文本显示框中,出现“打开设备成功”的提示,接下来点击界面上启动读线程,在文本框中开始显示测试结果(包括测试速度,传输字节与花费时间),并在上面显示通过的包数与出现的错误情况。点击“读测试”可以在当前目录下保存读到到的测试数据,并且可以在Ultraedit编辑软件下打开.bin数据文件,查看16位计数器计数数据是否完整,从而测试数据传输中是否有数据丢失,如图4.5。
29
图4.4
30
图4.5
根据主机主板不同,测试速度也不一样,一般数据传输可以在40MB/S左右。 注意:
1、 USB测试在USB2.0主板上进行。
2、 如果主机USB口通过PCI卡扩展出来的,将影响测试速度。
五、开发板USB2FPGA软件设计
5.1 68013固件程序设计
void TD_Init( void )部分代码注释 //时钟设置
//CPUCS = 0x02; //12MHZ CLKOUT ENALBE
//CPUCS = 0x0a; //24MHZ CLKOUT ENALBE CPUCS = 0x12; //48MHZ CLKOUT ENALBE
IFCONFIG =0x43;//使用外部时钟,IFCLK输入不反向
31
SYNCDELAY;
EP2CFG=0xA0; //需要设定为四缓冲,每个缓冲区大小为512字节 SYNCDELAY; EP4CFG=0x00; SYNCDELAY; EP6CFG=0xE0; SYNCDELAY; EP8CFG=0x00;
SYNCDELAY;
FIFORESET = 0x80; SYNCDELAY; FIFORESET = 0x02; SYNCDELAY; FIFORESET = 0x06; SYNCDELAY; FIFORESET = 0x00;
SYNCDELAY;
PINFLAGSAB = 0xE6; SYNCDELAY;
PINFLAGSCD = 0xf8; SYNCDELAY;
PORTACFG |= 0x00; //0x40; SYNCDELAY;
FIFOPINPOLAR = 0x00; SYNCDELAY;
// activate NAK-ALL to avoid race conditions // see TRM section 15.14 // reset, FIFO 2 // // reset, FIFO 6 //
// deactivate NAK-ALL // FLAGA - fixed EP6PF, FLAGB - fixed EP6FF // FLAGC - fixed EP2EF, FLAGD - reserved // SLCS, set alt. func. of PA7 pin // all signals active low, 32
OEA|=0x0F;
//小于64字节有效
//EP6FIFOPFH=0x00; //DEIS PKSTAT PK2 PK1 PK0 0 PFC9 PFC8 //EP6FIFOPFL=0x40; //PFC7 PFC6 PFC5 PFC4 PFC3 PFC2 PFC1 PFC0
// handle the case where we were already in AUTO mode...
EP2FIFOCFG = 0x01; // AUTOOUT=0, WORDWIDE=1 SYNCDELAY;
EP2FIFOCFG = 0x11; // AUTOOUT=1, WORDWIDE=1 SYNCDELAY;
EP6FIFOCFG = 0x09; // AUTOIN=1, ZEROLENIN=0, WORDWIDE=1 SYNCDELAY;
六、USB2FPGA硬件原理图
在此不再列出硬件原理图,请参见光盘里面电路图和相关说明文档。
33
34
正在阅读:
68013 slave fifo说明文档 - 图文07-03
廖金精雷霆八架与律吕择日法106-21
市审计局2021年审计监督工作总结报告08-03
浅谈现代教育技术学生德育之顽石05-30
仓储在现代企业中的重要性05-27
市统计局推进全国百强县市申报评比工作总结及下一年工作计划08-04
浙江省2011年1月高等教育自学考试生理心理学试题09-01
circRNA03-08
土壤污染状况调查报告04-05
2018年度县广播电视局工作总结12-14
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 说明
- 文档
- 图文
- 68013
- slave
- fifo
- 桥梁工程临时用电方案计算书
- 危化品行业适用的法律法规清单
- 高中历史学科核心素养解读
- 手册
- 文库精品文档中考作文必备关于感恩节祝福的素材
- 小组合作模式下班级自主化管理的探索与实践(1)
- 综述修改
- 《数据结构》课程设计报告
- 第十二章 微生物的进化、系统发育和分类鉴定 - 图文
- 变压器的基本原理和结构
- 行政法 选择题考试 汇总
- 基于Linux的DHCP服务器配置毕业论文 - 图文
- 智能小车设计毕业设计论文
- 《农产品营销》教学大纲
- 物联网工程专业本科导师制教学模式在应用型本科高校的改革与研究
- 英语作文中常用短语
- 六爻初学者的精选资料
- 数字电子技术课程设计指导书
- 东华大学会计硕士MPAcc复试分数线及拟录取名单
- 计算机专业VB类通用外文翻译及文献