1、USB芯片CY7C68013使用精编版CY7C68013 芯片使用图一 CY7C68013 内部构造CY7C68013 特点:支持 USB2.0 ,内部包括 USB2.0 收发器、串行接口引擎( SIE )以及增强型 51 内核;灵活配置,可“软配置” RAM ,取代了传统 51 的 RAM 和 ROM ,程序可以通过以下方式下载:通过 USB 口下载;通过外部 E2PROM 装载;外界存储设备(仅 128 引脚支持)模式灵活,可设置为主从模式,主模式下可对外部 FIFO 、存储器、 ATAn 接口设备进行高速读写操作,从模式下外部主控器(例如 DSP、MCU )可把 GPIF 端口当作 FI
2、FO 进行高速读写操作。支持与外设通过并行 8 位或者 16 位总线传输硬件连接方式在 Slave FIFO 方式 下,外部逻辑与 FX2 的连接信号图如下:1图一 从模式下的硬件连接IFCLK : FX2 输出的时钟,可做为通讯的同步时钟;FLAGA , FLAGB , FLAGC , FLAGD : FX2 输出的 FIFO 状态信息,如满,空等;SLCS: FIFO 的片选信号,外部逻辑控制,当 SLCS 输出高时,不可进行数据传输;SLOE : FIFO 输出使能,外部逻辑控制, 当 SLOE 无效时,数据线不输出有效数据 ;SLRD :FIFO 读信号,外部逻辑控制, 同步读时 ,F
3、IFO 指针 在 SLRD 有效时的每个 IFCLK的上升沿递增, 异步读时 , FIFO 读指针 在 SLRD 的每个有效无效的跳变沿时递增;SLWR :FIFO 写信号,外部逻辑控制,同步写时,在 SLWR 有效时的每个 IFCLK 的上升沿时数据被写入, FIFO 指针递增,异步写时,在 SLWR 的每个有效无效的跳变沿时数据被写入, FIFO 写指针递增;PKTEND :包结束信号 ,外部逻辑控制,在正常情况下,外部逻辑向 FX2 的 FIFO 中写数,当写入 FIFO 端点的字节数等于 FX2 固件设定的包大小时, 数据将自动被打成一包进行传输,但有时外部逻辑可能需要传输一个字节数小
4、于 FX2 固件设定的包大小的包,这时,它只需在写入一定数目的字节后,声明此信号,此时 FX2 硬件不管外部逻辑写入了多少字节,都自动将之打成一包进行传输;FD15:0 :数据线;FIFOADR1:0 :选择四个 FIFO 端点的地址线,外部逻辑控制。2相应的读写时序:同步 Slave FIFO 写同步 Slave FIFO 写的标准连接图如下:同步 Slave FIFO 写的标准时序 如下:IDLE :当写事件发生时,进状态1;状态 1:使 FIFOADR1:0 指向 IN FIFO ,进状态2;状态 2:如 FIFO 满,在本状态等待,否则进状态3;状态 3:驱动数据到数据线上,使SLWR
5、 有效, 持续一个 IFCLK 周期,进状态4;状态 4:如需传输更多的数,进状态2,否则进状态 IDLE 。状态跳转示意图如下:3几种情况的时序图示意如下( FULL , EMPTY , SLWR , PKTEND 均假定低有效):图示 FIFO 中本来没有数据,外部逻辑写入第一个数据时的情况。图示假定 FX2 设定包大小为 512 字节,外部逻辑向 FIFO 端点中写入的数据达 512 字节时的情况。此时 FX2 硬件自动将已写入的 512 字节打成一包准备进行传输,这个动作就和在普通传输中, FX2 固件向 FIFO 端点中写入 512 字节后,把 512 这个数写入 EPxBC 中一样
6、,只不过这个过程是由硬件自动完成的。 在这里可以看出 “ FX2 固件不参与数据传输过程”的含义了。外部逻辑只须按上面的时序图所示的时序向 FIFO 端点中一个一个字节(或字)地写数, 写到一定数量, FX2 硬件自动将数据打包传输, 这一切均不需固件的参与,由此实4现高速数据传输。图示的是 FIFO 端点被写满时的情况。下图是同步 Slave FIFO 写入时序:同步 Slave FIFO 写入时序逻辑时序设计中,数据应该在 IFCLK 上升沿写入。同时注意 SLWR 、 DATA 之间的时序关系。5同步 Slave FIFO 读:同步 Slave FIFO 读的标准连接图如下:同步 Sla
7、ve FIFO 读的标准时序如下:IDLE :当读事件发生时,进状态1;状态 1:使 FIFOADR1:0 指向 OUT FIFO ,进状态2;状态 2:使 SLOE 有效,如 FIFO 空,在本状态等待,否则进状态3;状态 3:从数据线上读数, 使 SLRD 有效,持续一个 IFCLK 周期 ,以递增 FIFO 读指针,进状态 4;状态 4:如需传输更多的数,进状态 2,否则进状态 IDLE 。状态跳转示意图如下:6单个和突发读取时序:SLAVE FIFO 同步读取序列和时序图Slave FIFO 同步事件序列图从上图所示, FPGA 应该在 IFCLK 上升沿处采集数据。异步 Slave
8、FIFO 写:异步 Slave FIFO 写的标准连接图如下:7异步 Slave FIFO 写的标准时序如下:IDLE :当写事件发生时,进状态1;状态 1:使 FIFOADR1:0 指向 IN FIFO ,进状态2;状态 2:如 FIFO 满,在本状态等待,否则进状态3;状态 3:驱动数据到数据线上,使SLWR 有效,再无效,以使FIFO 写指针递增,进状态 4;状态 4:如需传输更多的数,进状态 2,否则进状态 IDLE 。状态跳转示意图如下:几种情况的时序图示意如下( FULL , EMPTY , SLWR , PKTEND 均假定低有效):8图示 FIFO 中本来没有数据,外部逻辑写入
9、第一个数据时的情况。Slave FIFO 异步写时序数据必须在 SLWR 解除沿前 Tsfd 出现在总线上,当 SLWR 上升沿时,数据将被写进 FIFO中,同时更新 FIFO 的指针。异步 Slave FIFO 读:异步 Slave FIFO 读的标准连接图如下:9异步 Slave FIFO 读的标准时序如下:IDLE :当读事件发生时,进状态 1;状态 1:使 FIFOADR1:0 指向 OUT FIFO ,进状态 2;状态 2:如 FIFO 空,在本状态等待,否则进状态 3;状态 3:使 SLOE 有效,使 SLRD 有效,从数据线上读数,再使 SLRD 无效,以递增FIFO 读指针,再
10、使 SLOE 无效,进状态 4;状态 4:如需传输更多的数,进状态 2,否则进状态 IDLE 。状态跳转示意图如下:几种情况的时序图示意如下( FULL , EMPTY , SLRD , SLOE 均假定低有效):10图示正常情况时的时序。Slave FIFO 异步读时序Data 总线在 SLRD 下降沿时被触发更新,有一定时间的延迟,所以采用异步读取的方式,应该在 SLRD 上升沿处采集数据。同步与异步读写的引脚差异:同步读异步读同步写异步写IFCLKIFCLKFIFOADR1 : 0FIFOADR1 : 0FIFOADR1 :0FIFOADR1 : 0EMPTYEMPTYFULLFULLSLOESLOESLWRSLWRSLRDSLRDFD15 : 0FD15 : 0FD15 : 0FD15 : 0PKTENDPKTENDSLCSSLCSSLCSSLCS11
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1