虹科干货 | CANopen协议基础知识——LSS服务

CANopen是一种架构在控制局域网络(Controller Area Network, CAN)上的高层通信协议,包括通信子协议及设备子协议,常在嵌入式系统中使用,也是工业控制常用到的一种现场总线。本篇文章将介绍CANopen总线的LSS服务。

一、概述

Layer setting service (LSS)是CANopen的设置服务与协议(CiA 405),是具有LSS主功能的CANopen设备通过CAN网络查询或更改CANopen设备上物理层、数据链路层和应用层的三个数据,包括Node_ID、波特率、LSS地址(1018h)。

每个LSS从站都有 唯一的LSS地址,其中包含了四个32位子索引的1018h Identity object对象(具体可见CiA301规范)。LSS从站可以处于配置模式和等待模式,LSS主站负责在两个模式之间进行切换。

LSS协议的消息都是由8个字节组成,其中字节0始终包含服务的命令说明符(CS),同时LSS协议的两个CAN-ID分别为7E57E4

  • 7E5h:用于从 LSS 主站发送至 LSS 从站的消息(请求)。
  • 7E4h:用于从 LSS 从站发送至 LSS 主站的消息(响应)。

二、LSS服务

LSS服务主要包括开关状态服务、配置服务、查询服务、识别服务,这里主要介绍开关状态服务和配置服务。

1.开关状态服务

借助这个服务,LSS主站可以将LSS从站切换成配置模式或者等待模式,在配置模式下才能够对LSS从站设备进行节点ID和波特率的更改,这里主要用到命令符号CS=40h。通过这个服务可以将网络中的所有LSS从站切换为配置模式或者等待模式。

如果在整个CAN网络当中不想操作所有的LSS从站,那么也可以通过LSS地址中的参数来操作相应的设备,这个时候LSS主站会发送四条消息(如下图),之后相应的从站会切换到配置模式并发送确认。

2.配置服务

通过配置服务,LSS主站可以更改并且存储(如果有必要的话)LSS从站节点ID和波特率。

  • 配置节点服务

LSS主站向LSS从站发送新节点ID的消息,返回错误代码 00h:没有错误,01h:无效节点。

  • 配置波特率服务

LSS主站向LSS从站发送新波特率的消息,返回错误代码 00h:没有错误,01h:波特率不支持,FFh:无效表索引

其中表索引与波特率的对应关系如下图

  • 激活位计时参数服务

LSS 主站使用此命令同时激活网络中所有 LSS 从站的设定波特率,其中Switch delay的单位ms,确保在可能再次发送消息之前,网络中的所有 LSS 从站均具有相同的波特率。从每个 LSS 从站收到此消息之后,其中存储的时间即是允许等待的时间。只有这时才能接受新的波特率,还可以再次等待相同的时间;只有这时 LSS 从站才能再次发送消息。

  • 保存配置服务

通过这一服务,LSS主站可以保存重新设定的节点ID和波特率;在执行这一服务的时候LSS主站必须确保网络中只有一个LSS从站处于配置模式。返回错误代码 00h:没有错误,02h:访问非易失存储器失败。

 

三、示例

目前有一个LSS从站的参数设置节点ID=40h,波特率=1000kBd,现在需要将参数修改如下节点ID=04h,波特率=500kBd。那么将进行以下报文命令操作:

 

7E5 | 04 01 00 00 00 00 00 00  将LSS从站切换至配置模式

7E5 | 5E 00 00 00 00 00 00 00  查询LSS从站的节点ID

7E4 | 5E 40 00 00 00 00 00 00  回复节点ID

7E5 | 11 04 00 00 00 00 00 00  将从站节点设置为04h

7E4 | 11 00 00 00 00 00 00 00  从站返回确认

7E5 | 13 00 02 00 00 00 00 00  将LSS从站波特率设置为500kBd

7E4 | 13 00 00 00 00 00 00 00  从站返回确认

7E5 | 17 00 00 00 00 00 00 00  LSS主站发送保存更改命令

7E4 | 17 00 00 00 00 00 00 00  LSS返回确认

7E5 | 04 00 00 00 00 00 00 00  将LSS从站切换至等待模式

705 | 00                     控制器重启接受新参数

更多推荐