| 
			 
					阅读:2274回复:6
				 
				谁能讲一下从主机发送令牌包到主机完整读取D12的数据的详细流程?(50分)
					主机发SETUP,EP0_OUT中断通知MCU,MCU读取SETUP包,ACK_SETUP,判断REQUEST_TYPE后清EP0_OUT缓冲区,然后往D12的EP0_IN缓冲区写数据,写满后VALIDATE缓冲区,发生EP0_IN中断(这是给HOST轮询用的信息,与MCU无关,MCU读取最后状态寄存器,清中断即可),计算机发IN令牌包读取数据,不知道我的理解对不对。谁能给个详细的过程吗?				 
							 | 
	|
| 
			 沙发# 
								发布于:2004-09-11 11:45				
			
					 发现分只给了20,照常可以补上				 
							 | 
	|
| 
			 板凳# 
								发布于:2004-09-13 16:52				
			
					我认为有点不同,应该分应答信号的不同讨论。比如应答为ACK时,PC发IN指令,下端USB判断之后,根据固件程序设置的工作方面发送指定数量的数据,然后处于等状态(空闲),然后等下次的IN、OUT指令的到来呀,再根据指令完成相应的工作。SETUP指令用于control方式下,不是通用的。四种传输方式不同,各种指令与应答方式各有不同,请仔细看规范吧。				 
							 | 
	|
| 
			 地板# 
								发布于:2004-09-13 20:25				
			
					应该还有主机给USB设备设置地址的阶段吧				 
							 | 
	|
| 
			 地下室# 
								发布于:2004-09-14 12:42				
			
					楼上的没错,的确需要SET ADDRESS,gdutchen的意思是主机发IN指令后D12就直接产生IN端点中断通知MCU了?然后MCU往IN缓冲区送数据,VALIDATE之后,主机自动去走数据(主机和D12的事情)
 
							 | 
	|
| 
			 5楼# 
								发布于:2004-09-14 13:09				
			
					我只是就我熟悉的bulk取数方式来谈的,大部分设置地址的阶段在固件程序中就做好了。PC与USB联接的过程,就是读取各种描述符的过程,也就是判断USB是否所调用驱动程序等。这也是USB的规范,与SETUP等指令关系不大。
 
							USB2.0的token:in,out,sof,setup,这是令牌,也是PC发出的相就操作的指令;DATA:data0,data1,data2,mdata,传送的数据;Handshake:ACK, NAK, STALL, NYET,这是握手命令;Special:PRE, ERR, SPLIT, PING,这是特种命令;其中data2,mdata,NYET,ERR, SPLIT, PING是USB2.0新增的指令。你仔细看看规范就知道了。  | 
	|
| 
			 6楼# 
								发布于:2009-06-05 16:47				
			
					主机什么时候发送IN/OUT 令牌包的,如何发送的,usb设备又是如何确认是IN/OUT命令的				 
							 | 
	|