- 4
- 0
- 约5.62千字
- 约 29页
- 2017-03-21 发布于湖北
- 举报
第19章 USB设备驱动程序 USB设备是计算机中一种非常常见的设备。日常生活中,常见的U盘,就是其中之一。USB设备只使用4条线进行连接,数据在线路中的传输规范已经从1.0升级到3.0,OTG规范也在完善之中。从长远来看,USB设备将称为计算机上主流的可插拔设备,越来越多的外设会使用USB规范来设计。从常见的外置光驱、移动硬盘、鼠标、键盘、手写笔,到外置网卡、蓝牙、手机数据接口、数码相机等,可见USB设备的使用会多么的广泛,不久的将来,甚至可以想象两台电路之间可以直接通过USB线进行数据传输,其速度可以达到480Mbit/s。随着USB设备在日常生活的广泛应用,学习USB设备驱动的价值也越来越大,本章将对编写USB设备驱动进行详细的阐述。 19.1 USB概述 USB作为一种重要的通讯规范,目前应用越来越广泛。USB协议中,除了定义了通讯物理层和电气层的标准外,还定义了一套比较完整的软件协议栈。这样就使大多数符合协议的USB设备能够很容易的工作在各种平台上。基本上,各个平台上的USB设备驱动的逻辑都很相似。由于USB协议是一套规范的协议,所以编写各种USB设备的驱动程序也非常相似,本节对USB协议的相关内容做一个简要的介绍。 19.1.1 USB概念 USB是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。USB接口支持设备的即插即用和热插拔功能。USB接口可用于连接多达127种外设,如鼠标、调制解调器和键盘等。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的,自1996年推出后,已成功替代串口和并口,并成为当今个人电脑和大量智能设备的必配的接口之一。从1994年11月11日发表了USB V0.7版本以后,USB版本经历了多年的发展,到现在已经发展为3.0版本。 19.1.2 USB的特点 USB设备应用非常广泛,例如USB键盘、USB鼠标、USB光驱、U盘等,并且许多手持设备上也提供了USB接口,方面与电脑或其他设备传递数据。USB设备之所以会被大量应用,主要具有以下优点,这些优点在编程中是需要注意的。 1、可以热插拔。 2、携带方便。 3、标准统一。 4、可以连接多个设备。 19.1.2 USB总线拓扑结构 USB设备的连接如图所示,对于每个PC来说,都有一个或者多个称为主机(Host)控制器的设备,该主机控制器和一个根集线器(Hub)作为一个整体。这个根Hub下可以接多级的Hub,每个子Hub又可以接子Hub。每个USB设备作为一个节点接在不同级别的Hub上。 19.1.3 USB驱动总体架构 在Linux系统中,USB驱动由USB主机控制器驱动和USB设备驱动组成。USB主机控制器驱动,主要用来驱动芯片上的主机控制器硬件。USB设备驱动是具体的USB设备驱动,例如USB鼠标、USB摄像头等。如图是USB驱动的总体架构。 19.2 USB设备驱动模型 19.2.1 USB驱动初探 Linux操作系统提供了大量的缺省驱动程序。一般来说,这些驱动程序适用于大多数硬件,但也有许多特殊功能的硬件不能在操作系统中找到相应的驱动程序。这时,驱动开发人员一般在内核中找到一份相似的驱动代码,再根据实际的硬件情况进行修改。所以通过什么样的方法找到相似的驱动程序非常重要。 19.2.2 USB设备驱动模型 理解USB驱动程序,首先需要理解什么是USB设备驱动模型。Linux的设备驱动模型在前面的章节中已经讲述过,USB设备驱动模型是Linux设备驱动模型的扩展,这里主要介绍USB设备驱动的模型。 1.总线、设备和驱动 2.设备与驱动的绑定 19.2.3 usb驱动结构usb_driver 在USB设备驱动模型中,usb设备驱动使用usb_driver结构体来表示。该结构体中包含了与具体设备相关的核心函数,对于不同的USB设备,驱动开发人员需要实现不同功能的函数,USB核心通过在框架中调用这些自定义的函数来完成相应的功能。下面对usb_driver结构体进行简要的介绍。 1.usb_driver结构体 2.驱动支持的设备列表结构体usb_device_id 3.初始化usb_device_id结构的宏 4.USB驱动注册函数usb_register 19.3 USB设备驱动程序 USB驱动程序相对比较复杂,最为简单的是加载和卸载函数。在加载函数中完成了USB设备的大部分初始化工作,同时涉及到很多重要的数据结构。下面对这些概念进行详细的解释。 19.3.1 USB设备驱动加载和卸载函数 USB设备驱动程序对应一个usb_driver结构体,这个结构体相当于Linux设备驱动模型中的driver结构体。 19.3.2 USB协议中的设备 USB核心调用probe
您可能关注的文档
最近下载
- 职教高考语文专项练习.doc VIP
- 山东省职教高考语文专项突破.pptx VIP
- 2025年湖南省中考数学模拟试卷(一)(原卷版+解析版).docx VIP
- 重症医学(高级职称)考试真题题库及答案.docx VIP
- Yamaha雅马哈RX-V430中文使用说明书.pdf VIP
- 【解题模型】专题08连接体及动力学中的临界极值模型-2026高考物理(解析版).docx VIP
- QJL J160001-2017 汽车零部件和材料禁用、限用物质要求.pdf VIP
- 部编版五年级语文下册第二单元学历案(2课时版) - 副本.docx VIP
- 医学高级职称考试重症医学(正高)章节习题及答案.docx VIP
- 正压式空气呼吸器定期检查表.doc VIP
原创力文档

文档评论(0)