




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第2525章章 USBUSB驱动开发驱动开发USB是目前最流行的系统总线之一。随着计算机周围硬是目前最流行的系统总线之一。随着计算机周围硬件的不断扩展,各种设备使用不同的总线接口,导致计算机件的不断扩展,各种设备使用不同的总线接口,导致计算机外部总线种类繁多,管理困难。外部总线种类繁多,管理困难。USB总线正是因此而诞生的总线正是因此而诞生的。USB总线提供了所有外部设备的统一连接方式,并且支持总线提供了所有外部设备的统一连接方式,并且支持热插拔,方便了厂商开发设备和用户使用设备。本章详细介热插拔,方便了厂商开发设备和用户使用设备。本章详细介绍绍USB相关的知识,主要内容如下:相关的知识,主
2、要内容如下:USB总线体系结构介绍总线体系结构介绍USB体系工作流程体系工作流程Linux内核如何实现内核如何实现USB体系体系USB设备驱动开发实例设备驱动开发实例25.1 USB25.1 USB体系介绍体系介绍USB是英文是英文Universal Serial Bus的缩写,中文称为的缩写,中文称为“通通用串行总线用串行总线”。USB是一个总线协议标准,最初由是一个总线协议标准,最初由Intel、NEC、Compaq、DEC、IBM、Microsoft等公司联合制定的等公司联合制定的。到目前为止。到目前为止USB共有共有1.0、1.1和和2.0三个标准,主要区别是三个标准,主要区别是传输速
3、率不同,体系结构也有一定的差别。传输速率不同,体系结构也有一定的差别。25.1.1 USB25.1.1 USB设计目标设计目标USB的设计目标是对现有的的设计目标是对现有的PC机体系进行扩充,但是机体系进行扩充,但是目前不仅是目前不仅是PC机,许多的嵌入式系统都开始支持机,许多的嵌入式系统都开始支持USB总线总线和接口标准。和接口标准。USB设计主要遵循下面几个原则。设计主要遵循下面几个原则。易于扩充外部设备:易于扩充外部设备:灵活的传输协议:灵活的传输协议: 设备兼容性好:设备兼容性好: 接口标准统一:接口标准统一:USB接口标准具有下面几个方面的特色:接口标准具有下面几个方面的特色:1易用
4、性易用性2应用广泛应用广泛3健壮性健壮性25.1.1 USB25.1.1 USB设计目标设计目标分分类类传输率传输率应用应用特点特点低速设备10-20kbps键盘、鼠标等输入设备易用、支持热插拔、价格低中速设备500kbps-10Mbps宽带网络接入设备易用、支持热插拔高速设备25-500Mbps音视频设备、磁盘易用、带宽高、支持热插拔25.1.2 USB25.1.2 USB体系概述体系概述USB接口标准支持主机和外部设备之间进行数据传输。接口标准支持主机和外部设备之间进行数据传输。在在USB体系结构中,主机预定了各种类型外部设备使用的总体系结构中,主机预定了各种类型外部设备使用的总线带宽。当
5、外部设备和主机在运行时,线带宽。当外部设备和主机在运行时,USB总线允许添加、总线允许添加、设置、使用和拆除外设。设置、使用和拆除外设。在在USB体系结构中,一个体系结构中,一个USB系统可以分成系统可以分成USB互联、互联、USB设备和设备和USB主机三个部分。主机三个部分。USB互联是互联是USB设备和设备和USB主机之间进行连接通信的操作,主要包括:主机之间进行连接通信的操作,主要包括:总线拓扑结构:总线拓扑结构:数据流模式:数据流模式: USB调度调度:25.1.2 USB25.1.2 USB体系概述体系概述25.1.3 USB25.1.3 USB体系工作流程体系工作流程USB总线采用
6、轮询方式控制,主机控制设置初始化所有总线采用轮询方式控制,主机控制设置初始化所有的数据传输。的数据传输。USB总线每次执行传输动作最多可以传输三个总线每次执行传输动作最多可以传输三个数据包。每次开始传输时,主机控制器发送一个描述符描述数据包。每次开始传输时,主机控制器发送一个描述符描述传输动作的种类和方向,这个数据包称作标志数据包(传输动作的种类和方向,这个数据包称作标志数据包(Token Packet)。)。USB设备收到主机发送的标志数据包后解设备收到主机发送的标志数据包后解析出数据自己的数据。析出数据自己的数据。USB数据传输的方向只有两种:主机到设备或者设备到数据传输的方向只有两种:主
7、机到设备或者设备到主机。在一个数据传输开始时,由标志包标示数据的传输方主机。在一个数据传输开始时,由标志包标示数据的传输方向,然后发送端开始发送包含信息的数据。接收端发送一个向,然后发送端开始发送包含信息的数据。接收端发送一个握手的数据包表明数据是否传送成功。在主机和设备之间的握手的数据包表明数据是否传送成功。在主机和设备之间的USB数据传输可以看做一个通道。数据传输可以看做一个通道。USB数据传输有流和消息数据传输有流和消息两种通道。消息是有格式的数据,而流是没有数据格式的。两种通道。消息是有格式的数据,而流是没有数据格式的。USB有一个缺省的控制消息通道,在设备启动的时候被创建有一个缺省的
8、控制消息通道,在设备启动的时候被创建,因此设备的设置查询和输入控制信息都可以使用缺省消息,因此设备的设置查询和输入控制信息都可以使用缺省消息控制通道完成。控制通道完成。25.2 USB25.2 USB驱动程序框架驱动程序框架Linux内核提供了完整的内核提供了完整的USB驱动程序框架。驱动程序框架。USB总线总线采用树形结构,在一条总线上只能有唯一的主机设备。采用树形结构,在一条总线上只能有唯一的主机设备。Linux内核从主机和设备两个角度观察内核从主机和设备两个角度观察USB总线结构。本节总线结构。本节介绍介绍Linux内核内核USB驱动程序框架。驱动程序框架。25.2.1 Linux25.
9、2.1 Linux内核内核USBUSB驱动框架驱动框架在本节开始介绍了在本节开始介绍了Linux内核从主机和设备两个角度观内核从主机和设备两个角度观察察USB总线。总线。25.2.2 25.2.2 主机驱动结构主机驱动结构USB主机控制器有三种类型:主机控制器有三种类型:OHCI,英文全称是,英文全称是Open Host Controller Interface。OHCI是用于是用于SiS和和Ali芯片组的芯片组的USB控制器。控制器。UHCI,英文全称是,英文全称是Universal Host Controller Interface。UHCI用于用于Intel和和AMD芯片组的芯片组的US
10、B控制器。控制器。UHCI类型类型的控制器比的控制器比OHCI控制器硬件结构要简单,但是需要额外的控制器硬件结构要简单,但是需要额外的驱动支持,因此从理论上说速度要慢。驱动支持,因此从理论上说速度要慢。EHCI是是USB2.0规范提出的一种控制器标准,可以兼容规范提出的一种控制器标准,可以兼容UHCI和和OHCI。1USB主机控制器驱动主机控制器驱动2OHCI控制器驱动控制器驱动25.2.3 25.2.3 设备驱动结构设备驱动结构USB协议规定了许多种协议规定了许多种USB设备类型。设备类型。Linux内核实现内核实现了音频设备、通信设备、人机接口、存储设备、电源设备、了音频设备、通信设备、人
11、机接口、存储设备、电源设备、打印设备等几种打印设备等几种USB设备类。设备类。1基本概念基本概念2设备驱动结构设备驱动结构3USB请求块请求块25.2.4 USB25.2.4 USB驱动程序框架驱动程序框架Linux内核代码内核代码driver/usb/usb-skeleton.c文件是一个标文件是一个标准的准的USB设备驱动程序。编写一个设备驱动程序。编写一个USB设备的驱动可以参考设备的驱动可以参考usb-skeleton.c文件,实际上,可以直接修改该文件驱动新的文件,实际上,可以直接修改该文件驱动新的USB设备。下面以设备。下面以usb-skeleton.c文件为例分析文件为例分析us
12、b-skel设备设备驱动框架。驱动框架。1基本数据结构基本数据结构2驱动程序初始化和注销驱动程序初始化和注销3设备初始化设备初始化4设备注销设备注销25.3 USB 25.3 USB 驱动实例剖析驱动实例剖析USB体系支持多种类型的设备。在体系支持多种类型的设备。在Linux内核,所有的内核,所有的USB设备都使用设备都使用usb_driver结构描述。对于不同类型的结构描述。对于不同类型的USB设备,内核使用传统的设备驱动模型建立设备驱动描述,然设备,内核使用传统的设备驱动模型建立设备驱动描述,然后映射到后映射到USB设备驱动,最终完成特定类型的设备驱动,最终完成特定类型的USB设备驱动设备
13、驱动。25.3.1 USB25.3.1 USB串口驱动串口驱动USB串口驱动关键是向内核注册串口设备结构,并且设串口驱动关键是向内核注册串口设备结构,并且设置串口的操作。下面是一个典型的置串口的操作。下面是一个典型的USB设备驱动分析。设备驱动分析。1驱动初始化函数驱动初始化函数2驱动释放函数驱动释放函数3串口操作函数串口操作函数25.3.2 USB25.3.2 USB键盘驱动键盘驱动USB键盘驱动与串口驱动结构类似,不同是的使用键盘驱动与串口驱动结构类似,不同是的使用USB设备核心提供的设备核心提供的usb_keyboard_driver结构作为设备核心结结构作为设备核心结构。下面讲解构。下面讲解USB键盘驱动重点部分。键盘驱动重点部分。1 驱动初始和注销驱动初始和注销2设备检测函数设备检测函数3设备断开连接函数设备断开连接函数25.4 25.4 小结小结本章讲解了本章讲解了Linux内核内核USB驱动体系结构、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络管理员考前复习试题及答案
- 行政法学职业道德试题及答案分享
- 法学概论法律政策评估的方法探讨试题及答案
- 2025年软考新规试题及答案剖析
- 多层网络架构试题与答案解析
- 2025年计算机VB考试布置试题及答案性质分析
- 网络协议基本知识考题及答案
- 行政诉讼的程序与步骤试题及答案
- 网络故障处理访谈纪实试题及答案
- 销售渠道优化的具体措施计划
- 《风力发电技术》课件-第三章 机组运行与维护
- 2020-2021苏州景城学校小学数学小升初试卷带答案
- DL∕T 608-2019 300MW~600MW 级汽轮机运行导则
- 环保概论大气污染及防治课件
- 2020年山东省青岛市中考数学试卷
- 四川省乐山市2023-2024学年八年级下学期期末数学试题(解析版)
- 焰火燃放安全技术规程
- 农村自建房包工劳动合同
- 心功能不全试题库及答案
- DL-T5159-2012电力工程物探技术规程
- MOOC 信号与系统-西安邮电大学 中国大学慕课答案
评论
0/150
提交评论