[发明专利]在动态链接库中实现USB设备插拔识别的方法有效
申请号: | 201410378040.X | 申请日: | 2014-08-01 |
公开(公告)号: | CN104156329B | 公开(公告)日: | 2017-02-15 |
发明(设计)人: | 吴志玲;俞小平;黄坚;丁蔚 | 申请(专利权)人: | 无锡中微爱芯电子有限公司 |
主分类号: | G06F13/10 | 分类号: | G06F13/10 |
代理公司: | 无锡市大为专利商标事务所(普通合伙)32104 | 代理人: | 曹祖良,韩凤 |
地址: | 214028 江苏省无锡市*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 动态 链接 实现 usb 设备 识别 方法 | ||
技术领域
本发明涉及USB设备的识别与检测技术,具体是一种在动态链接库中实现USB设备插拔识别的方法。
背景技术
动态链接库(Dynamic Linkable Library,DLL)随Windows操作系统而诞生。作为Windows操作系统的核心和基础,DLL中不仅可以包含代码和数据,还可以包含如位图、图标和对话框等多种资源。DLL的功能主要是为其他DLL或应用程序提供资源支撑,以使其他DLL或应用程序功能更强大、资源更丰富。
动态链接库有诸多优点。首先,它使得应用程序的可扩展性增强,如果用户需要对应用程序的功能进行更改或扩展,只需更换相应的动态链接库便可,而不需要对应用程序进行丝毫改动;其次,DLL可以起到节省内存的作用,若多个应用程序调用同一个动态链接库,其内容在内存中只被加载一次,即可实现多次调用;第三,促进资源共享,因DLL中包含丰富的资源,可以调用该DLL的应用程序均可共享这一资源。正是由于DLL的上述诸多优点,许多应用程序都包含自己的DLL,在其内放入一些功能函数的实现。
USB-HID(Universal Serial Bus-Human Interface Device)是一种即插即用的USB设备,常见的如键盘、鼠标都属于该类设备。本方法所涉及的设备是一种基于USB协议进行数据通信的仿真器。动态链接库根据其内是否包含窗体可分为包含窗体的DLL与不包含窗体的DLL。本方法所涉及的DLL属于不包含窗体的DLL。
目前USB设备插拔识别主要是在包含窗体界面的上位机中实现,该方法是通过窗体接收来自Windows系统的消息WM_DEVICECHANGE,通过对该消息处理函数OnDeviceChange的参数进行判断得知触发该消息的是何种事件,以进行不同的处理。若该参数为DBT_DEVICEARRIVAL,则表明设备已连接;若该参数为DBT_DEVICEREMOVECOMPLETE,则表明该设备已移除。
因本方法中的DLL不包含窗体,无法接收到系统消息WM_DEVICECHANGE,故不能采用传统的方法识别USB设备的插拔。
发明内容
本发明的目的是克服现有技术中存在的不足,提供一种实现USB设备插拔识别的方法,在不包含窗体的动态链接库中实现对USB-HID类设备的插拔识别。
按照本发明提供的技术方案,所述的在动态链接库中实现USB设备插拔识别的方法包括:
步骤A、启动调用动态链接库的应用程序,在应用程序中初始化各功能模块及待调用的动态链接库;所述的动态链接库是指不包含窗体的动态链接库;
步骤B、动态链接库初始化操作完成后,调用能够实现USB设备插拔识别功能的库函数,对USB-HID类设备进行扫描;
步骤C、检测到有设备插入时,进入步骤D;若无设备插入时,继续进行设备扫描;
步骤D、判断该设备的供应商识别码VID、产品识别码PID是否与所需设备的相匹配,若匹配且是在检测到有设备连接时首次匹配,则提示用户设备已成功连接;若不匹配且是在检测到有设备连接时首次不匹配,则提示设备已移除。
其中,步骤A所述动态链接库的初始化中包含后序设备识别所需验证的VID、PID的设定。
步骤B中所述的对设备进行的扫描是指在动态链接库中定时检测是否有与所设定的VID、PID相匹配的USB-HID类设备连接到主机上。
步骤B至步骤D的整个过程所持续时间在定时器的安全时间内,所述安全时间是指步骤B至步骤D的过程所需的时间小于定时器的定时时间。
本发明的优点是:所述方法在有VID、PID均匹配的USB-HID设备插入或拔出时会做出相应的用户界面提示,且该功能的实现是在不包含窗体的动态链接库中完成的。动态链接库中的代码对于应用程序是透明的,本方法不仅实现了设备插拔识别的功能,而且还集成了动态链接库资源共享和减少内存开销的优点。
附图说明
图1为本发明方法的实现过程示意图。
图2为传统的利用系统消息WM_DEVICECHANGE识别USB设备插拔的示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
本发明通过在不包含窗体的动态链接库中定时对设备连接状态扫描,实现了非传统模式的USB-HID类设备的插拔识别,并在该动态链接库被调用后可根据设备状态的改变做出实时提示。
如图1所示,根据本发明的方法,动态链接库中设备识别的过程如下:
101 启动调用动态链接库的应用程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡中微爱芯电子有限公司,未经无锡中微爱芯电子有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410378040.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种UART多接口复用方法
- 下一篇:一种识别操作系统类型的方法及USB设备