U盘驱动学习(一):U盘工作原理
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-04-10
开机后系统会初始化usb总线,并扫描usb设备及驱动程序将他们挂载到总线上. 当一个USB设备插入主机时,USB设备硬件本身的原因,它会使USB总线的数据信号线的电平发生变化,而主机会经常扫描USB总线.当发现电平有变化时,它即知道有设备插入. 当USB设备刚插入主机时,USB设备它本身会初始化,并认为地址是0.也就是没有分配地址,这有点象刚进校的大学生没有学号一样.正如有一个陌生人闯入时我们会问“你是什么人”一样,当一个USB设备插入主机时,,它也会问:“你是什么设备”.并接着会问,你使用什么通信协议等等.当这一些信息都被主机知道后,主机与USB设备之间就可以根据它们之间的约定进行通信. USB的这些信息是通过描述符实现的,USB描述符主要包括:设备描述符,配置描述符,接口描述符,端点描述符等. 当一个U盘插入主机时,你立即会发现你的资源管理器里多了一个可移动磁盘,并可以进一步从主机上知道它是爱国者或是朗科的.这里就有两个问题,主机为 什么知道插入的是移动磁盘,而不是键盘或打印机等等呢?另外操作系统为什么还知道是哪个公司生产的呢?其实这很简单,当USB设备插入主机时,主机就 会要求对方把它的设备描述符传回来,这些设备描述符中就包含了设备类型及制造商信息.又如传输所采用的协议是由接口描述符确定,而传输的方式则包含在端点描述符中. USB设备分很多类:显示类,通信设备类,音频设备类,人机接口类,海量存储类.特定类的设备又可分为若干子类,每一个设备可以有一个或多个配置,配置用于定义设备的功能.配置是接口的集合,接口是指设备中哪些硬件与USB交换信息.每个与USB交换信息的硬件是一个端点.因些,接口是端点的集合. U盘属于海量存储类.USB海量存储设备又包括通用海量存储子类,CDROM,Tape等,U盘实际上属于海量存储类中通用海量存储子类.通用海量存储设备实现上是基于块/扇区存储的设备. USB组织定义了海量存储设备类的规范,这个类规范包括4个独立的子类规范.主要是指USB总线上的传输方法与存储介质的操作命令. 海量存储设备只支持一个接口,即数据接口,此接口有三个端点Bulk input ,Bulk output,中断端点.这种设备的接口采用SCSI-2的直接存取设备协议,USB设备上的介质使用与SCSI-2以相同的逻辑块方式寻址 (以上内容为转载) usb设备的结构从上到下依次为: 用户-->应用程序-->usb驱动程序-->usb core-->usb主控制器-->usb设备-->接口(多个)-->端点(多个) |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于U盘驱动学习(一):U盘工作原理的所有评论