阅读:1018回复:2
关于gofayao的帖子“写了一点自己学习USB的感受,欢迎大侠指正”,请教几个问题
gofayao兄在帖子里说到:
首先,要明白两个观点。第一,USB总线上所有的事务(数据流传输)都是由USB Host主动发起,而USB设备永远永远都是只是被动地接收然后处理USB Host发来的各种各样的命令(要求)。。。 这是gofayao兄的帖子地址:http://bbs.driverdevelop.com/htm_data/9/0704/100641.html -------------------------------------------------------------------------------------------------------- 我有点不明白, 比如,如果用户有如下操作:从U盘往PC上拷贝文件。 这个时候怎么处理? 难道是这样? host每间隔一段时间就发送命令,询问USB设备,你是否有东西要传送? 这时,USB设备便回应有数据要传送。 USB Host收到回应后,便发命令告诉USB设备,说,我做好准备,你可以传了 此时,数据传送便开始了 或者是这样: 当USB设备有数据要传送给HOST时,USB设备会直接往HOS的fifo里面写入需要传送的数据,大小当然是fifo缓冲的大小,这个动作将会产生一个中断告诉HOST,USB设备有数据要传送了,HOST便去fifo把已经传送的数据取走,并清除中断,然后开始发命令询问USB设备,还有没有数据要传?有就继续,没有就结束。 请各位指点 |
|
|
沙发#
发布于:2007-04-13 20:40
Re
从U盘往PC上拷贝文件时,你是不是得在PC上执行一个复制,粘贴的动作啊??你只有执行这个动作之后,U盘才知道你PC要拷数据啊,不然,U盘肯定不会无缘无故就把数据往PC上扔吧,要是这样不就乱套了... 那既然你在PC上有复制粘贴这样的动作,那么这个动作就可以实际转化为USB主机向U盘下的读命令,这样U盘才会把数据发给主机.... 那不就是主机是主动,U盘是被动嘛..... |
|
|
板凳#
发布于:2007-04-14 09:38
呵呵
感谢兄弟 明白了 |
|
|