关于USB微帧与数据包包长与端点缓冲区的理解
2012-08-19 00:05
225 查看
搞了这么久USB了,还是不知道DATA0,DATA1的最大包长,以及端点描述符中的最大包长与68013的端点缓冲区有什么关系,经过二小时的奋斗得出如下结论:
1.DATA0或DATA1实际上就是一个端点描述符中的最大包长。换句话说,68013发一次数据包就是一个DATA0或 DATA1
2.微帧是用来作为传输时间基准的。在每个微帧之间可以传一到多次DATA0/DATA1,但是根据DATA0/DATA1(也就是68013一次发送的数据的长度)的大小,每个微帧之间可以传送DATA数据包的个数也不同,DATA0/DATA1越大,每个微帧之间能传输的DATA的数据包的个数越少。
3.在USB2.0之中限定了描述符中的最大包长,是因为在一个微帧内由于物理条件的限制(物理带宽、bit率的原因),只能传输那么多。
4.固件使用的USB协议其实就是用来与上位机驱动进行通信的一种语言。换句话说,里面的描述符中的内容都是给上位机驱动看的。其中端点中的最大包长也就是指的是,硬件的端点缓冲区。如果端点缓冲区比描述符中的最大包长小(在USB2.0协议最大包长范围之内),那么USB硬件接收到的数据在一定情况下将会被截断,如果端点缓冲区比描述符中的最大包长大(在USB2.0协议最大包长范围之内),端点缓冲将会被浪费。
转自:/article/2399102.html
1.DATA0或DATA1实际上就是一个端点描述符中的最大包长。换句话说,68013发一次数据包就是一个DATA0或 DATA1
2.微帧是用来作为传输时间基准的。在每个微帧之间可以传一到多次DATA0/DATA1,但是根据DATA0/DATA1(也就是68013一次发送的数据的长度)的大小,每个微帧之间可以传送DATA数据包的个数也不同,DATA0/DATA1越大,每个微帧之间能传输的DATA的数据包的个数越少。
3.在USB2.0之中限定了描述符中的最大包长,是因为在一个微帧内由于物理条件的限制(物理带宽、bit率的原因),只能传输那么多。
4.固件使用的USB协议其实就是用来与上位机驱动进行通信的一种语言。换句话说,里面的描述符中的内容都是给上位机驱动看的。其中端点中的最大包长也就是指的是,硬件的端点缓冲区。如果端点缓冲区比描述符中的最大包长小(在USB2.0协议最大包长范围之内),那么USB硬件接收到的数据在一定情况下将会被截断,如果端点缓冲区比描述符中的最大包长大(在USB2.0协议最大包长范围之内),端点缓冲将会被浪费。
转自:/article/2399102.html
相关文章推荐
- 关于USB微帧与数据包包长与端点缓冲区的理解
- 关于USB微帧与数据包包长与端点缓冲区的理解
- 关于USB微帧与数据包包长与端点缓冲区的理解
- 关于USB微帧与数据包包长与端点缓冲区的理解
- 关于BMP图片的一点理解,读取图象数据到数组
- 关于流和缓冲区的理解以及一般标准输入问题的解决方法小结
- 关于DSP哈佛结构的数据空间和程序空间及CMD文件的理解
- 关于oracle数据读一致性的理解
- 深入理解关于Lua与C数据通信的栈
- 关于物料主数据中MRP相关配置字段理解
- 父进程和子进程关于数据和文件描述符的继承的理解
- 关于流和缓冲区的理解
- 关于数据表多对多关联的理解
- 关于mysql中删除重复记录,并保留重复数据中的一条数据的SQL语句理解
- 关于HashSet是如何存取不重复的数据的理解
- 关于流和缓冲区的理解以及一般标准输入问题的解决方法小结.
- 关于内存和指针操作,数据类型转换本质的理解
- 关于ZIGBEE端点的一点理解
- java:关于short s1=1;s1=s1+1;short s1=1;s1+=1;short s3=s1+s2;中存在的简单数据类型转换问题的理解
- 关于double类型数据保留有效位的一些理解