Linu下的USB程序分析.doc

Linu下的USB程序分析.doc

ID:56873760

大小:53.00 KB

页数:13页

时间:2020-07-17

Linu下的USB程序分析.doc_第1页
Linu下的USB程序分析.doc_第2页
Linu下的USB程序分析.doc_第3页
Linu下的USB程序分析.doc_第4页
Linu下的USB程序分析.doc_第5页
资源描述:

《Linu下的USB程序分析.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Linux下的USB程序分析关键字:USB、LINUX、设备驱动、总线参考文献:LINUX设备驱动程序ALESSANDRORUBINI&JONATHANCORBET著魏拥明骆刚姜君译USB2.0原理与工程开发王成儒、李英伟编著LINUX内核源代码情景分析毛德操胡希明著一、USB概述1.USB的优点USB与计算机的接口采用的不是传统的I/O模式,它和传统的通信接口相比,存在以下优点:(1)热插拔:用户可以把USB外设直接连接到一台正在运行的计算机上,操作系统能自动识别,不用时可将USB在操作系统中卸载,不会损伤计算机(2)即插即用:用户将USB

2、设备插入后可立即使用(3)共享式接口:不同的USB外设使用同样的接口(4)节省系统资源:只有USB主控制器需要使用一根IRQ线和一些I/O地址空间,对USB外设来说,它需要的仅仅是为其分配一个唯一的地址(5)传输速率高;USB2.0的传输速率可达25MB/S以上(6)提供电源(7)兼容性强2.USB系统描述USB系统由USB主机和USB设备构成。USB主机内部含有USB主控制器,负责完成主机和USB设备之间的物理数据传输。USB主机中还应有设备驱动程序。USB的数据驱动是基于令牌的,其所有的通信都由USB主机启动。二、Linux设备驱动概述1

3、.设备驱动程序的作用Linux是“单块结构”的操作系统,设备驱动作为设备控制模块中的一部分,在整个操作系统中扮演着非常重要的角色。设备驱动使某个特定的硬件响应一个良好定义的内部编程接口,同时完全隐藏了设备工作的细节。用户操作通过一组标准化的调用完成,而这些调用是和特定的驱动程序无关的。将这些调用映射到作用于实际硬件的设备特定的操作上,则是设备驱动程序的任务。这个编程接口能够使得驱动程序独立于内核的其它部分而建立,在需要的时候,可在运行时“插入”内核。如果从另一个角度来看驱动程序,那么它可以被看作是应用和实际设备之间的一个软件层。这种定位使驱动

4、程序具有了“个性化”的特点:即对于相同的设备,不同的驱动程序也可以提供不同的功能。2.Linux内核功能划分Linux内核从功能上分可以分为以下几个部分;进程管理:进程管理功能负责创建和撤销进程以及处理它们和外部世界的连接(输入和输出)。不同进程之间的通信(通过信号、管道或进程见通信原语)是整个模块的基本功能。除此之外,控制进程如何共享CPU的调度程序也是进程管理的一部分。概括地说,内核的进程管理活动就是在单个或多个CPU上实现多个进程的抽象。内存管理:内存是计算机的主要资源之一,用来管理内存的策略是决定系统性能的一个关键因素。内核在有限的可

5、用资源上为每一个进程都创建了一个虚拟寻址空间,内核的不同部分和在内存管理子系统交互时使用一套相同的系统调用,包括从简单的malloc/free到对其它一些不常用的系统调用。文件系统:Linux中的每个对象几乎都可以被看作文件。内核在没有结构的硬件上构造结构化的文件系统,所构造的文件系统抽象在整个系统中广泛使用。另外,Linux支持多种文件系统类型,即在物理介质上组织数据的不同方式。设备控制:除了处理器、内存以及其他很有限的几个实体外,所有设备控制操作都由与被控制设备相关的代码来完成。这段代码就是设备驱动程序,内核必须为系统中的每件外设嵌入相应

6、的驱动程序、包括硬盘驱动器、键盘、鼠标等。3.设备和模块分类Linux系统将设备分成三种类型:字符设备、块设备和网络接口。每个模块通常实现其中一种类型,相应地,模块可分为字符模块(charmodual)、块模块(blockmodual)和网络模块(networkmodual)三种。字符设备(characterdevice)字符设备是能够象字节流(比如文件)一样被访问地设备,由字符设备驱动程序来实现这种特性。字符设备驱动程序通常至少需要实现open、close、read和write系统调用。字符终端(/dev/console)和串口(/dev/

7、ttySO以及类似设备)就是字符设备的两个例子,他们能够用流很好地表示。字符设备可以通过文件系统节点(如/dev/tty1和/dev/lp0)来访问,它和普通文件之间的唯一差别在于,对普通文件的访问可以前后移动访问指针,而大多数字符设备是只能顺序访问的数据通道。然而,也存在和数据区特性类似的字符设备,访问它们时可前后移动访问指针。块设备(blockdevice)和字符设备一样,块设备也是通过/dev目录下的文件系统节点被访问的。块设备(例如硬盘)上能够容纳文件系统。Linux允许应用程序象字符设备那样读写块设备,可以一次传递任意多字节的数据。

8、因此,块设备和字符设备的区别仅仅在于内核内部管理数据的方式,也就是内核和驱动程序的接口不同。象字符设备一样,块设备也是通过文件系统节点被访问的,他们之间的差异对用户

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。