CypressFX3 UVC传输 USB3.0传输——03

第三章 UVC源码开发

本章说明:

本章根据Cypress提供的开发手册说明,对UVC源码固件做一定的修改,实现如下功能:

1、使能视频控制功能;

2、使能debug interface

 

一、 使能视频控制功能

根据PC端识别USB设备的方式——枚举UVC设备的描述符(descriptor,我们可以修改相应的描述符,实现开发所需的功能及其属性。以下主要讲解处理单元(process unit)请求事件控制修改。ENDPOINT0 控制传输)

1、 使能PU功能。如图3-1所示,在EZ USB Suite工具中打开UVC_AN757799源码中的cyfuvcdscr.c文件,找到Processing Unit Descriptor,其中bmControl3byte)的每1bit分别对应D0-D23等不同功能,当对应位置1时,相应的功能就会使能。例如:bmControl = 0x00 00 01 ,D0:Brightness功能就会开启。为了验证brightness功能是否使能,可以通过抓取UVC设备描述符查看,如图3-2所示,Brightness所对应的yes即可说明。

 

 

 

3-1 PU描述符展示图

 

 

 

3-2 PU描述符展示图

 

2、 获取功能属性及修改。打开UVC_AN757799源码中的uvc.c文件,定位到UVCHandleProcessingUnitRqts()函数,按图3-3所示添加代码,以Brightness为例可以分别设置GET_LEN(有效范围,最大15bit)、GET_CUR(当前值)、GET_MIN(最小值)、GET_MAX(最大值)、GET_RES(按固定值变化)、GET_INFOGETSET请求权限)、GET_DEF(默认值)、SET_CUR(修改当前值)。

 

 

 

3-3 Brightness属性的GETSET请求代码示例

注释:关于XU,CT等单元或端口的功能控制使能与修改均可参照Brightness的流程,功能属性配置一般在驱动里面设定。可供开发人员修改一些功能做少量的数据传输。

 

二、 使能DebugInterface功能

使能Debug Interface功能,目的在于上位机可以无限的下发多位数据(32以上),利用I2c传输至UVC设备,满足大数据传输的开发需求。ENDPOINT IN与ENDPOINT OUT BULK传输)

1、 打开UVC_AN757799源码中的uvc.c文件,将#define USB_DEBUG_INTERFACE添加到代码中(源代码已注释掉,也可以讲注释取消)。

2、 打开uvc.c文件,定位UVCAppEp0Thread_Entry()控制线程函数,并按图3-4所示进行修改。

 

 

 

 

3-4 代码修改示意图

 

3、更新CyUSB3.sys驱动程序,添加“调试”接口,实现center control上位机(显示端口)数据下发。

操作步骤如下:首先进入PC端设备管理器,右击FX3(或同等选项),然后选中“update driver software”选项,“浏览我的计算机以查找驱动程序软件”,“让我从计算机上的可用驱动程序列表中选取”,“从磁盘安装”,“浏览,选取Cypress安装目录下的cyusb3.inf文件——路径:cpress\driver\bin\win10\x64” ,“选中一个操作系统版本,此处选择FX3 USB stream Example Devices”,“next,出现报警对话框选择Yes”,如图3-53-6所示。           

 

 

 

 

 

 

 

 

 

 

 

 

 

3-5 Cypress.sys驱动更新流程图

 

 

 

3-6 调试接口显示界面

 

PSA.UVC协议中利用I2C通信必须要加上拉电阻,否则会出现设备采集视频延迟现象

posted on 2021-05-25 18:03  山山而川vl  阅读(1479)  评论(0编辑  收藏  举报

导航