通用串行总线(USB)是一个在主机和许多外设之间的连接. 最初它被创建来替代许多慢速和不同的总线- 并口, 串口, 和键盘连接--有一个单个的所有设备都可以连接的总线类型.[45] USB 已经成长超出了这些 慢速连接并且现在支持几乎每种可以连接到 PC 的设备. USB 规范的最新版本增加了高速连接, 理论上 到 480 MBps.

拓扑结构上, 一个 USB 子系统没有如同一个总线一样分布; 它更多是一个树, 有几个点对点连接. 这 些连接是 4-线 电缆(地, 电源, 和 2 个信号线)来连接一个设备和一个集线器, 如同双绞线以太网. USB 主控制器负责询问每个 USB 设备是否它有数据发送. 由于这个拓扑关系, 一个 USB 设备在没有首 先被主控制器询问时从不启动发送数据. 这个配置允许一个非常容易即插即用的系统, 这样各种设备可 自动被主机配置.

在技术层面这个总线是非常简单的, 因为它是一个单主实现, 其中主机查询各种外设. 除了这个固有的 限制, 这个总线有一些有趣的特性, 例如一个设备能够请求一个固定的数据传送带宽, 为了可靠地支持 视频和音频 I/O. 另一个重要的特性是它只作为设备和主机之间的一个通讯通道, 对它传递的数据没有 特殊的含义和结构要求.

实际上, 有一些结构, 但是它大部分精简为适应一个预先定义的类别: 例如, 一个键盘不会分配带宽, 而一些视频摄像头会.

USB 协议规范定义了一套标准, 任何特定类型的设备都可以遵循. 如果一个设备遵循这个标准, 那么给 那个设备的一个特殊的驱动就不必了. 这些不同的类型称为类, 并且包含如同存储设备, 键盘, 鼠标, 游戏杆, 网络设备, 和猫. 其他不适合这些类的设备需要一个特殊的供应商-特定的驱动给这些特别的 设备. 视频设备和 USB-到-串口 设备是一个好的例子, 这里没有定义好的标准, 并且需要一个驱动给 每个来自不同制造商的不同的设备.

这些特性, 连同固有的设计上的热插拔能力, 使 USB 称为一个方便的, 低成本的机制来连接(和去连接) 多个设备到计算机, 而不必关机, 开盒子, 并且旋开螺钉和电线.

Linux 内核支持 2 类 USB 驱动: 位于主机系统的驱动和位于设备的驱动. 给主机系统的 USB 驱动控 制插入其中的 USB 设备, 从主机的观点看(一个通常的 USB 主机是一个桌面计算机). 在设备中的 USB 驱动, 控制单个设备如何作为一个 USB 设备看待主机系统. 由于术语" USB 设备驱动"是非常迷惑, USB 开发者已经创建了术语" USB 器件驱动"来描述控制一个连接到计算机的 USB 设备的驱动(记住 Linux 也运行在这些小的嵌入式的设备中). 本章详述了运行在一台桌面计算机上的 USB 系统如何工作 的. USB 器件驱动此时超出了本书的范围.

如同图 USB 驱动概览所示, USB 驱动位于不同的内核子系统(块, 网络, 字符, 等等)和硬件控制器之 间. USB 核心提供了一个接口给 USB 驱动用来存取和控制 USB 硬件, 而不必担心出现在系统中的不同 的 USB 硬件控制器.

linux usb 键盘 内核配置文件,Linux 内核USB 驱动相关推荐

  1. linux系统 键盘不响应 远程登录,USB键盘(HID)在linux中没有响应但在grub中没有响应...

    我想要使​​用的外部USB键盘被识别为USB HID设备,但在Linux启动时它不起作用.它在插入Windows桌面时确实有效,并且在grub中可以正常工作,但在系统启动时却无法工作. 设备在USB端 ...

  2. qt linux软键盘拼音,嵌入式linux上Qt键盘输入实现拼音输入法

    作者:刘洪涛, 在嵌入式平台上运行QTE时,使用的键盘通常不是标准键盘,而是嵌入式设备外扩的普通按键.那么实现QTE键盘输入的方法大体上可以分为两类: (1)编写一个普通按键驱动,然后开辟一个QT线程 ...

  3. linux 监控键盘,如何在Linux中使用“LogKeys”监视键盘敲键

    密钥记录是存储与/击键未经用户的知识的过程. 键盘记录可以是基于硬件的以及基于软件的. 从名称中可以清楚地看出,基于硬件的键盘记录器不依赖于任何软件,并且键击记录是在硬件级别本身完成的. 而基于软件的 ...

  4. 计算机键盘在线识别,usb键盘,详细教您电脑usb键盘无法识别解决方法

    键盘是最常用也是最主要的输入设备,通过键盘,可以将英文字母.数字.标点符号等输入到计算机中,从而向计算机发出命令.输入数据等.不过有用户在使用usb键盘的时候,就遇到了usb键盘无法识别的情况,下面, ...

  5. 嵌入式linux矩阵键盘,基于嵌入式Linux的矩阵键盘驱动程序开发

    O 引 言 随着以计算机技术.通信技术和软件技术为核心的信息技术的发展,嵌入式系统在各个行业中得到了广泛的应用.嵌入式系统已成为当今IT行业的焦点之一.而在嵌入式系统中,键盘是重要的人机交互设备之一. ...

  6. linux常用的系统配置文件,Linux系统中的常用配置文件.pdf

    Lamp兄弟连32期 刘伟 Linux 系统中常用的配置文件汇总解析 注:为了方便记忆和学习,对 Linux 系统中常用的配置文件有一个整体上的认识和把握, 知道一些常用配置文件有哪些主要的选项和用途 ...

  7. linux中如何加配置文件,Linux修改配置文件的命令是什么

    Linux修改配置文件的命令是什么 Linux添加修改配置文件一般都是使用默认的VI编辑器,命令是vi 文件名.长期编辑代码的程序员会使用功能更强大的编辑器. 简单介绍下vi编辑器的使用方法: 一.v ...

  8. linux配置tomcat内存配置文件,Linux与Windows下tomcat内存设置

    Linux下修改JVM内存大小: 要添加在tomcat 的bin 下catalina.sh文件中,找到cygwin=false,在这一行的前面加入参数,具体如下# vi TOMCAT_HOME/bin ...

  9. python调用linux软键盘_在Linux中使用Python模拟键盘按键

    之前在做自动化测试中需要用Python在linux中模拟Ctrl+V 进行路径粘贴,试了很多种方法,起初用了xerox和pyperclip这两个python库,但打开对话框后调用粘贴API无法进行粘贴 ...

最新文章

  1. 【电子基础】模拟电路问答
  2. MaskedTextBox的聚焦和光标位置
  3. Stream流终结操作方法
  4. Full_of_Boys训练5总结
  5. css居中悬浮,CSS悬浮居中
  6. python将数据变成float32,Python:将numpy默认为float32
  7. Yearn核心开发者:YFI铸币提案几乎准备就绪
  8. HoloLens1开发(三):Trilib插件动态加载模型-Part1
  9. Oracle ORA-08591告警
  10. mysql:Cannot load driver class: com.mysql.jdbc.Driver
  11. HealthKit框架指南
  12. python小乌龟编程_Python案例——喝墨水的小乌龟
  13. html打开txt文件 乱码怎么解决,记事本文件打开是乱码怎么办 乱码如何解决
  14. 全国青少年编程等级考试python一级真题2020年12月(含题库答题软件账号)
  15. cannot find -lxxx解决方法
  16. Nautre综述:鸟枪法宏基因组-从取样到数据分析(1)2万字带你系统入门宏基因组实验和分析...
  17. Win_XP_SP3系统下成功安装WinccV6.0_SP3a 经验分享
  18. IDEA打开多个窗口
  19. 数据可视化图表之面积折线图
  20. python爬取今日头条手机app广告_今日头条App广告采集器的实现

热门文章

  1. Feeds流的设计与实现
  2. 2.微信支付分类 和 申请方式 和 支付工具
  3. 三.非协议栈实现BLE蓝牙广播(2.4G实现BLE广播)
  4. ubuntu 用pidgin 聊qq 方法
  5. mac 查看本机 ip
  6. STM32F030数控电源BUCK结构,源资料,带原理图
  7. XMOS-麦克风阵列方案
  8. Unity ShaderLab 常用函数
  9. iframe异步提交
  10. msvcp120.dll丢失的解决方法(仅一步解决)