当前位置: 首页 > news >正文

虹科分享 | CANopen协议基础知识——LSS服务

CANopen是一种架构在CAN串行总线系统上的高层通讯协议,常被用于嵌入式系统与工业控制领域,包括电机控制、机器人制造、医疗、汽车等多个行业领域。本篇文章将主要介绍CANopen的LSS服务。

一. LSS概述

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

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

在这里插入图片描述
LSS协议的消息都是由8个字节组成,其中字节0始终包含服务的命令说明符(CS),同时LSS协议的两个CAN-ID分别为7E5和7E4。

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

二. LSS服务

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

1. 开关状态服务

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

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

在这里插入图片描述

2. 配置服务

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

1)配置节点服务

LSS主站向LSS从站发送新节点ID的消息,返回错误代码 00h:没有错误,01h:无效节点。
在这里插入图片描述

2)配置波特率服务

LSS主站向LSS从站发送新波特率的消息,返回错误代码 00h:没有错误,01h:波特率不支持,FFh:无效表索引
在这里插入图片描述
其中表索引与波特率的对应关系如下图
在这里插入图片描述
3)激活位计时参数服务

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

通过这一服务,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 控制器重启接受新参数

http://www.lryc.cn/news/7177.html

相关文章:

  • JS混淆和解混淆
  • MySQL-数值函数
  • SpringMVC(1)
  • 珠海先达MES系统六大功能解决电子组装行业可视化问题
  • 获取本机的IP地址,看似简单的获取,实则蕴含非常多的操作
  • 【SSM】篇一:初试Spring--Ioc与Bean
  • 华为OD机试真题Python实现【出租车计费】真题+解题思路+代码(20222023)
  • Elasticsearch:如何修改 nested 字段的值
  • 【JAVA】jdk8 Stream 排序精通
  • python的opencv操作记录12——Canny算子使用
  • Spark on hive Hive on spark
  • 【MySQL】子查询
  • Day889.MySQL高可用 -MySQL实战
  • 剑指 Offer 24. 反转链表
  • “黑铁时代”,地产人如何以客户视角加速房企数字化转型
  • 零入门kubernetes网络实战-14->基于veth pair、namespace以及路由技术,实现跨主机命名空间之间的通信测试案例
  • 【pytorch框架】对模型知识的基本了解
  • SUP桨板电动气泵方案——鼎盛合方案
  • 小白系列Vite-Vue3-TypeScript:011-登录界面搭建及动态路由配置
  • C语言( 缓冲区和重定向)
  • 编程思想、方法论和架构的类型及应用
  • 【OA办公】OA流程审批大揭秘,带你看遍所有基础流程
  • 《零基础入门数据结构与算法》专栏介绍
  • 测试开发之Django实战示例 第九章 扩展商店功能
  • 【Spring】一文带你吃透AOP面向切面编程技术(下篇)
  • 【java】Spring Boot --40 个 Spring Boot 常用注解(建议收藏)
  • 《游戏学习》| 微信对话模拟生成器源码分析
  • 剑指 Offer 10- I. 斐波那契数列[c语言]
  • 【C#基础】C# 数据类型总结
  • 再创荣誉 | Softing工业荣获CAIMRS 2023 数字化创新奖