注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

品茗,设计的快乐

坚持不仅仅是一种习惯,更是一种人生准则。

 
 
 

日志

 
 
关于我

从事智能建筑系统方案、设计规划(包括方案创意、初步设计、深化施工图设计),已完成设计作品:廊坊(香港)嘉仕丽数码、北京奥体中心、内蒙古体育馆、内蒙古广播电视传媒信息大楼、内蒙古博源大酒店、内蒙古电子信息职业技术学院等. 资料共享:http://yunpan.cn/cfYFAHYabFBQ4 (提取码:41fa) 楼宇自控资料:http://yunpan.cn/cfYFHxd7jcMLR (提取码:dd78)

网易考拉推荐

EIB 与 LCN 报文结构的分析  

2015-12-27 14:39:09|  分类: 转载 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
                                 作者:  StD. Dipl.-Ing.  Karl Mittnacht(德国卡尔思鲁尔科技应用大学,电子系主 任,硕士工程师)
                                            Prof. Dr. Rainer Gerten(德国曼海姆科技应用大学,教授,博士)
您是否也有过这样的疑问,一个报文到底是如何构成的和如何被传递的呢?下 文将就这个问题通过 EIB 和 LCN 两种总线技术进行比较分析,对这些多主总线 系统中有趣的细节问题进行进一步的探讨。 
比特和字节 
我们都知道,计算机只能对 2 个电平状态进行区分和处理:低电位和高电位, 即 0 和 1。这样的一个信息单位我们称之为比特。当人们需要传送大量信息的 时候,必须连贯的将这些独立的比特信号依次发送出去。 人们一般将 8 个比特信息列为一个组,并命名为 1 个字节。一个电文通常是由 很多字节组成的,这两个总线系统虽然都支持不同长度的电文的发送,但一般 以 8 字节的报文为主。 
为了使接收方得知一个字节开始传送,必须在字节前增加一个起始比特。同 样,为了使被传送的字节最后一位与起始比特区分开来,人们又在该字节的末 尾由增加了一个短暂的间歇时间,做为终止比特。参见图 1(LCN 报文结构)和 图 2(EIB 报文结构)。 
如图所示:在 9600Bit/s 传送速度下,LCN 系统传送一个字节(起始比特+字 节+中止比特=10 比特)占用时间为 1.04ms,而 EIB 系统在每个字节传送结束 后又增加了一个校验比特和 2 个比特的间歇时间,因而需要占用 13 个比特的空 间来完成 1 个字节的有效传送,耗时 1.352ms。 
仲裁法则: 
为了在总线中同一时刻只能允许一个模块发送信息,总线中的所有成员必须协 调一致。每个总线成员在发送信息前,总是先监测总线是否空闲。当总线空闲 时间大于 2ms (EIB: >5ms)时,才能允许该模块发送信息。其他成员将立即了 解总线的工作状态并继续等待,直到总线再次空闲下来。这个原理很简单,在 95%的情况下都是如此运行的。 
假设当两个成员在同一个时刻都要求向总线发送数据的情况下,会发生什么事 情呢?这两个成员在开始阶段并不冲突,一个比特接一个比特的发送报文,但 过不了多长时间,总线中将同时传送 2 个不同的比特:冲突产生了。每个发送 模块均具备一个缓冲区,在这里对正在发送的比特和总线实际状态比特值进行 比较:突然间产生一个不一致的结果。协议原则为此做出了一个明确的定义:0 比特(低电平)优先于 1 比特(高电平)。这样,刚才发送 1 的那个成员将自 动中止报文的发送,而发送 0 的那个成员将不收到任何影响,继续工作。 
基于这个原因,EIB 在报文的起始位置增加了一个表示优先级别的字节,使用 了其中的 4 个比特。在这 4 个比特中,0 比特越多,优先级就越高。一共可以 组成 16 个级别。但这个解决方案存在着一个美丽的失误:它仅仅是在两个报文
同时要求发送时才能发挥作用,而 20 个电文中,有 19 个是不存在冲突的:谁 已经占用了总线,谁将保留总线的优先权-这个优先级的设置实际上没多大实 际作用。弊大于利。 
因此 LCN 在发送报文的第一个字节直接放入了 8 比特的模块序列编号,报文优 先级别的设置取决于等待总线休闲的时间。普通的报文标准等待时间为 1.9ms,之后才有资格向总线发送数据。当某个成员需要发送紧急报文时,设置 休闲等待时间最短达到 1.5ms:当普通的成员还在等待总线空闲时,优先级模 块就已经取得了总线的控制权,开始优先级别报文的发送。  
EIB 与 LCN 报文结构的分析 - 午夜天使 - 品茗,设计的快乐
 
EIB 与 LCN 报文结构的分析 - 午夜天使 - 品茗,设计的快乐
 

地址 :
在每个报文的起始都标识发送成员的序列编号/地址,然后自然是接收方的编 号,也称为目的地址。 
所有底层直接连接的成员(EIB:线路;LCN:群)对每个的总线报文都逐一监 测,是否报文的目的地址与自己相符,以决定是否执行该报文的指令。在 EIB 系统中始终采用工作组方式:所有的成员将首先对比它的组列表信息,看看它 是否属于该报文的组成员范围,只有符合工作组清单上的成员,该报文才被执 行。 
在 LCN 系统中则有两种可能性:点对点式或工作组方式。并且在模块中内置两 个工作组列表,一种如同 EIB,所有的参数都事先定义,固化在模块中,另一 种则允许在实际工作中动态更改变化。 
这两个系统都使用 2 字节的地址编码方式,因为它们都是其中 15 个比特的有效 编码空间,因此它们最大容量都是 3 万个成员左右。在 EIB 报文中,前 2 个字 节是发送地址,后 2 个字节为目的地址。见图一和图二。 
为了能够节省 1 个字节的空间,使 4 个字节的地址长度减为 3 个字节,LCN 将 发送地址的群地址省略(2 个发送成员地址字节中的第一个字节是发送成员的 群地址),因为绝大多数的报文都是在本地群中运行的,标明群地址显得多此 一举。当某个报文需要穿过群隅合器,到达另外一个群时,该报文将在群隅合 器内自动追加一个群地址字节。 
不可回避的一个问题: 
接收方对报文都面临这样一个不可忽略的问题:报文的大小/长短,由此接收方 可以在第一时间内进行判断,该报文是否有效。 
EIB 在隅合器中引入了路径计数器的功能,这在 Internet 中是一个非常有名的 自动保护措施,它将对报文通过这个隅合器(路由器)转发的次数进行自动计 数,如果超过额定限量将自动取消该报文的传送。这个功能在 Internet 网络中 非常实用和重要,可以避免信息在网络中“打乒乓”,有效的避免网络的堵 塞。 
但对于 EIB 系统这类等级次序森严的网络来说,只有在网络错误连接时才会发 生如此的问题,例如 2 根网线短路,产生一个错误的环路循环。而在正常工作 状态下,这个措施是多余而无用的。 
在 LCN 系统中,依照地址类型的信息(模块或工作组)进行寻址,并定义了报 文的传送范围,而且要求接收模块发送一个反馈报文。 

报文纠检 :
一般的总线系统都必须具备报文自检功能:因此 EIB 的成员对接收到的报文以 字节为单位进行累计(模加计算),对字节内的 8 个比特予以求和,累计高电 位(1)的数量。 在 EIB 报文结构中,有一个校验比特位置,用来检验该字节高电位累计总和的 奇偶性。接收方一个比特一个比特的分析比较每个报文,如果发现问题,则自 动判断该报文无效。这种检验方法相对而言非常简单,甚至无法有效的校验出 某些错误,因此 EIB 在发送方的报文中又增加了一个校验字节,做为二次校验 的工具。这就是在德国对这种 13 比特的报文结构归纳为“比特和字节”的原 因。 
LCN 使用计算机领域中(例如硬盘,Internet)常见的 CRC 算法进行报文校 验。无论报文的长度大小,这种校验算法都可以覆盖。运用这个算法最大的优 点是:只需要一个字节就可以对多个比特的错误进行描述,因此省下了校验比 特的位置-节省了宝贵的报文传送时间。 
核心数据: 
报文的主要作用当然是传送核心数据,技术开发人员总是努力研究,如何使核 心数据相对于其他辅助数据而言,占更大的比例。核心数据越多,数据传送的 效率就越高。 
一般来说 EIB 的报文仅仅传送 1 个比特的核心数据,也就是一个高或低的电 平。当然,它也可以传送 4 比特或 8 比特的数据。对于 8 比特的报文来说,它 仍然需要 8 个字节的电文长度,也就是说,核心数据传送效率为 1/8。但对于 1 比特的控制信息而言,传送效率仅为 1/64。 对于 LCN 来说,要好得多,至少在一个电文中传送 3 个字节的核心数据,总线 利用效率至少为 3/8。 
不可缺少的最后一个部分:反馈信息
在图片中,您可以发现,EIB 报文结构中有一个反馈信息字节。通过它来表 明,报文的传送是否被干扰,或者接收方是否忙于其他工作的处理,而无法有 效接收该报文。 
但这样的设计,使发送方无法对一个工作组的报文进行有效检测:众多的工作 组成员的接收状况无法通过一个字节的反馈信息来反映。 
而真正的技术问题是:紧跟着主体报文发送 1.3ms 后就是这个反馈字节。这个 功能在同一个底层线路中,没有什么问题。但当一个反馈字节需要跨越线路隅 合器时,麻烦就出来了:当线路隅合器转发一个报文时,发送方在规定时间内 等不到反馈字节,而此刻接收方却根本不知道,有一个给它的报文已经在路上 了。 
 所有的项目开发工程师都明白,EIB 系统的报文反馈功能实际上没有什么作 用,因此一般采取以下的两种措施:无论线路隅合器还是区域隅合器(路由 器)是否具备发送反馈字节的能力,它们都被设置发送反馈字节的功能。另一 种是发送方忽略反馈字节。如同 EIB 手册中所述:“如果发送方没有收到反馈 字节,也同样中止该电文的再次发送请求。” 
在 LCN 系统中,反馈信息与报文是分开的,反馈信息实际上是一个独立的报 文,无论经过多少个隅合器之类的转发,均由接收方发送回发送方。在工作组 指令报文中,每个接收方均发送一个反馈报文给发送方。 
LCN 模块不但发送在其他总线系统中常见的普通的反馈报文,而且还可以自动 报告任务的执行情况:在很多情况下,如果某个指令没有有效的执行,例如: 也许因为软件的原因(例如:屏蔽输出端),某一盏照明灯无法关闭。普通的 反馈信息只能表明该指令已经被目标模块成功的接收,造成一个错误的假象, 但 LCN 的状态反馈报文功能将自动发送如下报告:“因为……原因,该指令无 法有效执行”。  
  评论这张
 
阅读(159)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017