1 基于USB控制器和FLASH存储器实现USB移动存储设备的系统设计-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

电子设计 来源:单片机与嵌入式系统应用 作者:董鲜宏,许洪光,林 2020-05-25 08:03 次阅读

引言

自从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

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大容量存储设备通常采用的硬件结构。ROMRAM分别用于存储数据和程序, 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移动存储设备具有使用方便、容量大、数据传输速度快等优点,因而具有广阔的市场前景。

责任编辑:gt


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16332

    浏览量

    177800
  • 存储器
    +关注

    关注

    38

    文章

    7484

    浏览量

    163759
  • usb
    usb
    +关注

    关注

    60

    文章

    7936

    浏览量

    264454
收藏 人收藏

    评论

    相关推荐

    基于USB的LED灯光控制器的设计与实现

    LPC2148 USB模块编程要点、块存储设备SD卡在同步和回放方式下的作用以及由CPLD和SRAM构建码流缓冲的大容量FIFO存储器的软件实现
    发表于 12-01 10:26

    求助 数据存储器 FLASH程序存储器 FLASH数据存储器的区别

    数据存储器 FLASH程序存储器 FLASH数据存储器 片内RAM数据存储器16M字节外部数据
    发表于 11-29 09:50

    基于USB接口的移动存储设备构建微型操作系统

    供对主板、显卡、网卡、声卡、存储器USB 设备等驱动的支持。由于是移动系统,面临硬件平台多样性的问题,所以需要将一些常用基本驱动和
    发表于 06-10 05:00

    基于FPGA的USB2.0控制器设计

    /A。1 控制器结构原理USB2.0控制器结构框图如图2所示。控制器主要由两个部分组成,其一为与外设的接口,另一个是内部协议层逻辑PL(Protocol Layer)。内部
    发表于 06-29 07:30

    基于USB移动存储的钢丝绳探伤报警系统设计

    针对钢丝绳探伤检测中的数据存储,提出了一种用单片机实现USB 移动存储控制的方案。设计了一个
    发表于 08-06 10:15 15次下载

    PowerPC 60x总线的存储器控制器的设计与实现

    章介绍了PowerPC 60x 处理的总线接口和操作,详细阐述了60x 总线存储器 控制器在CPLD 上的设计与实现过程。此存储器
    发表于 08-26 10:38 58次下载

    LM3S 系列微控制器Flash 存储器应用

    LM3S 系列微控制器Flash 存储器应用 在众多的单片机中都集成了 Flash 存储器系统
    发表于 03-27 15:29 48次下载

    LM3S 系列微控制器Flash 存储器应用

    LM3S 系列微控制器Flash 存储器应用
    发表于 07-23 17:07 43次下载

    Flash存储器的内建自测试设计

    内建自测试是一种有效的测试存储器的方法。分析了NOR型flash存储器的故障模型和测试存储器的测试算法,在此基础上,设计了flash
    发表于 07-31 17:08 35次下载

    Symwave推出USB 3.0 RAID存储控制器

    Symwave推出USB 3.0 RAID存储控制器 Symwave(芯微科技)宣布,SW6318现在已经可以立即供货,SW6318为单芯片USB 3.0到双SATA
    发表于 12-29 17:40 1267次阅读

    Flash存储器概述

      Flash 存储器的简介   在众多的单片机中都集成了 Flash 存储器系统,该存储器
    发表于 11-11 18:25 4971次阅读
    <b class='flag-5'>Flash</b><b class='flag-5'>存储器</b>概述

    快闪存储器控制器选择技巧

    现代快闪存储器控制器中的磨损平衡技术已经有显著进步,能够克服快闪存储器储存介质固有的弱点,并帮助发挥出快闪存储器的优势。对于现代快闪存储器
    发表于 03-07 09:45 1413次阅读

    基于USB海量存储设备实现FLASH数据采集和存储系统的设计

    基于USB的海量存储USB Mass Storage)设备功能在ARM嵌入式系统中设计和应用。使用该
    的头像 发表于 05-20 07:49 1905次阅读
    基于<b class='flag-5'>USB</b>海量<b class='flag-5'>存储</b><b class='flag-5'>设备</b><b class='flag-5'>实现</b><b class='flag-5'>FLASH</b>数据采集和<b class='flag-5'>存储系统</b>的设计

    盘点芯邦科技存储主控芯片 USB控制器芯片 SD卡控制器芯片

    盘点芯邦科技存储主控芯片 USB控制器芯片 SD卡控制器芯片 存储主控芯片是一种集成电路芯片,用于控制
    的头像 发表于 10-25 12:43 2725次阅读
    盘点芯邦科技<b class='flag-5'>存储</b>主控芯片 <b class='flag-5'>USB</b><b class='flag-5'>控制器</b>芯片 SD卡<b class='flag-5'>控制器</b>芯片

    控制器内部的存储器有哪些

    控制器(MCU)内部的存储器是微控制器系统的重要组成部分,它负责存储程序代码、数据以及控制逻辑
    的头像 发表于 08-22 10:41 739次阅读