(微电子学与固体电子学专业论文)usb20主机控制器asic设计.pdf_第1页
(微电子学与固体电子学专业论文)usb20主机控制器asic设计.pdf_第2页
(微电子学与固体电子学专业论文)usb20主机控制器asic设计.pdf_第3页
(微电子学与固体电子学专业论文)usb20主机控制器asic设计.pdf_第4页
(微电子学与固体电子学专业论文)usb20主机控制器asic设计.pdf_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

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

文档简介

中文摘要 中文摘要 摘要:通用串行总线( u s b ) 是当前主流的计算机外设接口的总线标准,具有 支持低速、全速、高速三种传输速率,支持热插拔,使用方便等特性。u s b 硬件 系统包括主机控制:签片、接口控制芯片和设备控制芯片三部分,设计实现各u s b 功能模块对s o c 领域发展具有重要的现实意义。本文设计实现了u s b 2 0 主机控制 器的i p 核,可应用于嵌入式主机和无线u s b 等领域。 本文在分析u s b l x 和u s b 2 0 总线工作原理、通讯协议、数据传输模式和电 源管理的基础上,提出了u s b 2 0 主机控制器i p 核模块划分,给出了系统结构图, 详细介绍了各模块的设计,采用硬件描述语言v e r i l o gh d l 实现了a h b 接口 u s b 2 0 主机控制器i p 核,并锚对各功能模块进行了仿真。然侨i ¥细讲述了r ! t n f , i 搭 建基于b f m 的仿真测试半台以及编写不同测试实例对该i p 核进 r 系统级的功能 验证,结果表明该i p 在功能上满足u s b 技术规范。 在t s m c 0 1 8 u m 工艺下,完成了u s b 主机控制器的a s i c 实现,包括综合与 优化、时序分析、稚局布线、时钟树生成等过程,并进行了后仿真。提交的芯片 版图面积是4 0 力u m 2 ,电路规模约为5 万门,在1 2 0 m 时钟下,电路功耗约为2 2 m w 。 图8 4 幅,表5 个,参考文献2 4 篇。 关键词:通用串行总线;i p 核;功能验证;综合;布局布线 分类号:t n 4 7 a b s t r a c t a bs t r a c t a b s t r a c t :t h eu s bh a sb e c o m eam o s tp o p u l a rb u ss t a n d a r di n c o m p u t e r s p e r i p h e r a li n t e r f a c e i th a sv i r t u e so fh i g hs p e e d 、f u l ls p e e d 、l o ws p e e d ,h o tp l u ga n d p l a y , u s i n ge a s i l ya n de t c u s b 2 0h a r d w a r es y s t e mc o n s i s t so fu s bh o s tc o n t r o lc h i p a n de q u i p m e n ti n t e r f a c ec o n t r o lc h i p ,i e p e r i p h e r a ld e v i c ec h i p i ti sv e r yi m p o r t a n tt o d e s i g nt h ei pc o r eo f a l lu s bf u n c t i o nm o d u l e sf o rt h ed e v e l o p m e n to fs o cf i e l d i nt h i s p a p e r , w ei n t r o d u c et h ed e s i g no fa h b i n t e r f a c eu s b 2 0h o s tc o n t r o l l e ri p , w h i c hh a s g r e a ta p p l i c a t i o nf o r e g r o u n d si ne m b e d d e dh o s t ,w i r e l e s su s ba n de t c b a s e do nt h ea n a l y s i so fu s b1 xa n du s b 2 0 sp r i n c i p l e ,c o m m u n i c a t i o n s p e c i f i c a t i o n ,t y p e so ft r a n s a c t i o n s ,p o w e rm a n a g e m e n te t c ,t h eh a r d w a r ea r c h i t e c t u r eo f au s b 2 0a h b i n t e r f a c eh o s tc o n t r o l l e ri pc o r ei sm a i n l yp r e s e n t e d t h ei pc o r ei s d i v i d e di n t os o m em o d u l e s ,w h i c hh a v e b e e nc o d e db yv e r i l o gh d la n ds i m u l a t e db y t e s t v e c t o r as y s t e mf u n c t i o nv e r i f i c a t i o nt e s t b e n c ho ft h ei pi sp r e s e n t e di nd e t a i l e d , w h i c hi sb a s e do nb f m a l lk i n d so ft e s t c a s ea r eg e n e r a t e dt os t i m u l a t et h ei pc o r e a sa r e s u l t ,t h ei pc o r em e e t su s bs p e c i f i c a t i o ni nf u n c t i o na n dt i m i n g t h e nb a s e do nt s m c 0 18 u ms t a n d a r dc e l ll i b r a r y , w ed e s i g n e dac o r r e s p o n d e d h a r dc o r ea n de x p l a i n e ds o m ed e s i g nd e t a i l s ,s u c ha ss y n t h e s i s & o p t i m i z a t i o n ,t i m i n g a n a l y s i s ,p l a c ea n dr o u t es t e p s ,c l o c kt r e eg e n e r a t e dt e c h n i q u ee t c t h ec h i pw i t ha l a y o u ts i z eo f4 0 u m zc o n t a i n s5 0t h o u n s a n dl o g i cg a t e s a tt h e12 0 mc l o c k ,t h ec i r c u i t p o w e rc o n s u m p t i o ni s2 2 m w k e y w o r d s :u s b ,i pc o r e ,f u n c t i o nv e r i f i c a t i o n ,s y n t h e s i s ,p l a c e & r o u t e c i 。a s s n 0 :t n 4 7 独创性声明 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研 究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或 撰写过的研究成果,也不包含为获得北京交通大学或其他教育机构的学位或证书 而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作 了明确的说明并表示了谢意。 学位论文作者签名:仓腾签字同期:沙叩年舌月谚日 f 学位论文版权使用授权书 本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特 授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索, 提供阅览服务,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。 同意学校向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名:金腾 签字同期:砷年6 月f g 日 导师签名:玖疋 签字嗍多年月f 玩 致谢 本论文的工作是在我的导师骆丽教授的悉心指导下完成的,骆丽教授严谨的 治学态度和科学的工作方法给了我极大的帮助和影响。在此衷心感谢三年来骆老 师对我的关心和指导。 李哲英教授对于我的科研工作和论义都提出了许多的宝贵意见,在此表示莨 心的感谢。 在实验室工作及撰写论文期间,张义恒、刘金鹏、洪姬铃等同学对我沦文中 的研究工作给予了热情帮助,在此向他们表达我的感激之情。 另外也感谢我的家人,他们的理解和支持使我能够在学校0 心充成我的学业: 引言 1 1 研究背景和意义 1 引言 通用串行总线( u n i v e r s a ls e r i a lb u s ,u s b ) 是一种双向同步传输的、支持热 插拔的数据传输总线。它提供了一种兼容高速和低速、可扩充且使用方便的外围 设备接口,同时也使计算机接口太多的弊端得到了较好的解决。当前的u s b 应用 中,处于拓扑结构核心地位的主机一般都由p c 机来担当,也就是说,如果没有 p c 机,其它的u s b 设备就不能交换数据了。为了解决这一问题,开发了u s b 2 0 o t g 规范【2 】,允许便携式设备成为受限的u s b 主机代替p c 机。u s bo t g 是移动 数据交换的一种解决办法,但是在实际项日丌发中会发现,需要将数据从一台设 备复制到大量其他的相同设备中时,如果为每一台设备都采用o t g 方案将造成很 大的资源浪费,因为并不是每一个设备都必须具备h o s t 功能,并且可能出现根本 无法连接的情况。为了实现在无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 2 0 规范要求的、面向s o c 应用的i p 核, 硬件实现主机协议层功能。随着传输速率、电源管理和协议效率不断提高等,u s b 的应用范围也将进一步扩大。研究具有自主知识产权的i p ( i n t e l l e c t u a lp r o p e r t y , 知识产权) 核,对于有效缩短产品上市时间,节省人力资源等具有重大的现实意 义,设计实现u s b 功能模块的p 核对于s o c 领域发展也具有重要的现实意义。 1 2 国内外现状 u s b 协议经历了u s b l 0 、u s b l 1 、u s b 2 0 、u s b o t g 、w u s b 以及最近发 布的u s b 3 0 等几次重要的发展,应用领域越来越广,逐渐占领了大部分的计算机 外设和消费电子市场,成为一种通用性很强的数据传输接口。它包含三大技术要 素:主机、集线器和功能。国外已经开发出上述3 个技术要素的i p 核,推出了技 北京交通大学硕士学位论文 术上比较成熟的u s b 芯片,如c y p r e s s 公司的c y 6 8 0 1 3 广泛应用于u s b 硬件方 案中。目前用于商业目的且已在u s b i f ( u s bi m p l e m e n t a t i o nf o r u m ) 官方备案的 u s b i p 核,大部分出自c y p r e s s 、l s i 、s y n o p s y s 等国际大公司。 而国内在u s b 方面研究较少,因主机控制器i p 一直是u s b 系统设计中的难 点,成果更少。国内计算机外设生产厂商以及消费电子公司大多依靠购买国外现 成的u s bi p 核集成到自己的a s i c 或s o c 产品中。 1 3 本论文的内容和结构 本论文在深入了解u s b 协议的基础上,开发出了a h b 接v - iu s b 2 0 主机控制 器i p 核,搭建了基于b f m ( b u sf u n c t i o nm o d e l ,总线功能模型) 的测试平台进 行系统级仿真,充分验证了主机需要实现的各种功能,并进行了综合和布局命线 后验证,最终生成硅片实现所需的版图文件。在本论文中,主要的内容如下: 第二章首先简单介绍了u s b 系统构成,后详细介绍了u s b 通讯协议,并具体 阐述了高速传输过程中主机增加的事务。 第三章详细介绍了u s b 2 0 主机控制器i p 核的设计与实现,包括系统架构划 分和各部分功能模块的设计,并用v e r i l o gh d l 硬件描述语言完成r t l 级实现, 针对各模块进行了功能仿真。 第四章是对设计的i p 核进行系统级功能验证,详细介绍了基于b f m 测试平 台的搭建,以及编写用于仿真用的测试实例,并对部分仿真结果进行了分析。 第五章是i p 核的a i s c 实现,包括门级综合和布局布线。阐述了综合和布局 布线的流程和用到的关键技术,并对结果进行了分析。最后给出了测试系统考虑。 第六章总结全文的研究成果,对u s b 主机控制器i p 核存在的不足给予了解决 思路,并对进一步的工作提出了些建议和想法。 2 u s b 通信协议 2 1u s b 2 0 系统 2u s b 通信协议 2 1 1u s b 2 0 系统拓扑结构 基于u s b 2 0 的系统可以支持高速( 4 8 0 m p s ) 、全速( 1 2 m p s ) 和低速( 1 5 m p s ) 设备。图2 1 说明了连接低速、全速和高速设备的u s b 2 0 系统。u s b 2 0 系统包 括主机、集线器和设备三大功能部件f 3 】,每段线路都是主机到集线器或功能设备, 集线器到另一个集线器或功能设备之间的点对点连接。u s b 2 0 主机控制器控制总 线上所有u s b 设备和集线器的数据通信过程,而u s b 设备一直扮演着受控的角色, 按照u s bj - 木j l 的要求接收或者发送数据。u s b 集线器是u s b 即插即用体系结构 中的关键设备,它提供了用于连接u s b 设备与u s b 主机的端口,也使系统的分层 级联和总线一次级联1 2 7 台设备成为可能。u s b 集线器在为设备提供连接点时使 用分层的星形结构,主机控制器中的根集线器是所有u s b 端口起源。 总线 2 1 2u s b 通信流 图2 - 1u s b 2 0 系统 f i g 2 1 u s b 2 0s y s t e m u s b 的分层理解是必须的,它能使不同层次的实现者只关心u s b 相关层次的 3 北京交通大学硕士学位论文 特性功能细节,而不必掌握从硬件结构到软件系统的所有细节。图2 2 所示是u s b 系统通信流【4 1 。 孥_ 物理通信流 逻轻 通信流 图2 - 2u s b 系统通信流 f i g 2 - 2 c o m m u n i c a t i o ns t r e a mo fu s bs y s t e m 应用层 设备层 总线接i jj _ 主机与设备间的连接是由许多层上的连接组成的。u s b 总线接f j 层提供了在 主机和设备之间的物理连接;系统软件基于它所见的u s b 设备层来完成对设备的 u s b 操作。应用层可以通过与之相配合的客户软件向主机提供一些额外的功能。 u s b 设备层和应用层的通信是逻辑上的,对应于这些逻辑通信的实际物理通信由 u s b 总线接口层来完成。 2 1 3u s b 通信模式 当向u s b 驱动程序提出一个传输请求时,这个传输要被客户端驱动程序初始 化。由于u s b 是共享总线,所以一个单独的设备一般不能在一个时间完成整块的 传输,这时传输会被分解为事务后在一个较长的时间内分段传输,保证一部分总 线带宽能够分配给其它连接到总线的u s b 设备使用。u s b 通信基于一个固定的时 隙内传输数据,这个时隙被称为帧【4 1 。每个u s b 设备在每帧中请求分配一部分 带宽,当连接和配置每个设备时,系统软件解析其设备描述符,以决定它所需要 的总线带宽。主机控制器驱动程序从u s b 驱动程序收到一个包请求后,就安排它 4 们竺:耄妻紫辫嚣淼嚣瀑嚣需淼紧 :墨擎燮戮鬻黧黼篇筹茹。0 三荔; 警薯u 燃礁:嚣群燃。三乏溢高u s b 苎尝:戮黛u s 、b 滁荔徽票- 蜘蒯憾卧削q 删 通信过程的机制和 系统各层之间的联系。 u s b 客户端驱程 上机控制器驱程 u s b 蕾机控制器 2 2 u s b 协议分析 图2 3 传输、事务与包的关系 f i g 2 3 t r a n s f e r 、t r a n s a c t i o n & p a c k e t 2 2 1 包类型 包是最基本的u s b 数据单元,在u s b 总线协议中定义了四种类型的包:令牌包、 数据包、握手包和特殊包。 :舟兰氅凳。t n 的不同今牌包( t 。k e np a c k e t ) 可分为i n 、o u t 、s e t u p 和 絮篡慧呈,栩嚣鬟发送警妊淼奄t 和s 剧p s o f 。所有的令牌包都由主机发出,设备不能芨透令牌。巴。头1 1 州、u 一”1 这3 种包结构一样,如图2 - 4 所示。 5 北京交通大学硕士学位论文 8 b i t s 7 b i t s4 b i t s5 b i t s 图2 _ 4 令牌包构成 f i g 2 4 t o k e np a c k e ts t r u c t u r e 对于o u t 和s e t u p 来说,a d d r 和e n d p 中所指明的端点将接收到i - 机发f j 的 数据包,而对i n 来说,所指定的端点将输出一个数据包。 s o f 包括ll b i t 的帧序号,是一个逐帧累加的整数。当达到最大值0 7 f f h 又从0 开始。s o f 的包格式如图2 5 所示。 图2 5s o f 包构成 f i g 2 - 5 s o fp a c k e ts t r u c t u r e t o k e n 和s o f 在三个字节的时间内以一个e o p ( e n do f p a c k e t ) 结束。如果一个 包被解码为t o k e n 包,但是并没有在3 个字节时间内以e o p 结束,它就会被看作非 法或被忽略。 二、数据包 数据包包括d a t a 0 和d a t a l 两种类型,这两种包的定义是为了支持数据触发机 制。数据包包含了p i d 、d a t a 和c r c 三个域,如图2 - 6 所示。 8 b i t s 0 - 1 0 2 3 b y t e s 1 6 b i t s 图2 - 6 数据包构成 f i g 2 - 6d a t ap a c k e ts t r u c t u r e 三、握手包 握手包用来报告数据传输的状态,仅包含一个p i d 域。握手包有三种类型: ( 1 ) 确认a c k 包:表明数据接收成功; ( 2 ) 无效包n a k :说明某功能块暂时不能发送或接收数据,但不需主机干预, 可以解释成设备忙,主机不能发送n a k 信号。 6 u s b 通信协议 ( 3 ) 出错包s t a l l :表示数据包在传送的过程中出了故障,但需要主机介入才能 恢复,主机不能发送s t a l l 信号。 四、特殊包 特殊包的p i d 为p r e ,用于低速操作。 2 2 2 事务处理 u s b 传输是通过执行一个或多个包含着一系列数据包的事务完成的7 1 。事务一 般包括三个包,然而一个事务根据类型不同,可以由一个、两个或三个包组成。 图2 7 所示是由三个包组成的u s b 事务。 、厂j 一个囊务 图2 7 事务结构 f i g 2 - 7 t r a n s a c t i o ns t r u c t u r e 事务主要有输入( i n ) 、输出( o u t ) 和建立( s e t u p ) 三种类型,都是从 一个定义了目标设备、终端点数目和数据传输方向的令牌包开始,后紧跟着由一 个携带着和传输类型有关的有效载荷大小的数据包,一次事务处理最多只有个 数据包。握手应答包用来证实数据成功传输,如果发生错误,就没有握手应答信 号返回发送端并且标记这个错误,主机允许事务重新发送三次。在事务处理过程 中,数据传输可能包括多次事务处理,数据处理的顺序规则由u s b 主机来总控, 不会将一个事务处理分到不同的帧中。 s e t u p 事务 来自主机的s e t u p 包来自丰机的数据包设备来的应答信号 厂人弋厂人弋厂 图2 - 8 设置事务过程 f i g 2 - 8s t a g eo fs e t u pt r a n s a c t i o n 图2 8 显示了设置事务过程。u s b 主机首先向某个u s b 设备的控制端点( 一般 使用默认端点o ) 发送设置令牌包,后面紧跟着装有命令信息的数据包,设备接收 7 北京交通大学硕七学位论文 到数据包后必须接收数据并用a c k 握手包应答,但如果数据损坏,则丢弃数据且 不返回握手包,另外值得注意的是数据包中的数据标识符一直是d a t a o ,不能是 d a t a l 。 i n 事务处理表示u s b 主机从总线上的某个u s b 设备接收一个数据包的过程。 一个i n 事务可能发生以下几种情况:数据无错误的接收、数抛接收有错误、目标 设备暂时不能返回数据、目标设备停止。这些情况可以发尘在【 i 断传输、批量传 输、控制传输中。同步传输中的i n 事务会在下节介绍。图2 95 i ! 力:了不叫的i n 事务 处理过程。对于有错误的i n 事务,目标设备由于没有收剑主机返叫的确认信息, 会检测到一个超时情况,稍后主机会重传玳事务。对于返回n a k 信号的烈事务, 在没有达到n a k 限值时,会重传i n 事务,对于返回s t a l l 信号的i n 事务,只要主 机清除了错误后,传输才能继续。 图2 - 9i n 事务 f i g 2 - 9s t a g eo fi nt r a n s a c t i o n o u t 事务表示u s b 主机向总线上的某个u s b 设备发送一个数据包的过程,其 事务处理过程与输入事务一样。图2 1 0 显示了不同的o u t 事务处理过程。这里要说 明的是,高速中的i n 和o u t 事务数据包序列跟全速低速是有区别的,因为要防止 不能接收和发送的数据占掉大量带宽,影响速度,所以新增加了一些其它包标识, 在2 3 节将具体介绍高速信号环境。 8 u s b 通信协议 2 2 3传输类型 图2 1 0o u t 事务 f i g 2 - 1 0s t a g eo f o u tt r a n s a c t i o n 每个终端都有它所支持的传输特性,例如向扬声器传输信息,必须用一个平 稳速率连续传输数据流,以保证声音不会抖动。其它的终端可能要求其它的特性, 这样就要求有各种不同的传输类型,u s b 定义了四种传输类型:同步传输、批量 传输、中断传输和控制传输【5 】【6 1 。 ( 1 ) 批量传输 为了支持在某些不确定的时间内进行相当大量的数据通信,u s b 协议提供了 批量传输类型,例如打印机、扫描仪等。当一帧内的总线带宽有空余时,u s b 主 机就会将剩余带宽分配给等待使用总线的批量传输设备。虽然传输过程中有确认 的数据传输,但不保证传输的带宽和延迟。 批处理事务类型的特点是以错误检测和重试的方式保证主机和功能部件之间 的数据无错发送。如果因为传送错误而导致出现一个能引起中止的条件或设备发 了一个s t a l l 信号,所有等待的请求将被取消。主机会通过一个独立的控制管道 来清除中止的条件,当中止恢复后,主机将重发数据。如果出现一个影响事务处 理的总线错误,批量传输将中止。 批处理传输分为一次事务和多次事务处理两种情况。一次事务处理就是上节 介绍的i n 或o u t 事务处理;多次事务处理是主机与设备进行多次批量传输,总是 单方向( 即全部是i n 事务或o u t 事务) ,批量传输由d a t a 0 d a t a l 的机制来保证 9 北京交通大学硕士学位论文 接收端和发送端的同步,即使在有错误发生的情况下也是如此。当端点被适当的 控制传输配置后,批量传输被初始定位在d a t a o ,主机将从d a t a o 开始第一个批 量传输的事务处理,第二个为d a t a l ,接下来数据传送交替使用d a t a 0 d a t a l 。 图2 1 1 描述了批处理发送和接收的情况,其中括号艰足数据包切换时序位。 批处理发送l ! ! ! ! 兰! ! ! il ! ! :! 竺! ! j ! ! ! ! 竺! 竺! ! l 批处理接收厂i 网厂可丽厂i 丽 i 。_ ji 。_ j i _ j 图2 ii 块传输事务 f i g 2 - 11 b u l kt r a n s a c t i o n ( 2 ) 控制传输 控制传输是u s b 数据传输中最基本的一种传输,也是较为复杂的一种传输类 型,用来传输描述符等配置信息。例如,在设备配置期问要执行控制传输来读标 准描述符和给设备分配一个惟一的地址。控制传输1 般分为三个阶段:建立阶段、 数据阶段和状念阶段,其中数据阶段不一定有,如果没有数据阶段,则第二个阶 段为状态阶段,如图2 1 2 所示。 图2 1 2 设置阶段 f i g 2 - 1 2 s e t u ps t a g e 在设置阶段,就是上节介绍的s e t u p 事务处理过程,u s b 主机通过该事务向 某个u s b 设备的控制端点( 一般使用默认端点o ) 发送命令信息。这里要提到的 1 0 u s b 通信协议 是,设备一旦接收了数据就必须返回a c k 握手信号,接收的数掘包使用d a t a 0 的包标识符,数据长度为固定的8 字节。 建立阶段 厂、 无熙制卜而丽 传送l 一“i 建市阶段数抛阶段 状态阶段 厂夕、厂入弋 嬲巨亟圃圆匝匝。i 巨堕困匝匝互圃 图2 1 3 数据阶段 f i g 2 13 d a t a s t a g e 图2 1 3 说明了控制传输和事务处理的关系,其中括号眼是数据切换时序位。 主机在完成数据阶段,或者没有数据阶段时,就进入控制传输的状态阶段。控制 传送的数据阶段中有i n 和o u t 两种事务处理,遵循了与批量传输相同的协议规 则,数据传输的数量和方向由设置阶段制定。设置信息等命令通过输出事务处理 发送信息,获耿状态的控制命令则通过输入事务处理接收信息。无数据阶段和控 制输出的状态阶段是i n 事务处理,该事务的数据时相返回一个长度为零的数据包; 控制输入的状态阶段是o u t 事务,数据时相发出长度为零的数据包。 ( 3 ) 同步传输 i n 事务 来自t - :机的i n 包来自u s b 设备的数据包 厂l 弋厂人 来自丰机的o u t 包到u s b 设备的数据包 厂l 、厂,八 咖事务臣三工三三 同 步 传 输 事 务 处 理 图2 1 4 数据阶段 f i g 2 - 1 4d a t as t a g e 1 l 蚕 裔 北京交通大学硕士学位论文 图2 1 4 说明了同步传输事务处理,主要用于传输音频和视频数据,适用于实 时数据的传输,并且可以容忍数据偶尔出错。同步传输的事务处理中只有令牌和 数据时相两部分,而没有握手。主机发出输入或输出的令牌包后跟着传送的数据 包,不支持握手或数掘重传能力。 ( 4 ) 中断传输 中断传输是为这样一类设备设汁的,它们只发送或接收少量的数据,而且并 不经常进行数据传输,有一个确定的传输川期,每隔一定的周期要求传输一次, 例如键盘、鼠标等。因为中断传输是一种周期性的传输方式,系统在对进行- i t 断 传输的设备进行配置时,只要当前总线上由于周期性传输的空闲带宽能够容纳此 设备,设备就可以工作。 除了定期占用总线带宽外,中断传输和批量传输的过程是一样的,也是以错 误检测和重传的方式保证主机和u s b 设备之问的数据无差错发送。中断传输干l l - i l l : 量传输结束的条件一样,都是判断数据包的长度是否小于最大包长度或为0 ,表,j : 传输最后一个数据包。 2 2 4 错误检测和恢复 除了同步传输外,u s b 是一种允许物理层上产生错误信号的可靠的端到端的 通信方式,这主要基于协议可靠的错误检测能力和对事务处理的出错恢复能力。 错误检测和恢复机制的协议实现是保证数据传输健壮性的关键技术,这是u s b 协 议复杂性所在,也是u s b 协议实现的难点。u s b 支持的错误检测机制【7 】包括以下 几种情况: ( 1 ) 包错误检测 u s b 使用了3 种包出错误的检测机n - 包长度错、包标识符错误检验和循环 冗余校验( c r c ) 。包长度出错表示包中的数据长度超过定义的数据最大长度。 包标识校验字段是p i d 的补码。每个包都有一个c r c 位来验证p i d 字段后面发送 的信息。除了帧起始令牌包外,包的接收方在接收到任何损坏的包后,都会忽略 它并丢弃随包而来的数据或其他的字段信息。 ( 2 ) 错的包结束符 如果在发送端完成传送数据之前,接收端检测到包的结束符,那就会出问题, 因为接收端过早地响应包结束符,返回一个数据或者握手信号包,总线上就会发 生冲突,并有可能损坏2 个连续的事务处理。下面介绍主机传输中出现错误包结 束符的处理情况。 对错误的包结尾依赖于这样的事实:被插入错误e o p 的包将呈现为一个被截 1 2 u s b 通信协议 短的带有c r c 错误的包。在低速和全速环境中,当检测到一个错误的包结束符, 主机等待1 6 位的间隔时问,在这间隔范围内没有检测到总线传输,并且总线处于 空闲状态,则主机可以发出下一个令牌包。在高速环境中,主机收到任何一个被 破坏的数据包,它会忽略任何数据,直到数据线回到无噪状态,带有正常的内部 延时的下一个令牌包就可以发送。 ( 3 ) 总线超时 一个传输所使用的发送器和接收器必须知道j 1 j 多k 时l 目j 等待响应。如果在规 定的总线周期内没有收到响应,就会检测到错误。在低速全速巾,总线超时应不 少于1 6 个位时间且不超过1 8 个位时间;在高速中,规范要求在7 3 6 个位时间没 有响应就要发出总线超时信号,并且信号不晚r8 1 6 个高速 t l i j , j - f h j 发出。 ( 4 ) 数据切换错误检测 数据切换技术是保证一个长的传输在被分解为多个。并务的情况下依然保持同 步传输的一种机制,数据切换解决了和握手信号有关的问题。发送设备和接收设 备要在都同意事务被无错传输的时候将它们的序列切换位转变成相反的值,两种 数据包类型( d a t a 0 d a t a l ) 也要交替地传输。 损坏的 a c k 传送i ( 霞试) 传送件l 图2 1 5 重试a c k 损坏的事务处理 f i g 2 - 1 5r e t r yt r a n s a c t i o nf o ra c k e r r o r 图2 1 5 是重试a c k 损坏的事务处理,图中最左边接收方收到正确数据,但 发送方不知道成功传送,在下个事务中将重发d a t a 0 ;接收方检测到数据包标识 符不匹配,于是接收方知道以前接收过这个数据,从而丢弃数据包且不改变同步 切换位,返回a c k 信号。接收到a c k 信号后,发送方知道被重试成功了,改变 其同步切换位,过程如图中间所示;图中最右边表示由于发送方的同步切换位得 1 3 北京交通大学硕士学位论文 到同步,又可以正常发送。 ( 5 ) 对超时干扰( b a b b l e ) 和活动性丧失( l o s so f a c t i v i t y ,l o a ) 恢复 b a b b l e 和l o a 会使总线陷入僵局或者破坏下一个帧的开头,错误特征由帧末 尾期望条件决定。集线器婴跟踪每个帧以及帧术尾附近的总线活动,负责检测和 恢复总线的串扰和l o a 。 2 2 5u s b 节电模式 u s b 通过进入挂起状念支持节电模式【8 1 。当一个设备进入挂起状态就只能消耗 低于5 0 0 u a 的电流,在总线3 m s 没有动作时,设备就进入挂起状态,u s b 支持i 西 种类型的挂起:全局挂起和选择挂起。 全局挂起时,所有的u s b 设符郜进入挂起状态。主机可以通过发送恢复请求 来初始化u s b 的唤醒,恢复信号必须持续2 0 m s ,给每个连接的设备有足够的时j h j 从挂起状态恢复到准备接收事务,主机通过发送一个e o p 信号持续两个低位时问 来结束这个恢复信号。另外,也支持来自设备的远程唤醒,设备发送一个k 状念 ( 非空闲) 到总线上初始化恢复信号,主机将发送恢复信号反射回设备。 选择挂起时,选定的u s b 设备进入挂起状态。允许下行设备在3 m s 内没有检 测到活动便进入挂起状态。选择性挂起是通过发送“设置端口状态”命令的控制传输 来实现的。主机向挂起的端口发送一个“清除端口特征”的命令来初始化选择性恢 复。恢复信号至少要持续2 0 m s ,然后是一个低速e o p ,主机设置一个状态位指示 恢复的完成,这时设备就可以访问了。当主机端检测到复位信号( 持续大于2 5 u s ) 时,初始化唤醒进程,并在复位信号1 0 m s 之内完成复位。 2 3 高速中事务处理 高速环境中的传输和u s b l x 有相同的特性,然而有一些变化,例如包的大小、 高带宽传输和p i n g 协议等。高速事务也像低速全速事务一样要使用令牌、数据 和握手协议,但事务是在每个微帧( 1 2 5 u s ) 内完成。高速带宽以微帧为基数分配, 周期性传输使用不超过8 0 的微帧带宽,控制传输不超过2 0 ,不为批量传输保 留带宽,它会在当前微帧内所有己调度的传输和所有控制传输完成后执行。下面 介绍高速传输中不同于全速低速的特性【9 】。 1 4 u s b 通信协议 2 3 1 高带宽i n 和o u t 处理 高速同步和中断传输都支持高带宽传输,正常的同步和中断传输在一个微帧 里只能传输一个数据包,但是高带宽同步和中断传输可以在每个微帧内接收多达 三个事务。由于同步传输没有传输应答处理,增加特定的包序列可以检测每个微 帧中是否存在包的丢失和破坏。图2 - 1 6a 7 , j , t 高带宽事务处理数据时相情况。 i 事务处理i - 1 0 2 4 b y t e 传2 一输大小:。5 吆1 3 6 - 艺1 0 2 4 。b b y ,t 把e 二困 二墨 嬲器e 田曰 i 事务处理1 - 1 0 2 4 b y t e 2 事务处理5 1 3 1 0 2 4 b y t e 传输人小:1 0 2 6 2 0 4 8 b y t e 3 事务处理6 8 3 1 0 2 4 b y t e 传输大小:2 0 4 9 - 3 0 7 2 b y t e 2 3 2p i n g 事务处理 高速带宽i n 事务数据时相 高速带宽o u t 事数据时相 日 e 习日 图2 1 6 高带宽事务处理 f i g 2 16h i g hb a n d w i d t ht r a s a c t i o n 在u s b 2 0 规范中定义了一个新的事务类型( p i n g 事务) ,用来在高速环境中 消除低速、全速环境中存在的总线效率问题。p i n g 事务可以在主机发送数据包之 前有效地检测设备是否能够接受数据,不会有浪费总线资源传送的数据包最后被 丢掉的情况发生,所有的批量传输和控制传输都要支持p i n g 协议,但是在控制传 输的设置阶段总是要返回a c k ,所以不支持p i n g 协议。从设备返回的p i n g 过 的a c k 信号表明设备有足够的空间来容纳最大包的数据,响应a c k ,主机要发 送o u t 事务,但是在主机收到a c k 和发送这个设备的下个事务之间,可以执行 发往其他设备的事务。图2 1 7 是主机p i n g 过程。 1 5 曰固曰 北京交通人学硕士学位论文 图2 1 7p i n g 事务处理 f i g 2 - 17p i n gt r a s a c t i o n 更多守闻, 进到卜个事务 这旱需要注意的是,高速批量传输和控制终点必须限制发送n a k 的数目,在 非周期传输r 1 1 终点舶述符l h j 隔字段定义了n a k 限值。 2 3 3s p l i t 事务处理 在u s b 2 0 规范中,当u s b 主机和u s b 集线器处于高速通信连接的情况下, s p l i t 令牌包被川米支持u s b 集线器端口的全速“氐速设备的连接。图2 1 8 显示 了s p l i ti n 事务处理过程。 高速总线全速,低速总线 图2 1 8s p l i t 事务处理 f i g 2 18s p l i tt r a s a c t i o n s p l i t 令牌包仅仅用在u s b 主机和u s b 集线器之间,从u s b 主机向u s b 方 1 6 u s b 通信协议 向传输。s p l i t 的主要作用是可以确保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 集线 器处得到的数据传输状态,从而完成与全速低速u s b 设备数据传输的整个过程。 s p l i to u t 数捌传输与s p l i ti n 类似。 2 4 小结 本章先介绍了u s b 2 0 系统和u s b 通信机制,后对u s b 协议进i j :了i f 细的分 析,其中包括u s b 数抛币元、传输类型及事务处理、错误检测、l u 泺 州等。! ,j 外针对u s b 2 0 高速传输中新增的特性进行了分析。本章所介缁的内容鄙符合 u s b 2 0 设计规范,为后面章节协议实现奠定基础。 1 7 u s b 主机控制器设计实现 3 1i p 核介绍 3u s b 主机控制器设计实现 随着全球集成电路行业进一步分工,不同设计公司之问的合作和依赖也正在 加强,因此设计较大规模的j 【;= 片时,采用其它公司的设计成果或者将自己的成果 提供给另一方,已经成为越来越普便的现象,这就是通常所说的i pc o r e 的开发和 商用。i pc o r e ( i m e l l i g e mp r o p e r t yc o r e ) 指的是某一公司臼主丌发的,具有知识 产权的i c 设计模块,有软核、固核、硬核三个层次。 软核包括逻辑描述、门级网表和不能物理实现的测试文件。它媳仃比较大的 灵活性,埘广叮以很容易地将r t l 级和门级h d l 表达的软核修改为【,jl 所需要的 设计,并借助e d a 综合工具与其它外部逻辑结合一体,实现具体电路。 硬核的电路布局和工艺是固定的,已完成了全部前端和后端设计,制造也已 确定,不能更改。i p 模块提供者供给用户的是封装好的模型,用户只能从外部对 其进行测试,却无法得到设计者真正的电路设计。其缺点是灵活性最小,优点是 知识产权的保护比较容易。 固核的灵活性介于软核和硬核之间,通常以r t l 代码和对应具体工艺网表的 格式给出,既不是固定的,也不是独立的。设计者可根据用户要求对固核进行修 改,使它适合用于某种可实现的工艺流程,允许用户重新确定关键的性能参数。 i pc o r e 的再利用,不但可以大大缩短复杂系统芯片的开发周期,还能够降低 设计和制造成本。目前,复杂的系统芯片设计不再局限于单个设计部门或一个公 司内部,而是借助于i pc o r e 的重用将各种i c 产业的资源实现优化配置,促使i c 产业更快地发展。 3 2 i p 核功能描述 概括地说,一个u s b 主机控制器核所要完成的功能就是在主机和u s b 设 备之间建立起数据通信。遵循u s b 规范,主机控制器必须提供基本的功能,包括 状态处理、帧产生、数据处理、协议引擎、传输差错控制、远程唤醒和主机系统 接i s l t l 0 1 1 1 1 】。本论文实现的u s b 2 0 主机控制器,其具有的功能特点如下: ( 1 ) 是个点对点的u s b 主机控制器; ( 2 ) 具有u t m i + l e v e l 3 收发器接口,支持8 位或1 6 位数据传输; 1 9 北京交通大学硕十学位论文 ( 3 ) 具有a h b c p u 接口,支持8 位、1 6 位或3 2 位数据传输; ( 4 ) 支持高速( 4 8 0 m b s ) 、全速( 1 2 m b s ) 、低速( 1 5 m b s ) 三种模式;

温馨提示

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

评论

0/150

提交评论