首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

在嵌入式系统中实现对U盘的操作

在嵌入式系统中实现对U盘的操作

USB(通用串行总线)用于将适用USB的外围设备(device)连接到主机(host),实现二者之间数据传输的外部总线结构;是一种快速、灵活的总线接口。它最大的特点是易于使用,主要是用在中速和低速的外设。
   
    随着USB规范的完善和成熟,USB外设的种类不断丰富,应用领域也不断扩大。在传统的应用中,主要是PC扮演着主机的角色。根据USB的规范,可以看到在USB的拓朴结构中居于核心地位的是主机,每一次的数据传输都必须由主机发起和控制。但是随着嵌入式产品应用领域的日益增长,USB外设的应用范围也随之扩大,为此在嵌入式系统中实现对USB外设控制也变得日益迫切。
   
    嵌入式 嵌入式开发 嵌入式系统 U盘 SL811HS
   
    1 海量存储类--嵌入式系统开发技术
   
    USB设备分为五个大类,即显示器(monitors)、通信设备(communications devices)、音频设备(audio)、人机输入(human input)和海量存储(mass storage)。
   
    通常所用的U盘、移动硬盘均属于海量存储类。
   
    海量存储类的规范中包括四个独立的子规范,即CBI Transprot、Bulk-Only Transport、ATA Command Block、UFI Command Specification.前两个协议定义了数据/命令/状态在USB总线上的传输方法,Bulk-Only传输协议仅仅使用Bulk端点传送数据/命令/状态,CBI传输协议则使用Control/Bulk/Interrupt三种类型的端点进行数据/命令/状态的传送。后两个协议定义了存储介质的操作命令,ATA协议用于硬盘,UFI协议则针对USB移动存储。
   
    本设计中所使用的U盘遵循Bulk-Only传输协议和UFI命令规范。
   
    2 实现方法--嵌入式系统开发技术
   
    2.1 硬件设计
   
    本设计采用SL811HS芯片完成对U盘的操作。SL811HS是Cypress公司推出的具有主/从两种工作模式的USB控制器,遵循USB1.1规范;可自动检测总线速率,支持全速12Mbps和低速1.5Mbps设备;具有8位双向的数据总线,易与单片机连接;片内256字节的SRAM(其中16字节用于工作寄存器),用于数据传输;可自动产生SOF和CRC5/16,简化软件工作量;片内具有根Hub;支持挂起/唤醒工作模式,减少功耗;支持自动加1功能,减少数据读写周期;3.3V工作电源,接口可承受5V的工作电压,可与多种规格的单片机连接。
   
    2.2 软件设计
   
    通过USB主控芯片对U盘操作的主要工作是在软件方面,它需要对众多规范、协议透彻的理解。下面主要通过软件的工作流程来说明嵌入式设计过程。
   
    2.2.1 SL811HS初始化
   
    2.2.2 设备检测
   
    2.2.3 U盘文件系统识别
   
    2.2.4 文件操作
   
    2.2.5 Bulk传输流程
   
    目前开发的在嵌入式系统中利用USB主控芯片实现与U盘的操作技术,已应用在我们自主开发研制的消防产品中。实现了消防控制器与U盘之间的各类信息的传输,为数据分析提供了有利的手段。在越来越多的消费类市场,这一技术必将有更为广阔的应用前景。
返回列表