CN104536932A - 专用低速usb设备的通用通讯方法 - Google Patents

专用低速usb设备的通用通讯方法 Download PDF

Info

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
Application number
CN201510035546.5A
Other languages
English (en)
Other versions
CN104536932B (zh
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN201510035546.5A priority Critical patent/CN104536932B/zh
Publication of CN104536932A publication Critical patent/CN104536932A/zh
Application granted granted Critical
Publication of CN104536932B publication Critical patent/CN104536932B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information 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设备,而专用低速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设备。
CN201510035546.5A 2015-01-23 2015-01-23 专用低速usb设备的通用通讯方法 Active CN104536932B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109683083A (zh) * 2018-12-29 2019-04-26 泛仕达机电股份有限公司 一种应用于风机控制电路板的低速通讯方法

Citations (6)

* Cited by examiner, † Cited by third party
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 广州金山网络科技有限公司 一种下载优化方法及装置、终端

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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