(电路与系统专业论文)usb20闪盘固件的设计与实现.pdf_第1页
(电路与系统专业论文)usb20闪盘固件的设计与实现.pdf_第2页
(电路与系统专业论文)usb20闪盘固件的设计与实现.pdf_第3页
(电路与系统专业论文)usb20闪盘固件的设计与实现.pdf_第4页
(电路与系统专业论文)usb20闪盘固件的设计与实现.pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

(电路与系统专业论文)usb20闪盘固件的设计与实现.pdf.pdf 免费下载

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

文档简介

u s b 2 o 闪盘固件的设计与实现 摘要 计算机技术和存储技术的高速发展促使计算机的外围存储设备发生了巨大 的变化,一种基于u s b ( 通用串行总线) 技术和闪存技术相结合的闪盘的诞生 给计算机的移动存储设备产业带来了巨大的推动力。随着闪盘功能的不断增强, 闪盘固件的开发已成为闪盘技术研究的主要内容。 本文首先研究了固件设计的理论基础一一各种协议,包括u s b 2 0 协议、 b u l k o n l y 传输协议以及s c s i 命令集。然后讨论了一种支持u s b 2 0 全速协议 的闪盘固件的设计方法,提出了层次化的固件结构。最后本文介绍了固件设计 的硬件系统,硬件系统采用1 6 m b 闪存,在固件的硬件调试中,使用了硬件仿 真器u e c 5 和u s b 监视工具b u s h o u n d 软件。固件成功通过了硬件系统的在线 调试。 本文设计的固件具有较好的可移植性,对于u s b 2 0 闪盘固件以及其他块 存储设备类固件开发具有一定的借鉴意义。 关键词:u s b 2 0 协议;闪盘;固件;硬件仿真器 d e s i g na n di m p l e m e n t a t i o no fu s b 2 0f l a s hd i s kf i r m w a r e a b s t r a c t t h er a p i dd e v e l o p m e n to fc o m p u t e rt e c h n o l o g ya n dm e m o r yt e c h n o l o g ym a k e s ah u g ec h a n g ei np e r i p h e r a lm e m o r yd e v i c ef i e l d t h ef l a s hd i s k si n v e n t i o nb a s e d o nu s b ( u n i v e r s a ls e r i a lb u s ) t e c h n o l o g ya n df l a s hm e m o r yt e c h n o l o g yb r i n g s e n o r m o u si m p e t u st om o b i l em e m o r yd e v i c ei n d u s t r y w i t ht h ee n h a n c e m e n to f f l a s hd i s kf u n c t i o n s ,t h ed e v e l o p m e n to ff l a s hd i s kf i r m w a r eh a sb e e nt h em a i nt a s k t ot h er e s e a r c ho ff l a s hd i s kt e c h n o l o g y t h i sa r t i c l ef i r s t l ys t u d i e st h e o r yf o u n d a t i o n so ff i r m w a r ed e s i g n ,i n c l u d i n g u s b 2 0p r o t o c o l 、b u l k o n l yt r a n s p o r tp r o t o c o la n ds c s ic o m m a n d s t h e n ,t h e d e s i g na n di m p l e m e n t a t i o nm e t h o dt of u l l s p e e df l a s hd i s kf i r m w a r ew h i c hh o l d s o u tu s b 2 0s p e c i f i c a t i o ni sd i s c u s s e da n dt h eh i e r a r c h i c a la r c h i t e c t u r eo ff i r m w a r e i sp u tf o r w a r d a tl a s t ,t h eh a r d w a r es y s t e mo ff i r m w a r ed e s i g ni si n t r o d u c e d , w h i c hu s e s1 6 m bf l a s hm e m o r y d u r i n gh a r d w a r es y s t e md e b u g g i n gp r o c e s s , h a r d w a r ee m u l a t o ru e c 5a n db u s h o u n ds o f t w a r e ,w h i c hi st h eu s bm o n i t o rt 0 0 1 a r eu s e d t h ef i r m w a r ep a s s e st h ei n l i n ed e b u gp r o c e s ss u c c e s s f u l l y t h ef i r m w a r ep r e s e n t e di nt h i sd i s s e r t a t i o nc a nb et r a n s p l a n t e df l e x i b l y i t p r o v i d e st h er e f e r e n c et ot h ed e v e l o p m e n to fu s b 2 0f l a s hd i s kf i r m w a r ew i t h h i g h s p e e da n do t h e rb l o c km e m o r yc l a s sf i r m w a r e k e yw o r d s :u n i v e r s a l s e r i a lb u sp r o t o c o lv e r s i o n 2 0 ,f l a s hd i s k ,f i r m w a r e , h a r d w a r ee m u l a t o r 插图清单 图2 1u s b 的拓扑结构6 图2 2u s b 主机的组成6 图2 3u s b 设备的组成7 图2 - 4u s b 电缆一7 图2 5u s b 主机设备的详细示意图8 图2 - 6 控制读和写序列1 l 图2 7s e t u p 事务格式1 2 图2 8 批量传输格式1 3 图2 - 9b u l k o n l y 的命令、数据和状态传输流程图1 5 图3 1 设备状态图1 9 图3 2 闪盘系统组成框图2 7 图3 3 闪盘硬件结构2 7 图3 - 4 存储器组织2 8 图3 5u s b 0 原理框图2 8 图3 6u s b 0f i f o 分配2 9 图3 7k 9 f 2 8 0 8 u o c 阵列组织2 9 图3 8 端点0 中断处理流程图4 0 图3 - 9u s b 0f i f o 与闪存间的数据通信过程示意图4 2 图3 1 0t r a n s d a t a l n ( ) 函数流程图4 4 图3 1 ls c s ir e a d l o ( ) 函数流程图4 6 图3 1 2s c s iw r i t e l o ( ) 函数流程图4 7 图3 1 3t r a n s d a t a o u t ( 1 函数流程图4 7 图3 1 4 块擦除函数流程图4 9 图3 1 5 页读函数流程图4 9 图3 1 6 页编程函数流程图5 0 图4 1u e c 5 硬件连接图5 l 图4 2 编程器初始界面5 2 图4 3 编程器固件装入界面5 2 图4 4 编程器固件写入界面一5 3 图4 5 固件编译结果图5 4 图4 6 固件下载结果图5 4 图4 7 调试窗口l 5 5 图4 8 调试窗口2 5 5 图4 9 设备识别图一5 6 图4 1 0 图4 1 l 图4 1 2 图4 1 3 图4 1 4 图4 1 5 图4 1 6 图4 1 7 图4 1 8 设备枚举捕获图5 7 闪盘信息捕获图5 8 闪盘读分区数据捕获图5 9 闪盘写数据捕获图6 0 闪盘读数据捕获图6 l 新硬件识别图6 1 闪盘识别图6 2 调试环境图6 2 闪盘实物图6 3 表格清单 表2 1m a s ss t o r a g e 类的子类1 4 表2 2m a s ss t o r a g e 类的传输协议1 4 表2 - 3c b w 的结构1 5 表2 4c s w 的结构一1 6 表2 51 2 位s c s i 命令格式1 7 表2 6s c s i 操作码1 8 表3 1s e t u p 包数据格式2 l 表3 2u s b 标准请求代码2 l 表3 - 3 描述符类型2 2 表3 - 4 标准设备描述符2 2 表3 5 标准配置描述符2 4 表3 - 6 标准接口描述符2 4 表3 7 标准端点描述符2 5 表3 8 字符串描述符2 6 表3 - 9u s b o x c n 寄存器3 0 表3 1 0u s b o x c n 寄存器功能说明3 0 表3 1 1f a d d r 寄存器3 1 表3 1 2f a d d r 寄存器功能说明3 1 表3 1 3p o w e r 寄存器3 1 表3 1 4p o w e r 寄存器功能说明3 1 表3 1 5i n l i n t 寄存器一3 2 表3 1 6o u t l i n t 寄存器3 2 表3 1 7c m i n t 寄存器3 2 表3 1 8i n l i e 寄存器3 2 表3 1 9o u t l i e 寄存器3 2 表3 2 0c m i e 寄存器3 2 表3 - 2 1i n d e x 寄存器3 3 表3 2 2c l k r e c 寄存器3 3 表3 - 2 3c l k r e c 寄存器功能说明3 3 表3 2 4e o c s r 寄存器3 3 表3 2 5e o c s r 寄存器功能说明3 3 表3 2 6e i n c s r l 寄存器3 4 表3 2 7e i n c s r l 寄存器功能说明3 4 表3 2 8e i n c s r h 寄存器3 5 表3 2 9e i n c s r h 寄存器功能说明3 5 表3 3 0e o u t c s r l 寄存器3 5 表3 3 1e o u t c s r l 寄存器功能说明3 5 表3 3 2e o u t c s r h 寄存器3 5 表3 3 3e o u t c s r h 寄存器功能说明3 5 表3 3 4e o u t c n t l 寄存器3 6 表3 3 5f i f o n 寄存器3 6 表3 3 6k 9 f 2 8 0 8 u o c 的命令功能4 8 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成 果。据我所知,除了文中特别加以标志和致谢的地方外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得 盒筵王些盔堂 或其他教育机构的学位或证书 而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确 的说明并表示谢意。 学位论文作者签字:菇至颖签字日期:歹嘲年牛月朋日 学位论文版权使用授权书 本学位论文作者完全了解 盒罡王些友堂 有关保留、使用学位论文的规定,有权 保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅或借阅。本人 授权 金胆;些左堂 可以将学位论文的全部或部分论文内容编入有关数据库进行检 索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文者签名: 租颖 导师签名 签字日期:呻年卜月胡日 签字日期:刃年v 月厂日 学位论文作者毕业后去向: 工作单位: 通讯地址: 电话: 邮编: 移袤 致谢 在本论文完成之际,首先要感谢我的导师高明伦教授。高老师不仅学识渊 博、治学严谨,而且平易近人。在将近三年的硕士学习期间,高老师在我的学 业和生活等各方面给予了悉心的指导和亲切的关怀。高老师对科学的认真态度 和高尚的人格品质深深地感动着我,使我受益终身。在此,谨向高老师致以崇 高的敬意和衷心的感谢! 三年来,潘剑宏老师对我的学习、科研和生活给予了充分的关心和鼓励, 在此表示衷心的感谢! 感谢我的论文指导老师王锐博士在我论文完成过程中给予的极大的关怀和 指导。在本文的整个写作过程中,他提供了相当大的帮助,并在百忙中认真地 审阅我的论文,提出许多宝贵的修改意见。 感谢胡永华副教授对我学习和科研上的全力指导。在项目和论文过程中, 他不仅给予我技术上的指导,还在论文方向的选择和方案的制定等方面给予很 大的帮助。 感谢宋字鲲博士在我论文写作过程中给予的指导性的意见和建议。感谢邓 红辉老师和林微老师对我论文进度的督促与关心。 感谢u s b 项目组的其他成员于冰、沈健和聂晶在学习和精神上给我的帮助 与支持。大家共同走过了一段美好的岁月,团结协作,互相帮助,他们在项目 和论文过程中帮我解决了很多疑难问题。我为有这样优秀的合作伙伴而自豪。 感谢刘涛在我论文排版方面给予的帮助。感谢缪庭、张建生在我论文文字 校对上给予的帮助。 感谢合肥工业大学微电子设计研究所的所有同仁,他们陪我度过了三年硕 士阶段的美好时光,给我馏下了美丽的回忆。 感谢国家科技部中小企业创新基金项目( 项目基金号0 5 c 2 6 2 1 3 4 0 0 8 5 1 ) “u s b 2 0 微控制器芯片”。 最后,感谢我的父母对我多年来的培养、关心与支持,他们无私的爱我永 远铭记在心。 作者:程颖 2 0 0 7 年4 月 第一章绪论 1 1 课题研究背景 1 1 1u s b 技术的发展 随着计算机外设的不断发展和更新,计算机与外设之间的通信接口也在相 应地发展着。需要与计算机连接的外设种类繁多,如果计算机系统给每个外设 预留专用的i o 接口,系统成本将过高,外设连接也过于繁琐。为了降低系统 成本并简化设计,出现了外设总线。外设总线是用于连接外围设备的辅助总线, 旨在提高各种外围设备的兼容性,尽量减少计算机系统的对外接口,同时实现 外设的自动识别和配置。 u s b 是一种外设总线,它是英文u n i v e r s a ls e r i a lb u s 的简称,中文名称是 “通用串行总线”。它在1 9 9 5 年被提出,并由c o m p a q 、d i g i t a l 、i b m 、i n t e l 、 m i c r o s o f t 、n e c 和n o r t h e r n t e l e c o m 等七个在计算机领域和通信领域中处于领 先地位的公司所组成的联盟定义和推广【2 1 。同一年,该联盟建立了实施者论坛 ( 以下简称u s b i f ) 来推动符合u s b 标准的高质量兼容设备的开发。 1 9 9 6 年,u s b i f 公布了u s b l 0 规范,这是第一个u s b 产品的产业标准。 1 9 9 8 年又发布了改进后的u s b l i 规范【2 】。同一年,m i c r o s o f t 推出了支持u s b 标准的w i n d o w s9 8 系统,符合u s b 标准的外围设备开始陆续出现,u s b 逐渐 成为最受欢迎的接口。 u s b 2 0 规范发布于1 9 9 9 年,它是在u s b l 1 规范的基础上发展起来的。 随着p c 性能的日益增强和外设功能的日益增多,用户应用( 如数字成像等) 都要求p c 与这些外设之间有更高性能的连接。为此,u s b 2 0 在原来定义的 i 5 m b s 和1 2 m b s 的基础上增加了第三个传输速率4 8 0 m b s 。由于u s b 2 0 规 范采用和u s b l 1 规范完全相同的体系结构,因此u s b 2 0 版本兼容u s b i 1 版 本的产品。u s b l 1 和u s b 2 0 都是面向p c 的规范,为了在一定程度上摆脱对 p c 的依赖,u s b i f 于2 0 0 1 年推出了u s bo t g ( o n t h e g o ) 规范口j ,该规 范是对u s b 2 0 的补充。 u s b 是p c 体系结构中的一种工业总线标准,具有易使用、传输速度快、 稳定性高、功耗低、价位低以及灵活性强等诸多优点。具体来说,u s b 接口具 有如下特性 4 1 : 1 方便终端用户使用 电缆和连接器的型号惟一; 最终用户不必了解电气细节; 自识别外设,自动将功能映射到驱动程序和配置: 外围设备可动态连接和重新配置。 2 高负荷工作、应用范围广 适用于带宽从几k b s 到几百m b s 的设备; 在同一组线路上同时支持同步和异步传输类型; 支持大量设备同时操作( 高达1 2 7 个地址) ; 支持主机与设备之间多种数据和消息流的传输; 支持复合设备; 协议开销低,总线利用率高。 3 同步带宽 为电话、音频和视频信号等提供合适的带宽和低延时。 4 灵活性 支持各种包格式,允许设备具有不同的设备缓冲选项; 通过调整包缓冲区的大小和延时,实现宽范围的设备数据速率; 协议内置了用于缓冲处理的流控制。 5 健壮性 协议内置了差错处理故障恢复机制; 用户可以实时识别设备的动态插入和拔出; 支持故障设备的识别功能。 6 易于与p c 协作 协议易于实现和集成; 符合p c 的即插即用体系结构的要求; 是现有操作系统接口的补充。 7 低成本 具有1 5 m b s 的低成本子通道; 优化了外设和主机硬件的集成: 适合于开发低成本的外设: 采用低成本的电缆和连接器。 8 易于升级 体系结构可以升级,使一个系统中可以有多个u s b 主控制器。 如今,u s b 正迅速占领p c 的各种外设市场,鼠标、键盘、移动硬盘、扫 描仪等外设先后采用了u s b 作为其与p c 进行数据通信的接口。为了有效地控 制和管理各种设备,u s b 采用设备类的方式对各种设备进行分类。针对u s b 的每一种设备类,都有一套特殊的设备类协议,这也使得各种设备的开发变得 更加规范和简便。 u s b 设备类协议与u s b 协议互为补充。作为u s b 标准请求命令的补充, 类协议不但新增了一些u s b 请求命令,还量体裁衣地为每一类设备规定了数据 传输的方式和格式。目前普遍使用的u s b 设备共有5 大类【5 】:音频设备类、通 信设备类、人机接口设备类、显示设备类和海量存储设备类。 2 海量存储设备的典型代表是移动硬盘和闪盘。虽然u s b 海量存储设备类协 议已在国内得到广泛应用,但核心技术大都仍掌握在国外厂商手中。因此,u s b 海量存储设备的研究开发对我国信息产业的进步有着重大意义和深远影响。 1 1 2 闪存技术的发展 闪存是英文f l a s hm e m o r y 的直译,东芝公司的r u j i om a s u o k a 于1 9 8 4 年首 次提出了闪存的概念。闪存是一种非挥发性( n o n v o l a t i l e ,即断电数据也不会 丢失) 的半导体存储芯片,具有体积小、功耗低、不易受物理破坏、电可擦除、 可重复编程的优点,是移动数码产品的理想存储介质。随着价格的不断下降以 及容量、密度的不断提高,闪存已经成为通用的移动存储产品。 从结构上看,闪存有很多种类,如a n d 、n a n d 、n o r 、d i n o r 等,其 中n a n d 和n o r 是目前最为常见的类型。n o r 型闪存支持随机读写,具有较 高的速度,非常适合于存储程序及相关数据,但其容量较小。与n o r 型闪存 相比,n a n d 型闪存的优点是容量较大,但因为i o 端口只有8 个,因此速度 较馒。n a n d 型闪存的存储和传输以页和块为单位,适合于大数据的连续传输, 因此,我们常见的闪盘通常采用n a n d 型闪存芯片。 闪盘是闪存存储介质与u s b 接口技术相结合的移动存储设备,它具有使用 成本低、存储容量大、读写速度快、可靠性高、体积小、使用寿命长、安全性 高等优点。1 9 9 9 年,深圳朗科公司创始人邓国顺和同伴成晓华发明了全球第一 款闪盘,取名朗科优盘 6 1 。它以体积小巧、价格低廉、容量超大等优势,掀起 了一场全新的电脑“移动存储”革命。目前国内外市场上已有上百个品牌的闪 盘产品,现在的闪盘不仅在技术革新上有着质的飞跃,在外观上也已变成一种 装饰品。 1 2 课题研究目的和内容 本课题研究的目标是开发u s b 2 0 的闪盘固件,在电路板上实现闪盘功能。 本课题主要研究了u s b 2 0 协议、海量存储设备类的b u l k o n l y 传输协议和 s c s i 命令集。整个固件采用全中断处理机制,根据协议要求和功能特点将固件 分为4 层结构,分层进行开发,提高了可移植性。最后研究了固件的硬件调试 方法,在调试过程中利用b u s h o u n d 软件实时显示u s b 总线上的数据通信过程, 最终成功地实现了闪盘功能。 1 3 论文结构 本论文共分为五章,主要内容如下: 第一章为绪论,介绍了课题的研究背景、研究目的和研究内容。在课题研 究背景中,概述了外设总线之u s b 总线的发展历程和主要特性,介绍了 u s b 设备类协议的概况以及闪存、闪盘技术的发展历史。 第二章为协议概述,是课题研究的理论基础。阐述了设计所遵循的各种协 议规范,包括u s b 2 0 协议、海量存储设备类的b u l k o n l y 传输协议以及存储介 质的操作命令s c s i 命令集。 第三章为固件的设计,是论文的重点章节。本章首先介绍了u s b 设备结构, 主要包括设备状态转移、总线枚举过程、标准设备请求和各种设备描述符。在 对固件硬件环境阐述的基础上,提出了固件层次化结构,重点研究了固件设计 开发的过程。 第四章为固件的调试与实现。本章对第三章设计的固件进行验证,详细介 绍了利用硬件仿真器u e c 5 和u s b 监视工具b u s h o u n d 软件调试固件的方法, 并给出成功实现闪盘功能的界面。 第五章为总结与展望。本章总结了论文的工作,对以闪盘为代表的移动存 储设备的未来发展进行了展望。 1 4 课题来源 本课题来源于: 1 国家科技部中小企业创新基金项目“u s b 2 0 微控制器芯片” ( 项目基金号0 5 c 2 6 2 1 3 4 0 0 8 5 1 ) 2 合肥市科技计划项目“消费类电子产品控制电路单芯片实现” ( 合科合同( 工业) 字 2 0 0 5 ( 1 0 0 8 ) 号) 4 第二章协议概述 本章介绍了固件设计中用到的协议规范,包括u s b 2 0 协议、海量存储设 备类的b u l k o n l y 传输协议以及存储介质的操作命令s c s i 命令集。这些协议规 范是闪盘固件开发的理论基础。由于本文只实现了部分u s b 接口传输协议,未 实现的协议将不作介绍。 2 1u s b 2 0 协议 2 1 1u s b 系统概述 u s b 系统由三个部分组成:u s b 互连、u s b 主机和u s b 设备【7j 。 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 主机和u s b 设备的逻辑构成。 2 1 2u s b 拓扑体系 2 1 2 1u s b 拓扑结构图 u s b 总线采用分层星型拓扑结构,如图2 - l 所示。u s b 的连接点由一种特 殊的u s b 设备一一集线器提供,主机通过根集线器提供一个或多个连接点,用 以接受功能设备提供的额外服务。用户可将设备和下级集线器与根集线器相连, 这些附加的集线器又可以连接更下一级的集线器和设备,从而构成星型结构。 当集线器与多个功能设备组合到一个单独的封装中时,它们就被称为复合 设备。 在u s b l 1 协议中,一个u s b 的拓扑网络最多支持4 个集线器层( 包括最 后一级设备共5 层) 以及1 2 7 个外设。而在u s b 2 0 协议中,最多可支持6 个 集线器层( 包括最后一级设备共7 层) 【8 】。 图2 1u s b 的拓扑结构 2 1 2 2u s b 主机 u s b 主机的逻辑构成如图2 2 所示,它包括以下三个部分: u s b 主机控制器根集线器; u s b 系统软件; 客户软件。 _ _ _ _ _ , 实际通信洗 0 = = = = :逻辑通信漉 图2 - 2 u s b 主机的组成 u s b 主机控制器和根集线器是p c 上的硬件,一般由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 系统之间的一种界面,用于支持客户对u s b 的 控制和操作,实时地进行数据交互,是为特定u s b 设备准备且在主机上运行的 软件。这种软件由u s b 设备的供应商提供,重要的设备也会由操作系统提供。 6 2 1 2 3u s b 设备 u s b 设备的逻辑构成如图2 3 所示。对应于u s b 主机,它也包括以下三个 部分: u s b 总线接口; u s b 逻辑设备: 功能设备。 物理设鲁 q p m m m m m d - 寓际通信漉 o = = = = : 逻辑通信嚣 图2 - 3u s b 设备的组成 u s b 总线接口是最底层的物理实体,是u s b 接口控制器的核心,也是u s b 发送和接收数据的接口。它通过电缆直接与u s b 主机交换串行数据,并实现串 行数据与并行数据之间的转换。 u s b 逻辑设备基本上就是u s b 协议栈的主体。它处理总线接口与不同端 点之间的数据,实现u s b 的各种基本行为。 以上两个部分是所有u s b 设备共同的部分,而不同u s b 设备各自的特点 通过第三层的功能设备来提供。同时,各种设备的类协议功能也是在这一层中 实现的。 2 1 3u s b 电气特性 u s b 传送信号和电源通过一种四线的电缆来实现,如图2 - 4 所示。其中 v b u s 和g n d 是电源地线,d + 和d 是差分信号线。 v 鼢 d d g n d 它支持3 种数据速率: 高速4 8 0 m b s ; 图2 - 4u s b 电缆 7 v b u s d + d - g n d 全速1 2 m b s ; 低速1 5 m b s 。 电缆通过v b u s 、g n d 两条线向设备提供电源。v b u s 使用+ 5 v 电源。u s b 可以使用不同长度的电缆,最长可达几米。u s b 通过选择合适的导线长度以匹 配特定的电压降、设备功耗预算和电缆灵活性等属性。为了保证足够的输入电 压和终端阻抗,重要的终端设备位于电缆的尾部。通过端口可检测终端是否连 接或分离,并可区分高速或低速设备。 2 1 4u s b 数据流模型 2 1 4 1u s b 通信流 u s b 接口实现主机上的软件与u s b 功能设备之间的通信。u s b 的通信流 可以分为三个层次:功能层、设备层和总线接口层。不同的客户软件到功能设 备之间需要的通信流也不相同。将u s b 功能设备的各种通信流分离,可以更好 地提高u s b 的总线利用率。通信流在设备的端点终止,设备的端点可以识别所 有通信流。u s b 通信流的详细示意图如图2 - 5 所示。 互连 物理设鲁 l上 机械,电气厦协议膳 i 管道,表示两十承平实体之闻的抽薯连接, 一卜_ - 散据传输机制- 卜- 拉传输教据的相虚u s b 格式 图2 - 5u s b 主机设备的详细示意图 u s b 逻辑设备对u s b 系统来说是端点的集合,u s b 系统软件通过默认的 8 i | 一 控制管道管理设备,客户软件则用管道束来管理接口。客户软件要求数据在主 机的缓冲区和u s b 设备的端点之间移动。主机控制器或u s b 设备( 取决于数 据传输方向) 将数据封装后在u s b 上传输。主机控制器将协调何时通过u s b 总线来传输数据。 2 1 4 2 设备端点 端点是可惟一识别的u s b 设备的一部份,它是主机与设备间通信流的一个 结束点。一系列相互独立的端点构成了u s b 逻辑设备。每个逻辑设备有一个惟 一的地址,这个地址是在设备连上主机时由主机分配的,而设备中的每个端点 在设备内部有惟一的端点号,这个端点号是在设备设计时给定的。每个端点都 是一个简单的连接点。端点有以下特性: 端点的总线访问频率要求: 端点的总线延迟要求; 端点的带宽要求; 端点的端点号; 对错误处理的要求; 端点能接收或发送的包的最大长度; 端点的传送类型: 端点与主机的数据传送方向。 在配置之前,端点号不为0 的端点都处于未知状态,不能被主机访问。 所有u s b 设备都需要一个缺省的控制方法。这种方法是将端点0 作为输入 端点和输出端点,u s b 系统软件用这个默认的控制方式对逻辑设备进行初始化 和逻辑设备配置等操作。一旦设备连接上并加电,且收到一个总线复位信号, 端点0 就可以访问了。 功能设备可使用额外端点。除了端点0 外,低速功能设备只能限制使用两 个可选的端点,全速设备额外的端点数量受到协议定义的限制( 即最多有1 5 个额外的输入端点和1 5 个额外的输出端点) 。这些端点只有在设备被配置后才 能使用。 2 1 4 3 管道 u s b 管道是设备上的端点和主机上的软件之间的联系,体现了主机上缓存 和端点间传送数据的能力。u s b 有两种不同且互斥的管道通信模式: 流( s t r e a m ) :在管道中传输的是不具有u s b 定义格式的数据流; 消息( m e s s a g e ) :在管道中传输的是具有某种u s b 定义格式的数据流。 u s b 不解释在管道中传输的数据内容。消息管道要求数据根据u s b 的定 义构造,但u s b 不解释数据的内容。 9 另外,管道还有以下信息: u s b 总线访问和使用带宽的要求: 传输类型; 相关的端点特性,例如方向性和最大数据有效负载的大小。数据有效 负载是指在总线处理中一个数据包的数据场能携带的数据数量。 由两个端点号是0 的端点( 一个输入,一个输出) 组成的管道被称为默认的 控制管道,这个管道在设备上电后或接收到一个总线复位信号后就一直可用。 其他的管道在u s b 设备被配置后才可用。u s b 系统软件用默认的控制管道决定 设备的识别和配置要求并配置设备,设备被配置后,默认的控制管道被专用的 设备软件使用。u s b 设备软件保持对默认的控制管道的“所有权”,并协调其他 客户软件对这个管道的使用。 2 1 4 3 1 流管道 流管道在总线处理的数据包部分传输数据,其中数据内容不要求u s b 格 式。数据流从流管道的一端输入,以相同的顺序从另一端输出。流管道中的通 信流通常是单向的。流管道必须按正确方向( 即按协议层定义的相应i n 或o u t 令牌) 与设备的端点号相连,相反方向的设备端点号应视为设备的其他流管道。 流管道支持批量传输、同步传输和中断传输。 2 1 4 3 2 消息管道 消息管道和流管道用不同的方式与端点作用。首先,主机向u s b 设备发送 一个请求,然后是数据传输,最后是状态阶段。为了适应请求数据状态的形 式,消息管道要求通信流有一个格式,此格式保证命令能够被可靠地传送和确 认。尽管通信流沿一个方向传输,但消息管道允许双向的通信流。默认的控制 管道通常是一个消息管道。 设备的消息管道要求在两个方向有独立的设备端点号,一个用于输入,一 个用于输出。消息管道只支持控制传输类型。 2 1 4 4 帧和微型帧 u s b 在全速低速总线上建立了一个l m s 的时间基,称为帧;在高速总线 上建立了一个1 2 5 p , s 的时间基,称为微型帧。一个( 微型) 帧可以包含几个事 务。 2 1 4 5 传输类型 u s b 通过管道在主机缓冲区与设备端点间传送数据。在消息管道中传递的 数据具有u s b 定义的格式,u s b 要求管道传输的数据均被打包,数据的解释 1 0 工作由客户软件和应用层软件负责。 能满足客户软件和应用软件的要求。 包括1 8 1 : u s b 规定的数据格式; 通信流的方向: 包大小的限制; 总线访问的限制: 延时限制; 要求的数据顺序; 差错处理。 u s b 提供了多种数据传输类型,使之尽可 每种传输类型决定了通信流的不同特性, u s b 设备的设计者为设备的端点选定性能。当为端点建立管道时,管道的 大多数传输特性已经确定,而且在管道的生存时间内保持不变。u s b 定义了4 种传输类型:控制传输、同步传输、中断传输和批量传输。由于本论文只用到 控制传输和批量传输类型,因此另外两种传输类型不作介绍。 2 1 4 5 1 控制传输 控制传输是突发的、非周期性的,由主机软件发起请求或者回应,通常用 于命令事务和状态事务。每个u s b 设备都要求将默认的控制管道作为消息管 道。这条管道由u s b 系统软件使用。默认的控制管道提供了对u s b 设备的配 置、状态和控制信息的访问。 控制传输只能在消息管道进行,使用双向信息流。因此,使用控制传输的 数据流必须按照u s b 定义的格式进行传输。当一个控制管道被确认之后,这个 管道就使用了端点号为0 的两个端点,一个输入,一个输出。 控制传输包含3 种传输类型:控制读取、控制写入以及无数据控制。其中, 又可再分为2 3 个阶段:建立阶段、数据阶段( 无数据控制没有此阶段) 以及 状态阶段。如图2 - 6 所示。 竺兰! ! 竺, 删读取围 d a t a 0 控制写入 j i i ! j ! i 习 无数据 控制 瓤据r 段 1 卜 匪回回 data|data0d a t a 0 i 匝回叵 d a t a id t od a t a 0 l 状态阶段 回 图2 - 6 控制读和写序列 每一个阶段都是一个数据交换的过程。建立阶段的数据交换包括了s e t u p 晶章 当一 令牌封包与随后跟着的d a t a 0 数据封包以及a c k 握手封包,格式如图2 - 7 所 示。d a t a o 封包内包含描述主机发送给设备的请求,所占的8 个数据字节可描 述这个设备请求。若这个设备送出a c k 令牌封包给主机,则表示确认收到了 数据。 空阐 空甩 圜圭机t口功能设备 图2 7s e t u p 事务格式 数据阶段由一个以上的输入或输出事务组成。在数据阶段,所有事务的方 向必须相同( 都为i n 事务或都为o u t 事务) 。建立阶段会指定数据阶段要传 输数据的大小和方向。如果数据量超过预先定义的数据包,数据将被装载在最 大包中通过多个事务( i n 或o u t ) 发送,其他数据在最后的事务中作为余量 发送。当控制传输的端点执行以下一种操作后,从端点到主机的控制传输数据 阶段将完成: 传输在建立阶段指定的数据量; 传输一个有效负载小于b m a x p a c k e t s i z e 0 ( 设备描述符的第7 字节) 的 包或传输一个长度为0 的包。 数据阶段完成后,主机控制器进入状态阶段。状态阶段与上一个阶段的数 据流方向相反,通常使用d a t a ip i d 。高速设备的状态阶段通常包括p i n g 协 议。状态阶段报告整个控制传输的结果是成功还是失败。对于控制读来说,主 机向控制管道发送o u t 令牌或p i n g 特殊令牌( 用于在高速操作下的设备) 来 初始化状态阶段。主机发送一个零长度的数据包,管道对这个数据包的握手响 应表示设备的当前状态:a c k 表示功能设备已完成命令,即控制传输已成功完 成,n a k 表示设备忙,s t a l l 则表示设备有错误。对于控制写来说,主机发 送i n 令牌到控制管道初始化状态阶段。若返回零长度数据包,则传输成功, 若返回n a k 或s t a l l ,则传输失败。 控制传输的端点决定了可以从总线接收或向总线发送的最大数据有效负 载。全速设备控制传输的最大数据有效负载是8 字节、1 6 字节、3 2 字节或6 4 字节,高速设备是6 4 字节,低速设备是8 字节。s e t u p 包通常为8 字节。控 1 2 制管道一般用b m a x p a c k e t s i z e

温馨提示

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

评论

0/150

提交评论