阅读:1834回复:11
请教一个关于D12取读顺序的问题.
我看了一些源码是当设备接收到主机的IN请求后再向Buffer填数据,但又有帖子说要先把数据写入缓冲区,然后等待主机in请求。 倒底哪个对?
|
|
|
沙发#
发布于:2002-05-13 10:43
顶一顶
|
|
|
板凳#
发布于:2002-04-29 10:55
我认为,usb系统基本上是工作在中断方式,我认为的过程是这样的:首先pc机得到中断,再发in命令,因为中断在前,所以buffer一定是满的,也就是说先写buffer再等in命令。 :) :) :) :)
|
|
地板#
发布于:2002-04-29 09:13
我使用的不是d12,但是在根据我这里的说明,实在in 到来之前,先把数据包预装入buffer ,在等待in的到来。in来了以后要判断有装载了才开始发送。
|
|
|
地下室#
发布于:2002-04-28 16:20
D12受到IN信号包后产生中断。
向BUFFER写数据,写完数据后,发送数据有效命令。 D12发送数据到主机。 |
|
5楼#
发布于:2002-04-28 14:23
When the microprocessor has written data into an IN buffer, it should set the buffer full flag by the Validate Buffer command. This indicates that the data in the buffer are valid and can be sent to the host when the next IN token is receiver.
这是Ph2 关于Valid buffer的描述。其中对IN请求作了说明。所以我觉得应该是先送数据在缓冲区,然后等待主机IN令牌。 |
|
6楼#
发布于:2002-04-28 12:51
你可以侃侃SET DMA命令中有关第7位Endpoint Index 5 Interrupt
Enable的说明,是D12的DATA SHEET,他说只要端点缓冲区被Validate, 就会产生中断. |
|
7楼#
发布于:2002-04-28 10:47
我都糊涂了.
上上上面的说buffer中没有数据不会产生IN中断, 上上面的又说产生IN中断后才向buffer写数据. .......................................... |
|
|
8楼#
发布于:2002-04-28 10:45
楼上两们说的意思是反着的也!!!!!!!
|
|
|
9楼#
发布于:2002-04-28 10:11
IN信号到来时会立即产生中断
这时你可以向BUFFER写数据,写完数据后,写发送数据命令 PHILIPS网站上提供的C51例子程序写的很详细,也很好懂 你可以参考一下 |
|
10楼#
发布于:2002-04-28 09:17
楼上这位兄台的意思就是说:
先向Buffer送一些数据,然后等到主机的IN,IN命令出现后,D12产生一个中断,通过CPU再向buffer填新的数据,是这样的吧. 那么,D12是等先前Buffer中的数据向主机送完之后产生中断呢,还是IN到来的时候立即产生中断? |
|
|
11楼#
发布于:2002-04-27 19:09
是先往端点里送数据,并使之成为有效包,当下一次IN信令到来时,
这个数据才被取走,端点里没有有效数据时,即使有IN信令到来也不会产生中断. |
|