USB芯片CY7C68013使用文档格式.docx
《USB芯片CY7C68013使用文档格式.docx》由会员分享,可在线阅读,更多相关《USB芯片CY7C68013使用文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
模式灵活,可设置为主从模式,主模式下可对外部FIFO、存储器、ATAn接口设备进行高速读写操作,从模式下外部主控器(例如DSP、MCU)可把GPIF端口当作FIFO进行高速读写操作。
支持与外设通过并行8位或者16位总线传输
v硬件连接方式
在SlaveFIFO方式下,外部逻辑与FX2的连接信号图如下:
图一从模式下的硬件连接
IFCLK:
FX2输出的时钟,可做为通讯的同步时钟;
FLAGA,FLAGB,FLAGC,FLAGD:
FX2输出的FIFO状态信息,如满,空等;
SLCS:
FIFO的片选信号,外部逻辑控制,当SLCS输出高时,不可进行数据传输;
SLOE:
FIFO输出使能,外部逻辑控制,当SLOE无效时,数据线不输出有效数据;
SLRD:
FIFO读信号,外部逻辑控制,同步读时,FIFO指针在SLRD有效时的每个IFCLK的上升沿递增,异步读时,FIFO读指针在SLRD的每个有效—无效的跳变沿时递增;
SLWR:
FIFO写信号,外部逻辑控制,同步写时,在SLWR有效时的每个IFCLK的上升沿时数据被写入,FIFO指针递增,异步写时,在SLWR的每个有效—无效的跳变沿时数据被写入,FIFO写指针递增;
PKTEND:
包结束信号,外部逻辑控制,在正常情况下,外部逻辑向FX2的FIFO中写数,当写入FIFO端点的字节数等于FX2固件设定的包大小时,数据将自动被打成一包进行传输,但有时外部逻辑可能需要传输一个字节数小于FX2固件设定的包大小的包,这时,它只需在写入一定数目的字节后,声明此信号,此时FX2硬件不管外部逻辑写入了多少字节,都自动将之打成一包进行传输;
FD[15:
0]:
数据线;
FIFOADR[1:
选择四个FIFO端点的地址线,外部逻辑控制。
v相应的读写时序:
同步SlaveFIFO写
同步SlaveFIFO写的标准连接图如下:
同步SlaveFIFO写的标准时序如下:
IDLE:
当写事件发生时,进状态1;
状态1:
使FIFOADR[1:
0]指向INFIFO,进状态2;
状态2:
如FIFO满,在本状态等待,否则进状态3;
状态3:
驱动数据到数据线上,使SLWR有效,持续一个IFCLK周期,进状态4;
状态4:
如需传输更多的数,进状态2,否则进状态IDLE。
状态跳转示意图如下:
几种情况的时序图示意如下(FULL,EMPTY,SLWR,PKTEND均假定低有效):
图示FIFO中本来没有数据,外部逻辑写入第一个数据时的情况。
图示假定FX2设定包大小为512字节,外部逻辑向FIFO端点中写入的数据达512字节时的情况。
此时FX2硬件自动将已写入的512字节打成一包准备进行传输,这个动作就和在普通传输中,FX2固件向FIFO端点中写入512字节后,把512这个数写入EPxBC中一样,只不过这个过程是由硬件自动完成的。
在这里可以看出“FX2固件不参与数据传输过程”的含义了。
外部逻辑只须按上面的时序图所示的时序向FIFO端点中一个一个字节(或字)地写数,写到一定数量,FX2硬件自动将数据打包传输,这一切均不需固件的参与,由此实现高速数据传输。
图示的是FIFO端点被写满时的情况。
下图是同步SlaveFIFO写入时序:
同步SlaveFIFO写入时序
逻辑时序设计中,数据应该在IFCLK上升沿写入。
同时注意SLWR、DATA之间的时序关系。
同步SlaveFIFO读:
同步SlaveFIFO读的标准连接图如下:
同步SlaveFIFO读的标准时序如下:
当读事件发生时,进状态1;
0]指向OUTFIFO,进状态2;
使SLOE有效,如FIFO空,在本状态等待,否则进状态3;
从数据线上读数,使SLRD有效,持续一个IFCLK周期,以递增FIFO读指针,进状态4;
单个和突发读取时序:
SLAVEFIFO同步读取序列和时序图
SlaveFIFO同步事件序列图
从上图所示,FPGA应该在IFCLK上升沿处采集数据。
异步SlaveFIFO写:
异步SlaveFIFO写的标准连接图如下:
异步SlaveFIFO写的标准时序如下:
驱动数据到数据线上,使SLWR有效,再无效,以使FIFO写指针递增,进状态4;
SlaveFIFO异步写时序
数据必须在SLWR解除沿前Tsfd出现在总线上,当SLWR上升沿时,数据将被写进FIFO中,同时更新FIFO的指针。
异步SlaveFIFO读:
异步SlaveFIFO读的标准连接图如下:
异步SlaveFIFO读的标准时序如下:
如FIFO空,在本状态等待,否则进状态3;
使SLOE有效,使SLRD有效,从数据线上读数,再使SLRD无效,,以递增FIFO读指针,再使SLOE无效,进状态4;
几种情况的时序图示意如下(FULL,EMPTY,SLRD,SLOE均假定低有效):
图示正常情况时的时序。
SlaveFIFO异步读时序
Data总线在SLRD下降沿时被触发更新,有一定时间的延迟,所以采用异步读取的方式,应该在SLRD上升沿处采集数据。
同步与异步读写的引脚差异:
同步读
异步读
同步写
异步写
IFCLK
FIFOADR[1:
0]
EMPTY
FULL
SLOE
SLWR
SLRD
FD[15:
PKTEND
SLCS