基于Linux系统下USB鼠标驱动开发毕业论文.docx

上传人:b****2 文档编号:24078059 上传时间:2023-05-24 格式:DOCX 页数:53 大小:1.35MB
下载 相关 举报
基于Linux系统下USB鼠标驱动开发毕业论文.docx_第1页
第1页 / 共53页
基于Linux系统下USB鼠标驱动开发毕业论文.docx_第2页
第2页 / 共53页
基于Linux系统下USB鼠标驱动开发毕业论文.docx_第3页
第3页 / 共53页
基于Linux系统下USB鼠标驱动开发毕业论文.docx_第4页
第4页 / 共53页
基于Linux系统下USB鼠标驱动开发毕业论文.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

基于Linux系统下USB鼠标驱动开发毕业论文.docx

《基于Linux系统下USB鼠标驱动开发毕业论文.docx》由会员分享,可在线阅读,更多相关《基于Linux系统下USB鼠标驱动开发毕业论文.docx(53页珍藏版)》请在冰豆网上搜索。

基于Linux系统下USB鼠标驱动开发毕业论文.docx

基于Linux系统下USB鼠标驱动开发毕业论文

 

毕业设计(论文)

 

题目基于Linux系统下USB鼠标驱动开发

英文题目UsingLinuxsystemtoWriteDeviceDriversofUSBmouse

 

目录

摘要I

ABSTRACTII

第一章绪论1

1.1课题研究的背景和意义1

1.1.1课题研究的背景1

1.1.2课题研究的意义1

1.3课题研究的内容1

第二章USB简介2

2.1USB的沿革2

2.2USB的优点2

2.3USB的应用及发展趋势3

2.3.1USB的扩展应用3

2.3.2USB的发展趋势4

2.4USB接口类型4

2.5USB2.0规范5

2.6USB3.0简介5

第三章USB系统架构与协议7

3.1USB系统拓扑结构7

3.2USB设备逻辑结构8

3.3USB描述符9

3.3USB数据传输方式9

3.3USB数据流模型10

3.3.1控制传输10

3.3.2中断传输11

3.3.3批量传输11

3.3.4同步传输12

第四章Linux系统内核及内核模块13

4.1Linux体系结构13

4.2Linux内核架构13

4.3Linux内核目录结构14

4.4Linux内核模块开发15

4.4.1makefile15

4.4.2安装和卸载内核模块17

4.5Linux内核配置与安装18

第五章LinuxUSB系统与功能测试23

5.1USB协议软件层次23

5.2LinuxUSB架构24

5.3MassStorsge24

5.4USB-HID28

第六章LinuxUSB鼠标驱动程序设计31

6.1USB鼠标驱动程序分析31

6.2URB33

6.3搭建开发平台33

6.3.1安装编辑工具33

6.3.2安装和配置编译器33

6.3.3安装其他工具34

6.3.4平台硬件构成34

6.3.5平台软件构成36

6.4USB鼠标驱动程序详细设计36

总结41

致谢42

参考文献43

 

摘要

随着计算机硬件飞速发展,外围设备日益增多,键盘、鼠标、调制解调器、打印机、扫描仪早已为人所共知,数码相机、MP3随身听接踵而至,这么多的设备,如何接入个人计算机?

USB就是基于这个目的产生的。

USB是一个使计算机周边设备连接标准化、单一化的接口,其规格是由Intel(英特尔)、NEC、Compaq、DEC、IBM(商业机器公司)、Microsoft(微软)、NorthernTelecom联系制定的。

USB具有传输速度快,使用方便,支持热插拔,连接灵活,独立供电等优点,几乎应用于所有的外部设备,成为当今个人电脑和大量智能设备的必配的接口之一。

本设计主要以LinuxUSB为中心,研究USB系统架构与其协议分析、Linux系统内核及内核模块配置和编译、LinuxUSB系统与功能测试和LinuxUSB鼠标驱动程序设计。

主要知识涉及USB系统架构,USB描述符,USB数据描述方式,USB枚举,Linux内核简介,Linux内核及内核模块配置预编译,Linux系统架构,MassStorage与USB-HID,USBURB等相关内容。

关键词:

驱动程序;USB;Linux;嵌入式。

 

ABSTRACT

Withtherapiddevelopmentofcomputerhardwareandperipheralsincreasing,keyboard,mouse,modem,printer,scannerisalreadyknown,digitalcamera,MP3player,somanyoftheensuingequipment,howtoaccesspersonalcomputer?

USBisbasedontheobjectiveofgeneration.USBisacomputerperipheraldevicesconnectedstandardization,simplification,itsspecificationismadeinterfaceIntel(Intel),NEC,Compaq,DEC,IBM(businessmachinecompany),Microsoft(Microsoft),NorthernTelecomcontactwork.USBwithtransmittingspeed,easytouse,supporthotswaps,connectflexible,independentpowersupplyetc,almostappliedtoallexternaldevices,nowbecameapersonalcomputerandintelligentdeviceswithoneoftheinterfaceofwill.

ThisdesignmainlyLinuxUSBasthecenter,theresearchsystemarchitectureandUSBprotocolanalysis,Linuxkernelandkernelmoduleconfigurationandcompilation,LinuxUSBsystemandfunctiontestingandLinuxUSBmousedriverdesign.MainknowledgesystemarchitectureinvolvingUSB,USBdescriptors,USB,USBenumerationdatadescriptionway,Linuxkernelintroduction,Linuxkernelandkernelmoduleconfigurationpre-compiledMassStoragesystemarchitecture,Linux,andUSB-HID,USBURBandotherrelatedcontent.

Keywords:

DeviceDrivers;USB;Linux;Embedded.

第一章绪论

1.1课题研究的背景和意义

1.1.1课题研究的背景

随着计算机硬件飞速发展,外围设备日益增多,键盘、鼠标、调制解调器、打印机、扫描仪早已为人所共知,数码相机、MP3随身听接踵而至,这么多的设备,如何接入个人计算机?

USB就是基于这个目的产生的。

USB是一个使计算机周边设备连接标准化、单一化的接口,其规格是由Intel(英特尔)、NEC、Compaq、DEC、IBM(商业机器公司)、Microsoft(微软)、NorthernTelecom联系制定的。

USB具有传输速度快,使用方便,支持热插拔,连接灵活,独立供电等优点,几乎应用于所有的外部设备,成为当今个人电脑和大量智能设备的必配的接口之一。

1.1.2课题研究的意义

USB凭借自身的优势,USB设备也开始广泛的应用于嵌入式设备中。

本论文就是基于嵌入式系统来编写USB设备驱动,以加强对USB接口和设备的认识,同时也通过本毕业设计将四年来所学的专业知识和其他方面的知识融入到实际应用中。

1.3课题研究的内容

本设计主要以LinuxUSB为中心,研究USB系统架构与其协议分析、Linux系统内核及内核模块配置和编译、LinuxUSB系统与功能测试和LinuxUSB鼠标驱动程序设计。

主要知识涉及USB系统架构,USB描述符,USB数据描述方式,USB枚举,Linux内核简介,Linux内核及内核模块配置预编译,Linux系统架构,MassStorage与USB-HID,USBURB等相关内容。

第二章USB简介

2.1USB的沿革

USB是英文UniversalSerialBus的缩写,中文含义是“通用串行总线”。

它是一种应用在计算机领域的新型接口技术。

早在1995年,就已经有个人电脑带有USB接口了,但由于缺乏软件及硬件设备的支持,这些个人电脑的USB接口都闲置未用。

1998年后,随着微软在Windows98中内置了对USB接口的支持模块,加上USB设备的日渐增多,USB接口才逐步走进了实用阶段。

这几年,随着大量支持USB的个人电脑的普及,USB逐步成为个人电脑的标准接口已经是大势所趋。

在主机端,最新推出的个人电脑几乎100%支持USB;而在外设端,使用USB接口的设备也与日俱增,例如数码相机、扫描仪、游戏杆、磁带和软驱、图像设备、打印机、键盘、鼠标等等。

目前主板中主要是采用USB1.1和USB2.0,各USB版本间能很好的兼容。

USB用一个4针(USB3.0标准为9针)插头作为标准插头,最多可以连接127个外部设备,并且不会损失带宽。

USB需要主机硬件、操作系统和外设三个方面的支持才能工作。

目前的主板一般都采用支持USB功能的控制芯片组,主板上也安装有USB接口插座,而且除了背板的插座之外,主板上还预留有USB插针,可以通过连线接到机箱前面作为前置USB接口以方便使用。

而且USB接口还可以通过专门的USB连机线实现双机互连,并可以通过Hub扩展出更多的接口。

USB具有传输速度快(USB1.1是12Mbps,USB2.0是480Mbps,USB3.0是5Gbps),使用方便,支持热插拔,连接灵活,独立供电等优点,可以连接鼠标、键盘、打印机、扫描仪、摄像头、闪存盘、MP3机、手机、数码相机、移动硬盘、外置光软驱、USB网卡、ADSLModem、CableModem等外部设备。

USB各版本区别版本最大传输速率速率称号最大输出电流协议推出时间:

USB1.0:

1.5Mbps(192KB/s)低速(Low-Speed)500mA……1996年1月;

USB1.1:

12Mbps(1.5MB/s)全速(Full-Speed)500mA……1998年9月;

USB2.0:

480Mbps(60MB/s)高速(High-Speed)500mA……2000年4月;

USB3.0:

5Gbps(640MB/s)超速(Super-Speed)900mA……2008年11月。

2.2USB的优点

USB设备之所以会被大量应用,主要具有以下优点:

1、可以热插拔。

这就让用户在使用外接设备时,不需要重复“关机将并口或串口电缆接上再开机”这样的动作,而是直接在电脑工作时,就可以将USB电缆插上使用。

2、携带方便。

USB设备大多以“小、轻、薄”见长,对用户来说,同样20G的硬盘,USB硬盘比IDE硬盘要轻一半的重量,在想要随身携带大量数据时,当然USB硬盘会是首要之选了。

3、标准统一。

大家常见的是IDE接口的硬盘,串口的鼠标键盘,并口的打印机扫描仪,可是有了USB之后,这些应用外设统统可以用同样的标准与个人电脑连接,这时就有了USB硬盘、USB鼠标、USB打印机等等。

4、可以连接多个设备。

USB在个人电脑上往往具有多个接口,可以同时连接几个设备,如果接上一个有四个端口的USBHUB时,就可以再连上。

2.3USB的应用及发展趋势

USB1.1标准接口传输速率为12Mbps,但是一个USB设备最多只可以得到6Mbps的传输频宽。

因此若要外接光驱,至多能接六倍速光驱,无法再高。

而若要即时播放MPEG-1的VCD影片,至少要1.5Mbps的传输频宽,这点USB办得到,但是要完成数据量大四倍的MPEG-2的DVD影片播放,USB可能就很吃力了,若再加上AC-3音频数据,USB设备就很难实现即时播放了。

用户的需求,是促进科技发展的动力,厂商也同样认识到了这个瓶颈。

这时,COMPAQ、HewlettPackard、Intel、Lucent、Microsoft、NEC和PHILIPS这7家厂商联合制定了USB2.0接口标准。

USB2.0将设备之间的数据传输速度增加到了480Mbps,比USB1.1标准快40倍左右,速度的提高对于用户的最大好处就是意味着用户可以使用到更高效的外部设备,而且具有多种速度的周边设备都可以被连接到USB2.0的线路上,而且无需担心数据传输时发生瓶颈效应。

另外,USB2.0兼容USB1.1,也就是说USB1.1设备可以和USB2.0设备通用,但是这时USB2.0设备只能工作在全速状态下(12Mbit/s)。

USB2.0有高速、全速和低速三种工作速度,高速是480Mbit/s,全速是12Mbit/s,低速是1.5Mbit/s。

其中全速和低速是为兼容USB1.1和USB1.0而设计。

2.3.1USB的扩展应用

2.3.1.1前置USB接口

前置USB接口是位于机箱前面板上的USB扩展接口。

目前,使用USB接口的各种外部设备越来越多,例如移动硬盘、闪存盘、数码相机等等。

前置USB接口在这方面就给用户提供了很好的易用性。

前置USB接口要使用机箱所附带的USB连接线连接到主板上所相应的前置USB插针(一般是8针、9针或10针,两个USB成对,其中每个USB使用4针传输信号和供电)上才能使用。

2.3.1.2USB口硬盘盒

目前的主流,其最大优点是使用方便,支持热插拔和即插即用。

USB有两种标准:

一种是USB1.1接口,其传输速度只有12Mbps,一种是USB2.0接口,其传输速度高达480Mbps。

目前的主板上的USB都支持USB1.1,但USB2.0只有较新的主板才能支持,购买时根据个人情况选择产品,虽然USB2.0向下兼容USB1.1,但支持USB2.0接口的移动硬盘盒比USB1.1的要贵一些。

2.3.2USB的发展趋势

USB开发者论坛的主席兼英特尔公司的技术策略官JeffRavencraft表示,无线USB技术将帮助用户在使用个人电脑连接打印机、数码相机、音乐播放器和外置磁盘驱动器等设备时,从纷繁复杂的电缆连线中解放出来。

无线USB标准的数据传输速率与目前的有线USB2.0标准是一样的,均为每秒480M,两者的区别在于无线USB要求在个人电脑或外设中装备无线收发装置以代替电缆连线。

无线USB采用超宽带技术进行通信。

目前无线局域网的802.11g协议采用位于2.4GHz附近的一小段频带进行通信,而超宽带技术则采用从3.1GHz到10.6GHz的频带进行通信。

超宽带的信号水平足够低,因此对于其他无线通信技术来说,超宽带信号的影响类似于噪声。

2.4USB接口类型

图1USB接口类型

Mini型(公口)、Mini型(母口)、Mini型USBB型、USBA型(母口)、USBA型(公口)

  标准USB接口标准USB连接器触点

触点

功能(主机)

功能(设备)

1

VBUS(4.75-5.25V)

VBUS(4.4-5.25V)

2

D-

D-

3

D+

D+

4

接地

接地

 USB信号使用分别标记为D+和D-的双绞线传输,它们各自使用半双工的差分信号并协同工作,以抵消长导线的电磁干扰。

2.5USB2.0规范

USB2.0技术规范是有由Compaq、HewlettPackard、Intel、Lucent、Microsoft、NEC、Philips共同制定、发布的,规范把外设数据传输速度提高到了480Mbps,是USB1.1设备的40倍!

但按照原定计划新的USB2.0标准只是准备把这个标准定在240Mbps,后来,经过努力将它提高到了480Mbps。

由于当时制订的标准有了变化,USB规范就产生了三种速度选择:

480Mbps、12Mbps、1.5Mbps。

而2003年6月份,当USB2.0标准开始逐渐深入人心之后,USB协会重新命名了USB的规格和标准。

重新命名了USB标准将原先的USB1.1改成了USB2.0FullSpeed(全速版),同时将原有的USB2.0改成了USB2.0High-Speed(高速版),并同时公布了新的标识。

USB2.0支持的操作系统:

MicrosoftWindows7、MicrosoftWindowsServer2008、MicrosoftWindowsvista、MicrosoftWindowsServer2003、MicrosoftWindowsXP(所有版本)、MicrosoftWindows2000、MicrosoftWindows98SE、MicrosoftWindowsMe。

2.6USB3.0简介

英特尔公司(Intel)和业界领先的公司一起携手组建了USB3.0推广组,旨在开发速度超过当今10倍的超高效USB互联技术。

该技术是由英特尔,以及惠普(HP)、NEC、NXP半导体以及德州仪器(TexasInstruments)等公司共同开发的,应用领域包括个人计算机、消费及移动类产品的快速同步即时传输。

随着数字媒体的日益普及以及传输文件的不断增大——甚至超过25GB,快速同步即时传输已经成为必要的性能需求。

USB3.0具有后向兼容标准,并兼具传统USB技术的易用性和即插即用功能。

该技术的目标是推出比目前连接水平快10倍以上的产品,采用与有线USB相同的架构。

除对USB3.0规格进行优化以实现更低的能耗和更高的协议效率之外,USB3.0的端口和线缆能够实现向后兼容,以及支持未来的光纤传输。

USB2.0基于半双工二线制总线,只能提供单向数据流传输,而USB3.0采用了对偶单纯形四线制差分信号线,故而支持双向并发数据流传输,这也是新规范速度猛

增的关键原因。

除此之外,USB3.0还引入了新的电源管理机制,支持待机、休眠和暂停等状态。

USB3.0在实际设备应用中将被称为“USBSuperSpeed”,顺应此前的USB1.1FullSpeed和USB2.0HighSpeed。

  

图2USB3.0标识图

第三章USB系统架构与协议

3.1USB系统拓扑结构

图3USB系统拓扑结构a

每个USB系统都有一个主控制器(Host),该(Host)主控器和一个根集线器作为一个整体,。

USB主控器在USB系统中USB主控器负责主机与设备之间的电气和协议层得互联。

USB主控器的常规规格有OHCI、UHCI、EHCI。

OHCI即OpenHostControllerInterface,开放式主机控制接口协议。

"EHCI"驱动程序设计成为实现新的高速USB2.0协议的芯片提供支持。

"OHCI"驱动程序用来为非PC系统上的(以及带有SiS和ALi芯片组的PC主板上的)USB芯片提供支持。

"UHCI"驱动程序用来为大多数其它PC主板(包括Intel和Via)上的USB实现提供支持。

一个USBHOST最多可以同时支持128个地址,地址0作为默认地址,只在设备枚举期间临时使用,而不能被分配给任何一个设备,因此一个USBHOST最多可以同时支持127个地址,如果一个设备只占用一个地址,那么可最多支持127个USB设备。

在实际的USB体系中,如果要连接127个USB设备,必须要使用USBHUB,而USBHUB也是需要占用地址的,所以实际可支持的USB功能设备的数量将小于127。

USB体系采用分层的星型拓扑来连接所有USB设备,如下图所示:

图4USB系统拓扑结构b

以HOST-ROOTHUB为起点,最多支持7层(Tier),也就是任何一个USB系统中最多可以允许5个USBHUB级联。

一个复合设备(CompoundDevice)将同时占据两层或更多的层。

ROOTHUB是一个特殊的USBHUB,它集成在主机控制器里,不占用地址。

ROOTHUB不但实现了普通USBHUB的功能,还包括其他一些功能。

3.2USB设备逻辑结构

图5USB设备逻辑结构

在USB协议中接口由多个端点组成,代表一个基本的功能,是USB设备驱动程序控制的对象。

如:

配置一:

音频(接口)+旋钮(接口);配置二:

音频(接口)+旋钮(接口)+视频(接口)。

设备端点是USB设备中的唯一可寻址部分,它位于USB设备或主机上的一个数据缓冲区,用来存放和发送USB各种数据,主机和设备的通信的最终作用于设备的各个端点。

USB设备有一个唯一的地址,在设备连接上主机时,由主机分配,而设备终的每一个端点在设备内部有唯一的端点号,给端点号是设计设备时给定的。

每个设备必有端点0,它用于设备枚举和对设备进行一些基本的控制功能。

3.3USB描述符

在每个PCI设备中都有一组固定格式的寄存器,称之为PCI寄存器,通过访问这组寄存器,主机能获得PCI设备的信息。

同样,USB内部,同样也包含了类似于PCI配置寄存器,这样的固定格式的数据,通过这些数据,主机可以获取USB设备的类型、生产厂商等信息。

标准USB设备有5钟USB描述符:

设备描述符、配置描述符、接口描述符、字符串描述符。

一个USB设备只有一个设备描述符,一个设备描述符可以包含多个配置描述符,一个配置描述符可以包含多个接口描述符,一个接口使用几个端点就有几个端点描述符。

3.3USB数据传输方式

USB采用轮询的广播机制传输数据,所有的传输都由主机发起,任何时刻整个USB体系内仅允许一个数据包的传输,即不同物理传输线上看到的数据包都是同一被广播的数据包。

USB采用“令牌包”-“数据包”-“握手包”的传输机制,在令牌包中指定数据包去向或者来源的设备地址和端点(Endpoint),从而保证了只有一个设备对被广播的数据包/令牌包作出响应。

握手包表示了传输的成功与否。

图6USB传输方式分析

一个传输有一个或多个事务(transaction)构成。

事务可分为IN事务、OUT事务,Setup事务。

一个事务由一个或多个包(packet)构成。

包又可分为令牌包、数据包、握手包、特殊包。

一个包由多个域构成:

同步域(SYNC)、标示域(PID)、地址域(ADDR)、端点域(ENDP)、帧号域(FRAM)、数据域(DATA)、校验域(CRC)。

数据包是USB总线上数据传输的最小单位,包括SYNC、数据及EOP三个部分。

其中数据的格式针对不同的包有不同的格式。

但都以8位的PID开始。

PID指定了数据包的类型(共16种)。

令牌包即指PID为IN/OUT/SETUP的包。

端点(Endpoint)是USB设备中的可以进行数据收发的最小单元,支持单向或者双向的数据传输。

设备支持端点的数量是有限制的,除默认端点外低速设备最多支持2组端点(2个输入,2个输出),高速和全速设备最多支持15组端点。

管道(Pipe)是主机和设备端点之间数据传输的模型,共有两种类型的管道:

无格式的流管道(StreamPipe)和有格式的信息管道(MessagePipe)。

任何USB设备一旦上电就存在一个信息管道,即默认的控制管道,USB主机通过该管道来获取设备的描述、配置、状态,并对设备进行配置。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 其它语言学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1