关 闭

新闻中心

EEPW首页>工控自动化>设计应用> USB2.0控制器CY7C68013的接口设计实现

USB2.0控制器CY7C68013的接口设计实现

作者: 时间:2010-01-20 来源:网络 收藏

  每个波形描述符包含了S0~S6七个有效状态和一个空闲状态。在每个有铲状态对应的时间段里,经过预先设置,GPIF可以做出以下几件事件;驱动(使高或低)或浮接CTL输出、采样或驱动FIFO的数据总线、增加GPIF地址总线的值、增加指向当前FIFO指针的值和启动GPIFWF(GPIF波形)中断。除此之外,在每个状态,GPIF还可以对以下几个信号中的任意两个进行采样,它们是:RDYX输入端、FIFO状态标志位、内部RDY标志位和传输计数终止标志位。每个GPIF动作都由七段组成,每个状态都可以定义为Non- Decision Interval (NDP)或Decision Point Interval(DP)。当某个状态定义为NDP时,在执行此状态动作时,系统只是用简单的延时来确定产生指定电平的延续时间;而当执行DP状态时,它将根据RDY0、RDY1上的输入信号状态把其中的两个信号相与、相或或者相异,然后根据结果跳转到其它任意一个状态或延迟1~256个IFCLK时钟周期。当然也可根据输入端信号进行跳转或延迟。

本文引用地址: //m.amcfsurvey.com/article/202568.htm

  图2中,在第一个DP时刻,若硬盘中数据已准备就绪,硬盘会传给GPIF一个负脉冲信号RDY0,根据此信号,波形将按顺序转入2、3、4状态,并使指向内部FIFO的指针在每个时钟上升沿加1,然后依次读取四个数据,读取完数据后再利用CTL0的上升沿启动下一次读写操作。若在状态1时没有出现负脉冲,则直接跳转到状态6,之后重复此波形描述符。在这种情况下,所有的读写及控制逻辑均可通过CY7的GPIF以软件编程的方式实现,且控制逻辑的变换非常方便灵活(只需改变接口的一个配置寄存器的值)。GPIF波形描述符可用Cypress公司的GPIF工具GPIFTOOL来进行配置,它是一个可以运行于Windows平台的应用程序。
  3 系统软件设计与实现
   本系统软件设计包括:固件、应用程序和驱动程序的设计。其中,固件程序是指运行在设备CPU中的程序,是整个程序设计的核心,可采用汇编语言和C语言设计。只有在该程序运行时,外设才能称之为具有给定功能的外部设备。
   3.1设备固件程序设计
   设备固件程序的主要功能是控制EZ-FX2接收并处理驱动程序的请求(如请求设备描述符或设置设备状态,请求或设置设备接口等USB标准请求)、控制芯片中应用程序控制指令的接收、控制硬盘数据的读写等。该固件程序除能够使内置的通用可编程接口(GPIF)在没有CPU的干涉下通过四个大的端点FIFO(EP2、EP4、 EP6、EP8)来处理高速宽带外,还有如下固定的工作:配置端点、通过控制端点0来响应主机请求、控制和监测GPIF的活动等。其固件程序框图如图形所示。
  设计时可采用PIO和UDMA两种模式,FX2芯片的BULK端点大小可设置为512字节或1024字节。为实现UDMA功能,应将GPIF中的 Slave FIFO与USB通讯中的端点BUFFER直接连接,数据的传送不再需要CPU的参考。当BUFFER写满后,置BUFFER满标志位,以使GPIF停止动作。实际上,也可运用GPIF的Re-execute功能(重复执行功能)。设定此功能后,GPIF可以不经过IDLE状态而仅根据采样RDY信号即可重复下次动作。直到出现指定的标志位后才停止动作。这项功能一般用于大批量数据的连续读写。如在UDMA模式下对一个或多个扇区的读写操作。如在UDMA 模式下对一个或多个扇区的读写操作。为了实现UDMA模式下的CRC校验,还需设备特殊寄存器来完成CRC校验工作。
   3.2 驱动程序设计
  该系统需要两个驱动程度,即通用驱动和下载固件驱动。通用驱动用于完成与外设和用户程序的通信及控制;而下载固件驱动程序则负责在外连接USB总线后把特定的固件程序下载到FX2的RAM中使FX2的CPU重启,同时模拟断开与USB总线的连接以完成对外设的重新设置,这种即可使主机能够根据新的设置来安装通用驱动程序,重新格举外设为一个新的USB设备。通用驱动程序一般不需要重新编写,可以使用Cypress公司已经编好的驱动ezusb.sys。由于在Winsows0操作系统中已经新增了媒体存储(Mass Stroage)设备的驱动程序,并可使用批量传输功能,所以可以直接选择BULKUSB.SYS驱动程序,而下载固件驱动则必须定做。



关键词:C6801368013USB2.0

评论


相关推荐

技术专区

关闭