CN102339260A - 一种实现usb设备免驱动的方法 - Google Patents

一种实现usb设备免驱动的方法 Download PDF

Info

Publication number
CN102339260A
CN102339260A CN2011100432073A CN201110043207A CN102339260A CN 102339260 A CN102339260 A CN 102339260A CN 2011100432073 A CN2011100432073 A CN 2011100432073A CN 201110043207 A CN201110043207 A CN 201110043207A CN 102339260 A CN102339260 A CN 102339260A
Authority
CN
China
Prior art keywords
usb device
usb
host side
descriptor
operational order
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2011100432073A
Other languages
English (en)
Inventor
石武
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Wingtech Electronic Technology Co Ltd
Original Assignee
Shanghai Wingtech Electronic Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Wingtech Electronic Technology Co Ltd filed Critical Shanghai Wingtech Electronic Technology Co Ltd
Priority to CN2011100432073A priority Critical patent/CN102339260A/zh
Publication of CN102339260A publication Critical patent/CN102339260A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

本发明揭示了一种实现USB设备免驱动的方法,首先将USB设备定义为USB存储设备,并且将该USB设备的操作协议扩展为SCSI命令集的一部分,然后利用扩展的SCSI命令集对USB设备进行操作。采用本发明,USB设备连接计算机之后采用USB存储设备的驱动程序,不需要额外安装专用驱动程序,这样可以避免不同操作系统的驱动程序不兼容的问题。

Description

一种实现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 Interface,小型计算机系统接口。
参见图1,图1显示了本发明的流程图100,包括:
101、连接USB设备与主机端,USB设备向主机端枚举并自定义为存储设备。
102、主机端向USB设备发送命令,USB设备向主机端作出零存储容量的响应。即主机端根据USB存储设备规范向所述USB设备发送命令,所述USB设备向主机端作出零存储容量的响应。
103、主机端应用程序建立与USB设备对应的句柄,向USB设备发送操作命令。即所述主机端的应用程序获取所述USB设备名称并建立与所述USB设备对应的句柄,基于预定义的USB设备操作协议并通过预定的函数调用所述句柄向所述USB设备发送操作命令。
104、USB设备接收操作命令并解析,依照预定义的USB设备操作协议进行操作并返回结果。
下面从四个方面来介绍一下以上步骤的实现过程:
⑴、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的端点设置为批量端点)。
⑵、USB设备被定义为存储设备的过程:USB设备在枚举的过程中将自己定义为存储设备,主机端会根据USB存储设备的规范向USB设备发送CBW(Command Block Wrapper,块命令数据包)。这些CBW命令属于SCSI命令集的一部分,具体包含以下的命令:①INQUERY,USB设备发送存储设备的字符串名称;②READ LONG;③MODE SENSE;④READ10;⑤READ CAPACITY。由于本发明介绍的方式是在SCSI协议层上定义USB设备的专用操作协议,所以USB设备不是真正的存储设备,USB设备需要在READ CAPACITY这个命令的响应中,向主机端报告自己的存储容量为0,这样主机端不会发送其他操作存储设备的SCSI命令了。USB设备经过一系列的握手之后,USB设备会在PC上显示为一个移动存储设备的盘符,但是不能用鼠标点击该盘符,因为它的存储容量为0。
⑶、运行于主机端之上的应用程序访问USB设备的过程:应用程序首先查找已被成功枚举的所有USB设备,并且建立一个表。然后,应用程序根据USB存储设备的工业标志符搜索整个USB设备表,获取所有的USB存储设备的接口列表。最后,应用程序根据接口列表查找预先定义的USB存储设备名称。该名称在主机端发送CBW命令之后,由USB设备上报个主机的。应用程序找到USB设备之后,就建立句柄,接下来所有的操作都是建立在该句柄之上。所有的操作都调用API函数DeviceIoControl(对设备执行指定操作的命令),操作的方式是IOCTL_SCSI_PASS_THROUGH_DIRECT,这样用以操作USB设备的一组协议被扩展为SCSI命令集的一部分。应用程序通过这种方式,将这组扩展命令,也就是USB设备的专项操作协议,发送到USB设备。USB设备根据接收到的命令,进行相关的操作,并且返回相关的结果。
⑷、USB设备根据预先定义的操作协议进行相关操作的过程:如上所述,与USB设备进行交互的一组专项协议被扩展为SCSI命令集的一部分。USB设备接收到SCSI的命令之后,解析该命令数据包,如果该命令属于一般的SCSI命令集,那么USB设备返回和SCSI相关的描述符;如果该命令集属于SCSI命令集扩展的专项USB设备通信协议,那么USB设备解析该通信协议,并进行相关的操作和返回结果。比如,用于测量温度的温度计通过USB总线和主机端相连,该温度计作为一个设备在主机端显示成一个USB存储设备,和该设备相关的一组操作协议被定义为SCSI的命令集的扩展部分。该设备接收到SCSI命令的扩展命令,譬如测量温度这个命令,USB设备通过传感器测量环境的温度,然后通过模数转换,得到温度的数值,并且把该数值发送给主机端,紧接着还需要发送一个CSW(Command Status Wrapper,命令状态包)命令。在以上过程中,USB设备完成相关的初始化之后,不停轮询USB中断的状态。如果USB设备接收到数据,解析块命令数据包。如果该数据包是主机端发送给USB设备的数据,USB设备处理相关的数据同时向主机端发送CSW命令状态包;如果该数据包要求USB设备向主机端发送相关的数据,USB设备组织相关的数据之后打包,然后发送到USB物理总线上,再发送CSW命令状态包。
参见图3,图3显示了USB设备和主机端的数据传输实现框图,应用程序根据操作指令,调用操作系统提供的API接口(Application Program Interface,应用程序接口)访问硬盘驱动层。由于本发明介绍的这种方法将USB设备枚举成一个USB存储设备,所以应用程序访问硬盘驱动层。硬盘驱动层再将数据打包,选择批量传输的方式,将数据包发送到USB物理总线上。USB设备从物理总线上接收数据,针对不同的数据包,USB设备需要向主机端发送不同的回应。如果该数据包是一个CBW(Command Block Wrapper,命令块数据包),USB设备需要发送一个CSW(Command Status Wrapper)。针对所述的Read Capacity这个命令块,USB设备应该上报主机端该设备的存储容量都为0,这样主机端不会向该USB设备发送存储设备的操作命令。如果该数据包是一条USB设备的专项操作命令,USB设备根据相关的命令操作外围相关的设备。
综上所述,本发明首先将一种将专用的USB设备定义成USB存储设备。在主机端,该USB设备显示作为一个USB存储设备。该USB设备的操作命令集被扩展为SCSI命令集的一部分,这样应用程序可以将USB设备的操作命令打包成一个SCSI命令发送给USB设备,USB设备可以解析该命令数据包,进行相关的操作。
本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明,而并非用作为对本发明的限定,只要在本发明的实质精神范围内,对以上实施例的变化、变型都将落在本发明的权利要求书范围内。

Claims (7)

1.一种实现USB设备免驱动的方法,其特征在于,包括以下步骤:
1.1、连接USB设备与主机端,所述USB设备向所述主机端枚举并自定义为存储设备;
1.2、主机端根据USB存储设备规范向所述USB设备发送命令,所述USB设备向主机端作出零存储容量的响应;
1.3、所述主机端的应用程序获取所述USB设备名称并建立与所述USB设备对应的句柄,基于预定义的USB设备操作协议并通过预定的函数调用所述句柄向所述USB设备发送操作命令;
1.4、所述USB设备接收所述操作命令并解析,依照所述预定义的USB设备操作协议进行操作并返回结果。
2.如权利要求1所述的方法,其特征在于,所述步骤1.1进一步包括以下步骤:
2.1、连接所述USB设备与主机端;
2.2、所述主机端向USB设备发送设备描述符请求;
2.3、所述USB设备自定义为存储设备并向主机端发送设备描述符;
2.4、所述主机端读取所述设备描述符。
3.如权利要求2所述的方法,其特征在于,所述设备描述符包括配置描述符,所述配置描述符又包括接口描述符,所述接口描述符包括端点描述符的数目、USB设备种类以及传输数据所用到的相关操作协议。
4.如权利要求3所述的方法,其特征在于,所述步骤1.2中,主机端根据USB存储设备规范向所述USB设备发送SCSI命令集中的CBW命令,所述USB设备向主机端作出零存储容量的响应后,所述主机端停止向USB设备发送与存储设备相关的命令。
5.如权利要求4所述的方法,其特征在于,所述步骤1.3中,所述应用程序查找已成功枚举的USB设备并建立USB设备列表,获取该表中USB设备的接口列表,根据所述接口列表查找获取USB设备名称。
6.如权利要求4所述的方法,其特征在于,所述步骤1.3中,所述应用程序建立所述USB设备的句柄后,基于预定义的USB设备操作协议并通过API函数调用所述句柄向所述USB设备发送基于所述USB设备操作协议的操作命令。
7.如权利要求1至6任一项所述的方法,其特征在于,所述步骤1.4中,所述USB设备接收并解析所述操作命令后,还对其类型进行判断:
若所述操作命令属于一般的SCSI命令集,则所述USB设备返回相关描述符;
若所述操作命令属于基于所述USB设备操作协议的操作命令,则依照所述USB设备操作协议进行操作并返回结果。
CN2011100432073A 2010-07-20 2011-02-23 一种实现usb设备免驱动的方法 Pending CN102339260A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011100432073A CN102339260A (zh) 2010-07-20 2011-02-23 一种实现usb设备免驱动的方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201010231907.0 2010-07-20
CN201010231907 2010-07-20
CN2011100432073A CN102339260A (zh) 2010-07-20 2011-02-23 一种实现usb设备免驱动的方法

Publications (1)

Publication Number Publication Date
CN102339260A true CN102339260A (zh) 2012-02-01

Family

ID=45514999

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011100432073A Pending CN102339260A (zh) 2010-07-20 2011-02-23 一种实现usb设备免驱动的方法

Country Status (1)

Country Link
CN (1) CN102339260A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103942170A (zh) * 2014-04-03 2014-07-23 西安交通大学 一种安卓系统usb接口免驱动数据通讯的方法
CN104484685A (zh) * 2014-12-30 2015-04-01 北京大唐智能卡技术有限公司 一种批量发行智能卡的方法及系统
CN106919528A (zh) * 2017-02-22 2017-07-04 中北大学 一种跨平台免驱动usb设备数据传输方法
CN108009102A (zh) * 2016-10-31 2018-05-08 联芯科技有限公司 配置终端设备标识的方法与装置
CN110187915A (zh) * 2019-05-30 2019-08-30 苏州浪潮智能科技有限公司 一种计算机跨平台输入子系统配置架构及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020040418A1 (en) * 2000-09-29 2002-04-04 Steven Bress Write protection for computer long-term memory devices
CN1808973A (zh) * 2006-01-27 2006-07-26 北京飞天诚信科技有限公司 通用串行总线人机交互类的信息安全设备及其控制方法
CN200972508Y (zh) * 2006-10-28 2007-11-07 武汉大学 基于usb的雷达主控pc机与接收机间的通信装置
CN101398792A (zh) * 2007-09-28 2009-04-01 联想(北京)有限公司 一种实现接口功能设备应用的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020040418A1 (en) * 2000-09-29 2002-04-04 Steven Bress Write protection for computer long-term memory devices
CN1808973A (zh) * 2006-01-27 2006-07-26 北京飞天诚信科技有限公司 通用串行总线人机交互类的信息安全设备及其控制方法
CN200972508Y (zh) * 2006-10-28 2007-11-07 武汉大学 基于usb的雷达主控pc机与接收机间的通信装置
CN101398792A (zh) * 2007-09-28 2009-04-01 联想(北京)有限公司 一种实现接口功能设备应用的方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
褚晓滨 等: "USB接口海量存储指令分析", 《机电产品开发与创新》, vol. 21, no. 3, 31 May 2008 (2008-05-31) *
郭宏: "基于USB2.0多通道同步数据采集系统设计", 《武汉科技大学学报(自然科学版)》, vol. 29, no. 5, 31 October 2006 (2006-10-31) *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103942170A (zh) * 2014-04-03 2014-07-23 西安交通大学 一种安卓系统usb接口免驱动数据通讯的方法
CN104484685A (zh) * 2014-12-30 2015-04-01 北京大唐智能卡技术有限公司 一种批量发行智能卡的方法及系统
CN104484685B (zh) * 2014-12-30 2017-08-11 北京大唐智能卡技术有限公司 一种批量发行智能卡的方法及系统
CN108009102A (zh) * 2016-10-31 2018-05-08 联芯科技有限公司 配置终端设备标识的方法与装置
CN106919528A (zh) * 2017-02-22 2017-07-04 中北大学 一种跨平台免驱动usb设备数据传输方法
CN110187915A (zh) * 2019-05-30 2019-08-30 苏州浪潮智能科技有限公司 一种计算机跨平台输入子系统配置架构及方法

Similar Documents

Publication Publication Date Title
US8516161B2 (en) Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system
US9330042B2 (en) Determining extended capability of a channel path
US7500023B2 (en) Facilitating input/output processing by using transport control words to reduce input/output communications
US7984198B2 (en) System and program products for facilitating access to status and measurement data associated with input/output processing
CN102339260A (zh) 一种实现usb设备免驱动的方法
CN1825294A (zh) 计算机系统及其控制方法
CN105630424A (zh) 数据处理方法、装置及系统
US20060168358A1 (en) Storage control system
CN117111539B (zh) 以太网物理层芯片的控制方法及装置
US20080066088A1 (en) Method for improving the communication of the human interface device
US11882038B2 (en) Transaction analyzer for communication bus traffic
US20120102251A1 (en) Serial attached small computer system interface (sas) domain access through a universal serial bus interface of a data processing device
US20120059969A1 (en) Non-invasive direct-mapping usb switching device
CN114218138B (zh) 一种usb设备模拟装置及测试系统
US20080059670A1 (en) Control method and system of constructing raid configuration across multiple host bus adapters
TWI390407B (zh) 多電腦切換器及其轉接器
CN102455986A (zh) 指令传递机制
US9122806B2 (en) SATA data appliance for providing SATA hosts with access to a configurable number of SATA drives residing in a SAS topology
JP4576323B2 (ja) データ転送装置およびデータ転送方法
CN101561760A (zh) 接口卡固件升级方法
CN116132383B (zh) 信息传输装置、系统及方法
US8656059B2 (en) Methods for exchanging administrative information through a communication interface with limited administrative information exchange features
CN107818064B (zh) 支持主从变换的通用串行总线的集线器的运作方法
CN104008073A (zh) 具有虚拟机的cdata存储设备
US20100030941A1 (en) Method and system for connecting multiple ide devices to a usb apparatus using a single usb-to-ide adapter

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20120201