作者MaxHaru (懂得放手..才是王道)
看板Electronics
标题[问题] 关於USB Data Packet的问题.
时间Sun Jan 10 23:43:57 2016
请教版上的各位,
最新在学习有关USB2.0的东西,
但有个部份不是很清楚, 看过SPEC也没印象有提到这部份,
还请各位赐教,
就是在Data Packet中, Host/Device是如何知道对方这次总供要传几个byte的资料.
在Endpoint descriptor中, 只有提到最大data payload,
但实际资料传送时, 应该会有小於这个数字的资料传输吧,
此外, 在data packet的最後还有CRC的计算,
如果不能知道正确的的资料数, 应该没办法正确的算出CRC的值吧
甚至也有将CRC误认为data或将data误认为CRC的问题,
Ex: 在DATA0 Packet的format
-------------------------------------------------
|SYNC(8b)|PID(8b)|Data(n*8b)|CRC(16b)|EOP(3b/8b)|
-------------------------------------------------
是在packet中有information可以知道data的n是多少吗?
还是说这只能事先定义(如何完成?)呢?
还请各位帮忙小弟解惑..感谢不尽
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.163.232.60
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Electronics/M.1452440639.A.F19.html
1F:推 yudofu: setup的时候会通知要传多少size,除了最後一个payload之外 01/11 20:58
2F:→ yudofu: 都要按照endpoint的max size传好、传满,所以最後一个该有 01/11 21:00
3F:→ yudofu: 多大的size就可以计算出来了 01/11 21:01
4F:→ MaxHaru: 感谢, 但是否Endpoint0才有Setup呢? 01/12 00:14
5F:→ MaxHaru: 其他像Interrupt Endpoint,好像没有setup,又要如何得知? 01/12 00:15
6F:推 kuoll: ep0才有setup host会透过ep0询问其他ep的max packet size 01/16 16:38