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地址查询等功能这里就不介绍了。

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

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

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

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

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

  3. 通过python基于netconf协议获取网络中网元的配置数据,助力企业网络控制自动化轻松实现!

    摘要:在当今信息化时代,大多数企业都需要网络支撑企业的ICT运行,提升企业运行效率,针对企业网络中的网元设备(包括交换机,路由器,防火墙等),很多企业希望根据自身的业务特点定制网络管理,比如可以实现网 ...

  4. 主机在无线网络的情况下,设置centos7.2虚拟机网络联通

    1.vmvare中,编辑-虚拟网络编辑器 2.虚拟机设置 3.进入linux登录后 输入nmtui 4激活连接 5大功告成,输入ping www.baidu.com  发现ping通了

  5. php开发中怎么获取服务端MAC地址?

    MAC(Media Access Control或者Medium Access Control)地址,意译为媒体访问控制,或称为物理地址.硬件地址,用来定义网络设备的位置.在php中如何获取MAC(M ...

  6. Windows Azure 虚拟网络中虚拟机的网络隔离选项

     最近我们发布了一份<Windows网络安全白皮书>(单击此处下载),文中深入说明了客户可以如何利用该平台的本地功能,为他们的信息资产提供最好的保护. 由首席顾问Walter Myer ...

  7. Linux 网络配置及常用服务配置(Redhat 6)

    一.网络配置 1. VMWare 提供了三种网络工作模式供用户选择,他们分别是, ①Bridged(桥接模式): 如果网络中能提供多个IP地址,则使用桥接方式 ②NAT(网络地址转换模式): 如果网络 ...

  8. 用WIN7系统IIS的提示:数据库连接出错,请检查Conn.asp文件中的数据库参数设置

    我用科讯的从4.0开始,去年开始很少用科讯做新站了,今天拿来做一下,结果悲剧了,数据库路径老是不对,百度一番又一番的,,最后终于给度娘解决了.分享出来给遇到同样的问题的人. 用WIN7系统IIS的注意 ...

  9. Sun开发的JINI技术在网络中的应用

    一.概述 Sun公司开发的Jini系统是一种创新技术,听说它的人很多但较少被人理解.Jini系统可利用Java扩展网络计算的范围,并有可能成为最佳解决方案. Jini是Sun公司的研究与开发项目,它能 ...

随机推荐

  1. PostgreSQL的HOT(Heap-Only Tuples)

    磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面:PostgreSQL内部结构与源代码研究索引页    回到顶级页面:PostgreSQL索引页 HOT的解释: 如下的日文文档中,有几个图示, ...

  2. 【python3】拷贝U盘文件

    一.起因 前天在公众号上,看到一篇如何用python偷偷拷贝别人U盘内容的文章推送,感觉这个想法挺有意思的,可惜是用的是linux系统,而且移动硬盘的盘符也是写死的,不够灵活,于是就自己动手写了一个d ...

  3. 25-[jQuery]-事件

    重点:jQuery事件绑定on().bind()与delegate() 方法详解 1.jquery的事件 <!DOCTYPE html> <html lang="en&qu ...

  4. css清除浮动clearfix:after的用法详解

    如果外部有一个div容器,其内部div容器设置了float样式,则外部的容器div因为内部没有clear,导致不能撑开.解决方法:  CSS代码: 复制代码 代码如下: .clearfix:after ...

  5. python中while循环和for循环的定义和详细的使用方法

    1. 循环的定义,反复做某事,具有明确的开始和结束.   2. 在Python中循环有while和for两种方式: While循环:1) 语法结构 >>> while 条件: ... ...

  6. 在WebGL场景中管理多个卡牌对象的实验

    这篇文章讨论如何在基于Babylon.js的WebGL场景中,实现多个简单卡牌类对象的显示.选择.分组.排序,同时建立一套实用的3D场景代码框架.由于作者美工能力有限,所以示例场景视觉效果可能欠佳,本 ...

  7. 使用Chrome控制台进行3D模型编辑的尝试

    前言:3D模型编辑的核心是对顶点位置和纹理颜色的编辑,这个研究的目的在于寻找一种通过编程方式直接对模型进行编辑的方法,这种编辑方法和时下流行的通过鼠标点选.拖拽进行编辑的方法之间的关系,和前端编程中“ ...

  8. 离线人脸识别 ArcFaceSharp -- ArcFace 2.0 SDK C#封装库分享

    ArcFaceSharp ArcFaceSharp 是ArcSoft 虹软 ArcFace 2.0 SDK 的一个 C# 封装库,为方便进行 C# 开发而封装.欢迎 Start & Fork. ...

  9. 记录一次redis故障

    ResponseError: MISCONF Redis is configured to save RDB snapshots, but is currently not able to persi ...

  10. __construct 与 __destruct 区别

    其实这个问法是有问题的,__construct 与 __destruct 没什么可比性,两个方法一个在对象被创建的时候触发,另一个在对象被销毁的时候触发 具体可以翻阅PHP官方手册中的 http:// ...