数据传输方法及装置与流程

文档序号:12492100阅读:181来源:国知局
数据传输方法及装置与流程

本发明涉及通信技术领域,特别涉及数据传输方法及装置。



背景技术:

控制器局域网(CAN,Controller Area Network)总线是一种用于实时应用的串行通讯协议总线,是一种点对多点的机制,目前已经应用于通械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等诸多领域。

随着设备复杂度不断提升、应用环境恶劣性不断加剧以及系统任务的复杂性不断提高,对数据处理和通信系统的可靠性提出了更高的要求,因此需要对CAN总线协议中的通信过程进行改进。



技术实现要素:

本发明实施例提供了两种数据传输方法及装置。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。

根据本发明实施例的第一方面,提供了一种数据传输方法,所述方法包括:

向节点发送属性上报请求,所述属性上报请求中携带用于保存属性数据的缓冲区的长度;

接收所述节点上报的属性数据,所述上报的属性数据的长度小于等于所述缓冲区的长度;

接收所述节点发送的属性上报应答。

根据本发明实施例的第二方面,提供一种数据传输方法,所述方法包括:

接收主控制器发送的属性上报请求,所述属性上报请求中携带用于保存属性数据的缓冲区的长度;

向所述主控制器上报属性数据,所述上报的属性数据的长度小于等于所述缓冲区的长度;

向所述主控制器发送属性上报应答。

根据本发明实施例的第三方面,提供一种数据传输装置,所述装置包括:

发射器,被配置为向节点发送属性上报请求,所述属性上报请求中携带用于保存属性数据的缓冲区的长度;

接收器,被配置为接收所述节点上报的属性数据;接收所述节点发送的属性上报应答;

所述上报的属性数据的长度小于等于所述缓冲区的长度。

根据本发明实施例的第四方面,提供一种数据传输装置,所述装置包括:

接收器,被配置为接收主控制器发送的属性上报请求,所述属性上报请求中携带用于保存属性数据的缓冲区的长度;

发射器,被配置为向所述主控制器上报属性数据;向所述主控制器发送属性上报应答;

所述上报的属性数据的长度小于等于所述缓冲区的长度。

本发明实施例提供的技术方案可以包括以下有益效果:

提供了一种主控制器接收节点上报属性数据的方式,主控制器在请求节点上报属性数据时,告知节点用于保存属性数据的缓冲区的长度,从而使得节点上报的属性数据的长度小于缓冲区的长度,不会发生属性数据存储错误的情况,提高了可靠性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种数据传输方法的流程示意图;

图2是根据一示例性实施例示出的一种数据传输方法的流程示意图;

图3是根据一示例性实施例示出的一种数据传输方法的流程示意图;

图4是根据一示例性实施例示出的一种数据传输方法的流程示意图;

图5是根据一示例性实施例示出的一种数据传输装置的框图;

图6是根据一示例性实施例示出的一种数据传输装置的框图;

图7是根据一示例性实施例示出的一种数据传输装置的框图;

图8是根据一示例性实施例示出的一种数据传输装置的框图。

具体实施方式

以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,各实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。本文中,诸如第一和第二等之类的关系术语仅仅用于将一个实体或者操作与另一个实体或操作区分开来,而不要求或者暗示这些实体或操作之间存在任何实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素。本文中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的结构、产品等而言,由于其与实施例公开的部分相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本发明实施例中的数据传输方法和装置,基于设备中的CAN总线实现。设备中的主控制器作为控制中心,控制设备中的各节点执行操作。主控制器可以通过广播信道(Channel)向各节点发送广播消息,也可以为各个节点分别设置信道、并通过设置的信道和特定节点进行通信,从而完成不同应用场景下的功能。在不同的应用场景下,节点可以对应设备中不同的部件。以机器人为例,节点可以包括:各关节伺服舵机、驱动轮、传感器、点阵显示器等。

本发明实施例中涉及的数据帧,包括标准数据帧格式和扩展数据帧格式两种,分别是对CAN总线2.0B中的标准数据帧格式和扩展数据帧格式进行了改进。

在CAN总线2.0B中,数据帧包括如下几部分:帧起始、仲裁场、控制场、数据场、循环冗余校验(CRC,Cyclic Redundancy Check)场、应答场和帧结束。其中,仲裁场由身份标识(ID,Identity)域和其他标志位组成,ID域中携带节点的标识,用于指示不同的节点。标准数据帧格式和扩展数据帧格式的差别在于,在标准数据帧格式中,仲裁场的ID域为11比特,而扩展数据帧格式中,仲裁场的ID域的长度为29比特。

本发明实施例中的数据帧,是对上述仲裁场中的ID域和数据场进行了改进,下面仅对该改进部分进行说明,其他与CAN总线2.0B中的相同部分不再赘述。

1.本发明实施例中的标准数据帧格式

1.1仲裁场中的ID域

如下表1示出了CAN总线2.0B和本发明实施例中标准数据帧格式的ID域的对比。

本发明实施例的标准数据帧格式包括:帧模式字段和信道标识字段。

①帧模式字段包括2个比特,分别用M1和M0表示,用于指示帧的解析方式。

②信道标识字段包括9个比特,用CH8至CH0表示,用于指示主控制器与节点之间通信的信道的标识。标准数据帧中的信道标识,取值范围是0至511,取值为0的信道为广播信道,所有节点都可以接收到主控制器在广播信道上发送的消息。

表1

如下表2示出了CAN总线2.0B和本发明实施例中扩展数据帧格式的ID域的对比。

本发明实施例的扩展数据帧格式包括:帧模式字段、信道标识字段、和标志位字段。

①帧模式字段包括3个比特,分别用M1、M0和EM0表示,用于指示帧的解析方式。

②标志位字段包括10个比特,N代表没有使用的位;END用于指示本帧是否为最后一帧,例如当END取值为0时代表本帧不是最后一帧,而当END取值为1时代表本帧是最后一帧;I为自增循环码,用于指示本帧的发送序号。

③信道标识字段包括16个比特,用CH15至CH0表示,用于指示主控制器与节点之间通信的信道的标识。扩展数据帧格式中的信道标识,取值范围是0至65535,取值为0的信道为广播信道,所有节点都可以接收到主控制器在广播信道上发送的消息。

表2

如下表3示出了本发明实施例的数据帧结构中,帧模式字段的取值举例,可以看出,当帧模式字段的取值不同时,可以指示不同的帧解析方式,用于不同的应用场景。

表3

1.2数据场

如下表4示出了CAN总线2.0B和本发明实施例中数据帧的数据场的对比。

根据帧的解析方式的不同,本发明实施例中数据帧的数据场中,可以包括1字节的CMD字段,该字段用于指示二级指令,取值不同时代表不同的二级指令,CMD字段之后的D0至D6共7个字节是二级指令携带的数据。对于与块数据相关的块数据输出帧和块数据输入帧,数据场中的8个字节全部用于携带数据,以提高块数据的传输效率。

表4

图1是根据一示例性实施例示出的一种数据传输方法的流程示意图,该流程可以用于主控制器中,包括如下步骤。

在步骤101中,向节点发送属性上报请求,所述属性上报请求中携带用于保存属性数据的缓冲区的长度。

在步骤102中,接收节点上报的属性数据,上报的属性数据的长度小于等于缓冲区的长度。

在步骤103中,接收节点发送的属性上报应答。

可见,本发明实施例提供了一种主控制器接收节点上报属性数据的方式,主控制器在请求节点上报属性数据时,告知节点用于保存属性数据的缓冲区的长度,从而使得节点上报的属性数据的长度小于缓冲区的长度,不会发生属性数据存储错误的情况,提高了可靠性。

图2是根据一示例性实施例示出的一种数据传输方法的流程示意图,该流程可以用于主控制器中,包括如下步骤。

在步骤201中,向节点发送属性上报请求,所述属性上报请求中携带用于保存属性数据的缓冲区的长度。

属性上报请求可以通过块指令属性请求帧发送,块指令属性请求帧使用扩展数据帧格式,仲裁场的ID域中的帧模式字段取值为M1M0EM0=100,如下表4给出了块指令属性请求帧中的数据场的格式。数据场中第0字节为CMD指令码,取值FE代表该帧为块指令属性请求帧,主控制器向节点发送块指令属性请求帧,即代表主控制器需要该节点上报属性数据。数据场中第1字节至4字节为主控制器为接收节点上报的属性数据所设置的缓冲区的长度,节点上报的属性数据不能超过该缓冲区长度。块指令属性请求帧由主控制器通过为节点分配的信道发送给节点,如节点在广播信道上接收到块指令属性请求帧,则认为属于无效帧,不做处理。

表4

作为一种可选的实施方式,节点在收到主控制器发送的属性上报请求之后,可以先解析出主控制器接收属性数据的缓冲区的长度,然后判断要上报的属性数据的长度是否大于该缓冲区的长度,如果要上报的属性数据的长度大于该缓冲区的长度,则在上报属性数据之前,需先通知主控制器更新接收属性数据的缓冲区。本实施例中即以节点要上报的属性数据的长度大于主控制器接收属性数据的缓冲区的长度为例进行说明。

在步骤202中,接收节点发送的属性上报应答,所述属性上报应答中携带节点要上报的属性数据的长度。

属性上报应答可以通过块指令属性请求应答帧接收,块指令属性请求应答帧采用扩展数据帧格式,仲裁场的ID域中的帧模式字段取值为M1M0EM0=110,如下表5给出了块指令属性请求应答帧的数据场的格式。数据场中的第0字节为CMD指令码,取值FD代表该帧为块指令属性请求应答帧。节点在两种情况下会向主控制器发送块指令属性请求应答帧,第一种是向主控制器上报完属性数据之后,向主控制器发送块指令属性请求应答帧,代表属性数据已上报完毕,第二种是在上报属性数据之前,如判断要上报的属性数据的长度大于主控制器接收属性数据的缓冲区的长度,则先向主控制器发送块指令属性请求应答帧,通知主控制器更新缓冲区。数据场中的第1字节至4字节为属性数据的长度。块指令属性请求应答帧由节点通过主控制器为自己分配的信道发送给主控制器,如主控制器在广播信道上接收到块指令属性请求应答帧,则认为属于无效帧,不做处理。

表5

在步骤203中,根据节点要上报的属性数据的长度,更新缓冲区,然后执行步骤201。

主控制器在接收到属性上报应答之后,根据其中携带的节点要上报的属性数据的长度,更新缓冲区,使得缓冲区的长度大于等于节点要上报的属性数据的长度。

在步骤204中,接收节点上报的属性数据。

主控制器可以通过接收节点发送的一个以上块数据消息来接收节点上报的属性数据。上述块数据消息通过块数据输入帧实现,块数据输入帧采用扩展数据帧格式,仲裁场的ID域中的帧模式字段取值为M1M0EM0=111,仲裁场的ID域中的I指示本帧的发送序号,即指示当前发送到第几个数据块,也可以称为数据块标识,END指示本帧是否为最后一帧,即指示上报是否结束的指示位。块数据输入帧的数据场中不含CMD字段,第0字节至第7字节均为数据位。

作为一种可选的实施方式,节点属性数据使用ini配置文件格式,包括常量部分和变量部分。其中,常量部分中的元素是不可变的,里面包含设备名、是否可升级、设备使用的二级指令集等一些不可变的元素;变量部分中的元素是可被设置而改变的,例如节点ID。节点属性数据通过编码,形成能够在块数据输入帧中携带的数据格式。

在步骤205中,接收节点发送的属性上报应答,属性上报应答中携带节点上报的属性数据的长度。

这里的属性上报应答仍由步骤202中介绍的块指令属性请求应答帧实现,节点在完成上报属性数据之后,通过块指令属性请求应答帧告知主控制器属性数据已上报完毕。

作为一种可选的实施方式,主控制器在接收到属性上报应答后,如果确定接收到的属性数据的长度不等于属性上报应答中携带的长度,则可以重新执行步骤201,即要求节点重新上报属性数据。

图3是根据一示例性实施例示出的一种数据传输方法的流程示意图,该流程可以用于节点中,包括如下步骤。

在步骤301中,接收主控制器发送的属性上报请求,属性上报请求中携带用于保存属性数据的缓冲区的长度。

在步骤302中,向主控制器上报属性数据,上报的属性数据的长度小于等于缓冲区的长度。

在步骤303中,向主控制器发送属性上报应答。

可见,本发明实施例提供了一种由节点向主控制器上报属性数据的方式,主控制器在请求节点上报属性数据时,告知节点用于保存属性数据的缓冲区的长度,从而使得节点上报的属性数据的长度小于缓冲区的长度,不会发生属性数据存储错误的情况,提高了可靠性。

图4是根据一示例性实施例示出的一种数据传输方法的流程示意图,该流程可以用于节点中,包括如下步骤。

在步骤401中,接收主控制器发送的属性上报请求,属性上报请求中携带用于保存属性数据的缓冲区的长度。

属性上报请求可以通过块指令属性请求帧发送,块指令属性请求帧的格式与前文描述及表4中所示的相同。

在步骤402中,判断要上报的属性数据的长度是否大于缓冲区的长度,如果是,执行步骤403,否则执行步骤404。

在步骤403中,向主控器发送属性上报应答,属性上报应答中携带要上报的属性数据的长度。

属性上报应答可以通过块指令属性请求应答帧接收,块指令属性请求应答帧的格式与前文描述及表5中所示的相同。

步骤403执行完毕之后,节点将再次接收到主控制器发送的属性上报请求,即再次执行步骤401,主控制器此时再次发送的属性上报请求中,将携带根据要上报的属性数据的长度更新后的缓冲区的长度。

在步骤404中,向主控制器上报属性数据。

节点通过向主控制器发送一个以上块数据消息,来向主控制器上报属性数据。上述块数据消息通过块数据输入帧实现,块数据输入帧采用扩展数据帧格式,仲裁场的ID域中的帧模式字段取值为M1M0EM0=111,仲裁场的ID域中的I指示本帧的发送序号,即指示当前发送到第几个数据块,也可以称为数据块标识,END指示本帧是否为最后一帧,即指示上报是否结束的指示位。块数据输入帧的数据场中不含CMD字段,第0字节至第7字节均为数据位。

作为一种可选的实施方式,节点属性数据使用ini配置文件格式,包括常量部分和变量部分。其中,常量部分中的元素是不可变的,里面包含设备名、是否可升级、设备使用的二级指令集等一些不可变的元素;变量部分中的元素是可被设置而改变的,例如节点ID。节点属性数据通过编码,形成能够在块数据输入帧中携带的数据格式。

在步骤405中,向主控制器发送属性上报应答,属性上报应答中携带上报的属性数据的长度。

这里的属性上报应答仍可以由前文描述及表5中所示的块指令属性请求应答帧实现,节点在完成上报属性数据之后,通过块指令属性请求应答帧告知主控制器属性数据已上报完毕。

下面以一个具体应用场景举例。

假设主控制器与节点通信的信道为channel=10,主控制器设置的接收属性数据的缓冲区的长度为2k,节点要上报的属性数据的长度为900。

①主控制器向节点发送块指令属性请求帧,各字段取值如下:

M1M0EM0=100,channel=10,CMD=0XFE,D1~D4=2K。

②节点向主控制器发送第一个块数据输入帧,各字段取值如下:

M1M0EM0=111,channel=10,END=0,I=0,D0~D7=节点属性数据的第一个8字节。

③节点向主控制器发送第n个块数据输入帧,各字段取值如下:

M1M0EM0=111channel=10END=0I=n-1D0~D7=节点属性数据的第n个8字节。

④节点向主控制器发送第n+1个块数据输入帧,这是节点要上报的最后一块数据,各字段取值如下:

M1M0EM0=111,channel=10,END=1,I=n,D0~D7=节点属性数据最后的第n+1个数据包(<=8)。

⑤节点向主控制器发送块指令属性请求应答帧,各字段取值如下:

M1M0EM0=110,channel=10,CMD=0XFD,D1~D4=900。

为实现前文所述的数据传输方法,下面介绍本发明实施例中的数据传输装置,涉及的帧结构等不再赘述,与前文所述方法相同。

图5是根据一示例性实施例示出的一种数据传输装置的框图,该装置可以位于主控制器中,包括发射器501和接收器502。

发射器501,被配置为向节点发送属性上报请求,属性上报请求中携带用于保存属性数据的缓冲区的长度。

接收器502,被配置为接收节点上报的属性数据;接收节点发送的属性上报应答。

上述上报的属性数据的长度小于等于缓冲区的长度。

可见,本发明实施例提供了一种主控制器接收节点上报属性数据的方式,主控制器在请求节点上报属性数据时,告知节点用于保存属性数据的缓冲区的长度,从而使得节点上报的属性数据的长度小于缓冲区的长度,不会发生属性数据存储错误的情况,提高了可靠性。

图6是根据一示例性实施例示出的一种数据传输装置的框图,该装置可以位于主控制器中,包括发射器501、接收器502和处理器503。

发射器501和接收器502具备和图5所示相同部分的相同功能。

作为一种可选的实施方式,接收器502可以进一步被配置为:在接收节点上报的属性数据之前,接收节点发送的属性上报应答,属性上报应答中携带要上报的属性数据的长度。基于此,处理器503被配置为:根据要上报的属性数据的长度,更新缓冲区,然后触发发射器501执行操作。

作为一种可选的实施方式,接收器502可以进一步被配置为:接收节点发送的一个以上块数据消息,每个块数据消息中携带数据块标识和指示上报是否结束的指示位。

如果主控制器在接收到属性上报应答后,比较出接收到的属性数据的长度不等于属性上报应答中携带的长度,还可以要求节点重新上报属性数据,即处理器503可以进一步被配置为在接收到的属性数据的长度不等于所述属性上报应答中携带的长度时,触发所述发射器501执行操作。

图7是根据一示例性实施例示出的一种数据传输装置的框图,该装置可以位于节点中,包括发射器701和接收器702。

接收器702,被配置为接收主控制器发送的属性上报请求,属性上报请求中携带用于保存属性数据的缓冲区的长度。

发射器701,被配置为向主控制器上报属性数据;向主控制器发送属性上报应答。

上述上报的属性数据的长度小于等于所述缓冲区的长度。

可见,本发明实施例提供了一种由节点向主控制器上报属性数据的方式,主控制器在请求节点上报属性数据时,告知节点用于保存属性数据的缓冲区的长度,从而使得节点上报的属性数据的长度小于缓冲区的长度,不会发生属性数据存储错误的情况,提高了可靠性。

图8是根据一示例性实施例示出的一种数据传输装置的框图,该装置可以位于节点中,包括发射器701、接收器702和处理器703。

发射器701和接收器702具备和图7所示相同部分的相同功能。

作为一种可选的实施方式,处理器703被配置为判断要上报的属性数据长度是否大于缓冲区的长度,在要上报的属性数据长度大于缓冲区的长度时,触发发射器701向主控制器发送属性上报应答,属性上报应答中携带要上报的属性数据的长度,要上报的属性数据的长度供主控制器更新缓冲区;在要上报的属性数据长度小于等于缓冲区的长度时,触发发射器701向主控制器上报属性数据。

作为一种可选的实施方式,发射器701进一步被配置为:向主控制器发送一个以上块数据消息,每个块数据消息中携带数据块标识和指示上报是否结束的指示位。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的流程及结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1