阅读:1382回复:5
USB传输的一个问题
请问各位大虾:
假设某个端点的最大传输是8个字节。如果传输到最后时只剩下3个字节的数据,再加上2个字节的CRC校验码,那么就只有5个字节可以传输,问USB设备怎样知道最后只有3个字节的数据,即USB设备不会把后面的2个字节的CRC码当作数据接收? |
|
沙发#
发布于:2002-10-15 22:01
应该不会的,除非CRC这两字节是你自已加上的.
|
|
|
板凳#
发布于:2002-10-16 09:01
在传输格式中,不是有个字段是Length吗。长度到了,就结束了。
|
|
地板#
发布于:2002-10-16 09:54
crc 段是由硬件自动加上的吧!
|
|
地下室#
发布于:2002-10-16 10:05
是呀硬件加的,所以不计入长度,可以不管的
|
|
|
5楼#
发布于:2002-10-16 11:25
不同格式的数据包情况是不样的,不同的设备控制器的处理也是不一样的,应该具体分析。有一点是肯定的:CRC字节设备是一定要接收的,而且还要根据它来判断接收到的数据对不对,但是否把CRC内容放到端点FIFO中那就不一定了。比如主机给设备发的REQUEST包,它的内容是8字节,再加上两个字节的CRC,共十个字节,设备实际收到的是十个字节(从接收计数器可以判断),但是放到FIFO中的只有前八个字节。再比如在USB键盘的LED灯数据包中,1字节内容加2字节的CRC,设备共收到3字节,有些设备控制器把这三个字节都放到端点FIFO中,有些设备却可能只放第一个字节。
|
|