关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于USB2.0的高性能移动存储设备的设计

基于USB2.0的高性能移动存储设备的设计

作者:时间:2010-03-02来源:网络收藏

  :写使能信号。在其上升沿时,命令、地址和数据锁存到相应的寄存器中。该信号与AT89C5131芯片的P3.6 信号连接。

  :读使能信号。在其下降沿时,输出数据到I/O总线,同时,它还可以对内部数据地址进行累加。该信号与AT89C5131芯片的P3.7 信号连接。

  CLE:命令锁存使能信号。当CLE为高电平时,命令在 上升沿通过I/O端口送入命令寄存器。该信号与AT89C5131芯片的P1.0引脚连接。

  ALE:地址锁存使能信号。当ALE为高电平时,地址在 上升沿送入地址寄存器。该信号与AT89C5131芯片的P1.1引脚连接。

  :片选信号。用于控制设备的选择。当设备忙时 为高电平而被忽略,当处于编程和擦除操作时设备不能回到备用状态。该信号与AT89C5131芯片的P1.2引脚连接。

  R/ :准备好/忙输出。当它为低电平时,表示编程、擦除和随机读操作正在进行,在操作完成后返回高电平;当芯片没被选中或输出禁止时,其为高电平时。该信号与AT89C5131芯片的P1.3引脚连接。

  3.固件设计实现

  本文设计的采用Bulk-Only传输方式,遵循UFI命令规范。固件的主要功能是响应总线的各种标准请求,向主机返回设备的状态信息;同时,解析接收到的SCSI命令,进行相应的命令处理和数据读写操作。固件设计采用中断驱动,当AT89C5131从总线上接收到请求包时,通过调用相应的中断事件处理函数来实现,后台处理传输,从而保证了闪存的快速读写速率。主要中断事件有:

  (1)主循环等待USB中断,设置相应标志位。插入主机后,主机向移动闪存的控制断点0发出标准请求,固件进入标准请求处理函数,设备回送给主机所要求的相应描述符,调用相关驱动程序。

  (2)当USB主机通过Bulk-In端口读取闪存数据后,产生Bulk-In端口中断。

  (3)当AT89C5131通过Bulk-Out端口接收到主机发送的命令字CBW后,触发Bulk-Out端口中断。

  3.1 响应USB总线标准请求

  当USB移动存储设备接入主机后,USB主机控制器对设备进行总线枚举过程,首先向设备发送标准USB请求GET_DESCRIPTOR来获得最大数据包长度;接着发出SET ADDRESS请求,为设备分配地址;使用新分配的地址再次发出GET_DESCRIPTOR请求,读取设备的配置信息[4],如设备描述符、配置描述符、接口描述符、端口描述符和字符串描述符等,并选择合适的驱动程序;最后,发出SET CONFIGURATION请求配置端口属性。



评论


相关推荐

技术专区

关闭