多包应用报文数据的传输方法、装置及系统与流程

专利2022-06-29  71


本发明涉及通信
技术领域
,具体地涉及一种多包应用报文数据的传输方法、一种传输多包应用报文数据的装置、一种传输多包应用报文数据的系统以及一种整车系统。
背景技术
:随着整车智能化程度的飞速发展,车载智能车机及手机端app的开发及搭载,需要传输到云端的信号量变得越来越大,对整车信号传输提出了新的要求。现有的车载信号大多是基于can信号,如果按传统can信号方式开发,通过id场对数据进行区分,但是id场的取值的范围只能在0~0x7ff之间。该方式不仅使整车id的取值范围得到了限制,还导致后期整车id可扩展性大大降低。技术实现要素:本发明实施方式的目的是提供一种多包应用报文数据的传输方法及装置,以至少解决目前can数据传输中受can数据帧中id场位数限制的问题。为了实现上述目的,在本发明第一方面,提供一种多包应用报文数据的传输方法,所述传输方法基于can数据帧,所述can数据帧包括id场和数据场,所述数据场的前n位为子id,n为正整数。可选的,所述传输方法包括:在所述can数据帧的发送端,将所述子id写入所述数据场的前n位;并将传输数据写入所述数据场的剩余位;对应的,在所述can数据帧的接收端,将所述数据场的前n位解析为子id;并将所述数据场的剩余位解析为传输数据。可选的,所述传输方法还包括:在所述can数据帧中设立一标识位,所述标识位用于标识所述can数据帧是否存在子id。可选的,所述标识位中包括所述子id的所占的位数n。可选的,所述方法还包括:根据can数据帧中的id场中的id是否在预设范围之内,判断所述can数据帧是否存在子id。在本发明的第二方面,还提供了一种多包应用报文数据的传输装置,所述传输装置采用前述的多包应用报文数据的传输方法,发送或接收所述can数据帧。可选的,所述传输装置包括设置模块,用于设置n;或还用于设置标识位。在本发明的第三方面,还提供了一种多包应用报文数据的传输系统,所述传输系统包括至少两个can控制器,所述can控制器之间通过can总线通信,并采用前述的多包应用报文数据的传输方法。可选的,所述传输系统中的至少一个can控制器在云端。在本发明的第四方面,还提供了一种整车系统,所述整车系统包括至少两个can控制器,所述can控制器之间通过can总线通信,并采用前述的多包应用报文数据的传输方法。本发明上述技术方案通过在can通信帧的数据场中设置子id的方式,可以实现id地址的扩展,这样就可以利用极少数的id实现了大量数据的传输。通过此方法,可以既满足对数据的传输,又不占用大量id范围,最大程度减小了对整车的影响。本发明实施方式的其它特征和优点将在随后的具体实施方式部分予以详细说明。附图说明附图是用来提供对本发明实施方式的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施方式,但并不构成对本发明实施方式的限制。在附图中:图1是本发明一种实施方式提供的多包应用报文数据的传输方法的示意图;图2是本发明一种可选实施方式提供的一种整车系统的结构示意图。具体实施方式以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。在本发明实施方式中,在未作相反说明的情况下,使用的方位词如“上、下、顶、底”通常是针对附图所示的方向而言的或者是针对竖直、垂直或重力方向上而言的各部件相互位置关系描述用词。图1是本发明一种实施方式提供的多包应用报文数据的传输方法的示意图。如图1所示,本发明实施方式提供一种多包应用报文数据的传输方法,所述传输方法基于can数据帧,所述can数据帧包括id场和数据场,所述数据场的前n位为子id,n为正整数。如此,就能利用极少数的id实现了大量数据的传输。通过此方法,可以既满足对数据的传输,又不占用大量id范围,最大程度减小了对整车的影响。具体的,目前使用最广泛的can-bus网络标准是v2.0版本,该标准又分为a、b两部分,它们主要的区别在仲裁区域的id码长度。其中can2.0a(标准帧)为11位id,can2.0b(扩展帧)为29位id。下表1为传统格式的can报文结构:分为id场和数据场。id场数据场数据场数据场数据场数据场数据场数据场数据场id1数据1数据2数据3数据4数据5数据6数据7数据8id2数据1数据2数据3数据4数据5数据6数据7数据8id3数据1数据2数据3数据4数据5数据6数据7数据8表1id场的作用是对数据的优先级进行了规定,范围只能在0~0x7ff(11位),所以id的数量是有限的,而需要上传到云端的数据量非常大,所以用传统方式定义报文,将占用大量id,导致后期整车id可扩展性大大降低。为了解决此问题,通过设置子id的方式,可以实现在同一个id范围下,设置不同的子id,实现了即不占用大量id,同时有传输了云端所需的整车数据。以n=1为例,其自定义的can报文结构如下表2所示:id场数据场数据场数据场数据场数据场数据场数据场数据场id子id1数据2数据3数据4数据5数据6数据7数据8id子id2数据2数据3数据4数据5数据6数据7数据8id子id3数据2数据3数据4数据5数据6数据7数据8表2对于位数n的取值范围,根据数据场所采用的数据的进制相关。当数据场采用二进制时,可以取前n个比特作为子id;当数据场采用八进制时,一般取n=1,此时当子id取1位时,相当于一个字节,其范围为0~0xff(8位),已经能够满足大多数使用场景的需求,同时对数据承载的影响也较小。在本发明的一种实施方式中,在所述can数据帧的发送端,将所述子id写入所述数据场的前n位;并将传输数据写入所述数据场的剩余位;对应的,在所述can数据帧的接收端,将所述数据场的前n位解析为子id;并将所述数据场的剩余位解析为传输数据。具体的,在can总线上传输数据时,发送端将发送数据按格式转换成数据传输总线的规范格式。以数据场为8字节为例,将子id写入所述数据场的前n字节,并将数据写入其余8-n个字节,并封装成符合规范的数据包,并进行传输。当数据较大时,需要多个帧才能传输完成。与前述的发送端对应的,在所述can数据帧的接收端,依照规范的格式进行对应的解析。将接收到的can数据帧中的所述数据场的前n字节解析为子id,并将所述数据场的其余字节解析为传输数据。以实现以子id进行二次排序的目的,完成can设备之间的数据通信。在实际的应用场景中,如果在整个can传输网中均约定了采用子id进行通信,并预设了子id占多少个字节(通常取n=1),那么在设备的发送和接收时,按前述的发送和接收方法可以顺利完成can数据通信,但是当存在混合组网时,即can网络中的设备能够解析子id,又能解析常规can数据帧(不包括子id)。此时需要标识该数据场中的前n字节为数据还是子id,以避免解析出的数据错误。因此在发明的一种实施方式中,所述方法还包括:在所述can数据帧中设立一标识位,所述标识位用于标识所述can数据帧是否存在子id。当can通信端接收到can数据帧时,通过识别该标识位,以确定该can数据帧的数据场中的前n字节为数据还是子id。在本发明的一种实施方式中,所述标识位中包括所述子id的所占的位数n。如果能够在标识位中包括所述子id的位数n,那么n的数值就可以不再事先统一预设,而是可以在每一can数据帧中进行灵活配置。此时当接收端接收到数据帧时,先解析出位数n,再根据n,在数据场的前n位中解析出子id,以实现对包含子id的can数据帧的解析。通过此方式,可以使子id的使用更加灵活,避免了提前预设而带来的适用范围变小的问题。在发明的一种实施方式中,根据can数据帧中的id场中的id是否在预设范围之内,判断所述can数据帧是否存在子id。如何区分数据场的前n字节为数据还是子id,在前文中已经描述了两种实施方式来进行确定,即通过事先设定或者通过标识位进行确定。而除此之外,还有一种方式可以用于确定数据场的前n字节为数据还是子id。即:通过特定范围的id场来进行确定。具体的,若发送的目标id在预设的id范围之内,那么将子id写入所述数据场的前n字节,并将数据写入其余8-n个字节,并封装成符合规范的数据包,并进行传输,否则不写入子id,而是将数据写入整个数据场进行封装后传输。对应的,若接收到的can数据帧的id场中的id属于预设的id范围,则将数据场的前n字节解析为子id,否则将数据场全部解析为数据。此实施方式中的n需要预设。通过此实施方式,能够在不对can数据帧进行额外处理的情况下,实现对包含子id的can数据帧的识别和解析,以实现数据的传输。在发明的一种实施方式中,还提供一种传输多包应用报文数据的装置,所述装置采用如前述的多包应用报文数据的传输方法,发送或接收所述can数据帧。此处的装置为can控制器,所述can控制器能够对can数据帧进行生成或解析,近一步的,其能够将子id和数据写入数据场,并封装成can协议规范并进行传输,或者从接收到的can数据帧中分离解析出数据场中的子id和数据,以实现前述的多包应用报文数据的传输方法。其在实际场景中可以采用以下实现方式:采用现有的can控制器,对控制器输入或输出的数据场进行预处理或进一步的解析,以实现子id和数据的组装或分离。在发明的一种实施方式中,所述装置包括设置模块,用于设置n;或还用于设置标识位。对应于前述方法中的标识位和n的灵活设置,可以通过设置模块对装置进行对应的设置。具体的,当数据场为八进制,且n=1时,即前1字节为子id,后7字节为数据,以此为标准对can数据帧进行解析。此处的n可以为0,当n=0时,即前0字节为子id,表示不存在子id,数据场的全部字节均为数据,此时对can数据帧进行正常的解析。此处的n具有标识位的作用。当标识位中不包括n时,那么可以通过设置模块对标识位进行单独设置,在具体的实施场景中,该设置模块可以采用软件代码来实现,也可以采用硬件来实现,比如拨码开关等。在发明的一种实施方式中,还提供一种传输多包应用报文数据的系统,所述系统包括至少两个can控制器,所述can控制器之间通过can总线通信,并采用如前述的多包应用报文数据的传输方法。在一个典型的can数据总线中,存在can控制器、can收发器、数据传输线以及数据传输终端。can控制器用于接收控制单元中微处理器发出的数据,处理数据并传给can收发器。can收发器用于将数据传到总线或从总线接收数据给控制器,收发器也可以称为驱动器。本发明的此实施方式在can控制器中增加一个软件进程对can收发器传输过来的数据进行监控和处理,该软件进程所实现的功能即为前述的多包应用报文数据的传输方法,其中软件进程中的参数的选取和确定也依照前述的多包应用报文数据的传输方法的步骤描述。在此场景下,本发明中的前述的方法依赖于can控制器的硬件装置得以运行,即在can控制器中增加一段程序代码进行实施,该程序代码共用了can控制器的存储空间,运行环境和运行内存,此时的can控制器仅增加了一个软件上的附加功能,用于实现前述的多包应用报文数据的传输方法;此处所述的可选实施方式不仅要求的附加资源更少,并且完全不用对can控制器进行硬件上的增加和改造,使得该方案更简单易行。在发明的一种可选实施方式中,所述系统中的至少一个can控制器在云端。随着车联网技术的发展,以下场景变得很普遍:通过can总线采集车辆的各种状态信息,并通过4g或物联网模块将这些信息发送到云端服务器,以供用户和生产厂商分析和统计。同时由于生产厂商能够得到车辆运行的实时信息,有利于对车辆各系统的持续改进,节约了现场维护成本。因此,通过云端的can控制器接收整车的运行数据信息,使本发明的此实施例能够通过前述的多包应用报文数据的传输方法,将大量的数据传输至云端。图2是本发明一种可选实施方式提供的一种整车系统的结构示意图,如图2所示:在发明的一种实施方式中,还提供一种整车系统,所述整车系统包括至少两个can控制器,该can控制器包括但不限于can网关、tcu、t-box、车机和各类传感器,此处的传感器包括车速、温度、压力、水调节、油泵、氧等传感器,所述控制器之间通过can总线通信,并采用如前述的多包应用报文数据的传输方法,即通过不同的子id进行通信传输。在本发明的一种实施方式中,还提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令在被处理器执行时能够使得所述can控制器执行上述的多包应用报文数据的传输方法。通过本发明上述技术方案,基于现有can通信协议,自定义数据场前n位(优选为第一字节),作为子id对所有应用报文进行二次排序,可实现只占用极少数的id,便可进行整车大量数据的传输,满足了车载智能车机和t-box对整车数据的需求,此方法具有很好的实用性。以上结合附图详细描述了本发明的可选实施方式,但是,本发明实施方式并不限于上述实施方式中的具体细节,在本发明实施方式的技术构思范围内,可以对本发明实施方式的技术方案进行多种简单变型,这些简单变型均属于本发明实施方式的保护范围。另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施方式对各种可能的组合方式不再另行说明。本领域技术人员可以理解实现上述实施方式的方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施方式的思想,其同样应当视为本发明实施方式所公开的内容。当前第1页1 2 3 
技术特征:

1.一种多包应用报文数据的传输方法,所述传输方法基于can数据帧,所述can数据帧包括id场和数据场,其特征在于,所述数据场的前n位为子id,n为正整数。

2.根据权利要求1所述的传输方法,其特征在于,所述传输方法包括:

在所述can数据帧的发送端,将所述子id写入所述数据场的前n位,并将传输数据写入所述数据场的剩余位;

对应的,在所述can数据帧的接收端,将所述数据场的前n位解析为子id,并将所述数据场的剩余位解析为传输数据。

3.根据权利要求1或2所述的传输方法,其特征在于,所述传输方法还包括:在所述can数据帧中设立一标识位,所述标识位用于标识所述can数据帧是否存在子id。

4.根据权利要求3所述的传输方法,其特征在于,所述标识位中包括所述子id的所占的位数n。

5.根据权利要求1所述的传输方法,其特征在于,所述方法还包括:

根据can数据帧中的id场中的id是否在预设范围之内,

判断所述can数据帧是否存在子id。

6.一种多包应用报文数据的传输装置,其特征在于,所述传输装置采用权利要求1至5中任一项权利要求所述的多包应用报文数据的传输方法,发送或接收所述can数据帧。

7.根据权利要求6所述的传输装置,其特征在于,所述传输装置包括设置模块,用于设置n,或还用于设置标识位;所述n为所述子id的所占的位数。

8.一种多包应用报文数据的传输系统,其特征在于,所述传输系统包括至少两个can控制器,所述can控制器之间通过can总线通信,并采用权利要求1至5中任一项权利要求所述的多包应用报文数据的传输方法。

9.根据权利要求8所述的传输系统,其特征在于,所述传输系统中的至少一个can控制器在云端。

10.一种整车系统,其特征在于,所述整车系统包括至少两个can控制器,所述can控制器之间通过can总线通信,并采用权利要求1至5中任一项权利要求所述的多包应用报文数据的传输方法。

技术总结
本发明实施方式提供一种多包应用报文数据的传输方法,所述传输方法基于CAN数据帧,所述CAN数据帧包括ID场和数据场,所述数据场的前N位为子ID,N为正整数。同时还提供了一种传输多包应用报文数据的装置和系统。本发明的上述技术方案通过实现对ID地址的扩展,就可以利用极少数的ID实现了大量数据的传输,既能满足对数据的传输,又不占用大量ID范围,最大程度减小了对整车的影响。

技术研发人员:朱树礼;施庆国;张红志
受保护的技术使用者:北京汽车股份有限公司
技术研发日:2020.01.17
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-20198.html

最新回复(0)