我正在一个项目中,该项目的主计算机通过CANOpen网络连接到4个从属。
在每个时间步,计算机都会从每个从站接收测量消息,然后向他们发送控制消息。每次采样总共接收4条消息,并发送4条消息。
发送的消息是具有6个数据字节(包括COB-ID的8个字节)的PDO 收到的消息是具有8个数据字节(包括COB-ID的10个字节)的PDO
我的CAN网络配置为1Mbit / s,我以1000 Hz(1 ms的采样时间)运行程序。由于上述消息产生的总负载为576位/周期,因此网络中预期的总负载为576kbit / s,即 57%。
不过,我看到的是:
我想知道的是我计算CANOpen网络负载的方式是否正确。例如,是否发送了特定于协议的握手,CRC或任何种类的额外字节来使网络正常工作?在wiki page of CANOpen中看不到任何内容,但我确实知道原始CAN bus标准中的邮件都有这些附录。
答案 0 :(得分:1)
在CAN消息中,要传输的数据不止一个。 还有一个仲裁ID(11位或29位,具体取决于您使用的是CAN 2.0A还是2.0B),15位CRC,7位EOF标记,控制字段以及一些其他保留位。 根据数据,可能还会有填充位。
使用CAN2.0B并假设有48位(6字节)的数据,您将获得大约132位的消息大小和64位消息的大约151位消息。
总结一下,您每个周期将获得大约1132位,对于1Mbit / s的总线和1000 Hz而言,这实在太多了。
希望有帮助。