阅读:2285回复:6
如何由device向host发送数据
各位好,本人接触USB不久,有个问题请教。
预在嵌入式设备中用USB设备模拟网络设备,Linux源代码中包含 这部分内容,我正在移植。在设备端采用轮询访问相应各种中断, 没有得到EPN IN中断,其余的EP0、SETUP和EPN OUT等中断都可以 得到。现可以成功枚举,可以由主机端向USB设备发送数据,但不 知道USB设备该如何通过BULK IN端点向主机发送数据,请指点一 二,多谢。 此外USB事务由HOST端发起的,该怎么理解呢?比如我从设备端 ping主机时,看起来好像是设备端最先开始动作的。 |
|
沙发#
发布于:2004-10-22 23:33
USB HOST永远作为主动者,对于LOW SPEEN和FULL SPEED来说,它是1MS产生一次事务,根据当前的带宽,它会发出向哪个具体的DEVICE的请求,DEVICE得到请求后再作相应的反应,你说的DEVICE 主动PING HOST是不对,其实你有数据要发送,只须稍作等待,就可得到HOST的请求。
不知道这样的答复你是否满意? |
|
|
板凳#
发布于:2004-10-23 10:55
还有一点不明天的地方,Host每ms会发出各种请求吗,包括BULK IN
和BULK OUT,还是只有中断类型的? |
|
地板#
发布于:2004-10-25 17:35
应该是对所有的设备端点都会定时的发送请求,只不过是不同类型的端点发送不同的请求。
|
|
地下室#
发布于:2004-10-27 15:23
USB HOST永远作为主动者,对于LOW SPEEN和FULL SPEED来说,它是1MS产生一次事务,根据当前的带宽,它会发出向哪个具体的DEVICE的请求,DEVICE得到请求后再作相应的反应,你说的DEVICE 主动PING HOST是不对,其实你有数据要发送,只须稍作等待,就可得到HOST的请求。
不知道这样的答复你是否满意? 嘎嘎 满意 |
|
5楼#
发布于:2004-10-28 14:27
当处于BULK in的时候,usb是如何获取要读数据的长度??谢谢
|
|
6楼#
发布于:2004-11-03 11:44
当处于BULK in的时候,usb是如何获取要读数据的长度??谢谢 我设的buffer是64字节,如果发的数据不是64的整数倍,前面的都是 大小64的包,最后发零头,这样主机就知道此次事务结束,如果恰好 是64的整数倍,最后再发送一个0字节的包(就是FIFO中不写入任何 数据,但使能FIFO)。 |
|