大纲
前沿:以问题为导向学习是最高效的,本文主要讲述在学习Canopen协议中的一些疑惑点,
分享一些学习心得,不讲协议本身的内容。
1.主机和从机的概念?
2.PDO和SDO的区别是什么?
3.OD存在的意义是什么?
4.心跳检测的意义?0x00、0x05、0x7f?
5.COB-ID和PDO的ID有关系吗?SDO的ID是主机的ID还是从机的ID?
COB-ID = Function code+node_id
6. PDO,SDO 数据存在几个字节,心跳节点 数据存在几个字节?
7.PDO主要关系的几点? 触发方式+通讯参数和映射参数
8.SDO传输的三种方式?
9.通讯模型 : 服务器到客户端、消费者和生产者等。
10.CANOPEN 与CAN的不同点
1. 通讯模型
(1)服务器到客户端 :客户端发送数据,服务器需要回传数据 (SDO)
(2)消费者和生产者 :生产者发送数据,消费者不需要返回数据(PDO)
(3)主机和从机 Canopen协议中NMT模式控制节点的状态,启动状态、预准备状态、
工作状态、停止状态
2. 主机和从机的概念
对于从站而言发送消息给主站就是TPDO模式,其中TPDO总共有4个。
对于从站接收主站的消息就是RPDO模式,其中RPDO总共有4个。
3. PDO 和SDO、NMT区别
- PDO:根据模式从机选择定时发送数据或者等数据变化在发送数据给主机,以请求主机
做出一些列相应。
模型:生产者(producter)和消费者(comsumer)模式,接收方不会返回数据值
- SDO:通过主机发送命令(cs+主索引+子索引+4个字节数据),对对象字典进行操作改变数据
,如改变波特率,心跳的时间以及对于模式选择的切换,通过SDO_Handle进行处理即可。
模型:客户端(client) 和服务器(service)模型
- NMT: 主机控制节点状态
CANopen协议解析:PDO、SDO、NMT与心跳检测

最低0.47元/天 解锁文章

5157





