一种实现USB设备免驱动的方法技术

技术编号:7086275 阅读:901 留言:0更新日期:2012-04-11 18:40
本发明专利技术揭示了一种实现USB设备免驱动的方法,首先将USB设备定义为USB存储设备,并且将该USB设备的操作协议扩展为SCSI命令集的一部分,然后利用扩展的SCSI命令集对USB设备进行操作。采用本发明专利技术,USB设备连接计算机之后采用USB存储设备的驱动程序,不需要额外安装专用驱动程序,这样可以避免不同操作系统的驱动程序不兼容的问题。

【技术实现步骤摘要】

本专利技术涉及USB设备领域,特别涉及一种实现USB设备免驱动的方法
技术介绍
随着USB设备技术的发展,USB设备更加广泛应用于个人计算机和外围设备之间的连接。在访问USB设备的过程中,运行于计算机的应用程序必须通过驱动程序进行数据传输。如果专用的USB设备采用专用的USB驱动程序,USB设备连接计算机之后需要安装该专用驱动程序,这种方式需要针对不同的操作系统编写不同的专用驱动程序,否则会导致驱动程序不兼容,会带来很多的麻烦。所以迫切需要一种不需要安装专用驱动程序就能使用的USB设备,这样就可以为 USB设备的使用提供更大的便利。
技术实现思路
本专利技术的目的是提供一种实现USB设备免驱动的方法,使USB设备不用安装驱动就可以使用。本专利技术提供一种实现USB设备免驱动的方法,包括以下步骤1. 1、连接USB设备与主机端,所述USB设备向所述主机端枚举并自定义为存储设备; 1. 2、主机端根据USB存储设备规范向所述USB设备发送命令,所述USB设备向主机端作出零存储容量的响应;1. 3、所述主机端的应用程序获取所述USB设备名称并建立与所述USB设备对应的句柄,基于预定义的USB设备操作协议并通过预定的函数调用所述句柄向所述USB设备发送操作命令;1.4、所述USB设备接收所述操作命令并解析,依照所述预定义的USB设备操作协议进行操作并返回结果。所述步骤1. 1进一步包括以下步骤2.1、连接所述USB设备与主机端;2. 2、所述主机端向USB设备发送设备描述符请求;2. 3、所述USB设备自定义为存储设备并向主机端发送设备描述符;2. 4、所述主机端读取所述设备描述符。所述设备描述符包括配置描述符,所述配置描述符又包括接口描述符,所述接口描述符包括端点描述符的数目、USB设备种类以及传输数据所用到的相关操作协议。所述步骤1. 2中,主机端根据USB存储设备规范向所述USB设备发送SCSI命令集中的CBW命令,所述USB设备向主机端作出零存储容量的响应后,所述主机端停止向USB设备发送与存储设备相关的命令。所述步骤1. 3中,所述应用程序查找已成功枚举的USB设备并建立USB设备列表, 获取该表中USB设备的接口列表,根据所述接口列表查找获取USB设备名称。所述步骤1. 3中,所述应用程序建立所述USB设备的句柄后,基于预定义的USB设备操作协议并通过API函数调用所述句柄向所述USB设备发送基于所述USB设备操作协议的操作命令。所述步骤1.4中,所述USB设备接收并解析所述操作命令后,还对其类型进行判断若所述操作命令属于一般的SCSI命令集,则所述USB设备返回相关描述符; 若所述操作命令属于基于所述USB设备操作协议的操作命令,则依照所述USB设备操作协议进行操作并返回结果。采用本专利技术所述的一种实现USB设备免驱动的方法,首先将USB设备定义为USB 存储设备,并且将该USB设备的操作协议扩展为SCSI命令集的一部分,然后利用扩展的 SCSI命令集对USB设备进行操作。采用本专利技术,USB设备连接计算机之后采用USB存储设备的驱动程序,不需要额外安装专用驱动程序,这样可以避免不同操作系统的驱动程序不兼容的问题。附图说明图1是本专利技术的流程图2是本专利技术的USB设备枚举过程中设备描述符框图; 图3是本专利技术的USB设备和主机端的数据传输框图。具体实施例方式下面结合附图和实施例进一步说明本专利技术的技术方案。首先介绍一下相关词汇的含义USB,Universal Serial BUS,通用串行总线;API, Application Program Interface,应用禾呈序接□ ;CBI, Command Block Interface,块命令接口 ;SCSI,Small Computer System hterface,小型计算机系统接口。参见图1,图1显示了本专利技术的流程图100,包括101、连接USB设备与主机端,USB设备向主机端枚举并自定义为存储设备。102、主机端向USB设备发送命令,USB设备向主机端作出零存储容量的响应。即主机端根据USB存储设备规范向所述USB设备发送命令,所述USB设备向主机端作出零存储容量的响应。103、主机端应用程序建立与USB设备对应的句柄,向USB设备发送操作命令。即所述主机端的应用程序获取所述USB设备名称并建立与所述USB设备对应的句柄,基于预定义的USB设备操作协议并通过预定的函数调用所述句柄向所述USB设备发送操作命令。104、USB设备接收操作命令并解析,依照预定义的USB设备操作协议进行操作并返回结果。下面从四个方面来介绍一下以上步骤的实现过程(1)、USB设备的枚举过程参见图2,USB设备连主机端之后,主机端首先向USB设备发送设备描述符请求(Get DeviceDescriptor), USB设备上报设备描述符,该描述符包括USB 设备的类别(USB1. 1或者USB2. 0)、USB设备的产品ID和设备ID、USB设备的描述字符串以及配置描述符的数目等等。然后,主机端向USB设备发送配置描述符请求,发送该请求的次数由设备描述当中上报的数目决定,USB设备的配置描述符主要包含了 USB设备的接口描述符的数目等等。USB设备的接口描述符包含了端点描述符的数目、USB设备的种类(本专利技术将USB设备定义为存储器设备)以及USB传输过程中用到的协议(本专利技术采用的传输协议为Bulk-Only方式,批量传输)。主机端根据接口描述符提供的端点的数目,一个USB接口至少应包含2个以上的端点,一个用于输入数据(主机端到USB设备),另一个用于输出数据(USB设备到主机端)。USB设备的端点描述符规定了该端点的数据缓冲区的长度和端点的种类(本专利技术所述USB的端点设置为批量端点)。(2)、USB设备被定义为存储设备的过程USB设备在枚举的过程中将自己定义为存储设备,主机端会根据USB存储设备的规范向USB设备发送CBW (Command Block Wrapper,块命令数据包)。这些CBW命令属于SCSI命令集的一部分,具体包含以下的命令①INQUERY,USB设备发送存储设备的字符串名称;②READ LONG ;③MODE SENSE ; ④READlO ;⑤READ CAPACITY。由于本专利技术介绍的方式是在SCSI协议层上定义USB设备的专用操作协议,所以USB设备不是真正的存储设备,USB设备需要在READ CAPACITY这个命令的响应中,向主机端报告自己的存储容量为0,这样主机端不会发送其他操作存储设备的 SCSI命令了。USB设备经过一系列的握手之后,USB设备会在PC上显示为一个移动存储设备的盘符,但是不能用鼠标点击该盘符,因为它的存储容量为0。⑶、运行于主机端之上的应用程序访问USB设备的过程应用程序首先查找已被成功枚举的所有USB设备,并且建立一个表。然后,应用程序根据USB存储设备的工业标志符搜索整个USB设备表,获取所有的USB存储设备的接口列表。最后,应用程序根据接口列表查找预先定义的USB存储设备名称。该名称在主机端发送CBW命令之后,由USB设备上报个主机的。应用程序找到USB设备之后,就建立句柄,接下来所有的操作都是建立在该句柄之上。本文档来自技高网...

【技术保护点】
1.一种实现USB设备免驱动的方法,其特征在于,包括以下步骤:1.1、连接USB设备与主机端,所述USB设备向所述主机端枚举并自定义为存储设备;1.2、主机端根据USB存储设备规范向所述USB设备发送命令,所述USB设备向主机端作出零存储容量的响应;1.3、所述主机端的应用程序获取所述USB设备名称并建立与所述USB设备对应的句柄,基于预定义的USB设备操作协议并通过预定的函数调用所述句柄向所述USB设备发送操作命令;1.4、所述USB设备接收所述操作命令并解析,依照所述预定义的USB设备操作协议进行操作并返回结果。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:石武
申请(专利权)人:上海闻泰电子科技有限公司
类型:发明
国别省市:31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1