UVC 红外相机初始化流程 setup包解析

UVC 红外相机初始化流程

概述

本文档基于原始数据分析Windows Hello红外相机的UVC初始化流程。

原始数据

复制代码
intf: 0 unit: 8 cs: 9 req: "85" data: "0400"
intf: 0 unit: 8 cs: 9 req: "86" data: "03"
intf: 0 unit: 8 cs: 9 req: "82" data: "00000000"
intf: 0 unit: 8 cs: 9 req: "83" data: "01000000"
intf: 0 unit: 8 cs: 9 req: "87" data: "00000000"
intf: 0 unit: 8 cs: 9 req: "84" data: "01000000"
intf: 0 unit: 8 cs: 9 req: "1" data: "00000000"
intf: 2 unit: 14 cs: 6 req: "85" data: "0900"
intf: 2 unit: 14 cs: 6 req: "86" data: "03"
intf: 2 unit: 14 cs: 6 req: "82" data: "00"
intf: 2 unit: 14 cs: 6 req: "83" data: "010303000000000000"
intf: 2 unit: 14 cs: 6 req: "87" data: "010301000000000000"
intf: 2 unit: 14 cs: 6 req: "84" data: "00"
intf: 2 unit: 14 cs: 6 req: "1" data: "010301000000000000"
intf: 2 unit: 14 cs: 9 req: "85" data: "0400"
intf: 2 unit: 14 cs: 9 req: "86" data: "03"
intf: 2 unit: 14 cs: 9 req: "82" data: "00000000"
intf: 2 unit: 14 cs: 9 req: "83" data: "01000000"
intf: 2 unit: 14 cs: 9 req: "87" data: "00000000"
intf: 2 unit: 14 cs: 9 req: "84" data: "01000000"
intf: 2 unit: 14 cs: 9 req: "1" data: "00000000"
intf: 2 unit: 14 cs: 6 req: "81" data: "010301000000000000"

数据重新分析

正确的请求类型映射

  • req: "1" = SET_CUR (设置当前值)
  • req: "81" = GET_CUR (获取当前值)
  • req: "82" = GET_MIN (获取最小值)
  • req: "83" = GET_MAX (获取最大值)
  • req: "84" = GET_RES (获取分辨率)
  • req: "85" = GET_LEN (获取数据长度)
  • req: "86" = GET_INFO (获取控制信息)
  • req: "87" = GET_DEF (获取默认值)

初始化流程详细分析

阶段1: 颜色相机MSXU_CONTROL_METADATA初始化 (intf:0, unit:8, cs:9)

步骤 请求类型 数据 说明
1 GET_LEN (85) "0400" 获取数据长度(4字节)
2 GET_INFO (86) "03" 获取控制信息(可读写)
3 GET_MIN (82) "00000000" 获取最小值(0)
4 GET_MAX (83) "01000000" 获取最大值(1)
5 GET_DEF (87) "00000000" 获取默认值(0)
6 GET_RES (84) "01000000" 获取分辨率(1)
7 SET_CUR (1) "00000000" 设置当前值为0

阶段2: 红外相机MSXU_CONTROL_FACE_AUTHENTICATION初始化 (intf:2, unit:14, cs:6)

步骤 请求类型 数据 说明
8 GET_LEN (85) "0900" 获取数据长度(9字节)
9 GET_INFO (86) "03" 获取控制信息(可读写)
10 GET_MIN (82) "00" 获取最小值(0)
11 GET_MAX (83) "010303000000000000" 获取最大值{1,3,3}
12 GET_DEF (87) "010301000000000000" 获取默认值{1,3,1}
13 GET_RES (84) "00" 获取分辨率(0)
14 SET_CUR (1) "010301000000000000" 设置当前值为{1,3,1}

阶段3: 红外相机MSXU_CONTROL_METADATA初始化 (intf:2, unit:14, cs:9)

步骤 请求类型 数据 说明
15 GET_LEN (85) "0400" 获取数据长度(4字节)
16 GET_INFO (86) "03" 获取控制信息(可读写)
17 GET_MIN (82) "00000000" 获取最小值(0)
18 GET_MAX (83) "01000000" 获取最大值(1)
19 GET_DEF (87) "00000000" 获取默认值(0)
20 GET_RES (84) "01000000" 获取分辨率(1)
21 SET_CUR (1) "00000000" 设置当前值为0

阶段4: 获取人脸认证当前状态 (intf:2, unit:14, cs:6)

步骤 请求类型 数据 说明
22 GET_CUR (81) "010301000000000000" 获取当前值{1,3,1}
相关推荐
跳跳糖炒酸奶6 小时前
基于深度学习的单目深度估计综述阅读(1)
人工智能·深度学习·数码相机·单目深度估计
木头程序员8 小时前
算摄像学的“算法-传感器”协同设计:重新定义光学极限
人工智能·数码相机·硬件工程
shejizuopin9 小时前
基于多鱼眼的视觉SLAM系统(毕业论文)
人工智能·数码相机·目标跟踪·毕业论文·答辩ppt·基于多鱼眼的·视觉slam系统
国科安芯9 小时前
微小卫星红外相机双MCU冗余架构的抗辐照可靠性评估
人工智能·单片机·嵌入式硬件·数码相机·架构·自动化·安全性测试
孤岛悬城11 小时前
阿里云实战:RuoYi项目上云
云原生·云计算
kingmax5421200811 小时前
AWS ML Specialist 考试备考指南
云计算·aws·ai证书·ai认证
摘星编程11 小时前
React Native for OpenHarmony 实战:Camera 相机组件详解
数码相机·react native·react.js
自由的好好干活11 小时前
PLX9x5x_PCI_Driver 中断从注册到调用完整流程
驱动开发·ai编程
自由的好好干活21 小时前
PLX 9x5x PCI 驱动程序执行流程详解(Qoder生成)
驱动开发·ai编程
@HNUSTer1 天前
基于 GEE 利用多波段合成的方法高效处理并下载数据——以 MODIS 潜热通量(LE)年均值数据产品下载为例
云计算·数据集·遥感大数据·gee·云平台·modis·潜热通量(le)