原创
基于MT9M114+CYUSB3014的UVC摄像头开发5(控制传输)
控制传输是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条评论)
登录后参与讨论