老古开发网首页
导航:老古开发网首页文章索引索引第1818页文章分类嵌入式系统第51页→[用PDIUSBD12和K9F5608U0A设计USB移动闪存]
| -文章搜索 - 最新文章 - |

用PDIUSBD12和K9F5608U0A设计USB移动闪存

发布时间:2006年3月23日 点击次数:831
来源:   作者:哈尔滨工业大学 董鲜宏 许洪光 林茂六
 

摘要 简要介绍USB(通用串行总线)大容量存储设备类,给出USB控制PDIUSBD12和闪存K9F5608U0A的原理框图,并以这两个芯片为例设计出存储设备的电路图,最后列出程序流程图。

关键词 USB PDIUSBD12 K9F5608U0A 移动闪存

引言

  自从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  大部分常用的命令结构

2  器件简介

2.1  USB控制器PDIUSBD12

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


图1  PDIUSBD12引脚图


图2  PDIUSBD12逻辑框图

2.2  K9F5608U0A

  K9F5608U0A是三星公司生产的K9XXXXXU0A系列闪存中的一种,32MB容量,读写速度快,数据保存时间长以及高达10万次的擦除写入寿命等优点。该芯片具有一个八位的I/O端口。在为低电平时,把置低,地址、命令和数据都可通过该端口写入。数据在的上升沿被锁存,CLE和ALE分别用来控制对命令和地址的锁存。同时K9F5608U0A具有较强的纠错功能,能够最大限度地保护用户数据。其内部框图和引脚图分别如图3、4所示。


图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所示。源代码见本刊网站www.dpj.com.cn。


图7  程序流程图

5  结论

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

参考文献

1  Sumsung Electronics. K9F5608U0A-YCB0 32M x 8 Bit NAND Flash Memory. 2000
2  USB Specification Revision 1.1. 1998
3  Universal Serial BusMass Storage Class Specification Overview Revision 1.1. 2000
4  PDIUSBD12用户手册. 2001

林茂六  博士生导师,研究方向为现代信号处理技术及应用、大信号网络分析。
许洪光  副教授,研究方向为高速AD及数据采集系统、数字电路板故障诊断。
董鲜宏  硕士研究生,主要研究方向为高速USB数据传输、语音信号处理。


欢迎进入老古论坛进行讨论
[嵌入式系统] 相关文章:
车载GPS导航系统的蓝牙接口方案
简介:
  GPS导航系统很可能是机动车上非安全用途中最有用的附加装置。在大部分旅途中,想出从A到B的路线一般不太困难——在旅行的起点和终点之间,通常选择走高速公路,选择最直接的路线。从起点(比如我们的家或办公室)到最近高速公路入口的路线通常也很容易计划,因为对当地的道路了解,这使我们能够选择最方便或最快的路线。GPS导航系统则在路途最后的5%或更小的部分真正发挥作用,因为这时我们已非常疲劳,又很可能处于不熟悉的地点,并很可能犯方向上的错误。   由于交通堵塞、交通事故、道路关闭或改道,在开车时......

TI 54xxDSP与51单片机的接口技术
直接数字合成电路在雷达信号设计中的应用
数字视频压缩的大容量记录系统设计
义隆电子推出符合工业规格的低功耗微控制器
 
下一个:[CPLD/FPGA]QuickLogic的超低功耗FPGA可用于智能手机
简介:
QuickLogic公司日前宣布,其Eclipse II QL8150产品推出了8×8mm封装。由于采用了球栅阵列(BGA)封装,该产品所具有的小尺寸架构特别适合小型便携应用,例如智能手机、个人媒体播放器(PMP)和工业手持产品。 这种微细间距BGA(0.5mm)封装在8x8 mm的覆盖区域内有196个焊接点,具有尺寸小而散热功能好的优点,特别适合于小型且有空间限制要求的应用。由于空间有限再加上缺乏有效的冷却机制,一些手持产品需要其内部的半导体部件能够适应温差极大的各种工作环境,而......

上一个:[新闻热点]再谈如何实现PIC16系列单片机的查表

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:30分钟 执行时间:31毫秒