首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发送SDO的时间

发送SDO的时间
EN

Stack Overflow用户
提问于 2022-08-23 03:58:24
回答 2查看 76关注 0票数 0

我正在研究CANopen体系结构,我有三个问题:

1-当“同步窗口”关闭直到下一条同步消息时,我们是否应该发送SDO消息?在这段时间内,我们可否不发信呢?

2-是否可以在同时窗口期间不发送PDO消息?

3-奴隶在同步信息中给出的答案是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-23 05:10:27

免责声明:我没有确切的答案,但我只想分享我的假设和想法。

  1. CiA 301没有提到同步窗口和SDO之间的关系。在初始配置后的正常操作中,人们可能会假设系统中不存在SDO,或者至少与PDO相比,SDO很少出现。虽然SDO不是严格必要的,但SDO通常是由具有主角色的设备发起的,并且该设备还生成同步消息(同样,它不是严格必要的,但它是通常的/常见的实现)。因此,主设备可以根据同步窗口调整SDO请求的时间。

以下是CiA 301的引用:

,如果同步窗口长度过期,则可以丢弃所有同步TPDO,并且可以发送EMCY消息;所有同步RPDO都可以被丢弃,直到接收到下一同步消息为止。使用下一条同步消息恢复同步RPDO处理。

  1. CiA 301使用一词“可以”(见上面的引号)。所以我不确定这是强制性的还是强制性的。在我看来,在同步窗口之后遵循建议并中止同步TPDO传输并发送EMCY消息是有意义的。事件驱动(非同步)TPDO可以在同步窗口内或之后发送。

  1. 没有对同步消息的直接响应。在同步接收时,同步使用者(从)对其输入进行采样,根据先前的RPDO驱动其输出,并开始发送包含以前的示例(或当前的示例)的TPDO?我对此不太确定)。
票数 0
EN

Stack Overflow用户

发布于 2022-08-23 06:49:40

同步窗口仅用于特定的PDO同步。对于硬实时系统,数据可能需要在一定的固定时间间隔内到达--不太早,也不太晚。也就是说,它是一个实时的最后期限。如果启用了这些特性,则在执行特定的CANopen总线实现时需要考虑到这一点。

例如,如果某些SDO通信占用了总线,以致PDO无法满足其时间窗口,这将是一个问题。但是这很容易通过给PDO提供比SDO更低的COBID来解决,在大多数默认的设备配置文件设置(如"DS401 GPIO模块“)中,都应该是这样。除此之外,您还必须确保没有荒谬的总线负载,或者节点挂起或忙着做其他事情。

在具有硬实时需求的系统中,您可能不希望在操作模式开始时允许任何SDO通信。

,奴隶在同步消息中给出的答案是什么?

这个问题没有任何意义。您需要研究同步消息的功能以及它的用途。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73452991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档