USB mass storage协议】的更多相关文章

目录 简介 指令数据和状态协议 CBW指令格式 CSWCommand Status Wrapper状态格式 SCSI命令集 Format Unit Inquiry MODE SELECT 简介 USB Mass storage Device协议即海量存储设备协议适用于硬盘,U盘等大容量存储设备.协议使用的接口端点有BulkIn.BulkOut和Interrupt端点.该设备类又包含6个独立的子类以及3种传输协议. bInterfaceSubClass 命令集 描述 01h RBC 通常,Flas…
这一节主要把在实现“linux模拟U盘功能”过程中的一些调试过程记录下来,并加以解析. 一.背景知识     1.USB Mass Storage类规范概述        USB 组织在universal Serial Bus Mass Storage Class Spaceification 1.1版本中定义了海量存储设备类(Mass Storage Class)的规范,这个类规范包括四个独立的子类规范,即:        1. USB Mass Storage Class Control/B…
一.内容概述  采用STM32内部自带USB控制器外加大页NAND FLASH K9F1G08U0A实现一个128M的U盘. 1.STM32的USB控制器 STM32F103的MCU自带USB从控制器,符合USB规范的通信连接:PC主机和微控制器之间的数据传输是通过共享一专用的数据缓冲区来完成的,该数据缓冲区能被USB外设直接访问.这块专用数据缓冲区的大小,由所使用的端点数目和每个端点最大的数据分组大小所决定,每个端点最大可使用512字节缓冲区,最多可用于16个单向或8个双向端点.USB模块同P…
前面总结了usb hid keyboard,现在总结usb mass storage,在枚举阶段没什么好总结的,hid和mass storage差不多,都是同样的枚举过程,但是在他们的配置描述符.接口描述符.端点描述符,也许还有之类描述符是不同的,需要按照usb mass storage的协议来配置,下面是列出usb的相关描述符. const usb_device_descriptor device_desc = { .length = USB_DEVICE_DESC_SIZE, .type =…
如何实现Linux下的U盘(USB Mass Storage)驱动 版本:v0.7 How to Write Linux USB MSC (Mass Storage Class) Driver Crifan Li 摘要 本文主要介绍了USB Mass Storage的相关的各种协议之间的关系,以及如何在Linux的USB驱动框架下实现U盘驱动 本文提供多种格式供: 在线阅读 HTML HTMLs PDF CHM TXT RTF WEBHELP 下载(7zip压缩包) HTML HTMLs PDF…
如何实现Linux下的U盘(USB Mass Storage)驱动 版本:v0.7 How to Write Linux USB MSC (Mass Storage Class) Driver Crifan Li 摘要 本文主要介绍了USB Mass Storage的相关的各种协议之间的关系,以及如何在Linux的USB驱动框架下实现U盘驱动 本文提供多种格式供: 在线阅读 HTML HTMLs PDF CHM TXT RTF WEBHELP 下载(7zip压缩包) HTML HTMLs PDF…
http://www.crifan.com/files/doc/docbook/usb_disk_driver/release/htmls/ch02_msc_basic.html 目录 2.1. USB Mass Storage相关的协议 2.1.1. USB Mass Storage相关协议简介 2.1.1.1. USB MSC Control/Bulk/Interrupt (CBI) Transport 2.1.1.2. USB MSC Bulk-Only (BBB) Transport 2…
http://blog.csdn.net/xgbing/article/details/7002558 USB Mass Storage 6.7 The Thirteen Class章节的理解 Case(1), case(6), case(12)状态下是正常的数据传输,被称为“The thin diagonal”.其它的状态是协议外的内容,是一些判断. 6.7.1 主机期望发起一次无数据传输的命令 CBW包中的dCBWDataTransferLength字段=0,Direction位不考虑. 主…
Android USB Connections Explained: MTP, PTP, and USB Mass Storage Older Android devices support USB mass storage for transferring files back and forth with a computer. Modern Android devices use the MTP or PTP protocols — you can choose which one you…
Problem adding USB host device to KVM Windows guest machine. Status: CLOSED CURRENTRELEASE   Aliases: None   Product: Fedora Component: qemu (Show other bugs) Version: 18 Hardware: x86_64 Unspecified   Priority unspecified Severity unspecified Target…
http://social.msdn.microsoft.com/Forums/windowsdesktop/zh-CN/35620a05-43be-46a8-8cbe-846bc8295d85/usb-mass-storage-cWe have an USB mass storage / Memory Stick device with an additional device on it. We communicate with PassThrough mechanism to the de…
http://www.ezblog.idv.tw/Download/USBStorage.rar 這是一個不透過檔案系統,去讀寫USB Mass Storage 任何位置(包含FAT)的方式 首先需安裝微軟的DDK並include "usbioctl.h" , "usbdi.h" , "ntddscsi.h" 有幾個資料結構要定義 typedef struct _SCSI_Device_Info_ { SCSI_PASS_THROUGH Spt;…
使用otg端口进行usb slave的测试,需要安装g_file_storage.ko或者g_mass_storage.ko模块. 参考链接 http://blog.csdn.net/freeman1975/article/details/46364319 http://linux-sunxi.org/USB_Gadget/Mass_storage http://xlon.de/wiki/index.php?title=USB_Mass_Storage_Gadget_(or_MSG) http:…
6.4 Device Error Handling The device may not be able to fully satisfy the host's request. At the point when the device discovers that it cannot fully satisfy the request, there may be a Data-In or Data-Out transfer in progress on the bus, and the hos…
当需要使用usb bulk传输,想让设备像串口通讯那样和PC主机通信, 通常需要自己做一个PC端的驱动,比较麻烦. 为避免在pc上编写usb设备驱动的麻烦,可以将设备做成mass storage 类的设备,使用通用的驱动. 在通讯之前设备端需要先做两件事: 1,实现mass storage 类的描述符和类请求. 2,实现必要的SCSI命令,让PC认为该设备已正常运作. 我利用修改linux中的gadget zero设备做了一个简单的设备. 如果是在裸机程序下面做,应该也差不多,直接拿芯片厂商BS…
9.1 Mass Storage设备介绍 USB的Mass Storage类是USB大容量储存设备类(Mass Storage Device Class).专门用于大容量存储设备,比如U盘.移动硬盘.USB CD-ROM.读卡器等.在日常生活中经常用到.USB Mass Storage设备开发相对简单. 9.2 MSC数据类型 usbdmsc.h中已经定义好MSC设备类中使用的所有数据类型和函数.下面介绍MSC设备类使用的数据类型. typedef enum { //设备加入 USBDMSC_M…
http://stackoverflow.com/questions/14363152/send-custom-commands-to-mass-storage-device I have developed a mass-storage device, and I'd a like a PC application to send/receive some custom commands to it. Normally one would create a composite USB devi…
USB概述及协议基础 USB的拓扑结构 USB是一种主从结构的系统.主机叫做Host,从机叫做Device(也叫做设备). 通常所说的主机具有一个或者多个USB主控制器(host controller)和根集线器(root hub).主控制器主要负责数据处理,而根集线器则提供一个连接主控制器与设备之间的接口和通路.另外,还有一类特殊的USB设备-------USB集线器(USB hub),它可以对原有的USB口在数量上进行扩展,就可以获得更多的USB口. 注意:集线器只能扩展出更多接口的USB口…
本文转载自:http://www.cnblogs.com/xidongs/archive/2011/09/26/2191616.html 一.应用场合 USB HID类是比较大的一个类,HID类设备属于人机交互操作的设备.用于控制计算机操作的一些方面,如USB鼠标,USB键盘,USB游戏操纵杆,USB触摸板,USB轨迹球.电话拨号设备.VCR遥控等等设备.另外,使用HID设备的一个好处就是,操作系统自带了HID类的驱动程序,而用户无需去开发很麻烦的驱动程序,只要直接使用API调用即可完成通信.所…
一.USB设备枚举过程 1.复位从设备使其设备地址为02.先从设备发送读取设备描述符的命令(只读取一次,即使端点0的最大包长小于18字节)3.设备返回设备描述符4.主机返回0长度确认数据包给到设备5.再次对设备进行复位,以进入地址设置阶段6.主机向0地址设备的0端点发送设置地址的请求(此请求中包含主机发过来的唯一的设备地址)7.设备直接进入状态过程,向主机返回应答8.主机收到应答确认OK后就会发送ACK给设备,设备收到ACK后就开始启用新的设备地址,以后主机就通过此地址访问设备.9.主机再次使用…
=============  本系列参考  ============= <圈圈教你玩USB>.<Linux那些事儿之我是USB> 协议文档:https://www.usb.org/document-library/usb-20-specification  usb_20_20190524/usb_20.pdf 调试工具:Beagle USB 480 逻辑分析仪 ==================================== 前言: 我们先不一上来讲USB大而全的协议规范文…
/drivers/usb/storage/Makefile ## Makefile for the USB Mass Storage device drivers.## 15 Aug 2000, Christoph Hellwig <hch@infradead.org># Rewritten to use lists instead of if-statements.# ccflags-y := -Idrivers/scsi obj-$(CONFIG_USB_UAS) += uas.oobj-…
1.ARM-Linux下USB驱动程序开发1.1.1.linux下USB配置:*********(MassStorage:存储设备)************************************ -> Device Drivers -> SCSI device support(通用设备) -> SCSI disk support (磁盘支持) -> SCSI device support(设备支持) -> Device Drivers -> USB suppo…
Atitit mtp ptp rndis midi协议的不同区别 1. PTP:1 2. MTP:1 3. Mtp 与usb区别2 4. 不过和UMS相比,MTP也有不足之处:3 5.  MTP协议介绍4 6. rndis既是RemoteNDIS,既是远程网络驱动接口规范.8 1. PTP: 图片传输协议的 缩写,全称为:picture transfer protocol: PTP是最早由柯达与微软协商制定的一种标准,符合这种标准的图像设备在接入Windows XP系统之后可以更好地被系统和应用…
端点 USB 通讯的最基本形式是通过一个称为端点的东西.一个USB端点只能向一个方向传输数据(从主机到设备(称为输出端点)或者从设备到主机(称为输入端点)).端点可被看作一个单向的管道. 一个 USB 端点有 4 种不同类型, 分别具有不同的数据传送方式: 控制CONTROL 控制端点被用来控制对 USB 设备的不同部分访问. 通常用作配置设备.获取设备信息.发送命令到设备或获取设备状态报告.这些端点通常较小.每个 USB 设备都有一个控制端点称为"端点 0", 被 USB 核心用来在…
以下是总结的USB的类,不同的USB类,主机询问的描述符格式和内容都不一样,具体的descriptor的内容可以查看 USB spec(http://www.usb.org/home/),如HID的spec里有关于鼠标键盘描述符的详细说明(在appendix E里) 1.宏定义 #define DEVICE_DESCRIPTOR 0x01 //设备描述符 #define CONFIGURATION_DESCRIPTOR 0x02 //配置描述符 #define STRING_DESCRIPTOR…
USB Mass Storage类规范概述        USB Mass storage Device协议即海量存储设备协议适用于硬盘,U盘等大容量存储设备.协议使用的接口端点有BulkIn.BulkOut和Interrupt端点.该设备类又包含6个独立的子类以及3种传输协议. Bulk- Only 传输规范仅仅使用Bulk 端点传送数据/命令/状态,CBI 传输规范则使用Control/Bulk/Interrupt 三种类型的端点进行数据/命令/状态传送. 我们手中的U盘就是遵循SCSI协议…
带U盘功能的的USB接口设备已经越来越常见了.如果能够把产品说明书或者产品设备驱动程序做成一个USB CDROM,那该多方便.假设:你已经有了USB mass storage驱动.你的任务是在此基础上增加一个USB CDROM.请在手边准备好:USB2.0协议,Mass storage协议,SCSI协议(可以忽略).此外,你需要一个debug工具:bushound.    步骤:        1,制作CDROM image文件:        2,处理usb device request:Ge…
1 了解USB识别的过程 eg:在Windows系统下的一个现象:把手机的USB设备接到PC 1. 右下角弹出"发现android phone" 2. 跳出一个对话框,提示你安装驱动程序 问1. 既然还没有"驱动程序",为何能知道是"android phone"答1. windows里已经有了USB的总线驱动程序,接入USB设备后,是"总线驱动程序"知道你是"android phone"     提示你安装…