微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 视频信号采集与图象传输技术的研究----基于USB的图像传输接口设计

视频信号采集与图象传输技术的研究----基于USB的图像传输接口设计

时间:01-25 来源:3721RD 点击:

在每种状态下,设备都有定义的能力和行为。以下是在列举过程中引起和出现的事件。

(1)用户插入一个设备到一个USB端口。

这个端口可以在主机的根集线器上或者在连接主机下游的集线器上。集线器正常给这个端口提供电源,这个设备正处于上电状态。

(2)集线器检测到这个设备。

集线器端口的两根信号线(D+和D-)的每一根都有一个1.5kΩ的下拉电阻,而一个设备在D+(为全速设备)和D-(为低速设备)都有一个1.5kΩ的上拉电阻。当一个设备插入到一个端口时,设备的上拉电阻使信号线为高,使得集线器可以检测到一个设备连接上了。

一旦检测到一个设备,集线器持续提供电能但传输USB流通量给设备,因为设备还没有准备好接受它。

(3)主机知道了这个新设备。

每个集线器使用它的中断流程来报告发生在集线器上的事件。当主机知道了这个事件,它给集线器发送一个Get_Port_Status请求来了解更多的信息。返回的信息告诉主机一个设备是什么时候连接上的。

(4)集线器重新设置这个设备。

当主机知道有一个新的设备时,主机控制器给集线器发送一个Set_Port_Feature请求,请求集线器来重新设置端口。集线器使得设备的USB数据线处于重启状态至少10ms.

(5)集线器在设备和总线之间建立一个信号通路。

主机通过发送一个Get_Port_Status请求来验证设备是否激起重启状态。返回的数据的一位表示设备是否仍然处于重启状态。当集线器已经释放了重启状态,设备就处于默认状态了。设备的USB寄存器已经处于它们的默认状态,设备已经准备好通过终端0的默认流程来响应控制传输。设备现在可以与主机通信,使用默认地址0h.在这一点上,设备可以从总线上抽取不超过100mA的电流。

(6)集线器检测设备速度。

或者在重启之前或者在重启之后,集线器通过检查两个信号的电压来检测设备的速度。集线器通过测定哪根信号线在空闲时有更高的电压来检测一个设备的速度。集线器发送信息给主机,以响应下一个Get_Port_Status请求。

(7)主机发送一个Get_Descriptor请求来知道默认流程的最大包的大小。

主机发送请求给设备地址0、终端0.因为主机一次只列举一个设备,只有一个设备将响应寻址设备地址0的通信。

最大包的大小是这个描述符的第8位,因此主机只需要读取头8B.一个Windows主机请求64B,但在仅接收一个包后(不管是否有64B),它就开始了状态阶段。在完成状态阶段时,主机请求集线器来重启这个设备(重复步骤4和5)。

(8)主机分配一个地址。

主机控制器通过发送一个Set_Address请求来分配一个单独的地址给设备。

设备读取这个请求,返回一个确认,并且保存新的地址。这个设备现在处于一个地址状态。从这个点开始的所有通信使用这个新地址。

(9)主机知道了设备的能力。

主机给新地址发送一个Get_Descriptor请求来读取这个设备描述符,这次读取整个部分。这个描述符是一个数据结构包括终端0的最大包的大小,设备支持的配置号,以及关于这个设备的基本信息。主机把这些信息应用在其后的通信中。

主机然后通过请求在设备描述符规定的一个或多个配置描述符来了解这个设备。一个Windows主机开始申请配置描述符的9B.包括在这些9B中的是这个配置描述符和它的所有的从属描述符的总长度。

Windows然后再次请求配置描述符,这次使用得到的总长度,最多可达到FFhB.这导致设备发送跟随在每个配置的接口描述符后的配置描述符,在它后面是每个接口的终端描述符。

(10)主机分配和载入一个设备驱动(除了复合设备)。

在主机已经从它的描述符中知道了能够知道的所有信息后,它开始在一个设备启动中查找最适合的匹配来管理与设备的通信。在选择一个驱动时,Windows尽量去与从设备得到的、保存在系统INF文件中的销售商和产品ID、发布号和/或类信息相匹配。在驱动程序被载入后,它经常请求设备来重新发送描述符或者发送应用于这个设备的类描述符。

(11)主机的设备驱动选择一个配置。

在从描述符了解了设备后,设备驱动程序发送一个Set_Configuration命令来请求希望的配置号。很多设备只支持一个配置。如果一个设备支持多个配置,则这个驱动能根据以下信息来决定使用哪个配置:它已经具有的关于这个设备如何被使用的信息,或者它可能询问用户该做什么,或者它可以就选择第一个配置。设备现在可以使用了[44][45]。

另外两个设备状态:连接和挂起,可能出现在任何时间。

综上,USB设备启动流程可概括为:

(1) USB设备接入USB口,发出连接USB命令。

(2)主机发出读设备描述符两次。

(3)主机根据设备描述符--厂商ID、产品ID,启动相应设备驱动程序。

(4)设备驱动程序初始化USB设备:读设备描述符;读配置描述符;选择接口、端点(管道),确定传输方式。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top