0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >消费电子 > 基于PDIUSBD12 USB控制器和K9F5608U0A FLASH存储器实现USB移动存储设备的系统设计方案

基于PDIUSBD12 USB控制器和K9F5608U0A FLASH存储器实现USB移动存储设备的系统设计方案

来源: elecfans
2020-05-27
类别:消费电子
eye 85
文章创建人 拍明

原标题:基于USB控制器和FLASH存储器实现USB移动存储设备的系统设计方案

  引言

  自从USB规范发布以来,短短的几年中得到了极大的发展,基于USB接口的大容量存储设备(USB Mass Storage)应运而生。这类设备主要有:USB移动硬盘、USB外置光驱、USB外置软驱、USB闪存盘等。但是目前国内介绍这一方面开发的文章并不多。结合作者实践,本文将以Philips公司的USB控制器PDIUSBD12和Sumsung公司的闪存(Flash)K9F5608U0A为例,介绍开发大容量存储设备的方法。

  1、USB大容量存储设备类

  USB大容量存储设备类规范包括四个独立的子类规范,即:①USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport;②USB Mass Storage Class Bulk-Only Transport;③USB Mass Storage Class ATA Command Block; ④USB Mass Storage Class UFI Command Specification。前两个子规范定义了数据/命令/状态在USB上的传输方法。Bulk-Only传输规范仅仅使用Bulk端点传送数据/命令/状态,CBI传输规范则使用Control/Bulk/Interrupt三种类型的端点进行数据/命令/状态传送。后两个子规范定义了对存储介质的操作命令。UFI命令规范是针对USB移动存储而制定的,实际上UFI命令格式是基于SFF-8070i和SCSI-2规范,总共定义了19个12字节长度的操作命令。

  批量单独传输在大部分的通信中使用批量传输,只有在批量端点上清除一个Stall状况,以及传送类别特定请求(class-specific request)时才使用控制传输。需要注意的是,批量单独传输还支持两个特定的请求是:

  ◆ Bulk Only Mass Storage Reset——重置设备;

  ◆ Get Max Lun——取得设备支持的逻辑单元数目。

  大容量存储类支持的设备都有不同的内部结构,控制与读取不同设备需要使用不同的命令区块群。表1列出大部分常用命令区块群命令的结构。

  表1 大部分常用的命令结构

  

基于USB控制器和FLASH存储器实现USB移动存储设备的系统设计

  2、器件简介

  2.1 USB控制器PDIUSBD12

  PDIUSBD12是一个全速芯片,支持一个控制端点,以及四个额外的端点地址,一个端点的地址可以存储到128个字节,而双缓冲区可以存到256个字节。该芯片完全由软件控制,在外围设备的CPU送来一个命令来仿真连接总线之前,芯片都是维持与主机分离的状态。这样才能保证在开机后搜寻设备前,芯片有时间来初始化。另外,PDIUSBD12有一个状态输出可以连接到液晶显示器上,在建立USB连接时亮灯,而数据传输时闪烁。PDIUSBD12引脚图和逻辑框图分别如图1、2所示。

  

  图1 PDIUSBD12引脚图

  

  图2 PDIUSBD12逻辑框图

  2.2 K9F5608U0A

  

  图3 K9F5608U0A内部框图

  

  图4 K9F5608U0A引脚图

  各引脚功能如下:

  I/O0 ~ I/O7——数据输入/输出;

  CLE——命令锁存使能;

  ALE——地址锁存使能;

  ——片选信号;

  ——写使能;

  ——写保护;

  GND——地输入使能额外位;

  R/B——准备好/忙;

  VCC——电源;

  VSS——地;

  NC——悬空。

  3、硬件电路设计

  USB大容量存储设备通常使用一个USB接口引擎和MCU(微控制器)一起处理主机发送的命令,以及对存储设备进行操作。图5显示了一个USB大容量存储设备通常采用的硬件结构。ROM和RAM分别用于存储数据和程序, USB微控制器通过通用I/O线与闪存设备连接。微控制器除了实现与主机之间的数据/命令传输外,还需要根据主机的命令对闪存器件进行读/写/格式化,实现逻辑扇区与物理扇区之间的转换及数据错误校正等操作。

  

  图5 USB大容量存储设备硬件结构框图

  实例简图如图6所示。MCU采用内含ROM和RAM的微控制器8051,8051通过数据总线和控制总线与两个外设进行通信。PDIUSBD12通过8051和K9F5608U0A进行数据传输,此处采用PDIUSBD12的并行传输方式。

  

  图6 USB大容量存储设备硬件结构实例简图

  4、软件编写

  USB微控制器除了传输处理及UFI命令处理等工作外,还需要处理如存储介质的寻址/格式化/数据校验等操作。本例中所需要的基本操作包括:

  ① 提供USB枚举信息;

  ② USB传输管理;

  ③ 根据主机的UFI命令,进行相应的处理;

  ④ 提供闪盘基本信息,如扇区大小、簇大小、闪盘容量等;

  ⑤ 逻辑簇(logical cluster)到物理块(physical block)的转换;

  ⑥ 物理块的读/写/更新,其中许多的软件功能是与闪存的操作相关的。

  本例中用到的传输协议为USB Mass Storage Class Bulk-Only Transport和USB Mass Storage Class UFI Command Specification。总程序流程图如图7所示。

  

  图7 程序流程图

  5、结论

  本文结合实例,给出了一种开发USB移动存储设备的方法。由于USB移动存储设备具有使用方便、容量大、数据传输速度快等优点,因而具有广阔的市场前景。


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯