本发明专利技术公开一种基于USB设备的数据交换方法,基于WDF框架,创建普通USB驱动程序,将普通USB设备加载到系统中;创建服务程序,其中所述服务程序中创建有与其他程序进行交互的接口,并创建有用于实现USB-HID驱动程序的挂载的虚拟USB设备;将USB驱动程序、USB-HID驱动程序、服务程序加载到系统中;所述服务程序收发并判断USB设备数据,如果是HID数据收发状态,则服务程序将HID收发数据传送到USB-HID驱动程序,将HID收发数据传送到系统中;否则服务程序将USB设备数据发送到其他程序。本发明专利技术保证普通BULK接口的USB设备既能实现HID数据传输,又能实现第三方软件读写数据到USB设备。
【技术实现步骤摘要】
本专利技术属于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或读写共享文件。权利要求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类型。全文摘要本专利技术公开一种基于USB设备的数据交换方法,基于WDF框架,创建普通USB驱动程序,将普通USB设备加载到系统中;创建服务程序,其中所述服务程序中创建有与其他程序进行交互的接口,并创建有用于实现USB-HID驱动程序的挂载的虚拟USB设备;将USB驱动程序、USB-HID驱动程序、服务程序加载到系统中;所述服务程序收发并判断USB设备数据,如果是HID数据收发状态,则服务程序将HID收发数据传送到USB-HID驱动程序,将HID收发数据传送到系统中;否则服务程序将USB设备数据发送到其他程序。本专利技术保证普通BULK接口的USB设备既能实现HID数据传输,又能实现第三方软件读写数据到USB设备。文档编号G06F13/10GK103246620SQ20131009925公开日2013年8月14日 申请日期2013年3月26日 优先权日2013年3月26日专利技术者唐年华 申请人:广东威创视讯科技股份有限公司本文档来自技高网...
【技术保护点】
一种基于USB设备的数据交换方法,其特征在于,?基于WDF框架,创建普通USB驱动程序,将普通USB设备加载到系统中;创建服务程序,其中所述服务程序中创建有与其他程序进行交互的接口,并创建有用于实现USB?HID驱动程序的挂载的虚拟USB设备;将USB驱动程序、USB?HID驱动程序、服务程序加载到系统中;所述服务程序收发并判断USB设备数据,如果是HID数据收发状态,则服务程序将HID收发数据传送到USB?HID驱动程序,将HID收发数据传送到系统中;否则,则服务程序将USB设备数据发送到其他程序。
【技术特征摘要】
【专利技术属性】
技术研发人员:唐年华,
申请(专利权)人:广东威创视讯科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。