(微电子学与固体电子学专业论文)串行总线通信协议的研究和usb应用.pdf_第1页
(微电子学与固体电子学专业论文)串行总线通信协议的研究和usb应用.pdf_第2页
(微电子学与固体电子学专业论文)串行总线通信协议的研究和usb应用.pdf_第3页
(微电子学与固体电子学专业论文)串行总线通信协议的研究和usb应用.pdf_第4页
(微电子学与固体电子学专业论文)串行总线通信协议的研究和usb应用.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

(微电子学与固体电子学专业论文)串行总线通信协议的研究和usb应用.pdf.pdf 免费下载

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

文档简介

串行总线通信协议的研究与u s b 应用 摘要 串行总线广泛应用于各种领域,其中1 9 9 4 年出现的通用串行总线( u s b ) 由于 具有高速、同步、低成本、使用简单、支持即插即用、易于扩展等优点,已被广泛地 用在计算机和s o c 上。 论文首先对串行总线及其协议作了总结,然后在此基础上对u s b 协议进行了深 入的分析,并针对协议的要求,对字段、包、数据传输事务、数据切换同步以及错误 检测等的实现进行了详细设计。最后根据u s b l 1 规范设计并实现了u s b 设备控制器, 并分别以m o d e l s i m 、s y n p l i f y 和q u a r t u s i i 完成了u s b 设备控制器的前后仿真、综合 与布局布线。论文的重点是u s b 协议层的设计与实现。 本文完成了u s b 协议层的设计与实现。所设计的u s b 设备控制器通过了f p g a 验证,最终成功地实现了l e d 灯和主机之间的通信。 关键词:串行总线通用串行总线包数据传输 r e s e a r c ho ns e r i a lb u sc o m m u n i c a t i o np r o t o c o la n du s b a p p l i c a t i o n a b s t r a c t s e r i a lb u sh a sb e e nw i d e l yu s e di na l ls o r t so ff i e l d s b e c a u s eo fi t sf a s t ,i s o c h r o n i s m , l o wc o s t ,p l u ga n dp l a y ( p n p ) f u n c t i o n ,e a s eo fu s ea n de x p a n d a b i l i t y , u n i v e r s a ls e r i a lb u s ( u s b ) t h a tc a l t l ef b n hi n19 9 4 ,h a sb e e nw i d e l yu s e di nc o m p u t e ra n ds y s t e mo nc h i p ( s o c l f e l d f i r s t l y , t h es e r i a lb u sa n di t st r a n s f e rp r o t o c o la r es u m m a r i z e d t h e n ,b a s e do nt h i s , u s bp r o t o c o li sd i s c u s s e da n da n a l y z e d ,s o m eo ft h e m ,s u c ha s :f i e l d ,p a c k e t ,d a t at r a n s f e r t r a n s a c t i o n ,d a t at o g g l es y n c h r o n ! z a t i o na n de r r o td e t e c f i o na r ed e s i g n e da n dr e a l i z e d a c c o r d i n gt ot h ep r o t o c o lr e q u i r e m e n t l a s t ,a c c o r d i n gt ot h eu s b1 1s p e c i f i c a t i o n ,t h e u s bd e v i c ec o n t r o l l e ri sd e s i g n e d a n dt h ef r o n t e n da n db a c k e n ds i m u l a t i o n ,s y n t h e s i s a n dp l a c e & r o u t es t e p so ft h eu s bd e v i c ec o n t r o l l e ra r eu s e dw i t hm o d e l s i m ,s y n p l i f ya n d q u a r t u si i s o f t w a r e t h ek e yp o i n to ft h i sd i s s e r t a t i o ni su s b p r o t o c o ll a y e rd e s i g na n d r e a l i z a t i o n i nc o n c l u s i o n ,t h i sp a p e rr e a l i z e dt h eu s bp r o t o c o ll a y e r a n dt h ed e s i g no fu s b d e v i c ec o n t r o l l e ri sv e r i f i e du n d e rf p g af l o w a tl a s tt h ec o m m u n i c a t i o nb e t w e e nl e da n d h o s ti sr e a l i z e d k e yw o r d s :s e r i a lb u s ,u n i v e r s a ls e r i a lb u s ,p a c k e t ,d a t at r a n s f e r 合肥工业大学 本论文经答辩委员会全体委员审查,确认符合合肥工业大学硕士 学位论文质量要求。 答辩委员会签名:( 工作单位、职称) 主席花( 邕犯 委员: 导师: 驯声 私l 盼 插图清单 图1 1 串行总线系统结构示意图 图1 2u s b 数据流模型 图2 1 串行异步传输数据流 图2 2 串行异步传输格式 图2 3p i d 格式 图2 4 地址字段 图2 5 端口字段 图2 - 6 数据字段格式 图2 7 标记包格式 图2 8 帧开始包 图2 - 9 数据包格式 图2 1 0 握手包 图2 - 11 批量传输事务格式 图2 1 2 批量读和写 图2 1 3 控制建立事务 图2 1 4 控制读写序列 图2 1 5 中断传输事务格式 图2 1 6 同步传输事务格式 图2 1 7 建立初始化 图2 - 1 8 连续的传送 图2 1 9 重试的不被确认的事务 图2 2 0 重试的a c k 损坏的事务 图2 2 l 低速事务 图2 2 2 总线周转计时器用法 图3 1u s b 2 5 6 r 框图 图3 2u s b 2 5 6 r 收发器连接 图3 3s y n c 检测状态机 图3 - 4s y n c 检测状态机的仿真波形 图3 5e o p 状态机图 图3 - 6e o p 仿真波形图一 图3 7n r z i 解码仿真波形图一 图3 8n r z i 编码流程图 图3 - 9 位填充流程图 图3 1 0 解除位填充流程图 卫j j h m m”螺垤侉扒勉鸵筋撕卯”勰勰凹孔弭於拍弘”粥 图3 1 1 解除位填充仿真波形图 图3 1 2 标记c r c 生成校验器 图3 1 3 批量i n 传输 图3 1 4 批量o u t 传输一 图3 1 5 控制写传输 图3 1 6 控制读传输 图3 。1 7 无数据控制传输 图4 1u s b 2 5 6 r 的符号 图4 2 验证平台一 图4 3u s be x t e r n a ls t i m u l a t o r 仿真执行过程波形图 图4 - 4u s be x t e r n a lc o m m a n d 仿真执行过程波形图 图4 5f p g a 验证p c b 图4 5u s b 设备端接口的版图一 弘叭铊甜钳钙驰显观弱”弱 表格清单 表1 - 1u s b 包的种类 表2 - 1 面向字符协议中的通信控制字 表2 2 面向比特的同步协议的帧格式 表2 3 面向字节计数的同步协议的帧格式 表2 - 4p i d 类型 表2 5 功能部件对输入事务的回应 表2 - 6 主机对输入事务的回应 表2 7 功能部件对输出处理的回应( 按优先顺序) 表2 8 状态阶段的响应 表2 - 9 包错误类型一 表3 1 常数b u l k ( i n o u t ) e x i s t 的用法 表3 2 批量i n 端点专用寄存器 表3 3 批量o u t 端点专用寄存器4 l 表3 - 4u s b 2 5 6 r 对批量输入标记的响应4 2 表3 5u s b 2 5 6 r 对批量输出标记的响应一4 2 表3 - 6 e p 0 寄存器 表3 7 错误代码 表4 - 1u s b 2 5 6 r 管脚描述 表4 - 2u s b 设备端接口资源利用情况表 4 3 4 6 4 8 5 8 舟nn如加加m如钉 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据我所 知,除了文中特别加以标志和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果, 也不包含为获得盒胆王些太堂 或其他教育机构的学位或证书而使用过的材料。与我一同工作 的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签字:纠杉签字日期:伽西年f 月名歹日 学位论文版权使用授权书 本学位论文作者完全了解金胆王些盍堂有关保留、使用学位论文的规定,有权保留并向 国冢有关部门或机构送交论文的复印件和磁盘,允许论文被查阅或借阅。本人授权盒e 壁王些太 ! l 可以将学位论文的全部或部分论文内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:钠秭 签字日期:年每月彳日 学位论文作者毕业后去向 工作单位: 通讯地址; 导师签名: 圳芦蟊 签字日期:牙年中月讲,日 电话: 邮编: 致谢 在论文完成之际,首先感谢高明伦老师、刘声雷老师多年来的教诲和指导。他们 渊博的知识、开阔的视野、分析洞察问题的能力,都使我受益匪浅。借此机会向他们 表示衷心的感谢! 在这里对潘健宏老师几年来对我的学习和生活的关心表达我的衷心感激之情。 在学习和论文的写作过程中,u s b 项目组的全体成员尹勇生、刘志文、张德云都 给了我很大的帮助,尤其是组长尹勇生博士给予了我极大的关怀和指导,从论文题目 的确定、实施方案的制定、具体工作的进展以及最后论文的撰写与修改,无不受到他 们的热心支持。 感谢合肥工业大学微电子设计研究所的各位同仁,感谢他们陪我度过了研究生阶 段的几年美好生活。在这里特别感谢刘聪、王锐、杨依忠、何叶东、齐海鹏等的陪伴 和关心! 在整个研究生学习阶段,我的家人和朋友给予了我很大的支持和鼓励,对此表示 诚挚的谢意。 最后还要感谢论文中引用到的著作的作者。是他们使我的论文内容更加丰富 刘林 2 0 0 5 年4 月于工大科技楼 1 1 计算机总线技术 第一章串行总线通信协议概述 计算机总线是计算机各部件之间进行信息传递的公共通道。微型计算机系统中 广泛采用总线结构,其优点是系统成本低、组态灵活、维修方便。采用总线标准设 计、生产的硬件模块兼容性强,通过系统总线可以方便地组合在一起,以构成满足 不同需要的微机系统。 计算机总线技术包括通道控制功能、使用方法、仲裁方法和传输方法等。任何 系统的研制和外围模块的开发,都必须服从一定的总线规范。总线的结构不同,性 能差别很大。计算机总线的主要职能是负责计算机各模块问的信息传输,因此,对 总线性能的衡量,也是围绕这一职能而定义、测试和比较的。总线的传输率是其性 能的主要技术指标。另外,总线的可操作性、兼容性和性能价格比,也是很重要的 技术特征。 随着计算机技术的不断发展,微型计算机的体系结构发生了显著的变化。c p u 运行速度的提高,多处理器结构的出现,高速缓冲存储器( c a c h e ) 的广泛采用等, 都要求有高速的总线来传输数据,从而出现了多总线结构。多总线结构是指c p u 与 存储器、i o 等设备之间有两种以上的总线,这样可以将慢速设备和快速设备挂在 不同的总线上,减少总线竞争现象,大大提高总线的效率。 总线的性能指标 要评价一个总线的性能好坏,只有通过相应的指标才能给出判断。一般采用如 下指标来进行判断: ( 1 ) 总线宽度:数据总线的数量,用b i t ( 位) 表示,如8 位、1 6 位、3 2 位、 6 4 位。 ( 2 ) 传输率:每秒钟在总线上传输的最大字节数,用m b s 表示,即每秒多少 兆字节。若总线的工作频率为8 m h z ,总线宽度为8 位,则最大的传输率为8 m b s 。 若总线工作频率为3 3m h z ,总线宽度为3 2 位,则最大传输率为1 3 2 m b s 。 ( 3 ) 同步方式:总线上的数据与时钟同步工作的总线,称为同步总线。反之, 称为异步总线。 ( 4 ) 信号线数:表明总线所需要的信号线数的多少,是地址线a b 、数据线 d b 、控制线c b 的总和。信号线数与性能不成正比,但与复杂程度成正比。 ( 5 ) 总线控制方式:主要指突发传输、并发工作、自动配置、中断方式、仲裁 方式等。 总线有多种分类方式,按期应用场合的不同可以分为芯片总线、系统总线、外 设总线和局部总线;按其数据传输的形式不同,又可以分为串行总线和并行总线。 串行总线是将信息一位一位地进行传输,使用的传输线少。并行总线是多位一起同 时传输,所以使用的传输线较多,多用于模块之间的信息传输,常被用作系统总线。 显然,在线路传输速度相同的情况下,并行传输的速度比串行传输快地多。正是由 于这种传输速度上的差异,所以在连接鼠标、键盘和调制解调器这类低速外围设备 的时候通常采用串行总线,而对c p u 、内存这类高速设备的时候采用的是并行总线。 随着微电子技术和计算机技术的发展,总线技术也在不断地发展和完善,而使 计算机总线技术种类繁多,各具特色。本文对串行总线通信协议进行了研究,并着 重研究了对u s b 总线的协议及其实现。 1 2 串行总线的系统结构 常见串行总线的的基本系统结构如图1 1 ,主机通过适配器与串行总线相连, 一个串行总线可以有一个或一个以上的主机,主机与适配器之间是通过主机的系统 总线( 如:p c i 总线) 或者外设总线相连,每个外设控制器可以控制一个或者多个 外设。 一占舀甚 回豳应 哑卤南圆圆 叫至垂匦圈圆 图1 - l 串行总线系统结构示意图 随着生产现代化和信息交流的不断扩展,计算机之间的通信方式也越来越多。 为了使不同地域、不同形式的计算机网络之间能互相通信,因此有必要对数据的编 码、同步方式、传输速度、传输控制步骤、校验方式、报文格式等问题给予统一规 定。为使数据通信能够顺利进行,把通信双方就如何交换信息所建立的一些规定和 过程称为协议。通信协议在总线系统中处于核心位置,它自成系统并决定了总线的 通信方式。在下一节中将对串行总线的通信协议进行介绍。 1 3 串行总线的通信协议 目前采用的通信协议有两种,异步通信协议和同步通信协议。下面从物理接口 标准和串行通信协议两个方面做进一步讨论。 一、物理接口标准 2 1 串行通信接口的基本任务 ( 1 ) 实现数据格式化:因为来自c p u 的是普通的并行数据,所以,接口电路 应具有实现不同串行通信方式下的数据格式化的任务。在异步通信方式下,接口自 动生成起止式的帧数据格式。在面向字符( 见下文) 的同步方式下,接口要在待传 送的数据块前加上同步字符。 ( 2 ) 进行串一并转换:串行传送,数据是一位一位串行传送的,而计算机处理 数据是并行数据。所以当数据由计算机送至数据发送器时,首先把串行数据转换为 并行数才能送入计算机处理。因此串并转换是串行接口电路的重要任务。 ( 3 ) 控制数据传输率:串行通信接口电路应具有对数据传输率波特率进行 选择和控制的能力。 ( 4 ) 进行错误检测:在发送时接口电路对传送的字符数据自动生成奇偶校验位 或其他校验码。在接收时,接1 3 电路检查字符的奇偶校验或其他校验码,确定是否 发生传送错误。, ( s ) 进行电平转换:c p u 和终端如果与串行总线采用的电平及逻辑不兼容, 则需在接口电路中进行转换。 ( 6 ) 提供串行总线接口标准所要求的信号线。 2 串行通信接口电路的组成 为了完成上述串行接口的任务,串行通信接口电路一般由可编程的串行接口芯 片、波特率发生器、电平转换器以及地址译码电路组成。其中,串行接口芯片,随 着大规模继承电路技术的发展,通用的同步( u s r r ) 和异步( u a r t ) 接口芯片种类 越来越多。它们的基本功能是类似的,都能实现上面提出的串行通信接口基本任务 的大部分工作,且都是可编程的。采用这些芯片作为串行通信接口电路的核心芯片, 会使电路结构比较简单。 3 有关串行通信的物理标准 为使计算机、电话以及其他通信设备互相沟通,现在,已经对串行通信建立了 几个一致的概念和标准,这些概念和标准属于三个方面:数据传输率,电特性,信 号名称和接口标准。所谓传输率就是指每秒传输多少位,传输率也常叫波特率。大 多数接口的接收波特率和发送波特率可以分别设置,而且,可以通过编程来指定。 二、串行通信协议 1 异步通信协议 异步通信是按字符传输的,每传输一个字符,就用起始位来通知收方,以此来 重新核对收发双方同步。若接收设备和发送设备两者的时钟频率略有偏差,这也不 会因偏差的累积而导致错位,加之字符之间的空闲位也为这种偏差提供一种缓冲, 所以异步串行通信的可靠性高。 在异步通信中,通信双方必须遵守两项基本约定: ( 1 ) 字符格式,即字符的编码形式,通信微机之间必须具有相同的字符格式, 否则不能进行通信。 ( 2 ) 波特率,即通信的速率,微机进行串行通信时收发双方必须设置相同的波 特率。实际允许有一定的误差,但一定要将此误差减至最小,以保证通信的正确性。 2 同步通信协议 用这种方式进行通信时每个数据位占用的时间都相等,发送机每一个基本的时 间单位发送一位,接收机与发送机的时钟必须严格同步。在这种方式里,当传送数 据块时,不必和异步方式那样,每个字符都要用起始位和停止位作为字符的开始和 结束的标志,而只要将需要传送的数据分成若干个小数据块。当传送小数据块时, 需在其前面加上同步字符。在小数据块中,数据间没有间隔,可以连续发送,每个 小数据块之间靠同步字符区别,这样可以将小数据块一个一个顺序发送。因此,同 步通信可以用于高速度、大容量的数据通信中,其最典型的应用是高速计算按照功 能串行设备可以分为很多类,如:音频、人机交互、显示、通信、电源、打印机、 海量存储、物理反馈等设备。计算机局域网领域。同步协议又分为面向字符和面向 比特以及面向字节计数三种。 ( 1 ) 面向字符的同步协议 这种协议的典型代表是i b m 公司的二进制同步通信协议( b s c ) 。它的特点是 一次传送由若干个字符组成的数据块,由于被传送的数据块是由字符组成,赦被称 作面向字符的协议。 ( 2 ) 面向比特的同步协议 面向比特的协议中最具有代表性的是i b m 的同步数据链路控制规程s d l c ( s y n c h r o n o u sd a t al i n kc o n t r 0 1 ) ,国际标准化组织i s o ( i n t c m a t i o n a ls t a l l d a r d o r g a n i z a t i o n ) 的高级数据链路控制规程h d l c ( h i g hl e v e ld a t al i n kc o n t r 0 1 ) ,美国 国家标准协会( a m e r i c a ln a t i o n a l s t a n d a r di n s t i t u t e ) 的先进数据通信规程 a d c c p ( a d v a n c c dd a t ac o m m u n i c a t i o nc o n t r o lp r o c e d u r e ) 。这种协议所传输的一帧数 据可以是任意位,而且它是靠约定的位组合模式,故称“面向比特”的协议。 ( 3 ) 面向字节计数的同步协议 面向字节计数的同步协议的典型实例是d e c 公司的数字数据通信报协议 d d c m p ( d i g i t a ld a t ac o m m u n i c a t i o n sm e s s a g ep r o t o c 0 1 ) 。这种协议以一个特殊字符 表征一帧的起始,并以一个专门字段来标明帧内的字节数。接受方可以通过对该特 殊字符的识别从比特流中区分出帧的起始,并从专门字段中获知该帧中随后跟随的 数据字节数,从而可确定出帧的终止位置。 4 1 4u s b 总线的通信模型及通信协议 1 4 1u s b 发展历程、现状及特点 u s b ( u n i v e r s a ls e r i a lb u s ) 即通用串行总线,在传统的计算机组织结构基础上, 引入了网络的某些技术,可以说是计算机外设连接技术的重大变革。1 9 9 4 年,i n t e l 、 c o m p a q 、d i g i t a l 、i b m 、m i c r o s o 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 5 年1 1 月正式制定了u s b 0 9 规范,1 9 9 7 年开始有真正符合u s b 技术标准的外设 出现。u s b l 1 是目前推出的在支持u s b 的计算机与外设上普遍采用的标准。1 9 9 9 年初在i n t e l 的开发者论坛大会上,与会者介绍了u s b 2 0 规范,该规范的支持者 除了原有的c o m p a q 、i n t e l 、m i c r o s o f t 和n e c 四个成员外,还有惠普、朗讯和飞利 浦三个新成员。u s b 2 0 向下兼容u s b l 。1 ,还支持宽带宽数字摄像设备及下一代 扫描仪、打印机及存储设备。u s b 标准可以针对不同的价格性能比要求,提供不同 的选择,针对相同的系统和部件提供不同的功能,可以说u s b 是外设发展的必然趋 势,其特性在于以下几点: 1 成本低 为了把外设连接到p c 机上,u s b 提供了一种低成本的解决方案。 2 ,热插拔 设备连接后可由u s b 自动检测,并由软件自动配置,完成后即可使用,无须用 户干预。 3 具有广泛的应用性 适应不同的设备,传输率从1 0 k b p s 到4 8 0 m b p s ,并支持同步传输、批传输、 控制传输和中断传输四种传输方式,可以对多个设备同时进行操作,最多可接收1 2 7 个外设。 4 有很高的容错性能 它具有事务处理错误检测机制,能够对有缺陷的设备进行认定,对错误的数据 进行恢复或报告。 5 外设能够由u s b 总线进行供电,并具有电源保护功能。 u s b 具有速度快、通用性好、扩展性强、功耗低、稳定、易开发等众多优点, 在实践中获得了广泛的应用,已成为p c 机的一种标准接口。u s b 总线的优点可以 总结如下: 1 方便终端用户的使用 电缆和连接器具有惟一的型号。 对终端用户隐藏了电气细节,例如总线终结。 外设可以自我识别,并可以自动完成配置和到驱动程序的功能映射 支持动态接入,并可以重新进行外设配置。 2 工作负荷和应用范围广 - 可以同时支持速度为几m b s 至几百m b s 的设备。 在同一套总线上可以同时支持同步和异步传输类型。 支持多连接,支持对多个设备的同时操作。 支持多达1 2 7 个物理外设。 在主机和设备上支持对多个数据和消息流的传输。 允许使用复合设备,即具有多个功能的外设。 具有较小的协议开销,因而总线利用率较高。 3 实现费用低廉 提供了十分经济的1 5 m b s 子通道。 为外设和主机中硬件的集成进行了优化。 可以用于开发许多价格便宜的外设。 所需的电缆和连接器价格低廉。 利用了商用技术。 4 同步带宽 可以为电话,音频信号提供确定的带宽和很小的时延。 同步载荷可以使用总线上的全部带宽。 5 同p c 工业协同作用 实现和集成时协议简单。 符合p c 即插即用体系结构。 对现存的操作系统接口性能产生了巨大影响。 6 灵活性 可以有很多不同大小的分组,并允许在一定范围内选择设备的缓冲区。 通过支持不同的分组缓冲区和时延要求,u s b 可以支持许多具有不同的数据 速率的设备。在协议中提供了用于控制缓冲区的流控功能。 7 ,稳定性 协议中包括了差错控制缺陷发现机制。 可以动态地插入和拔出u s b 设备。 支持对缺省设备的识别。 8 升级途径 u s b 体系结构可以升级,从而在一个体系中支持多个通用串行总线控制器。 出于价格低廉、安装简单,使用方便,基于u s b 的产品,据d a t a q u e s t 公司统 计结果显示,仅1 9 9 9 年全球已有1 亿多台u s b 设备售出,而这个数字到2 0 0 0 年又 增加到了2 亿5 0 0 0 万台,到2 0 0 1 年,百分之百的笔记本电脑和个人电脑都是通用 串行总线s b ) 兼容产品。2 0 0 3 年,与u s b 兼容的个人电脑的用户购买了近5 亿件 u s b 电脑外设。 6 1 4 2u s b 通信模型 简单地说,数据流发生在主机和u s b 设备之间,我们以常用的分层模型介绍 u s b 系统的数据流。如图1 2 所示。 _ _ 物理通信流 司z = 墨盘:串遵辑通信流 图1 - 2 u s b 数据流模型 主机分客户端软件( c l i e n ts w ) ,u s b 系统软件( u s bs y s t e ms w ) 和u s b 主控制器( h o s t c o n t r o l l e r ) 三层。设备分u s b 总线接口层( u s b b u s i n t e r f a c e l a y e r ) , u s b 设备层( u s bd e v i c el a y e r ) 和功能层( f u n c t i o nl a y e r ) 。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 系统软件 提供的编程接口操作对应的设备,而不是直接通过操作内存或i o 口来实现。所有 u s b 设备只有在被主机确认并配置后才可进入系统工作。它们实现各种功能,但对 主机都提供一个同样的接口。 在主机方有主控制器驱动h c d ( h o s tc o n t r o ld r i v e r ) 和u s b 驱动u s b d ( u s b d r i v e r ) 两个通信接口。主控制器驱动是对主控制器硬件的一个抽象,提供和u s b 系统软件之间的软件接口。不同种p c 的主控制器硬件实现并不一样,但有了h c d 。 u s b 系统软件可以不必理会各种h c d 具有何种资源,数据如何打包等问题。尤其 是h c d 隐藏了怎样实现根集线器的细节。对于主机而言,对根集线器的控制和对 一般u s bh u b 的控制完全一样。 u s b 驱动是客户软件和u s b 系统软件的接口,能让客户方便地对设备进行控 制和通信,是u s b 系统中十分重要的一环。实际上从客户软件的角度看,它不需要 关心u s b d 以下各层的具体实现情况。 7 1 4 3u s b 通信协议概述 u s b 的物理协议规定了在总线上传输的数据格式,一个全速的数据帧有1 5 0 0 字节,而对于低速的帧有1 8 7 字节。帧的作用是分配带宽给不同的数据传送方式。 一个最小的u s b 的数据块叫做包,包通常有同步信号,包标识,地址、传送的 数据和c r c 。包的i d 由8 位组成,其中后4 位是纠错位。根据包功能的不同,在 u s b l 1 中定义了以下4 类l o 种: 表1 - 1u s b 包的种类 t o k e no u t i ns o fs e t u p d a t a d 气t 0d 正a 1 h a n d s h a k e a c kn a ks 1 a u , s p e c i a l p r e 在u s b 2 0 中又增加了几种类型的包以满足高速传输的需要。其中d a t a 类型增 加了d a t a 2 和m d a t a ,h a n d s h a k e 类型增加了n y e t ,s p e c i a l 类型则增加了e r r , s p l i t ,p i n g ,r e s e i e d 。 事务是在主机和设备之间不连续地数据交换。一个事务通常由主机开始,一般 分三个阶段,第一阶段发送t o k e n 包,第二阶段是发送d a t a 包( 可以向上也可以向下) , 在数据包传送完之后,就会由设备返回一个h a n d s h a k e 包。 当客户端程序通过一个u s b 管道发送或接收数据时,它首先会调用w i n 3 2 a p l , a p i 会发送个i r p 到u s b 设备驱动程序。u s b 设备驱动程序的任务就是把客户 端的请求通过一个管道发送到外设合适的端点。为了实现这个任务,u s b 设备驱动 程序会递交请求给总线驱动程序,总线驱动程序可以把这些请求转变成事务,然后 将这些事务组合成帧在总线上传输。 2 1 串行总线的协议层 第二章串行总线协议层 串行通信协议分同步协议和异步协议。同步协议又有面向字符和面向比特以及 面向字节计数三种。 2 1 1 异步通信协议 本小节以起止式异步协议为例对异步通信协议进行介绍。 ( n _ 1 ) 个字符 莲襄莲鹰 望黑口 五丌了丌 啦耘奄停 入、耩基 石可丁而订而t 丁陌丌丽t 、 t 位额据 竺厂 h 厂一_ o 而f 陌r 陌而 幢 翱姆藏冉菁位玉兰幕擎嵩 o 位 1 6 位8 位 0 1 1 1 1 1 1 0a c1f c0 1 1 1 1 1 l o 开始标志地址场所控制场信息场校验场结束标志 帧信息的分段:由表2 2 可见,s d l c h d l c 的一帧信息包括以下几个场 ( f i l e d ) ,所有场都是从有效位开始传送。 1 s d l c h d l c 标志字符 s d l c h d l c 协议规定,所有信息传输必须以一个标志字符开始,且以同一个 字符结束。这个标志字符是0 1 1 1 1 1 1 0 ,称标志场( f ) 。从开始标志到结束标志之间构 成一个完整的信息单位,称为一帧( f r a m e ) 。所有的信息是以帧的形式传输的,而标 志字符提供了每一帧的边界。接收端可以通过搜索“0 i i l l l l 0 ”来探知帧的开头和结 束,以此建立帧同步。 2 地址场和控制场 在标志场之后,可以有一个地址场a ( a d d r e s s ) 和一个控制场c ( c o n 垃o d 。地址 场用来规定与之通信的次站的地址。控制场可规定若干个命令。s d l c 规定a 场和 c 场的宽度为8 位或1 6 位。接收方必须检查每个地址字节的第一位,如果为0 , 则后面跟着另一个地址字节;若为“l ”,则该字节就是最后一个地址字节。同理,如 果控制场第一个字节的第一位为0 ,则还有第二个控制场字节,否则就只有一个字 节。 3 信息场 跟在控制场之后的是信息场i ( h l f o 删撕o n ) 。i 场包含有要传送的数据,并不是 每一帧都j 必须有信息场。即数据场可以为0 ,当它为0 时,则这帧主要是控制命 令。 4 帧校验信息 紧跟在信息场之后的是两字节的帧校验,帧校验场称为f c ( f r a m ec h e e k ) 场或称 为帧校验序列f c s ( f r a m cc h e c ks q u e n c e ) 。s d l c h d l c 均采用1 6 位循环冗余校验 码c r c ( c y c l i cr e d u n d a n c yc o d e ) 。除了标志场和自动插入的0 以外,所有的信息 都参加c r c 计算。 实际应用时的两个技术问题: 1 “o ”位插入删除 如上所述,s d l c m d l c 协议规定以0 1 1 1 1 1 1 0 为标志字节,但在信息场中也完 全有可能有同一种模式的字符,为了把它与标志区分开来,所以采取了0 位插入和 删除技术。具体作法是发送端在发送所有信息( 除标志字节外) 时,只要遇到连续 5 个“1 ”,就自动插入一个0 ,当接收端在接收数据时( 除标志字节) 如果连续收 到5 个“l ”,就自动将其后的一个“o ,删除是,以恢复信息的原有形式。这种“o ,位的 插入和删除过程是由硬件自动完成的。 2 s d l c h d l c 异常结束 1 2 若在发送过程中出现错误,则s d l c h d l c 协议常用异常结束( a b o r t ) 字符,或 称为失效序列使本帧作废。在h d l c 规程中,7 个连续的“1 ”被作为失效字符,而在 s d l c 中失效字符是8 个连续的“l ”。当然在试销序列中不使用o ”位插入删除技术。 s d l c h d l c 协议规定,在一帧之内不允许出现数据间隔。在两帧之间,发送器可 以连续输出标志字符序列,也可以输出连续的高电平,它被称为空闲( i d l e ) 信号。 三、面向字节计数的同步协议 特点与格式:面向字节计数的协议的特点是以一个特殊字符表征一帧的起始, 并以一个专门字段来标明帧内的字节数。接受方可以通过对该特殊字符的识别从比 特流中区分出帧的起始,并从专门字段中获知该帧中随后跟随的数据字节数,从而 可确定出帧的终止位置。d d c m p 采用的帧格式如下: 表2 - 3 面向字节计数的同步协议的帧格式 8 位1 4 位2位8位8位8位1 6 位8 - 1 3 1 0 6 4 位1 6 位 格式中控制字符s o h 标志数据帧的起始。c o u n t 字段共有1 4 位,用以指示帧 中数据段中数据的字节数,数据段最大长度为8 ( 2 1 4 1 ) = 1 3 1 0 6 4 位,长度必须为字 节( 即8 位) 的整倍数,d d c m p 协议就是靠这个字节计数来确定帧的终止位置的。 d d c m p 帧格式中的a e k 、s e g 、a d d r 及f l a g 中的第2 位。它们的功能分别类似于 h d l c 中的n ( s ) 、n ( s ) 、a d d r 字段及p f 位。c r c l 、c r c 2 分别对标题部分和数 据部分进行双重校验,强调标题部分单独校验的原因是,一旦标题部分中的c o u n t 字段出错,即失却了帧边界划分的依据,将造成灾难性的后果。 由于采用字段计数方法来确定帧的终止边界不会引起数据及其他信息的混淆, 因而不必采用任何措施便可实现数据的透明性。即任何数据均可不受限制地传输。 u s b 总线也是一种面向字节计数的同步协议,在下一节里将对u s b 协议进行详细 介绍。 2 2u s b 总线的协议层 上节对串行总线通信协议进行了讨论,在本节当中将从字段( f i e l d ) 和包 ( p a c k e t ) 的定义开始。从底向上进一步地展示u s b ( u n i v e r a ls e r i a lb u s ) 协议。 接着是对不同事务( t r a n s a c t i o n ) 类型的包事务格式的描述。然后是链路层( l i n k l a y e r ) 流程控制( f l o wc o n t r 0 1 ) 和事务级别的故障恢复( f a u l tr e c o v e r y ) 。最后将 讨论复执同步化( r e t r ys y n c h r o n i z a t i o n ) ,超时干扰( b a b b l e ) 和总线活动丧失( l o s s o f b u sa c t i v i t y ) 的恢复。 2 2 1 字段和包 数据位被发送到总线的时候,首先是最低有效位( l s b ) ,跟着是下一个最低有 效位,最后是最高有效位( m s b ) 。在以后图表中的,包以下列形式给出,即包中单 个的位和字段从左到右的顺序就是它们通过总线的顺序。 一、同步字段 所有的包都从同步( s y n c ) 字段开始的,同步字段是产生最大的边缘转换密 度( e d g et r a n s i t i o n d e n s i t y ) 的编码序列。同步字段作为空闲状态出现在总线上,后 面跟着以n r z i 编码的二进制串“k i k j k j k k ”。通过被定义为8 位长的二迸制串, 输入电路以本地时钟对齐输入数据。同步字段是用于同步的机制,在以后图表当中 将不被表示。同步字段里的最后的2 位是同步字段结束的记号,并且标志了包标识 符p i d ( p a c k e ti d e n d f e r ) 的开始。 二、包字段格式 在后面将描述标记,数据和握手包的字段格式。包中位的定义是以未编码的数 据格式给出。为了清楚起见,在此不考虑n r z i 编码和位填充( b i ts t u f f i n g ) 的影 响。所有的包都分别有包开始s o p ( s t a r t - o f - p a c k e t ) 和包结束e o p ( e n d o f - p a c k e t ) 分隔符。包开始s o p 分隔符是同步字段的一部分。 1 包标识符字段 所有u s b 包的同步字段后都紧跟着包标识符( p d ) 。如图2 3 所示,包标识符 由4 位的包类型字段和其后的4 位的校验字段构成。包标识符指出了包的类型,并 由此隐含地指出了包的格式和包上所用错误检测的类型。包标识符的4 位的校验字 段可以保证包标识符译码的可靠性,这样包的余项也就能被正确地解释。包标识符 的校验字段通过对包类型字段的二进制的求反码产生的。如果4 个p i d 检验位不是 它们的各自的包标识符位的补,则说明存在p i d 错。 图2 - 3p i d 格式 主机和所有功能部件都必须对得到全部p i d 字段实行完整的译码。任何收到包 标识符,如果含有失败的校验字段,或者经译码得到未定义的值,则该包标识符被 假定是被损坏的,而且包的余项将被包接收机忽略( i g n o r e ) 。如果一个功能部件 ( f u n c t i o n ) 收到了包含了它所不支持的事务类型或方向的合法包标识符,则不必 应答。例如,只能输入的端口( i n - o n l y e n d p o i n t ) 必须忽略输出标记( t o k e n ) 。表 2 4 列出了包标识符类型,编码及其描述。 1 4 表2 - 4 p i d 类型 p i d 类型p i d 名 p i d 3 :0 】 描述 输出( o u t ) 0 0 0 1 b 在主机到功能部件的事务中有地址+ 端口号 输入( i n ) 1 0 0 l b 在功能部件到主机的事务中有地址+ 端口号 标记( t o k e n )帧开始( s o f ) 0 1 0 】b 帧开始标记和帧号 建立( s e t u p )1 1 0 1 b 在主机到功能部件建立一个控制管道的事务 中有地址+ 端口号 数据( d a t a )数据0 ( d a t a 0 )0 0 1 l b 偶数据包p i d 数据1 ( d a t a l )1 0 1 1 b奇数据包p i d 确认( a c k )0 0 1 0 b接收器收到无措数据包: 握手不确认(

温馨提示

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

评论

0/150

提交评论