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

第二章 UVC协议固件开发

本章说明:

本章在cypress官方文档说明的基础上,对如何修改固件做出直接、详细的说明,以降低开发难度。固件修改部分包括:

1、修改图像分辨率、图像帧率;

2、修改UVC传输数据格式;

3、修改UVC传输数据位宽。

 

一:修改图像分辨率、图像帧率

1、cypress官方驱动安装完成后,默认安装有EZ USB Suite工具,在开始目录打开。新建空白文件目录UVC_test。初次打开时需要选择工作目录,选择UVC_test目录,进入软件界面。选择file->Import,点击General->Existing Projects into Workspace->Next

 

2、如果工作目录已经存在一个工程,则不能再创建工程,这时需要Switch Workspace->Other重新选择一个可用的工程目录。

 

3、选择UVC_AN75779目录,勾选Copy projects into workspaceFinish。这时会在UVC_test目录下新创建一个工程,整个的编辑都在这个新工程下进行。

 

4、打开cyfxuvcdscrc.c,寻找CyFxUSBSSConfigDscr函数,此函数对应USB3.0的开发,USB2.0需更改与其对应的函数。寻找程序中如下图部分。黄线为横纵轴的比例,蓝线为横纵轴的分辨率,红线为每帧耗时,对应帧率。

 

 

 

 

以修改为640*480@50fps为列。640/480=8/6,黄线部分对应填入0x080x06640=0x280480=0x1E0,蓝线部分对应填入0x80,0x020xE0,0x01(注意高低位顺序);1/50fps=20ms=200000*100ns200000=0x30D40,红线部分对应填入0x40,0x0D,0x03,0x00。可见下图。

二:修改图像数据格式

源固件默认为YUY2数据格式,Windows下还支持大量其他数据格式,并为每种格式都分配了固定的GUID,图中只显示其中一部分,详情参考UVC_GUID

 

 

 

 

将原有代码注释,以RGB32格式修改为例,修改如下。

 

 

 

 

二:修改图像数据位宽

不同的数据格式要求不同的数据位宽,如YUY2-8bitRGB565-16bitRGB32-32bit

高数据位宽可向下兼容低数据位宽。源码中默认为8bit,对其进行更改为32bit

 

1、打开cypress驱动默认安装的GPIF II Designer工具。选择File->Open Project,选择正在编辑的工程目录下的fx3_uvc.cydsn\fx3_uvc.cyfx,打开工程。

2、在Interface Definition目录下修改Data bus witdh32Bit,点击State machine

 

2、分别点击LD_DATA_COUNTLD_ADDR_COUNT,将数据长度改为409116bit对应8183,8bit对应16367)。保存、编译。

 

3、fx3_uvc.cydsn目录下会新生成cyfxgpif2config.h文件,用其替代原工程相同名称文件。

 

 

 

 

4、将CyFxUSBSSConfigDscr函数中Number of bits per pixel行改为0x20,对应32bit(默认为0x10)

 

 

 

 

532bit情况下,打开uvc.c文件,确保最后部分按下图红线处设置。

 

6、保存更改,在工程名上右键,点击Build Project,生成固件镜像文件。

 

7、固件修改完成,用cypress驱动Control Center工具烧录。给入图像数据后,打开VirtualDub工具,选择File->Capture AVI,等待几秒钟,即可显示图像。选择Video-Capture pin可查看固件支持的图像数据格式。

 

 

posted on 2021-05-25 17:59  山山而川vl  阅读(2739)  评论(1编辑  收藏  举报

导航