博客
关于我
驱动程序之_1_字符设备_13_USB设备_1_基本概念
阅读量:665 次
发布时间:2019-03-16

本文共 967 字,大约阅读时间需要 3 分钟。

驾驭程序之《1》字符设备与《13》USB设备的基本概念

USB设备识别过程

在Windows系统中,每当插入USB设备,若未安装驱动程序,系统会提示有新设备并要求安装驱动程序。这表明系统能够识别到新插入的设备。这个识别过程可以通过平台总线驱动的概念来理解。系统中存在一个USB设备总线,总线又分为设备(device)和驱动程序(driver)两个部分。每当插入一个USB设备,系统会将该设备节点(device)添加到总线的设备链表上,并提示安装驱动程序(driver);安装驱动程序时,系统又将驱动程序添加到总线的驱动程序链表上,并寻找能够匹配的设备,建立联系(同样地,插入设备时也会从驱动程序链表中寻找匹配驱动程序)。当驱动程序与设备建立联系后,设备就可以正常工作(前提是驱动程序是正常的)。

USB总线驱动的作用

  • 识别USB设备
  • 搜索、安装USB设备驱动程序
  • 提供USB设备的读写接口
  • 主机与设备的通信规范

    当插入设备时,主机会要求设备发送设备信息(设备描述符),并使用0地址进行通信。主机会为设备分配地址,之后的通信则使用该地址。

    USB接口的物理特点

    不论是USB主机还是USB设备,接口上都有四个引脚:VCC、GND、D+和D-。

    • D+和D-引脚负责数据传输
    • 主机侧的D+、D-分别连接15K下拉电阻,保持低电平
    • 设备侧的D+或D-/D-引脚连接1.5K上拉电阻
    • 当插入设备时,主机侧的D+或D-引脚被拉高,主机通过检测D线湿电阻变化来确定设备的插入。

    USB设备总线架构

    USB设备是主从结构,数据传输由主机发起,设备不能主动通知主机。

    USB传输类型

  • 控制传输:数据可靠且需要实时性,例如设备识别过程。
  • 批量传输:数据可靠,但不需要实时性,例如U盘的文件读取写入。
  • 中断传输:数据可靠且需要实时性(因为主机主动查询),例如鼠标。
  • 实时传输:数据不可靠但需要实时性,例如USB摄像头。
  • 数据传输的特点

    • 传输对象:数据传送的对象是端点。
    • 0端点:可双向传输。
    • 非0端点:只支持单向传输(读或写)。
      用户在U盘读文件时,数据从设备端点传输到主机0端点;写文件时,主机将数据发送至设备对应的端点。

    USB输入输出的概念

    从主机角度来看,输入信息来自设备的指定端点(读取数据),输出信息则是主机向设备指定端点发送数据(写入数据)。

    转载地址:http://ohoqz.baihongyu.com/

    你可能感兴趣的文章
    微信JS-SDK DEMO页面和示例代码
    查看>>
    测试tensorflow是否安装成功 出现 SyntaxError: invalid syntax的错误
    查看>>
    Flask--简介
    查看>>
    Frame--Api框架
    查看>>
    Boostrap技能点整理之【网格系统】
    查看>>
    javaWeb服务详解(含源代码,测试通过,注释) ——Emp的Dao层
    查看>>
    Git简单理解与使用
    查看>>
    echarts 基本图表开发小结
    查看>>
    adb通过USB或wifi连接手机
    查看>>
    JDK9-15新特性
    查看>>
    TreeSet、TreeMap
    查看>>
    JVM内存模型
    查看>>
    可变长度参数
    查看>>
    3、条件查询
    查看>>
    cordova打包apk更改图标
    查看>>
    GitHub上传时,项目在已有文档时直接push出现错误解决方案
    查看>>
    文件系统的层次结构
    查看>>
    vue(渐进式前端框架)
    查看>>
    vscode设置eslint保存文件时自动修复eslint错误
    查看>>
    Remove Extra one 维护前缀最大最小值
    查看>>