SDO 发送的最大数据大小

问题描述 投票:0回答:1

我对 SDO 功能有疑问。 据我了解,我们只能发送 8 个字节的消息,并且在 SDO 数据超过这 8 个字节的情况下,它将存储在数组/记录中。我的问题如下:鉴于我们只能在每个数据的 OD 中存储最大 8 个字节的数据,这意味着我们的 SDO 将只能发送 8 个字节乘 8 个字节,并且我们必须用每个数据初始化它新的数据片段(带有 SDO 请求),因此使用分段不会获得任何好处,因为它不会分段任何内容?而且,使用Data-ack格式,这会产生很大的开销(每发送一帧,都会发送一个ack帧)?

我已经创建了一个基于 lely canopen 库的小型模拟,并且我无法发送超过 8 个字节的 SDO。所以我想知道分段的用途是什么?

can-bus sdo
1个回答
0
投票

OD 条目限制为 8 个字节。拥有子索引的目的是“不”存储更大的条目。它们有助于逻辑组织 OD,并将地址空间从 16 位扩展到 24 位。 分段 SDO 最多可以传输 4 GiB 的数据,因为初始 SDO 包有一个 4 字节字段来指示传输的大小。以下SDO段包最多可以携带7个字节的数据。

我认为这个 4 GiB 分段 SDO 传输大小限制在实践中也限制了 OD 条目的大小。

另请参阅我关于块传输主题的有些相关的

答案

© www.soinside.com 2019 - 2024. All rights reserved.