(电路与系统专业论文)嵌入式usb海量存储系统的设计与实现.pdf_第1页
(电路与系统专业论文)嵌入式usb海量存储系统的设计与实现.pdf_第2页
(电路与系统专业论文)嵌入式usb海量存储系统的设计与实现.pdf_第3页
(电路与系统专业论文)嵌入式usb海量存储系统的设计与实现.pdf_第4页
(电路与系统专业论文)嵌入式usb海量存储系统的设计与实现.pdf_第5页
已阅读5页,还剩55页未读, 继续免费阅读

(电路与系统专业论文)嵌入式usb海量存储系统的设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 通用串行总线 u n i v e r s a ls e r i a lb u s u s b 作为计算机外设总线 凭其高速 稳定 易用 廉价 等特点 赢得了市场的广泛认可 并迅速得到普及 目前已经发展成为嵌入式系统与计算机连接的 首选总线标准 本文包括嵌入式u s b 海量存储系统的设计和实现两大部分内容 设计部分简述了u s b 协议标 准 阐述了系统的设计方案 方案由两部分构成 一是硬件平台的选型 处理器采用三星公司的 3 c 2 4 1 6s o c s y s t e mo i lc h i p 该芯片内置有支持u s b2 0 协议的设备端控制器 为系统的软件设 计提供了良好的支持 二是系统的软件设计 结合u s b 海量存储 m a s ss t o r a g e 类协议给出了w i n d o w s c e5 0 操作系统下的驱动方案 包括总线驱动和m a s ss t o r a g e 设备类驱动 本设计还提供了设备类 驱动和存储介质的动态切换两种扩展功能 实现部分着重于软件实现 包括总线驱动实现 设备类驱动实现和扩展功能实现 总线驱动采 用w i n d o w sc e5 0 标准的流式接口驱动架构及面向对象的编程技术 结构清晰 具有很好的可移植 性和可扩展性 设备类驱动采用模块化设计思想 分别实现了b u l ko n l y 数据传输子模块和s c s i 命 令处理子模块 在两个扩展功能方面 设备类驱动的动态切换实现 通过总线驱动首先卸载当前设 备类驱动 然后加载新的设备类驱动来完成 而存储介质的动态切换 则通过修改注册表的键值项 并重新初始化u s b 软件协议栈来完成 本文所实现的嵌入式u s b 海量存储系统基于w i n d o w sc e5 0 和 3 c 2 4 1 6 微处理器平台进行了 功能验证 并从兼容性 设备类驱动动态切换和传输速率三个方面测试了系统性能 测试结果表明 嵌入式u s b 海量存储系统的读写平均传输速率分别达到3 7 7 3 lm b p s 2 0 1 3 3m b p s 且扩展功能也 通过了验证 关键词 u s b 海量存储 b u l ko n l y 传输 s c s i 设备驱动 a b s t r a c t a b s t r a e t t h eu n i v e r s a ls e r i a lb u s a sak i n do fp e r i p h e r a lb u ss t a n d a r d h a sw o nam a r k e t p l a c ea p p r o v a la n d h a sb e e np o p u l a r i z e dp r o m p t l yw i t hi t so b v i o u sb e n e f i t s s u c ha sh i g hs p e e d r o b u s t n e s s e a s e t o u s e a n d i o w c o s ts o l u t i o n p r e s e n t l y u s bh a sb e c o m et h ep r e f e r r e db u ss t a n d a r df o rt h ei n t e r c o n n e c t i o nb e t w e e n p ca n de m b e d d e ds y s t e m t w op a r t sa r ei n c l u d e di nt h i st h e s i s w h i c ha r et h ed e s i g na n dt h ei m p l e m e n t a t i o no ft h ee m b e d d e d u s bm a s ss t o r a g es y s t e m t h ep r o t o c o ls t a n d a r do ft h eu s ba n dt h es y s t e ms c h e m ed e s i g na r ed e s c r i b e di n t h ed e s i g np a r t t h es y s t e ms c h e m ec o n s i s t so fh a r d w a r ep l a t f o r ms e l e c t i o na n ds o f t w a r ed e s i g n h a r d w a r e p l a t f o r ma d o p t ss a m s u n gs 3 c 2 4l6s o cp r o c e s s o r i nw h i c had e v i c e e n dc o n t r o l l e ro fu s b2 0p r o t o c o l h a sb e e ne m b e d d e dt os u p p o r ts o f t w a r ed e s i g n c o m b i n i n gw i t hu s bm a s ss t o r a g ep r o t o c o l b u sd r i v e ra n d m a s ss t o r a g ed e v i c e c l a s sd r i v e rs c h e m eb a s e do nw i n d o w sc e5 0o p e r m i n gs y s t e mh a v eb e e nd e s i g n e d b e s i d e s t h ed e s i g np r o v i d e st w oe x t e n d e df u n o t i o n s o n ei st h ed y n a m i cs w i t c h i n gf u n c t i o no ft h e d e v i c e c l a s sd r i v e nn eo t h e ri ss t o r a g em e d i u md y n a m i cs w i t c h i n gf u n c t i o n t h ek e yp o i n tf o rt h ei m p l e m e n t a t i o np a r ti ss o f t w a r er e a l i z a t i o ni n c l u d i n gt h er e a l i z a t i o no ft h eb u s d r i v e r d e v i c e c l a s sd r i v e ra n de x t e n d e df u n c t i o n w i t ht h ea d o p t i o no ft h es t a n d a r ds t r e a mi n t e r f a c ed r i v e r a r c h i t e c t u r eo fw i n d o w sc e5 0a n dt h eo b j e c t o r i e n t e dp r o g r a m m i n gt e c h n i q u e s t h eb u sd r i v e rh i 曲1 曲t s i t s e i fi nc l e a rs t r u c t u r e g o o dp o r t a b i l i t ya n ds e a l a b i l i t y m a s ss t o r a g ed e v i c e c l a s sd r i v e ri sd e s i g n e di na m o d u l a r i z a t i o nw a y n a m e l yt h eb u l ko n l yd a t at r a n s m i s s i o ns u b m o d u l ea n ds c s ic o m m a n dp r o c e s s i n g s u b m o d u l e s t h ed e v i c e c l a s sd r i v e rd y n a m i cs w i t c h i n gi sr e a l i z e dt h r o u g hu n i n s t a l l i n gp r e s e n t d e v i c e c l a s sd r i v e ra n dl o a d i n gn e wd e v i c e c l a s sd r i v e rb yb u sd r i v e rw h i l et h es t o r a g em e d i u mi s c o m p l e t e db ym o d i f y i n gr e g i s t r ya n dr e i n i t i a l i z i n gu s bp r o t o c o ls t a c k s t h ee m b e d d e du s bm a s ss t o r a g es y s t e mb a s e do nw i n d o w sc e5 0a n ds 3 c 2 4 1 6m i c r o p r o c e s s o r p l a t f o r md e s c r i b e di nt h i st h e s i sh a sb e e ns u c c e s s f u l l yf u n c t i o n a l i t yv e r i f l e d a n dt h es y r s t e mi st e s t e do n c o m p a t i b i l i t y d e v i c e c l a s sd r i v e rd y n a m i cs w i t c h i n ga n dt r a n s m i s s i o ns p e e d t h er e s u l t ss h o wt h a tt h ef i l e r e a d i n gs p e e do ft h ee m b e d d e du s bm a s ss t o r a g es y r s t e mc a nr e a c ht o3 7 7 31m b p sw h i l ef i l ew r i t i n gr a t e a c h i e v e st o2 0 13 3m b p s a n dt h ee x t e n d e df u n c t i o n sa r ev e r i f l e ds u c c e s s f u l l y k e yw o r d s u s b m a s ss t o r a g e b u l ko n l yt r a n s p o r t s c s i d e v i c ed r i v e r n 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成 果 尽我所知 除了文中特别加以标注和致谢的地方外 论文中不包含其他人已经发表 或撰写过的研究成果 也不包含为获得东南大学或其它教育机构的学位或证书而使用过 的材料 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并 表示了谢意 研究生签名 年虹日 东南大学学位论文使用授权声明 东南大学 中国科学技术信息研究所 国家图书馆有权保留本人所送交学位论文的 复印件和电子文档 可以采用影印 缩印或其他复制手段保存论文 本人电子文档的内 容和纸质论文的内容相一致 除在保密期内的保密论文外 允许论文被查阅和借阅 可 以公布 包括刊登 论文的全部或部分内容 论文的公布 包括刊登 授权东南大学研 究生院办理 研究生签名 珲童吐导师签名 薄日期 第一章绪论 1 1 引言 第一章绪论 个人电脑 p e r s o n a lc o m p u t e r p c 诞生初期 其外设的接口大多是串行接口或并行接口 随着计 算机技术的飞速发展 人们应用需求的不断提升 这些接口的缺点也越来越明显 数据传输速度较 慢 每个接口只能连接一个设备 不能很好的支持即插即用等等 通用串行总线 u n i v e r s a ls e r i a lb u s u s b 正是为了解决速度 扩展能力和易t j 性这三个问题而提出的低成本解决方案 u s b 外设以惊人 的速度发展 迄今为止 各种u s b 外设已经有上千种 u s b 技术的这些突出的优点 使得它在嵌入 式领域也得到了广泛的应用 嵌入式u s b 产品也越来越多 u s b 最早出现于1 9 9 4 年1 1 月 目的是简化p c 外设的连接 使p c 接口的扩展更加容易 u s b 具有数据传输可靠 速度快 即插即用 节省系统资源 成本低和兼容性好等一系列优点 是计算 机外设连接的重大变革 经过多年发展 目前u s b 已经发展到3 0 版本 支持低速 1 5m b p s 全 速 1 2m b p s 高速 4 8 0m b p s 超速 4 8g b p s 四种传输速率 并且出现了u s bo n t h e g o o t g 补充协议 u s b 总线是一种单向总线 主控制器通常在p c 机上 设备不能主动与主机通信 u s bo t g 规 范是为了满足便携式设备之间互相通信的要求在u s b2 0 的基础上提出来的一个补充规范 在以往 的u s b 总线拓扑中 必须要有一个像p c 一样的主机端 所有的数据收发均有主机端来控制 两个 非主机便携式设备之间不能自由地相互交换数据 u s bo t g 规范的实现 使得一个u s b 接口可以 同时拥有u s b 主机和u s b 设备的两种功能 根据与其连接设备的属性 u s bo t g 接口会自动转化 成相应的接口类型 u s b 规范定义了几个大类 海量存储类 如移动硬盘 c d d v d 读卡器存储设备等 音频类 如u s b 音响等音频设备 监视器类 如显示器类 通信类 如m o d e m 等 有线连接类 如u s b 网 卡 d s l 路由器 共享器等 无线类 如蓝牙适配器 无线网卡等 人机界面类 如键盘 鼠标等 目前 u s b 在存储类设备和影音图像类设备中应用尤为广泛 特别是u 盘和智能卡读卡器 价格适 中 使用方便 已逐渐成为替代软驱的新一代移动存储工具 在工业 办公事务上越来越广泛 究其原冈 u s b 主要优点是i l j 1 即插即用 这就是u s b 的易用性 支持熟插拔和操作系统的自动配置 使得可以在不重启 p c 的情况下就可以插入和拔出设备 2 低功耗 u s b 有一套独特的电气层机制来保证其低功耗 此外 u s b 协议为设备定义了2 种供电模式 自供电和总线供电 在总线供电模式下 u s b 设备不需要任何外接电源设备 从而简 化了硬件结构 3 可选的多种速率模式 这4 种速率模式上面已经提到了 分别为低速 全速 高速和超速 不同的速率可以满足不同的外设需求 低速设备可以用在鼠标 键盘等对传输速率要求不高 却严 格要求低成本的外设产品上 高速 超速设备可以用在大容量移动硬盘 光驱 视频设备等外设产 品上 4 支持多种设备类 从音频设备 海量存储设备 m a s ss t o r a g e 到人机接口 h i d h u m a n i n t e r f a c ed e v i c e 等等 几乎计算机各种外设都可以在u s b 中找到相应的支持 基于以上特点 u s b 得到了广泛的应用 1 2 本文提出的意义 目前国内已经有很多u s b 外设问世 如u s b 数字相机 可移动存储器 u s b 扫描仪 u s b 显 示器 u s b 硬盘和u s b 指纹识别器等 相比之下国外相关机构以及公司的研究成果和产品规模要比 国内更丰富 广泛一些 其技术已经形成产业化 国内相关领域虽然也有研究成果 然而在整体技 术上和规模上还需要进一步的努力 在民族产业已经蓬勃发展的今天 这方面的差距正在不断缩小 由于u s b 总线的高速 灵活和易扩展性 在工业场合也受到足够的重视 并已应用于很多数据 传输场合 比如数据采集 视频采集 大型喷印系统等 还被应用于工业控制场合 高实时性要求 的工业设备控制 动态图像实时传输等 对于嵌入式系统 p c 与其之间的数据传输以及在嵌入式系统上的存储成为体现嵌入式系统人性 化的一个问题 这一方面要求下载到嵌入式系统中的文件能够方便地管理 另一方面要求可靠而快 速的数据传输方式 这种高速可靠传输通过在嵌入式系统上扩展出构建在u s b 技术上的海量存储系 东南大学硕上学位论文 统来实现 当前实现u s b 海量存储主要有两种实现方案 其 是采用无操作系统的方案 在该方案 中 u s b 固件程序代码中有一个主循环 并且基于硬件中断驱动的来处理u s b 的各类协议请求 其 缺点是 系统扩展能力弱 灵活性较差 其二是采用有操作系统的方案 即处理u s b 设备数据传输 只是该操作系统上的一个进程而己 其优点是 采用操作系统方案具有极高的灵活性 可根据需要 方便地添加模块到系统中 以增加新的功能 人们对存储设备的数据传输速率要求越来越高 受c p u 的限制 大多数嵌入式系统采用的是 u s b1 1 协议 u s b1 1 协议中支持低速和全速两种传输速率 最大速率为1 2m b p s 在嵌入式系统 中 对于动则几g b 的视频文件而言这个速率远不能满足需求 在u s b2 0 协议中新加入了高速传 输模式 其最大理论传输速率为4 8 0m b p s 比全速模式快4 0 倍 同时u s b 协议针对不同的应用分 为了不同的类 如针对人机接口的有h i d 类 针对海量数据存储的有m a s ss t o r a g e 类 为外设提供 高速的u s b2 0 接口成为大势所趋 本文的宗旨 基于 3 c 2 4 1 6 微处理器的硬件平台 设计与实现嵌入式u s b 海量存储系统一 u s b 硬件接e l 设计 u s b 总线驱动及m a s ss t o r a g e 设备类驱动实现和设备类驱动动态切换设计 3 c 2 4 1 6 微处理器是s a m s u n g 公司推出的1 6 3 2 位r i s c r e d u c e di n s t r u c t i o ns e tc o m p u t i n g 精简指令集计算机 微控制器 它内嵌有3 2 位高性能a r m 9 2 6 e j 核 m m u 和c a c h e 支持u s b2 0 接口 整合了内存控制 器和n a n df l a s h 控制器等外围接口 软件系统采用m i c r o s o f tw i n d o w sc e5 0 操作系统 w i n d o w sc e 是高度模块化 多任务多进程的实时操作系统 支持多种硬件平台 支持有线和无线的网络连接 丰富的多媒体和多语言支持 强大的开发工具 使得系统设计更加灵活并便于扩展 目前 国内基于u s b 海量存储设备类规范的产品已经广泛使用 探讨利用u s b 接口进行高效 数据传输是一项具有现实意义的课题 基于w i n d o w sc e 系统的u s b 海量存储系统的设计和研究成 果能为今后相关方向的研究工作提供启发和帮助 有利于提高自主开发能力 提高我国信息产业在 世界上的核心竞争力和效益 1 3 主要研究工作 本文的工作主要是完成基于w i n d o w sc e5 0 操作系统和 3 c 2 4 1 6 微处理器平台的嵌入式u s b 海量存储系统 包括u s b 总线驱动 m a s ss t o r a g e 设备类驱动以及设备类驱动动态切换 具体研究工作包括 阐述了u s b2 0 协议 包括u s b 的系统结构 u s b 设备 控制和批量两种传输方式 了解了 u s b 协议层 熟悉令牌包 数据包 帧开始包和握手包等 讨论了m a s ss t o r a g e 类协议 包括 操作规范 命令集以及支持m a s ss t o r a g e 设备类的设备描述符 配置描述符 字符串描述符 接口描述符和端点描述符 进而明确了u s b 设备端的软件协议栈层次划分和实现框架 分析w i n d o w sc e5 0 设备管理器d e v i c e e x e 加载流式驱动程序的原理 理解和掌握了w i n d o w s c e5 0 操作系统的抽象总线一总线枚举器 以及物理总线架构 探讨了w i n d o w sc e5 0 操作系统和流式驱动程序的工作原理 熟悉 3 c 2 4 1 6 微处理器 结合 3 c 2 4 1 6 处理器的u s b2 0 设备控制器 在对u s b2 0 协议研究和分析的基础上 设计并实现 了u s b2 0 总线驱动和m a s ss t o r a g e 设备类驱动 底层的u s b 总线驱动以及上层的m a s ss t o r a g e 设备类驱动形成完整的u s b 海量存储系统的软件协议栈 实现了对u s bm a s ss t o r a g e 设备类 的支持 u s b 总线驱动通过d d l d e v i c ed r i v e ri n t e r f a c e 设备驱动接口 与m a s ss t o r a g e 设备类 驱动通信 而u s b 设备类驱动通过c o r e d l l d l i 模块调用存储设备驱动接口函数 从而访问物理 存储设备 设计和实现了u s b 系统的扩展功能 基于m i c r o s o f tw i n d o w sc e5 0 操作系统的设备使用u s b a c t i v e s y n c 传输大文件的速度远低于u s bm a s ss t o r a g e 因此 论文在u s b 总线驱动的基础上 实现了设备类驱动动态切换 通过动态切换到u s bm a s ss t o r a g e 功能来传输大文件 解决了传 输大文件时u s ba c t i v e s y n c 速度显得过慢的问题 深入理解了w i n d o w sc e 系统配置文件种类和作用 并编写了u s b 总线驱动和m a s ss t o r a g e 设 备类驱动的r e g r e g i s t r y 和b i b b i n a r yi m a g eb u i l d e r 文件 完成各模块的整合 对u s b 设备 的兼容性 设备类驱动动态切换和传输速率进行性能测评 1 4 论文组织 根据本文所涉及到的主要研究工作 将全篇结构主要安排如下 2 第一章绪论 第一章 绪论 简要介绍了论文的研究背景 主要研究工作和论文内容 第二章 u s b 协议基础 简要阐述了u s b 协议 u s b 系统结构 u s b 设备和设备的状态转换 机制 着重分析了控制和批量两种传输方式 深入理解了u s b 协议层 第三章 u s b 海量存储系统的方案设计 本章首先给出u s b2 0 海量存储系统的设计要求 然 后 选择s u m s u n g 3 c 2 4 16 微处理器和m i c r o s o f tw i n d o w sc e5 0 操作系统作为软硬件 平台 在该平台上 根据功能要求设计了一个可扩展的系统架构 采取分层结构 将 u s b 海量存储系统的软件架构分为u s b 总线驱动和m a s ss t o r a g e 设备类驱动两层 以 便当系统需要扩充新的功能时 只要完善总线驱动部分 而m a s ss t o r a g e 设备类驱动不 需或做少许改动即可实现特定功能 本文的设备类驱动和存储介质动态切换的功能均采 用这种方式实现 第四章 u s b 海量存储系统的软件实现 本章基于第三章选定的平台 实现了u s b 总线驱动和 u s bm a s ss t o r a g e 设备类驱动 包括流式接口函数 数据传输 u s b 协议的实现和m a s s s t o r a g e 设备类协议等 在此基础上 设计了u s b 设备类驱动的动态切换等扩展功能 第五章 系统配置和功能测试 本章首先分析了w i n d o w sc e 系统两种配置文件 编写了u s b 总线驱动和m a s ss t o r a g e 设备类驱动的r e g 和b i b 文件 然后对嵌入式u s b 海量存储 系统的兼容性 设备类驱动动态切换和传输速率进行了测试 并对测试结果做了相应的 分析 3 第二章u s b 协议基础 第二章u s b 协议基础 u s b 4 u n i v e r s a ls e r i a lb u s 通用串行总线 是用于p c 和外设之间通信的工业标准 最早出现 在1 9 9 4 年 当时c o m p a q d i g i t a le q u i p m e n t i b m i n t e l m i c r o s o f t 和n o r t h e r nt e l e c o m 七家公司 联合提出了u s b 标准 目的是以它来取代以往的多种p c 外设接口 诸如r s 2 3 2 p s 2 等 i zj i 川 u s b 的设计目标 在于提供一种即插即用 价格低廉 易于扩充的标准接口 可以满足较高速率的数据 传输 并且实现对诸如音频 视频等实时数据传输的充分支持 同时 具备高度的可扩展性 可以 应用于多种设备 u s b1 0 标准出现于1 9 9 6 年1 月 u s b1 1 标准则在1 9 9 8 年9 月提出 二者并没有实质性的区 别 u s b1 1 提供了两种传输速率 低速 l o ws p e e d 1 5m b p s 和全速 f u l ls p e e d 1 2m b p s 2 0 0 0 年4 月 c o m p a q h p i n t e l l u c e n t m i c r o s o f l n e c 和p h i l i p s 七家公司联合提出了u s b 2 0 标准 在兼容u s b1 1 的基础上 新标准提供了更好的性能 高速 h i g hs p e e d 模式下的传输速 率达到4 8 0m b p s u s b2 0 的高速传输速率很好地满足了海量存储 视频传输等场合的需求 本章阐述u s b2 0 协议 涵盖总线拓扑结构 数据流 事务处理格式以及u s b 设备状态转移图 等内容 2 1u b 总线拓扑 一个u s b 系统由三部分组成 分别是u s b 设备 u s b 互联和u s b 主机 u s b 总线的物理连 接是一种分层的菊花链结构 集线器 h u b 是每个星形的中心 p c 机就包含了主机和根集线器 用 户可以将外设或附加的集线器与之相连 这些附加的集线器可以连接另外的外设以及下层集线器 u s b 的总线拓扑结构 1 4 1 如图2 1 所示 图2 1u s b 总线拓扑结构 u s b 主要特色可归结为以下几点 为电缆和连接头提供了单一模型 一 自动检测外设 自动进行设备配置 驱动 动态连接 动态重置的外设 适应不同设备 传输速率从几千比特率到几十比特率 在同一线上支持同步 异步两种传输模式 可同时操作1 2 7 个物理设备 一 在主机和设备之间可以传输多个数据和信息流 支持多功能的设备 利用底层协议 提高了总线利用率 确定的带宽和低延迟适合电话系统和音视频的应用 4 第二章u s b 协议基础 2 2 物理连接 u s b 总线采用了四线传输线 四根线分别是 一 电源线v b u s 地线g n d 差分信号数据线d d u s b 电缆结构 4 1 如图2 2 所示 v b u s d 峥 n g n d v b u s d 卜 口 g n d 图2 2u s b 电缆 u s b2 0 提供了两种传输速率 4 1 0 全速 f u l ls p e e d 12m b p s 高速n i g hs p e e d 4 8 0m b p s 使用差分信号传输数据有效地提高了传输线的抗干扰能力 u s b 的时钟信号采用n r z i 编码并 被嵌入在差分信号中 2 3 数据流模型 2 3 1 框架 复杂系统往往采用层次结构来实现 不同层次的实现者只需要关心相关层的特性功能细节 而 不必掌握从硬件结构到软件系统的所有细节 主机连接设备 客户软件i f 功能 功能层 tt j iu s b 系统软件l 卜 u s b 逻辑设备i u s b 设备层 tt j i 嚣控制嚣 1 u s b 总线接口l u s b 总线 接口层 实斯 通何沉 逻辑通信流 二二 实施的部分 图2 3u s b 系统的分层结构 u s b 总线即采用了三层结构1 4 1 1 1 0 主机与设备都被划分成不同的层次 u s b 的分层结构如图 2 3 所示 黑色的箭头代表实际的信息流 在主机与设备之间的所有通信最终都是通过u s b 的传输线进 行 然而 在上层的水平层之间存在逻辑的主机一设备信息流 主机上的客户软件和设备端的功能层 之间的通信基于实际的应用需求及设备所能提供的能力 2 3 2 通信流 从逻辑上讲 u s b 数据传输是通过管道 p i p e 进行的 u s b 系统软件通过默认管道 与端点0 相 对应 管理设备 设备驱动程序通过其它的管道来管理设备的功能接口 实际的数据传输过程是这样 的 客户端驱动程序向u s b d u s bd r i v e r 接口提交u r b u s br e q u e s tb l o c k 请求 u s b d 驱动程序 接到请求后 调用h c d h o s tc o n t r o l l e rd r i v e r 接1 2 1 将u r b 转化为u s b 的传输 一个u r b 可以包 含一个或多个u s b 传输 然后h c d 将u s b 传输分解为总线事务 t r a n s a c t i o n 由主机控制器以包 p a c k e t 的形式发出 值得注意的是所有的u s b 事务都是u s b 主机发起的 任何外设都无权开始一 5 东南大学硕士学位论文 个传输 u s b 通信测4 1 的细节如图2 4 所示 冒道 眄个水平实体之l 司连接的抽象 数据传递机制 被传递的数据与u s b 相关的形式 图2 4u s b 通信流细节 u r b 是由操作系统定义的 而u s b 传输与总线操作是u s b 规范定义的 u s b 总线将1 m s 定义 为一帧 每帧都是以s o f 包开始 在这l m s 里u s b 进行一系列的总线操作 引入帧的概念主要是 为了支持与时间有关的总线操作 2 4u s b 协议层 所有u s b 总线操作都可以归结为三种包的传输 任何操作都是由主机发起的 主机以预先安排 好的时序 发出一个描述操作类型 方向 外设地址以及端点号的包 这个包被称为令牌包 然后 令牌包指定的数据发送者发出一个数据包或者指出它没有数据可以传输 数据的接收者一般要以一 个握手包作出响应 表示传输是否成功 2 4 1 字段的格式 一 同步字段 s y n c 所有的u s b 包都起始于同步字段 4 它被用于本地时钟与输入信号的同步 长度为8 位 s y n c 的最后两位作为一个记号表示p i d 的开始 包标识字段 p i d 紧跟在同步字段 4 之后的一段8b i t 的字节称为p i d 如图2 5 所示 p i d 字段的前四位用来标识 该数据包的类型 后四位则作为对前四位的校验 lsb msb i 竺j l l l 亡竺 匕竺 匕 j 图2 5p i d 字段 p i d 字段被分为标记p i d 共有i n o u t s e t u p 和s o f 四种 数据p i d d a t a 0 或d a t a l 握手p i d a c k n a k 或s t a l l 及特殊p i d 等 主机根据p i d 字段的类型来判断一个数据包中所包 含的数据类型 并执行相应的操作 地址字段 a d d r e s s 地址字段a d d r 6 0 指定了总共1 2 8 个地址 它根据p i d 所说明的令牌的类型指明了外设是数据 包的发送者或接收者 一旦外设被复位或上电 外设的默认地址为o 这时必须在主机枚举过程中 6 第二章u s b 协议摹础 赋予一个唯一的地址 而0 地址只能用于缺省值 不能分配作一般的地址 地址字段格式如图2 6 所示 lsb msb 图2 石地址字段 一 端点字段 e n d p o i n t 外设端点字段有四位 4 l 它使设备可以拥有几个子通道 所有的设备必须支持一个控制端点0 低速的设备最多支持两个端点 0 和一个附加端点 高速设备可以支持最多1 6 个端点 端点字段格 式如图2 7 所示 e n d p oe n d p le n d p ze n d l h i 图2 7 端点字段 帧号字段 这是一个1 1 位的字段 指明了目前帧的帧号 每过一帧 1 m s 这个字段的值加1 当达到最大 值7 f f h 后返回0 这个字段值存在于每帧开始的s o f 令牌中 数据字段 数据字段 4 作为一次u s b 数据传输的中心目的 在一个u s b 数据包中可以包含0 1 2 0 3 b y t e 的 数据 而且必须是整数个字节 如图2 8 所示 m s b l s b m s b 曰e 正正工 丑三王 b y t e n ib y t e n 图2 8 数据字段 c r c 字段 为保证控制 批量及中断传输中数据包的正确性 c r c 校验字段被引用到如标记 数据 帧开 始 s o f 这样的数据包中 c r c 校验可以给予数据以1 0 0 的正确性检验 2 4 2 包的格式 在u s b 系统中 有四种形式的数据包 令牌包 t o k e np a c k e t s 数据包 d a t ap a c k e t s 帧开始 包 s o fp a c k e t s 和握手包 h a n d s h a k ep a c k e t s p j 令牌包 其中包括i n 输入 o u t 输出 s e t u p 设置 和s o f s t a r to ff r a m e 帧开始 四种类型 其中 i n o u t s e t u p 的格式如图2 9 所示 对于o u t 和s e t u p 来说 a d d r 和e n d p 中所指明的端点将接收到主机发出的数据包 而对 附来说 所指明的端点将发出一个数据包 t o k e n 和s o f 包在三个字节的时间内以一个e o p e n d o f p a c k e t 结束 如果一个包被解码为t o k e n 包 但是并没有在3 个字节时间内以e o p 结束 它就会被看作非法或被忽略 同 l 二一 划 图2 9i n o u t s e t u p 令牌包格式 l s bm s b 图2 1 0s o f 令牌包格式 主机以一定的速率 1 m s 0 0 5 发送s o f 包 s o f 不引起任何操作 s o f 包的格式如图2 1 0 所 7 习 一 一b 东南大学硕士学位论文 示 数据包 用于传输真正数据的d a t a 数据包 因为p i d 的不同可以分为d a t a 0 和d a t a i 两种 d a t a 0 为偶数据包 d a t a i 为奇数据包 d a t a 数据包的奇偶性分类易于数据的双流水处理 而用于控制 传输的s e l l j p 数据包总是以d a t a 0 来传输数据 数据包格式如图2 1 l 所示 图2 1 l 数据包格式 一 握手包 握手包1 4 仅包含一个p l d 字段 a c k 形式的p i d 表明此次u s b 传输没有发生错误 数据已经 成功的传输 而n a k 形式的握手包则向主机表明此次u s b 传输因为c r c 校验错误或别的原因而失 败了 从而使得主机可以进行数据的重新传输 s t a l l 形式的响应向主机报告外设此刻正处于挂起 状态而无法完成数据传输 握手包的格式如图2 1 2 所示 图2 一1 2 握手包格式 需要指出的是 每个数据包的结束都会有两个b i t 宽的e o p 字段作为数据包结束的标志 e o p 在差分信号中表现为d 和d 都处于 0 状态 对于高速u s b 外设而言 这个脉冲宽度在1 6 0 1 7 5 n s 之间 而低速设备则在1 2 5 1 5 0 u s 之间 无论其后是否有其它的数据包 u s b 总线都会在e o p 字 段后紧跟lb i t 的总线空闲位 u s b 主机或外设利用e o p 来判断一个数据包的结束 2 4 3 事务处理 本文的嵌入式u s b 海量存储系统用到控制和批量两种事务处理方式 一 控制事务 控制传输最少有两个事务处理阶段 设置和状态l l 儿4 1 控制传输可以有选择性地包括设置和状态 阶段之间的数据阶段 在设置阶段 设置事务用于向功能部件的控制端点传输信息 设置事务在格 式上类似于输出 但是使用的是设置而不是输出的p i d 设置操作的细节如图2 1 3 所示 设置总是在设置事务的数据时相上使用d a t a 0p i d 收到s e t u p 包的功能部件必须接受设置数 据并用a c k 应答 如果数据被损坏 则丢弃数据且不返同握手 控制传输的数据阶段 如果有的话 由一个以上的输入或输出事务构成 遵守和批量事务相同 的规则 所有的数据阶段里的事务都必须有相同的方向 在数据时相中要发送的数据的数量和其方 向在设置阶段里被指定 如果数据的数量超过了先前确定的数据包大小 数据在支持最大的数据包 的多个事务中被发送 任何剩下的数据都作为剩余在最后的事务中被发送 空闲 数据匦杰囹 r 一 垦手申 数据 出错 空闲 圈主机口功能部件 图2 1 3s e t u p 事务处理的格式 控制传输的状态阶段是序列中的最后一个操作 状态阶段是以相对前面的阶段的数据流方向的 变化来刻划的 并且总是使用d a t a ip i d 如果控制传输序列没有数据阶段 那么它由设置阶段和 其后的由输入事务构成的状态阶段构成 控制事务的读写过程以及序列位 s e q u e n c eb i t 和数据包p i d 的使用 如图2 1 4 所示 8 第 章u s b 协议基m 图2 1 4 控制传精读写过程 批量事务 批量处理事务包括令牌 数据 应菩三个阶段 如图2 1 5 所示 对于输入操作如果设备不能返回数据那么必须发出n a k 或s t a l l 包 对于输出操作如果设备 不能接受数据也要返回n a k 或s t a l l n 自 目 圈2 1 5 批量处理事务格式 批量事务的读写过程以及序列位 s c q u c n o e b i t 和数据包p i d 的使用1 l i 如图2 1 6 所示 目 l 型卫 ul 堡旦 u j l 塑 l d a t a 0 d a t a o i 4 i i 面r 厂i i 面 厂j 而i i 口 1 i f i 订 i 而矿 图2 1 6 批量事务处理读写过程 2 5u s b 设备 一个u s b 设各的逻辑结构包括 u s 8 总线接口 u s 8 逻辑设备 功能层 u s b 设备的逻辑结构如酬2 7 所示 图2 1 7u s b 设备组成 u s b 设备提供的功能是多种多样的 但面向主机的接口是一致的 所以对于这些设备 主机可 以用同样的方式来管理它们与u s b 有关的部分 为了帮助主机辨认及确定u s b 设备 这些设备本身需要提供崩于确认的信息 在某一些方面的 信息 所有设各都是一样的 而另一些方面的信息 由这些设备具体的功能决定 信息的具体格式 是不定的 由设备所妊的设备级决定 套印墓盖一辱 孽套套孕蚤 东南大学硕士学位论文 2 6u s b 设备的状态 u s b 设备的状态转换关系 4 1 如图2 1 8 所示 图2 1 8u s b 设备的状态转换图 下面具体叙述其各个状态 连接态 a t t a c h e d u s b 设备可被连接剑u s b 接口上或从接口断开 u s b 设备处在断开时的设备状态不在本节说 明之中 本节仅讨论那些处在连接状态的设备特性与操作 上电态 p o w e r e d u s b 设备的电源可来自外部电源 也可从u s b 接口的集线器而来 电源来自外部的u s b 设备 称作自给电源 s e l f p o w e r e d 尽管自给电源的u s b 设备在连接上u s b 接口以前可能已经带电 但 它们直到连上u s b 接口后才能被看作上电状态 p o w e r e d 而这时候v b u s 已经对设备产生作用了 一个设备可能有既支持自给电源的 同时也支持总线供电的配置 有一些支持其中的一种 而 另一些设备配置可能只有在自给电源下才能被使用 设备对电源支持的能力是通过配置描述符来反 映的 当前的电源供给形式作为设备状态的一部分被反映出来 设备可在任何时候改变它们的供电 来源 比如说 从自给式向总线式改变 如果一个配置同时支持两种模式 那此状态的最大电源需 求就是指设备在两种模式下从v 叫s 上获得电能的最大值 设备必须以此最大电源作为参照 而究竟 处于何种状态是不考虑的 如果有一配置仅支持 种电源模式 那么电源模式的改变会使得设备失 去当前配置与地址 返回上电态 如果一个设备是自给电源的 并且当前配置需要大于1 0 0m a 电 流 那么如果此设备转到了总线供电式 它必须返回地址状态 a d d r e s s 自给电源式集线器使用 v b u s 来为集线器控制器 h u bc o n t r o l l e r 提供电源 因而仍然保持配置状态 c o n f i g u r e d 尽管自给 电源停止供电 默认态 d e f a u l t 设备上电以后 在它从总线接收到复位之前不应对总线传输发生响应 在接收到复位信号之后 设备才在默认地址处变得可寻址 地址态 a d d r e s s 所有的u s b 设备在上电复位以后都使用默认地址0 每一个设备在连接并复位后由主机分配一 1 0 第二章u s b 协议摹础 个唯一的地址 当设备处于挂起状态时 它保持这个地址不变 配置态 c o n f i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论