阅读:2038回复:5
setup包的传输机制
SETUP包向FIRMWARE询问DEVICE DESCRIPTOR的时候,因为这个描述符有18字节长,因此要分几次发给主机。
IN动作是由主机发起,DEVICE响应的,主机在收到一个包后,发现这个描述符传递不完整,就会自动产生IN请求,通知DEVVICE把后面的包传过来吗?这个IN请求维持多长的时间?我的板子在发出第一个包以后无法发送后面的包是怎么回事? |
|
最新喜欢:![]()
|
沙发#
发布于:2001-08-14 21:45
IN请求维持多长时间,我到不清楚,因为我用的是windriver,但你的发送方式是不是有问题,第一个包在收到请求以后直接发送,以后的包是在TX0中发送的,发送之前判断发送状态寄存器的状态。
|
|
板凳#
发布于:2001-08-15 10:17
host第一次会读8个字节的device descriptor,这8个字节里面有整个dexcriptor的长度,第二次host就会发这么长的一个IN来得到这个device desciptor。
至于不发送后续的IN,原因巨多。有可能是硬件的问题,也有可能是你的descriptor里面有错误。 |
|
|
地板#
发布于:2001-08-15 18:01
SETUP包是专门用在USB控制传输上的一种令牌包,其作用是告诉Device接下来的数据是命令。
USB外设一共支持11种标准请求。 当Host开始对USB Device进行枚举的时候,要得到设备的描述符, 第一次只需要得到设备描述符的前八个字节,因为设备描述符的第八个字节里的内容就是这个设备所能支持的最大数据包的大小。然后,Host才能根据这个设备所能支持的最大数据包的大小向这个设备发命令,例如给这个设备分配USB地址,等。 我不是很清楚你问的问题具体是什么意思,希望这些能对你有所帮助。 |
|
|
地下室#
发布于:2001-08-16 15:45
看看USB Spc.然后用SoftICE设断点跟跟就知道了。
|
|
5楼#
发布于:2001-08-16 16:44
根
|
|