教程 | USB-IF USBCV软件工具使用指南

news2025/1/8 5:00:31

一. 概述

CVTest 是基于 USBCV 软件工具的合规性测试,可以验证设备是否符合 USB 规范和标准。USBCV 则是 USB-IF 提供的一款免费 USB 装置测试软体,简要做 USB2.0 及 USB3.0 装置相关测试。本文将基于 NXP LPC5516 HID 类键盘简要讲解 USBCV 中公有 USB 请求测试及 HID 类测试步骤,说明测试相关注意事项及 LPC5516 HID 类键盘为通过 CVTest 需要修改的程序,为需要通过 CVTest 的用户提供一个参考。

二. Chapter9 Test 

Chapter9 Test 是 CVTest 的公有 USB 请求测试。在 USB 标准第 9 章定义了枚举期间主机送到外设的所有请求,以及外设响应的数据格式,Chapter9 Test 可以证明枚举代码正确性,建议所有设备均通过此测试。以下为 Chapter9 Test 测试步骤:

1. 将待测 HID 类设备连接至主机 USB 上,打开 CVTest 软件图标(下载链接:https://www.usb.org/document-library/usb3cv)。

2. 打开弹出以下界面,选择待测主机驱动器,点击 Continue(电脑连接的某些非测试目标的 USB 设备可能导致 USBCV 无法发现主机驱动器, 所以测试时应保证系统 USB 设备尽量少)。

3. 弹出窗口,继续选择 Continue。(进入 CVTest 后测试协议栈会替代系统自身的 USB 协议栈导致 USB 设备不可用,因此 USB 鼠标等无法使用,如果依然能使用说明驱动没有正确替换) 

4. 进入测试主页,选择测试类别 Chapter9 Test(本例为使用的 USB 协议为 USB2.0,因此选择 Chapter9 Test[USB 2 devices],用户根据自身情况选择 USB2.0 或 USB3.0),点击左下角 Run 开始测试。

5. 本例使用测试平台为 NXP LPC5516 HID 类键盘,如果此待测设备下载的程序是 USB SDK 默认例程来直接进行测试(如 dev_composite_hid_mouse_hid_keyboard 例程),会出现测试失败。 

6. 需要将 USB SDK 默认例程(如 dev_composite_hid_mouse_hid_keyboard 例程)中设备一致性测试开启,设置测试模式的宏为 1。

7. 此例中使用的是高速 USB2.0,因此将 SDK 默认低速 USB 改为高速 USB,并将 SDK 中循环的函数停止,方便测试。 

8. 编译下载后重新进入 Chapter9 Test[USB 2 devices] 测试页,点击 RUN,此时将会弹出 USB2.0 设备选择,根据 PID 与 VID 选择待测设备(本例中 PID = 00A0、VID = 1FC9)

9. 具体 PID、VID 值可在 USB SDK 例程如图所示位置找到: 

10. 开始自动执行测试,全部测试项完成后将提示可以继续进行其他测试,此处直接点击 OK 即可。 

11. 弹出测试结果。当该测试类别下全部测试项均通过,会提示测试通过(已通过的测试其背景色将被标注为绿色,未通过项其背景色被标注为红色) 

三. HID Test

HID 类设备还需进行的测试项为 HID Test,因此需要在通过 Chapter9 Test 基础上进行 HID Test,SDK 代码相关修改如上 Chapter9 Test。HID Test 测试步骤如下:

1. 在通过 Chapter9 Test 后点击 HID Test,点击 RUN,选择待测设备。

2. 在通过 Chapter9 Test 测试的 SDK 代码中中未获取 HID 描述符,因此会出现如下错误。 

3. 需要在测试( dev_composite_hid_mouse_hid_keyboard )代码中添加获取 HID 描述符请求,重新编译下载后进行重测。 

4. 此时可以通过 HIDTest 测试 

备注:上述测试中 Chapter9 Test 的 Remote Wakeup Test 被跳过,若需要这部分的测试通过报告,可以使用 usb_suspend_resume_device_hid_mouse 例程进行测试,其修改内容参考该文档 NXP LPC5516 在 USB CVTest 的一致性测试 - 大大通(简体站) (wpgdadatong.com.cn) 

四. 总结

本文介绍了关于 HID 类设备 CVTest 需要进行的两种兼容性测试,详细介绍基于 NXP LPC5516 的测试步骤及代码需要修改之处,其他 MCU 如需通过测试可根据本文参考。 

欢迎登录大大通,解锁更多原厂方案、技术干货!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1987773.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

两个向量的余弦相似度如何计算

两个向量的余弦相似度是通过测量两个向量在方向上的相似性来计算的。它是向量空间中两个向量夹角的余弦值。如果两个向量的方向相同,它们的余弦相似度接近1;如果两个向量的方向完全相反,它们的余弦相似度接近-1;如果两个向量正交&…

求职Leetcode题目(5)

1.分割回文串 每一个结点表示剩余没有扫描到的字符串,产生分支是截取了剩余字符串的前缀;产生前缀字符串的时候,判断前缀字符串是否是回文。如果前缀字符串是回文,则可以产生分支和结点;如果前缀字符串不是回文&#…

[ERR] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘(已解决)

今天在使用navicate Premium运行sql文件时出现如下错误: 错误:1273 - Unknown collation: utf8mb4_0900_ai_ci 报错原因: 生成转储文件(也就是sql文件)的数据库版本为8.0,而要运行sql文件的数据库版本为5.6,因为是高版…

Redis 实现消息队列

Redis 实现消息队列 文章目录 Redis 实现消息队列导引1. 基于List结构的消息队列2. 基于PubSub的消息队列3. 基于Stream的消息队列(推荐)3.1 XADD3.2 XREAD3.3 XGROUP 导引 消息队列(Message Queue),从概念上来理解就是用来存放消息的队列,最简单的消息…

芯片外置电阻RC如何实现振荡器功能?

大家好,这里是大话硬件。 这篇文章来实现DC-DC控制器内部的振荡器模块功能。 在调试DC-DC控制器时,如果要改变其开关频率,通常是修改芯片外围的RC参数, 如下图所示。 结合常用芯片UC3842系列的内部框图,实现方式如下: 实现方案如下: 根据上述的原理,实现的思路:…

springboot整合mybatis-plus和pagehelper插件报错,

在springboot和myabtisplus版本没有冲突的情况下,MybatisPlusAutoConfiguration配置类没有生效,查看该类发现存在生效条件,即: 1.必须存在数据源的Bean对象 2.必须存在SqlSessionFactory和SqlSessionFactoryBean类(这…

【QT常用技术讲解】tableWidget右键菜单及多进程编程

前言 本文在QT项目的开发框架的基础上(源代码)增加tableWidget的右键菜单功能,并使用进程实现ping计算机的功能来讲解,本文不对进程间通信进行讲解。 概述 一个项目在开发过程中,通常面临着引入“第三方应用”&#x…

二叉树:镜像树,子结构,二叉树转链表,二叉树的倒数K个数,对称,Z型打印

1.把一棵二叉树转换为它的镜像树。 void mirror_tree(TreeNode *root) {if(rootNULL) return ;TreeNode *temproot->right;root->rightroot->left;root->lefttemp;mirror_tree(root->right);mirror_tree(root->left);}2、输入两棵二叉树A,B&…

Day 21

Java Script 1.什么是JavaScript 概述 JavaScript是一门世界上最流行的脚本语言 Java、JavaScript 一个合格的后端人员,必须要精通JavaScript 历史 JavaScript 的历史_javascript历史-CSDN博客 ECMAScript它可以理解为是JavaScript的一个标准 2.基本使用及…

AI智能名片微信小程序在社群运营中的价值与应用研究

摘要:在数字化转型的浪潮中,社群运营已成为企业营销策略的重要组成部分,它不仅促进了品牌与消费者之间的深度互动,还为企业带来了持续的用户增长和价值转化。本文深入探讨了AI智能名片微信小程序在社群运营中的创新应用&#xff0…

常用数据库详解:从关系型到非关系型的探索

常用数据库详解:深入探索关系型与非关系型数据库 在数据驱动的世界中,数据库系统是存储、管理、检索和更新数据的核心技术。从历史悠久的关系型数据库到新兴的非关系型数据库,每种数据库都有其独特的设计哲学、优势和适用场景。本文将深入探…

不同环境下RabbitMQ的安装-2 ARM架构、X86架构、Window系统环境下安装RabbitMQ

ARM架构、X86架构、Window系统环境下RabbitMQ的安装 RabbitMQ安装1 Erlang语言介绍2 安装Erlang2.1 ARM架构的CentOS虚拟机中安装Erlang2.2 X86架构的CentOS虚拟机中安装Erlang2.3 Windows系统安装Erlang2.3.1 下载Erlang2.3.2 安装Erlang2.3.3 配置Erlang2.3.4 检测Erlang 3.安…

资质延期成本预测:河南建筑装饰企业预算制定策略

资质延期成本预测对于河南建筑装饰企业来说是确保企业资质顺利延续的重要环节。以下是企业预算制定策略的一些关键点: 一、了解政策与要求 首先,河南建筑装饰企业需要详细了解河南省住房和城乡建设厅及相关部门关于资质延期的具体政策和要求。这包括延…

Linux Vim实用教程:从新手到专家的完全指南

Linux Vim最全面的教程涵盖了从Vim的安装、基本操作、高级功能到个性化配置等各个方面,旨在帮助用户全面掌握这款强大的文本编辑器。下面将详细介绍Linux Vim的功能: 安装过程 在Debian/Ubuntu系统上安装Vim:需要执行sudo apt-get update和su…

目标检测综述文章解读——Object Detection in 20 Years: A Survey

论文:Object Detection in 20 Years: A Survey 作者:Zhengxia Zou, Keyan Chen, Zhenwei Shi, Yuhong Guo, Jieping Ye 链接:https://arxiv.org/abs/1905.05055 这是一篇关于目标检测综述性文章,自2019年5月第一次提交后&#xff…

前端(react)框架nextjs

文章目录 一、什么是next.js1. 路由2. 打包 next build3. 部署 二、 next.js 和react区别三、webstorm使用nextjs四、开发常用总结如何修nextjs 启动监听的端口号?NGINX 反向代理 Next.js 项目配置 参考 一、什么是next.js 官网: https://www.nextjs.cn…

使用C#(winform)调用STK并展示其3D/2D控件

最近有个需求要求对STK做二次开发,要用自己写的界面但又要嵌入STK的3D/2D控件展示,后台调用STK引擎做计算。官方文档语焉不详,网上的资料要么太多重复(到处抄来抄去),要么有诸多错漏之处,找了很…

GB/T 28181-2022 公共安全视频监控联网系统:信息传输、交换、控制技术要求pdf协议文档下载,同时附GBT-28181-2016.pdf

国标GB28181 2016标准已经执行很多年了,可以说效果非常好,去年最新的GB28181-2022标准细节也出来了,本来是一个国家级的标准,现在想要下载这个协议标准,一堆网址要会员,要积分,我整理了一下&…

LabVIEW压电陶瓷阻抗测试系统

开发了一种基于LabVIEW软件与PXI模块化仪器的压电陶瓷阻抗测试系统。该系统能在高电压工作条件下测量压电陶瓷的阻抗特性,包括阻抗模值与阻抗角的频率特性,为压电陶瓷的进一步分析与应用提供了重要参考。 项目背景 现有的阻抗测试仪大多只能在低电压条件…

OpenCV图像滤波(5)二维卷积滤波函数filter2D()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::filter2D() 函数用于对图像应用二维卷积滤波器。这个函数可以用来实现多种图像处理操作,如模糊、锐化、边缘检测等。它通过将一个…