| 
			 
					阅读:1994回复:6
				 
				USB总线的IN指令是怎么产生的.
					USB设备在枚举成功后,如果有IN Endpoint.那么HOST会根据端点所设定的时间定时发送IN指令.以查询设备有无数据.这个IN指令是怎么生产的.与驱动有关吗? 
							(我现在利用DDK自带的BULKUSB.直接安装到我的STM32 设备上,STM32设备有一个BULK OUT和一个BULK IN.可是每次都地枚举成功后,便发现设备被Suspend.只有枚举过程,无任何IN,OUT数据查询指令.) 不明白怎么回事.最近才开始看怎么写驱动的.请大家指教. 谢谢!  | 
	|
					
						
						
						
						
  | 
	
| 
			 沙发# 
								发布于:2010-02-19 08:19				
			回 5楼(jally76) 的帖子 
					祝大家节日快乐!经过最近的折腾,弄明白了.正如jally76所说.				 | 
	|
					
						
  | 
	
| 
			 板凳# 
								发布于:2010-02-16 01:19				
			
					感觉问题应该是出在Query Device Relation这一步				 
							 | 
	|
| 
			 地板# 
								发布于:2010-02-11 12:01				
			回 3楼(jally76) 的帖子 
					Hi,了解您的说法,也感谢您的回答.我最近用DDK自带的BULKUSB驱动.设备为STM32.每次都是在枚举成功后,设备便被挂起来了.我使用DDK自带的测试程序.使用Read来进行测试,也是出现Faild Open to <//Piople 00> 都搞了好几天了.找不出个所以然,没有怎么搞过USB驱动. 使用IRPTrace看了一下.根本就没进行Dispatch Read write这个过程.总是在Clearn up,说不清楚,看能不能贴图.  | 
	|
					
						
						
  | 
	
| 
			 地下室# 
								发布于:2010-02-11 09:48				
			
					首先声明我不是高手,不过,这个问题我应该可以解答 
							IN指令准确地说是要由设备驱动产生一个Bulk In Pipe上的读数据URB请求,然后主机控制器驱动(HC)根据这个请求给设备发送IN指令。如果设备还没准备好数据,就会回NAK,那么主机控制器驱动会每隔一段时间就发IN指令轮询一下,直到设备回送数据为止。 需要指出的是,设备永远是被动的,只有主机方给它发指令,它才回答。不要指望它主动给主机发数据,就是同步或中断端口,也是要主机方先进行启动操作后才会有的。 不知道这么解释是否够清楚。  | 
	|
| 
			 5楼# 
								发布于:2010-02-11 08:10				
			回 1楼(Platon) 的帖子 
					绝望,此处无高手.感觉国内的网站实在是内容空洞.				 | 
	|
					
						
  | 
	
| 
			 6楼# 
								发布于:2010-02-10 16:14				
			
					盼望着高人的指点.				 
							 | 
	|
					
						
  | 
	
							
				