CN104536932A - 专用低速usb设备的通用通讯方法 - Google Patents
专用低速usb设备的通用通讯方法 Download PDFInfo
- Publication number
- CN104536932A CN104536932A CN201510035546.5A CN201510035546A CN104536932A CN 104536932 A CN104536932 A CN 104536932A CN 201510035546 A CN201510035546 A CN 201510035546A CN 104536932 A CN104536932 A CN 104536932A
- Authority
- CN
- China
- Prior art keywords
- speed usb
- special low
- usb devices
- data
- equipment
- 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.)
- Granted
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 (4)
1.一种专用低速USB设备的通用通讯方法,包括如下步骤:
S1、获取主机当前连接的所有专用低速USB设备信息的集合;
S2、枚举所述集合中的专用低速USB设备,并将所枚举的低速USB设备的ID值与所要加载的专用低速USB设备的ID值进行比较,若所述ID值相同,则将当前所枚举专用低速USB设备加载;
S3、若步骤S2加载成功,则建立并维持一个读设备线程和写设备线程;
S4、在没有通过所述加载的专用低速USB设备输入的数据到来时,使所述读设备进程阻塞,在有通过所述加载的专用低速USB设备输入的数据到来时,所述读设备线程运行;
S5、在没有写入所述加载的专用低速USB设备的数据到来时,使所述写设备进程阻塞,在有写入所述加载的专用低速USB设备的数据到来时,所述写设备进程运行。
2.如权利要求1所述的专用低速USB设备的通用通讯方法,其特征在于,所述ID值是VID、PID和PVN值,在步骤S2中,只有所述VID、PID和PVN值均相同时,才将当前所枚举的专用低速USB设备加载。
3.如权利要求1所述的专用低速USB设备的通用通讯方法,其特征在于,在所述步骤S4中,当所述读设备线程运行时,将读出的数据保存在缓冲区中,并对数据进行解析后提交给主机。
4.如权利要求1所述的专用低速USB设备的通用通讯方法,其特征在于,在所述步骤S5中,当所述写设备线程运行时,要写入的数据按所述专用低速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 true CN104536932A (zh) | 2015-04-22 |
CN104536932B 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109683083A (zh) * | 2018-12-29 | 2019-04-26 | 泛仕达机电股份有限公司 | 一种应用于风机控制电路板的低速通讯方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050182860A1 (en) * | 2004-02-18 | 2005-08-18 | Infineon Technologies Ag | Method for operating a peripheral device on a bus system of a computer system |
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 | 广州金山网络科技有限公司 | 一种下载优化方法及装置、终端 |
-
2015
- 2015-01-23 CN CN201510035546.5A patent/CN104536932B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050182860A1 (en) * | 2004-02-18 | 2005-08-18 | Infineon Technologies Ag | Method for operating a peripheral device on a bus system of a computer system |
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 | 广州金山网络科技有限公司 | 一种下载优化方法及装置、终端 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109683083A (zh) * | 2018-12-29 | 2019-04-26 | 泛仕达机电股份有限公司 | 一种应用于风机控制电路板的低速通讯方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104536932B (zh) | 2019-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10120736B2 (en) | Executing a kernel device driver as a user space process | |
US8812983B2 (en) | Automatic magnification and selection confirmation | |
US9285969B2 (en) | User interface navigation utilizing pressure-sensitive touch | |
US10242341B2 (en) | Automatic taskbar grouping by user tasks | |
US20190012005A1 (en) | Method and device for asynchronous touch and asynchronous display on dual-screen and computer readable storage medium | |
US20160210102A1 (en) | Multiple Displays For Displaying Workspaces | |
KR102350379B1 (ko) | 복수의 칩 사이의 통신 지원 방법, 장치, 전자 기기 및 컴퓨터 저장 매체 | |
US10345895B2 (en) | Hand and finger line grid for hand based interactions | |
CN114237743A (zh) | 界面加载方法、装置、电子设备和存储介质 | |
CN104536932A (zh) | 专用低速usb设备的通用通讯方法 | |
CN104636089A (zh) | 一种基于nvme技术的国产处理器服务器性能加速方法 | |
CN112347017A (zh) | Lpc总线接口的ps/2键盘双机外挂系统和切换方法 | |
Lakshmi et al. | A novel air writing recognition system using Raspberry Pi for the control and interaction of digital systems | |
CN105488009A (zh) | 一种fru的读取/写入方法及读/写系统 | |
CN103164357A (zh) | 电子装置及usb设备的移除策略设定方法 | |
CN111352357B (zh) | 机器人的控制方法、装置及终端设备 | |
CN204178365U (zh) | Lbe总线与isa总线间的转换结构 | |
CN108629175B (zh) | Usb大容量存储设备的访问控制方法及访问控制装置 | |
CN112416951B (zh) | 数据传递方法及其装置、计算机可存储介质 | |
CN103971038A (zh) | 计算机系统 | |
US20170039148A1 (en) | Methods and systems for handling interrupt requests | |
WO2017188484A1 (ko) | 메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체 | |
CN109739797B (zh) | 一种电子设备 | |
CN101661444B (zh) | 动态管理一可插拔装置的方法与系统 | |
US20230333527A1 (en) | Enhanced capacity management of power supplies in response to environmental conditions |
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 |