(微电子学与固体电子学专业论文)usb设备接口的研究与设计.pdf_第1页
(微电子学与固体电子学专业论文)usb设备接口的研究与设计.pdf_第2页
(微电子学与固体电子学专业论文)usb设备接口的研究与设计.pdf_第3页
(微电子学与固体电子学专业论文)usb设备接口的研究与设计.pdf_第4页
(微电子学与固体电子学专业论文)usb设备接口的研究与设计.pdf_第5页
已阅读5页,还剩74页未读 继续免费阅读

(微电子学与固体电子学专业论文)usb设备接口的研究与设计.pdf.pdf 免费下载

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

文档简介

u s b 设备接口的研究与设计 摘要 随着计算机通信技术的高速发展,通用串行总线( u s b ) 以其高速、支持多 种传输类型、即插即用、易扩充等优点被广泛应用于数据通信领域。 本文首先分析了u s b 2 0 协议,包括u s 8 封包的字段类型、封包的类型以及 四种不同的数据传输方式,为u s b 2 0 设备接口的设计提供一定的理论基础。 其次,数据通信中的数据可靠性问题是u s b 设备接口设计中的关键问题之 一。本文从四个方面深入研究了u s b 设备接口中数据传输的可靠性问题:时钟 恢复技术、数据的差错控制、不同时钟域间的数据传输以及u s b 协议层的数据 可靠性问题,并给出了部分理论推导和实验结果。 在上述的理论基础上,本文阐述了u s b 2 0 设备接口的设计,着重研究了数 据同步传输模块、包编码解码模块和端点控制模块的设计与实现。 最后,本文搭建了u s b 2 0 设备接口的r t l 级仿真平台,并给出了具体的验 证方案,验证结果表明设计符合功能要求。此外,本文基于s m i c o 1 8 的工艺库 对设计进行了逻辑综合,实验结果表明所设计的电路时序正确。 关键词:u s b ,c r c ,同步,时钟恢复,数据可靠性,封包,测试,综合 r e s e a r c ha n dd e s i g no fu s bd e v i c ei n t e r f a c e a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to fc o m m u n i c a t i o nt e c h n o l o g yi nc o m p u t e ra r e a , u n i v e r s a ls e r i a lb u s ,d u et oi t sf e a t u r e ss u c ha sh i g hs p e e d ,m a n yt y p e so ft r a n s f e r s u p p o s e d ,p l a y - a n d p l u g a n d e x p a n d a b i l i t y ,h a s b e e nw i d e l yu s e di nd a t a c o m m u n i c a t i o na r e a f i r s t l y ,t h i st h e s i sa n a l y z e st h eu s b 2 0p r o t o c o l ,i n c l u d i n gt h ed a t af i e l do fp a c k e t , t h ep a c k e tt y p ea n dt h et r a n s f e rt y p e ,w h i c hi sf u n d a m e n t a lt ot h ed e s i g no fu s b d e v i c ei n t e r f a c e t h ed a t ar e l i a b i l i t yi so n eo ft h es i g n i f i c a n tp r o b l e m si nt h ed e s i g no fu s bd e v i c e i n t e r f a c e s e c o n d l y ,p a r t l yb a s e do nt h e o r e t i c a la n a t y s i sa n de x p e r i m e n t s ,t h i s t h e s i sr e s e a r c h e so nt h er e l i a b i l i t yo fd a t at r a n s f e ri nu s bd e v i c ei n t e r f a c ef r o m f o u ra s p e c t sa sf o l l o w e d :c l o c kr e c o v e r y ,t h ed a t ae r r o rc o n t r o l ,t h es y n c h r o n i z a t i o n o fd a t ab e t w e e nd i f f e r e n tt i m ed o m a i n s a n dt h ed a t ar e l i a b i l i t yo nu s bp r o t o c 0 1 t h e n ,b a s e do nr e s e a r c ha b o v et h i st h e s i sp r e s e n t st h eh a r d w a r ed e s i g no fu s b 2 0 d e v i c ei n t e r f a c e ,f o c u s i n go nt h r e em o d u l e s :t h ed a t as y n c h r o n i z a t i o na n dt r a n s f e r m o d u l e ,t h ep a c k e te n c o d i n g d e c o d i n gm o d u l ea n dt h ee n d p o i n tc o n t r o lm o d u l e f i n a l l y ,t h i st h e s i sc o n s t r u c t st h er t l t e s tp l a t f o r mo fu s b 2 0d e v i c ei n t e r f a c ea n d p r e s e n t st h ew a y o fi t ss i m u l a t i o n t h er e s u r so fs i m u l a t i o nd e m o n s t r a t et h a tt h e f u n c t i o no ft h ed e s i g ni sc o r r e c t a d d i t i o n a l l y ,i tr e s e a r c h e so nt h el o g i cs y n t h e s i s o fu s b 2 0d e v i c ei n t e r f a c eb a s e do nt h es i m c 0 1 8l i b r a r y ,a n dt h ee x p e r i m e n t r e s u l t si m p l yt h a ti t st i m i n ga l s oc o r r e s p o n d sw i t ht h er e q u i r e m e n to ft h ed e s i g n k e y w o r d s :u s b ,c r c ,s y n c h r o n i z a t i o n ,c l o c kr e c o v e r y ,d a t ar e l i a b i l i t y ,p a c k e t , s i m u l a t i o n ,s y n t h e s i s 插图清单 图2 - 1 控制读写序列1 0 图2 - 2 控制设置事务1 0 图2 - 3 中断事务格式1 1 图2 - 4 同步事务格式1 2 图2 5 批量事务格式1 2 图3 - iu s b 设备接口数据流框图1 4 图3 - 2 时钟恢复电路原理1 5 图3 - 3 时钟提取技术原理1 6 图3 - 4 时钟提取和过采样技术的差错率对比1 7 图3 - 5 恢复时钟的波形1 8 图3 - 6 状态转移图1 8 图3 - 7 相关信号波形图1 9 图3 - 8串行c r c 码产生校验通用电路2 1 图3 - 9n r z i 编码示意图。2 2 图3 - 1 0同步器结构2 5 图3 一l l同步器时序波形2 5 图3 1 2异步f i f o 的结构2 6 图3 - 1 3格雷码指针的生成2 7 图3 - 1 4 格雷码地址指针生成电路2 7 图3 一1 5空满状态判断2 8 图3 - 1 6正确情况下的序列位切换2 9 图3 - 1 7 数据发送重试2 9 图3 一1 8a c k 损坏的数据重试2 9 图4 - 1u s b 2 0 设备接口体系结构简图3 2 图4 - 2数据同步传输模块的数据流3 4 图4 - 3 数据同步接收模块3 4 图4 - 4 接收缓冲器选通时序波形示意图3 5 图4 - 5 接收缓冲器以及字节选通示意波形3 5 图4 - 68 位的数据接收波形3 6 图4 7数据同步发送模块的结构3 6 图4 - 8 循环左移寄存器3 7 图4 - 9 数据发送相关波形3 7 表4 2总线状态表3 8 图4 一l o高速检测中的状态转移4 0 图4 1 1解码状态转换及相关信号4 4 图4 一1 2 图4 1 3 图4 1 4 图4 一1 5 图5 一l 图5 2 图5 - 3 图5 - 4 图5 - 5 编码状态转换及相关信号4 4 数据接收的时序4 5 个别状态跳转及信号波形4 9 状态跳转及个别信号波形5 2 基于测试平台的验证5 6 完整的u s b 2 0 设备接口结构5 6 u s b 2 0 设备接口测试平台5 6 逻辑综合示意图6 2 输入延迟的时序关系图6 4 表格清单 表2 一lp i d 格式5 表2 - 2 各种封包的类型定义6 表2 - 3 地址字段6 表2 - 4 端点字段7 表2 - 5 数据字段。7 表2 - 6 令牌包格式8 表2 - 7 数据包格式8 表2 - 8 握手包格式9 表3 - 1 状态编码表1 9 表4 一lu s b 2 0 设备接口的寄存器描述。3 2 表4 - 2 总线状态表3 8 表4 - 3m a x p 寄存器格式5 2 表5 - i测试向量以及特征5 8 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。 据我所知。除了文中特别加以标志和致谢的地方外,论文中不包含其他人已经发表或撰 写过的研究成果,也不包含为获得 金胆王些太堂 或其他教育机构的学位或证书而使 用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说 明并表示谢意。 学位论文作者签字:矽也签字目期:7 如7 年月z 9 日 学位论文版权使用授权书 本学位论文作者完全了解 盒壁王些太堂 有关保留、使用学位论文的规定,有权 保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅或借阅。本人 授权 盒篷王些叁堂可以将学位论文的全部或部分论文内容编入有关数据库进行检 索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文者签名:、白l 色名:薪肚 签字日期:1 妒0 7 年牛月咕日签字日期:莎矗7 年牛月) ,日 学位论文作者毕业后去向; 工作单位: 通讯地址: 电话; 邮编: 致谢 这是一段令人永生难忘的岁月,这里有令人满怀感激的人。 首先,我要感谢我的导师高明伦教授。在两年半的学习和生活中,高老师 的思维方式、治学态度和人格魅力给我留下了深刻的印象。他不仅学识渊博, 而且视野开阔,对i c 产业具有深刻的见解;他严谨求实、一丝不苟,这种治学 态度感染着我们微电子所的每一位老师和同学;他谦虚而低调的处事风格更是 我们学习的典范。高老师给我们创造了优越的学习和生活条件,更好地激励着 我们学习,也给我们的生活增添了无穷乐趣。我还要感谢师母潘剑宏教授在学 习、工作和生活上无微不至的关怀和教育。 感谢胡永华老师在项目和学习上的悉心指导和帮助。 感谢邓红辉老师在我刚进微电子所时对我的帮助,以及在毕业论文撰写上 的中肯建议。 感谢王锐老师、张多利老师、林微老师、贾靖华老师、尹勇生博士、杜高 明博士、程作仁博士在我在微电子所学习期间的帮助。 感谢李洋和何亚军同学对论文的校对工作。 感谢于冰,聂晶、程颖等同学在u s b 项目组中的愉快合作。 感谢矫妹在我论文撰写过程中的支持和鼓励。 感谢我的大舅和小舅在我生活和学习上无微不至的关心。 感谢所有关心、支持和帮助过我的亲人、朋友和老师。 最后,谨以此文献给养育我的父母。 作者:沈健 2 0 0 7 年3 月 第一章绪论 1 1 集成电路发展历史 1 9 3 1 年,英国物理学家威尔逊( t t a w i l s o n ) 应用布洛赫( f b l o c h ) 的固体微观结构模型,给出了区分导体、半导体和绝缘体的微观判别依据;1 9 3 4 年,美国物理学家赛兹( f s c i t g ) 和魏格纳( e p w i g n c r ) 研究了电子闻 的相互作用,发展了奠定半导体和晶体管产生的理论基础的能带理论;1 9 4 7 年, 美国贝尔实验室的科学家巴丁( b a r d e e n ) 布莱登( b r a t r a i n ) 和肖克莱 ( s h o c k l e y ) 向人们展示了世界上第一个半导体晶体管,成为人类微电子革命 的先声。随着电路系统不断扩张,缩小元件体积、降低成本成为了应用上的大 问题。1 9 5 2 年,英国的g d u m m e r 首先提出了集成电路的设计思想,继而美国 德州仪器的工程师基尔比于1 9 5 8 年9 月第一次实现了把四个晶体管集成在一块 锗单晶片上,人类历史上的第一块集成电路由此诞生。 从2 0 世纪4 0 年代对半导体理论的深入研究,到4 0 年代末第一个半导体晶 体管的发明、5 0 年代末硅平面工艺的发展和成熟,再到6 0 年代m o s 场效应器 件走向稳定可靠,这些都奠定了集成电路产业作为一个具有强大渗透力和旺盛 生命力的产业的基础。随后集成电路由s s i ( 小规模集成电路) 发展到m s i ( 中 规模集成电路) ;到1 9 6 7 年能在一块电路上集成1 0 0 0 个晶体管,这标志着l s i ( 大规模集成电路) 阶段的开端;进入8 0 年代,一块硅片上有几万个晶体管的 大规模集成电路已经很普遍,并且向v l s i ( 超大规模集成电路) 方向发展;如 今出现了u l s i ( 特大规模集成电路) ,将来的趋势是朝着单片集成l o 亿个元 件的g s i ( 甚大规模集成电路) 方向发展。 从发明集成电路至今4 0 多年以来,整个集成电路产品的发展经历了从传统 的板上系统( s y s t e mo nb o a r d ) 到片上系统( s y s t e m o n a c h i p ) 的过程。在 这一历史过程中,世界i c 产业为适应技术的发展和市场的需求,其产业结构经 历了三次变革。 第一次变革:以加工制造为主导的i c 产业发展的初级阶段( 7 0 年代) 。 这一时期i c 产业仅处在以生产为导向的初级阶段,i c 制造商( i d m ) 在i c 市 场中充当主要角色,i c 设计只作为附属部门而存在,i c 设计和半导体工艺密切 相关,主要以人工为主,c a d 系统仅作为数据处理和图形编程之用。 第二次变革:f o u n d r y 公司与i c 设计公司的崛起( 8 0 年代) 。这一时期, 无生产线的i c 设计公司( f a b l e s s ) 与标准工艺加工线( f o u n d r y ) 相结合的方 式开始成为集成电路产业发展的新模式。 第三次变革:”四业分离”的i c 产业( 9 0 年代) 。随着i n t e r n e t 的兴起, i c 产业跨入以竞争为导向的高级阶段,i c 产业结构向高度专业化转化成为一种 趋势,开始形成了设计业、制造业、封装业、测试业独立成行的局面。 1 2i p 、s o c 及i p 重用 在集成电路设计中,i p 是i n t e l l e c t u a lp r o p e r t y ( 即知识产权) 的简称。 设计者设计出符合功能要求且测试正确的硬件电路,它凝结了设计者的智慧和 技术,具有知识产权,因此把该电路模块称为i p 。 根据i p 的设计层次不同,可以把它分成软核、硬核和固核三种。软核用可 综合的硬件描述语言来描述电路设计,它与生产工艺无关,设计周期短、投资 小,而且不涉及到具体的电路物理结构,用户可以根据自身需要方便地修改, 还能灵活地选择自己所需要的库来映射;硬核和具体的生产工艺相关,是以版 图形式提交的i p 核;固核则界于软核和硬核之间,通常以综合后的网表形式提 交客户使用。 随着半导体工艺技术的发展0 3 ,i c 设计者能够将愈来愈复杂的功能集成到 单个硅片上,s o c ( s y s t e mo nc h i p ) 正是在集成电路( i c ) 向集成系统( i s ) 发 展的大方向下产生的。s o c 通常是指在单一的芯片上实现数字计算机系统,它 包括硬件部分和软件部分,前者包括工l p 、b u s 、r o m r a m 、i 0 端口等部分;后 者主要指操作系统,也可以包括重要的应用软件。s o c 技术是当前超大规模集 成电路发展的必然趋势和主流,但从集成电路的发展历史看,i c 设计能力一直 落后于相应的制造能力,这成为s o c 发展过程中一个非常突出的瓶颈,而i p 重用方法学的出现则解决了这一问题。在s o c 设计中,采用基于已有i p 的重用 设计方法学能够显著提高设计能力,并且很大程度上缩短芯片集成度与设计效 率之间的“剪刀差”。 i 3u s b 的发展背景及特点 无论作为网络终端还是作为独立个体,电脑的主要功能是对外界信息的采 样、处理、存储以及传输,接口电路是实现以上功能的重要手段。 在u s b ( u n i v e r s a ls e r i a li n t e r f a c e ) 技术诞生之前,计算机对不同的外 围设备的联接主要通过不同的外围接口( 如串行接口、并行接口等) 来实现。 但是上述类型的接口具有如下缺点:首先,多种接口芯片占用了过多的p c 主板 面积:其次,一个接口在同一个时刻往往只能联接一个特定的外围设备;再次, 很多接口设备在插到p c 上时需要重新启动电脑,安装驱动程序,给用户带来很 大的不便;最后,在传统的i o 模式下,接口占用i o 地址和i r q 中断资源, 经常导致i 0 地址冲突等问题。这些潜在的问题驱使硬件设计工程师去思考用 一种通用的技术来代替现有的接口技术,u s b 技术正是在这种背景下产生的。 u s b 设备接口的构想是将计算机的各种外围接口统一起来,用带四根线( 两 根电源线和两根数据线) 的接口来实现任意设备和p c 间的通讯。外围设备可以 通过u s b 接口的电源线供电,解决了外围设备自带电源线带来的不便。1 9 9 5 年。 c o m p a q 、d i g i t a le q u i p m e n tc o r p 、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 七家世界著名的计算机和通信领域公司组成的联盟提出了u s b o 9 通用 2 串行总线规范并加以推广。1 9 9 6 年,u s b i f ( u s bi m p l e m e n tf o r u m ) 公布了 第一个u s b 产品设计标准- - u s b l 0 规范。1 9 9 8 年,在对以前版本的标准进行阐 述和扩充的基础上,u s b - i f 发布了支持1 6 m b p s 的低速模式和1 2 m b p s 的全速 模式的u s b l 1 规范。 虽然u s b l 1 规范支持1 5 m b p s ( 低速) 和1 2 m b p s ( 高速) 数据传输,但是对 于大容量数据传输,这种带宽还远远不能满足数据传输的要求。1 9 9 9 年,u s b i f 正式制定了u s b 2 0 的规范,它不仅向下兼容u s b i 1 规范,而且还支持4 8 0 m b p s 的高速数据传输。新规范保证了u s b 接口可以用于彩色扫描打印、高清晰数字 会议视频、高速硬盘等一些以往受限于u s b 速度瓶颈的设备上。u s b 2 0 满足了 高端应用中对总线带宽的需求,u s b 2 0 设备于2 0 0 2 年下半年大规模出现,到 2 0 0 4 年,其市场规模超过了u s b l 1 设备。 随着设备与设备之间直接的数据交互交得越来越频繁,为解决u s b 设备对 p c 的依赖问题,2 0 0 1 年1 2 月底,u s b0 t g ( o nt h eg o ) 技术被提出。在这个 规范中,u s b 接口既可以作为设备又可以作为主机。该技术的出现解决了u s b 设备对p c 的依赖,扩大了u s b 的应用范围。 u s b 接口有很多优点和特性,简单归纳如下: 1 ) u s b 接口把各种设备的接口统一成一种类型的接口,并且采用相同的u s b 接 口规范。 2 ) u s b 接口覆盖广泛的数据传输速率范围。u s b 2 0 不仅支持低速的1 2 m b p s 以及全速的1 2 m b p s 数据传输,而且还支持高达4 8 0 m b p s 的数据传输,比一 般的串口快大约4 0 0 0 倍,比一般的并口快将近4 0 0 倍。 3 ) u s b 接口具有即插即用的特点,能够由主机自动检测并且配置相应的驱动程 序。 4 ) u s b 接口具有很好的扩充性。u s b 通过使用h u b 扩展,最多能同时挂接1 2 7 个设备。 5 ) u s b 接口使用灵活。它不但支持三种不同速度的数据传输,而且还支持四种 不同类型的数据传输方式:控制传输、中断传输、等时传输和批量传输,这 四种传输方式分别适用于不同应用领域。 6 ) u s b 接口具有自动供电能力,并且能自动进入省电模式。 上述优点使得u s b 接口的应用越来越广泛,并成为当今计算机设备的主流接 口。 1 4u s b 2 0 发展现状及课题意义 在国外,设计者拥有相当成熟的u s b 接口设计技术和经验,不断地优化和 提升u s b 接口的功能。u s b 产品在国外市场上也相当普遍。 在国内,与u s b 技术相关的研发主要集中在u s b 的应用和系统的开发上, u s b 设备接口的设计技术相对薄弱。目前,国内已有企业涉足u s b i 1 设备接口 的设计,并在技术上有所突破。u s b 2 0 比u s b i 1 在速度上有大幅度提高,对 硬件设计的要求提高到了更高层次,这种设计难度对于国内现有的设计水平来 说是一个挑战。目前,国内的u s b 2 0 芯片基本依靠进口。因此无论从市场的需 求还是从提高国内自身的设计水平来说,研究u s b 设备接口电路,并且设计开 发自主产权的u s b 2 0 设备接口都具有重要的现实意义。 i 5 课题来源及论文的主要工作 1 5 1 课题来源 i ) 国家科技部中小企业创新基金项目“u s b 2 ,0 微控制器芯片” ( 项目编号0 5 c 2 6 2 1 3 4 0 0 8 5 1 ) 2 ) 合肥市科技计划项目“移动存储器( u 盘) 控制芯片” ( 合科合同( i 业) 字2 0 0 6 ( 0 0 2 ) 号) 1 5 2 论文的主要内容及章节安排 本文首先分析研究了u s b 2 0 的协议,然后对u s b 设备接口硬件设计中的数 据可靠性问题进行了深入研究。在此基础上,本文实现了u s 8 2 0 设备接口的设 计,并搭建r t l 级仿真平台,给出具体的验证方案,对设计进行验证,实验结 果表明设计符合功能要求。此外,本文基于s m i c o 1 8 工艺库,对设计进行逻辑 综合,并对其进行时序分析,实验结果表明设计的时序满足要求 论文结构如下: 第一章:绪论。本章介绍了集成电路发展历史、u s b 的发展背景、国内外 现状以及论文研究的意义。 第二章:u s b 2 0 协议分析。本章分析研究了u s b 2 0 的协议,包括u s b 封 包的字段类型、封包类型以及四种不同传输方式,为后续的u s b 2 0 设备接口设 计提供一定的理论基础。 第三章:u s b 设备接口数据可靠性研究。本章从时钟恢复、数据差错控制、 不同时钟域的数据同步以及u s b 协议层的数据可靠性问题等四个方面,探讨了 u s b 设备接口硬件设计中的数据可靠性问题。 第四章:u s b 2 0 设备接口的设计。本章介绍了u s b 2 0 设备接口的硬件设 计实现,主要包括三大模块的设计:数据同步传输模块、包编解码模块以及端 点控制模块。 第五章:u s b 2 0 设备接口的验证与综合。本章搭建了u s b 2 0 设备接口的 r t l 级验证平台,并给出具体的验证方案,对设计进行验证。此外,基于s m i c o 1 8 工艺库,对设计进行逻辑综合。 第六章:总结与展望。 4 第二章u s b 2 0 协议分析 u s b 2 0 协议规定了u s b 的各种数据格式、数据类型以及传输方式,是u s b 设备接口设计的基础。本章介绍了u s b 2 0 协议中u s b 封包的字段类型、封包类 型以及四种不同传输方式的机制和特点,为后续的u s b 2 0 设备接口的设计提供 一定的理论基础川嘲“7 1 。 2 1 字段的定义 根据u s b 规范,u s b 总线上的数据总是以封包的形式进行传输的。封包是 u s b 数据传输的最基本单元,它由不同的字段所组成。组成u s b 封包的字段有 八种类型:同步字段、封包标志符字段、地址字段、端点字段、帧号字段、数 据字段、循环冗余码字段和封包结束字段。 2 1 i 同步字段( s y n c ) u s b 封包的同步字段包含了数据发送端的时钟信息,而数据接收端能够恢 复同步字段中的时钟信息。所有封包都是以同步字段( s y n c ) 开头。在低速 ( 1 5 m b s ) 和全速( 1 2 m b s ) 模式下,同步字段被定义成8 位的二进制数 0 0 0 0 0 0 0 1 ,经过编码后以k j k j k j k k 的格式出现在总线上( k 是非空闲状态,j 是空闲状态) ;在高速( 4 8 0 m b s ) 模式下,同步字段的长度为3 2 位,原始数 据为3 1 个0 和1 个1 ,经过编码后以1 5 对“k j ”和两个k 的格式呈现在总线 上。 2 1 2 封包标志符字段( p i d ) 在一个封包中,封包标志符字段紧跟在同步字段之后,它由两部分组成:4 位的封包类型字段和4 位的校验字段,其格式如表2 1 所示。 表2 - ip i d 格式 封包类型字段表明封包的类型,如令牌包、数据包、握手包或专用包。校 验字段是对封包类型字段取反得到的,用于校验封包在传输中是否发生了错误。 功能设备对所接收到的封包的p i d 字段进行校验,如果p i d 字段错误或者无定 义,则忽略掉该损坏的封包。如果功能设备接收到一个其本身不支持的p i d 类 型( 比如输出端点接收到输入令牌包) ,那么它不做出任何应答。表2 2 列出 了各种封包的p i d 类型、编码以及功能描述。 5 表2 - 2各种封包的类型定义 p i d 类型p i d 名称p i d 3 :0 描述 令牌包o u t0 0 0 1发起从主机到设备的数据传输 i n1 0 0 l发起从设备到主机的数据传输 s o p0 1 0 l帧的起始标志和帧码 s e t u p1 1 0 1设置控制端点,从主机到设备,表示要 进行控制传输 数据包 d a t a o 0 0 1 1偶数数据封包p i d d a t a l 1 0 1 1奇数数据封包p i d d a t a 2 0 1 1 1高速高带宽同步任务的微帧中传输的 数据封包的p i d m d a t a 1 l l l 高速高带宽同步任务的微帧中传输的 数据封包的p i d 握手包a c e o o l o接收端接收到无错误的数据 n a k 1 0 1 0接收端不能接收数据,或发送端不能发 送数据 s t a l l1 1 l o端点被终止 n y e t0 1 1 0接收端没有反应 特殊封包 p r el 1 0 0( 令牌包) 主机发出的前导包,使能下 行端口 e r r1 1 0 0( 握手包) s p l i t 事务错误握手 s p l i t 1 0 0 0( 令牌包) 高速s p l i t 事务令牌 p i n g o 1 0 0( 令牌包) 对批量和控制传输中的高速 传输的控制 保留 0 0 0 0保留的p i d 2 1 3 地址字段 地址字段指定了7 位的功能设备的地址,如表2 - - 3 所示。理论上主机可以 连接1 2 8 个功能设备,但在复位或者上电情况下功能设备的地址默认为0 ,因 此主机只能寻址1 2 7 个设备地址。地址字段在令牌包i n 、s e t u p 和o u t 以及专 用包p i n g 和s p l i t 包中存在。 表2 - 3 地址字段 2 1 4 端点字段 4 位的端点字段( e n d p ) 使具有多个端点的设备具有更灵活的寻址能力, 表2 4 为端点字段的格式。所有设备必须有控制端点o ,低速设备最多有3 个 端点:全速和高速设备最多能够支持1 6 个i n 和o u t 端点。端点字段只在i n 、 6 s e t u p 、o u t 和p i n g 包中存在。 表2 - 4 端点字段 i 墨翌生。l 墨翌垒。i 堑塑:l 墅塑:i 2 1 5 帧号字段 帧号字段是一个1 1 位的字段,由u s b 主机产生。在低速模式下,主机每发 送一个s o f 包,帧号就加1 ;在高速模式下,主机每发送8 个微帧,帧号才加1 。 当帧号为3 f f f 后,下一个帧号重新回到0 。 2 1 6 数据字段 数据字段仅存在于数据封包内,它的字节数可以根据具体情况设置成0 到 1 0 2 4 ,而且必须是整数。表2 5 表示了数据字段的多字节格式。 表2 - 5 数据字段 字节n - 1字节n字节n + i 2 1 7 循环冗余码( c r c ) 字段 循环冗余码( c y c l i cr e d u n d a n c yc o d e ) 字段是用来保护令牌包和数据包 的非p i d 字段的,它提供了数据传输的错误校验。对于令牌包,5 位的循环冗 余码附在端点字段的后面;对于数据包,1 6 位的循环冗余码附在数据字段的后 面。 2 1 7 1 令牌包的c r c 码 在令牌包i n 、s e t u p 、o u t 、s o p 以及p i n g 和s p l i t 包中包含了5 位的c r c 码字段。i n 、s e t u p 和o u t 包中的c r c 码是由对地址字段和端点字段进行c r c 计算得到,而s o f 包中的c r c 码是由对帧号字段进行c r c 计算得到。5 位c r c 码的生成多项式为: g ( x ) - z 5 + z 2 + 1 ( 2 - 1 ) 该多项式表示的二进制数为0 0 1 0 1 ( 剔除生成多项式的最高次项) ,如果令牌 包的所有位都被准确无误地接收,那么接收端计算所得到的5 位循环冗余码为 0 1 1 0 0 。 2 1 7 2 数据包的c r c 码 数据包的c r c 码是1 6 位的字段,由对数据包的数据字段进行c r c 计算得到。 1 6 位c r c 码的生成多项式为: g ( x ) = x ”+ x ”+ x 2 + l ( 2 - 2 ) 该多项式表示的二进制序列为1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 ( 剔除生成多项式的最高次 项) ,如果数据包被准确无误地接收,那么接收端计算所得到的1 6 位循环冗余 码为1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 l 。 2 1 8 封包结束字段( e o p ) 封包结束字段将总线置入闲置状态,来准备下一个同步字段的到来。低 全速封包结束字段是延续2 个位宽度的o ;高速封包结束字段包含4 0 个j 或者 4 0 个k 。 2 2 包类型 u s b 协议中规定了四种u s b 封包类型:令牌包、数据包、握手包和专用包。 下面主要研究常用的前三种封包类型。 2 2 i 令牌包 令牌包主要包括s e t u p 、i n 、o u t 和s o f 包。令牌包( 除s o f 包) 的格式如 表2 6 所示,它由包标志符字段( i n 、s e t u p 、或者o u t ) 、地址字段、端点 字段和5 位的c r c 字段组成;s o f 包由p i d 字段、i l 位的帧号字段和5 位的c r c 码字段组成。o u t 和s e t u p 包的地址字段和端点字段指定了唯一的数据接收端 点。i n 包的地址和端点字段指定了唯一的数据发送端点。 表2 - 6 令牌包格式 l字段 p i da d d re n d pc r c 5 i位数 8 74 5 只有主机才能发送令牌包,i n 包定义了数据的传输是从设备到主机,而o u t 和s e t u p 包则定义了数据的传输是从主机到设备。 主机在全速模式下以1 o o m s 士0 0 0 0 5 m s 的时间问隔发送s o f 包,在高速模 式下以1 2 5 u s 士0 0 6 2 5 u s 的时间间隔发送s o f 包,它不需要接收方做出回应。 令牌包和s o f 包都是以e o p ( e n do fp a c k e t ) 作为包结束标志,如果接收 端进行包解码后得到的是正确的令牌包或s o f 包,但在没有检测到e o p 信号, 那么它就认为该s o f 包是一个无效的包并且忽略它。 2 2 2 数据包 数据包由p i d 字段、包含0 或多个字节的数据字段以及一个1 6 位的c r c 字段组成,其格式如表2 7 所示。 表2 - 7 数据包格式 i字段 p i db a t hc r c l 6 f位数 80 8 1 9 21 6 数据包有四种类型:d a t a o 、d a t a l 、d a t a 2 和m d a t a 。数据必须以整数个字 节的方式进行传输。在一个数据包中,低速设备最大能传输8 字节的数据,全 速设备最大能传输1 0 2 3 个字节的数据,高速设备最大能传输1 0 2 4 个字节的数 据。 2 2 3 握手包 如表2 8 所示,握手包只包含一个p i d 字段,用来说明数据的传输状态。 8 表2 - 8 握手包格式 l 字段 i p i d i位数8 握手包主要有四种通用类型以及一种专用类型:a c k 、n a k 、s t a l l 、n y e t 和e r r 包。 1 ) a c k 包 a c k 包表示主机或设备所接收到的数据包没有错误。在i n 事务中,主机返 回给功能设备a c k 包;在o u t 或s e t u p 或p i n g 事务中,设备返回给主机a c k 包。 2 ) n a k 包 n a k 包表示功能设备不能接收来自主机的数据( o u t 事务) ,或者功能设备 没有数据发送给主机( i n 事务) 。n a k 包在i n 事务的数据阶段由功能设备返回 给主机,或者在o u t 或p i n g 事务的握手阶段返回给主机。主机不会发送n a k 信号。 3 ) s t a l l 包 s t a l l 包表明功能设备被终止工作而不能接收或者发送数据。在任何情况 下,主机都不允许返回s t a l l 握手包。 4 ) n y e t 包 n y e t 包是高速模式下的握手包,它在两种情况下被使用:当高速端点没有 足够空间进行下次的o u t 事务传输时,设备就会返回n y e t 包以提示主机用 p i n g 包进行端点状态的尝试;n y e t 包也可能由集线器返回,作为对s p l i t 事务 的响应。 5 ) e r r 包 e r r 包只在高速握手的情况下返回,它的返回表示允许高速集线器向低速 或者全速总线报错。作为s p l i t 事务的一部分,它只由高速集线器返回。 2 3u s b 传输类型 在u s b 的数据传输中,因不同外围设备的类型和应用不同,u s b 协议提供 了四种传输类型:控制传输、中断传输、等时传输和批量传输。 2 3 1 控制传输 控制传输是u s b 传输中必需而且最重要的传输方式,只有正确地完成了控 制传输才能进行其它传输,它用来提供介于主机和设备之间的配置。一般的控 制传输可以分成控制读取、控制写入和无数据阶段的控制传输三种类型,如图 2 - - 1 所示。每一种控制传输( 除无数据阶段的控制传输) 又可以分为三个阶段: 设置阶段、数据阶段和状态阶段。无数据传输的控制传输只包括两个阶段:设 置阶段和状态阶段。 9 设置阶段 广l 控制写入匪至圃 控制读取e 量圈 d a t a o 无数据传输匪亘i i j 团 d a t a o 数据阶段状态阶段 +十 厂上 广1 匪圃匪圃臣亘刃 匦口 d t ld a t , o t od a t , i | od a t a i 亟口 亟 臣圃臣亟口 d a t a id a t a od a t a i i dd a t a i 亟口 图2 1 控制读写序列 1 ) 设置阶段 设置阶段的数据交换包括s e t u p 令牌包、d a t a 0 数据包以及a c k 握手包。 s e t u p 事务类似于o u t 事务,如图2 2 所示。设置阶段使用d a t a 0 作为数据p i d 类型,功能设备接收到s e t u p 包之后接收d a t a 0 数据,然后返回a c k 包。如果 数据发生错误,设备则丢弃数据而不返回握手包。d a t a 0 中包含了主机发送给 设备的请求信息,它占用8 个字节。 空闱 口t 机口豁 图2 - 2 控制设置事务 2 ) 数据阶段 数据阶段的数据传输以d a t a l 作为起始包类型,接着以d a t a 0 和d a t a l 交 替的顺序进行传输。数据阶段的数据传输有相同的方向。所要传输的数据量以 及数据的传输方向在设置阶段进行设置,如果所要传输的数据量超过了所设置 的一次事务所能传输的最大数据量,则这些数据需要通过多个事务进行传输。 3 ) 状态阶段 状态阶段用来确定整个传输过程是否结束。状态阶段的数据方向必须与数 据阶段的数据方向相反,如图2 1 所示。如果控制传输不包括数据阶段,那么 状态阶段是i n 事务。 1 0 2 3 2 中断传输 中断传输是一种轮询的传输方式,它包含两种传输类型:i n 传输和o u t 传 输。在接收到i n 令牌包后,功能设备可能以数据包、n a k 包或者s t a l l 包进行 响应。如果端点没有新的中断信息需要返回,那么功能设备就在数据阶段返回 n a k 包;如果中断端点被设置成了终止状态,那么它将返回给主机s t a l l 包; 如果中断端点在等待事务的发生,那么功能设备将数据包作为中断信息返回给 主机。如果数据包被主机正确无误地接收,那么主机就向设备返回一个a c k 握 手信号;如果接收到的数据包损坏了,那么主机不会返回任何握手包,图2 3 表示了中断事务的格式。o u t 传输与i n 传输类似。 主帆口设鲁 图2 - 3 中断事务格式 2 3 3 等时传输 等时传输可以是单向的或双向的,这种传输需要维持一定的速率但能够容 许一些数据传输中的小错误,并且为了保证数据传输的及时性,没有采用差错 控制和重试机制,它只用于高速或全速u s b 设备。 等时传输有令牌和数据两个阶段,没有握手阶段。如图2 4 所示,主机发 送一个i n 或o u t 令牌包,然后端点紧接着发送或接收数据。 全速设备能接收d a t a o 或d a t a i 的数据包,但只能发送d a t a o 数据;高速 高带宽的设备能够发送或接收d a t a o 、d a t a i 、d a t a 2 以及m d a t a 数据包。 当主机需要接收等时数据时,它向功能设备发出i n 令牌包。如果功能设备 正确地接收

温馨提示

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

评论

0/150

提交评论