一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于不同通信总线之间的数据传输方法和数据传输设备与流程

2022-07-30 22:53:14 来源:中国专利 TAG:


1.本发明涉及通讯技术领域,具体的涉及一种基于不同通信总线之间的数据传输方法和数据传输设备。


背景技术:

2.目前在工业领域常见的通信总线有多种,例如rs-232通信总线、rs-485通信总线、lan通信总线、can通信总线等。一个产品之间多个模块主要靠通信总线作为连接的桥梁,当产品更新换代,在给相应产品进行升级时,需要在不同通信总线之间相互传输数据帧,而不同总线所传输的数据帧拥有不同的格式,其中对于数据帧的数据段,不同的通信总线往往有着不同的字节限制,当在各种限制不同数据长度的通信总线之间传输数据时,其通讯协议容易冲突,会出现传输时间长,连贯性差,需要重新编制协议等问题。


技术实现要素:

3.本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种基于不同通信总线之间的数据传输方法和数据传输设备,能够解决传输时间长,连贯性差,需要重新编制协议的问题。
4.根据本发明第一方面实施例的一种基于不同通信总线之间的数据传输方法,包括以下步骤:
5.s100、设置组帧时间范围t,t=[0,m],其中,m=n r/s,r为精度常数,n为通信总线传输一个数据帧所需的时间,s为通信总线的波特率;
[0006]
s200、数据发送端以时间间隔k依次发送同一组帧内的数据帧,k的取值范围为[n,m],每个组帧发送完成后以间隔时间l再发送下一个组帧,l大于m;
[0007]
s300、数据接收端接收数据并记录每一个数据帧的接收时间,若一个数据帧的接收时间与前一个数据帧的接收时间的间隔时间处于组帧时间范围t内,则判断为在同一组帧内,继续接收下一个数据帧,否则判断为组帧结束,存储数据,并开始新的组帧。
[0008]
根据本发明第一方面实施例的一种基于不同通信总线之间的数据传输方法,至少具有如下技术效果:本发明实施方式通过设置组帧时间范围t,数据发送端以时间间隔k依次发送同一组帧内的数据帧,每个组帧发送完成后以间隔时间l再发送下一个组帧,当数据接收端的一个数据帧的接收时间与前一个数据帧的接收时间的间隔时间在组帧时间范围t内,判断为在同一组帧内,继续接收下一个数据帧,否则结束组帧,开始新的组帧,一段较长的数据可以分成多个数据帧,以时间间隔k依次发送,以时间范围t判断各个数据帧是否在同一组帧内,能根据通信总线限制的数据长度设置组帧内的数据帧的长度,控制了传输数据的长度,可以适应各种限制不同数据长度的通信总线,无需重新编制协议,节省了时间,提高了传输的连贯性。
[0009]
根据本发明的一些实施例,步骤s100中的r的取值范围为[20,50]。
[0010]
根据本发明的一些实施例,步骤s300中还包括数据校验步骤:在判断为组帧结束
后,通过校验算法校验组帧数据,若校验通过,则存储数据,否则舍弃数据,上报通讯错误,重新传输数据。
[0011]
根据本发明的一些实施例,步骤s300中的校验算法为crc算法或求和校验算法。
[0012]
根据本发明的一些实施例,步骤s300中的校验算法的校验数据为组帧内的最后两个字节数据。
[0013]
根据本发明第二方面实施例的一种基于不同通信总线之间的数据传输设备,包括:通过通信总线连接的数据发送模块和数据接收模块,数据发送模块和数据接收模块应用上述的基于不同通信总线之间的数据传输方法。
[0014]
根据本发明第二方面实施例的一种基于不同通信总线之间的数据传输设备,至少具有如下技术效果:本发明实施方式通过设置组帧时间范围t,数据发送端以时间间隔k依次发送同一组帧内的数据帧,每个组帧发送完成后以间隔时间l再发送下一个组帧,当数据接收端的一个数据帧的接收时间与前一个数据帧的接收时间的间隔时间在组帧时间范围t内,判断为在同一组帧内,继续接收下一个数据帧,否则结束组帧,开始新的组帧,一段较长的数据可以分成多个数据帧,以时间间隔k依次发送,以时间范围t判断各个数据帧是否在同一组帧内,能根据通信总线限制的数据长度设置组帧内的数据帧的长度,控制了传输数据的长度,可以适应各种限制不同数据长度的通信总线,无需重新编制协议,节省了时间,提高了传输的连贯性。
[0015]
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
[0016]
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0017]
图1为本发明的流程图。
具体实施方式
[0018]
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0019]
在发明的描述中,需要理解的是,涉及到方位描述,例如上、下、前、后、左、右等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0020]
在发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
[0021]
本发明的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体
含义。
[0022]
下面参考图1描述根据本发明第一方面实施例的一种基于不同通信总线之间的数据传输方法。
[0023]
如图1所示,根据本发明第一方面实施例的一种基于不同通信总线之间的数据传输方法,包括以下步骤:
[0024]
s100、设置组帧时间范围t,t=[0,m],其中,m=n r/s,r为精度常数,r的取值范围为[20,50],n为通信总线传输一个数据帧所需的时间,s为通信总线的波特率;
[0025]
s200、数据发送端以时间间隔k依次发送同一组帧内的数据帧,k的取值范围为[n,m],每个组帧发送完成后以间隔时间l再发送下一个组帧,l大于m;
[0026]
s300、数据接收端接收到组帧的第一个数据帧,记录保存时间为t(n),接收到下一个数据帧,记录保存时间为t(n 1),若t(n 1)-t(n)在组帧时间范围t内,即0≤t(n 1)-t(n)≤m,则判断其在同一组帧内,继续接收下一个数据帧,否则判断为组帧结束,组帧结束后通过crc算法或求和校验算法校验组帧内的最后两个字节数据,若校验通过,则存储并解析数据,开始新的组帧,否则舍弃数据,上报通讯错误,重新传输数据,还可以采用其他的校验算法对数据进行校验。
[0027]
数据发送端以时间间隔k依次发送同一组帧内的数据帧,每个组帧发送完成后以间隔时间l再发送下一个组帧,当数据接收端的一个数据帧的接收时间与前一个数据帧的接收时间的间隔时间在组帧时间范围t内,判断为在同一组帧内,继续接收下一个数据帧,否则结束组帧,开始新的组帧,一段较长的数据可以分成多个数据帧,以时间间隔k依次发送,以时间范围t判断各个数据帧是否在同一组帧内,排除了通信总线内其他数据的干扰,能根据通信总线限制的数据长度设置组帧内的数据帧的长度,控制了传输数据的长度,可以适应各种限制不同数据长度的通信总线,无需重新编制协议,节省了时间,提高了传输的连贯性,crc算法或求和校验算法能准确验证数据传输是否出现错误,保证数据传输的正确率。
[0028]
下面以波特率为9600bps的can通信总线作为通信总线为例,数据发送端发送1位数据需要的时间为1/9600s=0.0001042s,若数据为8位,则发送8位数据所需的时间为0.0001042*8=0.0008336s,发送8个字节的数据给数据接收端需要的时间为8*0.0008336=0.0066688s,即n=0.0066688s,m=n r/s,根据精度要求,r取值为20,m=0.0066688 20/9600=0.0087488s,则组帧时间范围t=[0,0.0087488]s,k在[0.0066688,0.0087488]s中取值,k取0.0087488s,数据传输步骤如下:
[0029]
s100、设置组帧时间范围t=[0,0.0087488]s;
[0030]
s200、数据发送端以时间间隔0.0087488s依次发送同一组帧内的数据帧,每个组帧发送完成后以间隔时间l再发送下一个组帧,l大于m;
[0031]
s300、数据接收端接收到组帧的第一个数据帧,记录保存时间为t(1),接收到下一个数据帧,记录保存时间为t(2),若0s≤t(2)-t(1)≤0.0087488s,则判断其在同一组帧内,继续接收下一个数据帧,否则判断为组帧结束,组帧结束后通过crc算法或求和校验算法校验组帧内的最后两个字节数据,若校验通过,则存储数据,并开始新的组帧,否则舍弃数据,上报通讯错误,重新传输数据。
[0032]
下面以波特率为5000bps的can总线作为通信总线发送一段大小为24个字节的数
据为例,这段数据为【0x5a 0xaa 0x18 0x04 0x01 0x00 0x1c 0x22 0x15 0x34 0x15 0x13 0x01 0x09 0x13 0x14 0x13 0x18 0x29 0x33 0x12 0x22 0x0c 0x28】,这段数据为一条完整的通讯协议,0x5a 0xaa 作为通讯协议的标识头,0x18 0x04 0x01 0x00 0x1 c 0x22 0x15 0x34 0x15 0x13 0x01 0x09 0x13 0x14 0x13 0x18 0x29 0x33 0x12 0x22作为数据内容,0x0c 0x28作为校验和数据,can总线每一帧最大发送数据为8个字节,这组数据需要分三帧发送出去,所以第一帧数据为【0x5a 0xaa 0x18 0x04 0x01 0x00 0x1 c 0x22】,数据接收端接收到数据0x5a 0xaa则认为数据传输已经开始,以5000bps的波特率发送一个数据帧所需的时间为0.0128s,即n=0.0128s,考虑到让数据接收端稳定接收数据,m=n r/s,根据精度要求,r取值为20,m=0.0128 20/5000=0.0168s,k在[0.0128,0.0168]s中取值,k取0.0168s,数据传输步骤如下:
[0033]
s100、设置组帧时间范围t=[0,0.0168]s;
[0034]
s200、数据发送端以时间间隔0.0168s依次发送同一组帧内的数据帧,每个组帧发送完成后以间隔时间l再发送下一个组帧,l大于m;
[0035]
s300、数据接收端接收到第一帧数据【0x5a 0xaa 0x18 0x04 0x01 0x00 0x1c 0x22】,记录保存时间为t(1),接收到下一帧数据【0x15 0x34 0x15 0x13 0x01 0x09 0x13 0x14】记录时间为t(2),若0s≤t(2)-t(1)≤0.0168s,则判断其在同一组帧内,继续接收下一个数据帧,否则判断为组帧结束,再通过求和校验算法校验,校验正确则认为接收到完整的组帧数据,这一组帧结束,开始下一组帧,校验错误则舍弃数据,上报通讯错误,重新传输数据,直到再次接收以0x5a 0xaa为开头的数据帧,重新开始,当接收到第三帧数据【0x13 0x18 0x29 0x33 0x12 0x22 0x0c 0x28】,根据通讯协议的规定,数据接收端在接收到第三帧数据则开始判断协议的完整性,通过求和校验算法校验,0x0c和0x28组合为0x2bc,校验正确,接收到完整的组帧数据,这一组帧结束,开始下一组帧,若校验错误则舍弃数据,上报通讯错误,重新传输数据。
[0036]
下面描述本发明第二方面实施例的一种基于不同通信总线之间的数据传输设备,包括:通过通信总线连接的数据发送模块和数据接收模块,数据发送模块和数据接收模块应用上述的基于不同通信总线之间的数据传输方法,通过设置组帧时间范围t,数据发送端以时间间隔k依次发送同一组帧内的数据帧,每个组帧发送完成后以间隔时间l再发送下一个组帧,当数据接收端的一个数据帧的接收时间与前一个数据帧的接收时间的间隔时间在组帧时间范围t内,判断为在同一组帧内,继续接收下一个数据帧,否则结束组帧,开始新的组帧,一段较长的数据可以分成多个数据帧,以时间间隔k依次发送,以时间范围t判断各个数据帧是否在同一组帧内,能根据通信总线限制的数据长度设置组帧内的数据帧的长度,控制了传输数据的长度,可以适应各种限制不同数据长度的通信总线,无需重新编制协议,节省了时间,提高了传输的连贯性。
[0037]
综上所述,本发明提供的一种基于不同通信总线之间的数据传输方法和数据传输设备,通过通信总线连接的数据发送模块和数据接收模块,数据发送模块和数据接收模块应用上述的基于不同通信总线之间的数据传输方法,通过设置组帧时间范围t,数据发送端以时间间隔k依次发送同一组帧内的数据帧,每个组帧发送完成后以间隔时间l再发送下一个组帧,当数据接收端的一个数据帧的接收时间与前一个数据帧的接收时间的间隔时间在组帧时间范围t内,判断为在同一组帧内,继续接收下一个数据帧,否则结束组帧,开始新的
组帧,一段较长的数据可以分成多个数据帧,以时间间隔k依次发送,以时间范围t判断各个数据帧是否在同一组帧内,能根据通信总线限制的数据长度设置组帧内的数据帧的长度,控制了传输数据的长度,可以适应各种限制不同数据长度的通信总线,无需重新编制协议,节省了时间,提高了传输的连贯性,校验算法能准确验证数据传输是否出现错误,保证数据传输的正确率。
[0038]
上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所述技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献