CANOpen SDO确认框的大小

问题描述

我正在编写自己的CAnopen堆栈,并且想使用C实现SDO服务器。 CiA CAnopen应用程序层文档指定SDO请求和确认帧如下所示:

enter image description here

并提供一些解释如下:

enter image description here

基于对这张图片的解码,我发现应该在SDO确认帧中发送8个字节,但是这7个字节将仅包含0。

这正确吗?

PS:如果图像不清楚,抱歉。

解决方法

几乎正确。 SDO CAN帧始终包含8个字节,未使用的字节为0。

但是,确认帧具有4个非零字节。第一个字节是命令说明符(在这种情况下为0x60)。接下来的三个是“多路复用器”:两个字节用于对象索引(little-endian),一个字节用于子索引。