[err:数据源标签PE.DataSource id="cone" datasource="文章_内容页" itemid="16418" xslt="true" /返回数据错,原因:分析 EntityName 时出错。 行 4,位置 150。,源码:1641874用PDIUSBD12和K9F5608U0A设计USB移动闪存用PDIUSBD12和K9F5608U0A设计USB移动闪存 </P> <STRONG>&nbsp;&nbsp;&nbsp;&nbsp; 摘要:</STRONG>简要介绍<a class="insidelink" href="http://home.cepark.com/space.php?do=mtag&tagid=108" target="_blank">USB</a>(通用串行总线)大容量存储设备类,给出<a class="insidelink" href="http://home.cepark.com/space.php?do=mtag&tagid=108" target="_blank">USB</a>控制PDIUSBD12和闪存K9F5608U0A的原理框图,并以这两个芯片为例设计出存储设备的电路图,最后列出程序流程图。 <P class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp; <B>关键词:</B>USB PDIUSBD12 K9F5608U0A 移动闪存</P> <P style="TEXT-INDENT: 0px"><B>引言</B></P> <P style="TEXT-INDENT: 30px">自从USB规范发布以来,短短的几年中得到了极大的发展,基于USB接口的大容量存储设备(USB Mass Storage)应运而生。这类设备主要有:USB移动硬盘、USB外置光驱、USB外置软驱、USB闪存盘等。但是目前国内介绍这一方面开发的文章并不多。结合作者实践,本文将以PHILIPS公司的USB控制器PDIUSBD12和Sumsung公司的内存(FLASH)K9F5608U0A为例,介绍开发大容量存储设备的方法。</P> <P style="TEXT-INDENT: 0px"><B>1 USB大容量存储设备类</B></P> <P style="TEXT-INDENT: 30px">USB大容量存储设备类规范包括四个独立的子类规范,即:①USB Mass Storgage Class Control/BULK/Interrupt(CBI)Transport;②USB Mass Storage Class BULK-ONLY Transport;③USB Mass Storage Class ATA Command Block;④USB Mass Stroage Class UFI Command Specification。前两个子规范定义了数据/命令/状态在USB上的传输方法。BULK-ONLY传输规范仅仅使用BULK端点传送数据/命令/状态,CBI传输规范则使用Control/BULK/Interrupt三种类型的端点进行数据/命令/状态传送。后两个子规范定义了对存储介质的操作命令。UFI命令规范是针对USB移动存储而制定的,实际上UFI命令格式是基于SFF-8070i和SCSI-2规范,总共定义了19个12字节长度的操作命令。</P> <P style="TEXT-INDENT: 30px">批量单独传输在大部分的通信中使用批量传输,只有在批量端点上清除一个Stall状况,以及传送类别特定请求(class-specific request)时才使用控制传输。需要注意的是,批量单独传输还支持两个特定的请求是:</P> <P style="TEXT-INDENT: 30px">*BULK ONLY Mass Storage RESET——重置设备;</P> <P style="TEXT-INDENT: 30px">*Get Max Lun——取得设备支持的逻辑单元数目。</P> <P style="TEXT-INDENT: 30px">大容量存储类支持的设备都有不同的内部结构,控制与读取不同设备需要使用不同的命令区块群。</P> <P style="TEXT-INDENT: 0px"><B>2 器件简介</B></P> <P style="TEXT-INDENT: 30px">2.1 USB控制器PDIUSBD12</P> <P style="TEXT-INDENT: 30px">PDIUSBD12是一个全速芯片,支持一个控制端点,以及四个额外的端点地址,一个端点的地址可以存储128个字节,而双缓冲区可以存256个字节。该芯片完全由软件控制,在外围设备的CPU送来一个命令来仿真连接总线之前,芯片都是维持与主机分离的状态。这样才能保证在开机后搜寻设备前,芯片有时间来初始化。另外,PDIUSBD12有一个状态输出可以连接到液晶显示器上,在建立USB连接时亮灯,而数据传输时闪烁。PDIUSBD12引脚图和逻辑框图分别如图1、2所示。<BR><BR>&nbsp;&nbsp;&nbsp; 2.2 K9F5608U0A</P> <P style="TEXT-INDENT: 30px">K9F5608U0A是三星公司生产的K9XXXXXU0A系列闪存中的一种,32MB容量,读写速度快,数据保存时间长以及高达10万次的擦除写入寿命等优点。该芯片具有一个八位的I/O端口。在CE为低电平时,把WE置低,地址、命令和数据都可通过该端口写入。数据在WE的上升沿被锁存,CLE和ALE分别用来控制对命令和地址的锁存。同进K9F5608U0A具有较强的纠错功能,能够最大限度地保护用户数据。其内部框图和引脚图分别如图3、4所示。</P> <P style="TEXT-INDENT: 30px">各引脚功能如下:</P> <P style="TEXT-INDENT: 30px">I/O0~I/O7——数据输入/输出;</P> <P style="TEXT-INDENT: 30px">CLE——命令锁存使能;</P> <P style="TEXT-INDENT: 30px">ALE——地址锁存使能;</P> <P style="TEXT-INDENT: 30px">CE——片选信号;<BR><B></B><BR>&nbsp;&nbsp;&nbsp; WE——写使能;</P> <P style="TEXT-INDENT: 30px">WP——定保护;</P> <P style="TEXT-INDENT: 30px">GND——地输入使能额外位;</P> <P style="TEXT-INDENT: 30px">R/B——准备好/忙;</P> <P style="TEXT-INDENT: 30px">VCC——电源;</P> <P style="TEXT-INDENT: 30px">VSS——地;</P> <P style="TEXT-INDENT: 30px">NC——悬空。<B><BR><BR>3 硬件电路设计</B></P> <P style="TEXT-INDENT: 30px">USB大容量存储设备通常使用一个USB接口引擎和MCU(微控制器)一起处理主机发送的命令,以及对存储设备进行操作。图5显示了一个USB大容量存储设备通常采用的硬件结构。ROM和RAM分别用于存储数据和程序,USB微控制器通过通用I/O线与闪存设备连接。微控制器除了实现与主机之间的数据/命令传输外,还需要根据主机的命令对闪存器件并行读/写/格式化,实现逻辑扇区与物理扇区之间的转换及数据错误校正等操作。</P> <P style="TEXT-INDENT: 30px">实例简图如图6所示。MCU采用内含ROM和RAM的微控制器8051,8051通过数据总线和控制总线与两个外设进行通信。PDIUSBD12通过8051和K9F5608U0A进行数据传输,此处采用PDIUSBD12的并行传输方式。</P> <P style="TEXT-INDENT: 0px"><B>4 软件编写</B></P> <P style="TEXT-INDENT: 30px">USB微控制器除了传输处理及UFI命令处理等工作外,还需要处理如存储介质的寻址/格式化/数据校验等操作。本例中所需要的基本操作包括:</P> <P style="TEXT-INDENT: 30px">①提供USB枚举信息;</P> <P style="TEXT-INDENT: 30px">②USB传输管理;</P> <P style="TEXT-INDENT: 30px">③根据主机的UFI命令,进行相应的处理;</P> <P style="TEXT-INDENT: 30px">④提供闪盘基本信息,如扇区大小、簇大小、闪盘容量等;</P> <P style="TEXT-INDENT: 30px">⑤逻辑簇(logical cluster)到物理块(physical block)的转换;</P> <P style="TEXT-INDENT: 30px">⑥物理块的读/写/更新,其中许多的软件功能是与闪存的操作相关的。<BR><BR><BR>&nbsp;&nbsp;&nbsp; 本例中用到的传输协议为USB Mass Storage Class BULK-ONLY Transport和USB Mass Storage Class UFI Command Specification。程序流程图如图7所示。源代码见网站www.dpj.com.cn。<B><BR><BR><BR>5 结论</B></P> <P style="TEXT-INDENT: 30px">本文结合实例,给出了一种开发USB移动存储设备的方法。由于USB移动存储设备具有使用方便、容量大、数据传输速度快等优点,因而具有广阔的高层前景。 </P> <br> <br> 2008年09月04日 color: font-weight:normal ;font-style:normal; oncontextmenu='return false' ondragstart='return false' onselectstart ='return false' onselect='document.selection.empty()' oncopy='document.selection.empty()' onbeforecopy='return false' <script language="JavaScript" type="text/JavaScript" src="/Common/GetHits.aspx?id=16418"></script> 111] {PE.Field id="cone" fieldname="Title" /}-电子园
热门关键词:

{PE.Field id="cone" fieldname="TitleIntact" /}

    {PE.Field id="cone" fieldname="Content" charge="true" showerr="true" /}
    上一篇:没有了
    下一篇:没有了
声明:CEPARK已尽力确保内容的准确性,但因业务发展和技术服务的需要,有关内容可能会根据实际情况随时更新或者修改,恕不另行通知,不便之处敬请谅解!
    社区指南
    电子园-电子工程师自己的网络社区家园!
      个人空间
      迷你博客,轻松完成日志发布,管理相册;展示个性自我
      小组话题
      兴趣小组,热点话题,加入您感兴趣的话题讨论小组,一起交流吧
      轻松分享
      最新资讯,热门话题与好友一起分享信息,他评论感兴趣的话题
      真实交友
      实名认证,真实交友,还可以轻松快捷的了解好友动态
      好友邀请
      邀请您身边的好友,朋友,同事一起加入欢乐圈