linux下USB大容量存储设备驱动分析与实现

linux 下USB 大容量存储设备驱动分析与实现

【摘要】本文介绍了linux USB子系统架构及USB 协议,重点分析了linux 下USB 大容量存储设备驱动程序,并结合U 盘特点对设备驱动程序做了可靠的裁剪,以交叉编译和控制台调试的方式,在TQ2440 ARM 开发板上成功实现了设备驱动模块的加载与卸载,最终达到了U 盘热插拔和读写的目的。

【关键词】USB ;大容量存储设备;设备驱动

USB (universal serial bus)通用串行总线是一种高速、支持即插即用和热插拔的总线标准,由intel 、microsoft 等公司制定,适用于多种USB 外围设备(U 盘、USB 键盘鼠标、USB 摄像头等)与主机之间的高速数据传输,USB2.0协议规定的最大传输速率可达480Mb/s,突破了传统串行总线的带宽限制。

Linux 作为一种性能稳定,可定制,兼容性强的开源操作系统,在嵌入式设备中得到了广泛应用,且开发者可以方便地获得linux 社区提供的强大技术支持,从而能够大大降低开发成本。

本文以天嵌公司的TQ2440 ARM 开发板为硬件平台,以linux2.6.30为操作系统内核,通过串口工具secure CRT,使用金士顿U 盘作为USB 存储设备,的分析并实现了linux 下USB 大容量存储设备驱动。

1.USB 子系统

类似于linux scsi子系统,USB 子系统也采用树形拓扑结构,层级关系因系统功能的不同而不同,拓扑模型如图1所示。系统作为主机时拓扑层级为:USB 设备驱动、USB 核心、USB 主控制器驱动;作为从设备时层级为:Gadget 驱动、Gadget API 、USB 设备控制器驱动。本文以linux 为主机系统,U 盘为从设备,因此只讨论主机侧拓扑结构。

USB 设备驱动负责:向USB 核心注册设备驱动、管理USB 设备的探测与断开、实现与USB 核心通信;USB 核心提供一系列数据结构,宏定义和函数来抽象底层硬件设备,为设备驱动和主控器驱动提供特定的接口,读取并解析USB 设备和配置描述符,为USB 设备分配地址,转发设备驱动数据包,配置设备,维护设备链表和设备驱动链表,维护设备信息;USB 主控制器驱动负责:与核心层通信、管理主控制器与设备的实际通信。

通常厂商提供主控制器驱动,而linux 实现了USB 核心(usb core )部分,因此本文将研究USB 设备驱动。

2.USB 协议

2.1 设备,配置,接口,端点

linux 下USB 大容量存储设备驱动分析与实现

【摘要】本文介绍了linux USB子系统架构及USB 协议,重点分析了linux 下USB 大容量存储设备驱动程序,并结合U 盘特点对设备驱动程序做了可靠的裁剪,以交叉编译和控制台调试的方式,在TQ2440 ARM 开发板上成功实现了设备驱动模块的加载与卸载,最终达到了U 盘热插拔和读写的目的。

【关键词】USB ;大容量存储设备;设备驱动

USB (universal serial bus)通用串行总线是一种高速、支持即插即用和热插拔的总线标准,由intel 、microsoft 等公司制定,适用于多种USB 外围设备(U 盘、USB 键盘鼠标、USB 摄像头等)与主机之间的高速数据传输,USB2.0协议规定的最大传输速率可达480Mb/s,突破了传统串行总线的带宽限制。

Linux 作为一种性能稳定,可定制,兼容性强的开源操作系统,在嵌入式设备中得到了广泛应用,且开发者可以方便地获得linux 社区提供的强大技术支持,从而能够大大降低开发成本。

本文以天嵌公司的TQ2440 ARM 开发板为硬件平台,以linux2.6.30为操作系统内核,通过串口工具secure CRT,使用金士顿U 盘作为USB 存储设备,的分析并实现了linux 下USB 大容量存储设备驱动。

1.USB 子系统

类似于linux scsi子系统,USB 子系统也采用树形拓扑结构,层级关系因系统功能的不同而不同,拓扑模型如图1所示。系统作为主机时拓扑层级为:USB 设备驱动、USB 核心、USB 主控制器驱动;作为从设备时层级为:Gadget 驱动、Gadget API 、USB 设备控制器驱动。本文以linux 为主机系统,U 盘为从设备,因此只讨论主机侧拓扑结构。

USB 设备驱动负责:向USB 核心注册设备驱动、管理USB 设备的探测与断开、实现与USB 核心通信;USB 核心提供一系列数据结构,宏定义和函数来抽象底层硬件设备,为设备驱动和主控器驱动提供特定的接口,读取并解析USB 设备和配置描述符,为USB 设备分配地址,转发设备驱动数据包,配置设备,维护设备链表和设备驱动链表,维护设备信息;USB 主控制器驱动负责:与核心层通信、管理主控制器与设备的实际通信。

通常厂商提供主控制器驱动,而linux 实现了USB 核心(usb core )部分,因此本文将研究USB 设备驱动。

2.USB 协议

2.1 设备,配置,接口,端点


相关内容

  • 2015.3计算机三级嵌入式新题(8套版)
  • 全国计算机等级考试三嵌入式系统开发技术题库第7套 一.选择题 1.下列产品中不属于嵌入式系统的是: A .洗衣机 B .空调机 C .个人电脑 D .电子血压计 2.下面关于嵌入式系统的叙述中,错误的是 A) 嵌入式系统所涉及的应用领域非常广泛 B) 嵌入式系统在数量上远远超过了各种类型的通用计算机 ...

  • 智能家居设计说明书
  • 智能家居设计说明书 姓名:孔洋 学号:SA09225389 日期:2010年7月13日 一.二. 1.1.2.三. 1.2.����四. 1.2.3.五. 项目概述.................................................................... ...

  • 嵌入式系统课程设计选题要求及题目
  • 嵌入式系统课程设计-选题要求及课题 1.嵌入式系统课程设计时长两星期,要求学生分组进行课程设计,每组学生人数为2-3人(可在不超过3人的范围内由指导教师具体规定),报告雷同超过60%者,成绩都记不及格! 2.学生需要在附后的设计题目总表中进行选题,原则上需要在6月17号前完成选题,并开始课程设计工作 ...

  • 火柴盒PC
  • 如果你喜欢自行制造PC或者就想要极便于携带的PC,这些小型设备兴许派得上大用场. 计算机历史基本上可以一言以蔽之:越来越小.下一代计算设备比上一代做得更小巧.更节能.功能更强.现在我们已到了这个阶段:整个PC可以塞入到比火柴盒或口香糖大不了多少的空间. 这一批新"火柴盒电脑"(又 ...

  • 基于Android平台的家庭植物工厂智能监控系统_刘彤
  • 基于Android平台的家庭植物工厂智能监控系统 刘 彤,贺宏伟,李 尧,马建设 518055) (清华大学深圳研究生院/深圳LED重点实验室,广东深圳 摘 要:随着人们生活品质的提高,家庭植物工厂受到越来越多的关注.为此,设计了一种以LED光源模拟太 阳光的人工光型密闭式家庭植物工厂.为了使该家庭 ...

  • 计算机硬件笔试试题
  • 1.通常说一款CPU 的型号是" 奔腾4_2.8GHz" ,其中,"2.8GHz" 是指CPU 的哪项参数(C ). A .外频 B .速度 C .主频 D .缓存 2.在以下存储设备中,( D )存取速度最快. A .硬盘 B .寄存器 C .内存 D .C ...

  • 商场会员管理实训系统
  • 商场会员管理实训系统 (型号:UP-ICCard) 1. 平台功能 会员及产品信息管理 商城管理员可以利用系统提供的服务器PC 机上相应的软件进行新用户的注册,新产品的登记,记录用户购买产品信息和查询所有用户信息和产品信息,也可以删除一些记录.系统会自动根据用户购买产品的情况进行积分和打折的处理. ...

  • 基于ARM的蓝牙无线通信模块的设计
  • 湖南文理学院 课程设计报告 课程名称: 嵌入式系统课程设计 专业班级: 应用电子技术09201班 学生姓名: 崔 剑 指导教师: 袁 里 弛 完成时间: 2011年12月25日 报告成绩: 卷 首 摘 要 传统工业数据通信系统以单片机为下位机采集系统.PC 构建的数据中心以及RS232等有线方式构建 ...

  • HMI人机界面
  • HMI HMI是Human Machine Interface 的缩写,"人机接口",也叫人机界面.人机界面(又称用户界面或使用者界面)是系统和用户之间进行交互和信息交换的媒介, 它实现信息的内部形式与人类可以接受形式之间的转换.凡参与人机信息交流的领域都存在 着人机界面. HM ...