CANopen之LSS Node-ID节点管理

1.区分CAN-ID和节点ID

  • 在CANopen中,CAN-ID是通信的标识符,范围不同,对应的应用不同。
  • 而节点ID是设备的身份ID,在NMT网络管理中,用到CS(Command Spefifier指令说明符)+Node-ID的对网络中的节点进行管理。
  • SDO通道具有2个CAN标识符,其中发送方向的标识符为“580+Node-ID”,接收方向的为"600h+节点ID";

2.节点ID的分配

  • 在项目中涉及主站的开发, 其中很重要的一点是对节点的管理。由于Slave节点无法用DIP开关的方式去配置节点(密封性的需求),所以只能使用动态节点分配的方法。这里就涉及到LSS协议。
  • 使用动态分配方法的目的,就是要明确的标识一个CANopen Slave设备,因此,该设备至少具备2个基本的特征参数,一个是制造商ID,另一个是序列号,这2个参数都一个通过对象1018h来设置。
  • 这里先买个关子,为什么至少具备2个基本的特征参数?

3.层设置服务LSS

LSS的全称是Layer Setting Service,层设置服务。

3.1 服务内容

  • 配置Node-ID
  • 配置CAN网络的传输速率

3.2 LSS用到的CAN-ID

  • 7E4 = 2020d --------- Repsonse from LSS slave(CANopen Slave Device)
  • 7E5 = 2021d --------- Response from LSS master(CANopen Master/configuration tool)
  • 两条报文的总长度总是为8字节。第一个字节通常为识别符,用来识别所涉及的指令或状态信息
    LSS CAN-ID

3.3 LSS的寻址模式

  • 点对点
  • 广播通信模式

3.4 LSS状态切换

具有LSS功能但没有有效Node-ID的CANopen Slave设备,在上电之后会进入LSS等待状态。
LSS状态机与NMT(Network managerment)网络管理之间其实没有什么联系。仅仅由LSS主机控制(即使设备处于NMT停止状态时)。
LSS管理状态

代码(hex)功能
04h进入LSS等待状态
11h配置新的节点ID
13h配置新的位速率
15h启动新的为速率
17h保存LSS配置

3.5 点对点配置(Point to Point)

下面是一个设置Node-ID的例子。
假设出厂默认Node-ID :127d = 7Fh
现在想要配置Node-ID : 05d = 05h
此处只有一个LSS从机。
该节点模式用到了LSS中的LSS switch mode global 命令。
LSS swtich mode global 命令包含上述的等待(waiting), 配置(configuration)。
设置Node-ID 为05h

  • 000h 80 7F: 该指令为NMT网络管理,push Node-127 to Pre-opeartional state
  • 7E5h 04 01 00 00 00 00 00 00: 配置模式
  • 7E5h 11 05 00 00 00 00 00 00: 配置新的节点Node-ID为05
  • 7E4h 11 00 00 00 00 00 00 00: Slave节点反馈:配置成功
  • 7E5h 17 00 00 00 00 00 00 00: 保存LSS配置
  • 7E4h 17 00 00 00 00 00 00 00: Slave节点反馈:配置成功
  • 000h 81 7F: NMT指令:重启Node-ID 127(Application Reset)
  • 705h 00: NMT指令:Boot-up message, 进入Pre-opertional(进入NMT预操作阶段)
  • 注意: 新的节点地址在复位该节点后生效(valid after a reset of the device)或者是Power Up重启.

3.5.1 切换全局状态

该协议用于执行‘Switch Mode Global’服务
切换全局状态Command

3.5.2 配置节点地址(Node-ID)协议

配置节点地址(Node-ID)协议

3.5.2 存储配置协议

该协议用于执行‘Store Configured Parameters’服务
Store Configured Parameters服务协议

3.6 多节点配置(Multipe Node Address)

上述描述的当网络中只有一个节点的情况,可以使用LSS Switch State Global协议进行状态切换和配置。但是多Slave节点的情况下,情况较复杂一些。LSS switch mode selective命令来选择配置模式。

3.6.1 LSS地址

记得在通用通信对象(General communication objects)中的1018h

Index索Object对象Name名字
1018hRECORD记录Identity Object厂商ID标识对象
1018h子索引项目含义位数
sub-idx 1Vendor-ID厂商ID32
sub-idx 2Product Code产品代码32
sub-idx 3Revision Version软件版本32
sub-idx 4Serial Number序列号32

在多Slave编址时,我们需要依靠这些信息标识没每一个设备。这个地址相当于信封上的邮寄地址一样,邮寄地址中包含姓名(Vendor-ID),街道(Product Code), 地址(Software Version), 门牌号(Serival Number)。至于收件人是否居住在在哪个楼层不重要。这里楼层就相当于CANopen设备的Node-ID。
用户可以通过上述4个32位的值获得一个128位密钥,该密钥即可以理解为LSS地址。

3.6.2 切换选中节点状态协议

该协议用于执行‘Switch Mode Selective’服务
切换选中节点状态
上图所示为LSS主机和LSS从机之间的Switch Mode Selective协议。只有当4个传输参数与LSS从机一致时,才进行肯定应答。 厂商ID由CiA统一分配和管理,其他参数由设备制造商分配。
选择某个Node的报文序列
当选中某个Node后,接下来的配置过程就和之前的配置节点报文一样。如下所示。
设置Node-ID 为05h

3.7 LSS地址查询协议

该协议用于执行“Inquire LSS Address Service”服务。
既然上面要对网络中的某个CANopen Slave节点编址,那么CANopen Master需要记住每个节点的LSS地址,从而才能在对某个Slave进行编址时通过LSS Address进行选择。

3.7.1 查询Vendor-ID标识协议

查询Vendor-ID标识协议

3.7.2 查询product-code标识协议

查询product-code标识协议

3.7.3 查询revision-number标识协议

查询revision-number标识协议

3.7.4 查询Serial-number标识协议

查询Serial-number标识协议

  • 8
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值