zhangzhuoliang
驱动牛犊
驱动牛犊
  • 注册日期2003-06-23
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望42点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
阅读:1135回复:3

几个问题,大家帮帮忙!讨论一下

楼主#
更多 发布于:2004-03-01 11:24
1:请问我怎么才能知道我的usb设备的传输速度那(记得在论坛上看到过,但是没找到)
2:关于传输类型有interrupt(简称int)型和bulk型!我认为这些类型只是usb底层应答传输请求的几种传输数据的方式,与我们的请求方式无关,我们也无法参与控制,只能在描述符中指定。不知我的理解是不是正确!如果这样的话,那么即使我在中断中传输数据但端点采用的bulk型,也是bulk传输类型而不是中断 传输吧!但是我看到论坛上好多人都认为是中断传输!!!!也就是说我们指定好了传输类型后,就无法改变了,无论我们在固件程序中怎么传数!传输类型只是底层的事!我这样说对不对!!

                                        

[编辑 -  3/1/04 by  zhangzhuoliang]
testzyj
驱动牛犊
驱动牛犊
  • 注册日期2003-10-03
  • 最后登录2009-05-21
  • 粉丝0
  • 关注0
  • 积分136分
  • 威望17点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-03-01 13:42
我是这样测的:
在USB板上不停地向端口写数据,应用程序不停地读。这时传速最快。
然后启动BusHound,在Devices中在我的USB设备前打勾,切换到Capture,这时可以看应用程序读的数据,再切换到Devices,这时在打勾的设备后就显示出速度。
或者在应用程序中将读到的数据写入文件。根据文件大小除以读数时间也可以。
两种方法我都试过,测量出的速度几乎相等。

[编辑 -  3/1/04 by  testzyj]
zhangzhuoliang
驱动牛犊
驱动牛犊
  • 注册日期2003-06-23
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望42点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-03-02 14:01
谢谢楼上的那位!第二个问题谁知道吗??先谢了!!!
zmwk
驱动中牛
驱动中牛
  • 注册日期2001-05-15
  • 最后登录2009-04-05
  • 粉丝0
  • 关注0
  • 积分59分
  • 威望51点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-03-06 00:50
关于第二个问题。
USB的中断传输 与 MPU和USB芯片之间的接口方式(中断或查询完全是两回事)。无论USB采用何种传输方式,MPU和USB芯片之间的接口方式都可以采用中断方式。
USB的中断传输是一种软中断。
USB1.1协议为非对称协议。只能由Host主导,作为通信的起点。Device是不允许主动发送的。因为它没有采用Anticolision机制。所以它的IN中断是靠查询(由总线驱动完成)Device实现的。而且它的分辨率是毫秒级的,误差也是毫秒级的。这对于PC而言已经是差得离谱了,还称之为中断已经非常牵强了。另一方面,Host与系统是采用中断方式传输数据的,同MPU那边一个道理,也与USB的中断方式无关。你可以注意到USB的中断方式在描述符中要指定中断周期的,这就是要给总线驱动使用的。让它以该周期进行查询。该传输类型主要用于HID.
如果说传输类型是完全底层的事,不完整,更多的时候,它是与你的产品功能要求相关的。在此之后,才是底层的事情。
A strong man can save himself. A great man can save another.
游客

返回顶部