首页> 中文学位 >嵌入式LINUX下USB2.0设备驱动设计与实现
【6h】

嵌入式LINUX下USB2.0设备驱动设计与实现

代理获取

目录

文摘

英文文摘

声明

第一章 引言

1.1课题研究背景

1.2 USB2.0以及嵌入式Linux概述

1.3本文课题来源、目标和本人任务

1.4本文结构

第二章 USB 2.0协议简介

2.1 USB协议总览

2.2 USB的系统结构

2.2.1总线的拓扑结构

2.2.2内部层次关系

2.2.3数据流模式

2.3 USB传输模式

2.3.1控制传输

2.3.2同步传输

2.3.3中断传输

2.3.4块传输

第三章 BULK-ONLY海量存储协议

3.1 BULK-ONLY协议简介

3.1.1 Command Block Wrapper(CBW)介绍

3.1.2 Command Status Wrapper(CSW)

3.2 BULK-ONLY传输条件

3.2.1命令传输

3.2.2数据传输

3.2.3状态传输

3.2.4相位错误

3.2.5复位恢复

3.3主机/设备之间的数据传输

3.3.1合法且有意义的CBW

3.3.2合法且有意义的CSW

3.3.3设备端错误处理

3.3.4主机端错误处理

3.3.5错误的类别

3.4 CBW命令段(UFI命令)

3.4.1 UFI命令格式

3.4.2 UFI命令简介

第四章 USB海量存储设备驱动详细设计

4.1概述

4.2 Linux环境下加载驱动

4.3初始化模块及端点0解析

4.3.1概述

4.3.2变量描述

4.3.3函数描述

4.4块数据传输

4.4.1概述

4.4.2变量描述

4.4.3函数描述

4.5 UFI协议解析

4.5.1概述

4.5.2变量描述

4.5.3函数描述

4.6 U盘驱动总体流程图

第五章 软件验证的测试程序详细设计

5.1测试目的及方法

5.2测试环境及概述

5.2.1寄存器测试

5.2.2通道测试

5.2.3业务测试

5.3寄存器测试程序详细设计

5.3.1测试方法

5.3.2测试程序设计

5.4通道测试详细设计

5.4.1测试方法

5.4.2测试程序设计

5.5业务测试

5.6测试结果

第六章 结论与展望

致谢

参考文献

个人简历、在学期间的研究成果及发表的学术论文

展开▼

摘要

USB2.0接口和基于LINUX的驱动程序的应用已经非常广泛,特别在电子消费类领域。基于LINUX下的USB2.0设备则更是市场的需求。本文介绍一种基于嵌入式LINUX的USB2.0设备驱动的设计,主要对一种USB海量存储设备驱动的设计及其测试驱动的设计进行讨论。 该驱动是基于学校自主研发的AHB_USB2.0 IP核而设计的。该口核支持USB2.0协议,并兼容USB 1.1协议;支持AMBA 2.0协议和UTMI 1.05协议。该IP核一侧通过UTMI接口或ULPl接口的PHY与USB2.0主机端进行通信;另一侧则通过AHB总线与ARM相连。 USB2.0设备驱动的设计分为三个大模块:系统初始化和端点0解析、块数据传输和UFI协议分析。系统初始化和端点0解析模块主要解析USB协议,实现了USB设备的总线列举;块数据传输模块主要解析USB海量传输协议BULKONLY协议,实现了数据的块传输;UFI协议分析模块则通过解析USB媒质接口协议UFI命令集,实现了内存虚拟FLASH的读写。 该驱动设计遵循USB协议、Bulk Only协议和UFI协议,由外挂ARM实现USB设备命令和UFI命令的解析,并执行相应的操作,实现常规数据读写访问、内部DMA或外部DMA等多种方式的切换。 该IP及驱动验证测试可分为寄存器测试、通道测试和业务测试三层。寄存器测试主要用于测试寄存器读写是否正确;通道测试用于测试各个端点的各种传输模式是否工作正常;业务测试则是通过完成一个完整的U盘驱动并测试其是否能够完整完成一个U盘功能。 本项目最终已经通过EDA验证和FPGA测试,并且已经在内嵌ARM核的FPGA系统上实现了多个U盘。这个FPGA系统的正确工作,证明了整个项目是成功的,也证明了USB2.0驱动以及测试程序是成功的。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号