预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

LonWorks®协议LonWorks®协议在OSI七层参考模型的每一层提供服务。该协议可供任何人实施,因此,可从CEA获取C编程语言中的HYPERLINK"http://www.echelon.com/technology/lonworks/protocol/default.htm"参考实施。自发明以来,该协议就成为ANSI标准、IEC标准、中国国家标准,最近又获得ISO标准化认证。第一层:物理层在第一层,多种物理连接可支持如RS-485收发器、我们的自由拓扑(FT)和电力线(PLC)收发器以及第三方有线、无线和光纤收发器等。第2层:链路层-MAC算法在链路层,即OSI模型的第二层,LonWorks协议根据以太网标准化后对载波侦听多路访问协议家族所做的改进,提供创新型独立介质访问控制(MAC)层。MAC层结合运用了两个概念:p-保持CSMA和非保持CSMA。P-保持CSMA。在P-保持CSMA中,链路访问是带时间槽的,传输设备使用P概率访问链路,举例,在0.1保持CSMA链路中,会有10个时间槽,对链路的访问是随机的,因此,通过任一时间槽进行传输的概率是10%。因此,P值越小,传输设备可随机访问的时间槽越多。时间槽数量越多,冲突的可能性越小,这是因为任何两个传输设备选取同一时间槽进行传输的机率降低了。拥有多个时间槽的缺点是,在闲置网络中,发送消息的平均延时是时间槽数量除以二。理想状态下,如果只有几个传输设备等待发送,随机访问链路只需要通过少量的时间槽;当有较多的传输设备都有消息要发送时,随机访问链路需要通过大量的时间槽。P-保持CSMA本身并不能解决延时问题。非保持CSMA。利用非保持CSMA,只要有一个传输设备要发送消息,就会随机访问,而不是立即传输。这一技术可防止多个传输设备对单一事件做出响应,从而避免引起数据包冲突。非保持CSMA对于数据包流量大的网络十分有用,许多控制网络也拥有这一特性。网络化控制系统的其他特征为,通常情况下,当某个站点发送消息时,该站点必须收到响应或确认,而这种信息多播技术非常常用。例如,带有温度读取功能的节点可能需要同时与多个节点分享所读取的温度值。多播是做到这一点的最有效方式。如果多播需要响应或尚未确认,则链路上超过半数的数据包可进行预测,因为每个数据包至少能产生一次响应,有时甚至可产生多次响应。可预测p-保持CSMA算法。为了在网络拥堵时为链路的优先访问提供支持,可能需要为每个独立站点分配一些供其单独使用的随机时间槽。通过这种方式,具有MAC优先级的站点可使用专用时间槽并有效避免所有链路访问之间的竞争。图1为带时间槽的访问协议。图2为专用优先时间槽在每个数据包之后的使用,以确保关键站点可在避免数据包竞争的情况下访问链路。通过可预测CSMA算法,当某个站点发送消息时,消息将会产生的响应数据包的数量会在数据包的2层报头中进行编码。这被称为链路未完成任务的增量。发送者可得知为响应初始消息而将要发送的数据包数量,因为其必须跟踪这些响应以便了解何时停止转发。链路上的所有节点将收到所有数据包并检查2层报头以了解链路未完成任务的增量情况。它们会利用这个工作中的未完成任务调整为自己的链路访问所需随机分配的时间槽数量。因此,未完成任务会在流量增多时动态增加,并在流量减少时随时间相应减少。LonWorks协议就是通过这种方式来动态调整基于已知未来的随机时间槽数量。根据经验,协议面向对等网络的MAC算法已用到占据理论最大值高达80%的链路带宽,而碰撞率却低于4%。这种协议不仅具备超高效率,而且只需极小化状态,无需了解连接上的站点数量,也无需准备碰撞检测硬件。流量对延迟的图示说明了可预测P-保持CSMA算法在避免碰撞(甚至在网络超负荷期间)方面的出色能力。第2层:链路层–位编码除MAC算法以外,2层还可提供位编码以及16位的循环冗余校验(CRC)。CRC采用CCITTCRC-16标准。位编码属于双相间隔编码。这是差分曼彻斯特编码的一种变体,可在通过双绞线进行通信时不受极性影响。安装人员无需顾虑使用双终端的两根通信线具体连接方式。第3层:网络层3层是网络层,提供寻址功能。在LonWorks协议中,寻址需按等级进行,先从节点的域开始,随后是其子网和标识号,均以八位数字表示。或者,一个节点可属于多个多播组,每个组地址作为单个字节进行编码。一个域可包括多达256个多播组和255个子网,每个可包含最多127个节点。为节省带宽,一个域的地址可编码为长度为零的一个字节、三个字节或六个字节(确保唯一性)。这种简单的寻址设计可使跨多个链路的数据包路由变得非常简单。路由表非常小,例如,只带有一个256位的队列,可确定消息是否应通过路由器传送至特定子网,或是特定组的成员是否在路由器的另一端。第