首页> 中文学位 >Linux平台下USB大容量存储设备驱动程序的改进与优化
【6h】

Linux平台下USB大容量存储设备驱动程序的改进与优化

代理获取

目录

文摘

英文文摘

声明

致谢

1 引言

1.1课题背景

1.2课题提出的意义

1.3课题主要工作

1.4论文的主要结构

2 系统分析

2.1 Linux设备模型分析

2.1.1 sysfs文件系统

2.1.2 Kobjject、kset和子系统

2.1.3设备模型组件

2.1.4添加或删除设备模型组件

2.2块设备I/O请求处理

2.3 Linux SCSI子系统

2.3.1 SCSI的系统结构

2.3.2 SCSI子系统与内核上层的交互

2.3.3 Linux SCSI子系统的分层结构

2.3.4使用这三层的IO请求流程

2.3.5 SCSI上层SD模块

2.3.6 SCSI中间层

2.3.7 SCSI下层驱动模块

2.4 Linux USB子系统

2.4.1 USB协议的设计思想

2.4.2 LINUX USB子系统的体系结构

2.5一次IO数据传输流程及存在的问题

2.5.1一次IO数据传输流程

2.5.2存在的问题

3 系统改进设计

3.1系统优化体系图

3.2 SD卡设备驱动程序

3.2.1 SD卡设备硬件结构

3.2.2 Linux平台MMC的实现

3.3 USB大容量存储类

3.3.1 Bulk-Only传输协议

3.3.2 USB大容量存储类设备工作原理

3.4优化设计思想

4 系统实现

4.1硬件框架

4.2 USB驱动程序

4.2.1驱动程序支持哪些设备

4.2.2注册USB驱动程序

4.2.3探测和断开的细节

4.2.4提交和控制urb

4.3 USB设备的配置和管理过程

4.4 USB主机端大容量存储设备驱动程序分析

4.4.1结构us_data

4.4.2驱动程序支持哪些设备

4.4.3注册USB驱动程序

4.4.4大存储驱动程序的探测函数storage_probe

4.4.5 USB大容量块设备驱动程序IO流程

4.5 USB设备大容量存储设备驱动程序实现和优化

4.5.1 USB从设备驱动程序体系结构

4.5.2 Gadget相关结构

4.5.3如何表现为USB mass storage设备部分

4.5.4 SCSI协议的处理部分

4.5.5 SC_READ_10和SC_WRITE_10的具体实现

5 传输速度测试

6 结束语

6.1全文总结

6.2下一步的工作

参考文献

作者简历

展开▼

摘要

智能手机、PDA掌上电脑、数码相机、MP4等嵌入式产品层出不穷,人们对存储设备的数据传输速度要求越来越高。这些嵌入式产品一般都采用USB接口,如何提高USB接口的大容量存储设备的存储速度是摆在我们面前的课题。 Linux具有内核小、效率高、源代码开放等优点,是众多嵌入式设备的首选操作系统。本文从分析Linux设备模型、SD卡设备驱动程序、Linux内核2.6对SCSI协议的实现及USB协议入手,结合主机端的device驱动程序和设备端存储设备gadget驱动程序,分析出Linux平台下设备端与主机端的一次数据读写所需的流程,发现设备端对数据传输的处理,需要经过文件系统、块设备层、I/O调度层、SD卡驱动层等多层处理,导致系统开销比较大,极大的影响了数据传输速度。 基于上述分析结果,本文提出了Linux平台下USB大容量存储设备的设备端驱动程序的优化方案,使IO请求在到达设备端后,无需经过文件系统、块设备层、I/O调度层,直接将该请求挂装到SD卡驱动程序的请求队列中,简化了一次数据读写的IO流程,并在实现该优化方案的基础上,通过不断地测试和改进,将全速数据传输速度从原来的读2MB/S,写1MB/S提高到了读10MB/S,写8MB/S。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号