您的位置 首页 硬件

CANOpen协议怎么确保通讯不丢帧?

如何让现场总线通讯更加稳定可靠,不丢失,这向来都是工程师们难以解决的问题。本文将运用国际规范的通讯协议来展示怎样才能搭建好握手通讯。

摘要:怎么让现场总线通讯愈加安稳牢靠,不丢掉,这向来都是工程师们难以解决的问题。本文将运用世界标准的通讯协议来展现怎样才能搭建好握手通讯。

服务数据目标SDO(Service data object)
SDO首要用于CANopen主站对从节点的参数装备。服务承认是SDO的最大的特色,为每个音讯都生成一个应对,确保数据传输的准确性。如图 1所示,这就像快递,需求收方签收后,给寄方发送一个现已签收的承认才算完结一次投递。

图 1 SDO与快递签收

在一个CANopen体系中,一般CANopen从节点作为SDO服务器,CANopen主节点作为客户端(称为CS通讯)。SDO客户端经过索引和子索引,能够拜访SDO服务器上的目标字典。这样CANopen主节点能够拜访从节点的恣意目标字典项的参数,而且SDO也能够传输任何长度的数据(当数据长度超越4个字节时就拆分红多个报文来传输)。

通讯准则(communication principle)
SDO的通讯准则十分单一,发送方(客户端)发送CAN-ID为600h+Node-ID的报文,其间Node-ID为接纳方(服务器)的节点地址,数据长度均为8字节;
接纳方(服务器)成功接纳后,回应CAN-ID为580h+Node-ID的报文。这儿的Node-ID仍然是接纳方(服务器)的节点地址,数据长度均为8字节。如图 2所示。

图 2 SDO通讯准则

快速SDO协议(Expedited SDO protocol)
最常用最常见的SDO协议是快速SDO,所谓快速,便是1次来回就搞定。条件是读取和写入的值不能大于32位。如图 3所示,为快速SDO协议的示意图。指令中直接包含了要读写的索引、子索引、数据。可谓直接射中。

快速SDO的难点在于CS指令符的回忆,需求读者保藏这个示意图。

图 3 快速SDO示意图

经过快速SDO,能够直接对CANopen节点的目标字典中的值进行读取和修正,所以在做参数装备之外,也常常作为关键性数据传输之用。比方CANopen操控机器人的电机滚动视点时,就运用SDO来传输,确保牢靠抵达。

一般SDO协议(Normal SDO protocol)
当需求传输的值超越32位时,就不能运用快速SDO传输。有必要运用一般SDO进行分帧传输。在使用中较少用到,一般用于CANopen节点的程序固件晋级,或许做网关转化MVB总线之类数据最大可达256位的使用。

一般SDO协议难点在于分包逻辑与CS指令符的改变。仍然难以回忆,需求读者将以下示意图进行保藏。

当然一般SDO的CAN帧ID与快速SDO相同,仍然发送方(客户端)发送的报文CAN-ID为600h+Node-ID,接纳方(服务器)成功接纳后,回应CAN-ID为580h+Node-ID的报文。

下载协议download protocol 如图 4所示。

图 4 一般SDO下载协议

上传协议upload protocol 如图 5所示。

图 5 一般SDO上传协议

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/yingjian/189737.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部