CN104536932B - 专用低速usb设备的通用通讯方法 - Google Patents
专用低速usb设备的通用通讯方法 Download PDFInfo
- Publication number
- CN104536932B CN104536932B CN201510035546.5A CN201510035546A CN104536932B CN 104536932 B CN104536932 B CN 104536932B CN 201510035546 A CN201510035546 A CN 201510035546A CN 104536932 B CN104536932 B CN 104536932B
- Authority
- CN
- China
- Prior art keywords
- usb devices
- speed usb
- dedicated low
- low
- data
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明公开了一种专用低速USB设备的通用通讯方法,首先获取主机当前连接的所有专用低速USB设备信息的集合;然后枚举集合中的专用低速USB设备,并将所枚举的低速USB设备的ID值与所要加载的专用低速USB设备的ID值进行比较,若ID值相同,则将当前所枚举专用低速USB设备加载;若加载成功,则建立并维持一个读设备线程和写设备线程;在没有通过加载的专用低速USB设备输入的数据到来时,使读设备线程阻塞,在有输入的数据到来时,读设备线程运行;在没有写入加载的专用低速USB设备的数据到来时,使写设备线程阻塞,在有写入数据到来时,写设备线程运行。本发明集专用低速USB设备的识别和读写为一体,响应速度快、加载和卸载灵活,易于不同操作系统下应用。
Description
技术领域
本发明属于计算机技术领域,具体涉及一种专用低速USB设备的通讯方法,特别是一种适用于在不同操作系统环境下的专用低速USB设备的通用通讯方法,所述通讯包括识别、加载和读写操作。
背景技术
低速USB设备,例如键盘、鼠标等,通常用于用户与计算机之间的交互通讯。低速USB设备具有使用方便、响应迅速、研发成本低廉等优点。低速USB设备当前正在向专用化方向发展,例如专用于特定智能设备的专用低速USB设备,而专用低速USB设备一般只能够在一特定的操作系统环境下被加载并进行通讯,而无法在诸如Windows、UNIX、Linux等各种操作系统环境中通用,因此,在不能获得特定操作系统的加载程序和通讯程序时会对实际工作造成很大不便。
图1是现有的专用低速USB设备与主机之间的信号传输示意图。如图1所示,低速USB设备一般都包含一个控制端点和一个中断输入端点,分别用于完成专用低速USB设备的设备类请求和用于响应用户输入。有些低速USB设备还包含中断输出端点。目前,使用中断方式的专用低速USB设备较多。
根据专用低速USB设备的原理可知,当与主机连接时,主机首先对其进行识别,识别完成后才能通过轮询方式检测设备状态变化情况,完成通讯过程。而当主机的操作系统与该专用低速USB设备不相匹配时,则无法加载该专用低速USB设备。
发明内容
(一)要解决的技术问题
本发明旨在解决专用低速USB设备不能在各种不同的操作系统下均被有效加载和进行通讯的问题。
(二)技术方案
本发明提出一种能够识别并以异步方式读写专用低速USB设备的通用通讯方法。该方法将专用低速USB设备的识别和读写功能进行集成,从而可以在不同操作系统环境下通过本发明的通用通讯方法有效实现对此类USB设备的操控。
本发明提出的专用低速USB设备的通用通讯方法,包括如下步骤:S1、获取主机当前连接的所有专用低速USB设备信息的集合;S2、枚举所述集合中的专用低速USB设备,并将所枚举的低速USB设备的ID值与所要加载的专用低速USB设备的ID值进行比较,若所述ID值相同,则将当前所枚举专用低速USB设备加载;S3、若步骤S2加载成功,则建立并维持一个读设备线程和写设备线程;S4、在没有通过所述加载的专用低速USB设备输入的数据到来时,使所述读设备线程阻塞,在有通过所述加载的专用低速USB设备输入的数据到来时,所述读设备线程运行;S5、在没有写入所述加载的专用低速USB设备的数据到来时,使所述写设备线程阻塞,在有写入所述加载的专用低速USB设备的数据到来时,所述写设备线程运行。
根据本发明的具体实施方式,所述ID值是VID、PID和PVN值,在步骤S2中,只有所述VID、PID和PVN值均相同时,才将当前所枚举的专用低速USB设备加载。
根据本发明的具体实施方式,在所述步骤S4中,当所述读设备线程运行时,将读出的数据保存在缓冲区中,并对数据进行解析后提交给主机。
根据本发明的具体实施方式,在所述步骤S5中,当所述写设备线程运行时,要写入的数据按所述专用低速USB设备规定的数据格式进行封装,然后复制到一个缓冲区内,再输出到该专用低速USB设备。
(三)有益效果
与现有技术相比,本发明不但集专用低速USB设备的识别和读写为一体,方便使用,而且响应速度快、加载和卸载灵活,易于不同操作系统下的快捷应用。
附图说明
图1是现有的专用低速USB设备与主机之间的信号传输示意图;
图2本发明的专用低速USB设备的通用通讯方法流程图。
具体实施方式
在不同的操作系统环境下都能加载和操控某一专用低速USB设备并进行通讯,必须解决两个基本问题:一是专用低速USB设备的识别问题,二是专用低速USB设备的双工过程(读、写)问题。解决这两个问题的关键在于如何获取USB设备的三项ID值并进行比较,以及采用何种方式对专用低速USB设备的报表进行读写。
专用低速USB设备的唯一识别值就是三项ID(VID、PID和PVN)。本发明据此将各种操作系统环境下对专用低速USB设备的识别归纳为对三项ID值的读取和比较问题。此外,由于专用低速USB设备可能随时与主机以中断方式进行通讯,因此本发明选择以异步调用方式实现设备与主机的通讯过程,这种方式可以大大减轻主机系统的负载。
具体来说,本发明的专用低速USB设备的通用通讯方法包括如下步骤:
S1、获取主机当前连接的所有专用低速USB设备信息的集合。
S2、枚举所述集合中的专用低速USB设备,并将所枚举的低速USB设备的ID值与所要加载的专用低速USB设备的ID值进行比较,若所述ID值相同,则将当前所枚举专用低速USB设备加载;ID值是VID、PID和PVN值,在步骤S2中,只有所述VID、PID和PVN值均相同时,才将当前所枚举的专用低速USB设备加载。
S3、若步骤S2加载成功,则建立并维持一个读设备线程和写设备线程。
S4、在没有通过所述加载的专用低速USB设备输入的数据到来时,使所述读设备线程阻塞,在有通过所述加载的专用低速USB设备输入的数据到来时,所述读设备线程运行。具体来说,当所述读设备线程运行时,将读出的数据保存在缓冲区中,并对数据进行解析后提交给主机。
S5、在没有写入所述加载的专用低速USB设备的数据到来时,使所述写设备线程阻塞,在有写入所述加载的专用低速USB设备的数据到来时,所述写设备线程运行。具体来说,当所述写设备线程运行时,要写入的数据按所述专用低速USB设备规定的数据格式进行封装,然后复制到一个缓冲区内,再输出到该专用低速USB设备。为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
图2本发明的专用低速USB设备的识别与加载流程图。
S1、如图2所示,由于一台主机可能同时连接有多台低速USB设备,所以首先获取当前与主机连接的所有专用低速USB设备信息的集合。
S2、然后枚举集合中的各个专用低速USB设备,并将每一个专用低速USB设备的VID、PID和PVN值与所要加载的专用低速USB设备的VID、PID和PVN值进行比较。若三项值均相同,则将当前所枚举专用低速USB设备加载。这样,就不必为每一种操作系统分别实现特定的识别功能。当设备被成功识别和加载后,就可以与主机进行通讯。
S3、根据本发明,在专用低速USB设备成功加载后,建立并维持一个读设备线程和一个写设备线程,直到主机与该专用低速USB设备的连接断开。
S4、在没有数据到来时读数据线程阻塞;当有数据输入时,读数据线程运行,将输入数据保存在缓冲区中,并对数据进行解析,提交给主机相关的应用程序。这之后读数据线程将再次被阻塞,直到有新的输入数据到来。
S5、写数据流程与读数据流程类似,但对延迟的要求较高。写数据时,首先将要输出的数据按专用低速USB设备规定的数据格式进行封装,然后复制到一个缓冲区内,再输出到专用低速USB设备即可。
综上所述,本发明实现了对专用低速USB设备的识别、加载和读写功能,且可在不同操作系统环境下进行操作,因此能够显著提高专用低速USB设备的通用问题。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.一种专用低速USB设备的通用通讯方法,包括如下步骤:
S1、获取主机当前连接的所有专用低速USB设备信息的集合;
S2、枚举所述集合中的专用低速USB设备,并将所枚举的低速USB设备的VID、PID和PVN值与所要加载的专用低速USB设备的VID、PID和PVN值进行比较,若所述VID、PID和PVN值均相同,则将当前所枚举专用低速USB设备加载,当专用低速USB设备被成功识别和加载后,与主机进行通讯;
S3、若步骤S2加载成功,则建立并维持一个读设备线程和写设备线程,直到主机与该专用低速USB设备的连接断开;
S4、在没有通过所述加载的专用低速USB设备输入的数据到来时,使所述读设备线程阻塞,在有通过所述加载的专用低速USB设备输入的数据到来时,所述读设备线程运行,将读出的数据保存在缓冲区中,并对数据进行解析后提交给主机;在此之后,读数据线程将再次被阻塞,直到有新的输入数据到来;
S5、在没有写入所述加载的专用低速USB设备的数据到来时,使所述写设备线程阻塞,在有写入所述加载的专用低速USB设备的数据到来时,所述写设备线程运行,将要写入的数据按所述专用低速USB设备规定的数据格式进行封装,然后复制到一个缓冲区内,再输出到该专用低速USB设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510035546.5A CN104536932B (zh) | 2015-01-23 | 2015-01-23 | 专用低速usb设备的通用通讯方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510035546.5A CN104536932B (zh) | 2015-01-23 | 2015-01-23 | 专用低速usb设备的通用通讯方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104536932A CN104536932A (zh) | 2015-04-22 |
CN104536932B true CN104536932B (zh) | 2019-01-01 |
Family
ID=52852462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510035546.5A Active CN104536932B (zh) | 2015-01-23 | 2015-01-23 | 专用低速usb设备的通用通讯方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104536932B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109683083A (zh) * | 2018-12-29 | 2019-04-26 | 泛仕达机电股份有限公司 | 一种应用于风机控制电路板的低速通讯方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008136816A1 (en) * | 2007-05-07 | 2008-11-13 | Sony Ericsson Mobile Communications Ab | Methods, devices and computer program products for automatically providing an alternate usb configuration of a usb compliant peripheral device for exposure to a host computer |
WO2011100172A2 (en) * | 2010-02-12 | 2011-08-18 | Microsoft Corporation | Rule-based assignment of control of peripherals of a computing device |
CN102163147A (zh) * | 2010-02-12 | 2011-08-24 | 微软公司 | 计算设备的外围设备的控制的分配 |
CN103748569A (zh) * | 2011-06-27 | 2014-04-23 | 施耐德电气It公司 | Usb设备的无驱动操作的系统和方法 |
CN104184817A (zh) * | 2014-08-28 | 2014-12-03 | 广州金山网络科技有限公司 | 一种下载优化方法及装置、终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004007994B4 (de) * | 2004-02-18 | 2007-07-12 | Infineon Technologies Ag | Verfahren zum Zuweisen von Zugriffsrechten an ein Peripheriegerät |
-
2015
- 2015-01-23 CN CN201510035546.5A patent/CN104536932B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008136816A1 (en) * | 2007-05-07 | 2008-11-13 | Sony Ericsson Mobile Communications Ab | Methods, devices and computer program products for automatically providing an alternate usb configuration of a usb compliant peripheral device for exposure to a host computer |
WO2011100172A2 (en) * | 2010-02-12 | 2011-08-18 | Microsoft Corporation | Rule-based assignment of control of peripherals of a computing device |
CN102163147A (zh) * | 2010-02-12 | 2011-08-24 | 微软公司 | 计算设备的外围设备的控制的分配 |
CN103748569A (zh) * | 2011-06-27 | 2014-04-23 | 施耐德电气It公司 | Usb设备的无驱动操作的系统和方法 |
CN104184817A (zh) * | 2014-08-28 | 2014-12-03 | 广州金山网络科技有限公司 | 一种下载优化方法及装置、终端 |
Also Published As
Publication number | Publication date |
---|---|
CN104536932A (zh) | 2015-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8521929B2 (en) | Virtual serial port management system and method | |
US9507619B2 (en) | Virtualizing a host USB adapter | |
US7904605B2 (en) | Computer command and response for determining the state of an I/O operation | |
WO2019127476A1 (zh) | 虚拟系统蓝牙通信方法及装置、虚拟系统、存储介质及电子设备 | |
US9806959B2 (en) | Baseboard management controller (BMC) to host communication through device independent universal serial bus (USB) interface | |
CN102622136B (zh) | 一种多点触摸系统数据处理方法及装置 | |
CN112041827B (zh) | 自动usb主机检测和端口配置方法及装置 | |
US9779047B2 (en) | Universal intelligent platform management interface (IPMI) host to baseboard management controller (BMC) communication for non-x86 and legacy free systems | |
CN109743105A (zh) | 智能网卡光模块管理方法、装置、系统及智能网卡和介质 | |
CN104021101A (zh) | 基于lpc1768平台的usb接口系统及实现方法 | |
TW201411358A (zh) | 透過PCIe介面連接於一主機系統的儲存裝置和方法 | |
US9639489B2 (en) | I/O device sharing system and I/O device sharing method | |
US9858224B2 (en) | Universal serial bus emulation layer | |
CN111124985A (zh) | 一种移动终端只读控制方法及装置 | |
US9158645B2 (en) | Continuously transferring data using a USB mass storage device | |
US20110072168A1 (en) | Data transfer system with different operating modes | |
EP2990956B1 (en) | Usb device and method thereof for automatically recognizing microsoft windowing operating system version | |
CN104536932B (zh) | 专用低速usb设备的通用通讯方法 | |
CN105279110B (zh) | 一种usb设备识别主机系统的方法及usb设备 | |
CN111737178B (zh) | 一种计算机内存取证方法、设备及内存取证分析系统 | |
CN112347017A (zh) | Lpc总线接口的ps/2键盘双机外挂系统和切换方法 | |
CN105183676A (zh) | 对存储器写保护的系统及方法 | |
CN103077104B (zh) | 一种片上系统的验证方法、装置和系统 | |
US11762976B2 (en) | USB mass storage device access control method and access control apparatus | |
US11334506B2 (en) | Interface connection device, system and method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |