darkrainbow
驱动牛犊
驱动牛犊
  • 注册日期2007-10-08
  • 最后登录2008-02-22
  • 粉丝0
  • 关注0
  • 积分90分
  • 威望10点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
阅读:1111回复:1

初学者关于USB的几个问题

楼主#
更多 发布于:2007-10-09 12:01
各位大虾你们好!
  小弟初学USB编程,有几个问题一直搞不明白,特来此向各位大虾请教:
1. USB里有2条线,一条是D+,一条是D-,D+是full-speed,D-是low-speed。请问这2条线是否只能用于对应的功能?在一条线上的同一个时间片(1ms里)是否只能有一个方向的传输?
2. USB协议里指出每1ms为一个时间片,时间片由SOF开始,EOF结束,一个时间片里可以有多个事务。在一个事务里又分为几个包传输,请问一个事务的握手包返回成功了下一个事务才能发送?握手包是由哪个发送的,硬件还是软件?
3. USB里有几种传输,都需要不同的带宽,请问这些带宽的设置是在哪里设置的?驱动还是用户写程序?还有时间片又是在哪里指定的?
4. 数据包传输的过程中会改变触发位,请问这个触发位是在哪里?怎么改变?

以上几个问题是我在学习USB的过程中所遇到的,百思不得其解,请大家帮帮忙,谢谢!!
ylinux
驱动牛犊
驱动牛犊
  • 注册日期2007-10-09
  • 最后登录2009-02-25
  • 粉丝0
  • 关注0
  • 积分90分
  • 威望56点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-10-12 17:22
1.     D+,D-两条线共同实现差分信号传输,间单的说就是同一时间两条线的电平信号是相反的.这样做可以更好抗物理干扰.
        "D+是full-speed,D-是low-speed"错误的,   只是设备的D+有接上拉电阻,插入PC后被认为是全速设备,    设备的D-有接上拉电阻,插入PC后被认为是低速设备.
        在1MS的时间片里因为要完成很多个传输事务,传输方向回发生很多次改变.

2.   握手包有USB主机控制器驱动或IC上的固件控制发送,对于USB设备驱动是透明的.
3.   每种传输最高传输速率USB协议有规定,但实际传输速度跟应用程序,设备驱动和IC固件设计有关.  
       时间片,各设备传输速率控制,由主机控制器驱动控制,对应用程序,设备驱动是透明的.

4.  你所说的"改变触发位"是不是Data Toggle,如果是对应用程序,设备驱动不用管,对于IC上的固件来说就要控制.
游客

返回顶部