(微电子学与固体电子学专业论文)usb串行接口引擎ip的设计与实现.pdf_第1页
(微电子学与固体电子学专业论文)usb串行接口引擎ip的设计与实现.pdf_第2页
(微电子学与固体电子学专业论文)usb串行接口引擎ip的设计与实现.pdf_第3页
(微电子学与固体电子学专业论文)usb串行接口引擎ip的设计与实现.pdf_第4页
(微电子学与固体电子学专业论文)usb串行接口引擎ip的设计与实现.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

(微电子学与固体电子学专业论文)usb串行接口引擎ip的设计与实现.pdf.pdf 免费下载

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

文档简介

学位论文独创性声明 本人声明:所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表或撰写过的研究成果,也不包含为获得东南大学或其他教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示了谢意。 签名:j 垂堑臼口期,! ! 群三国垄旦 关于学位论文使用授权的说明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交的学 位论文的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本 人电子文档的内容和纸质论文的内容相一致。除在保密期内的保密论文外,允许 论文被查询和借阅,可以公布( 包括刊臀) 论文的全部或部分内容。论文的公布 ( 包括刊登) 授权东南大学研究生院办理。 签名:谨纽座 导师签名 摘要 u s b l 1 是叫时i r 钟埘0 与外部设蔷连接普遍采用的标准。与其它通信接口比 较,u s b 接口的最大特点是易于使用,支持热插拔,并目所有的配置过程都由系 统自动完成,无需用户r 预。幽外些大公司前几年已经开发出来u s b 设备端控 制器,国内这方面的研究丌发很少,大多是做u s b 设备的驱动,通用的硬件开发 很少nu s b 串行接口引擎( s i l ! ) 是u s b 设备端控制器的关键部分,其主要功能 用本地时钟恢复来自手机数据和处理大部分u s b1 1 协议。 本文首先介绍u s b 提出的背景,发展历史和优缺点,接着阐述了u s b 的系 统构架,引出u s b 串行接口引擎的概念,分析了串行接口引擎需要满足的协议。 在此基础j ! 二,重点分析了u s b s i e 的功能,研究如何最合理地划分各子模块, 完成各个子模块的设计,特别钊对u s b 串f j :接口引擎设计中的不同时钟域的处 理,c r c 快速校验的实现和胁、议包的辨认这姥设计和实现的难点,作了详细的 分析,依据相关的理论和算法,结合设计的具体要求提出了合理解决方案,实现 了u s b s i e 的i p 设计。本文用v e r i j o g 硬件描述语言完成该设计,在编码过程 中特别考虑到了接口规范性和代码的规范性和可重用性。 通过仿真及划仿真结果的分析认为0 s b 串行接口引擎i p 满足u s b l ,1 的协 议,时钟的频率可达到设i 的要求( 4 8 m z ) 。本论文最后展望了u s b 的发展前 景和u s b - s i e 的发展趋势以及与t 要竞争对手i e e e l 3 9 4 相比其优缺点,提出了 u s b 串行接口引擎l p 的改进意见。 关键词:u s bs i ev e r i 】o g 集成电路 一一:堑堕查鲎! 塑i 茎竺堡兰 a b s t r a c t a tp r c s e n t ,u s b1 1h a sb e e nw i d e 】ya c c e p t e da ss t a n d a r do fd e r s o n a l c o m p l j t e ra n dp e r i p h e r a d e v ic e sw h i c hh a sb e e na p p l i e di n t ov a r i o u sk i n d s o fd e v i c e s c o m p a r 】n gt oo t h e rc o m m u n i c a t i o n l 1 t e r f a c e t h em o s t a d v a 丌t a g e so ru s 3 n l 。rj 1 a c 。lsi t sf e a s ib j l jl y ,p 1u g i n dp l a ys u p p 。r t i n g , a n da u t o m a t i c c o n f l g u r a t i o nw j t h o u ll 】s e r sd is t u r b a n c e m a n v m u l t i n a t i 。n a c o m p a n ie sh a v e ( 【e v e l o p e du s bt e r m jn a lc o n t r 0 1 e rs e v e r a l y e a r sa g o ,w h i l eh o m er e s e a r c ho nt h et e r m i n a lc o n t r 0 1l e ri sr a r eb u tm o s t l i m i t e di nt h eu s bd r i v e rd e v e l p p m e n tu s bs e r i a li n t e r f a c ee n g i n ei st h e k e yp n r to fu s bd e v i c ec o u tr o l l e r ,a n dt h em a j 。rf u n c t i o no fi ti st or e s u m e h o s td a t ab y 】o c a lc l o c ka n dp r o c e s su s b l 1 d r 。t o c 0 1 i 九t h i sp a p e r , t h eb a c k g r 。u n do fu s bp r o t 。c o li sf i r s t l yi n t r o d u c e d a sw e l l a s il s h isl o r y , a d v a n t a g e sa n dd i s a d v a n t a g e s t h e nu s b a r c h it e c t u r a lo v e r v i c wisp r e s e n le da n du s bs e r l a 】 i n t e r f a c ee n g i n ei s b r o u g h to u t p a r t i c u la r l y ,w h a tk i n do f 眇。t o c 。lm u s tas e r i a li n t e r f a c e e n g i n es a t i s f ie djsd is c u s s e di nd e t a i l b a s jn go ni t ,t h et h e s i sa n a l v z e d t h ef u n c t i o no fu s b s i e , s h l d i e dh o wt oo r g a n i z es u b m o d u l e a n dh o wt o d e s j g ne a c hm o d u l e d e t a i l e d 州s c u s s i o ni sp r e s e n t e da n da c c o r d i n g l y s o l u t i o n sa r eg i v e no nd e s i g nt r i c k so nt h ed i f f e r e n tc l o c kd o m a i ni na u s bs i e , i m p l e m e n t a l i o n 。fc r cf a s tv e r i f i c a t i o n ,a n dp r o t o c o lp a c k e t r e o r g a n iz a t i o n a l l t h em o d u l e sa r ed e s jg n e di n v e r i l o gh a r d w a r e d e s c r i b i n g1 a n g u a g e t ou s ea sa ni p , c o d i n gs t y l ea n dc o d er e u s ea r e c o n s i d e r e di nt h ew h 0 1 ed e sg n b ys i m u l a l ,i o n , u n ds jn l u l a l jo 几r e s u l t a n a l y z i n g , t h eu s b s i ei p s a t i s f i e st h eu s b l 1p r o t o c 。1a n dt h ec o c kf r e q u e n c yc a 八r u na t4 8m h z a tt h ee n do ft h et h e s i s ,w ec a 】k 3 da b o u tt h ep r o s p e c t i v eo fu s bp r o t o c o , c o m p a r e du s bw it h il srv a 】i e e e1 3 9 4 ,a n dp r ( ) p o s e ds u g g e s t i o n st oi m p r o v e t h elj s b s i ei p k e y w o r d s :u s bs ie v e ri i o g in t e g r a t e dc ir c u i t 五i 南凡学 l ! j l 【:学位论殳 第一章绪 本章主要介绍了本沦文中问题的提 介绍了本论文的结构框架。 1 1 论文问题的提出 论 闱述了本课题的主要研究工作,最后 目前x 8 6 个人电f 腩的外接规格f 。分混乱,例如键盘要接 t 规格的接孔,鼠标 要接c o ml j 或p s 2 接r 】,m ( ) d e n 要接另一个c ( 】m 口、打印机要接p a r a l l e lp o r t ( 并 口) ,而摇杆则是要跟m 1d i 装胃共抢g a m e m i d i 口,每个周边外设都是单独与电 脑连接,如果各位绕到电脑背后看看,一定可以看到一堆惨不忍睹的“纠结”现象, 这f 是u s b 想解决的一个问题。除了线路紊乱与安装模糊混淆外,这些线路都不 是可以随意插拔的,必须在丌机前装妥才能正常使用。如果在电脑工作期间插上 或拔出,虽然有时电脑f 还是可以继续工作,但大多数时候电脑会停止响应,或是插 入的装置无法工作,甚下死机 ”。 u s b 就是要解决上述这些问题,它是一种新规格的外接串联口,提出该规格的 厂商希望用u s b 来取代现有种种的外接设备接口。它还具备连接单一化、软件自 动“侦测”以及热插拔的功能,也就是晚,在电脑丌机的情况下,就可以将殴备连 接到电脑上或是将设备从电脑上拔_ f 来拿走。这可以既是做到了真正的即插即用 【”。 现在u s b 已经得到的广泛的应用,全世界共有5 0 0 多家公司纷纷加入了u s b 论坛,他们将支持u s b 规范,生产符合u s b 技术标准的主机、外设和消费电子产 品等【”。 一个设备要想成为u s b 设备,必须有u s b 设备端控制器。 u s b 设备端控制 器通常分为四部分,u s b 串行接 引警( s i e ) 是u s b 设备端控制器的关键部分, 其功能是用本地时钟1 陕复柬自主机数据干处理大部分协议( u s b1 1 ) 。国外一些 公司几年前就设计出u s 3 串行接口引擎( s i e ) 并作为一个i p 来设计并公丌销售。 国内这方面的研究很少,目前的研究主要集t p 在u s b 设备的驱动程序的开发。如 今的i c 设计已经进入s o c 设计的时代,s o c 的设计是基于t p 可重用的设计过程。 本论文把u s b 串行接j 1 擎作为个币独的i p 进行设计也是迎合这一个需求。 存技术方面,本课题是刘u s b j 行接口引擎的设计的丌拓,好多设计思想和实现 方法是i p 漫计的很好参考。 1 2 论文的主要工作 u s b 串行接m j f 擎( 以l 、简称u s bs i f ) 是重要的部分,主要实现不同时钟 域的同步和大部分协议( u s bl1 ) 。u s b s ie 的功能包括:c r c 5 ( 循环冗余校验 的一种) 的检查以及c r c l 6 ( 撕环冗余校验的利,) 的产生和检查,n r z i ( 反向 非归零码) 的编码和解码,数据的恢复,串并转换s e 0 ( u s b 协议规定的一种 状态) 的以剐,位填危和填充位的u 别标示包的识别和数据包的生成,u s b 协 议的复位,挂起刷远程唤醒。本文重点分析j 7 这些功能,研究如何最合理地划分 各子模块,完成了各个子模块设计。针剥u s b 串行接口引擎设计中的不同时钟 域的处理,c r c 快速校验的实现和防议包的辨认这些设计中的难点,本论文作 了详细的讨论并提出解决问题的合理方案并在设计中实现了这些方案。本文所有 模块都用v e r i l o g 硬件描述语高进行编码。在验证阶段,首先建立完备的测试集, 然后对设计进行全测试集仿真测试,并且通过s y n o p s y s 的综合工具d e s i g n c ( ) m p i l e r 和时序分析工具p r i l l et l m e ,得到设计的规模和频率这些技术指标。一 个i 殳计要成为jp ,必须考虑代码的可重用性、可读性,接口的规范性和设计的 通用性。设计q 一和i 1 1 y ( 物理层) 接口采用p h p s 的p h y 的接口规范。设计的编 码过程采用规范的编码风格,这些使代码具有很强的可读性。在可重用性方面, 首先设计中部分模块以可重用的函数形式实现:其次设计考虑了u s b 2 0 的设计 规范了,在本u 、b 刚e 设计中, n r z i 编码和二进制编码之问的相互转换、填充 位的识别和位填充以及并行数据串转为串行数据和串行数据串转并行数据这些 模块的设计,按照u t m i ( u s b2 ot r a n s c e i v e rm a c r o c e l li n t e r f a c e s p e c i f t c a t i o n ) 的功能和接口时序来进行设计,包标示符的识别和包的产生这 两个模块的设引加入了u s b 2 ( ) 的包类型。因此,这个设计稍做修改就可以为 u s b 2 o 的串行接ll 引擎所用。 1 3 论文的结构 本论文分为h 部分:第章绪论,一仁要包括问题的提出,论文的主要工作和 论文的结构。第? 争是利| 系统的介绍和u s b 串行接一引擎的引出。第三章是 u s b 串行接口引擎的整体发计,主要是整体功能分析,怎样最合理划分子模块以 及介绍设计中涉及的协议。第障錾是子模块的设计,对设计中的不同时钟域的处 理,c r c 快速校验的实现和协议包的辨认这些的难点进行详细的讨论,依据相 关的理论和算法,并提出合理的方案,并实现了对每个模块的设计。第五章是 u s b 串行接口引擎的整体功能仿真和技术指标,首先建立完备的测试集,然后用 这些测试集对设汁进行仿真测试,并且通过s y n o p s y s 的综合工具d e s i g n c o m p i l e r 和时序分析工具p r i m et jm e ,得到设计的规模和频率这些技术指标。第 六章是总结和展望,介绍了u s b 发展的前景,u s b s i e 的发展趋势以及和竞争对 手i e e e l 3 9 4 相比其优缺点。 ! ! ! ! 垒兰丝1 主竺笙皇 第二章u s b 以及串行接口引擎的概述 本章介绍了u 娜发展历史及其典型特点和优点,同时简要阐述了u s b 系统构 架和各部分功能以及串行接口0 i 擎在系统r # 的位胃及其功能。该章主要是为本论 文提供没计背景。 2 1u s b 的发展历史 1 9 9 4 年,】n t 。| 、c ( ) m j ) a 吣叭刚t a l 、i b m 、m i c r o s ( ) f t 、n e c 、n o r t h e r nt e l e c o m 等七家世界著名的汁算机和通讯公司成市了u s b 论坛,花了近两年的时间形成了 统一的意见,于1 9 9 j 年1 1 月币式制定了u s b o9 通用串行总线( u n i v e r s a ls e r i a l b u s ) 规范,1 9 9 7 年7 :始有真正符合u s b 技术标准的外设出现。u s b l 1 是目前推 出的在支持u s b 的计算机与外设上普遍采用的标准。1 9 9 9 年初在i n t e l 的开发 者论坛大会上,与会者介绍了l s b 2 o 规范,陔规范的支持者除了原有的c o m p a q 、 i n t e l 、m i c r o s o f t 和e ( :四个成员外,还有惠普、朗讯和飞利浦三个新成员。 u s b 2 - o 向下兼容u s b l 1 ,数据的传输率将达到1 2 0 m b p s 2 4 0 m b p s ,还支持宽带 宽数字摄像设备及下一代扫描仪、丰j 印机及存储设备。 现在【! s b 已终褂到的广泛的应用,全世界共有5 0 ( ) 多家公司纷纷加入了u s b 论坛,他们将支持l s b 规范,7 k ,:符合u s b 技术标准的主机、外设和消费电子产 品等。国外的一些公司早在几年前就刀:发出来u s b1 1 设备端控制器,现在u s b 2 o 的设备端控制器也已经玎发出来了。 2 2 u s b 的系统构成以及各部分功能 图21u s b 总线拓扑结构 0 ;j “人学! f :j + 7 f t 论上 一 ,一 个u s b 系统包含二类f 】业件改备:| i :机( u s bh ( ) s t ) 、 u s b 设备( u s b d e v t c e ) 、u s b 集线器( u s bm j ) ,虫剀2 1 所示。下面介绍一下各个部分的功能: ( 】) u s bh ( ) s t 在一一个u s b 系统中,仅有一个u s bh 0 州时,u s bh o s t 有以下功能: 管理数据流: 主机控制着总线数据流,多个外设可能希望同时传数据。主机控制器按如下 方式处理这个问题:它把数据通道分成l m s 的帧,然后给每个传输分配每一帧的 部分。 检测设备; 在上电时,集线器使得主机知道所有已经连接的u s b 设备。在一个被称为识 别的过程中,主机分配一个地址,并向每个设备请求其他信息。在上电后,无论 何时当一个设备被连接上或者被断丌,主机都知道这个事件,并向可供应用程序 使用的表中加入任何新连接的设备或删除任何断丌的设备。 错误检测: 主机也有错误检查的责任。它给发送的数据加入错误榆查位。当一个设备接 收到数据时,它可以刈数据进行计算,然后把结果和接收到的错误检测位进行比 较。如果结果不吻合,设备不确认收到数据,主机就知道它需要重新发送( u s b 也支持不允许重新发送的传输类型,目的是保持一个稳定的传输速率) 。主机将 剥它从设备接受到的数据进行错误检查【乜采用相似的方法。主机也可能收到其他 错误指示符,这些指示符表明这个设备不能发送和接受数据,然后主机就可以通 知设备驱动,驱动再提醒程序采取合适的动作。 提供电源 u s b 电缆有两个信号线,个+ 5 v 的u s b 电源线和地线,一些外设从这些线中 得到所有所需的电源。在上f 邑或者连接时,主机给所有设备提供电源。每个满负 荷电源,总线供乜的设帑需要鬲达j o o m a 的电流。在些电池供电p c 的端 j 和 集线器只支持低功耗的设备,他们的工作电流被限制在lo o m a 以内。个可能自 己供电,只是刚丌始在主机通信时使剧总线电源。 与外设变换数抓 所有以上的仟务纠成了j i 机的i 要j 作,与外设交换数据。在一些情况下, 盟竖竺坐堡兰 一个设备驱动晴求 :机按 个i 肯求的述率稳定地传送数据:在其他情况下,主机 通信只有在 个应川榭序或其他软件组件请求时才发生。改备驱动给合适的应i e j | 2 序报芒任f t 十j 现n j l 叫题。 ( 2 ) u s bd f v f c e 在很多方面,外i 殳或者发备的责任就是主机责任的一个镜像。然而,外设也 有独立的任务。外设的 :要功能如n 检测直接到芯片的通信 每个外设在每一次总线的通信中检测者设各地址。如果这个地址与设备保存 的地址0 ;相同,则这个设备应该知道忽略这个通信。如果地址吻合,设备把数据 保存在它的接受缓冲器中,并且产生一个中断表明数据已经到达。在几乎所有的 j 占片中,这些都是自动完成的;被内置于硬件中。设备程序代码不需要采取动作 和做出决定直到芯片已经检测到一个通信包含它的地址。 对标准请求的响应 当上电和外设连接到带电系统时,设备必须在识别过程中对主机的请求做出 响应。所有的u s b 设备有11 种查询设备的能力和状态以及选择配置的标准请求 代码。当接受到请求吲,敬备把要发送的响应信息放置在它的传输缓冲器中,在 一些情况下,比如设定一个地址和配置,设备除了响应信息还要采取其他动作。 然而设备不必执行每个请求;它只需要以一种可以理解的方式对请求作出响 应。例如,当主机请求一个设备不支持的配置时,设备用一个指示符来表示,指 示请求不被支持。 错误检测 像主机一样,设备给它发送的数据加入错误校验位。如果检测到错误,就请 求重发( 同步传输是 个例外) ,那么在接受到包含错误校验位的数据时,设备 做错误检查计算。这些功能内谔在硬件中,不需要编程来实现。在适当的时候, 设各也检测到主机发送的确认以回应它接受到的数据。 管理电源 如果设备不是总线供电的,它必须自供电。当没有总线活动时,设备必须进 入低功耗挂起状态,但继续监视总线,当总线活动恢复时,必须退出挂起状态。 当主机进入低功耗状态时如当w i n ( 1 ( ,w s9 8 的备用状态时,所有的总线通 信都停l :了,包括t 机每微秒f h # 发送的幅计时。当连接到总线的没备检测到 总线的活动停止了3 m s 之后,他们必须进入挂起状态并且限制它们从总线中取出 电流。,:机也i 以请求扑起与 个特定设备的通信。当总线活动回复时,设备必 须退出挂起状态。 与毛机交换数据 在个u s b 系统f ,u s | 邮vj c e 和u s bh u b 总数不能超过1 2 7 个。u s bd e v i c e 接收u s b 总线上的所钉数据包,通过数据包的地址域来判断是不是发给自己的数 据包:若地址不符,则简单地丢弃陔数据包;若地址相符,则通过响应u s bh o s t 的数据包与u s b1 1 0 s t 进行数据传输。 ( 3 ) u s bh u b u s bh u b 用于设备扩展连接,所有u s bd e v t c e 都连接在u s bl u b 的端口上。 一个u s bh o s t 总与一个根眦b ( 吣rr 。o t u b ) 相连。u 邓h u b 为其每个端口提 供1 0 0 m a 电流供设备使用。同时,u s b i u b 可以通过端口的电气变化诊断出设备 的插拔操作,并通过响心【j s b o s t 的数据包把端口状态汇报给u s b | i o s t 。一般 束晚,u s b 设备与u 邬川b 问的连线跃度不超过5 m ,u s b 系统的级联不能超过5 缎( 包括l o o th u b ) 。 2 3u s b 的优缺点 2 3 1 优点 1 使用简单方便 所用u s b 系统的接l 卜一致,连线简单。系统可对设备进行自动检测和配置, 支持热插拔。新添加设备系统不需要重新启动。使用u s b 接口呵以连接多个刁i 同 的设备。在软件方面,为u s r 设汁的驱动程序和应用软件可以自动启动,无需用 户干预。u s b 设备也小涉及_ 冲突等问题,它单独使用自己的保留中断,不会 同其它设备争片jp c 机仃限的资源,为用户省去了硬件配置的烦恼。u s b 设备能 真正做到”即插即用”。 2 速度加快 快速性能是u s b 技术的尖出特点之。u s 叭1 接口的最高传输率目前可达 1 2 m b s ,比串门快了整整l ( 】【) 倍,比并1 也快了十多倍。u s b 2 o 接口的最高传 输率目时可达4 8 0 m h s 。 3 连接灵活 u s b 接口支持多个小同设备的申列连接,一个u s b 口理论上可以连接1 2 7 个 u s b 设备。连接的方式也十分灵活,既i 】j 以使用串行连接,也可以使用中枢转接 头( h u b ) ,把多个设备连接在起,再同p c 机的u s b 口相接。在u s b 方式下,所 有的外设都在机箱外连接,小必打开机箱:允许外设热插拔,而不必关闭主机电 源。u s b 采用”级联”方式t 即每个u s b 设备用一个u s b 插头连接到一个外设的u s b 插座上,而其本身又提供一个u s b 插座供下一个u s b 外设连接用。通过这种类似 菊花链式的连接,一个【一s r 控制器可以连接多达1 2 7 个外设,而每个外设i 剐距离 ( 线缆长度) 可达5 米。u s b 还能智能u 别u s b 链上外围设备的接入或拆卸。 4 较强的纠错能力 u s b 系统可实时地管理设备捅拔。在u s b 协议中包含了传输错误管理、错误 恢复等功能,同时根据不同的传输类型来处理传输错误。 5 支持多媒体 u s b 提供了对电话的两路数据支持,u s b 可支持异步以及等时数据传输,使电 话可与p c 集成,共享语音邮件及其它特性。【s 】j 还具有高保真音频。由于u s b 音 频信息生成于计算机外,因而减少了电子噪音干扰声音质量的机会,从而使音频 系统具有更高的保真度。 6 总线供电 普通使用串口、并口的设备都需要单独的供电系统,而u s b 设备则不需要, 因为u s b 接口提供了内瞢电源。u s b 电源能向低压设备提供5 v 的电源,因此新 的设备就不需要号门的交流电源了,从而降低了这些设备的成本并提高了性价 比。 u s b 总线可为连接在其上n 勺设备提供5 v 电压1 0 0 m a 电流的供电,最大可提 供5 0 0 l a 的电流。u s b 没备也”r 采用自供电方式。 7 低成本 u s b 接l j 电路简暂,易于实现,特别是低速设备。u s b 系统接口电缆也比较 简单,成本比串门或j j 低。 8 应用范围广 u s b 丌始使用到现往已经有超过5 年的历史了,在这5 年中,u s b 规范一直没有 什么更改,但u s r 的j 越j f j 则盔1 i 断增加,早期人们还只是用它作简单的鼠标外设 接口,随后jh 现了【j 接门的键盘、扪印机、扫描仪。随着u s b2 0 的正式投 入使用,吣b 接l q 符类存储设备发展之快让人同不暇接,不仅成熟的u s b 硬盘 伴随着u s b2 o 那高达4 8 0 m b p s 的带宽。举突破瓶颈成为人们瞩目的焦点,便携 刻录机、闪盘存储擀也剧为速度的提高而为人们所接受。 9 不需要用户设定 u s b 外设没有需要用户选择的设备,例如端口地址和中断请求( i n t e r r u d t r e q u e s t ,i r q ) 线。p c 卜可供使用的i r q 线足很少的,不能给外设分配一根i r q , 这经常是使用u s b 的原因。 1 0 为其他设备窄出硬件资源 为了让尽可能多的设备使用u s b ,i u 使i 】 q 线空闲出来供那些必须使用i r q 的外设使用。p c 必须贡献出一系列的端口地址和一根i r q 线给这个接口。但是 除此之外,单个外设不需要其他的什么资源了。对比之下,每个非u s b 外设都需 要有端口地址,通常还需要丰隧i l i q 线,有时还需要一个扩展槽( 例如,并行端 口卡) 。 l l ,低功耗 当u s b 外设不被使用时电路会自动关断电源,但是仍然能够在使用时做出反 应。除了具有降低电源消耗带来保护环境的好处之外,这个特征对于利用电池的、 以m a 计的计算机尤其适用。 2 3 2 缺点 1 缺少对老硬什设备的支持 老的汁算机和外设没有u s b 端口。如果你想连接一个非u s b 外没到u s b 端r = | , 就比较麻烦。 2 距离限制 u s b 被设计成一种桌面总线,期望外设就在手边。电缆可以长达5 m ,其它接 口,比如r s 一2 3 2 ,r s 一1 8 5 和以太网允朗:更长的电缆。但是你可以通过使用6 条, 每条长5 m 的电缆味连接扛个集线器和个没备,那么u s b 连接的长度可以达到 3 0 m 。另外一个选择是在p c 上采用u s b 接口,但转换成r s 一4 8 5 或其他可以达到 更长距离的接口。 ! 尘! 型! :竺坚丝苎 3 技术不是非常成熟 u s b 技术还不足很成熟,特别是高速设备。市场上现有的u s b 设备价格都比 较昂贵,但随着u 洲技术的r ;& 成熟,设备的不断增加和广泛应用,其价格将会 有所降低。尽管侄理沦h u 洲可以实现高达1 2 7 个漫备的串列连接,但是在实 际应用中,也m # 暇: 钊4 个设备就可能导致一些设备失效。而且大多数u s b 产 品t 只有一个输入fj ,愀本无法再连接下个u s b 设备。另外,尽管u s b 本身可 以提供5 0 0 m a 的电流,”一h 碰到高电耗的设备,就会导致供电不足。解决这些 问题的办法是使用l s bf h j b ,但h u b 的价格目前还太贵了点。 2 4u s b 串行接口引擎的概述 u s b 系统| = f _ 主机,集线器和设备端控制器构成。在每一个u s b 设备,都会有 一个设备端的控制器,这个控制器一般由四部分构成,其中串行接口引擎 ( u s b s i e ) 是u s b 设备端控制器的关键的部分,它在设备端控制器的位置如下 图所示。其主要功能是实现不同时钟域的同步和大部分协议( u s b1 1 ) 功能。 u s bs i e 的功能包括c r c 5 的检查以及c r c l 6 的产生和检查,n r z i 的编码和解码, 数据的恢复,串并转换,s e 0 和s e l 的识别,位填充和填充位的识别,标示包的 识别和数据包的生成,0 s b 协议的复位,挂起和远程唤醒。当然,要设计这个i p , 仅有这个功能定义是不够的。首先要做整体的规划,定义接口信号,做好模块划 分。其次设计中涉及到不刷时钟域的处理,c r c 快速校验的实现和协议包的辨 认这些难点,要进行洋细的时论并提出自己的解决方案。最后,设计必须考虑可 重用性,怎样彳能够为u s b 20 设备控制器所用。此外编码要很好的编码风格。 f n d p c ( ) n t k 洚【22 吣b 串行接口引肇的位置 第三章u s b 串行接口引擎整体设计 这一章阐述u s b 串行接模块的总体功能,研究分析了模块的最佳划分方 案最后介绍设训巾涉及的踯议。 3 1u s b 串行接口引擎的功能定义 尽管各个公司的l r ;行接口引擎的功能定义不尽相同,但是差别都不大。 本文所设计的u s b 串行接1 引擎的功能包括:c r c 5 的检查以及c r c l 6 的产生和 检查,n r z i 格式的编码和解码,数掘的恢复,串并转换,s e o 和s e l 的识别,位填 充和填充位的识别,标示包的识别和数据包的生成,协议复位,协议挂起和远程 唤醒”。根据功能定义,得到u s b 串行接口引擎总体的框图如下所示: r e f c i k ,一一 r - j ! ! 兰1 3 1 一 v b u s s t a b i e p h y r c v p h y d p p h y d m p e d e va d d r p e t x d a t a p e t x d a t a v a lj d p e l d a t a v a i i d h p e p h y c m d p e t x r e s u m e s ie s l e s y n s t a r t - s j e r x d a t a v a i i d i s l e r d a t av a d 、- - - s i er x a d d rm i s m s i e r 一s u s p e n d 一- - s i e r x p k l e r r o r s j e r ) l p i d 一。 s i e r x e p i n d e x s i er xd a t a 1 s i er e s e tt ) ( 仃f o s i e r j r a m e n l 。一- - - - - - - - 一 s i e u s b r e s 拿l n d a t a e o p d a t a p h y 0 一s u s p e n d p h y o o e - n p h y o d p o u t p h y 0 一d m o u t p h y 0 一s p e e d 塑坠羔型旦型丝兰 3 一jh 地整体框图 红色的输入信号表小求门p h y 的信弓。紫色输入信号的表示来自协议状态机 的信号,黑色输入信j 的表示通刷的时钾信号,复位信号和电源的稳定信号。绿 色输入信号的表小来自h f 0 的信号。红色的输出信号表示输出给p h y 的信号, 其余的是给协议状态机的信号。下 面首先简单介绍一下输入输出信号,以及发送 和接受的数据处理过程n 从咖汉处理机模块输入的信号:主机来的数据和数据高 低位有效信号,丰机束的地址,主机永的唤醒信号和主机来的命令从p h y 输入 的差分信号:p h y d p 和p h y d 。还有时钟信号r e f c l k ,复位信号a p pr s tn 和 总线电源稳定信号v b u s s t a b l e 。输出信号包括输出到p h y 的信号、输出到p e 的信号和输出的协议复位信号。输出到p h y 的信号包括差分信号p h v od d 。和 p h y o d m 。,p h y 的使能信号p h y o 一0 e n ,p h y 的速度信号p h y o s p e e d 和p h y 的挂 起信号p h y 0 一s l ,s p e n d 。 输出到p e 的信号:包括一些控制信号和出错信号。 3 2u s b 串行接口引擎的整体设计 根据u s b 串行接lj 引擎的功能定义,本文把整个整体功能划分为以下8 个模 块:d p l l ,l x i f , “x i f ,n d b d ,n e b s ,s b s 叭p i d 和c r c g 。 d p l l :用来划束白 机的数据进行恢复以及s e o ,s e l 的识别, r x i f :接受模块接口,包括串行数据转为并行数据。 t x i f :发送模块接口,包括并行数据转为串行数据。 n d b d :反向非归零编码和填充他的识别。 n e b s :反向非归零解码和位填允。 s b s m :s y n c 和e 叩的u 别,来自主机的复位,挂起和远程唤醒的处理。 p i d :p i d 的识别和c r c 5 和c i cj6 的检查。 c r c g :c r c l 6 校验的产生以及数掘包和握手包的生成。 设汁是这样处理从主机接受到的数据:数据首先经过d p l l 模块进行数据的 恢复,s e 0 和s e l 的检测,然后把恢复后的数据,s e o 和s e l 状态输给s b s m 模块。 s b s m 模块处理协议复位,设备的挂起和设备的远程唤醒,控制对p h y 的输入输 出,输出数据和控制信号,n d b d 模块接受到这些信号之后,对数据进行n r z i 编 码到二进制编码的转换,脓”模块把编码转换后的串行数据转换为并行数据, p i d 模块对这些j :行数据进行解析,【:r ( :1 6 牙c c 5 的校验,输出包的类型,包的 内容和出错信息给协议处玛i 机模块。发送给主机的数据的处理过程:数据在把来 自协议处理机模块的命令,数据,地址和端点送给c r c g 模块,数据首先在c r c g 模块加入c r c l 6 校验位( c 照】6 校验是在位填充之前) ,然后在,、x i f 把这些并 行数据传为串行数据,在眦r s 模块中加入需要的填充位,最后在s b s m 模块中加 入e o p ( 包结束符) 和同步字符( s y n c ) ,尹f 变成差分信号输出给p h y 。 对于u s r 串行接口引擎来说,必须划来自主机1 2 m h z 的数据进行恢复,一般 用个简单的d ( 数字锁相环) 来进行数掘恢复。根据高速时钟对低速数据 恢复的频率至少为4 倍的原则,采用4 8 m h z 的时钟对数据进行恢复。对于对恢复 后的数据进行处理的模块来讲,时钟可以采用以下两种方法: 时钟可以来门d p l l ,这样的话,要求d p i 上不仅能恢复出数据,也能恢 复出时钟。这样u s b 串行接口引擎的整体框图如下所示: d p l l 图3 2u s b s i e 整体方案一 时钟柬自本地( 4 8 m h z ) d p l l 只需要恢复出h 寸钟,不需要恢复出数据。 这样u s b 串行接口引擎的整体框图如下所示: d p l l r 一 厂i 一 f _ n d b o ! | r x l f 卜* 峥1p i dl - 睁 r i 一 一一r 一 r n f b s 一一t x i fb - - - - - c r c g - - 一 l j j i _ i _ - - l r h :卜3l f s b s l f i 整体方案一二 竹 一t 删n 一 s 型苎型坚! 堂垡堡兰 方案一是传统的方法,这个、方案的优点是只有d p l 【。采用4 8 m h z 的频率,其 余模块都采用1 2 m h z 的频率,这些模块的设训难度就会小些。但是,这个设计 有致命的弱点,那就是d p i ,l 模块中的会有三个时钟域,主机的1 2 m 】 z 时钟,本 地的4 8 m h z 时钟和恢复后的1 2 m h z 时钟,这样就会涉及到两个异步问题。众所周 知,异步设计的处理很困难,不可能避免丢失数据。当前的e d a 工具不支持异步 设计,数据丢失的情况【乜没有办法胴e i ) a 工具来进行模拟。方案二避免了这个问 题,仅有两个时钟,数葫i 丢失的概率小多了。但是会增加些硬件丌销,因为要 用4 8 m h z 的时钟对1 2 川z 的数据进行操作,每一次操作都要加一个位使能信号。 由于该设计是采用2 5 的工艺,4 8 m h z 这个频率要求不是问题。综合上述因素考 虑,设计采用第二种方案。 此外,u s b 2 0 的协议于2 0 0 0 年已经制定,现在一些公司已经丌发出来 u s b 2 o 的产品,从长远来看l s b 2 0 取代u s b l 1 是大势所趋。所以设计中考虑 到向2 0 升级的问题,和协议处理机接口的模块的接口已经按照u s b 2 o 的标准 来,p i d 模块可以辨认u s b 2 o 所有的包类型。c r c g 模块可以产生u s b 2 o 所有的 数据包和握手包。 3 3u s b 的协议: 满足协议的u s b 串行接口引擎才能够正常工作,u s b 的协议很多,下面就介 绍一下需要满足的 力、议。u s b 协议的理解要从基本的传输开始。每个传输是由事 务组成。每个事务都有包组成。包包括标示包,数据包和握手包。每一种包的内 容都有以下规定: 3 3 1 状态的说明 对于u s b1 】的协议来说,差分信号d p 为l 并且d m 为o 代表j 状态,差分信号d p 为0 并且d m 为1 代农k 状态,差分信号d p 为o 并且d m 为o 代表s e o 状态,差分信号d p 为0 并且d m 为o 代表s f l 状态。 3 3 2 位定序 数据位被发送到总线的时候,首先最低有效位( l s b ) ,跟着是下一个最低 有效位,最后足鼗高有效位( b ) 。在以后图表中的,包以下列形式给出,即 包中单个的位和字段从厶到右的顺序就是它们通过总线的顺序。 3 3 3 同步字段 所有舵他都从i - _ 步( s y n c ) 7 :段丌始的,同步字段是产生最大的边缘转换密 度( e d g et r a n s il i ( 、nd e n s i t v ) 的编码序列。同步字段作为空闲状态出现在总 线上,后面跟着以n r z 编码的二j 进制串“k j k j k j k k ”。通过被定义为8 位长的二 进制串,输入电路以本地时钟对齐输入数据。同步字段是用于同步的机制,在以 后图表当中将不被表示。同步字段耻的最后的2 位是同步字段结束的记号,并且 标志了包标u 符( p jd ,p a c k e ti d e n t i f i e s ) 的开始。 3 3 4 包字段格式 在后面几节将捕述标已,数据和握手包的字段格式。包中位的定义是以未编 码的数据格式给出。为了清楚起见,在此刁i 考虑n r z i 编码和位填充( b i t s t u f f i n g ) 的影响。所有的包部分别有包丌始( s t a r t o f p a c k e t ) 和包结束 ( e n do f p a c k c

温馨提示

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

评论

0/150

提交评论