(通信与信息系统专业论文)can总线的研究和设计.pdf_第1页
(通信与信息系统专业论文)can总线的研究和设计.pdf_第2页
(通信与信息系统专业论文)can总线的研究和设计.pdf_第3页
(通信与信息系统专业论文)can总线的研究和设计.pdf_第4页
(通信与信息系统专业论文)can总线的研究和设计.pdf_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

摘要 现场总线技术是当今自动控制领域最热门的技术之一,它是现场控制技术与 现代电子、计算机、通讯技术相结合的产物,现场设备的智能化及可互连和互操 作性,有助于现场总线控制系统进一步向分散化、智能化、网络化方向发展简 言之,现场总线技术的发展与应用,必将引起工业控制领域的一场革命。 c a n 总线是一种有效的支持分布式控制或实时控制的串行通信网络,与其 他现场总线相比,它具有独特的可靠性、实时性和灵话性等技术特点,可以而且 易于用户进行二次开发工作m j 。 作者首先简要介绍了现场总线,对c a n 和其2 0 b 协议进行了简单的分析。 本文的主要工作是用软件实现c a n 2 0 b 协议,并在其基础上扩展实现了c a n 控 制器的功能。作者提出了一种软件设计思想,给出了软件实现的流程图和状态转 换图,并设计了硬件实现的电路框图,最后作者给出了一个实际应用该芯片的参 考方案。并对整个论文进行了总结。 本文的创新之处主要有以下二个方面: i 在实现c a n 2 0 b 辨议的基础上,增加实现了以下5 个方面的功蘸: 对接收不同标识符的报文个数增拥至4 个。 收发报文的缓冲区( 邮箱) 增至6 个,且收发方式灵活。 滤波器仅设置为套就可以实现两种类型报文的滤波。 增加韵自测试功能便予节点自我进行功能验证。 远程帧处理方式更加灵活。 2 目前国内有关c a n 控制器设计的文献很少,而且是用汇编描述t 本文的 代码是用硬件描述语言完成的,且执行效率高,通用性强。 关键词现场总线;控制器局城网( c a n ) a b s t r a c t t h et e c h n o l o g yo ff i e l db u si so n eo ft h eh o t t e s tt e c h n o l o g i e si nt h ea u t o m a t i c c o n t r o lf i e l d i ti st h em i x e d p r o d u c to ft h ef i e l dc o n t r o lt e c h n o l o g ya n dm o d e m e l e c t r o n i c s ,c o m p u t e r , c o m m u n i c a t i o n ,t h ea b i l i t yo fi n t e l l i g e n c e ,c o n n e c t i v i t ya n d o p e r a t i o no ff i e l de q u i p m e n t s c a nh e l pt h ef i e l db u sc o n t r o l s y s t e md e v e l o p i n d i s t r i b u t i o n ,i n t e l l i g e n c ea n dn e t w o r k t oad e e p e rl e v e l i ns h o r t ,t h ed e v e l o p m e n ta n d a p p l i c a t i o no f f i e l db u sw i l lc e r t a i n l ye v o k e a ni n n o v a t i o ni nt h ei n d u s t r yc o n t r o lf i e l d c a ni sa na d v a n c e ds e r i a lc o m m u n i c a t i o np r o t o c o lf u rd i s t r i b u t e dr e a l - t i m e c o n t r o ls y s t e m sa n ds a m p l ef u ru s e r st od e v e l o p ,i th a sp a r t i c u l a rr e l i a b i l i t y , r e a l - t i m e t r a i ta n d f l e x i b i l i t yc o m p a r i n g t oo t h e rf i e l db u s e s t h ea u t h o ri n t r o d u c e st h ef i e l db u sa n dc a nb u sa tf i r s t ,t h e nd e s c r i b e si t s2 0b p r o t o c 0 1 t h em a i np u r p o s eo f t h i st h e s i si st or e a l i z et h ec a n 20 bp r o t o c o la n d e x p a n dt h en o d e s f u n c t i o n sb a s e do ni tan e ww a yt or e a l i z ec a np r o t o c o li n s o f t w a r ei sb r o u g h tf o r w a r d m e a n w h i l e ,t h es t a t e st r a n s f o r m a t i o np r o c e s s ,r e a l i z a t i o n c i r c u i t si nh a r d w a r ea n dt h e i rw o r kf l o wa r eg i v e n a tl a s t ,t h ea u t h o rp u tf o r w a r da n a p p l i c a t i o nm e t h o da b o u tt h i sc a n n o d ea n dm a k eac o n c l u s i o no nt h i st h e s i s t h e r ea r et w o s p e c i a lp o i n t si nt h i st h e s i s , 1 t h ea u t h o re n h a n c e st h ef u n c t i o n so fc a nn o d eb a s e do nt h ep r o t o c o lb yt h e f o l l o w i n ga s p e c t s : t h en u m b e ro f t h er e c e i v e dm e s s a g ew i t hd i f f e r e n ti di sa d d e dt o4 t h en u m b e ro f m a i l b o x si sd e s i g n e dt ob e6 ,t h ec o n f i g u r a t i o nm o d ei sf l e x i b l e t h ei dm a s ki sr e a l i z e do n l yw i t ho n es e to f f i l t e r s t h es e l f - t e s tm o d ec a nm a k ev e r i f i c a t i o no f n o d e b y i t s e l f n em o d et oh a n d l er e m o t ef r a m ei sm o r ef l e x i b l e 2 t h ed a t ao nc a nd e s i g na r e v e r yf e w , a n da r e r e a l i z e dw i t ha s s e m b l e l a n g u a g e ,b u tt h i st h e s i sa c c o m p l i s h t h es o u r c ec o d ew i t hh a r d w a r ed e s c r i b i n g l a n g u a g e w h i c hh a sh i g he x e c n m b l ee f f i c i e n c ya n de x c e l l e n tt r a n s p l a n t a t i o n k e y w o r d sf i e l db u s ;c o n t r o l l ma r e an e t w o r k 原创性声明 本人声明:所呈交的论文是本人在导师指导下进行的研究工作。 除了文中特别加以标注和致谢的地方外,论文中不包含其他人己发表 或撰写过的研究成果。参与同一工作的其他同志对本研究所做的任何 贡献均己在论文中作了明确的说明并表示了谢意。 签名:日期 本论文使用授权说明 本人完全了解上海大学有关保留、使用学位论文的规定,即:学 校有权保留论文及送交论文复印件,允许论文被查阅和借阅:学校可 以公布论文的全部或部分内容。 ( 保密的论文在解密后应遵守此规定) 签名翩虢诵节 日飙- g o o 影z :乏 卜海大学工学硕- f :论文绪论 第一章绪论 随着计算机技术、通信技术、网络技术及智能传感技术的发展,在工业控制 领域出现了一种新兴的控制技术,即现场总线。它是上述几种技术的结合,是当 今自动化领域技术发展的热点之一。它的出现,将使传统的控制系统无论在结构 上还是在性能上出现巨大的飞跃,可以说现场总线是控制领域的一场革命,它代 表了一种有突破意义的新的控制思想,将在丁业控制领域开辟一个新的时代。 1 1 现场总线及其产生的背景 现场总线是应用在生产现场,在微机化测量控制设备之间实现双向串行多节 点数字通信的系统,也被称作开放式,数字化,多点通信的底层控制网络。 现场总线控制系统既是一个开放通信网络,又是种全分布控制系统,是一项以 智能传感器,控制,- i i 算机,数字通信,网络为主要内容的综合技术p “。 在计算机数据传输领域内,长期以来使用r s 2 3 2 和c c i t t v 2 4 通信标准, 尽管它们被广泛地使用,但却是一种低数据速率和点对点的数据传输标准,无能 力支持更高层次的计算机之间的功能操作。同时,在复杂或大规模的应用( 如工 业现场或生产自动化领域) 中需采用传统星型拓扑结构【2 ,那么安装成本和介 质造价都将非常高昂;采用流行的l a n 组件及环型或总线型拓扑结构,虽然可 以减少电缆长度,但是增加的l a n 介质及相关硬件和软件又使其系统造价与星 型系统相差无几。所以在最低层次上的确需要设计出一种造价低廉而又能经受工 业现场环境的通信系统,现场总线( f i e l db u s ) 就是在这种背景下产生的。 t 1 2 现场总线的性能 随着计算机技术、通讯技术、集成电路技术的飞速发展,繁琐的现场连线被 单一简洁的现场总线网络所代替,系统设计灵活,设备维护简单,信号传输质量 也大大提高,为工业现场控制用户带来巨大好处。经过长时问发展,已形成f f 、 h a r t 、l o n w o r k s 、p r o f i b u s 及c a n 等多种现场总线协议,表1 1 比较了这 儿种现场总线的性能。 上海大学工学硕士论文 绪论 表1 1 现场总线性能对照 现场总线特性 f f h a r tp r o f i b u sl o n w o r k sc a n 应用范围仪表智能变送器p l c楼宇自动化、汽车 工业自动化等 o s i 网络层次 1 、2 、3 、71 、2 、7l 、2 、7 1 一一7 1 、2 、7 通讯双绞线、电电源双绞线双绞线、电力双绞线、 介质缆、光纤、信号线线、电缆、光纤、光纤 无线等无线等 介质访问方式令牌令牌、查询令牌、主从p p c s m a位仲裁 纠错方式c r cc r cc r cc r cc r c 最大节点个数 3 21 51 2 82 4 01 1 0 优先级有有有有有 本安性是是是是是 开发工具育有有有 1 3c a n 总线及其特点 c a n 总线( c o n t r o la r e an e t w o r k ,控制器局域) 最早有德国b o s c h 公司推 出,用于汽车内部测量与执行部件之间的数据通信协议。1 9 9 3 年c a n 已成为 国际标准i s 0 1 1 8 9 8 和i s 0 1 1 5 1 9 0 。 在广泛的工业领域中,c a n 总线可作为现场设备级的通信总线,与其他的总 线相比,具有十分优越的性能。 i 结构简单,成本低,仅通过两根线c a nr x ,c a nt x 与外部相连。 2 采用通讯数据块编码,可实现多主工作方式,实现广播式发送。 3 采用非破坏性的基于优先权的总线仲裁技术,总线利用率极高。 4 报文采用短帧结构,占用总线时间不长,通信的实时性强。 5 信息发送遭到破坏可自动重发,信息传输的可靠性高。 6 每帧信息都有c r c 校验及其它检错措施,保证了数据出错率极低。 7 节点配置灵活,可扩展性好,检错能力强,可在高噪声干扰环境中工作。 8 通讯介质可采用双绞线,现场布线和安装简单,易于维护,经济性好。 总之,c a n 总线具有实时性强、可靠性高、结构简单、价格低廒等优点p 】, 克服了传统的工业总线的缺陷,是工业测控系统通信一种有效的解决方案。 上海大学 。学硕士论文 1 4c a n 总线的发展状况和前景 c a n 已经成为全球范围内最重要的总线之一,甚至领导着串行总线。在 1 9 9 9 年接近6 千万个c a n 控制器投入应用,2 0 0 0 年市场销售超过l 亿个 c a n 器件。 尽管c a n 协议已经有1 5 年的历史,但它仍处在改进之中。从2 0 0 0 年开 始一个由数家公司组成的i s o 任务组织定义了一种时间触发c a n 报文传输的 协议。b e m dm u e l l e r 博士、t h o m a sf u e h r e rb o s c h 公司人员和半导体工业专家 学术研究专家将此协 义定义为时间触发通讯的c a n ( t t c a n ) ,计划在将来 标准化为i s 0 1 1 8 9 8 4 【1 3 1 。t ? c a n 将为c a n 延长5 1 0 年的生命期。谁也无法 预料c a n 总线系统在下一个1 0 1 5 年内的发展趋势。这里需要强调一个现实: 近几年内美国和远东的汽车厂商将会在他们所生产汽车的串行部件上使用 c a n 。另外大量潜在的新应用( 例如娱乐) 正在呈现:不仅可用于客车也可用 于家庭消费,同时结合高层协议应用的特殊保安系统对c a n 的需求也正在稳健 增长。 1 5 本文的主要研究工作 本课题的主要工作是用硬件描述语言v e r i l o gh d l 实现c a n 2 0 b 协议,用 n c v e r i l o g 进行编译仿真,分析时序,仿真通过后,在s y n o p s i s 上进行d c 综合。 在实现c a n 2 0 b 协议的基础上,本课题增加实现了以下5 个方面的功能: 1 增加了数据链路层的功能,对节点一次初始化可以最多接收4 种不同标识 符的报文( 一般只能接收一种) 。 2 收发报文的缓冲区( 邮箱) 增至6 个,且收发方式灵活。初始化后,只需 设置发送控制寄存器,就可以自动对4 种报文进行发送,c p u 不再参与。 3 对接收报文的滤波可以自动选择,无需用户设置滤波模式,仅用套滤波 器就可以实现对两种不同类型的报文( 标准帧和扩展帧) 进行滤波。 4 支持自测试功能,支持c a n 节点全部的功能性自我测试。 5 在远程帧处理上,增加了控制模式,用户可以选择自动响应远程帧或者仪 作为数据帧处理( 不发送相应的数据帧) 。 上海大学工学硕士论文 奉文共分六章,第一章简单叙述了现场总线及c a n 总线的相关知识。第二 章简要分析了c a n 2 0 b 协议,熟悉了相关概念和原理。在第三章中,作者提出 了一种新的软件设计思想,分别对c a n 节点的数据链路层和物理层进行了阐述, 并且对每一个子程序,文中给出了详细的设计流程以及状态转换图。第四章是作 者对c a n 节点进行的硬件电路设计部分,在实现c a n 2 0 b 协议的同时,增加 实现了5 项功能。将整个c a n 节点分为九个模块,对每一个模块均给出了较为 详尽的电路实现和工作过程,并对位定时和同步电路,错误管理单元,c a n c o r e 给予了重点阐述。第五章给出一种c a n 控制器的应用参考方案。第六章对本论 文的工作进行了总结,并对今后可以开展的研究工作进行了展望。 卜海大学工学硕士论文c a n 总线通信协议简介 第二章c a n 总线通信协议简介 2 1c a n 协议的通信规则 c a n 总线基于下列5 条基本规则进行通信协调的: 1 总线访问c a n 控制器只能在总线空闲状态期间开始发送,所有c a n 控制器同步于帧起始的前沿( 硬同步) 。 2 仲裁若有两个或更多的c a n 控制器同时发送,总线访问冲突通过仲 裁场发送期间位仲裁处理方法予以解决f ”。只有发送具有最高优先权帧的节点可 以不受影响继续发送,成为主站,其余的变为接收节点。这种解决总线访问冲突 的机理是基于竞争的仲裁,它根据标识符和r t r 位来识别帧的优先级。较高优 先级的标识符具有较低的二进制数值。如果标识符相同,则数据帧的优先权高于 远程帧。除了当总线释放时,可以启动发送外,还存在着解决冲突的如下原则【8 】: _ 在个系统中,每条信息必须以唯一的标识符,从高位发送。对于标 识符发最高7 位必须不能全部为“隐性”( 标准帧是其i d l 0 - - i d 4 ,扩展 帧是i d 2 8 一i d 2 2 ) 。 一具有给定标识符和非零d l c 的数据帧仅可由一个节点启动。 _ 远程帧仅可以全系统内确定的d l c 发送,该数据长度码为对应数据帧 的d l c 。具有相同标识符和不同d l c 远程帧的同时发送将导致不能解 决的冲突,系统可能会昭入死视。 3 编码解码帧起始、仲裁场、控制场、数据场和c r c 序列使用位填充 技术进行编码。其余的位场以及出错帧,超载帧具有同定的形式,刁i 使用位填充 方法进行编码和解码。位流按照n r z 进行编码,即位电平要么为“隐性”,要么 为“显性”。 4 出错标注当检测到错误时,检测出错条件的c a n 控制器将发送一个 出错标志,出错标志破坏位填充和损坏固定位场的形式。发送出错标志以后,每 个c a n 控制器都在监视总线直至检测到一个显性电平到隐性电平的跳变,此时, 每个c a n 控制器就发完了出错标志,并且所有c a n 控制器开始发送其余7 个 隐性位。 5 ,超载标注一些c a n 控制器发送一个或多个超载帧以延迟。f 一个数据 上海大学工学痂i 士论文 c a n 总线通信怫议简介 帧或远程帧的发送。虽然超载帧和出错帧具有相同的格式,但对它们的处理却不 同,在间歇场期间进行的发送超载帧不能初始化任何先前的数据帧和远程帧的重 新发送。超载帧的发送必须起始于所期望间歇场的第一位,在期望的间歇场期间, 重新激活为显性位的超载帧的发送在该事件之后开始【2 】。 如果发送超载帧的c a n 控制器检测到其同定格式的任何偏离,它将发送 一个出错帧。 2 2c a n 总线的电气特性 平均电压电半u 订需厂 j 卜一 隐性位显性位隐性位 。 间t 图2 1 总线位的数值表示 c a n 总线的通信线路由两根导线组成,分别为c a nh 和c a nl ,静态时 是2 , 5v 。这两根导线也就是c a n 网络中的总线,网络中所有的节点都挂接在该 总线上,并且都通过这两根导线交换数据。 总线上某一时刻出现的数值由两根导线上电压v c a nh 和v o a nl 的差值表 示。该差分电压v 埘可表示“显性”和“隐性”两种互补的逻辑数值。如图所示。 差分的电压令c a n 网络即使在一条信号线断开或者在噪声极大的环境中也能够 工作,只需要一对双绞线,差分的c a n 输入就能够很有效地抵偿噪音,只需要 该噪音在通常地波段里3 l 。当总线上同时有“显性”位和“隐性”位发送时,节点发 送驱动电路的设计使得总线值表现为“显性”。在总线空闲位期间,总线为“隐性”, “隐性”状态可以由“显性”改写。 上海大学工学硕士论文c a n 总线通信协议简舟 2 3c a n 总线的分层结构 图2 2 c a n 的分层结构 c a n 遵从o s i 模型,只采用了o s u i s o 模型全部七层中两层:数据链路层 和物理层 2 5 。这两层一般固化在专用的c a n 总线接口芯片和微处理器中,c a n 总线系统的开发者在软件上主要进行应用层的工作。 2 3 1 数据链路层 按照i e e e 8 0 2 2 和8 0 2 3 标准,数据链路层又划分为: 逻辑链路控制子层( l l c ) 媒体访问控制子层( m a c ) 逻辑链路子层( l l c ) 完成接收滤波,超载通知,恢复管理的功能。 媒体访问控制子层( m a c ) 完成数据封装,御装帧编码( 填充解除填充) 媒 体访问管理错误检测出错标定应答串行化解除串行化。 媒体访问控制子层( m a c ) 按照i e e e 8 0 2 3 标准划分为发送和接收两个完 全独立的部分,如图2 3 所示。接收部分和发送部分的具体功能参见文献 2 5 1 。 2 3 2 物理层 物理层又划分为以下几个部分: 1 物理媒体附属装置p m a ,媒体相关接口m d i 和物理信令p l s ,主要实 现位编码解码位定时、同步的功能【2 6 】。 上海大学:【学硕士论文 c a n 总线通信协议简介 l l c 子层 对l l c 予层的访问t +i f 发送数据封装if 接收数据卸装f jt 1 发送媒体访问管删l 接收媒体访问管蚓 对物理接口访问 +l i 发送数据解码li 接收数据解码fi 物理层信令 图2 3 媒体访问控制功能 2 4c a n 报文格式与类型 报文的传送是由4 种不同类型的帧表示和控制【2 0 1 : 数据帧:携带数据由发送器至接收器; 远程帧:总线节点发出远程帧,请求发送具有相同标识符的数据帧; - 错误帧:任何节点检测到总线错误就发出错误帧; - 超载帧:超载帧用以在先行的和后续的数据帧( 或远程帧) 之间提供一附加 的延时。 1 数据帧 数据帧由7 个不同的位场组成:帧起始、仲裁场、控制场、c r c 场、a c k 场和帧结束,如表2 1 所示。 表2 1 数据帧的构成 在c a n 2o a 中只规定了标准数据帧,而在2 。o b 中则规定了标准和扩展两种格 式的数据帧。 帧起始它标志数据帧和远程帧的起始,由一个单独的“显性”位组成。只 在总线空闲日寸,才允许节点 始发送。 上海大学工学硕士论文c a n 总线通信协议简介 仲裁场在标准数据帧中,仲裁场包括11 位标识符和远程发送请求位 r t r ,而在扩展数据帧中,仲裁场由2 9 位标识符和替代远程请求位s r r 、标识符 扩展位i d e u 远程发送请求位r t r 组成。 r t r 位:该位在数据帧里必须为“显性”,而在远程帧里必须为“隐性”。 i d e 位:在扩展帧中,i d e 为1 ,而在标准帧中,i d e 为0 。 s r r 位:替代远程请求位总是一个“隐性”位。 控制场控制场由6 个位组成,在标准格式里包括数据长度码d l c 、“显 性”位i d e 以及保留位r o ,而在扩展格式里控制场包括数据长度码d l c 和两个将 来作为扩展用的保留位f 1 和r 0 。 d l c :数据长度代码d l c 指示了数据场中字节数量,可以为0 到8 ,其他的数 值不允许使用。数据长度代码为4 个位,在控制场里被发送。 数据场数据场由数据帧中的所发送的数据组成。它可以为o 8 个字 节,每字节包含了8 个位,首先发送高位。 c r c 场c r c 场包括c r c 序列和c r c 界定符( c r c d e l ) 。 c r c 序列:由循环冗余码求得的帧检查序列最适用于位数低于1 2 7 位( b c h 码) 的帧。为进行c r c i ;r 算,被除的多项式系数由无填充位流给定,组成这些位 流的成分是:帧起始、仲裁场、控制场和数据场( 假如有) ,而1 5 个最低位的 系数是0 ( 用于存放余数) 。将此多项式被下面的多项式除( 其系数以2 为模) : x 1 s + x 4 + x 1 0 + x8 + x7 + x4 + x 3 + 1 这个多项式除法的余数就是发送到总线上的c r c 序列。 c r cd e :该界定符必须为“隐性”位。 应答场应答场长度为2 个位,包含应答间隙a c k s l o t 和应答界定符 a c kd e l 。应答场组成如图2 4 所示。 c r c 场 i a c k 场 l 帧结束 厂 厂_ ;c r c d e l a c ks l o t a c k d e l 图24 应答场组成 帧结束每个数据帧和远程帧均由一序列标志界定。这个序列标志由7 9 上海大学j 二学硕士论文c a n 总线通信协议简介 个“隐性”位组成。 2 远程帧 通过发送远程帧,作为某数据接收器的节点通过其资源节点对不同的数据传 送进行初始化设置。 表2 2 远程帧的构成 远程帧由6 个不同的位场组成:帧起始、仲裁场、控制场、c r c 场、应答 场、帧结束。与数据帧相反,远程帧的r t r 位是“隐性”的。它没有数据场,数 据长度码的数值是不受制约的( 可以标注为容许范围里o 8 的任何数值) ,此数 值是相应于数据帧的数据长度码。 3 ,错误帧 错误帧由两个不同的场组成。第一个场是做为不同节点提供的错误标志的叠 加,第二个场是错误界定符。 卜堂型型l 砷掣 图2 5 错误帧构成 有两种形式的错误标志,主动错误标志和被动错误标志。主动错误标志由6 个连续的“显性”位组成,被动错误标志由6 个连续的“隐性”的位组成,除非被其 他节点的“显性”位改写。 错误界定符包括8 个“隐性”的位。错误标志传送了以后,每一个节点就开始 发送“隐性”位,并一直监视总线直到检测出一个“隐性”的位,就开始发送剩余的 7 个“隐性”位。 4 超载帧 超载帧由超载标志和超载界定符这两个位场组成,如图26 所示: 上海大学f 学硕士论文 c a n 总线通信协议简介 图2 6 超载帧构成 超载标志是由6 个“显性”位组成。由于它的形式破坏了间歇场的固定形式, 因此所有其他节点都会检测到一个超载条件,并且也开始发送超载标志。 超载界定符由8 个“隐性”位组成。超载标志传送以后,每个节点一直监视总 线直到检测出“显性”到“隐性”跳变,此时,每个节点完成了超载标志的发送,且 各个节点均开始发送剩余的7 个“隐性”位。 5 帧问间隔 数据帧( 或远程帧) 与其前面帧的隔离是通过帧间空间实现的,超载帧与错 误帧之前没有帧间间隔,多个超载帧之间也不是由帧间间隔隔离的。 恸 帧间间隔 帕 叫卜一 图2 7 “错误被动”的帧间间隔 帧帧间间隔 乖贞 图2 8 非“错误被动”的帧间问隔 帧间间隔包括间歇场、总线空闲的位场。如果“错误被动”的节点己作为前 报文的发送器时,则其帧间隔除了间歇、总线空闲外,还包括挂起传送的位场, 如图2 7 所示。对于不是“错误被动”的节点,或者此站已作为前一报文的接收器, 其帧间间隔如图2 8 所示。 间歇场由3 个“隐性”位组成,间歇期间,所有的站均不允许传送数据帧或远 程帧,需要做的是标示一个超载条件。 总线宅剐的时间是任意的。此时总线是开放的,任何需要发送信息的节点郝 可以访闽总线。发送其他信息期间,有搬文被挂起,对于这样的报文,其传送起 上海大学工学硕士论文c a n 总线通信协议简介 始于间歇之后的第一个位。总线上检测到的“显性”的位可被解释为帧起始。 挂起传送位场由8 个“隐性”的位组成。“错误被动”的节点发送报文后,就在 下一报文开始传送之前或总线空闲之前发出8 个“隐性”的位跟随在间歇场的后 面。如果与此同时另一节点开始发送报文( 由另一节点引起) ,则此节点就作为 这个报文的接收器。 2 5c a n 的错误检测与管理机制 2 5 1c a n 的错误类型及其检测方法 在通信系统中,任何有误的信息都应该被拒收。为了使信息能准确无误的到 达接收端,有效地检测出传输中可能发生的错误,并使系统采取相应的纠错措施, 建立一套完善的错误检测与管理机制是非常必要的。c a n 内部含有的错误检测 和管理模块可以提高数据通信的可靠性,保证实时通信。 c a n 有五种类型错误。 l 、循环冗余校验错误( c r ce r r o r ) 接收器对接收的报文均采用循环冗余校验, 若汁算结果与发送器的c r c 计算结果不等,贝检测到一个c r c 错误。 2 、位填充错误( b i ts t u f f e r r o r ) 从帧起始,仲裁场,控制场,数据场( 如果有 的话) 到c r c 序列均采用位填充规则进行编码。如果连续检测到6 个极性 相同的位,节点就检测到一个位填充错误。 3 、位监测错误( b i tm o n i t o r i n ge r r o r ) 发送器在发送报文时,逐位监测总线, 把发送的位值同监视到的总线位值比较,不相同时就出现一个位错误。 4 、应答错误( a c ke r l o r ) 发送节点在在a c k 间隙期间,未检测到显性位, 则表明有一个应答错误。 5 、帧格式错误( f o r me r r o r ) 当一个固定形式的位场( 帧起始,c r c 界定符, a c k 界定符,帧结束) 中含有一个或多个非法位,就检测到一个格式错误, 但如果检测到帧结束的最后一位为显性位时,当作帧起始,而不认为是格式 错误。 上海大学工学硕士论文 c a n 总线通信协议简介 2 5 2c a n 的故障界定 对错误进行定位,可以区别短暂的干扰和永久性故障,减少对总线活动的影响, 保证信息的可靠传输与实时通信。为了界定错误,在每个总线单元中都有两个计数 器,发送计数器t e c 和接收计数器r e c 。两个计数器的值决定了节点的错误状态: 警告,主动错误节点,被动错误节点和脱离总线状态。主动错误节点可咀正常参与 总线通讯并在检测到错误时发出主动错误标志,被动错误节点不能发送主动错误标 志,它也能够参与总线通讯并在检测到错误时发出被动错误标志后,处于等待状态。 两个计数器的值是按照c a n 2 b 协议的8 条规则变化的。 接收计数器r e c : 1 、接收节点检测到一个错误,r e c 加l 。但在发送主动错误标志或过载标 志间所检测到的错误为位错误时,r e c 不加l 而加8 。 2 、发送完出错标志以后,接受节点检测到的第一位是“显性”位时,r e c 加 8 。 3 、在发送主动错误标志,被动错误标志或过载标志以后,a 当检测到第1 4 个连续的“显性”位后:或b 检测到第8 个跟随被动错误标志的连续的“显 性”位以后;或c 在每一个附加的8 个连续“显性”位顺序之后,r e c 加8 。 4 、接收节点在成功接收一个报文后( 直到a c k 间隙都没有错误且成功发送 了应答位) ,如果a ,r e c = 0 ,则r e c 保持;b 1 r e c 1 2 7 ,则r e c 减1 ;c r e c 1 2 8 ,则r e c 设置一个介于1 1 9 到1 2 7 之间的值。 发送计数器t e c : 1 、发送节点发送一个错误标志时,t e c 加8 ,除非出现以下两种情况,t e c 的值不变:a 发送节点为错误被动节点,并检测到一个应答错误;b ,发送 节点因为填充错误而发送错误标志。 2 、发送节点在发送主动错误标志或过载标志间所检测到的错误为位错误 时,t e c 加8 。 3 、在r e c 中3 的情况下,t e c 加8 。 4 、发送节点在成功传送一个报文后( 指收到应答信号f 1 直到帧结束都没 有错误) ,t e c 减1 ( 除非已经为0 ) 。 上海大学工学硕士论文 c a n 总线通信协议简介 2 6 同步 2 6 1 位时间 c a n 报文中的每一个位时间都是由分开,不交叉的同步段、传播段、相位 缓冲段1 和相位缓冲段2 等四个时间段组成,如图2 9 所示: l同步段传播段相位缓冲段1相位缓冲段2 jl 采样点 图2 9 位时间的构成 同步段:用于同步总线上不同的节点,这一段内要有一个跳变沿。 传播段:用于补偿总线上信号传播时间和电子控制设备间的延迟时间。 相位缓冲段1 和相位缓冲段2 :用于补偿边沿阶段的误差。缓冲段i 可在重同 步时被拉伸,用于补偿跳变出现在同步段之后引起的正相沿误差及振荡器容差。 缓冲段2 可在重同步时被缩短,用于补偿跳变沿出现在同步段之前引起的负相位 误差及震荡器容差。 采样点:采样点是读总线电平并解释各位的值的个时间点。 2 6 2 同步 同步包括硬同步和重同步两种。 硬同步仅发生在报文的开始。硬同步后,位时间由每个定时逻辑单元从同步 段重新启动。因此,硬同步强迫引起硬同步的边沿处于重新启动位时间的同步段 内。 重同步发生在报文位流发送期间,以补偿个别c a n 控制器振荡频率的变化 以及由于一个发送器转至另一个发送器引入的变化。重同步的结果是时间段1 被 延长或时间段2 被缩短,这两个时间段的延长或缩短的总和上限由重同步跳转宽 度s j w 给定。当引起重同步沿的相位误差值小于或等于s w 时,重同步的作用和 硬闽步相同;当相位误差值大于s j w ,若相位差为正对,时间段1 被拉仲的长度 数为s j w ,若相位差为负时,时间段2 被缩短的长度数为s j w 。 卜海大学上学硕士论文c a n 总线通信协议简介 硬同步和重同步执行以下同步规则: 一个位时间只能进行一次同步。 总线空闲时,隐性位跳变为显形位时,执行硬同步。 采样值前后不同,才将下一个沿用于同步。 隐性位跳变为显性位用于同步时,假如隐性位到显性位的相位误差为正 时,发送显性位的节点不发生重同步。 沿相位误差e 由相对于s y n c s e g 边沿的位置给定。以时间份额量度。相位 误差的符号定义如下: e = 0 ,若边沿位于s y n c s e g 内; e 0 ,若边沿位于采样点前; e 0 ,若边沿位于采样点后。 当引起重同步的边沿相位误差的幅值小于或等于重同步跳转宽度的编程 2 7 本章小结 本章首先介绍了c a n 总线的技术特点及其发展前景,然后重点讲述了c a n 的通信协议,着重分析了c a n 总线的通信规则,电气特性,分层结构以及位定 时与同步技术。 圭童查竺三兰竺主笙兰 坠竺堡鲨塑苎竺壅墨 _ - _ _ _ _ 第三章c a n 协议的软件实现 c a n 协议的软件实现代码和测试文件均用硬件描述语言v e r i l o g h d l 编写, 在n c _ v e r i l o g 上编译仿真,使用上华0 , 6 u r n 的工艺库迸行d c 优化综合,再用 p t 进行了静态时序分析。 3 1 相关寄存器位的说明 s t u f fb i t _ c n t 2 :0 :用于位填充的计数器。 a d d s t u f f b i t :发送时的添加位填充信号。 d e _ s t u i fb i t :接收时的解除位填充信号。 a r b i t :仲裁丢失。10st e r r :错误。 s e n de r r :发送出现错误。 r e ee r r :接收出现错误。 c :e 是一个错误标志位,当e r f l 时,e 置位。 e r r o rp a s s i v e :错误被动。 a c k :应答。 b i t s t u f f e n :位填充信号有效。 b i t c n t t x :发送位流计数器,发送时应用于各个需要计数的位场。 b i t _ c a t :接收位流计数器,接收时应用于各个需要计数的位场。 r x e r r o r n e x t s t a t e :一个6 位的来自错误管理单元的信号,用来判定错误的 状态。 r x _ f r a m e _ e r r o r :接收主动错误帧状态。 r x _ e r r o rd e l :接收主动错误界定符。 r x _ e r r o r _ d e l _ e n d :接收主动错误界定符的最后一位。 r xo v e r l o a df r a m e :接收超载帧状态。 r x _ o v e r l o a dd e l :接收超载界定符。 r xp a s s i v ef l a m ee r r o r :接收被动错误帧状态。 r x a ) a s s i v ee r r o r _ f l a g :接收被动错误标志。 r x a a s s i v e e r r o r d e h 接收被动错误界定符。 上海大学工学硕士论文 c a n 协议的软件实现 i x p a s s i v ee r r o rd e l 一e n d :接收被动错误界定符的最后一位。 i xi n t e r m i s s i o n :接收间歇场。 t x e r r o r n e x ts t a t e :一个6 位的来自错误管理单元的信号,判定错误的状态。 戗f r a m ee l t o r :发送主动错误帧状态。 t ) ( e r r o rd e l :发送主动错误界定符。 t xe r r o rd e le n d :发送主动错误界定符的最后一位。 t xo v e r l o a df r a m e :发送超载帧状态。 o 【o v e r l o a dd e l :发送超载界定符。 t xp a s s i v e :发送被动错误帧状态。_ f r a m e e r r o r i x _ _ p a s s i v ee r r o r _ f l a g :发送被动错误标志。 仅p a s s i v e e i r o rd e l :发送被动错误界定符。 i n t e r m i s s i o n :间歇场。 3 2 数据链路层的软件实现 软件实现c a n 不像协议规范中规定的那样分层比较明确,它是将l l c 子层 和m a c 子层结合一起来实现的。 3 2 1l l c 子层的软件实现 通过屏蔽滤波寄存器对接收的i d 和邮箱r a m 的验收i d 码进行比较,决 定是否接收这一帧,该验收码可以由微控制器预先写入r a m 中。 如果有新的报文进来,而接收缓冲器不空,则发送超载帧,最多可产生2 个超载帧,以延迟下一个数据帧或远程帧。 对于发送时丢失仲裁或被错误干扰,重新发送该帧。 3 2 2m a c 子层的软件实现 i 发送部分 a 发送数据封装 要发送的报文放在片内r a m 中,发送时直接从r a m 中读出。 上海大学工学硕士论文c a n 协议的软件实现 c r c 计算是在发送的每个位时进行计算的。 m a c 帧是在发送过程中直接构成的。 b 发送媒体访问管理 调用接收一位子程序,监昕总线,等待总线空闲时,开始发送过程。 m a c 帧是一位位发送的,即可实现m a c 帧的串行化。 位填充由一个子程序完成,s t u 时i t c n t 的值为5 时( 从1 计算) ,添加位填 充信号a d ds t u f fb i t = l ,即对发送位流进行位填充。 寄存器a r b i tl o s t 为i 时表示仲裁丢失,发送节点就退出仲裁并转入接收 方式。 错误检测是通过判断寄存器e r r 位来实现的,s e n de f t 和r e c e r r 有一个为 1 ,e r r 就为1 。e r r 为1 时出现错误,然后根据e r r o rp a s s i v e 位来确定是发送主动 错误标志还是被动错误标志。 在应答间隙发送节点检测应答位,如果寄存器a c k 的值为1 ,则有应答, 即c a n 网络中至少有一个节点正确接收到一帧;否则没有应答。 如果检测到帧间间隔有“显性”位,就发送超载帧。 i i 接收部分 a 接收媒体访问管理 从c a n 总线上接收位流,是位一位进行的。 解除填充位是利用也是利用寄存器s t u f f _ b i t _ c n t 的值进行处理的,当其值 为5 时,下一位即为填充位,此时解除填充位信号d e s t u f f b i t 为1 ,只对这一位 进行检测并丢弃掉,不输入到m m u 中,从而实现填充位解除。 错误检测是通过判断状态寄存器e r r 的值进行的,为i 时表明有错误,否 则没有出现错误。 在接收到c r c 界定符后,根据接收数据的正确与否来决定发“隐性位”还 是“显性”位作为应答。 有新的报文来时,如果接收缓冲器不空,发送超载帧。 b 接收数据卸装 在接收数据过程中,只将与l l c 帧对应的信息存入接收缓冲器。 数据链路层软件实现的具体过程主要包括发送帧子程序,接收帧子程序,发 卜海大学上学硕士论文c a n 协议的软件实现 送一位子程序和接收一位子程序,以及接收错误帧处理子程序和发送错误帧处理 子程序。 3 2 2 1 发送帧子程序 数据帧或远程帧按照c a n 协议规定的格式由软件控制进行发送,其流程如 图3 1 所示。要发送的标识符i d 、s r r 位、r t r 位、i d e 位、数据长度码d l c 和数据存放在r a m 中,再调用发送一位子程序一位一位发送。 初始化c a n 发送前应执

温馨提示

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

评论

0/150

提交评论