基于OHCI的USB主机 —— UFI命令概述

简介:
大容量存储设备一般指 U 盘、移动硬盘等,在这些设备上进行数据传输一般包括两层,物理传输层和命令块层。

 

物理传输层用于处理命令块,包括主机传输命令块到大容量类设备、主机与大容量设备间的数据传输和主机接收命令块处理状态。传输协议一般为 Bulk-Only 协议和 CBI-Only 协议,该层为命令块层提供命令块处理函数的统一接口,使命令块层不需要理会当前大容量类设备的传输协议。

 

命令块层包含在 Bulk-Only 协议的数据包内,包含了 RBC SFF-8020i/MMC-2 QIC-157 UFI SFF-8070i UFI 6 个指令集,严格来说大容量类主机端的驱动都应该支持全部命令集,但实际上常用的大容量设备都使用 UFI 指令集。

USB  国际组织定义了大容量存储类( Mass Storage Class )的规范,包括四个独立的子类规范:
1  USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport
2  USB Mass Storage Class Bulk-Only Transport
3  USB Mass Storage Class ATA Command Block
4  USB Mass Storage Class UFI Command Specification

 

前两个子规范定义了 USB 大容量存储设备进行数据 / 命令 / 状态传输两种基本方法。 Bulk- Only 传输规范仅仅使用批量( Bulk )端点传送数据 / 命令 / 状态, CBI 传输规范则使用控制( Control )、批量( Bulk )、中断  Interrupt )三种类型端点进行数据 / 命令 / 状态传送。后两个子规范则定义了存储介质的操作命令。 ATA 命令规范用于硬盘, UFI 命令规范是基于  SCSI- 2 SFF-8070i 命令规范发展二来,其针对 USB 移动存储类设备。

 

U 盘的 Host 主机程序中,实际上只用到了上述 4 个规范的第 2 4 两个规范。





本文转自 tywali 51CTO博客,原文链接:http://blog.51cto.com/lancelot/292103,如需转载请自行联系原作者
目录
相关文章