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

2021-4-5 23:04 4220 13 13 分类: 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条评论)

登录后参与讨论
我要评论
0
13
关闭 站长推荐上一条 /2 下一条