如何运行 HLK 运动传感器测试

简介

本文档是适用于传感器 OEM、ODM 和 IHV 的现有 HLK 2.0 文档和工具的指南或补充。 它提供合作伙伴可用于运行测试的一些提示和技巧。 合作伙伴可免费使用其他实现来测试其设备,这只是一个单独参考。 本文档中标识的项是可选的(你可以在没有这些硬件的情况下运行测试)。 它们只是用于帮助为本文档演示方向。

本文档假定使用 HLK 2.0 或更高版本测试平板电脑外形规格系统(需要运动和光传感器)。 其他外形规格(例如笔记本电脑)超出了本文档的范围。 尽管这些测试确实可验证其他外形规格系统,但以下详细信息主要用于优化平板电脑外形规格系统上的测试。

本文档介绍以下测试:

以下各项需要运动传感器测试:

  • 传感器设备认证

  • 系统认证

在这两个领域中使用相同测试的动机是确保 IHV 提供将合格的硬件、固件和驱动程序提供给电脑制造商,以及电脑制造商正确地将部件集成到其系统中,以提供准确且可靠的传感器读数。

运动传感器测试的主要目的是帮助硬件合作伙伴验证其传感器是否在系统中具有正确方向,以及他们是否满足 WHLK 所需的准确性要求。 这些测试并不打算提供完整测试覆盖范围,或是利用可更准确地确定单个传感器的不准确性的专用设备。 建议电脑制造商在通过 WHLK 后使用其他应用程序和质量保证测试来测试其系统(例如,使用生产质量 Windows 8 应用进行测试)。

Microsoft 建议按照下表中列出的顺序运行测试。 通过首先测试加速计和陀螺仪,可以确保这些基本传感器正常工作。 下一组测试可验证来自通过合并多个传感器的数据而得到的指南针、倾斜仪和方向传感器的数据。 此外,在所有之前的测试都通过前,建议不要尝试执行后续测试。

传感器 测试名称 依赖项

加速计

验证传感器方向 - 3D 加速计

不适用

陀螺仪

陀螺仪传感器测试

不适用

指南针

验证传感器方向 - 3D 指南针

加速计、陀螺仪、指南针

测斜仪

验证传感器方向 - 测斜仪

加速计、陀螺仪、指南针

融合/方向传感器(旋转矩阵/四元数)

验证高级方向传感器

加速计、陀螺仪、指南针

建议测试设备

对于本文档,使用了以下硬件项来帮助运行 WHLK 测试。 尽管这些设备对于 WHLK 不是必需的,但如果使用这些设备,它们可能会帮助验证工程师更轻松地完成测试。

建议测试设备

图 1 建议测试设备

  • 蓝牙键盘

  • 蓝牙鼠标

  • 指南针/GPS

  • 用于固定系统的夹具和胶带

  • 旋转的转盘(例如旋转餐盘)

  • 传感器诊断工具

这些附加设备可帮助测试平板电脑外形规格系统(其中需要加速计、陀螺仪、指南针、倾斜仪和方向传感器)。 对于其他配置,这些工具可能不适用。 本文档的其余部分仅重点讨论平板电脑,而不讨论其他外形规格。

传感器诊断工具(WDK 中提供的 sensordiagnostictool.exe)可用于调试测试失败。 此工具会显示从各种运动传感器实时返回的数据,这些数据可与预期结果进行比较。

验证传感器方向 - 3D 加速计

测试范围:此测试验证是否加速计在系统中是否具有正确方向。 测试的容错为 +/- 0.1 G。

运行此测试之前的先决条件:

  1. 手动验证屏幕自动旋转是否按预期方式工作。

  2. 使用 SDT,并验证传感器在静止时不显示新数据事件。

满足这些简单的先决条件后,继续运行 WHLK 测试。 如果遇到测试错误,请确保设备按照本文档处于正确方向。 有疑问的电脑制造商应首先联系其传感器制造商 (IHV) 以确定他们是如何通过 WHLK 测试的,然后再联系 Microsoft 以寻求 WHLK 测试方面的帮助。

加速计测试 1

将设备垂直固定在平整水平表面上,使 Windows 按钮处于底部。

预期值:

SENSOR_DATA_TYPE_ACCELERATION_X_G

0

SENSOR_DATA_TYPE_ACCELERATION_Y_G

-1

SENSOR_DATA_TYPE_ACCELERATION_Z_G

0

加速计测试 1

图 2 加速计测试 1

加速计测试 2

将设备顺时针旋转 90 度,使设备保持与平整水平表面垂直。 Windows 按钮应位于左侧。

预期值:

SENSOR_DATA_TYPE_ACCELERATION_X_G

1

SENSOR_DATA_TYPE_ACCELERATION_Y_G

0

SENSOR_DATA_TYPE_ACCELERATION_Z_G

0

加速计测试 2

图 3 加速计测试 2

加速计测试 3

现在将设备平放,使 Windows 按钮远离你。

预期值:

SENSOR_DATA_TYPE_ACCELERATION_X_G

0

SENSOR_DATA_TYPE_ACCELERATION_Y_G

0

SENSOR_DATA_TYPE_ACCELERATION_Z_G

-1

加速计测试 3

图 4 加速计测试 3

加速计测试 4

现在将设备翻转,使屏幕朝下。

预期值:

SENSOR_DATA_TYPE_ACCELERATION_X_G

0

SENSOR_DATA_TYPE_ACCELERATION_Y_G

0

SENSOR_DATA_TYPE_ACCELERATION_Z_G

1

加速计测试 4

图 5 加速计测试 4

陀螺仪传感器测试

测试范围:

陀螺仪通常发出量级为每秒 +/- 2 度的噪声。 在运行陀螺仪验证测试之前,测试人员应该使用传感器诊断工具验证当系统静止时,陀螺仪传感器是否未生成大于每秒 2 度的值。

运行此测试之前的先决条件:

  1. 加速计测试通过。

  2. 使用 SDT,并验证传感器在平整表面上静止时是否不返回数据。

如果陀螺仪传感器产生过多噪声,则测试人员应与传感器制造商合作,了解并修复噪声源。

陀螺仪测试预期在旋转轴上接收大于每秒 40 度的角速度,在静止轴上接收小于每秒 15 度的角速度。 为了实现通过结果,测试人员可能会发现系统可以在转盘上旋转,以使其他两个轴保持静止。 请注意,系统还应在转盘上居中,以防止其他轴上的移动检测到旋转。

陀螺仪测试 1

将设备平放,使屏幕向上。 顺时针旋转设备。

旋转期间的预期值:

SENSOR_DATA_TYPE_ANGULAR_ACCELERATION_X_DEGREES_PER_SECOND_SQUARED

< 15

SENSOR_DATA_TYPE_ANGULAR_ACCELERATION_Y_DEGREES_PER_SECOND_SQUARED

< 15

SENSOR_DATA_TYPE_ANGULAR_ACCELERATION_Z_DEGREES_PER_SECOND_SQUARED

< -40

陀螺仪测试 1

图 6 陀螺仪测试 1

陀螺仪测试 2

将设备平放,使屏幕向上。 逆时针旋转设备。

旋转期间的预期值:

SENSOR_DATA_TYPE_ANGULAR_ACCELERATION_X_DEGREES_PER_SECOND_SQUARED

< 15

SENSOR_DATA_TYPE_ANGULAR_ACCELERATION_Y_DEGREES_PER_SECOND_SQUARED

< 15

SENSOR_DATA_TYPE_ANGULAR_ACCELERATION_Z_DEGREES_PER_SECOND_SQUARED

> 40

陀螺仪测试 2

图 7 陀螺仪测试 2

陀螺仪测试 3

垂直固定设备,使 Windows 按钮处于底部。 俯视设备,沿屏幕顶部与 Windows 按钮之间的轴顺时针旋转设备。

旋转期间的预期值:

SENSOR_DATA_TYPE_ANGULAR_ACCELERATION_X_DEGREES_PER_SECOND_SQUARED

< 15

SENSOR_DATA_TYPE_ANGULAR_ACCELERATION_Y_DEGREES_PER_SECOND_SQUARED

< -40

SENSOR_DATA_TYPE_ANGULAR_ACCELERATION_Z_DEGREES_PER_SECOND_SQUARED

< 15

陀螺仪测试 3

图 8 陀螺仪测试 3

陀螺仪测试 4

垂直固定设备,使 Windows 按钮处于底部。 俯视设备,沿屏幕顶部与 Windows 按钮之间的轴逆时针旋转设备。

旋转期间的预期值:

SENSOR_DATA_TYPE_ANGULAR_ACCELERATION_X_DEGREES_PER_SECOND_SQUARED

< 15

SENSOR_DATA_TYPE_ANGULAR_ACCELERATION_Y_DEGREES_PER_SECOND_SQUARED

> 40

SENSOR_DATA_TYPE_ANGULAR_ACCELERATION_Z_DEGREES_PER_SECOND_SQUARED

< 15

陀螺仪测试 4

图 9 陀螺仪测试 4

陀螺仪测试 5

垂直固定设备,使 Windows 按钮处于左侧。 俯视设备,顺时针旋转设备,使设备保持垂直并处于纵向方向。

旋转期间的预期值:

SENSOR_DATA_TYPE_ANGULAR_ACCELERATION_X_DEGREES_PER_SECOND_SQUARED

> 40

SENSOR_DATA_TYPE_ANGULAR_ACCELERATION_Y_DEGREES_PER_SECOND_SQUARED

< 15

SENSOR_DATA_TYPE_ANGULAR_ACCELERATION_Z_DEGREES_PER_SECOND_SQUARED

< 15

陀螺仪测试 5

图 10 陀螺仪测试 5

陀螺仪测试 6

垂直固定设备,使 Windows 按钮处于左侧。 俯视设备,逆时针旋转设备,使设备保持垂直并处于纵向方向。

旋转期间的预期值:

SENSOR_DATA_TYPE_ANGULAR_ACCELERATION_X_DEGREES_PER_SECOND_SQUARED

<-40

SENSOR_DATA_TYPE_ANGULAR_ACCELERATION_Y_DEGREES_PER_SECOND_SQUARED

< 15

SENSOR_DATA_TYPE_ANGULAR_ACCELERATION_Z_DEGREES_PER_SECOND_SQUARED

< 15

陀螺仪测试 6

图 11 陀螺仪测试 6

验证传感器方向 - 3D 指南针

大多数指南针实现使用来自 3D 磁力计和陀螺仪的数据计算用户相对于磁北极所面对的当前方向。 某些实现也使用来自加速计的数据。 因此,如果陀螺仪或加速计无法正常工作,则测试人员应会看到指南针返回不正确航向。

由于地球的磁力相对较弱,磁力计传感器通常会受到系统内其他组件的干扰。 如果磁力计没有与电磁干扰源(例如天线、电源线或其他由干扰磁接收的材料(如铁)组成的组件)充分隔离,测试人员会发现指南针返回不正确航向。 请参阅集成运动和方向传感器白皮书,了解有关正确磁力计放置和最佳做法的指导。

强烈建议用户站立,使系统保持不同角度,并旋转自己,以使他们最终面对不同的方向。 无论系统保持的角度或是横向/纵向方向如何,指南针都应始终返回相对于用户所面对方向的航向。 请注意,可以使用传感器诊断工具显示来自指南针传感器的航向值。 如果测试人员发现指南针返回不正确或不一致的结果,请与磁力计传感器供应商合作,以确定造成错误的原因是干扰,还是可能是不正确的传感器融合算法。

WHLK 中的指南针测试可验证在系统保持不同方向和朝向时,指南针是否返回预期值。 指南针测试允许 +/-10 度的容错。 测试人员应在开始指南针测试之前使用参考指南针确定磁北方向。

指南针测试 1

将设备放在平整表面上,使 Windows 按钮指向正南。

指南针应返回接近 0 度的航向。

注意

忽略日志记录异常文本。 这不会导致记录失败。

指南针测试 1

图 12 指南针测试 1

指南针测试 2

现在垂直固定设备,使 Windows 按钮处于底部,并且屏幕朝向你。 使 Windows 按钮指向正北。

指南针应返回接近 0 度的航向

指南针测试 2

图 13 指南针测试 2

指南针测试 3

现在将设备平放,屏幕向下,使 Windows 按钮指向正南。

指南针应返回接近 0 度的航向。

指南针测试 3

图 14 指南针测试 3

指南针测试 4

现在将屏幕顺时针旋转 90 度,以便 Windows 按钮指向正西。

指南针应返回接近 90 度的航向。

指南针测试 4

图 15 指南针测试 4

指南针测试 5

再将屏幕顺时针旋转 90 度,以便 Windows 按钮指向正北。

指南针应返回接近 180 度的航向。

指南针测试 5

图 16 指南针测试 5

指南针测试 6

再将屏幕顺时针旋转 90 度,以便 Windows 按钮指向正东。

指南针应返回接近 270 度的航向。

指南针测试 6

图 17 指南针测试 6

验证传感器方向 - 测斜仪

根据集成运动和方向传感器白皮书中的指导,倾斜仪实现可以使用来自加速计、陀螺仪和指南针的数据确定欧拉角度值。

这些测试允许 +/-10 度的角度误差。

重要

请参阅集成运动和方向传感器白皮书的“欧拉角度验证”部分,了解每个测斜仪测试的预期角度。

倾斜仪测试 1

将设备放在平整水平表面上,使 Windows 按钮指向正南。

倾斜仪测试 1

图 18 倾斜仪测试 1

倾斜仪测试 2

将设备放在平整水平表面上,使 Windows 按钮指向正东。

倾斜仪测试 2

图 19 倾斜仪测试 2

倾斜仪测试 3

将设备放在平整水平表面上,使 Windows 按钮指向正北。

倾斜仪测试 3

图 20 倾斜仪测试 3

倾斜仪测试 4

将设备放在平整水平表面上,使 Windows 按钮指向正西。

倾斜仪测试 4

图 21 倾斜仪测试 4

倾斜仪测试 5

将设备面朝上地放在平整水平表面上,使 Windows 按钮指向正南。

倾斜仪测试 5

图 22 倾斜仪测试 5

倾斜仪测试 6

将设备垂直固定在平整水平表面上,以便 Windows 按钮位于底部,+Y 轴竖直指向上方,屏幕朝向正南。

倾斜仪测试 6

图 23 倾斜仪测试 6

倾斜仪测试 7

将设备面朝下地放在平整水平表面上,使 Windows 按钮指向正北。

倾斜仪测试 7

图 24 倾斜仪测试 7

倾斜仪测试 8

将设备垂直固定在平整水平表面上,以便 Windows 按钮位于顶部,+Y 轴竖直指向下方,屏幕朝向正北。

倾斜仪测试 8

图 25 倾斜仪测试 8

倾斜仪测试 9

将设备面朝上地放在平整水平表面上,使 Windows 按钮指向正南。

倾斜仪测试 9

图 26 倾斜仪测试 9

倾斜仪测试 10

将设备垂直固定在平整水平表面上,右侧向下,使屏幕指向正东。

倾斜仪测试 10

图 27 倾斜仪测试 10

倾斜仪测试 11

将设备面朝下地放在平整水平表面上,使 Windows 按钮指向正南。

倾斜仪测试 11

图 28 倾斜仪测试 11

倾斜仪测试 12

将设备垂直固定在平整水平表面上,左侧在底部,使屏幕指向正西。

倾斜仪测试 12

图 29 倾斜仪测试 12

验证高级方向传感器

大多数旋转矩阵和四元数实现会使用从加速计和指南针得到的数据来确定旋转矩阵和四元数值。 建议测试人员先验证加速计和指南针值,然后再尝试运行高级方向测试。

测试使用点积计算预期矢量与从高级方向传感器检索的矢量之间的增量。 测试允许最多 15 度的增量。 如果测试人员发现传感器返回的值与测试的预期值不同,应检查方向融合算法,以查看其生成的结果与集成运动和方向传感器白皮书中提供的值是否一致。

重要

请参阅集成运动和方向传感器白皮书的“欧拉角度验证”部分,了解预期四元数和旋转矩阵值。

高级方向传感器测试 1

将设备放在平整水平表面上,屏幕朝上,使 Windows 按钮指向正南。

高级方向传感器测试 1

图 30 高级方向传感器测试 1

高级方向传感器测试 2

将设备放在平整水平表面上,屏幕朝上,使 Windows 按钮指向正东。

高级方向传感器测试 2

图 31 高级方向传感器测试 2

高级方向传感器测试 3

将设备放在平整水平表面上,屏幕朝上,使 Windows 按钮指向正北。

高级方向传感器测试 3

图 32 高级方向传感器测试 3

高级方向传感器测试 4

将设备放在平整水平表面上,屏幕朝上,使 Windows 按钮指向正西。

高级方向传感器测试 4

图 33 高级方向传感器测试 4

高级方向传感器测试 5

将设备放在平整水平表面上,屏幕朝上,使 Windows 按钮指向正南。

高级方向传感器测试 5

图 34 高级方向传感器测试 5

高级方向传感器测试 6

现在垂直固定设备,使 Windows 按钮处于底部,并且 Windows 按钮指向正南。

高级方向传感器测试 6

图 35 高级方向传感器测试 6

高级方向传感器测试 7

将设备放在平整水平表面上,屏幕朝下,使 Windows 按钮指向正北。

高级方向传感器测试 7

图 36 高级方向传感器测试 7

高级方向传感器测试 8

将设备放在平整水平表面上,屏幕朝下,使 Windows 按钮指向正北。

高级方向传感器测试 8

图 37 高级方向传感器测试 8

高级方向传感器测试 9

将设备放在平整水平表面上,屏幕朝上,使 Windows 按钮指向正南。

高级方向传感器测试 9

图 38 高级方向传感器测试 9

高级方向传感器测试 10

现在垂直固定设备,使 Windows 按钮处于侧面,左侧在顶部,并且 Windows 按钮指向正东。

高级方向传感器测试 10

图 39 高级方向传感器测试 10

高级方向传感器测试 11

将设备放在平整水平表面上,屏幕朝下,使 Windows 按钮指向正南。

高级方向传感器测试 11

图 40 高级方向传感器测试 11

高级方向传感器测试 12

现在垂直固定设备,使 Windows 按钮处于侧面,左侧在底部,并且 Windows 按钮指向正西。

高级方向传感器测试 12

图 41 高级方向传感器测试 12