欢迎来到天天文库
浏览记录
ID:46949787
大小:367.81 KB
页数:16页
时间:2019-12-01
《《USB驱动开发》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第25章USB驱动开发USB是目前最流行的系统总线之一。随着计算机周围硬件的不断扩展,各种设备使用不同的总线接口,导致计算机外部总线种类繁多,管理困难。USB总线正是因此而诞生的。USB总线提供了所有外部设备的统一连接方式,并且支持热插拔,方便了厂商开发设备和用户使用设备。本章详细介绍USB相关的知识,主要内容如下:USB总线体系结构介绍USB体系工作流程Linux内核如何实现USB体系USB设备驱动开发实例25.1USB体系介绍USB是英文UniversalSerialBus的缩写,中文称为“通用串行总线”。US
2、B是一个总线协议标准,最初由Intel、NEC、Compaq、DEC、IBM、Microsoft等公司联合制定的。到目前为止USB共有1.0、1.1和2.0三个标准,主要区别是传输速率不同,体系结构也有一定的差别。25.1.1USB设计目标USB的设计目标是对现有的PC机体系进行扩充,但是目前不仅是PC机,许多的嵌入式系统都开始支持USB总线和接口标准。USB设计主要遵循下面几个原则。易于扩充外部设备:灵活的传输协议:设备兼容性好:接口标准统一:USB接口标准具有下面几个方面的特色:1.易用性2.应用广泛3.健壮性
3、25.1.1USB设计目标分类传输率应用特点低速设备10-20kbps键盘、鼠标等输入设备易用、支持热插拔、价格低中速设备500kbps-10Mbps宽带网络接入设备易用、支持热插拔高速设备25-500Mbps音视频设备、磁盘易用、带宽高、支持热插拔25.1.2USB体系概述USB接口标准支持主机和外部设备之间进行数据传输。在USB体系结构中,主机预定了各种类型外部设备使用的总线带宽。当外部设备和主机在运行时,USB总线允许添加、设置、使用和拆除外设。在USB体系结构中,一个USB系统可以分成USB互联、USB设备
4、和USB主机三个部分。USB互联是USB设备和USB主机之间进行连接通信的操作,主要包括:总线拓扑结构:数据流模式:USB调度:25.1.2USB体系概述25.1.3USB体系工作流程USB总线采用轮询方式控制,主机控制设置初始化所有的数据传输。USB总线每次执行传输动作最多可以传输三个数据包。每次开始传输时,主机控制器发送一个描述符描述传输动作的种类和方向,这个数据包称作标志数据包(TokenPacket)。USB设备收到主机发送的标志数据包后解析出数据自己的数据。USB数据传输的方向只有两种:主机到设备或者设备
5、到主机。在一个数据传输开始时,由标志包标示数据的传输方向,然后发送端开始发送包含信息的数据。接收端发送一个握手的数据包表明数据是否传送成功。在主机和设备之间的USB数据传输可以看做一个通道。USB数据传输有流和消息两种通道。消息是有格式的数据,而流是没有数据格式的。USB有一个缺省的控制消息通道,在设备启动的时候被创建,因此设备的设置查询和输入控制信息都可以使用缺省消息控制通道完成。25.2USB驱动程序框架Linux内核提供了完整的USB驱动程序框架。USB总线采用树形结构,在一条总线上只能有唯一的主机设备。Li
6、nux内核从主机和设备两个角度观察USB总线结构。本节介绍Linux内核USB驱动程序框架。25.2.1Linux内核USB驱动框架在本节开始介绍了Linux内核从主机和设备两个角度观察USB总线。25.2.2主机驱动结构USB主机控制器有三种类型:OHCI,英文全称是OpenHostControllerInterface。OHCI是用于SiS和Ali芯片组的USB控制器。UHCI,英文全称是UniversalHostControllerInterface。UHCI用于Intel和AMD芯片组的USB控制器。UHC
7、I类型的控制器比OHCI控制器硬件结构要简单,但是需要额外的驱动支持,因此从理论上说速度要慢。EHCI是USB2.0规范提出的一种控制器标准,可以兼容UHCI和OHCI。1.USB主机控制器驱动2.OHCI控制器驱动25.2.3设备驱动结构USB协议规定了许多种USB设备类型。Linux内核实现了音频设备、通信设备、人机接口、存储设备、电源设备、打印设备等几种USB设备类。1.基本概念2.设备驱动结构3.USB请求块25.2.4USB驱动程序框架Linux内核代码driver/usb/usb-skeleton.c文
8、件是一个标准的USB设备驱动程序。编写一个USB设备的驱动可以参考usb-skeleton.c文件,实际上,可以直接修改该文件驱动新的USB设备。下面以usb-skeleton.c文件为例分析usb-skel设备驱动框架。1.基本数据结构2.驱动程序初始化和注销3.设备初始化4.设备注销25.3USB驱动实例剖析USB体系支持多种类型的设备。在Linux内核
此文档下载收益归作者所有