CANopen专有个子协议用来描述怎样去通过网络设置节点地址和波特率,就是CiA DSP-305,大伙都叫LSS协议,是Layer Setting Services的缩写,不太好翻译,可以叫底层设置服务协议吧。

属于主从式服务,类似于NMT的方式,占用2021(for master)和2020(for slave)两个标识符。CANopen网络中同时只能有一个节点能提供LSS Master服务,并且该节点同时也必须是NMT Master。网络上的其他节点都提供LSS Slave服务。

假设网络上除了主节点之外,其他节点都是无地址的,那么它根据什么去设置各节点地址呢?

答案是LSS地址,这跟节点的地址可不同,它理论上是全球唯一的,那么这个地址到底是什么呢?答案是对象字典1018H的内容,包括vendor-id(制造商ID)、product-code(产品码)、revision-number(修订码)和serial-number(序列号),这几个加起来就全球唯一了吧。一般要求LSS Master节点要预先知道网络上的各节点的LSS地址。

设置某个节点地址的步骤如下:

  1. 通过LSS地址去将希望设置ID的节点切换到配置状态(相当于NMT的停止状态),当然是通过LSS服务(Switch Mode Selective)。
  2. 然后通过'Configure Node-ID'服务设置其节点地址。
  3. 置该节点到可操作状态。不是很困难吧。

设置网络波特率要复杂一些,步骤如下:

  1. 将网络上所有LSS Slave切换到配置状态,通过'switch Mode Global'服务实现。
  2. 通过'Configure Bit Timing Parameters'服务将波特率广播到每个节点中。
  3. 通过'Activate Bit Timing Parameters'服务激活新设置。将整个网络波特率切换为新设置。
  4. 置网络切换回可操作状态。

这里要注意:在'Activate Bit Timing Parameters'服务中有个switch_delay参数,该参数指定相等长度的两个延迟周期长度,是为了避免总线上出现不同的位定时参数(波特率)。每个节点在收到命令后'switch_delay'毫秒后应用新的位定时参数。在应用新参数后,节点在第二个'switch_delay'毫秒定时到之前不发送任何报文。

各节点处理位定时激活命令需要的时间可能不同,而且激活命令之前的的报文可能还在节点的接收队列中。意思就是某个节点在处理延时的过程中可能还会以旧的波特率来传输CAN报文。因此swith_delay要比网络上任何一个节点的处理时间都要长,这样才能避免一个节点已经改变了波特率,而另一个节点还在以旧的波特率工作。在第一次经过switch_delay指定的时间长度后,每个节点必须在第二个switch_delay期间完成到新波特率的切换。因而在经过了第二个switch_delay后,所有的节点都必须保证以新的波特率监听网络。

至于LSS提供的LSS地址查询等功能这里就不介绍了。

(于2007.2.3)

旧文备份:在CANopen网络中通过LSS服务设置节点地址和网络波特率的更多相关文章

  1. 在CANopen网络中通过LSS服务设置节点地址和网络波特率

    CANopen专有个子协议用来描述怎样去通过网络设置节点地址和波特率,就是CiA DSP-305,大伙都叫LSS协议,是Layer Setting Services的缩写,不太好翻译,也许可以翻译成底 ...

  2. 旧文备份:简单CANOpen 协议说明

    (十年前的旧文,不舍等扔) 创建日期:2005-11-17 修改日期:2005-11-17 文件名称:简单CANOpen 协议说明.doc 作者:winshton 版本:V1.0 (注:本文以24in ...

  3. 旧文备份: CANopen的LSS子协议中文翻译

    有关节点地址和网络波特率的在线设置等:下载

  4. WCF 在VS中,添加服务引用,地址输入http://ip/Service.svc,点击前往,提示错误,内容如下:

    WCF的service端的webconfig如下: <?xml version="1.0"?> <configuration> <system.ser ...

  5. 旧文备份:CANopen协议中SDO服务

    SDO是服务数据对象接口(Service Data Obiect)的缩写,顾名思义提供服务数据的访问接口,服务数据就是一些实时性要求不高的数据,一般是指节点配置参数,因此,SDO一般用来配置和获得节点 ...

  6. 旧文备份:CANopen中SYNC的功能和使用

    SYNC是CANopen管理各节点同步数据收发的一种方法,相当于网络节拍,基于同步的PDO按照这个网络节拍来执行实时数据的收发.SYNC属于生产/消费型通讯方式,网络中有且只有一个SYNC生产者,一般 ...

  7. 旧文备份:CANopen协议PDO的几种传输方式

    (于2007.1.22) 由于PDO所传输的数据内容是无协议的且分配的标识符范围较SDO靠前,因此,其效率和优先级都是较高的,通常用于实时过程数据的传输. PDO是生产/消费类型的通讯方式,数据只有一 ...

  8. 旧文备份:怎样利用好单片机上的存储器资源来实现OD的存储与访问

    我们知道OD(对象字典)是CANopen的核心,所有功能都是围绕它开展的,是协议栈的数据中心,良好的OD实现是协议栈高效稳定运行的基础,而OD的实现最基本的一点就是怎么去保存它.因为OD的内容比较杂, ...

  9. 旧文备份: 怎样实现SDO服务

    SDO是CANopen协议中最复杂的一部分,带有应答机制,有多种传输方式,并且完整的SDO功能节点需提供1个SDO server和多个SDO client,因此SDO的实现异常困难,协议多种传输方式的 ...

随机推荐

  1. robotframe 学习笔记1

    在robot framework中,通过 Set variable关键字来定义变量 连接对象: 通过Catenate关键字可以连接多个信息 加上"SEPARATOR=",可以对多个 ...

  2. ASC19超算概述

    初赛题目组成 设计超算集群(看参考文献做设计) 对超算集群进行性能测试(一般来讲的测试工具就是用HPL,找到最适合的参数,达到最优秀的计算能力) 数字图像处理(通常代码量较大,代码优化较为困难,优化偏 ...

  3. 配置WAMP完美攻略

    软件介绍 Wamp Server 是一款功能强大的PHP 集成安装环境. 为了节约时间,本次使用 Wamp Server 来进行配置. wamp 的全部含义就是本篇文章的标题. 使用版本和操作系统 W ...

  4. Cache一致性协议之MESI

    http://blog.csdn.net/muxiqingyang/article/details/6615199 Cache一致性协议之MESI 处理器上有一套完整的协议,来保证Cache一致性.比 ...

  5. Java基础15-数组实例学生管理系统

    import java.util.Scanner; public class Student{ public static void main(String[] args){ Scanner in=n ...

  6. PV、UV、VV,CV的含义

    其中VV和CV是播放类指标,PV和UV是浏览类指标. 1. 播放类指标 VV(Video View,播放数),是指在一个统计周期内,视频被打开的次数之和. CV(Connect Views,内容播放数 ...

  7. 连接虚机中的mysql服务

    1:修改mysql库中的user表的root用户的host值为% 2:授权:在mysql命令中执行 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFI ...

  8. Smarty 限制foreach的循环次数

    <!--{foreach from=$news item=news name=foo}--> <!--{if $smarty.foreach.foo.index <7}--&g ...

  9. hduoj 2062Subset sequence

    Subset sequence Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  10. java题目练手

    大数阶乘 题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=28 代码如下: import java.io.*; import java.ma ...