CN103246620A - 一种基于usb设备的数据交换方法 - Google Patents
一种基于usb设备的数据交换方法 Download PDFInfo
- Publication number
- CN103246620A CN103246620A CN2013100992553A CN201310099255A CN103246620A CN 103246620 A CN103246620 A CN 103246620A CN 2013100992553 A CN2013100992553 A CN 2013100992553A CN 201310099255 A CN201310099255 A CN 201310099255A CN 103246620 A CN103246620 A CN 103246620A
- Authority
- CN
- China
- Prior art keywords
- usb
- data
- hid
- equipment
- program
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 230000003993 interaction Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 abstract description 3
- 238000011161 development Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开一种基于USB设备的数据交换方法,基于WDF框架,创建普通USB驱动程序,将普通USB设备加载到系统中;创建服务程序,其中所述服务程序中创建有与其他程序进行交互的接口,并创建有用于实现USB-HID驱动程序的挂载的虚拟USB设备;将USB驱动程序、USB-HID驱动程序、服务程序加载到系统中;所述服务程序收发并判断USB设备数据,如果是HID数据收发状态,则服务程序将HID收发数据传送到USB-HID驱动程序,将HID收发数据传送到系统中;否则服务程序将USB设备数据发送到其他程序。本发明保证普通BULK接口的USB设备既能实现HID数据传输,又能实现第三方软件读写数据到USB设备。
Description
技术领域
本发明属于USB数据交换领域,特别涉及一种基于USB设备的数据交换方法。
背景技术
USB设备以其方便易用,数据传输速度快等优势,已经在现代计算机产品中占据了重要的席位。在计算机触摸交互领域,大部分的触摸定位框都采用USB接口与主机相连。这样定位框并不固定在显示平台上,对定位框的安装、拆卸、维护都带来极大不便利。目前Windows平台下的USB-HID驱动程序多半采用微软的WDF驱动开发框架进行USB-HID驱动开发,而硬件设备一般都是采用单接口方案设置,并通常有输入输出两个端点。在实际开发过程中,WDF采用系统中mshidkmdf.sys作为过滤驱动,并配合HID微小驱动hidusb.sys,实现普通USB接口的HID接口输出。但该方法中,框架要求独占USB的一个接口,该接口只收发数据到HID设备,输出到操作系统,而在实际使用过程中,有时需要对定位框进行必要的校正操作,即需要从第三方软件与硬件设备实现读写交互。这样就会与先前的HID设备输出到PC端有了冲突。
发明内容
为了解决这个问题,本发明提出了一种基于USB设备的数据交换方法,本发明将普通USB驱动程序与Windows服务程序相结合,保证普通BULK接口的USB设备既能实现HID数据传输,又能实现其他程序,即第三方软件读写数据到USB设备。
为了实现上述目的,本发明的技术方案为:
一种基于USB设备的数据交换方法,基于WDF框架,创建普通USB驱动程序,将USB设备加载到系统中;创建服务程序,其中所述服务程序中创建有与其他程序进行交互的接口,并创建有用于实现USB-HID驱动程序的挂载的虚拟USB设备;将USB驱动程序、USB-HID驱动程序、服务程序加载到系统中;
所述服务程序收发并判断USB设备数据,如果是HID数据收发状态,则服务程序将HID收发数据传送到USB-HID驱动程序,将HID收发数据传送到系统中;否则,则服务程序将USB设备数据传送到其他程序进行调试,譬如发送调试数据进行调试。
正常触摸状态下,服务程序实时读取普通USB设备的触摸数据,计算成触摸数据,并按照HID报告描述符规定,传送给上层的USB-HID驱动程序,继而将HID数据传输给系统。当其他程序运行时,使得从普通USB设备收发数据的渠道转入到其他程序中,当其他程序工作完成时,服务程序恢复USB-HID收发数据状态。这样既可实现其他程序,即第三方软件读写数据到USB设备,又可以实现USB设备数据的HID发送。
附图说明
图1为本发明的基于WDF中非HID设备映射成HID设备示意图。
图2为本发明的软件架构示意图。
图3为本发明的操作流程图。
具体实施方式
现结合实施例对本发明的技术方案做进一步说明。
如图,一种基于USB设备的数据交换方法,基于WDF框架,包括以下步骤:
1)创建普通USB驱动程序,将普通USB设备加载到PC系统中;
2)创建服务程序;其中,
a)设置变量,用于存储判定目前USB设备数据状态是HID数据收发还是其他程序,在本实施例中,其他程序为调试校正软件数据;
b)创建虚拟USB设备,接口端点为普通BULK类型,用于为上层USB-HID驱动程序加载;虚拟USB设备用于实现USB-HID驱动程序的挂载;将USB驱动程序、USB-HID驱动程序、服务程序加载到系统中;
c)在服务程序上创建命名管道NamedPipe,用来与其他程序进行数据交互;并实现与Windows服务程序的数据交互。
d)创建数据读取线程,循环读取普通USB硬件设备数据;
3)创建非HID设备映射USB-HID驱动程序,具体如图1所示。
4)创建调试校正软件作为其他程序,软件中设置命名管道NamedPipe,实现与服务程序的数据交互。
5)将定位框USB设备接入PC系统,将上述普通USB设备驱动程序、服务程序、HID驱动程序安装到系统中。
6)调试校正软件没有运行时,服务程序中得到的硬件数据将按照HID报告描述符规定,发送到上层HID驱动程序中,最终发送到操作系统中,实现设备的触摸定位。当打开调试软件时,更改服务程序中的设置,停止发送数据到HID驱动程序,并通过命名管道收发调试数据。
在本实施例中,服务程序中创建的与其他程序交互的接口还可以为Socket网络数据交换接口、邮槽Mailslot或读写共享文件。
Claims (6)
1.一种基于USB设备的数据交换方法,其特征在于,
基于WDF框架,创建普通USB驱动程序,将普通USB设备加载到系统中;创建服务程序,其中所述服务程序中创建有与其他程序进行交互的接口,并创建有用于实现USB-HID驱动程序的挂载的虚拟USB设备;将USB驱动程序、USB-HID驱动程序、服务程序加载到系统中;
所述服务程序收发并判断USB设备数据,如果是HID数据收发状态,则服务程序将HID收发数据传送到USB-HID驱动程序,将HID收发数据传送到系统中;否则,则服务程序将USB设备数据发送到其他程序。
2.根据权利要求1所述的基于USB设备的数据交换方法,其特征在于,所述服务程序还设有用于存储USB设备数据状态的变量,其USB设备数据状态包括HID数据收发状态和数据调试校正状态;
还设有用于循环读取普通USB设备数据的数据读取线程。
3.根据权利要求2所述的基于USB设备的数据交换方法,其特征在于,所述服务程序中与其他程序进行交互的接口为:命名管道、Socket网络数据交换接口、邮槽Mailslot或读写共享文件方式中的一种或多种。
4.根据权利要求3所述的基于USB设备的数据交换方法,其特征在于,所述其他程序中创建有命名管道,用于实现与Windows服务程序的数据交互。
5.根据权利要求4所述的基于USB设备的数据交换方法,其特征在于,所述其他程序为调试校正软件。
6.根据权利要求5所述的基于USB设备的数据交换方法,其特征在于,所述普通USB设备的接口端点为普通BULK类型,虚拟USB设备的接口端点为普通BULK类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100992553A CN103246620A (zh) | 2013-03-26 | 2013-03-26 | 一种基于usb设备的数据交换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100992553A CN103246620A (zh) | 2013-03-26 | 2013-03-26 | 一种基于usb设备的数据交换方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103246620A true CN103246620A (zh) | 2013-08-14 |
Family
ID=48926148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013100992553A Pending CN103246620A (zh) | 2013-03-26 | 2013-03-26 | 一种基于usb设备的数据交换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103246620A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105868132A (zh) * | 2016-04-29 | 2016-08-17 | 优利德科技(中国)有限公司 | 一种基于usb通信的数字示波器模块化功能拓展方法及系统 |
CN111274189A (zh) * | 2020-03-10 | 2020-06-12 | 国微集团(深圳)有限公司 | Usb设备及其实时通讯方法 |
US10747366B2 (en) | 2015-11-23 | 2020-08-18 | Hewlett-Packard Development Company, L.P. | Calibration data identification |
CN111769999A (zh) * | 2020-05-09 | 2020-10-13 | 厦门亿联网络技术股份有限公司 | 一种usb设备软件的调试方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101242395A (zh) * | 2008-02-19 | 2008-08-13 | 深圳华为通信技术有限公司 | 一种数据传输的方法及usb接口 |
CN101408812A (zh) * | 2008-10-07 | 2009-04-15 | 四川登巅微电子有限公司 | Usb鼠标与u盘集成的复合设备 |
CN101482854A (zh) * | 2009-02-10 | 2009-07-15 | 深圳华为通信技术有限公司 | Usb多通道传输方法、系统及主机 |
CN102012890A (zh) * | 2010-07-15 | 2011-04-13 | 苏州国芯科技有限公司 | 一种复合键盘和指纹识别器的通用串行总线数据传输方法 |
-
2013
- 2013-03-26 CN CN2013100992553A patent/CN103246620A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101242395A (zh) * | 2008-02-19 | 2008-08-13 | 深圳华为通信技术有限公司 | 一种数据传输的方法及usb接口 |
CN101408812A (zh) * | 2008-10-07 | 2009-04-15 | 四川登巅微电子有限公司 | Usb鼠标与u盘集成的复合设备 |
CN101482854A (zh) * | 2009-02-10 | 2009-07-15 | 深圳华为通信技术有限公司 | Usb多通道传输方法、系统及主机 |
CN102012890A (zh) * | 2010-07-15 | 2011-04-13 | 苏州国芯科技有限公司 | 一种复合键盘和指纹识别器的通用串行总线数据传输方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10747366B2 (en) | 2015-11-23 | 2020-08-18 | Hewlett-Packard Development Company, L.P. | Calibration data identification |
CN105868132A (zh) * | 2016-04-29 | 2016-08-17 | 优利德科技(中国)有限公司 | 一种基于usb通信的数字示波器模块化功能拓展方法及系统 |
CN105868132B (zh) * | 2016-04-29 | 2019-01-11 | 优利德科技(中国)股份有限公司 | 一种基于usb通信的数字示波器模块化功能拓展方法及系统 |
CN111274189A (zh) * | 2020-03-10 | 2020-06-12 | 国微集团(深圳)有限公司 | Usb设备及其实时通讯方法 |
CN111274189B (zh) * | 2020-03-10 | 2023-08-08 | 国微集团(深圳)有限公司 | Usb设备及其实时通讯方法 |
CN111769999A (zh) * | 2020-05-09 | 2020-10-13 | 厦门亿联网络技术股份有限公司 | 一种usb设备软件的调试方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102323905B (zh) | 一种龙芯主板的远程监控系统 | |
US8214571B2 (en) | Simple serial interface—method of communication and information exchange, and electronic devices based on this method | |
US20050262279A1 (en) | USB OTG adapter module for debugging USB OTG devices | |
WO2013138464A1 (en) | Data redirection for universal serial bus devices | |
US20170277614A1 (en) | Intelligent test robot system | |
US20070240011A1 (en) | FIFO memory data pipelining system and method for increasing I²C bus speed | |
CN103412841B (zh) | VxWorks操作系统下CPCI总线RS422通信模块的驱动器及驱动方法 | |
CN103246620A (zh) | 一种基于usb设备的数据交换方法 | |
CN103309830A (zh) | VxWorks操作系统下CPCI总线CAN通信模块的驱动器及驱动方法 | |
CN107368219B (zh) | 触摸响应方法、芯片及智能设备 | |
CN104102508A (zh) | 一种基于FlexRay总线的多机程序在线升级方法 | |
US8868811B2 (en) | Systems and methods for hot-plug detection recovery | |
CN105653461A (zh) | 一种单usb接口转多uart调试接口的转换系统 | |
US20050228915A1 (en) | Pipelined stop, start, address byte, and data byte technique and circuit for I2C logic system | |
CN103744478A (zh) | 一种蓝牙无线显示器及其控制方法 | |
CN111142011A (zh) | 快递柜测试治具 | |
US20070293984A1 (en) | Method for command transmission between systems | |
CN101551707A (zh) | 可将图像信号传输至通用串行总线显示器的切换器及方法 | |
CN108153624B (zh) | 适用于ngff插槽的测试电路板 | |
CN104077200A (zh) | 一种脱离于主机的cpci模块独立测试装置 | |
TWI502338B (zh) | 測試介面卡及測試方法 | |
CN106372019B (zh) | 一种系统总线设备响应超时的处理方法及超时处理装置 | |
CN202424939U (zh) | 一种cmos图像传感器调试器 | |
CN105068962A (zh) | I2c控制器访问方法及系统 | |
CN212111668U (zh) | 快递柜测试治具 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130814 |
|
RJ01 | Rejection of invention patent application after publication |