CN110175139A - 一种usb设备的通用调试方法及usb设备 - Google Patents

一种usb设备的通用调试方法及usb设备 Download PDF

Info

Publication number
CN110175139A
CN110175139A CN201910381978.XA CN201910381978A CN110175139A CN 110175139 A CN110175139 A CN 110175139A CN 201910381978 A CN201910381978 A CN 201910381978A CN 110175139 A CN110175139 A CN 110175139A
Authority
CN
China
Prior art keywords
input information
usb device
terminal
serial port
debugged
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
CN201910381978.XA
Other languages
English (en)
Other versions
CN110175139B (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.)
Xiamen Yealink Network Technology Co Ltd
Original Assignee
Xiamen Yealink Network Technology Co Ltd
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 Xiamen Yealink Network Technology Co Ltd filed Critical Xiamen Yealink Network Technology Co Ltd
Priority to CN201910381978.XA priority Critical patent/CN110175139B/zh
Publication of CN110175139A publication Critical patent/CN110175139A/zh
Priority to US16/835,554 priority patent/US11573871B2/en
Priority to EP20167234.2A priority patent/EP3736698B1/en
Application granted granted Critical
Publication of CN110175139B publication Critical patent/CN110175139B/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/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Abstract

本发明公开了一种USB设备的通用调试方法及USB设备。在一个实施例中:通过HID设备接收终端的输入信息;在所述输入信息的report ID为串口ID时,将所述输入信息转发至虚拟串口tty设备的缓冲区;从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息,对该输入信息执行shell命令,并将执行结果原路返回所述终端。基于该实施例的教导,采用USB接口实现HID设备,实现免驱执行,同时通过利用HID设备的端点,能够节约实现额外调试驱动需要的端点。

Description

一种USB设备的通用调试方法及USB设备
技术领域
本发明涉及USB调试技术领域,尤其涉及一种USB设备的通用调试方法及USB设备。
背景技术
由于USB本身的即插即用特性,越来越多的外设配件都做成USB接口,使用PC(personal computer,个人计算机)、平板等主机的USB口对配件进行供电、识别、操作。
随之出现的是对USB设备的调试需求,传统的调试方法如下:
1)在USB设备上引出串口线,使用linux(一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议)的console机制对设备进行调试。
其缺点是:
需要硬件外接串口线,在设备销售阶段,串口线会被去掉,这时设备就无法调试;
黑客可以通过外接串口,查看打印信息获取设备的重要信息,甚至可能破解串口的密码机制,获得系统调试权限。
2)使用android(一种基于Linux的自由及开放源代码的操作系统)的adb调试方法。
其缺点是:
在PC等主机上需要安装adb驱动,才能正常使用adb功能,配置较为麻烦;
adb功能需要额外的两个bulk端点,才能实现adb gadget功能,对usb设备的端点资源要求较高;
设备销售阶段,我们不希望设备会多枚举一个adb设备,这样不利于用户的使用,也有安全上的风险。
发明内容
本发明所要解决的技术问题在于,提供一种USB设备的通用调试方法及USB设备,采用USB接口实现HID设备,实现免驱执行,同时通过利用HID设备的端点,能够节约实现额外调试驱动需要的端点。
为解决上述问题,本发明实施例提供一种USB设备的通用调试方法,包括:
通过HID设备接收终端的输入信息;
在所述输入信息的report ID为串口ID时,将所述输入信息转发至虚拟串口tty设备的缓冲区;
从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息,对该输入信息执行shell命令,并将执行结果原路返回所述终端。
进一步地,所述从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息,具体的,gettty程序通过所述虚拟串口tty设备的/dev/ttyHID0,从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息。
进一步地,所述方法,还包括:
在待调试USB设备实现一个HID设备,所述HID设备包含两个report ID不同的描述符;
相应的,在终端实现一个HID设备的串口调试工具,用于与所述待调试USB设备进行调试通信,该调试通信过程的report ID为串口ID。
进一步地,所述方法,还包括:
在所述输入信息的report ID为业务ID时,执行正常业务。
本发明实施例还提供一种USB设备的通用调试方法,包括:
将输入信息发送至待调试USB设备,以使所述待调试USB设备执行如下步骤:
通过HID设备接收终端的输入信息;
在所述输入信息的report ID为串口ID时,将所述输入信息转发至虚拟串口tty设备的缓冲区;
从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息,对该输入信息执行shell命令,并将执行结果原路返回所述终端。
进一步地,所述从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息,具体的,gettty程序通过所述虚拟串口tty设备的/dev/ttyHID0,从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息。
进一步地,所述方法,还包括:
在待调试USB设备实现一个HID设备,所述HID设备包含两个report ID不同的描述符;
相应的,在终端实现一个HID设备的串口调试工具,用于与所述待调试USB设备进行调试通信,该调试通信过程的report ID为串口ID。
本发明实施例还提供一种USB设备,包括:
通信模块,用于通过HID设备接收终端的输入信息;
调试模块,用于在所述输入信息的report ID为串口ID时,将所述输入信息转发至虚拟串口tty设备的缓冲区;从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息,对该输入信息执行shell命令,并将执行结果原路返回所述终端。
进一步地,所述从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息,具体的,gettty程序通过所述虚拟串口tty设备的/dev/ttyHID0,从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息。
进一步地,所述USB设备,还包括:
HID设备实现模块,用于在待调试USB设备实现一个HID设备,所述HID设备包含两个report ID不同的描述符。
实施本发明实施例,具有如下有益效果:
本发明提供的一种USB设备的通用调试方法及USB设备。在一个实施例中:通过HID设备接收终端的输入信息;在所述输入信息的report ID为串口ID时,将所述输入信息转发至虚拟串口tty设备的缓冲区;从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息,对该输入信息执行shell命令,并将执行结果原路返回所述终端。基于该实施例的教导,采用USB接口实现HID设备,实现免驱执行,同时通过利用HID设备的端点,能够节约实现额外调试驱动需要的端点。
附图说明
图1是本发明实施例提供的USB设备的通用调试方法的流程示意图一;
图2是本发明实施例提供的USB设备的通用调试方法的流程示意图二;
图3是本发明实施例提供的USB设备的通用调试方法的流程示意图三;
图4是本发明实施例提供的USB设备的结构示意图一;
图5是本发明实施例提供的USB设备的结构示意图二;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
需要说明的是,文中所使用的步骤编号仅是为了方便描述,不对作为对步骤执行先后顺序的限定。
参阅图1-3,所述方法,包括:
S11、通过HID设备接收终端的输入信息。
HID设备类别是Windows最早支持的USB类别。
HID(Human Interface Device,人机接口设备)是直接与人交互的设备,例如键盘、鼠标与游戏杆等;不过HID设备并不一定要有人机接口,只要符合HID类别规范的设备都是HID设备。
USB(Universal Serial Bus,通用串行总线)是连接计算机系统与外部设备的一种串口总线标准,也是一种输入输出接口的技术规范,被广泛地应用于个人电脑和移动设备等信息通讯产品,并扩展至摄影器材、数字电视、游戏机等其它相关领域。
本实施例所指终端应当优选个人计算机PC端。所述终端,应当理解为可包括以下项中的至少一个:智能电话、平板个人计算机(Pc)、移动电话、视频电话、电子书阅读器、台式型PC、膝上型PC、上网本计算机、个人数字助理(PDA)、便携式多媒体播放器(PMP)、运动图像专家组(MPEG-1或MPEG-2)音频层(MP3)播放器、移动医疗装置、相机或可穿戴装置(例如,头戴式装置(HMD)(诸如电子眼镜)、电子服装、电子手链、电子项链、电子应用配件、电子纹身、智能手表等)。
在具体的USB设备调试过程中,终端的输入信息应当理解为调试信息,所述调试信息可以是用于对待调试USB设备的调试指令信息、可以是对软件进行调试的指令信息,待调试USB设备可以响应调试信息,针对调试信息的具体内容进行处理,完成调试信息对应的指令。
所述对待调试USB设备的调试指令信息,是针对待调试USB设备进行调试的指令信息的条件下,用于完成对USB设备(芯片)的调试。所述对软件进行调试的指令信息,是针对待调试USB设备(芯片)内的软件进行调试的指令信息的条件下,用于完成对USB设备(芯片)软件的调试。优选地,当调试信息是对软件进行调试的指令信息时,除了进行软件调试,还应当包括进行软件升级。
S12、在所述输入信息的report ID为串口ID时,将所述输入信息转发至虚拟串口tty设备的缓冲区。
在具体的实施例当中,待调试USB设备中实现一个虚拟串口tty设备,节点为/dev/ttyHID0。该虚拟串口tty设备用于实现Linux的console调试串口机制,通过gettty程序与用户输入(通过终端)进行交互。
S13、从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息,对该输入信息执行shell命令,并将执行结果原路返回所述终端。
其中,所述从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息,具体的,gettty程序通过所述虚拟串口tty设备的/dev/ttyHID0,从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息。
待调试USB设备的调试是依赖于linux本身的shell支持,本实施例中把虚拟串口tty设备做为gettty的串口终端。登录后就是进入shell,在终端上执行shell命令,支持linux的二进制命令执行,并返回调试结果给终端。
由于待调试USB设备是通过实现HID设备来获取调试信息,所以一方面直接实现了免驱,不需要额外安装驱动,另一方面直接采用HID设备端点,节约实现额外调试驱动需要的端点。
需要说明的是,当待调试usb设备的业务也用HID端点实现时,才能节约端点。例如待调试USB设备的功能是投屏器,如果这个待调试USB设备是使用其它类型的端点,比如bulk、等时之类的端点实现待调试USB设备功能时,就必须在功能之外使用HID端点枚举一个HID设备。应当理解,在所述输入信息的report ID为业务ID时,不需要实现HID设备。
请参阅图3,在一优选的实施例当中,所述方法,还包括:
S10、在待调试USB设备实现一个HID设备,所述HID设备包含两个report ID不同的描述符,相应的,在终端实现一个HID设备的串口调试工具,用于与所述待调试USB设备进行调试通信,该调试通信过程的report ID为串口ID。
待调试USB设备包含两个func的描述符,这两个描述符的report ID不相同,一个为串口ID,一个为业务ID,这两个ID可以自定义,只要不一样即可。
在一优选的实施例当中,所述方法,还包括:
在所述输入信息的report ID为业务ID时,执行正常业务。
所述正常业务,实际上与待调试USB设备的功能有关。比如,当待调试USB设备的功能是投屏器时,正常业务指的是投屏数据和控制信息的传送。
当终端把需要投屏的显示数据和音频数据通过业务ID发送给待调试USB设备时,此时,待调试USB设备会判断report ID是业务ID,进行正常业务处理,把显示数据和音频数据转发给其它设备(如显示器)。
本发明实施例还提供一种USB设备的通用调试方法,包括:
将输入信息发送至待调试USB设备,以使所述待调试USB设备执行如下步骤:
通过HID设备接收终端的输入信息。
本实施例所指终端应当优选个人计算机PC端。所述终端,应当理解为可包括以下项中的至少一个:智能电话、平板个人计算机(Pc)、移动电话、视频电话、电子书阅读器、台式型PC、膝上型PC、上网本计算机、个人数字助理(PDA)、便携式多媒体播放器(PMP)、运动图像专家组(MPEG-1或MPEG-2)音频层(MP3)播放器、移动医疗装置、相机或可穿戴装置(例如,头戴式装置(HMD)(诸如电子眼镜)、电子服装、电子手链、电子项链、电子应用配件、电子纹身、智能手表等)。
在具体的USB设备调试过程中,终端的输入信息应当理解为调试信息,所述调试信息可以是用于对待调试USB设备的调试指令信息、可以是对软件进行调试的指令信息,待调试USB设备可以响应调试信息,针对调试信息的具体内容进行处理,完成调试信息对应的指令。
所述对待调试USB设备的调试指令信息,是针对待调试USB设备进行调试的指令信息的条件下,用于完成对USB设备(芯片)的调试。所述对软件进行调试的指令信息,是针对待调试USB设备(芯片)内的软件进行调试的指令信息的条件下,用于完成对USB设备(芯片)软件的调试。优选地,当调试信息是对软件进行调试的指令信息时,除了进行软件调试,还应当包括进行软件升级。
在所述输入信息的report ID为串口ID时,将所述输入信息转发至虚拟串口tty设备的缓冲区。
在具体的实施例当中,待调试USB设备中实现一个虚拟串口tty设备,节点为/dev/ttyHID0。该虚拟串口tty设备用于实现Linux的console调试串口机制,通过gettty程序与用户输入(通过终端)进行交互。
从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息,对该输入信息执行shell命令,并将执行结果原路返回所述终端。
其中,所述从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息,具体的,gettty程序通过所述虚拟串口tty设备的/dev/ttyHID0,从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息。
待调试USB设备的调试是依赖于linux本身的shell支持,本实施例中把虚拟串口tty设备做为gettty的串口终端。登录后就是进入shell,在终端上执行shell命令,支持linux的二进制命令执行,并返回调试结果给终端。
由于待调试USB设备是通过实现HID设备来获取调试信息,所以一方面直接实现了免驱,不需要额外安装驱动,另一方面直接采用HID设备端点,节约实现额外调试驱动需要的端点。
需要说明的是,当待调试usb设备的业务也用HID端点实现时,才能节约端点。例如待调试USB设备的功能是投屏器,如果这个待调试USB设备是使用其它类型的端点,比如bulk、等时之类的端点实现待调试USB设备功能时,就必须在功能之外使用HID端点枚举一个HID设备。应当理解,在所述输入信息的report ID为业务ID时,不需要实现HID设备。
在一优选的实施例当中,所述方法,还包括:
在待调试USB设备实现一个HID设备,所述HID设备包含两个report ID不同的描述符。
待调试USB设备包含两个func的描述符,这两个描述符的report ID不相同,一个为串口ID,一个为业务ID,这两个ID可以自定义,只要不一样即可。
相应的,在终端实现一个HID设备的串口调试工具,用于与所述待调试USB设备进行调试通信,该调试通信过程的report ID为串口ID。
在一优选的实施例当中,所述方法,还包括:
在所述输入信息的report ID为业务ID时,执行正常业务。
所述正常业务,实际上与待调试USB设备的功能有关。比如,当待调试USB设备的功能是投屏器时,正常业务指的是投屏数据和控制信息的传送。
当终端把需要投屏的显示数据和音频数据通过业务ID发送给待调试USB设备时,此时,待调试USB设备会判断report ID是业务ID,进行正常业务处理,把显示数据和音频数据转发给其它设备(如显示器)。
请参阅图4,本发明实施例还提供一种USB设备,包括:
通信模块41,用于通过HID设备接收终端的输入信息。
本实施例所指终端应当优选个人计算机PC端。所述终端,应当理解为可包括以下项中的至少一个:智能电话、平板个人计算机(Pc)、移动电话、视频电话、电子书阅读器、台式型PC、膝上型PC、上网本计算机、个人数字助理(PDA)、便携式多媒体播放器(PMP)、运动图像专家组(MPEG-1或MPEG-2)音频层(MP3)播放器、移动医疗装置、相机或可穿戴装置(例如,头戴式装置(HMD)(诸如电子眼镜)、电子服装、电子手链、电子项链、电子应用配件、电子纹身、智能手表等)。
在具体的USB设备调试过程中,终端的输入信息应当理解为调试信息,所述调试信息可以是用于对待调试USB设备的调试指令信息、可以是对软件进行调试的指令信息,待调试USB设备可以响应调试信息,针对调试信息的具体内容进行处理,完成调试信息对应的指令。
所述对待调试USB设备的调试指令信息,是针对待调试USB设备进行调试的指令信息的条件下,用于完成对USB设备(芯片)的调试。所述对软件进行调试的指令信息,是针对待调试USB设备(芯片)内的软件进行调试的指令信息的条件下,用于完成对USB设备(芯片)软件的调试。优选地,当调试信息是对软件进行调试的指令信息时,除了进行软件调试,还应当包括进行软件升级。
调试模块42,用于在所述输入信息的report ID为串口ID时,将所述输入信息转发至虚拟串口tty设备的缓冲区;从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息,对该输入信息执行shell命令,并将执行结果原路返回所述终端。
在具体的实施例当中,待调试USB设备中实现一个虚拟串口tty设备,节点为/dev/ttyHID0。该虚拟串口tty设备用于实现Linux的console调试串口机制,通过gettty程序与用户输入(通过终端)进行交互。
其中,所述从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息,具体的,gettty程序通过所述虚拟串口tty设备的/dev/ttyHID0,从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息。
待调试USB设备的调试是依赖于linux本身的shell支持,本实施例中把虚拟串口tty设备做为gettty的串口终端。登录后就是进入shell,在终端上执行shell命令,支持linux的二进制命令执行,并返回调试结果给终端。
由于待调试USB设备是通过实现HID设备来获取调试信息,所以一方面直接实现了免驱,不需要额外安装驱动,另一方面直接采用HID设备端点,节约实现额外调试驱动需要的端点。
需要说明的是,当待调试usb设备的业务也用HID端点实现时,才能节约端点。例如待调试USB设备的功能是投屏器,如果这个待调试USB设备是使用其它类型的端点,比如bulk、等时之类的端点实现待调试USB设备功能时,就必须在功能之外使用HID端点枚举一个HID设备。应当理解,在所述输入信息的report ID为业务ID时,不需要实现HID设备。
请参阅图5,在一优选的实施例当中,所述USB设备,还包括:
HID设备实现模块43,用于在待调试USB设备实现一个HID设备,所述HID设备包含两个report ID不同的描述符。
待调试USB设备包含两个func的描述符,这两个描述符的report ID不相同,一个为串口ID,一个为业务ID,这两个ID可以自定义,只要不一样即可。
相应的,在终端实现一个HID设备的串口调试工具,用于与所述待调试USB设备进行调试通信,该调试通信过程的report ID为串口ID。
在一优选的实施例当中,通信模块,还用于在所述输入信息的report ID为业务ID时,执行正常业务。
所述正常业务,实际上与待调试USB设备的功能有关。比如,当待调试USB设备的功能是投屏器时,正常业务指的是投屏数据和控制信息的传送。
当终端把需要投屏的显示数据和音频数据通过业务ID发送给待调试USB设备时,此时,待调试USB设备会判断report ID是业务ID,进行正常业务处理,把显示数据和音频数据转发给其它设备(如显示器)。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (10)

1.一种USB设备的通用调试方法,其特征在于,包括:
通过HID设备接收终端的输入信息;
在所述输入信息的report ID为串口ID时,将所述输入信息转发至虚拟串口tty设备的缓冲区;
从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息,对该输入信息执行shell命令,并将执行结果原路返回所述终端。
2.如权利要求1所述的USB设备的通用调试方法,其特征在于,所述从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息,具体的,gettty程序通过所述虚拟串口tty设备的/dev/ttyHID0,从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息。
3.如权利要求1所述的USB设备的通用调试方法,其特征在于,还包括:
在待调试USB设备实现一个HID设备,所述HID设备包含两个report ID不同的描述符;
相应的,在终端实现一个HID设备的串口调试工具,用于与所述待调试USB设备进行调试通信,该调试通信过程的report ID为串口ID。
4.如权利要求1所述的USB设备的通用调试方法,其特征在于,还包括:
在所述输入信息的report ID为业务ID时,执行正常业务。
5.一种USB设备的通用调试方法,其特征在于,包括:
将输入信息发送至待调试USB设备,以使所述待调试USB设备执行如下步骤:
通过HID设备接收终端的输入信息;
在所述输入信息的report ID为串口ID时,将所述输入信息转发至虚拟串口tty设备的缓冲区;
从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息,对该输入信息执行shell命令,并将执行结果原路返回所述终端。
6.如权利要求5所述的USB设备的通用调试方法,其特征在于,所述从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息,具体的,gettty程序通过所述虚拟串口tty设备的/dev/ttyHID0,从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息。
7.如权利要求5所述的USB设备的通用调试方法,其特征在于,还包括:
在待调试USB设备实现一个HID设备,所述HID设备包含两个report ID不同的描述符;
相应的,在终端实现一个HID设备的串口调试工具,用于与所述待调试USB设备进行调试通信,该调试通信过程的report ID为串口ID。
8.一种USB设备,其特征在于,包括:
通信模块,用于通过HID设备接收终端的输入信息;
调试模块,用于在所述输入信息的report ID为串口ID时,将所述输入信息转发至虚拟串口tty设备的缓冲区;从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息,对该输入信息执行shell命令,并将执行结果原路返回所述终端。
9.如权利要求8所述的USB设备,其特征在于,所述从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息,具体的,gettty程序通过所述虚拟串口tty设备的/dev/ttyHID0,从所述虚拟串口tty设备的缓冲区中取出所述终端的输入信息。
10.如权利要求8所述的USB设备,其特征在于,还包括:
HID设备实现模块,用于在待调试USB设备实现一个HID设备,所述HID设备包含两个report ID不同的描述符。
CN201910381978.XA 2019-05-08 2019-05-08 一种usb设备的通用调试方法及usb设备 Active CN110175139B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201910381978.XA CN110175139B (zh) 2019-05-08 2019-05-08 一种usb设备的通用调试方法及usb设备
US16/835,554 US11573871B2 (en) 2019-05-08 2020-03-31 Debugging method for USB device and USB device
EP20167234.2A EP3736698B1 (en) 2019-05-08 2020-03-31 Universal debugging method for a usb device and a usb device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910381978.XA CN110175139B (zh) 2019-05-08 2019-05-08 一种usb设备的通用调试方法及usb设备

Publications (2)

Publication Number Publication Date
CN110175139A true CN110175139A (zh) 2019-08-27
CN110175139B CN110175139B (zh) 2021-01-05

Family

ID=67690595

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910381978.XA Active CN110175139B (zh) 2019-05-08 2019-05-08 一种usb设备的通用调试方法及usb设备

Country Status (3)

Country Link
US (1) US11573871B2 (zh)
EP (1) EP3736698B1 (zh)
CN (1) CN110175139B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110716831A (zh) * 2019-09-20 2020-01-21 厦门亿联网络技术股份有限公司 一种终端、usb设备的调试系统及usb设备的调试方法
CN110795375A (zh) * 2019-10-31 2020-02-14 浪潮金融信息技术有限公司 一种基于linux下操作串口及HID外设的通讯方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012886A (zh) * 2010-10-14 2011-04-13 深圳市文鼎创数据科技有限公司 基于hid协议的通讯方法、装置及系统
CN104008008A (zh) * 2014-06-17 2014-08-27 厦门雅迅网络股份有限公司 一种Linux系统中复用调试串口的方法
CN104133598A (zh) * 2013-05-03 2014-11-05 周永清 一种电子白板系统的免驱动定位校准引导方法及其装置
CN105589822A (zh) * 2015-12-21 2016-05-18 青岛海信电器股份有限公司 一种人机接口设备的数据传输方法及装置
CN109460310A (zh) * 2018-10-09 2019-03-12 普联技术有限公司 基于web接口的信息收集系统、方法、设备及存储介质
CN109597651A (zh) * 2018-10-12 2019-04-09 国营芜湖机械厂 一种基于mpc7410处理器的串口和网口模块开发方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6085265A (en) * 1998-01-09 2000-07-04 Toshiba America Information Systems, Inc. System for handling an asynchronous interrupt a universal serial bus device
WO2005022390A1 (ja) * 2003-08-28 2005-03-10 Renesas Technology Corp. マイクロコンピュータ及びシステムプログラムの開発方法
US7813366B2 (en) * 2006-12-19 2010-10-12 International Business Machines Corporation Migration of a virtual endpoint from one virtual plane to another
US8151017B2 (en) * 2010-08-23 2012-04-03 Smartech World Wide Limited Multiplexing application and debug channels on a single USB connection
EP2646924A4 (en) * 2010-11-29 2014-07-09 Mce Sys Ltd HOST DEVICE AND OPERATING METHOD COUPLED TO A USB PERIPHERAL DEVICE
CN102223452B (zh) * 2011-06-16 2016-12-07 中兴通讯股份有限公司 移动终端的tty测试方法及系统
US20160378704A1 (en) * 2015-06-26 2016-12-29 Intel Corporation Dynamically configure connection modes on a system based on host device capabilities
EP3742324A1 (en) * 2015-09-15 2020-11-25 Gatekeeper Ltd. System and method for securely connecting to a peripheral device
WO2017166153A1 (en) * 2016-03-31 2017-10-05 Intel Corporation Technologies for error handling for high speed i/o data transfer
US10684972B2 (en) * 2017-12-29 2020-06-16 Barco Nv Method and system for making functional devices available to participants of meetings
US11604741B2 (en) * 2019-02-15 2023-03-14 Intel Corporation Method for dynamically provisioning virtualized functions in a USB device by means of a virtual USB hub
US11132441B2 (en) * 2019-05-06 2021-09-28 The Florida International University Board Of Trustees Systems and methods for inhibiting threats to a computing environment
US11385610B2 (en) * 2019-08-16 2022-07-12 Exato IP LLC Stage automation system
CN110716831B (zh) * 2019-09-20 2022-08-02 厦门亿联网络技术股份有限公司 一种终端、usb设备的调试系统及usb设备的调试方法
CN111045977B (zh) * 2019-12-18 2021-07-27 深圳先进技术研究院 Linux系统控制台的USB串口实现方法及相关产品
CN111769999B (zh) * 2020-05-09 2022-03-25 厦门亿联网络技术股份有限公司 一种usb设备软件的调试方法
CN112131162A (zh) * 2020-09-16 2020-12-25 广州大学 基于usb设备的数据传送方法、系统、装置及介质
CN112631851A (zh) * 2021-01-08 2021-04-09 北京集睿致远科技有限公司 一种芯片调试代理装置及芯片调试方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012886A (zh) * 2010-10-14 2011-04-13 深圳市文鼎创数据科技有限公司 基于hid协议的通讯方法、装置及系统
CN104133598A (zh) * 2013-05-03 2014-11-05 周永清 一种电子白板系统的免驱动定位校准引导方法及其装置
CN104008008A (zh) * 2014-06-17 2014-08-27 厦门雅迅网络股份有限公司 一种Linux系统中复用调试串口的方法
CN105589822A (zh) * 2015-12-21 2016-05-18 青岛海信电器股份有限公司 一种人机接口设备的数据传输方法及装置
CN109460310A (zh) * 2018-10-09 2019-03-12 普联技术有限公司 基于web接口的信息收集系统、方法、设备及存储介质
CN109597651A (zh) * 2018-10-12 2019-04-09 国营芜湖机械厂 一种基于mpc7410处理器的串口和网口模块开发方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王允等: ""USB 多点触摸设备的固件程序设计"", 《安徽大学计算机科学与技术学》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110716831A (zh) * 2019-09-20 2020-01-21 厦门亿联网络技术股份有限公司 一种终端、usb设备的调试系统及usb设备的调试方法
CN110716831B (zh) * 2019-09-20 2022-08-02 厦门亿联网络技术股份有限公司 一种终端、usb设备的调试系统及usb设备的调试方法
CN110795375A (zh) * 2019-10-31 2020-02-14 浪潮金融信息技术有限公司 一种基于linux下操作串口及HID外设的通讯方法

Also Published As

Publication number Publication date
EP3736698A1 (en) 2020-11-11
US11573871B2 (en) 2023-02-07
EP3736698B1 (en) 2022-02-23
US20200356453A1 (en) 2020-11-12
CN110175139B (zh) 2021-01-05

Similar Documents

Publication Publication Date Title
US10108256B2 (en) Systems and methods for processing incoming events while performing a virtual reality session
US20170193702A1 (en) Head-mounted display device and method for interaction between head-mounted display device and intelligent terminal
CN110175139A (zh) 一种usb设备的通用调试方法及usb设备
CN105893067A (zh) 基于PC机实现运行Android系统应用的方法
CN101800910B (zh) 一种模拟系统、pc侧模拟器及手机侧代理客户端
WO2019072213A1 (zh) 无线接入点信息的处理方法、设备及计算机可读存储介质
CN102983889A (zh) 智能手机与电脑之间通过蓝牙无线配对协同处理信息的方法
WO2014067258A1 (zh) 一种云业务触发的方法、云服务器和瘦客户机
JP2001519060A (ja) コントローラレスモデム
WO2012079401A1 (zh) 一种虚拟串口系统及其通信方法
CN101840391B (zh) 一种电子支付系统双处理器子系统间通信及其调用方法
WO2017049556A1 (zh) 数据传输方法和移动终端
US10176133B2 (en) Smart device with no AP
CN108170383A (zh) 一种基于终端设备实现打印的方法和相关装置
CN115733549B (zh) Pcie网卡及其接口模式的切换方法、电子设备及存储介质
CN103167116A (zh) 通过手机屏幕实现电脑手写的系统及方法
KR20180030497A (ko) 데이터 처리 장치와 주변 장치 사이의 통신을 제어하기 위한 중간 모듈
CN101998691B (zh) 一种数据传输的方法、系统和装置
CN109189705A (zh) 一种usb扩展方法、装置、设备、存储介质及系统
CN104407714A (zh) 一种实现远程多电脑切换的主板及其使用方法
US10437608B2 (en) Microminiature personal computer and method of using thereof
CN110971696B (zh) 一种实现虚拟电子卡通讯的系统和方法
CN201985978U (zh) 一种手机多任务下载系统
CN106294143A (zh) 芯片的寄存器的调试方法及装置
CN111324216A (zh) 云端应用的字符输入方法、装置及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant