注册 登录
LUPA开源社区 返回首页

wuting_linux的个人空间 http://www.lupaworld.com/?296848 [收藏] [复制] [分享] [RSS]

我的博客

总线分析之USB总线——usb通信

已有 1492 次阅读2009-11-30 16:26 | , , , , , ,

总线分析之USB总线——usb通信
USB总线是一种轮询方式的总线。协议规定所有的数据传输都必须由主机发起,host controller初始化所有的数据传输,各种设备紧紧围绕在主机周围。

USB设备中有一个通信的发送和接收点endpoint,主机和endpoint之间的通信是通过管道(pipe)。这样,如果要发送数据只要把数据发到正确的端点上就行了。注意,这里的端点是有方向的。从usb 主机到设备称为out 端点,从设备到主机称为in 端点。而管道,实际上只是为了让我们能够找到端点。

USB通信的基本形式:

 
       协议里规定了,所有的USB 设备必须具有端点0,它可以作为in 端点,也可以作为out 端点,USB 系统软件利用它来实现缺省的控制管道,从而控制设备。端点也是限量供应的,不是想有多少就有多少的,除了端点0,低速设备最多只能拥有2 个端点,高速设备也最多只能拥有15 个in 端点和15 个out 端点。这些端点在设备内部都有唯一的端点号,这个端点号是在设备设计时就已经指定的。

         管道的通信方式有两种:stream 和message ,message 管道要求通过的数据必须具有一定的格式,主要就是用于主机向设备请求信息的,它得让设备明白请求的是什么。stream 管道对数据没有特殊的要求。
         协议规定,message 管道必须对应两个相同号码的端点,一个用来in,一个用来out,缺省管道就是message 管道,当然,与缺省管道对应的端点0 就必须是两个具有同样端点号0 的端点。
      
         USB endpoint 有四种类型,也就分别对应了四种不同的数据传输方式,具体如下表所示:

 
传输方式
    用途      实例
 控制传输 
  用来控制对USB 设备不同部分的访问,通常用于配置设备,获取设备信息,发送命令到设备,或者获取设备的状态报告
每个USB 设备都会有一个endpoint 0 的控制端点,内核里的USB core 使用它在设备插入时进行设备的配置
 中断传输
  用来以一个固定的速率传送少量的数据 USB 键盘和USB 鼠标、USB 的触摸屏也是,传输的数据包含了坐标信息
 
 批量传输
用来传输大量的数据,确保没有数据丢失,并不保证在特定的时间内完成 
U 盘
 等时传输 用来传输大量的数据,但并不保证数据是否到达,以稳定的速率发送和接收实
时的信息,对传送延迟非常敏感

  网上QQ 视频聊天

    
     


      

 

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册
验证问答 换一个 验证码 换一个

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部