原创 基于MT9M114+CYUSB3014的UVC摄像头开发5(控制传输)

2021-4-5 23:04 333 0 分类: FPGA/CPLD 文集: USB3开发板
  控制传输是USB四种传输种的一种,主要用来传输一些简单的控制指令及数据,不管是专有驱动的USB设备,还是免驱的UVC设备,在控制传输上两者是一致的,都得符合基本的USB协议。本方主要是最近的工程项目中用到了控制传输,所以做一简单的分析说明。测试用的硬件开发板可以随意,只要有一个基于CYUSB3014的开发板就可以,我用的是FPGA+USB3的开发板,FPGA是EP4CE10的,电路板如下所示:(之所以选择3014的板子,是因为手里没有现成的UVC上位机程序,可以发控制传输的那种程序)。也可以选择其它USB3.0开发板。

    控制传输可以简单分为两种,一种是仅带参数不带数据的 ,另一种是既带参数又带数据的,下面分别演示一下。
    先看下第一种,仅带参数不带数据的,示例如下:
   
     上图中Direction选择OUT,即从电脑向电路板发数据;Req type选择Vendor,即用户自定义命令;Target选择Device;Req code命令我定义的是B1,用户可以按照自己需求定义,在3014代码中定义就可以;第一个参数是wValue=1234;第二个参数是wIndex=5678;因为是不带任何其它数据的,所以Bytes to transfer设置为0;最后单击一下Transfer Data按钮,控制传输指令成功发送,见文本框中的提示。简单的,我们可以用BUSHOUN软件监测一下USB总线上的指令,如下:

    第二种既带参数又带数据的,和上面的差不多,仅是多了额外的数据传输,这个额外的数据长度可以是0到512,针对USB3的。具体操作如下:

    上图中的设置和第一张图差不多,仅仅是多了10字节的额外数据,为了方便,数据为连续的123456789A。成功传输的提示在最下面的信息显示框中。用BUSHOUND监测如下:

    前面仅仅是从操作的角度简单示例了一下控制传输的OUT发送,用的是B1指令,以下示例一下控制传输的IN指令,用的是B2指令,如下:

    上图中传输方向更改为IN了,电脑从电路板采集数据;指令码更改为B2了;采集的数据长度设置为10;指令执行后,采集的数据是10个数据,和B1指令发送的数据正好是吻合的。

良子USB,202104040
专注USB3.0、FPGA、PCIE、UVC摄像头开发
QQ:1345482533

作者: 良子usb, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3903348.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论0条评论)

登录后参与讨论
相关推荐阅读
良子usb 2020-10-03 15:05
基于MT9M114+CYUSB3014的UVC摄像头开发3(8位彩条测试模式)
       导入AN75779后,我们首先看下readme.txt文件,简单了解一下AN75779都实现了哪些功能 。程序只实现了两种分辨率,在USB3下是...
良子usb 2020-09-12 21:46
基于MT9M114+CYUSB3014的UVC摄像头开发1(软硬件准备)
          UVC摄像头功能强大,应用广泛。这里简单记录了UVC摄像头的开发,摄像头(SENSOR)选择的是MT9M114,一款比较老的并口摄...
良子usb 2020-02-29 10:35
基于SPARTAN6+DDR3+USB3开发板的DDR3读写实例5_TEST工程代码分析
一、TEST工程前面已经创建、运行起来了,这里简单分析一下工作代码。由于工程比较大,各种控制隐藏的比较深,不花点时间还一时半会不能理解。当然,这里也不会面面俱到,详细分析每一段代码,这里主要挑选两条线...
良子usb 2020-02-15 16:38
基于SPARTAN6+DDR3+USB3开发板的DDR3读写实例4_TEST工程的约束文件修改
前面生成了test工程,用于测试DDR3。在实际下载测试前,还需要修改一下exapmle_top.ucf约束文件。以下记录了修改的要点:一、修改文件exapmle_top.ucf的第23行,修改VCC...
广告
我要评论
0
0
1
2
3
4
5
6
7
8
9
0
广告
关闭 热点推荐上一条 /5 下一条