(通信与信息系统专业论文)usb20通用串行总线ip核设计.pdf_第1页
(通信与信息系统专业论文)usb20通用串行总线ip核设计.pdf_第2页
(通信与信息系统专业论文)usb20通用串行总线ip核设计.pdf_第3页
(通信与信息系统专业论文)usb20通用串行总线ip核设计.pdf_第4页
(通信与信息系统专业论文)usb20通用串行总线ip核设计.pdf_第5页
已阅读5页,还剩48页未读 继续免费阅读

(通信与信息系统专业论文)usb20通用串行总线ip核设计.pdf.pdf 免费下载

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

文档简介

摘要 摘要 通用串行总线( u s b ) 系统是针对现有的计算机( p c ) 外围设备连接体制所具有 的规格混乱、不支持热插拔等缺点而提出来的新一代计算机与外围设备之间的通 信协议,它具有高速、双向、同步、低成本、可动态连接等优点,成为计算机新 的接口标准。 本论文对通用串行总线( u s b ) 系统进行研究,并根据u s b 2 0 规范设计了u s b 设备控制器i p 核。 论文首先研究了u s b 系统的工作原理,并分别对u s b 的协议基础、数据传输 类型、数据触发机制和同步机制、错误检测等进行了分析。在此基础上完成了u s b 设备控制器的结构设计。然后针对u s b 设备控制器的具体功能要求,按照自上而 下模块化的设计思想,将该设计划分成u t m i 接口模块、协议处理模块、寄存器 管理模块和仲裁模块等来实现。最后用硬件描述语言对u s b 设备控制器进行描述, 并用仿真工具和综合工具对该设计进行仿真和综合。 关键宇:0 s b 2 0u s b 设备控制器i p 棱 垒里曼! 垦垒曼工 a b s t r a c t u n i v e r s a ls e r i a lb u s ( u s b ) i sac o n n e c t i v i t ys p e c i f i c a t i o na i m e da tp e r i p h e r a l s c o n n e c t i n g o u t s i d et h e c o m p u t e r i no r d e rt oe l i m i n a t et h eh a s s l eo fo p e n i n gt h e c o m p u t e rc a s ef o ri n s t a l l i n gc a r d sn e e d e df o rc e r t a i nd e v i c e s u s bp r o v i d e sf o re a s eo f r i s e ,e x p a n d a b i l i t y , a n ds p e e df o rt h ee n du s e r ,s ou s b w i l lb e c o m et h en e x tp r o t o c o l s t a n d a r do f c o m p u t e r p e r i p h e r a l s t h i sp a p e rf o c u s e do nt h ew o r k i n gp r i n c i p l eo fu s ba n de s p e c i a l l yr e a l i z e dt h e d e s i g nm a ds i m u l a t i o n o ft h em f i v e r s a l d e v i c ec o n t r o l l e r ,w h i c hi sb a s e do nu s b s p e c i f i c a t i o n2 0 f i r s t l y , t h ea r c h i t e c t u r a lo v e r v i e wo fu s bi s d i s c u s s e da n dt h eu s bf u n c t i o ni s a n a l y z e d t h es t r u c t u r a la n a l y s i si sf i n i s h e di nf o u ra s p e c t s :s y s t e mc o n f i g u r a t i o n ,d a t a f l o wt y p e s ,d a t at o g g l e ,e r r o rd e t e c t i o na n dr e c o v e r yb a s e do nt h e s ea n a l y s e s ,am o r e u n d e r s t a n d a b l es t r u c t u r eo fu s bw a se s t a b l i s h e d t h e n i ti sd i s a s s e m b l e daf e wo f m o d u l e ss u c ha su t m i m o d u l e ,p r o t o c o lp r o c e s sm o d u l e ,m a n a g e m e n tr e g i s t e rm o d u l e a n da r b i t r a t i o nm o d u l e ,r e a l i z e db yu p - d o w nm o d u l ed e s i g nt h e o r y f i n a l l yt h eu s b c o n t r o l l e ri sd e s c r i b e dw i t h h a r d w a r ed e s c r i p t i o nl a n g u a g e ,s i m u l a t e da n ds y n t h e s i z e d b y t h et o o l s k e y w o r d s :u s b 2 0u s bd e v i c ec o n t r o l l e ri pc o r e 第一章绪论 第一章绪论 1 1u s b 的技术背景及其意义 以前外设与p c 机的通信主要是通过p c 机主板提供的各种接口来实现的,如 i s a 接e l 、p c i 接口、p s 2 接口、串行接口、并行接口等。这些老式的接口最初由 i b m 公司在2 0 世纪8 0 年代提出的,存在许多缺陷: 1 、这些接口是非共享式的,只支持单个外设连接,即在同时刻一个接口只能连 接一个外设。而当前p c 机接口数量有限,根本无法满足大量外设连接的需要。 这时,p c 机的可用接口就显得越来越紧张了。 2 、这些接口体积庞大。它们几乎占用了p c 机主板面积的一半,而硬件厂商不可 能无限制地增加主板的面积来扩充这些老式的接口。而且大体积的接口不利于 p c 机外设的小型化。 3 、这些接口的规格不一。当用户需要把一些外设连接到p c 机时,他们不得不面 对种类繁多的i o 扩展槽和外部端口,这会使用户觉得很不方便。 4 、这些接口采用传统的i o 模式。外设被映射为c p u 的i 0 地址空间,并被分配 一个指定的i r q ( 中断请求) ,或是一个d m a 通道。这种模式会带来诸如i o 地址冲突、所指定的i r o 已经被别的外设占用等问题。这时用户需要采用手工 的方法设置一些开关和跳线以重新配置这个设备,有时还必须打开机箱,而且 在设置完毕后,用户必须重新启动计算机,这才能使这些新的配置生效。不论 对外设的开发者还是使用者来说,这个过程都相当繁琐。 为了克服老式接口的上述缺陷,p c 机制造商和用户迫切需要一种新型的外设 连接方式,这样u s b 技术应运丽生了。 u s 8 是u n i v e r s a ls e r i a lb u s 的英文缩写,即通用串行总线接口。它为以上 问题提供了一种解决途径,是种新的外围设备连接技术,它为个人电脑与其外 围设备之间的连接提供了一种标准化、单一化的接口。其主要特征是高速、双向、 同步、低成本、可动态连接,并且可以与当今乃至将来的计算机平台兼容,是对 计算机体系结构的一种工业标准扩展,在具体的实现上具有以下特征。1 : 1 、快速数据传输 u s b 高速方式可以达到4 8 0 m b s ,可以广泛地应用于需要比较高速大批量传 输的场含,比如数字音频设备、数码相机和扫描仪等;u s b 全速方式可以达到 1 2 m b s ,另外为了适应一些不需要很大传输率的外设,如鼠标键盘等,u s b 又规 定了低速方式,其速率为1 5 m b s 。 2 u s b 20 通用串行总线l p 核的世计 2 、优秀的电源管理 普通使用的串口、并口的设备都需要单独供电系统,u s b 总线可以提供5 0 0 m a 的电流。u s b 外围设备处于待机状态的时候,会自动启动省电的功能来降低耗电 量。当要使用设备时,又会自动恢复原来的状态。在使用电池供电的计算机系统 上,这个特性特别有用。 3 、易于扩展 u s b 总线协议规定,通过h u b ( 集线器) 可连接多达1 2 7 个外设。标准的u s b 电缆长度为5 m ,通过h u b 或中继器可以使外设距离达到3 0 m 。、u s b 总线在物理 上是层次星形的总线拓扑结构。一个h u b 在每个星形的中心,其中每一个节点 ( n o d e ) 作为u s b 节点接入一个u s b 设备;根据其芯片功能的不同可有很多不同 的下行端口,接入不同的u s b 设备,但是任何个h u b 只能有一个上行端口。 4 、使用灵活 u s b 支持三种类型的传输速率:1 5 m b s 的低速传输、12 m b s 的全速传输和 4 8 0 m b s 的高速传输:四种传输类型:批量传输、同步传输、中断传输和控制传输。 这是其能够适合多种外设需要的原因。 5 、支持即插即用 u s b 一支持热插拔,当你安装个新的设备的时候,不用打开机箱,也不用关 机,系统将自动检测到这个新的设备,再给它找到合适的驱动程序,对其进行自 动配置。完全抛弃了过去的手工搡作。 6 、价格低廉 虽然u s b 接口比起以前的接1 3 来得复杂,不过它的组件与电缆都不贵。与以 前的接口比较起来,u s b 接口甚至可能只需更少的花费。如果使用低速模式的u s b 设备,其硬件的需求会让价钱降得更低。 7 、良好的兼容性 u s b 规范具有良好的向下兼容性。如u s b 2 0 的主控制器就能很好地兼容 u s b l 1 的产品。操作系统在检测到全速u s b 设备接入时,会自动按照1 2 m b s 的 速率进行传输,而其他高速u s b 设备并不会因为全速设备的连接而减慢它们的传 输速率,它们仍可继续使用4 8 0 m b s 的速率进行传输。 u s b 的众多优势使它的应用越来越广泛,一些业界人士预测,未柬的p c 将是 一个密封设备,所有外设都将通过u s b 或其他外部接口连接。 第一章绪论 i 2u s b 技术研究现状与趋势 u s b 技术是19 9 4 年底由i b m ,i n t e l ,c o m p a q ,d e c ,m i c r o s o f t ,n e c 和n o r t h t e l e c o m 共同开发的p c 外设接口标准,由于其具有使用方便及成本低廉等优点, 迅速得到业界的强力支持,目前己经成为主流的总线标准,2 0 0 1 年u s b 设备出货 量已超过3 亿台。u s b 广泛应用于传统p c 外设,如鼠标、键盘、显示器等,移动 存储设备如移动硬盘、闪存盘等,以及新兴的消费类电子,如m p 3 播放器、数码 相机、移动电话等。 u s b 最初推出的是1 x 版本,其总线传输速度较低,为1 2 m b s ,1 9 9 8 年推出 了u s b 2 0 ,将数据传输速度提高到了4 8 0 m b p s ,在保持了u s b l 1 的优点的前提 下,保证了向下兼容性,可以完全支持各种u s b1 x 的产品。u s b 2 0 满足了高端 应用对总线带宽的需求,从2 0 0 2 年下半年起,采用u s b 2 0 的设备开始大规模出 现,到了2 0 0 4 年u s b 2 0 整体出货量将超过3 亿台,超过u s b l 1 的出货量。 随着u s b 设备的迅速增加,设备与设备之间的直接数据传输变得越来越迫切, u s bo t g ( o nt h e o o ) 技术应运而生了,它于2 0 0 1 年1 2 月底制定,赋予了设备 双重身份,即既可以作为主机,又可以作为设备,其实质是在设备中增加了个 嵌入式计算机来执行主机任务。这一技术使u s b 设备摆脱了对p c 的依赖,大大 扩展了u s b 的应用范围,并结合u s b 2 0 高速传输技术,严重威胁到i e e e1 3 9 4 的传统市场。 目前,u s b 接口己经成为计算机的主流接口,各大生产厂商纷纷将目标投向 了u s b 接口,已经上市的u s b 接口产品市场反应良好,利润丰厚,得到了用户的 青睐,展示出欣欣向荣的景象。正在逐渐取代p c i ,p s 2 等接口而成为市场的主流。 现在u s b 接口的市场趋势可以说是向着越来越大,越来越宽,前景十分看好。 从u s b 标准的推出至今,国外有许多大的供应商都已经推出了技术上比较成 熟的u s b 控制器芯片。然而,国内( 大陆) 现有的芯片开发企业( 主要是已经通过国 家i c 企业认证的公司) 目前没有关于u s b 2 0 芯片的开发项目。因此,计算机外设 生产厂商完全依靠从国外或者是台湾进口u s b 接口控制器,这样使得中国的企业 处于比较被动的局面,而且也不利于我国经济的发展。论文为了打破国外在芯片 上对我国的长期垄断,开发具有自主知识产权的u s b 2 0 设备控制器芯片,对该 协议进行了深入的研究,并在此基础上设计u s b 2 0 设备控制器i pc o r e ,一方面用 于深圳清华大学研究院移动数字电视接收芯片中,一方面可以作为一个标准的 u s b 2 0i p 核应用于其他的场合。 4 u s b 20 通用串行总线i p 核的设汁 1 3 i p 的概念、分类,设计流程和在s o c 中的应用 随着微电子技术的发展,集成电路芯片的功能变得更丰富,工作速度也越来 越快,器件的几何尺寸也越来越小,芯片的成本越来越低。从芯片的功能和规模 来讲,一个:艺= 片就是一个完整的电子系统,这种芯片称为系统芯片( s o c :s y s t e mo n c h i p ) 。其广义的定义为:在同一个芯片上集成了控制部件( 微处理器、存储器、i o 接口) 和执行部件( 微型开关、微机械) 能够自成体系、独立工作的芯片。集成电路 的设计走过了一条从低层次到高层次、从单一设计组织完成整个设计到多个单位 完成片上系统设计的过程。在2 0 世纪7 0 年代之前,芯片设计和制造紧密相关, 芯片设计通常在半导体产业内部完成,设计者根据工艺线的具体工艺条件设计物 理版图。此后设计的层次从晶、体管、逻辑门、寄存器( r t l ) 逐步变化,而在r t l 层 次,当今的设计人员的设计能力平均为2 0 0 门人天,而片上系统的规模大致在1 0 , 0 0 0 ,0 0 0 个等效门,这样完成片上系统的设计要花费大量的时间。目前集成电路的 集成规模正以5 8 的速度增加丽集成电路的设计效率仅以2 1 的速度增加,这 样就在设计规模和设计效率之间形成了一定的剪刀差,i c 产业剪刀差示意图如图 1 1 所示。【2 设 汁 效 赢 、 设 计 规 模 时阃 圈1 1i c 产业剪刀差示意图 对于一个高技术产业,它所面临的新产品上市时间( t i m e t om a r k e t ) 的压力越来 越大,如果由于产品开发周期过长而错过了市场,那么它需要花费很大的代价才 能挤入市场,要么会彻底的失去市场。在这种强大的商业压力下,基于i p ( i n t e l l e c t u a lp r o p e r t y ) 复用的设计是当前解决这一矛盾的有效方法。,芯片设计公司 如果想要极大的提高s o c 的生产效率,就必须尽可能的使用现有的i p 模块,甚至 从其他公司那里购买所需要的i p 。然后,再将这些合适的i p 模块通过某种方式拼 装成符合功能需求的系统芯片,这就是i p 复用技术。正如美国d a t a q u e s t 全球半导 第一章绪论 5 体首席分析师j i m t u l l y 所说,i p 模块是设计复用的关键部分,是结束上述剪刀差 唯一有效的方法,如果没有它,半导体生产商和o e m ( o r i g i n a le q u i p m e n t m a n u f a c t u r e ) 商根本无法达到今天已有的水平。 1 3 1 i p 的概念和分类 i p 是具有知识产权的、已经设计好的并经过验证的、可重复使用的电路模块。 根据设计层次的不同,i p 分为软核、硬核和固核。具体来说,软核为可以被综合 的h d l ( h a r d w a r e d e s c r i p t i o nl a n g u a g e ) 描述,硬核为芯片版图,固核为门级h d l 描述。软核使用计算机高级语言( v e r i l o gh d l 和v h d l ) 的形式描述功能及行为, 但是并不涉及用什么电路和电路单元实现这些行为。与硬核相比,软核的设计周 期短、设计投入少,由于不涉及物理实现。用户能把k t l 或门级h d l 表达的软核 修改为自己的设计,综合到选定的厂商工艺上,增大了i p 的灵活性和适应性。它 通常用于接口、编码、译码、算法和信道加密等对速度性能要求范围较宽的复杂 系统。硬核的电路布局布线和工艺是确定的,硬核己完成整个前端和后端设计, 硬核提供设计的最终阶段的产品:掩膜。固核是一种介于软核和硬核之间的i p , 通常以r t l 代码和对应具体工艺网表的混合形式提供。固核是完成了综合的功能 块,有较大的设计深度,以网表的形式提交客户使用。固核允许用户重新定义关 键性能参数,如果客户与固核是用同一个生产线的单元库,i p 的成功率会比较高。 最早的i p 开发是为了提高设计效率、减少设计风险,将多次设计成熟、经工艺验 证并已优化的设计模块建库,提供给相同功能电路设计使用。随着集成电路的发 展和s o c 复杂性的提高,给i p 的开发带来巨大商机,i p 己成为种商品,i p 技 术越来越成为i c 业界广泛关注的焦点。 ii p 规格定义 j r l模块划分 1 0 i 子模快定义和设计 工 i顶层模块的设计 0 fi p 的产品化 图1 2 可复用i p 的设计流程 6 u s b 2 0 通用串行总线i p 核的设汁 1 3 2i p 的设计流程 可复用的设计与其它的工程设计问题没有本质的不同。长久以来,人们通过 抽象与分解,最后形成了解决复杂设计的方法。简而言之,从上层到下层设计复 杂系统,而从下层到上层具体实现。常用的i p 设计流程如图1 2 所示。口】 ( 1 ) 确定规格 i p 的规格至少包含以下内容:概述、功能需求、性能需求、物理需求、详细 的结构模块框图、对外系统接口的详细定义、可配置功能详细描述、需要支持的 制造测试方法、需要支持的验证策略等。确定规格的过程一般又包括行为建模、 功能论证、可行性分析、性能和成本进行折中等活动。 ( 2 ) 划分模块 划分模块是指规划师在给出i p 结构模块框图的同时,对于每个子模块给出一 个详细的功能描述,同时必须明确子模块之间的接口的时序要求。只有规划好, 才能够设计好。确定规格和划分模块是i p 开发是否成功最为关键的一步。 ( 3 ) 子模块定义和设计 设计小组对所有子模块的规格进行讨论和审查,重点检查时序接口和功能接 口的一致性。设计者随后整理出子模块的详细设计方案。接下来设计者按照实现 方案开始编写r t l 代码、编写时间约束文件、综合的批处理文件、子模块验证用 测试平台( t e s tb e n c h ) 和测试套件( t e g ts u i t e ) 等。当这些工作完成并通过代码规范性检 查、测试覆盖率检查、功能覆盖率检查、性能分析、功耗分析检查等验收以后, 这个子模块就可用来与其它模块一起集成了。 ( 4 ) 顶层模块设计 顶层模块的设计就是把子模块集成起来产生顶层模块,并对它做综合处理和 功能验证。综台过程包括编写综合的批处理文件,在不同的参考库上综合,并进 行最终的性能分析和功耗分析等。验证过程包括根据由行为模型发展来的测试向 量对顶层模块进行仿真测试,针对i p 模块的可配置选项进行多种配置条件下的回 归测试,利用仿真工具检验测试向量的覆盖率等。 f 5 】i p 的产品化 婵产品化的过程包括以下几个部分:提供i p 设计和验证用t e s tb e n c h ,用商 用转换器进行打包提交,但转换后需要重新验证,比如做回归测试以确傈转换有 效,并强调在几个主流仿真器上做仿真,在几种主要工艺库上做综合,做门级仿 真,做形式验证以保证网表和r t l 级的一致性,产生或更新用户文档等。如果是 硬i p 的丌发,还需要在顶层模块( 软i p ) 的基础上进行布局布线,版图提取,时序 分析和形式验证,集成到试用该i p 的原型芯片内进行试制投片,并在演示板上得 到验证。 第一章绪论 1 3 3i p 在s o c 中的应用 i p 设计技术是一种集成电路设计技术,是一种以电路模块知识产权使用为核 心的电子系统设计。i p 技术中把不同功能的电路模块u 做i p ,这些i p 都是经过实 际制作并证明是正确的。在e d a 设计工具中把这些i p 组织在个i p 元件库中,供 用户使用。设计电子系统时,用户需要知道i p 模块的功能和技术性能,通过把不同 的i p 模块镶嵌在一个硅片上,形成完整的应用系统。i p 技术极大地简化了s o c 的 设计过程,缩短了设计时间,因此已经成为目前电子系统设计重要基本技术。 在s o c 设计中,功能组装正在逐渐代替功能设计,而成为主流的设计方法。传 统的设计方法中,无论是h d l 还是原理图设计,重点都在于设计新的电路来实现系 统功能。但是渐渐地,i c 包含了各种i p 模块( 微处理器、d s p 、存储器等等) ,对于 这种电路,工程师关注的焦点是:应该选择哪些功能模块、功能模块如何使用、如 何进行软硬件的功能划分、如何进行模块互连、如何进行系统验证等等。比较起 来,以功能组装或以设计复用为基础的方法更能适应这种关注焦点的转移,从而满 足s o c 的设计需要。 单个系统芯片上要实现的功能非常复杂,如果芯片上的所有功能元件都从头 开始设计,所需要的工作量将非常大。所以,e d a ( 电子设计自动化) 工具大多支持i p 库的使用,在i p 库中包含已经过验证的i p 模块。这样,在设计过程中需要某个功 能模块时,直接从i p 库中调出该i p 模块即可,使得设计人员的主要精力集中到系 统功能的实现和功能模块之间的关系上,从而加快芯片的设计过程。i p 库中也可以 随时加入一些专用的i p 模块,以备将来使用。 1 4 本论文的章节安排 本论文首先对u s b 2 0 协议规范进行的较为深入的研究,分析u s b 的系统结 构,对于u s b 设备控制器的产品规范进行详细的分析。在分析u s b 2 0 总线协议 的基础上,设计u s b 设备控制器的总体框架,并按照自上而下模块化的设计思想 对其进行模块划分。然后采用硬件描述语言v e r i l o g h d l 对u s b 设备控制器进行 r t l 级的描述,并且完成了逻辑综合和布局布线,在每个阶段都进行了相应的仿 真。 本论文按照u s b 2 0 设备控制器的设计和实现过程来划分,一共分为五章,具 体安排如下: 第一章绪论,主要介绍了u s b 的技术背景和国内外发展情况;i p 的概念、分 类,设计流程和在s o c 中的应用。 第二章u s b 2 0 总线协议分析,主要介绍了u s b 2 0 的协议基础、数据传输类 8 u s b 20 通用串行总线l p 核的世汁 型、数据的触发机制和重试机制以及错误的检测号恢复。 第三章u s b 2 0 设备控制器的设计,主要介绍了u s b 2 0 设备控制器的模块划 分和各个模块的设计与实现。 第四章u s b 2 0 设备控制器的验证和综合,主要介绍了验证的基本理论和 u s b 2 0 设备控制器t e s t b e n c h 平台的设计,并完成了u s b 2 0 设备控制器的功能仿 真和时序仿真。最后完成了u s b 2 0 设备控制器的综合并给出了综合结果。 第五章结束语,总结全文,指出设计中不足和需要改进的地方。 第二章u s b 2 0 总线协议分析 9 第二章u s b 2 0 总线协议分析 本章从字段( f i e l d ) 和包( p a c k e t ) 的定义开始,从底向上展示了u s b 2 0 协议,接着是对不同事务( t r a n s a c t i o n ) 类型的包事务格式进行描述”“。u s b 2 o 事务处理是主机和设备间数据传输的基本单位,由一系列具有特定格式的信息包 组成,如s e t u p 包,a c k 包等。根据所含信息包的种类,可以将一个事务处理分为 三个阶段:令牌阶段,数据阶段和握手阶段。其各个阶段的功能如下: ( 1 ) 令牌阶段:表示事务处理的开始,并定义传输的类型。 ( 2 ) 数据阶段:负责传输相关的数据,长度最大为1 0 2 4 字节。 ( 3 ) 握手阶段:用于报告事务处理的状态,以表明数据接收是否成功。 并不是所有的事务处理都必须具有这三个阶段,在某些具体情况下,如数据 传输失败,事务处理可能不包含数据包和握手包,但无论如何,所有的事务处理 都必须以令牌包开始。 2 1 字段的格式 信息包是u s b 2 0 总线上数据传输的最小单位,包含了u s b 通信所需的全部 信息,由一系列的字段组成,如p i d ,c r c 等。当数据在u s b 总线上实现实际传 输时,首先是数据的最低有效位( l s b ) ,然后是下最低有效位,最后是最高有 效位( m s b ) 。 2 1 1 同步字段( s y n c ) 在u s b 系统中,主机和u s b 设备不是共享一个时钟,这使得接收方没有办法 准确知道发送方何时发送数据。尽管能检测到总线从空闲状态到k 状态的一个跳 变,但是这个跳变还不足以确保发送方和接收方在传输信息包的过程中能够保持 同步。要保持同步,所有的信息包都必须以一个同步字段开始。 对于低速全速传输,同步字段长度为8 位,数据原型为7 个连续的0 和一 个“1 ”,经n r z i 编码后,以“k j k j k j k k 的形式出现在总线上。u s b 总线从空 闲状态到k 状态的转变表示新信息包的到达,即s o p ;k 状态和j 状态的交替为 总线提供了时钟,以使接收方能和传输的数据保持同步;最后两个k 状态作为该 同步字段的结束,并表示p i d 的开始。这时接收方已经准确知道信息包中每一位 什么时候到达。最后信息包中的e o p 信号使u s b 总线再次返回到空闲状态,为接 收下一个同步字段做好准备。 高速传输同步字段的长度为3 2 位,数据原型为3 1 个连续的“0 ”和一个1 , 经过n r z i 编码后,以1 5 个“k j ”对和两个“k ”的形式出现在总线上。u s b 集 1 0 u s b 2 0 通用串行总线p 榱的吐汁 线器中继某个信息包时,最多可丢失同步字段的前4 位,且不能破坏同步字段中 的其他数据位。即同步字段在经过5 个集线器的中继后,可能只剩下1 2 位了。 2 1 2 包标识字段( p l d ) 在u s b 信息包中,包标识字段紧跟在同步字段之后,并指明该信息包的类型, 格式和所采用的差错控制机制。它由4 位类型字段和4 位校验字段组成,如图2 1 所示。其中,校验字段是类型字段的二进制补码,用于保证p i d 字段译码的可靠 性,以使信息包的其余部分能被正确接收。 图2 1p i d 的格式 主机和u s b 设备都要对接收到的p i d 字段进行正确译码。如果其校验字段错 误或得到未定义的值,则认为该p i d 字段已被破坏了,且应该忽略信息包的其余 部分。如果u s b 设备接收到一个其不支持的p i d 字段,则它不应给予应答。例如 i n 端点会忽略所有的o u t 令牌。 按p i d 字段的功能,其可分为4 种类型:令牌( 0 1 b ) ,数据( 1 1 b ) ,握手( 1 0 b ) 和专用( o o b ) ,并由其字段值的前两位( p i d ) 来指明。表2 1 列出了所有p i d 字段的类型、代码及其说明。 2 1 3 地址字段( a d d r ) 地址字段用于指定u s b 系统中的一个u s b 设备,它包含7 个数据位,最多可 以指定1 2 8 个地址,其中地址0 只能用作缺省地址,不能分配给u s b 设备。至于 u s b 设备是数据的发送方还是数据的接收方,则取决于p 工d 字段的值。 在i n ,o u t , s e t u p ,s p l i t 和p i n g 令牌包中都必须使用该地址字段,以指明 与其通信的u s b 设各。如果指定的设备地址不存在,则该令牌包被忽略。在u s b 设备上电和复位时,其将使用缺省地址0 来与主机进行通信;在设备配鬻过程中, 主机会为其分配一个唯一的设各地址。 2 。1 。4 端点字段( e n d p ) 端点字段用于指定u s b 设备中的一个端点。全速高速设备最多可含有1 6 个 端点,低速设备最多只能含有3 个端点。所有的u s b 设备都必须含有一个0 号端 点,以完成设备与主机闾的配置通信,除了0 号端点外,其余的端点都是具体u s b 设备所特有的。 第二章u s b 20 总线协议分析 在i n 、o u t , s e t u es p l i t 和p i n g 令牌包中都必须使用端点字段,以指明与 其进行数据传输的u s b 设备端点。如果指定的端点不存在,则该令牌包将被忽略。 另外,在端点初始化之前就访问该端点的令牌也将被忽略。 表2 1p i d 类型 p i d 类型p i d 名称p i d 3 :0 描述 o u t0 0 0 i b 用于主机向u s b 设备发送数据 令牌i n1 0 0 l b用于u s b 设备向主机发送数据 t o k e ns o f 0 1 0 1 b表示帧微帧的开始 s e t u p1 i o i b用于主机n u s b 设备发送配置信息 d a t a o0 0 1 i b偶数数据包p i d 数据d a t a l1 0 1 i b奇数数据包p i d d a t ad a t a 20 1 1 l b 高速同步事务专用的数据包p i d m d a t al l u b 高速同步事务乖i s p l i t 事务专用的数据包p i d a c k0 0 i o b 表示接收方成功地接收数据 握手n a ki o i o b表示接收方不能接收数据或发送方不能发送数据 h a n d s h a k es t a l l1 1 1 0 b表示指定端点被拄起或不支持的控制管道请求 n y e t0 1 1 0 1 b 表示接收方将无任何响应 p r e1 i o o b( 令牌) 主机发出的前导包,以使自低速通信 专用e r rl i o o b ( 握手) 用于s p l i t 事务的错误握手 s p e c i a l s p l i t1 0 0 0 b ( 令牌) 用于高速s p l i t 事务的令牌 p i n go i o o b ( 令牌) 用于批量控制端点的高速数据流嚣控制检测 保留0 0 0 0 b保留p i d 2 1 5 帧号字段 帧号字段用于指出当前帧的帧号,它仅在每帧微帧开始的s o f 令牌包中被发 送,长度为i i 位。在全速时,每传输1 帧,主机就将其内容加一,然而在高速时, 每传输八个微帧,主机才将其帧号加一,当帧号达到最大值7 f f h 时归零。 2 1 6 数据字段 数据字段内包含主机和u s b 设备间需要传输的数据,其以字节为单位,最大 长度为1 0 2 4 字节,而实际长度取决于传输的具体情况。图2 2n n t 多字节数据 字段的格式,在每个字节中都是最低有效位( l s b ) 最先被传输。 曲 b m - - 1 图2 2 数据字段 1 2 u s a 20 通用串行总线l p 核的设计 2 1 7e r e 字段 为保证数据的可靠性,u s b 在令牌包和数据包中都使用了循环冗余校验( c r c ) , 它可以百分之百识别出信息包中的一位或两位错误。e r e 校验失败表示被保护的信 息包中至少有一个字段出错,这时接收方将忽略该字段,但在大多数情况下是忽 略整个信息包。 c r c 是在发送方进行位填充之前产生的,这就要求接收方必须在去除填充位之 后再对c r c 字段进行译码。另外,信息包中的p i d 本身就已经包含有检验字段, 所以不需对其进行c r c 保护。 令牌包的c r e 主要用于i n ,o u t ,s e t u p 和p i n g 令牌包的地址字段和端点字段, s o f 令牌包的帧号字段以及s p l i t 令牌包中的特定字段,使用的是5 位c r c ,其生 成多项式为: g ( x ) = x 5 + x 2 + 1 数据包的c r c 主要用于数据包中的数据字段,长度为1 6 位,其生成多项式为: g ( = x 1 6 + x 15 + x 2 + i 2 ,2 信息包的格式 根据信息包所实现的功能,可以分为3 种类型:令牌包,数据包和握手包。 其中,令牌包定义了数据传输的类型,数据包中古有需要传输的数据,握手包指 明了数据接收是否成功。信息包类型不同其所包含的字段也不同,但第一个字段 都是同步字段,且它们在u s b 总线上传输时,都以s o p 信号( 包含在同步字段中) 开始,以e o p 信号结束,如图2 3 所示。为了便于说明下面的讲述忽略了同步 字段、s o p 信号和e o p 信号。 图2 3u s b 信息包的构成 2 2 1 令牌包 在u s b 系统中。只有主机才能发出令牌包。令牌包定义了数据传输的类型, 它是事务处理的第一阶段。u s b 中包含了7 种令牌包:i n ,o u t , s e t u p , s o f , p r e , s p l i t 和p i n g , 其中p r e ,s p l i t 和p i n g 属于专用令牌。在本设计中p r e 和s p l i t 没有用到,所以不予介绍。 第二章u s b 20 总线协泌分析 1 3 2 2 1 1i n ,o ut is e t u p 和p i n g 令牌包 i n ,o u t , s e t u p 和p i n g 令牌包具有相同的格式,如图2 4 所示。这几个令 牌包都以p i d 字段开始,且都包含a d d r 字段和e n d p 字段,并以5 位的c r c 字段结束。另外c r c 字段仅对a d d r 字段和e n d p 字段进行循环冗余校验,而 p 1 d 本身就已包含有检验字段了,所以不需对其进行c r c 保护。 i n 令牌包的p i d 定义了u s b 设备到主机的数据传输,其a d d r 字段和e n d p 字段指明了唯一要发送数据的端点。o u t 和s e t u p 令牌包的p i d 定义了主机到 u s b 设备的数据传输,其a d d r 字段和e n d p 字段指明了唯一要接收数据的端点。 这几个令牌包的长度都是3 个字节,如果它们没有在3 个字节之后以e o p 信号终 止,则接收方会认为该包无效,并将忽略该包。 ( 1 出)( m 小) 开e i ap i d d d re n o pc r c 5 ib 1 乜87 d s 。l 图2 4i n ,o u t , s e t u p 和p i n g 令牌包的格式 2 2 1 2 s o f 令牌包 s o f 令牌包由p i d 字段。帧号字段和5 位c r c 字段组成,其长度为3 个字节。 其c r c 字段仅对1 l 位的帧号字段进行循环冗余检验,而p i d 本身就已包含有检 验字段,所以不需对其进行c r c 保护。 主机以每1 0 0 m s 5 = 0 0 0 0 5 m s ( 全速) 或1 2 5 u s 0 0 6 2 5 u s ( 高速) 的额定时f 刮间 隔发出s o f 令牌包,以表示帧微帧的开始,它不需要接收方做出任何响应。 2 2 2 数据包 数据包由p i d 字段,数据字段和1 6 位c r c 字段组成。其中数据的长度可以 为0 个或多个字节,但对于低速u s b 设备,其最大长度为8 个字节;对于全速设 备,最大长度可以为1 0 2 3 个字节:对于高速设备,其最大长度为1 0 2 4 字节。c r c 字段负责对这些数据字段进行t 6 位的循环冗余检验,而p i d 本身就已包含有检验 字段了,所以不需要对其进行c r c 保护。 根据p i d 的不同,数据包可分为4 种类型:d a t a 0 ,d a t a l ,d a t a 2 和m d a t a 。 其中只有d a t a o 和d a t a l 支持数据触发机制;s p l i t 事务处理需要使用d a t a o , d a t a l 和m d a t a ;而高速同步传输需要使用全部4 种类型的数据包。 1 4 u s b 2 0 通用串行总线l p 核的驶计 2 2 3 握手包 握手包仅包含8 位的p i d 字段,之后就是e o p 信号,它无需使用c r c 检验。 握手包用于报告事务处理的状态,以表明数据接收成功,指定的端点被停止或不 能响应命令的情况。只有支持流量控制功能的事务处理爿需要使用握手包,且它 一般在握手阶段被返回,但有时也可能在数据阶段代替数据被返回。如果握手包 在p i d 之后没有以e o p 信号终止,则接收方会认为该包无效,并将其忽略。 u s b 定义了5 种类型的握手包:a c k ,n a k ,s t a l l ,n y e t 和e r r ,其中e r r 属于专用握手。它们所实现的功能如下: a c k :该握手包表示主机或u s b 设备接收到的数据包没有位填充和c r c 检验 错误,且其p i e ) 字段也被正确译码。它通常发生在接收方和发送方的数据触发位 相互匹配且数据被接收方正确接收时或数据触发位不匹配而发送方和接收方需要 重新同步时。a c k 握手包只适合用于那些在发出数据后会等待握手的事务处理, 它既可以在i n 事务中由主机返回,也可以在o ut ,s e t u p 和p i n g 事务中由u s b 设各返回。 n a k :对于o u t 传输,该握手包表示u s b 设备不能接收从主机发送来的数 据;对于i n 传输,它表示u s b 设备当前没有数据要发送给主机。n a k 握手包仅 能由u s b 设备在i n 事务的数据阶段或在o u t 和p i n g 事务的握手阶段返回,它 指出该设备暂时不能发送或接收数据,但最终能完成这个事务处理且不需要主机 的干涉。主机永远不会发出n a k 。 s t a l l :该握手包表示u s b 设备没有能力发送或接收数据,或u s b 设备不支 持某个控制请求。主机永远不会发出s t a l l ,它仅可能由u s b 设备在i n 事务的 数据阶段或o u t 事务的握手阶段返回。其使用情况有以下两种:一是发生在所访 问的u s b 设备端点已被停止的时候,另种情况是在控制管道且u s b 设备接收到 某个不能支持的控制请求。 n y e t 该握手包仅适合用于高速传输,它通常作为p i n g 协议的一部分由高 速端点返回。在s p l i t 事务处理中,当低速,全速事务不能正确结束或集线器不能 处理孩s p l i t 事务时,集线器也会返回n y e t 。 e r r :该握手包仅适用于高速传输,且它只能作为s p l i t 事务协议的一部分由 高速集线器返回,其表明低速全速总线有一个错误。 第二章u s b 2 0 总线协议分析 1 5 2 3 数据传输中的事务处理 主机和设备之间的不连续的一次完整的数据通讯过程叫做事务处理,事务处 理是u s b 总线上数据传输的基本单位。通常由主机开始,主机发送一个令牌给设 备,功能设备做出响应,接下来传输数据,在数据传送完成以后,接收方返回给 发送方一个确认( 或称作握手h a n d s h a k e ) 包。这样主机和设备之间就完成了一次完 整的数据通讯。 2 3 1 批量传输的事务处理 批量传输适合于传输大量的,且对传输时间和传输速率均无要求的数据。当 u s b 总线带宽紧张时,它会为其它传输类型让出自己所占用的带宽,而其本身将 被延迟,这时批量传输的传输速率很低,传输时间也比较长;当u s b 总线空闲时, 它会以很快的速率传输,其传输时间很短。总之,批量传输可以发送大量数据而 不会堵塞u s b 总线,但其传输时间和传输速率得不到保证。另外,它还采用差错 控制和重试机制来确保数据传输的正确性。 批量传输事务处理一般包含令牌,数据和握手三个阶段,如图2 5 所示。但 是在某些情况下,如端点被停止,传输出错等,其也可能用握手阶段来代替数据 阶段或彻底丢弃数据阶段和握手阶段,而产生只包含两个阶段或一个阶段的事务。 批量传输事务处理是单方向的,如果u s b 设备需要双向批量传输的话,则必须使 用两个批量传输端点,且每个方向对应一个。 图2 5 批量传输事务的格式 当主机准备接收批量传输的数据时,它将发出一个i n 令牌包。如果u s b 设 备在接收到该令牌包后,发现其已经损坏,则不做任何应答;如果u s b 设备接收 1 6 u s b 2 0 通用串行总线i p 核的杖汁 到有效的i n 令牌包,将向主机返回d a t a x 数据包、n a k 或s i a l l 握手包。n a y 表明u s b 设备暂时不能发送数据,这时主机会重试该i n 事务处理。s t a l l 表明 u s b 设备的该i n 端点已经被停止了,需要主机u s b 系统软件的干预才能脱离停 止状态。如果主机接收到有效的d a t a x 数据包,则会向u s b 设备返回a c k 握手 包。如果主机接收到的数据

温馨提示

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

评论

0/150

提交评论