USB接口中既没有握手信号,也没有时钟信号,它是怎样进行通信的呢?

我们已经知道,传统的串行口、并行口通过握手信号进行通信,这些接口通常通过握手信号来联络主机和外设。我们也已经知道,通信双方可以同步或异步两种方式进行通信,两者最大的区别是,同步通信接口中有时钟信号线。

USB接口应用很广。可是,USB接口中既没有握手信号,也没有时钟信号,它是怎样在主机与外设之间建立联系的呢?又是如何交换数据的呢?为了深入理解USB接口的通信过程,先介绍USB的硬件和软件结构。

从物理结构上,USB系统是一个星形结构。USB系统包含三类硬件设备: USB主机(USB HOST)、 USB设备(USB DEVICE)和USB集线器(USB HUB)。USB总线上的物理连接是一个分层的星形拓扑,处于每个星形拓扑中央的是HUB集线器,在主机与HUB之间,HUB与HUB之间,HUB与设备之间都是点对点的连接。

图1 USB拓扑结构

USB HOST对USB系统进行管理、每毫秒产生一帧数据、发送配置请求对USB设备进行配置、管理和恢复总线上的错误。 USB HUB用于设备扩展连接,所有USB DEVICE都连接在USB HUB的端口上。USB DEVICE接收USB总线上的所有数据包,通过数据包的地址域来判断是不是发给自己的数据包:若地址不符,则简单地丢弃该数据包;若地址相符,则通过响应USB HOST的数据包与USB HOST进行数据传输。

从逻辑结构上看,每个USB逻辑设备都直接与USB HOST进行数据传输。与传统接口以硬件手段实现握手的方法不同,USB接口使用“软握手”方法。

USB 的软握手机制是透过三个层次的驱动程序实现的,在这中间起到关键作用的是设备驱动程序,该程序在主机与设备之间建立起至少一个管道。管道有两种类型:流管道和消息管道。其中有一个最重要的消息管道是“缺省控制管道”,这个管道在设备一加电的时候就存在了,它提供设备的配置和状态等信息。主机与设备之间的联络就是通过消息管道实现的。

图2 USB软件结构

协议栈驱动程序的主要作用是将设备与相应的设备驱动程序连接起来。因为USB支持的设备很多,而每个具体的设备都有自己对应的设备驱动程序。对于某一具体设备来说,使用哪个驱动来管理,就要由协议栈驱动程序通过读取设备描述符进行挑选。选择好驱动程序之后,协议栈驱动程序还要给USB设备分配地址。

管道建立起来之后,数据的传输控制则由USB接口驱动程序负责完成了。在这里,主机占有绝对主导权,设备只能是“听命令行事”。设备发生事件时通过消息管道报告给主机,主机伺机向设备发送命令,开通流管道,发送或接收数据包。主机与设备之间以数据数据包的形式进行传送,显然这与网络上数据传输的方式相同,是一种异步数据传输模式。

usb接口和计算机通信,USB接口是如何进行通信的?相关推荐

  1. 计算机与外部设备通讯的接口,总线接口与计算机通信(四)USB外部总线(初级认识)...

    USB简介 ? USB是英文Universal?Serial?BUS(通用串行总线)的缩写,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯,是应用在PC领域的接口技术.USB接口支持设备的即插 ...

  2. Linux那些事儿 之 戏说USB(13)接口是设备的接口(二)

    前面struct usb_interface里表示接口设置的struct usb_host_interface就被有意无意的飘过了,咱们在这里看看它的真面目,同样在include/linux/usb. ...

  3. Linux那些事儿 之 戏说USB(12)接口是设备的接口(一)

    前面的前面已经说了,接口是设备的接口.设备可以有多个接口,每个接口代表一个功能,每个接口对应着一个驱动.Linux设备模型的device落实在USB子系统,成了两个结构,一个是struct usb_d ...

  4. usb转rj45_毕亚兹ZH5网卡转接口评测:3HUB接口+1网口,好用还便宜

    现在无论是学习还是工作,身边常备一款超薄本还是非常有必要的.而使用超薄本的时候总会让我们感觉到有些尴尬的地方,那就是因为它过于注重追求便携的体积,导致没有网卡接口甚至是HUB接口.笔者我使用的小米笔记 ...

  5. android外接usb摄像头demo_手机USB接口有哪些功能 手机USB接口功能介绍【详解】

    手机身上的USB接口主要的任务就是充电,连接PC传输数据,你还能想到其他的功能吗?没错,它还能连接USB小风扇.小台灯等外设.但是,你以为所有手机在实现这些功能时的体验和效果都是一样的吗? 充电速度和 ...

  6. USB 3.1 与 Type-C 接口有什么关系呢

    USB 接口很混乱,大了说有 2.0.3.0,还有现在的 USB 3.1,小了说分支更多.在行业内,USB 2.0 接口为黑色,USB3.0 接口被做成蓝色. USB3.1 Type-C 至于 USB ...

  7. 3D打印机的USB接口和SD卡接口防静电设计

    3D打印机的平民化带来了一场应用革命,越来越多的教学,模型,设计,广告场合应用. 但由于众多打印机不像普通打印机的3D打印机的USB接口和TF卡接口连线,3D打印机经常需要插拔USB数据线和SD卡,由 ...

  8. ps2口键盘改usb计算机设置,轻松把PS2键盘、鼠标接口改造成USB接口

    马上注册,获取阅读精华内容及下载权限 您需要 登录 才可以下载或查看,没有帐号?注册 x 轻松把PS/2键盘.鼠标接口改造成USB接口 首先谈谈为什么要抛弃PS/2,很简单就是因为USB端口绝对的方便 ...

  9. 多功能时钟电路的设计框图_详解通用串行总线USB,工作原理、接口电路设计

    USB 的英文全称为 Universal Serial Bus,中文含义是通用串行总线,它是一种快速的,双向的,同步传输的廉价的并可以进行热拔插的串行接口.USB 接口使用方便,它可以连接多个不同的设 ...

  10. 秒懂所有USB接口类型,USB接口大全

    请问,有数据线吗? 话说,小编的座位在办公区第一排的位置,对面就是公司最豪华.使用率最高的会议室.高到什么程度呢?就是预定会议室就像抢购火车票一样--提前两天开放预订,晚半分钟都订不到的那种~ 因此, ...

最新文章

  1. oracle 插入 基准测试,oracle proc 插入操作性能优化实践
  2. 在Windows95/98中实现苹果窗口界面
  3. 电脑一开机出rebootand_电脑一开机就有软件弹窗广告弹出怎么办?两种方法来解决...
  4. 从尾到头打印链表---剑指Offer
  5. python legend位置_关于matplotlib-legend 位置属性 loc 使用说明
  6. 查看grafana版本_使用 Prometheus 与 Grafana 为 Kubernetes 集群建立监控与警报机制
  7. 【重难点】【JVM 01】OOM 出现的原因、方法区、类加载机制、JVM 中的对象
  8. prototype的相关注意点
  9. length()函数_掌握Kotlin中的标准库函数: run、with、let、also和apply(转)
  10. Ubuntu18.04操作系统sudo apt-get update报错
  11. 浅析tomcat原理
  12. 【案例4-8】模拟物流快递系统
  13. ERP系统BOM详细解析(一)
  14. Android--图片轮播(banner)
  15. uniapp使用IPA苹果支付
  16. certificate expired
  17. 《怎样打开小米手机(已升级至MIUI8)的开发者选项》
  18. 乐理知识(和弦相关)
  19. java word加粗_word中选中一行加粗 怎么全文都被加粗了 怎么解决
  20. 扫一扫vin码就能识别车架号的OCR技术

热门文章

  1. xlsx如何查找替换_Excel中如何使用通配符查找和替换
  2. 根据条件对Excel表中数据进行计数
  3. 用Objective-C的foundation框架解决表达式求值问题
  4. 简述计算机键盘上shift键的作用,Shift键的作用
  5. jh锂电保护电路_锂电池保护电路工作原理
  6. 计算机中显示器的分类,显示器怎么分类
  7. (转载)基于联盟链区块链的九个方面对比
  8. 华为「天才少年」计划招募的博士们,迎来首秀!
  9. 开发一款Android App,从零开始详细讲解
  10. ARM与裸机开发教程