(微电子学与固体电子学专业论文)usb设备ip核设计soc嵌入.pdf_第1页
(微电子学与固体电子学专业论文)usb设备ip核设计soc嵌入.pdf_第2页
(微电子学与固体电子学专业论文)usb设备ip核设计soc嵌入.pdf_第3页
(微电子学与固体电子学专业论文)usb设备ip核设计soc嵌入.pdf_第4页
(微电子学与固体电子学专业论文)usb设备ip核设计soc嵌入.pdf_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

摘要 本论文主要设计了 u s b设备引擎和基于该引擎的嵌入解决方案。论文根据 u s b 2 . 0 规范的系统架构和通信协议提出一个适用于u s b 设备端的u s b 通信流模型。 根据该模型设计了u s b 引擎电路,主要包括u t m 和 s i e 两个方面。论文还提出了两 种嵌入解决方案,一种方案是u s b 引擎结合专用控制器实现u s b 设备,并设计了相 应的专用控制器:另一种方案则是u s b 引擎嵌入基于通用控制器的s o c 平台,编写 了专用的嵌入软件( 包括u s b 引擎驱动程序和设备功能软件) 。 最后, 设计开发了u s b 引擎实现u s b 设备的软、 硬件验证环境, 通过了验证并成功获得了通信的总线样本。 关键词:u s b引擎、u s b u t m , u s b s 工 e 、专用控制器、u s b引擎驱动程序、设备功 能软件、 s o c abs tract a u n i v e r s a l s e r i a l b u s ( u s b ) e n g i n e a n d it s p e r ip h e r a l e q u ip m e n t s o l u t i o n s in u s b 2 .0 s y s t e m a r e p r e s e n t e d i n t h i s p 叩e r , i n c l u d i n g a u s b d e v i c e i n t e g r a t e d w i t h c l i e n t c o n t r o l l o g i c a n d a s o c p l a t f o rm e m b e d d e d w it h u s b e n g i n e s o ft w a r e . u s b s y s t e m a r c h i t e c t u r e a n d t r a n s a c t i o n p r o t o c o l a r e b r i e fl y in t r o d u c e d a n d a t r a n s a c t i o n d a t a fl o w m o d e l o f u s b d e v ic e i s c o n s t r u c t e d a c c o r d i n g t o t h e u n i v e r s a l s e r i a l b u s s p e c i f i c a t io n ( r e v i s i o n 2 .0 , a p r i l 2 7 , 2 0 0 0 ) . t h e t r a n s a c t i o n d a t a fl o w m o d e l c o n t a i n s a s e r i a l o f p i p e s , i n c l u d i n g b o t h s t r e a m p ip e s a n d m e s s a g e p i p e s , w h i c h a r e lo g ic a l a b s t r a c t i o n r e p r e s e n t i n g t h e a s s o c i a t i o n b e t w e e n a n e n d p o i n t o n a d e v ic e a n d s o ft wa r e o n t h e h o s t . b a s e d o n t h e m o d e l , a u s b e n g i n e , c o n t a i n in g a s e r ia l i n t e r f a c e e n g i n e ( s i e ) a n d a u s b t r a n s c e iv e r m a c r o c e l l ( u t m ) , i s a c c o m p l i s h e d . a c c o r d i n g t o t h e t w o p e r ip h e r a l e q u ip m e n t s o l u t io n s , c l ie n t c o n t r o l l o g i c c i r c u it s a n d e m b e d d e d s o ft w a r e o n s o c p l a t f o r m a r e d e s ig n e d r e s p e c t i v e ly . t h e e m b e d d e d s o ft w a r e is c o m p o s e d o f a u s b e n g i n e d r i v e r a n d u s b d e v i c e f u n c t i o n s o ft w a r e . t h e t w o p e r i p h e r a l e q u i p m e n t s o l u t i o n s a r e i m p l e m e n t e d o n a l t e r a s t r a t i x - e p i s 8 0 b 9 5 6 c 6 f p g a b o a r d . wi t h t h e u s b a n a l y z e r , u s b t r a n s a c t i o n s b e t w e e n t h e h o s t a n d d e v i c e a r e m o n i t o re d a n d lo g g e d s u c c e s s f u l ly . k e y w o r d : u s b e n g i n e , u s b u t m, u s b s i e , c l ie n t c o n t r o l l o g i c , u s b e n g i n e d r iv e r , u s b f u n c t i o n s o ft wa r e , s o c 第一章前言 i . 1 u s b 历史发展以现状 随 着计算机的发展和普及,很多计算机外围设备厂商在接口 这个问题上存在很 多困 扰,这些接口 大多数是由工 b m 公司在2 0 世纪8 0 年代早期设计的,由 于历史的 局限,这些接口的设计存在很多缺陷,比如说占用了过多的中断资源、扩展不灵活 等,而通用串行总线( u s b ) 则较好地解决了以上的问 题。 u s b 是通用串行总线技术规范, 也是一种接口 标准, 是最早由i n t e l 公司提出构 想、多家公司共同开发的一种外设连接新技术。1 9 9 5 年经过标准化,发布了 称为通 用总 线的串 行技术规范( u n i v e r s a l s e r i a l b u s ) , 简称u s b . u s b 的工业标准是对计算机现 有的 体系结构的 扩充。 设计u s b 的目 标就是使不同 厂家所生产的设备可以在一个开放的体系下获得广泛的应用。 该规范改进了便携商 务 或家用电 脑的现有体系结构,为计算机系统生产商和外设开发商提供了 足够的自 由空间, 他们可以更自由地开发多功能的设备产品,进而占领更广阔的市场。同时 他们并不必使用陈旧的接口,也不必担心设备兼容性的问题。 u s b 的规范可以 针对不同的 性能价格比 要求提供不同的选择, 以 满足不同的系统 和部件在功能上的需求。 u s b 2 . 0 的主要特点有: 易于扩充多个外围设备; 价格低廉, 且支持高达4 8 0 m b p s 的数据传输;对 声音音频和压 缩视频等实时数据的充分支持: 协议灵活, 综合了同步和异步两种数据传输方式:兼容了 不同设备的技术; 综合了 不同p c 机的结构和体系特点; 提供一个标准接口, 广泛接纳各种设备; 赋予个人计 算机 新的 功能, 使之可以 接纳许多 新设备。 这些u s b 的 特点 和优点使u s b 在问 世不 久就迅速成为p c 机的一个标准接口。 最近推出的p c 机几乎 1 0 0 % 支持u s b 。目前为止,发布于众的u s b 有3 个版本: 1 . 0 , 1 . 1 , 2 . 0, 其中以2 . 0 版本是最新推出的。 u s b 1 . 0 和1 . 1 在个别细节问题上 有区别外, 在总体性能上相当, u s b i . 0 1 1 . 1 与u s b 2 . 0 性能 对比见表1 一1 e u s b 版本 1 . 0 / 1 . 1 2 . 0 低 速( 1 . 5 m b p s ) 支持 支持- 全速( 1 2 m b p s )高速( 4 8 0 m b p s ) 不支持 表 1 一1 u s b l 0 / 1 . 1 与 u s b 2 . 0 ! 支 持 性能对比表 使用 u s b接口的设备在以惊人的速度发展。d a l a q u e s l公司的统计数据显示, 1 9 9 8 年的一年内, 全球有 1 0 0 0 万台u s b 设备售出, 到2 0 0 0 年已超过 1 亿台。目 前 几乎所有流行的外设都支持 u s b ,如扫描仪、数码相机、数码摄像机、音频系统、 输入输出设备等。而且设计工程师都把u s b 作为外设接口的首选。 目 前国外多数 u s b 外围设备芯片基本有两种:一种是内置了u s b 引擎和通用微 控制器的设备芯片,另一种是内置了 u s b引擎和专用控制器的设备芯片( 如 p d i u s b d 1 1 , p h i l i p s ) 。 这两种芯片技术都比 较成熟, 种类也比较齐全。 在国内, u s b 芯片种类较少,且都是台湾设计生产的,大陆还没有u s b自 主产品问世。 因此研究u s b 协议、开发一个具有自 主知识产权的u s b 接口电路,将带来极大 的经济效益和社会效益。 1 . 2设计目的及论文内容安排 u s b 接口电路的设计, 不但对于计算机技术的发展有很大意义, 而且可以广泛地 应用于 s o c中。随着超大规模集成电路工艺技术的发展,系统芯片( s o c , s y s t e m - o n - c h i p ) 和i p 技术 越来越成为i c 业界广泛关注的 焦点。 s o c 需要 将系统的 全部功能模块集成到单一半导体芯片上, 包括c p u , i / 0 接口、 存储器以及一些重要 的 模 拟集 成电 路。 功能 模块 化的s o c 系统 芯 片 具 有易 于 增 加新功能 和 缩短 上市时 间 的显著特点,是 i c设计业当前、乃至可预见未来的主流设计方式。而一套完善的 u s b 设备i p 核将给一个s o c 提供一个性能优良 连接简便的接口, 是多数主流s o c 平 台必备的接口 之一。因此本论文设计目 的就是一个基于s o c 嵌入的u s b 设备i p 核 - u s b 引擎, 包括硬件和必要的 嵌入软件。 u s b 引擎的设计工作中存在很多棘手的问题: 首先, u s b 协议比较复杂, 因此u s b 协议的 理解和实现存在很多困难;其次, 软硬件协同设计和验证过程是u s b 引擎设 计必须要解决的难题;此外,数据的时钟恢复以及电路中不同时钟域之间数据传输 等问 题也必须解决。本论文所设计的u s b 引擎都成功的克服了以上难题,无疑,该 i p 核的设计以及对u s b 协议的研究, 将为国内u s b 设备端技术的发展增砖添瓦, 为 国内后继u s b 技术的开发和应用抛砖引玉。 u s b 引擎可以嵌入s o c 平台和u s b 设备,是一个通用u s b 设备端功能 i p 核,是 u s b 设备实现的关键。 本论文所设计的u s b 引擎集成了符合u s b 2 . 0 规范的串行接口 引擎( s e r i a l i n t e r f a c e e n g i n e , s i e ) 和符合 u s b 1 . 1规范的全速/ 低速 u t m ( u s b t r a n s c e i v e r s m a c r o c e l l ) , u s b引擎通过u t m i 接口外接u s b 2 . 0规范的u t m 进行 u s b 2 . 0 高速工作, 可以 直接应用于u s b 全速或低速的数据传输。 此外, 针对不同的 嵌入方案, 还设计了专用的控制器和一套基于a r m r i s c 的嵌入软件, 二者都可以 控 制u s b 引擎与主机进行通信,分别实现标准的u s b 设备。 本论文所设计的u s b 引擎实现的u s b 设备与u s b 设备产品芯片相比,具有以 下 特点: . 可以灵活地嵌入s o c 平台或者u s b 设备,实现多种u s b 设备 . 可以灵活地选择u s b 2 . 0 高速、全速或者低速三种工作模式 . 兼容批量、中断、同步、控制等4 种u s b 传输模式 . 3 个时钟域的设计,既保证了良 好的嵌入性能,又实现了低功耗设计 令 两种嵌入方案,可以实现u s b 引擎灵活的嵌入 . 高效的专用控制器、完善的基于a r m r 工 s 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 引擎的验证环境以及验证结果。最后,在第六 章对论文进行了总结。 第二章u s b 系统传输原理 本章首先从 u s b 物理的拓扑结构和通信层次两个角度在总体上介绍了u s b 体系 结构,然后剖析基于这个结构的u s b 传输底层协议内 幕,最后根据这个传输调度抽 象出一个u s b 设备端的通信数据流模型。 2 . 1 u s b 体系结构 一个 u s b 系统主要被定义为三个部分:u s b 的互连、u s b 的设备、u s b的主机。 本论文将首先从u s b 物理的拓扑结构和通信层次两个角度介绍这三个部分。 2 . 1 . 1 u s b 物理连接和拓扑结构 u s b 连接了u s b 设备和u s b 主机, u s b 的物理连接是有层次性的星型结构。 每个 网络集线器是在星型的中心,每条线段是点到点的连接,这些连接方向是从主机到 集线器或其功能部件,或从集线器到集线器或其功能部件,其拓扑结构如图 2 -1 所示。 翼 1)11ost_orownjlei f-2 hod ) f u n c f u n c 入 ) 2 -4 f u n c ) / f u n c ) / 、层5 流扮 疏 荔一覆 认 h 二 二 几 *.*,一 _ 图2 -1 u s b 物理拓扑结构 在任何u s b 系统中, 只有一个主机。 u s b 和主机系统的接口 称作主机控制器, 主 机控制器可由硬件、固件和软件综合实现。主机系统整合了根集线器,它可以经过 扩展以 提供更多的连接点。 u s b 的设备主要有两类,一类是u s b 网络集线器( 或称为 u s b h u b ) ,该类设备向 u s b 系统提供了更多的连接点;另一类是 u s b功能器件,此类设备给系统提供了 具 体功能,如i s d n的连接、数字的游戏杆或扬声器等。 u s b 的互连是指u s b 设备与主机之间进行连接和通信的操作, 主要包括总线的拓 扑结构、u s b设备与主机之间的各种连接方式、内部层次关系、数据流模式、u s b 的调度等。 在u s b 体系中,每个u s b 设备都被主机分配了一个地址,一个设备可以包含若 干个端点, 每个端点在设备中有唯一标示的地址, 如图2 -2 所示。 端点是主机与设 备间通信流的一个结束点,每个端点都是一个单向的连接点,或者支持数据流进设 备,或者支持其流出设备。 图2 -2 u s b 拓扑结构中地址的分配 在物理结构上,设备通过h u b连到主机上。但在逻辑上,主机是直接与各个逻 辑设备通信的, 就好像它们是直接被连到主机上一样。 这个逻辑关系如图2 -3 所示。 h u b 也是逻辑设备, 虽然u s b 系统中的工作都是从逻辑角度来看待的, 但主机必须对 物理结构有个了 解。例如,如果移除了 一个h u b , 那么通过该h u b 与主机相连的设 备也应一起移出系统,这是由其物理结构决定的。 ho s t ro o t hu b 逻辑设备 1逻辑设备 2 nj 肚上.二 u s b 逻辑拓扑结构 端点1 端点0 端点n 端 端 点 i 点 0 1 图 2 一3 2 . 1 . 2 u s b 系统中通信层次的划分 u s b 提供了一台主机和若千u s b 外设之间的通信, 从终端用户的角度看, 不同层 次的实现者对u s b 的有不同要求, 因此对 u s b 系统进行如图2 -4 所示的分层。 这样 的分层结构使各个层次的实现者只需要考虑其相关层次的特性功能,而不必掌握从 硬件结构到软件系统的所有细节。 主机系统u s b 设备 客 户 软 件 日 功 能 单 元 ! _ _ _ 一_ _ 二t - 一1 - 一 一江 - - 一1- - 一 u s b 系 统 软 件 目u s b 逻 辑 设 备 - - - - - - 丁 t - 一 1 一 一 一- - 一1- 一 u s b 主 控 制 器 侧侧 u s b 总 线 接 口 ”i 功能层 u s b 设备层 和呻物 理 通信 数 据 流 李逻辑 通信 数 据流 图2 -4 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 设备无关, 也独立于客户软件。 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 设备层对 u s b 系统软件是可见的,系统软件基于它所见的 设备层来完成对设备的一般的u s b 操作。应用层可以通过与之相配合的客户软件向 主机提供一些额外的功能。u s b设备层和应用层的通信是逻辑上的,对应于这些逻 辑通信的实际物理通信由u s b 总线接口 层来完成。 2 . 2 u s b 数据传输 在u s b 系统的基本架构的基础上, 可以更详细地研究u s b 数据通信的一些细节。 在细节介绍中, 着重介绍u s b 主控与u s b 设备通信的内幕以 及u s b 设备的工作原理。 2 . 2 . 1 u s b 数据通信示意图 通过对 u s b 通信层次的细化,可以 更好的 解释 u s b的主机软件和应用设备间的 通信服务,如图2 -5 所示。 u s b 通信时, 客户软件首先向操作系统提出与u s b 系统中某个设备上的某个端点 建立某个方向的数据传送请求, 这个请求就是所谓的i / 0 请求包( i r p ) , 然后等待操 作系统返回的数据或者通知信号。客户软件决定当前操作的传输类型和方向,如果 传输中有功能单元传送过来的数据, 客户软件收到操作系统发出的i r p 完成通知后, 就可以在数据缓冲区中取到设备传送过来的有效数据:如果传输中客户软件需要发 送数据,则向操作系统发送 i r p 后等待操作系统发过来的工 即 完成通知。 u s b 系统软件包括u s b 设备驱动程序、 u s b 驱动程序( u s b d ) 和u s b 主控制器驱动 程序( h c d ) e u s b 设备驱动程序在设备连接到主机的设置期间和正常传送中介入总线 访问。 当设备被连接到主机上并被主机设置时, u s b d 将从设置软件处获得设置请求, 获取u s b 设备的信息, 如端点数目、 传送类型、 数据长度等, 然后 u s b d 就在该设备 与主机之间建立相应类型的数据通道。 对 u s b d的设置都由操作系统完成,获取的 u s b设备的信息将被加入操作系统的数据库。一旦设备被设置,客户软件就可以通 过i r p 请求与应用端点进行数据的传送。 u s b 驱动程序提供了u s b 设备驱动程序和u s b 主控制器之间的接口, 通过这个接 口u s b 主控制器驱动程序可以和u s b 设备驱动程序进行数据的交换。 主机系统互连 u s b 设备 幸 . 峥数 据传输流向 如 . 吟u s b 协议 规定 格式的 数 据 传输 图2 一 5 u s b 主控与设备通信示意 u s b 主控制器驱动程序负责跟踪工 r p ,如果有 i r p 请求通道,h c d 将它们加入事 务表中,事务表描述了当前需要被做的事务,主控制器可以访问事务表,并根据此 表在总线上引 起u s b 信息包的传递。当i r p 结束,h c d 将把它的完成状态通报给向 它发出i r p 的 客户软件,如果i r p 中涉及u s b 设备向主机的 传送,接收来的 数据将 被存储于客户软件指定的数据缓存中。 在系统中,设备上的一个端点和主机上软件之间的联系可以抽象出所谓的管线 ( p i p e ) ,它体现了主机上缓存和端点间 传送数据的能力,u s b不解释在管线中 传送 的数据的内容。管线内的数据格式有两种,分别为流( s t r e a m ) 和消息( m e s s a g e ) , 流( s t r e a m ) 是不具有u s b定义的格式的数据流, 在流通道中传送的数据遵循先 进先出原则,数据从流通道一端流进的顺序与它们从另一端流出的顺序是相同的, 1 2 而且通信流总是单方向的。一个流通道中的数据只能来自于一个客户,u s b系统软 件不提供使用同一流通道的多个客户的同步控制。 而消息( m e s s a g e ) 则是具有某种u s b 定义格式的数据流, 尽管实际应用中大多数 的通信流是单方向的,但是消息通道允许双方向的信息流。消息通道要求数据组织 成u s b 定义的格式, 但u s b 并不关心其内容。由两个端点 , 0 ” 组成的通道就是缺省 控制通道,缺省控制通道也是一个消息通道,设备加电并复位后 u s b 通过缺省控制 通道设置u s b 设备,其它通道只在u s b 设备被设置后才存在。一个设备的每个消息 通道在一个时间段内,只能为一个消息请求服务,多个客户软件可以通过缺省控制 通道发出它们的请求,但这些请求到达设备的次序也是遵循先进先出原则的。 2 . 2 . 2 u s b 传愉事务的安排和帧的组织 u s b 传输管理涉及很多不同功能的部分, 分别为客户软件、 u s b 驱动程序( u s b d ) , 主控驱动程序( h c d ) 和主控制器, 所有功能部分共同 运作使数据在总线上传送, 这个 图2 一6 复杂的关系如图2 -6 所示 ( c a l l s b a c k s ) 的i r p 请求, 从客户软件到u s b 总线的信息转换形式 。 客户软件通过对 u s b d 界面发出调用( c a l l s ) 和响应调用 接收从应用端点传来的数据或产生到应用端点去的数据。 d a t a 0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 0 口匕厂七厂1门 一 匕 n r z i 图2 -1 4 非归零反相编码( n r z i ) 这种编码方式减少了信号跳变的次数, 但是如果出现全“ 1 ”的序列, 那么信号 不跳变的时间过长,可能引起接收端的时钟恢复的错误,所以 在u s b 上发送一个信 息包的时候,要对发送在总线上的数据进行位填充操作。所谓位填充操作是指如果 原始数据存在六个连续的 1 ,则在其后插入一个 0 ,从而使n r z i 码发生变化, 这样降低了对接收和发送两地时钟匹配度的要求。同时接收端需要进行位填充的反 过程位剥离, 即检测出n r z i 编码数据的填充位, 并删除这个填充位, 恢复出原 始数据的过程。 原始数据 卜一一一 同 步 域一一叫令一 - 包 数 据 一 今 填充位 位填充后 的数据 i- 一同 步 域 包 数 据一 一 叫 六个 “ i , 器黔后idle一 一 一 一 一 一 i一 一 l f- 卜 - 一同 步 域一 一,妇- 一 包 数 据 一 叫 图2 一1 5 u s b 数据发送的位填充操作 2 . 2 . 6总线状态识别 u s b 2 . 0 协议允许u s b 设备或者主控有三种工作模式, 分别为高速、 全速和低速。 高速模式可以在u s b 总线上收发高达4 8 0 m b p s 的串行数据,全速工作模式可以达到 1 2 m b p s 的 速度, 而低速模式只能支持1 . 5 m b p s 的串 行传输。 不同种类的u s b 设备连 接到总线上的时候,主机要对他们予以识别并设置到正确的工作模式。 u s b 通常使用一种差分输出驱动器来控制数据信号在u s b 电缆上的发送, u s b 电 缆包含d +, d 一 及v b u s ( 电 源) 和g n d , 共4 根连线,电 缆上有屏蔽网。 对于接收和 发送端都有相关的电器以及机械性能的要求,u s b低速和全速设备接入主机时与主 机连接的是不同的,见图2 -1 6 所示。而高速设备的接入方法与全速设备相同,但 是增加了高速设备的识别协议, 即首先在全速模式下的总线 r e s e t 阶段发送特杆码。 如果设备正确响应了这个特征码,则总线从全速工作模式切换到高速工作模式,从 而识别出u s b 设备是高速设备( u s b i 0 高速工作模式) 。 图2 -1 6 u s b 低速、全速和高速设备的总线接入 u s b 主机和设备只能通过d +和d 一的若干种状态组合表示不同的总线状态,每 种状态有详细的d c 电平规定和说明,便于对比和说明, 在表2 -2 列举的状态中略 去电平规定而只定性的说明各状态出现的意义和用途。 总线状态 工作模式 低 速全 速高 速 差分 “ 1 ;d +为 1 , d 一为0 差分 “ 0 d +为0 , d 一为 1 数据j 态低速差分 . 0全速差分 “ 1 ” 高速差分 . 1 , 数据 k 态低速差分 “ 1 全速差分 ,. 0 ,a高速差分 “ o s e o d - 0 , d 一 均为0 s e 1 d - 1- , d 一 均为1 j 啸叫态 总线复位时的一种 j 啸叫状态,用于高速 设备的速度识别 k 啸叫态 总线复位时的一种 k 啸叫状态,用于高速 2 0 设备的速度识别 空闲态i 态的弱驱动状态s e o 的弱驱动状态 包 开 始 ( s o p ) 总线从空闲态变为k 状态数据线从空闲态变为 1 或者 k 状态 包 结 束 ( e o p ) 2 位s e o 后紧接一个j 状态,用于标志信息包 的结束 2 位s e o 后紧接一个7 或者k 状态 断开连接 s e o 时间维持2 . 5 微秒,设备断开与总线的连接,与之相连的下行端 口 将由其下拉电阻骆动,因此出现s e o 维持较长时间 连接 空闲态持续时间大于 等于2 毫秒 同全速模式 复位s e o 持续时间大于等于1 0 毫秒,用于复位连接在总线上的设备 唤醒数据k 状态,用于唤醒已经进入悬挂态的设备 表 2 -2 几种典型总线状态的说明 至此,本文已经完整的介绍了u s b协议的传输原理和其中涉及的重要概念,比 较全面的分析了从客户软件产生i r p 到i r p 分解为若干传输事务的过程,以及传输 事务中的信息包发送在总线上的编码和总线状态。 2 . 3 u s b 通信数据流模型 以 上章节按照从宏观到微观的层次很清晰的介绍了u s b的传输内幕, 传输原理 的介绍,目 的是掌握u s b 传输的数据流方向 和格式,以 便于后文设计硬件时有清晰 的主体思想和宏观的考虑。 u s b 的主机软件和应用设备间的通信流程在以前章节曾经介绍过( 参考图2 -5 ) . 在这个通信流程里,u s b 主机首先与u s b 设备的端点0 建立一个控制管线, 通过这 个控制管线获得u s b 设备的详细信息后,主机再通过这个控制管线的给u s b 分配设 备地址,而且建立与主机到该设备中每个端点的流管线,然后主机通过这些流管线 与u s b 功能设备进行正常的通信。 所以 在设备端看来, 似乎所有的通信都是通过每 个管 线与主机进行数 据交流的 如图2 -1 7 所示。 因 此u s b 客户软件与u s b 设备的 通 信也通过这些管线直接面向设备的端点, 而且在软件与硬件的接口 处增加了数据缓 存区以保证流畅的数据通信。 由于u s b的通信流都是被安排管线中的, 所以在u s b 设备接口芯片中应该具有 管线处理能力,或者有能力确定与主机进行通信的管线。基于以上分析,可以 构造 出设备端s i e 通信模型, 如图2 -1 b 所示。 在这个模型中, 由端点控制/ 状态寄存器 or ) 和端点f 工 f o 组成的管线记录了 端点的状态和通信的有效数据。端点控制逻辑 用于端点选择及端点访问控制。通过u s b 设备功能接口,设备功能软件可以方便地 以管线的形式对端点进行状态控制以实现u s b 通信。 图2 一1 7 u s b 通信流示意图 这个通信模型可以看作是u s b s 工 e 硬件原型,为了完成u s b 设备完整的功能, 还要增加以 下几个部分。首先是s i e 的控制器,这个控制器通过u s b 设备功能接口 控制各个s i e 中端点的控制状态寄存器( c s r ) , u s b 协议层则根据c s r 内容对总线操 作进行响应。为了把并行数据转换为串行数据并符合总线的电气规范,所以需要增 加一 个u s b 的 传输单元( u t m , u s b t r a n s c e i v e r m a c r o c e l l ) 实现这个功能。 图2 一1 8 u s b 设备s i e 通信模型 因为不直接处理u s b 的底层物理协议,因此s i e 可以工作于l s , f s 和h s 三种不同 的模式。 3 . 2 u s b i . 1 规范的u t m u s b 1 . i 规范的u t m 主要包括两个功能模块,接收r x 和发送t x ,这两个功能可 以完成u s b 底层的物理编码和数据传输。 在u t m 中 还需要引入总线状态检测小功能, 把正确的总线状态反映给协议层。 3 . 2 . 1发送功能t x 发送t x 可以把8 位并行数据转换为一位的串行数据, 并进行位填充( b i t s t u f f ) 处理, 然后经过n r z i 编码后发送在u s b 总线上, 所有这些操作都在发送状态机的 控 制下进行,如图3 - 2 所示。 - 一 一 - 一t , 一一 一一一一 图3 -2 u s b u t m 的发送t x 逻辑 在发送初始状态, 发送状态机初始化各个电路中相关寄存器的初始值,发送寄 存器的初始值为总线s y n c 域的特征码 “ 0 x 8 0 .输入的原始数据需要进行位填充操 作, 具体流程见图3 -3 所示。 协议规定, 如果信息包的最后一位是第六个连续的 ,i l l 也要在其后填充 “ 0 ” 位。此外发送电 路具有自 动追加e o p ( 包结束标志,由1 . 5 - 2 位s e o 和1 位j 状态组成) 的功能。 在发 送过程中, u t m的发送 t x逻辑并不 检测数据是否合法有效, 也就是说t x 不关心数据的真正内容和意义,除了并/ 串转换、位填充和n r z i 编码的功能以外, 发送逻辑t x 还具有在信息包之前追加s y n c 域、 在信息包结尾追加e o p 域以 及错误 检测功能。 如果发送过程中存在错误( 比如与主机发送冲突等) , t x 则停止发送, 产 生错误信息,并从错误状态自 动重置,恢复到上电 初始状态。 上电 图3 -3 u s b 中位填充流程 3 . 2 . 2接收功能r x 接收r x 则是发送t x 的 逆过程,即n r z i 解码后进行位剥离( b i t u n s t u f f / s l i p ) 处理,然后进行串并转换为8 位并行数据输出,在保证数据正确解码输出过程中, 需要进行数据的时钟恢复,所以接收r x 中还包含时钟恢复电路。在接收r x 功能模 块中 所有的 功能电路都要在接收状态机的控制下进行, 如图3 -4 所示. 接收过程中 可能出现的错误要比发送过程更加复杂多样, 良 好的接收状态机可以控制r x 顺利地 摆脱错误状态,恢复正常通信。 位剥离 逻辑 移位 选择器 接收 保持 寄存器 公 一, - 一- 一 工 . - 一 - - . . t _ f u s b 总 线 时钟 恢复 接收 状态机 图3 一4 u s b u t m 的接收r x 逻辑 在时钟恢复之前,接收到的总线串行数据需要经过亚稳态的消除。亚稳态的出 现原因是在一个时钟域内对另外一个时钟域的信号进行采样时,如果采样点恰好位 于输入信号的跳变边沿, 则可能造成接收数据是一种不稳定的状态, 在这个状态里, 信号不是完全意义上的逻辑 . o ”或者逻辑 t( 1 11 ,图3 -5 中的波形则清晰的说明了 这个过程。 两级触发器的级连可以消除亚稳态, 第一级的输出端并不参与内部的逻辑运算, 而是再通过一级触发器, 如图3 -5 所示。 由于亚稳态的出现, 有可能造成采样数据 和原始输入数据在脉冲宽度上不一致, 所以为了保证接收到的是正确数据, 接收r x 逻辑中需要一个稳健有效的时钟恢复电路。 门j d i n 几 田 b c l k 亚稳态 导 , a - 扮 产 亚 稳 态 图3 -5 亚稳态的出现以 及消除 根据u s b 规范说明, 在u s b 1 . i 的接收r x 逻辑中系统采用4 8 m h : 的本地时钟对 总线的1 2 m b p s 数据进行采样, 即用4 倍频率进行采样。 采样的数据在消除亚稳态之 后, 通过一个四 状态的 状态机恢复出 数据时 钟来, 有些相关资料称这个状态机为 d p l l 数字锁相环) , 其机理如图3 - 6 所示。 u s b i . 1 规范要求发送端、接收端两地时钟差错不超过1 q . 2 5 %的误差, 信号编 码是n r z i 编码,信号最长不跳变的时间是6 个 1 2 m h z 时钟周期( t 1 ,也就是2 4 个 4 8 m h : 时钟周期 t 2 。在这个状态机进行时钟恢复的机制下,如果在2 4 个t 2 时间 内两地时钟偏差11 个t 2 周期, 状态机产生的恢复时钟的最后一个周期( t 3 ) 能够增 加或者减少一个 t 2周期的时间以达到和发送信号的时钟数相同,因此在 2 4个t 2 时间内最多容许误差是一个t 2 。 所以 所设计的时钟恢复电路可接受的两地时钟误差 范围是士1 / 2 4 ,远远超过土0 . 2 5 %的要求。 在这个状态机里,如果收发两地时钟匹配,任何状态都能转到 “ 0 1 2 3 0 1 2 3 ” 这 个序列。 只要检测到信号跳变( 用了两个寄存器, 延迟1 个t 2 给出c h a n g e 信号) , 3 个t 2 时钟之内 状态机转到s o , 恢复出的信号时钟c l k s 在s o 给出一个高电平脉冲, 这个脉冲持续时间是一个 t 2 。所以每次信号变化都有一个高电平脉冲与之对应( 这 个脉冲信号本地时钟同步) , 也就是恢复出来的时钟。 输入信号没有跳变时, 或两地 时钟完全匹配时, 用本地时钟四分频得到的时钟进行填充( 高电平脉冲宽度仍然是一 个t 2 ) ,实现了时钟恢复。 d p _ b x 图3 - 6 时 钟恢复 状态机 3 . 3 u s b 2 . 0 规范的s i e s i e ( s e r i a l i n t e r f a c e e n g i n e ) 是u s b 引擎的关键功能 模块, 在系统中的 地 位 见图3 -1 所示。 根据其内部的控制/ 状态寄存器堆内 控制字的内 容, s i e 可以与u s b 主机建立控制管线,能够在这个控制管线中完成设备的配置过程,同样可以与主机 建立其他数据管线, 在这些数据管线中与主机进行数据的交换。 而且通过u t m i ( u t m 标准接口) 可以连接u s b l . 1 或2 . 0 规范的u t m ,因此支持高速( 4 8 0 m b / s ) 和全速( 1 2 m b / s ) 两种工作模式。 s i e 默认工作模式为高速, 在自 动切换到全速的工作模式后, 则高速工作模式的所有特性自 动关闭。 根据第二章中总结设计的u s b 设备s i e 通信模型( 见图2 -1 8 ) , 设计的s i e 主要 包含u t m i , p l ( 由p d , p a , p e 组成) 、 m a , u c r f , b u f f e r , w b 等功能模块, 如图3 - 7 所 示 。 . s i e 可以 完 成u s b 总 线 速 度 识 别 、 解 析 信 息 包、 组 构 信 息 包 、 底 层 协 议 处 理、缓存管理、中断请求等功能。连接到控制器总线上以后,s i e可以与设备功能 驱动软件建立设备端的管线。 尸 j -一 一 一 一 一 一 一 一 一 _ _ _ _ _ _ _ _ 1 i )r - u s b s i e i ! 图3 一7 u s b设备s i e 结构示意图 模块缩写名称索引如下: u s b t r a n s c e i v e r m a c r o c e l l , u s b 传输宏单元( 物理层) u s b t r a n s c e i v e r m a c r o c e l l i n t e r f a c e , u s b 传输宏单元标准接c 7 p d p a p e p l m a u c r f b u f f e r s i e w b p a c k e t d i s a s s e m b l e r ,信息包解析器 p a c k e t a s s e m b l e r ,信息包组构器 p r o t o c o l e n g i n e , 协议引 擎 p r o t o c o l l a y e r , u s b 协议层 m e m o r y a r b i t e r ,内 存访问 仲裁器 u s b c o r e r e g i s t e r f i l e , u s b i p 核寄存器堆 u s b e n d p o i n t s b u f f e r , u s b 端点缓存 s e r i a l i n t e r f a c e e n g i n e ,串 行接口 引擎 w i s h b o n e i n t e r f a c e , 帕接口( 标准i f 核互连接口) s i e 的设计过程中的协议规范主要有三个,各个规范版本如下所列: u s b 2 . 0 s p e c : 严格遵循u n i v e r s a l s e r i a l b u s s p e c i f i c a t i o n ( r e v i s i o n 2 . 0 , a p r i l 2 7 , 2 0 0 0 ) 。 u t m i :严格遵循u s b 2 . 0 t r a n s c e i v e r m a c r o c e l l i n t e r f a c e ( u t m i ) s p e c i f i c a t i o n ( v e r s i o n 1 . 0 5 , 3 / 2 9 / 2 0 0 1 ) 。 w b :严格遵循w i s h b o n e s y s t e m - o n - c h i p ( s o c ) i n t e r c o n n e c t i o n a r c h i t e c t u r e f o r p o r t a b l e i p c o r e s ( r e v i s i o n : b . 2 , r e l e a s e d : o c t o b e r 1 0 , 2 0 0 1 ) 。 s i e 实现的u s b 设备端数据流向模型如图3 -8 所示, u s b 设备功能软件可以 建 立与u s

温馨提示

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

评论

0/150

提交评论