阅读:1933回复:8
CY7C68013的SLAVE FIFO模式疑问
我的问题是:SLAVE FIFO模式使用AUTO模式时,主机端会不会自动进行数据流量控制呢?
简单地讲:我用PC机发送了4M字节,外部的主机在对FIFO进行读取时,每读完1024(缓冲大小)字节后,是需要等待PC机再次写入呢,还是由硬件(SIE)自动帮你完成,之间没有任何停顿呢? 我的理解是这样的:因为使用的是双缓冲机制,所以满了512字节以后,FIFO半满,由外部主机读取512字节,同时PC机向另一个FIFO写,之间应该没有任何停顿。 如果外部主机没有及时读取FIFO中的数据,那么SIE就会以NAK包响应USB总线,从而使数据不能写入FIFO,一直等到FIFO为空。 我的理解可能有些问题,各位有不同见解的,可以发贴讨论一下嘛,呵呵! |
|
沙发#
发布于:2004-07-19 22:48
我认为如果EP2的话,fifo设成BULK方式的话,是512,又是双缓冲的话就是512*2,如果是4缓冲的话,就是512*4了,如果fifo设成ISO方式的话,是1024,又是双缓冲的话就是1024*2,如果是4缓冲的话,就是1024*4了; 我觉得这里是不是有点混淆啊,BULK方式每包最大为512字节,ISO方式每包最大为1024字节(均是高速下),至于端点FIFO的大小配置应该可以自己根据需要配置的。但必须保证各种传输模式下最大包字节数的定义。 |
|
板凳#
发布于:2003-09-17 21:32
楼上对于bulk的说法我可以肯定是正确的
对于iso的说法因为偶没有仔细研究过,不敢说什么 :D |
|
地板#
发布于:2003-09-17 18:07
我认为如果EP2的话,fifo设成BULK方式的话,是512,又是双缓冲的话就是512*2,如果是4缓冲的话,就是512*4了,如果fifo设成ISO方式的话,是1024,又是双缓冲的话就是1024*2,如果是4缓冲的话,就是1024*4了;
如果EP6的话,fifo设成BULK方式的话,是512,又是双缓冲的话就是512*2,如果是4缓冲的话,就是512*4了,如果fifo设成ISO方式的话,是1024,又是双缓冲的话就是1024*2,但不能设成3x1024或是 4x1024,不知道我说的对不? |
|
地下室#
发布于:2003-09-15 09:30
[quote]我记得好象如果EP2,6的话,他的fifo本身是1024,又是双缓冲的话就是1024*2,如果是4缓冲的话,就是1024*4了,不知道是不是。 不是的,2和6是可以设置的,但是其fifo本身也是以512为单位的,也就是说4缓冲是2k而不是4k。 [/quote] 还是REN兄说的是! :D |
|
5楼#
发布于:2003-09-15 09:27
我记得好象如果EP2,6的话,他的fifo本身是1024,又是双缓冲的话就是1024*2,如果是4缓冲的话,就是1024*4了,不知道是不是。 不是的,2和6是可以设置的,但是其fifo本身也是以512为单位的,也就是说4缓冲是2k而不是4k。 |
|
6楼#
发布于:2003-09-14 21:14
我记得好象如果EP2,6的话,他的fifo本身是1024,又是双缓冲的话就是1024*2,如果是4缓冲的话,就是1024*4了,不知道是不是。
|
|
7楼#
发布于:2003-08-22 15:04
你的理解比较正确!
可你说的是double buffer,如果是三倍或是四倍的buffer,那又会怎么样呢? |
|
8楼#
发布于:2003-08-22 13:42
你的理解是对的。
|
|