转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/25039979

写在前面的话:这几天一直在学习USB驱动,中间遇到挫折困难在此不再详诉.....写着几篇文章算是对之前几天来所学知识的一个总结。本人深知你仅仅通过这几篇文章是不可能完全掌握USB驱动的,但只要能给大家带来一点思路,或者能对大家有所帮助,文章的目的也就达到了。

一.整体框架

-------------------------------------------------------------
          USB设备驱动程序      // 知道数据含义
内核 -------------------------------------------------------
          USB总线驱动程序      // 1. 识别, 2. 找到匹配的设备驱动, 3. 提供USB读写函数 (它不知道数据含义)
-------------------------------------------------------------
           USB主机控制器
           UHCI OHCI EHCI
硬件 ------------------------------------------------------
              USB设备

二.硬件基础

USB的硬件十分简单,一共就四根线,一共电源一共地,还有两根数据线。这区区四根线看似简单,作用不可小看啊。

识别过程:正如上图看到的, PC的USB口内部,D-和D+接有15K的下拉电阻,未接USB设备时为低。USB设备的USB口内部,D-或D+接有1.5K的上拉电阻;它一接入PC,电源通过两根电阻接地,然后分压,就会把PC USB口的D-或D+拉高,从硬件的角度通知PC有新设备接入。

三.软件概念

1.USB设备概观

有图可看出:

• 设备通常有一个或多个配置.
• 配置常常有一个或多个接口
• 接口常常有一个或多个设置.
• 接口有零或多个端点.

2.端点

端点是USB通信的最基本的形式,USB端点只能往一个方向传输数据。输出端点(主机向设备),输入端点(设备向主机)都是相对于主机来说的。

端点的四种类型:

控制端点:控制端点是用来控制对USB设备不同部分的访问,通常用于配制设备、获取设备信息、发送命令到设备,或者获取设备的状态报告。数据可靠,并且有时间保证。

中断端点:每当USB宿主要求设备传输数据是,中断端点就以一个固定的速率来传输少量数据。注意这里说的中断,并不是我们之前说的硬件上的中断。因为设备在没有主控制器要求的情况下是不会发送数据的,所以是USB宿主负责每一个USB设备是否有数据需要发送。这些端点是USB鼠标和键盘所使用的主要传输方式。

批量端点:批量端点传输大批量的数据。USB协议不保证这些传输始终可以在特定的时间内完成。U盘等设备多用次传输方式

等时端点:等时端点也可以传送大批量的数据,但是数据是否到达没有保证。USB话筒,USB视频都使用这类端点。

3.接口

USB接口只处理一种USB逻辑连接。举个例子:现在的USB摄像头基本都带麦克风功能。要实现它的驱动,则需要两个驱动,一个USB摄像头驱动,一个麦克风驱动。所以需要两个接口。因为一个USB接口代表了一种基本的功能。所以说,并不是一个硬件就只对应着一个驱动,是有一对多的情况的。

4.配置

一个 USB 设备可有多个配置并且可能在它们之间转换,以便改变设备的状态. 例如, 一些允许固件被下载到它们的设备包含多个配置来实现这个,一个配置只能在一个时间点上被使能。

参考:韦东山视频第二期

LDD3

大话USB驱动之基础概念相关推荐

  1. STM32驱动开发(二)--USB Device RNDIS虚拟网卡(USB2.0 基础概念讲解)

    STM32驱动开发(二)–USB Device RNDIS虚拟网卡(USB2.0基础概念讲解) 一.简介   本文基于stm32 Rndis实例,github开源, 使用STM32F407单板.结合协 ...

  2. Exynos4412 IIC总线驱动开发(一)—— IIC 基础概念及驱动架构分析

    关于Exynos4412 IIC 裸机开发请看 :Exynos4412 裸机开发 -- IIC总线 ,下面回顾下 IIC 基础概念 一.IIC 基础概念 IIC(Inter-Integrated Ci ...

  3. Exynos4412 IIC总线驱动开发(一)—— IIC 基础概念及驱动架构分析 (iic驱动框架,i2c驱动框架)...

    转载于 : http://blog.csdn.net/zqixiao_09/article/details/50917655 关于Exynos4412 IIC 裸机开发请看 :Exynos4412 裸 ...

  4. 【Linux开发】linux设备驱动归纳总结(一):内核的相关基础概念

    linux设备驱动归纳总结(一):内核的相关基础概念 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  5. linux驱动内核哪个文件夹,linux设备驱动归纳总结(一):内核的相关基础概念...

    linux设备驱动归纳总结(一):内核的相关基础概念 1. 内核与 linux 设备驱动的作用与关系 内核:用于管理软硬件资源,并提供运行环境.如分配 4G 虚拟空间等. linux 设备驱动:是连接 ...

  6. 【Linux开发】linux设备驱动归纳总结(二):模块的相关基础概念

    linux设备驱动归纳总结(二):模块的相关基础概念 系统平台:Ubuntu 10.04 开发平台:S3C2440开发板 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  7. linux设备驱动归纳总结(一)内核的相关基础概念【转】

    本文转载自:http://blog.chinaunix.net/uid-25014876-id-59413.html linux设备驱动归纳总结(一):内核的相关基础概念 xxxxxxxxxxxxxx ...

  8. USB基础---Linux USB驱动层次

    在Linux系统中,提供主机侧和设备侧视角的USB驱动框架,从主机侧看到的USB主机控制器和设备驱动,以及从设备侧看到的设备控制器和Gadget驱动. Linux系统中USB驱动的整体视图 图1 (1 ...

  9. 【正点原子Linux连载】第六十七章 Linux USB驱动实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  10. I2C的基础概念和框架

    一.IIC 基础概念 IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备.IIC总线产生于在80年代,最初为音频 ...

最新文章

  1. 库存事务处理现有量检查
  2. 用yacc编写的算术运算计算器_详细的mac计算器操作技巧+快捷键分享
  3. push_heap算法 (即满足max-heap条件,最大值在根节点)
  4. 邮件服务器 文件服务器,搭建邮件、终端和文件服务器应用方案_服务器_服务器x86服务器-中关村在线...
  5. jdbc获取mysql表数据类型_jdbc操作数据库并自动获取字段类型
  6. Eclipse启动时布局不合理调整
  7. 带网管工业交换机跟不带网管交换机的差别
  8. Python3-笔记-B-003-数据结构-元组tuple( )
  9. NVMe闪存存储系统设计挑战
  10. 线性表之简介及顺序表
  11. NB-IoT(7)---开发环境搭建及模组驱动开发
  12. 软件比较 - Sniffer、Omnipeek、科来网络分析系统过滤器比较之位过滤 在捕获数据包时,有时候需要对一个字节中的某一个位进行精确匹配,这时,我们就需要用到位过滤。位过滤相对于地址、端口、协
  13. 六类网线钳能压五类水晶头吗_多功能网线钳的使用方法?“普通网线钳”能压“七类水晶头”吗?...
  14. linux的grub是什么意思,grub是什么意思
  15. A DIRT-T APPROACH TO UNSUPERVISED DOMAIN ADAPTATION
  16. ElasticSearch实战系列二: ElasticSearch的DSL语句使用教程---图文详解
  17. alios是安卓吗_鸿蒙OS系统被质疑,谷歌也有新布局!阿里云OS事件会再现吗?
  18. 【问题思考总结 线代】为什么非齐次方程的解是齐次通解加上一个非齐次特解?【几何直观+代数证明】
  19. 制作京东快报页面html,京东快报.html
  20. 祖国生日快乐,个性化国庆头像合成

热门文章

  1. esp8266使用安信可IDE编译、烧录
  2. 你有在为大学时选的专业后悔吗?
  3. 科学的软件测试培训时间是多久?
  4. OpenCV特征检测与匹配方法概览
  5. 计算机导论知识梳理,《计算机导论》知识点
  6. pert图java_甘特图和PERT图
  7. EasyCamera摄像机配置
  8. 空间解析几何中那些图形和方程(大彻大悟版)
  9. 系统修复专家—SREng
  10. 计算机管理usb出现问号,在Windows操作系统的设备管理器中的多个设备名上有问号...