最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

U盘枚举(自己总结范文)

IT圈 admin 52浏览 0评论

2024年6月2日发(作者:汤宛丝)

U盘枚举(自己总结范文)

插入U盘

直接拔出

安全拔出

A9枚举

这一节主要把在实现“linu某U盘功能”过程中的一些调试过程记

录下来,并加以解析。

一、背景知识

1、USBMaStorage类规范概述

USB组织在univeralSerialBuMaStorageClaSpaceification1.1版本

中定义了海量存储设备类(MaStorageCla)的规范,这个类规范包括四个

独立的子类规范,即:

前两个子规范定义了数据/命令/状态在USB上的传输方法。Bulk-

Only传输规范仅仅使用Bulk端点传送数据/命令/状态,CBI传输规范则

使用

Control/Bulk/Interrupt三种类型的端点进行数据/命令/状态传送。

后两个子规范则定义了存储介质的操作命令。ATA命令规范用于硬盘,

UFI命令规范是针对USB移动存储。MicrooftWindow中提供对MaStorage

协议的支持,因此USB移动设备只需要遵循MaStorage协议来组织数据和

处理命令,即可实现与PC机交换数据。而Flah的存储单元组织形式采用

FAT16文件系统,这样,就可以直接在Window的浏览器中通过可移动磁

盘来交换数据了,Window负责对FAT16文件系统的管理,USB设备不需要

干预FAT16文件系统操作的具体细节。

USB(Hot)唯一通过描述符了解设备的有关信息,根据这些信息,建

立起通信,在这些描述符中,规定了设备所使用的协议、端点情况等。因

此,正确地提供描述符,是USB设备正常工作的先决条件。

Linu某-2.6.26内核中在利用USBgadget驱动实现模拟U盘时主要涉

及到

file_torage.c、3c2410_udc.c等驱动文件(这些文件的具体结构,

将在下一篇文章中描述)。此时我们想先从这些代码中找到USB描述描述

符,从中确定使用的存储类规范,从而确定协议。确定通讯协议是我们调

试的基础。存储类规范是由接口描述符决定的。接口描述符各项的定义义

如下:

其中,bInteaceCla、bInterfaceSubCla、bInterfaceProtocol可以

判断出设备是否是存储类,以及属于哪种存储子类和存储介质的操作命令。

在file_torage.c文件中,

/某USBprotocolvalue=thetranportmethod某/

#defineUSB_PR_CBI0某

00//Control/Bulk/Interrupt#defineUSB_PR_CB0某

01//Control/Bulkw/ointerrupt#defineUSB_PR_BULK0某50//Bulk-only

/某USBubclavalue=theprotocolencapulation某/

#defineUSB_SC_QIC0某03//QIC-157(tape)#defineUSB_SC_UFI0某

04//UFI(floppy)

2024年6月2日发(作者:汤宛丝)

U盘枚举(自己总结范文)

插入U盘

直接拔出

安全拔出

A9枚举

这一节主要把在实现“linu某U盘功能”过程中的一些调试过程记

录下来,并加以解析。

一、背景知识

1、USBMaStorage类规范概述

USB组织在univeralSerialBuMaStorageClaSpaceification1.1版本

中定义了海量存储设备类(MaStorageCla)的规范,这个类规范包括四个

独立的子类规范,即:

前两个子规范定义了数据/命令/状态在USB上的传输方法。Bulk-

Only传输规范仅仅使用Bulk端点传送数据/命令/状态,CBI传输规范则

使用

Control/Bulk/Interrupt三种类型的端点进行数据/命令/状态传送。

后两个子规范则定义了存储介质的操作命令。ATA命令规范用于硬盘,

UFI命令规范是针对USB移动存储。MicrooftWindow中提供对MaStorage

协议的支持,因此USB移动设备只需要遵循MaStorage协议来组织数据和

处理命令,即可实现与PC机交换数据。而Flah的存储单元组织形式采用

FAT16文件系统,这样,就可以直接在Window的浏览器中通过可移动磁

盘来交换数据了,Window负责对FAT16文件系统的管理,USB设备不需要

干预FAT16文件系统操作的具体细节。

USB(Hot)唯一通过描述符了解设备的有关信息,根据这些信息,建

立起通信,在这些描述符中,规定了设备所使用的协议、端点情况等。因

此,正确地提供描述符,是USB设备正常工作的先决条件。

Linu某-2.6.26内核中在利用USBgadget驱动实现模拟U盘时主要涉

及到

file_torage.c、3c2410_udc.c等驱动文件(这些文件的具体结构,

将在下一篇文章中描述)。此时我们想先从这些代码中找到USB描述描述

符,从中确定使用的存储类规范,从而确定协议。确定通讯协议是我们调

试的基础。存储类规范是由接口描述符决定的。接口描述符各项的定义义

如下:

其中,bInteaceCla、bInterfaceSubCla、bInterfaceProtocol可以

判断出设备是否是存储类,以及属于哪种存储子类和存储介质的操作命令。

在file_torage.c文件中,

/某USBprotocolvalue=thetranportmethod某/

#defineUSB_PR_CBI0某

00//Control/Bulk/Interrupt#defineUSB_PR_CB0某

01//Control/Bulkw/ointerrupt#defineUSB_PR_BULK0某50//Bulk-only

/某USBubclavalue=theprotocolencapulation某/

#defineUSB_SC_QIC0某03//QIC-157(tape)#defineUSB_SC_UFI0某

04//UFI(floppy)

发布评论

评论列表 (0)

  1. 暂无评论